g77.info: %VAL()

Go forward to %REF()
Go up to Functions and Subroutines
Go to the top op g77

The `%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.)
   *Note Procedures (SUBROUTINE and FUNCTION): Procedures, for detailed
information on how this particular version of `g77' passes arguments to
procedures.