Implicit Interface

An implicit interface call is a call on a procedure in which the caller has no explicit information on the form of the arguments expected by the procedure; all calls within a Fortran program are of this form. All arguments passed through an implicit interface, apart from label arguments, are passed by address.

Fortran Implicit Argument Passing by Address

Argument

Address Passed

scalar

the address of the scalar

array

the address of the first element of the array

scalar pointer

the address of its target

array pointer

the address of the first element of its target

procedure

the address associated with the external name

Actual arguments of type character are passed as a character descriptor, which consists of two words, see Character Types.

Label arguments (alternate returns) are handled differently: subroutines which include one or more alternate returns in the argument list are compiled as integer functions; these functions return an index into a computed goto; the caller executes these gotos on return. For example:

call validate(x,*10,*20,*30)

is equivalent to

goto (10,20,30), validate(x)