The LOC intrinsic serves the same purpose as the %LOC built-in function
%REF
%REF (arg)
Forces an actual argument in a CALL statement or function reference
to be passed by reference: the address of the argument is passed
to the subprogram. By default, Fortran passes all numeric values
by reference.
%VAL
%VAL (arg)
Forces an actual argument in a CALL statement or function reference
to be passed by value: the actual value of the argument is passed
to the subprogram. The argument must be 32 bits in size or less.
If the argument is less than 32 bits in size, it is sign-extended
to that size.