CALL Statement (Executable) [ HP FORTRAN 77/iX Reference ] MPE/iX 5.0 Documentation
HP FORTRAN 77/iX Reference
CALL Statement (Executable)
The CALL statement transfers control to a subroutine.
-----------------------------------------------------------------------------------------------
| | | |
| Item | Description/Default | Restrictions |
| | | |
-----------------------------------------------------------------------------------------------
| | | |
| * | Alternate return. | None. |
| & | | |
| | | |
-----------------------------------------------------------------------------------------------
| | | |
| label | Statement label of an executable | Must be in the same program unit |
| | statement. | as the CALL statement. |
| | | |
-----------------------------------------------------------------------------------------------
Semantics
When a CALL statement is executed, any expressions in the actual argument
list are evaluated and control passes to the subroutine. For a normal
return from the subroutine, execution continues with the statement
following the CALL statement. When an alternate return is taken,
execution continues with the statement label in the actual argument list
that corresponds to the return number specified in the subroutine's
RETURN statement.
The use of & as an alternate return is an extension to the ANSI 77
standards.
Examples Notes
---------------------------------------------------------------------------------------
CALL print_forms(top,lh,rh) Calls the subroutine print_forms. Passes
three arguments.
CALL exit Calls the subroutine exit. Passes no
arguments.
CALL test_data (m,n,val,*10) Calls the subroutine test_data. Passes
: three arguments. *10 means that the return
10 total = val + 6.34 point is the statement labeled 10 if the
: subroutine executes the alternate return
END RETURN 1.
SUBROUTINE test_data (j,k,w,*)
:
RETURN 1
:
END
As an extension to the FORTRAN 77 standard, a call can be made with
arguments missing. The compiler passes a zero by value for any missing
arguments. For example, the statement:
CALL fun (a,,b,,)
is equivalent to:
CALL fun (a,0,b,0)
with the zero being passed by value.
MPE/iX 5.0 Documentation