Copyright Digital Equipment Corp. All rights reserved.
Statements in a Fortran program unit follow a required order. In the following figure, vertical lines separate statement types that can be interspersed. For example, DATA statements can be interspersed with executable statements. Horizontal lines indicate statement types that cannot be interspersed. For example, type declaration statements cannot be interspersed with executable statements. +-------+--------------------------------------------------------+ | | OPTIONS Statements | | |--------------------------------------------------------| | | PROGRAM, FUNCTION, SUBROUTINE, MODULE, or | | | BLOCK DATA Statements | | |--------------------------------------------------------| | | USE Statements | | |---------+----------------------------------------------| |COMMENT| | IMPLICIT NONE Statements | | Lines,| |------------+-------------------+-------------| |INCLUDE|NAMELIST,| PARAMETER | IMPLICIT Statements | |State- | FORMAT, |------------+---------------------------------| | ments,| & | | Derived-Type Definitions, | | & | ENTRY | PARAMETER | Interface Blocks, Type | |Direc- | State- | and DATA | Declaration Statements, State- | | tives | ments | Statements | ment Function Statements, and | | | | | Specification Statements | | | +------------+---------------------------------| | | | DATA | Executable Statements | | | | Statements | | | |---------+----------------------------------------------| | | CONTAINS Statement | | |--------------------------------------------------------| | | Internal Subprograms or Module Subprograms | |-------+--------------------------------------------------------| | END Statement | +----------------------------------------------------------------+
Directives ACCEPT ALLOCATABLE ALLOCATE ASSIGN Assignment AUTOMATIC_and_STATIC BACKSPACE BLOCK_DATA CALL CASE CLOSE COMMON CONTAINS CONTINUE CYCLE DATA DEALLOCATE DECODE DEFINE_FILE DELETE DIMENSION DO DO_WHILE ELSE ELSE_IF ELSEWHERE ENCODE END END_DO END_IF END_MAP END_SELECT END_STRUCTURE END_TYPE END_UNION ENDFILE ENTRY EQUIVALENCE EXIT EXTERNAL FIND FORALL FORMAT FUNCTION GOTO IF IMPLICIT IMPLICIT_NONE INCLUDE Input_Output INQUIRE INTENT INTERFACE INTRINSIC MAP MODULE MODULE_PROCEDURE NAMELIST NULLIFY OPEN OPTIONAL OPTIONS PARAMETER PAUSE POINTER PRINT PRIVATE_and_PUBLIC PROGRAM READ RECORD RETURN REWIND REWRITE SAVE Statement_Function SELECT_CASE SEQUENCE STOP STRUCTURE SUBROUTINE TARGET TYPE Type_declaration UNION UNLOCK USE VIRTUAL VOLATILE WHERE WRITE