%VAL() Construct
     %VAL(arg)
     
   The %VAL() construct specifies that an argument,
arg, is to be passed by value, instead of by reference
or descriptor.
   
%VAL() is restricted to actual arguments in
invocations of external procedures.
   
Use of %VAL() is recommended only for code that
is accessing facilities outside of GNU Fortran, such as
operating system or windowing facilities. 
It is best to constrain such uses to isolated portions of
a program--portions the deal specifically and exclusively
with low-level, system-dependent facilities. 
Such portions might well provide a portable interface for
use by the program as a whole, but are themselves not
portable, and should be thoroughly tested each time they
are rebuilt using a new compiler or version of a compiler.
   
Implementation Note: Currently, g77 passes
all arguments either by reference or by descriptor.
   
Thus, use of %VAL() tends to be restricted to cases
where the called procedure is written in a language other
than Fortran that supports call-by-value semantics. 
(C is an example of such a language.)
   
See Procedures (SUBROUTINE and FUNCTION),
for detailed information on
how this particular version of g77 passes arguments
to procedures.