END
Purpose
An END statement indicates the end of a program unit or procedure.
Syntax
>>-END--+-------------------------------------+---------------->< +-BLOCK DATA--+-----------------+-----+ | '-BLOCK_DATA_name-' | +-FUNCTION--+---------------+---------+ | '-FUNCTION_name-' | +-MODULE--+-------------+-------------+ | '-MODULE_name-' | | (1) | +-------PROCEDURE--+----------------+-+ | '-PROCEDURE_name-' | +-PROGRAM--+--------------+-----------+ | '-PROGRAM_name-' | +-SUBROUTINE--+-----------------+-----+ | '-SUBROUTINE_name-' | | (2) | '-------SUBMODULE--+----------------+-' '-SUBMODULE_name-'
- Fortran 2008
- Fortran 2008
Rules
The END statement is the only required statement in a program unit.
If a name is specified in an END BLOCK DATA, END FUNCTION, END MODULE, END PROGRAM, END SUBROUTINE, END SUBMODULE, or END PROCEDURE statement, it must be identical to the name that is specified in the corresponding BLOCK DATA, FUNCTION, MODULE, PROGRAM, SUBROUTINE, SUBMODULE, or MODULE PROCEDURE statement.
For an internal subprogram or module subprogram, you must specify the FUNCTION or SUBROUTINE keyword on the END statement. In Fortran 2008, you can omit the FUNCTION and SUBROUTINE keywords on the END statements for internal and module subprograms. However, you cannot add a function or subroutine name on the END statement when the FUNCTION or SUBROUTINE keyword is omitted. For block data program units, external subprograms, the main program, modules, interface bodies, submodules, and separate module subprograms, the corresponding keyword is optional.
The END, END FUNCTION, END PROCEDURE, END PROGRAM, and END SUBROUTINE statements are executable statements that can be branched to. In both fixed source form and Fortran 90 free source form formats, no other statement can follow the END statement on the same line. In fixed source form format, you cannot continue a program unit END statement, nor can a statement whose initial line appears to be a program unit END statement be continued.
The END statement of a main program terminates execution of the program. The END statement of a function or subroutine has the same effect as a RETURN statement. An inline comment can appear on the same line as an END statement. Any comment line appearing after an END statement belongs to the next program unit.
Examples
PROGRAM TEST
CALL SUB()
CONTAINS
SUBROUTINE SUB
⋮
END SUBROUTINE ! Reference to subroutine name SUB is optional
END PROGRAM TEST