DIGITAL Fortran
Language Reference Manual

Order Number: AA-Q66SC-TK

April 1997

This manual contains the complete description of the DIGITAL Fortran programming language, which includes Fortran 90, High Performance Fortran, and many Fortran 95 language features. It contains information on language syntax and semantics, on adherence to various Fortran standards, and on extensions to those standards.

Revision /Update Information This revised manual supersedes all previous DEC Fortran 90 language reference manuals.

Digital Equipment Corporation
Maynard, Massachusetts

©Digital Equipment Corporation 1997. All Rights Reserved.

Contents

Preface

1 Overview

1.1 Language Standards Conformance

1.2 Language Compatibility

1.3 Fortran 90 Features

1.3.1 New Features

1.3.2 Improved Features

1.4 Fortran 95 Features

1.5 High Performance Fortran Features

2 Program Structure, Characters, and Source Forms

2.1 Program Structure

2.1.1 Statements

2.1.2 Names

2.2 Character Sets

2.3 Source Forms

2.3.1 Free Source Form

2.3.2 Fixed and Tab Source Forms

2.3.2.1 Fixed-Format Lines

2.3.2.2 Tab-Format Lines

2.3.3 Source Code Useable for All Forms

3 Data Types, Constants, and Variables

3.1 Intrinsic Data Types

3.1.1 Integer Data Types

3.1.2 Real Data Types

3.1.2.1 General Rules for Real Constants

3.1.2.2 REAL(4) Constants

3.1.2.3 REAL(8) or DOUBLE PRECISION Constants

3.1.2.4 REAL(16) Constants (VMS, U*X)

3.1.3 Complex Data Types

3.1.3.1 General Rules for Complex Constants

3.1.3.2 COMPLEX(4) Constants

3.1.3.3 COMPLEX(8) or DOUBLE COMPLEX Constants

3.1.4 Logical Data Types

3.1.5 Character Data Type

3.1.5.1 C Strings in Character Constants

3.1.5.2 Character Substrings

3.2 Derived Data Types

3.2.1 Derived-Type Definition

3.2.2 Default Initialization

3.2.3 Structure Components

3.2.4 Structure Constructors

3.3 Binary, Octal, Hexadecimal, and Hollerith Constants

3.3.1 Binary Constants

3.3.2 Octal Constants

3.3.3 Hexadecimal Constants

3.3.4 Hollerith Constants

3.3.5 Determining the Data Type of Nondecimal Constants

3.4 Variables

3.4.1 Data Types of Scalar Variables

3.4.1.1 Specification of Data Type

3.4.1.2 Implicit Typing Rules

3.4.2 Arrays

3.4.2.1 Whole Arrays

3.4.2.2 Array Elements

3.4.2.3 Array Sections

3.4.2.4 Array Constructors

3.4.2.5 Data Mapping of Arrays (U*X only)

4 Expressions and Assignment Statements

4.1 Expressions

4.1.1 Numeric Expressions

4.1.1.1 Using Parentheses in Numeric Expressions

4.1.1.2 Data Type of Numeric Expressions

4.1.2 Character Expressions

4.1.3 Relational Expressions

4.1.4 Logical Expressions

4.1.5 Defined Operations

4.1.6 Summary of Operator Precedence

4.1.7 Initialization and Specification Expressions

4.1.7.1 Initialization Expressions

4.1.7.2 Specification Expressions

4.2 Assignment Statements

4.2.1 Intrinsic Assignments

4.2.1.1 Numeric Assignment Statements

4.2.1.2 Logical Assignment Statements

4.2.1.3 Character Assignment Statements

4.2.1.4 Derived-Type Assignment Statements

4.2.1.5 Array Assignment Statements

4.2.2 Defined Assignments

4.2.3 Pointer Assignments

4.2.4 WHERE Statement and Construct

4.2.5 FORALL Statement and Construct

5 Specification Statements

5.1 Type Declaration Statements

5.1.1 Declaration Statements for Noncharacter Types

5.1.2 Declaration Statements for Character Types

5.1.3 Declaration Statements for Derived Types

5.1.4 Declaration Statements for Arrays

5.1.4.1 Explicit-Shape Specifications

5.1.4.2 Assumed-Shape Specifications

5.1.4.3 Assumed-Size Specifications

5.1.4.4 Deferred-Shape Specifications

5.2 ALLOCATABLE Attribute and Statement

5.3 AUTOMATIC and STATIC Attributes and Statements

5.4 COMMON Statement

5.5 DATA Statement

5.6 DIMENSION Attribute and Statement

5.7 EQUIVALENCE Statement

5.7.1 Making Arrays Equivalent

5.7.2 Making Substrings Equivalent

5.7.3 EQUIVALENCE and COMMON Interaction

5.8 EXTERNAL Attribute and Statement

5.9 IMPLICIT Statement

5.10 INTENT Attribute and Statement

5.11 INTRINSIC Attribute and Statement

5.12 NAMELIST Statement

5.13 OPTIONAL Attribute and Statement

5.14 PARAMETER Attribute and Statement

5.15 POINTER Attribute and Statement

5.16 PRIVATE and PUBLIC Attributes and Statements

5.17 SAVE Attribute and Statement

5.18 TARGET Attribute and Statement

5.19 VOLATILE Attribute and Statement

6 Dynamic Allocation

6.1 ALLOCATE Statement

6.1.1 Allocation of Allocatable Arrays

6.1.2 Allocation of Pointer Targets

6.2 DEALLOCATE Statement

6.2.1 Deallocation of Allocatable Arrays

6.2.2 Deallocation of Pointer Targets

6.3 NULLIFY Statement

7 Execution Control

7.1 Branch Statements

7.1.1 Unconditional GO TO Statement

7.1.2 Computed GO TO Statement

7.1.3 The ASSIGN and Assigned GO TO Statements

7.1.3.1 ASSIGN Statement

7.1.3.2 Assigned GO TO Statement

7.1.4 Arithmetic IF Statement

7.2 CALL Statement

7.3 CASE Construct

7.4 CONTINUE Statement

7.5 DO Constructs

7.5.1 Forms for DO Constructs

7.5.2 Execution of DO Constructs

7.5.2.1 Iteration Loop Control

7.5.2.2 Nested DO Constructs

7.5.2.3 Extended Range

7.5.3 DO WHILE Statement

7.5.4 CYCLE Statement

7.5.5 EXIT Statement

7.6 END Statement

7.7 IF Construct and Statement

7.7.1 IF Construct

7.7.2 IF Statement

7.8 PAUSE Statement

7.9 RETURN Statement

7.10 STOP Statement

8 Program Units and Procedures

8.1 Main Program

8.2 Modules and Module Procedures

8.2.1 Module References

8.2.2 USE Statement

8.3 Block Data Program Units

8.4 Functions, Subroutines, and Statement Functions

8.4.1 General Rules for Function and Subroutine Subprograms

8.4.1.1 Recursion

8.4.1.2 Pure Procedures

8.4.1.3 Elemental Procedures

8.4.2 Functions

8.4.2.1 RESULT Keyword

8.4.2.2 Function References

8.4.3 Subroutines

8.4.4 Statement Functions

8.5 External Procedures

8.6 Internal Procedures

8.7 Argument Association

8.7.1 Optional Arguments

8.7.2 Array Arguments

8.7.3 Pointer Arguments

8.7.4 Assumed-Length Character Arguments

8.7.5 Character Constant and Hollerith Arguments

8.7.6 Alternate Return Arguments

8.7.7 Dummy Procedure Arguments

8.7.8 References to Generic Procedures

8.7.8.1 References to Generic Intrinsic Functions

8.7.8.2 References to Elemental Intrinsic Procedures

8.7.9 References to Non-Fortran Procedures

8.7.9.1 %DESCR (VMS only), %REF, and %VAL Argument List Functions

8.7.9.2 %LOC Function

8.8 Procedure Interfaces

8.8.1 Determining When Procedures Require Explicit Interfaces

8.8.2 Defining Explicit Interfaces

8.8.3 Defining Generic Names for Procedures

8.8.4 Defining Generic Operators

8.8.5 Defining Generic Assignment

8.9 CONTAINS Statement

8.10 ENTRY Statement

8.10.1 ENTRY Statements in Function Subprograms

8.10.2 ENTRY Statements in Subroutine Subprograms

9 Intrinsic Procedures

9.1 Argument Keywords in Intrinsic Procedures

9.2 Overview of Intrinsic Procedures

9.2.1 Categories of Intrinsic Functions

9.2.2 Intrinsic Subroutines

9.2.3 Bit Functions

9.3 Descriptions of Intrinsic Procedures

9.3.1 ABS (A)

9.3.2 ACHAR (I)

9.3.3 ACOS (X)

9.3.4 ACOSD (X)

9.3.5 ADJUSTL (STRING)

9.3.6 ADJUSTR (STRING)

9.3.7 AIMAG (Z)

9.3.8 AINT (A [,KIND])

9.3.9 ALL (MASK [,DIM])

9.3.10 ALLOCATED (ARRAY)

9.3.11 ANINT (A [,KIND])

9.3.12 ANY (MASK [,DIM])

9.3.13 ASIN (X)

9.3.14 ASIND (X)

9.3.15 ASM (STRING [,A,...]) (Alpha only)

9.3.16 ASSOCIATED (POINTER [,TARGET])

9.3.17 ATAN (X)

9.3.18 ATAND (X)

9.3.19 ATAN2 (Y, X)

9.3.20 ATAN2D (Y, X)

9.3.21 BIT_SIZE (I)

9.3.22 BTEST (I, POS)

9.3.23 CEILING (A [, KIND])

9.3.24 CHAR (I [,KIND])

9.3.25 CMPLX (X [,Y] [,KIND])

9.3.26 CONJG (Z)

9.3.27 COS (X)

9.3.28 COSD (X)

9.3.29 COSH (X)

9.3.30 COTAN (X)

9.3.31 COTAND (X)

9.3.32 COUNT (MASK [,DIM])

9.3.33 CPU_TIME (TIME)

9.3.34 CSHIFT (ARRAY, SHIFT [,DIM])

9.3.35 DATE (BUF)

9.3.36 DATE_AND_TIME ([DATE] [,TIME] [,ZONE] [,VALUES])

9.3.37 DBLE (A)

9.3.38 DCMPLX (X [,Y])

9.3.39 DFLOAT (A)

9.3.40 DIGITS (X)

9.3.41 DIM (X, Y)

9.3.42 DOT_PRODUCT (VECTOR_A, VECTOR_B)

9.3.43 DPROD (X, Y)

9.3.44 DREAL (A)

9.3.45 EOF (A)

9.3.46 EOSHIFT (ARRAY, SHIFT [,BOUNDARY] [,DIM])

9.3.47 EPSILON (X)

9.3.48 ERRSNS ([IO_ERR] [,SYS_ERR] [,STAT] [,UNIT] [,COND])

9.3.49 EXIT ([STATUS])

9.3.50 EXP (X)

9.3.51 EXPONENT (X)

9.3.52 FLOOR (A [, KIND])

9.3.53 FP_CLASS (X)

9.3.54 FRACTION (X)

9.3.55 FREE (A)

9.3.56 HUGE (X)

9.3.57 IACHAR (C)

9.3.58 IAND (I, J)

9.3.59 IARGCOUNT ( ) (VMS only)

9.3.60 IARGPTR ( )

9.3.61 IBCHNG (I, POS)

9.3.62 IBCLR (I, POS)

9.3.63 IBITS (I, POS, LEN)

9.3.64 IBSET (I, POS)

9.3.65 ICHAR (C)

9.3.66 IDATE (I, J, K)

9.3.67 IEOR (I, J)

9.3.68 ILEN (I)

9.3.69 INDEX (STRING, SUBSTRING [,BACK])

9.3.70 INT (A [,KIND])

9.3.71 IOR (I, J)

9.3.72 ISHA (I, SHIFT)

9.3.73 ISHC (I, SHIFT)

9.3.74 ISHFT (I, SHIFT)

9.3.75 ISHFTC (I, SHIFT [,SIZE])

9.3.76 ISHL (I, SHIFT)

9.3.77 ISNAN (X)

9.3.78 KIND (X)

9.3.79 LBOUND (ARRAY [,DIM])

9.3.80 LEADZ (I)

9.3.81 LEN (STRING)

9.3.82 LEN_TRIM (STRING)

9.3.83 LGE (STRING_A, STRING_B)

9.3.84 LGT (STRING_A, STRING_B)

9.3.85 LLE (STRING_A, STRING_B)

9.3.86 LLT (STRING_A, STRING_B)

9.3.87 LOC (X)

9.3.88 LOG (X)

9.3.89 LOG10 (X)

9.3.90 LOGICAL (L [,KIND])

9.3.91 MALLOC (I)

9.3.92 MATMUL (MATRIX_A, MATRIX_B)

9.3.93 MAX (A1, A2 [,A3,...])

9.3.94 MAXEXPONENT (X)

9.3.95 MAXLOC (ARRAY [,DIM] [,MASK])

9.3.96 MAXVAL (ARRAY [,DIM] [,MASK])

9.3.97 MERGE (TSOURCE, FSOURCE, MASK)

9.3.98 MIN (A1, A2 [,A3,...])

9.3.99 MINEXPONENT (X)

9.3.100 MINLOC (ARRAY [, DIM] [,MASK])

9.3.101 MINVAL (ARRAY [,DIM] [,MASK])

9.3.102 MOD (A, P)

9.3.103 MODULO (A, P)

9.3.104 MULT_HIGH (I, J) (Alpha only)

9.3.105 MVBITS (FROM, FROMPOS, LEN, TO, TOPOS)

9.3.106 NEAREST (X, S)

9.3.107 NINT (A [,KIND])

9.3.108 NOT (I)

9.3.109 NULL ([MOLD])

9.3.110 NUMBER_OF_PROCESSORS ([DIM])

9.3.111 NWORKERS ( )

9.3.112 PACK (ARRAY, MASK [,VECTOR])

9.3.113 POPCNT (I)

9.3.114 POPPAR (I)

9.3.115 PRECISION (X)

9.3.116 PRESENT (A)

9.3.117 PROCESSORS_SHAPE ( )

9.3.118 PRODUCT (ARRAY [,DIM] [,MASK])

9.3.119 QEXT (A) (VMS, U*X)

9.3.120 QFLOAT (A) (VMS, U*X)

9.3.121 RADIX (X)

9.3.122 RAN (I)

9.3.123 RANDOM_NUMBER (HARVEST)

9.3.124 RANDOM_SEED ([SIZE] [,PUT] [,GET])

9.3.125 RANDU (I1, I2, X)

9.3.126 RANGE (X)

9.3.127 REAL (A [,KIND])

9.3.128 REPEAT (STRING, NCOPIES)

9.3.129 RESHAPE (SOURCE, SHAPE [,PAD] [,ORDER])

9.3.130 RRSPACING (X)

9.3.131 SCALE (X, I)

9.3.132 SCAN (STRING, SET [,BACK])

9.3.133 SECNDS (X)

9.3.134 SELECTED_INT_KIND (R)

9.3.135 SELECTED_REAL_KIND ([P] [,R])

9.3.136 SET_EXPONENT (X, I)

9.3.137 SHAPE (SOURCE)

9.3.138 SIGN (A, B)

9.3.139 SIN (X)

9.3.140 SIND (X)

9.3.141 SINH (X)

9.3.142 SIZE (ARRAY [,DIM])

9.3.143 SIZEOF (X)

9.3.144 SPACING (X)

9.3.145 SPREAD (SOURCE, DIM, NCOPIES)

9.3.146 SQRT (X)

9.3.147 SUM (ARRAY [,DIM] [,MASK])

9.3.148 SYSTEM_CLOCK ([COUNT] [,COUNT_RATE] [,COUNT_MAX])

9.3.149 TAN (X)

9.3.150 TAND (X)

9.3.151 TANH (X)

9.3.152 TIME (BUF)

9.3.153 TINY (X)

9.3.154 TRAILZ (I)

9.3.155 TRANSFER (SOURCE, MOLD [,SIZE])

9.3.156 TRANSPOSE (MATRIX)

9.3.157 TRIM (STRING)

9.3.158 UBOUND (ARRAY [,DIM])

9.3.159 UNPACK (VECTOR, MASK, FIELD)

9.3.160 VERIFY (STRING, SET [,BACK])

9.3.161 ZEXT (X)

10 Data Transfer I/O Statements

10.1 Records and Files

10.2 Components of Data Transfer Statements

10.2.1 I/O Control List

10.2.1.1 Unit Specifier

10.2.1.2 Format Specifier

10.2.1.3 Namelist Specifier

10.2.1.4 Record Specifier

10.2.1.5 Key-Field-Value Specifier (VMS only)

10.2.1.6 Key-of-Reference Specifier (VMS only)

10.2.1.7 I/O Status Specifier

10.2.1.8 Branch Specifiers

10.2.1.9 Advance Specifier

10.2.1.10 Character Count Specifier

10.2.2 I/O Lists

10.2.2.1 Simple List Items in I/O Lists

10.2.2.2 Implied-Do Lists in I/O Lists

10.3 READ Statements

10.3.1 Forms for Sequential READ Statements

10.3.1.1 Rules for Formatted Sequential READ Statements

10.3.1.2 Rules for List-Directed Sequential READ Statements

10.3.1.3 Rules for Namelist Sequential READ Statements

10.3.1.4 Rules for Unformatted Sequential READ Statements

10.3.2 Forms for Direct-Access READ Statements

10.3.2.1 Rules for Formatted Direct-Access READ Statements

10.3.2.2 Rules for Unformatted Direct-Access READ Statements

10.3.3 Forms for Indexed READ Statements (VMS only)

10.3.3.1 Rules for Formatted Indexed READ Statements (VMS only)

10.3.3.2 Rules for Unformatted Indexed READ Statements (VMS only)

10.3.4 Forms and Rules for Internal READ Statements

10.4 ACCEPT Statement

10.5 WRITE Statements

10.5.1 Forms for Sequential WRITE Statements

10.5.1.1 Rules for Formatted Sequential WRITE Statements

10.5.1.2 Rules for List-Directed Sequential WRITE Statements

10.5.1.3 Rules for Namelist Sequential WRITE Statements

10.5.1.4 Rules for Unformatted Sequential WRITE Statements

10.5.2 Forms for Direct-Access WRITE Statements

10.5.2.1 Rules for Formatted Direct-Access WRITE Statements

10.5.2.2 Rules for Unformatted Direct-Access WRITE Statements

10.5.3 Forms for Indexed WRITE Statements (VMS only)

10.5.3.1 Rules for Formatted Indexed WRITE Statements (VMS only)

10.5.3.2 Rules for Unformatted Indexed WRITE Statements (VMS only)

10.5.4 Forms and Rules for Internal WRITE Statements

10.6 PRINT and TYPE Statements

10.7 REWRITE Statement

11 I/O Formatting

11.1 Format Specifications

11.2 Data Edit Descriptors

11.2.1 Forms for Data Edit Descriptors

11.2.2 General Rules for Numeric Editing

11.2.3 Integer Editing

11.2.3.1 I Editing

11.2.3.2 B Editing

11.2.3.3 O Editing

11.2.3.4 Z Editing

11.2.4 Real and Complex Editing

11.2.4.1 F Editing

11.2.4.2 E and D Editing

11.2.4.3 EN Editing

11.2.4.4 ES Editing

11.2.4.5 G Editing

11.2.4.6 Complex Editing

11.2.5 Logical Editing (L)

11.2.6 Character Editing (A)

11.2.7 Default Widths for Data Edit Descriptors

11.2.8 Terminating Short Fields of Input Data

11.3 Control Edit Descriptors

11.3.1 Forms for Control Edit Descriptors

11.3.2 Positional Editing

11.3.2.1 T Editing

11.3.2.2 TL Editing

11.3.2.3 TR Editing

11.3.2.4 X Editing

11.3.3 Sign Editing

11.3.3.1 SP Editing

11.3.3.2 SS Editing

11.3.3.3 S Editing

11.3.4 Blank Editing

11.3.4.1 BN Editing

11.3.4.2 BZ Editing

11.3.5 Scale Factor Editing (P)

11.3.6 Slash Editing (/)

11.3.7 Colon Editing (:)

11.3.8 Dollar Sign ($) and Backslash (\) Editing

11.3.9 Character Count Editing (Q)

11.4 Character String Edit Descriptors

11.4.1 Character Constant Editing

11.4.2 H Editing

11.5 Nested and Group Repeat Specifications

11.6 Variable Format Expressions

11.7 Printing of Formatted Records

11.8 Interaction Between Format Specifications and I/O Lists

12 File Operation I/O Statements on OpenVMS Systems

12.1 BACKSPACE Statement

12.2 CLOSE Statement

12.3 DELETE Statement

12.4 ENDFILE Statement

12.5 INQUIRE Statement

12.5.1 ACCESS Specifier

12.5.2 ACTION Specifier

12.5.3 BLANK Specifier

12.5.4 BUFFERED Specifier

12.5.5 CARRIAGECONTROL Specifier

12.5.6 CONVERT Specifier

12.5.7 DELIM Specifier

12.5.8 DIRECT Specifier

12.5.9 EXIST Specifier

12.5.10 FORM Specifier

12.5.11 FORMATTED Specifier

12.5.12 KEYED Specifier

12.5.13 NAME Specifier

12.5.14 NAMED Specifier

12.5.15 NEXTREC Specifier

12.5.16 NUMBER Specifier

12.5.17 OPENED Specifier

12.5.18 ORGANIZATION Specifier

12.5.19 PAD Specifier

12.5.20 POSITION Specifier

12.5.21 READ Specifier

12.5.22 READWRITE Specifier

12.5.23 RECL Specifier

12.5.24 RECORDTYPE Specifier

12.5.25 SEQUENTIAL Specifier

12.5.26 UNFORMATTED Specifier

12.5.27 WRITE Specifier

12.6 OPEN Statement

12.6.1 ACCESS Specifier

12.6.2 ACTION Specifier

12.6.3 ASSOCIATEVARIABLE Specifier

12.6.4 BLANK Specifier

12.6.5 BLOCKSIZE Specifier

12.6.6 BUFFERCOUNT Specifier

12.6.7 BUFFERED Specifier

12.6.8 CARRIAGECONTROL Specifier

12.6.9 CONVERT Specifier

12.6.10 DEFAULTFILE Specifier

12.6.11 DELIM Specifier

12.6.12 DISPOSE Specifier

12.6.13 EXTENDSIZE Specifier

12.6.14 FILE Specifier

12.6.15 FORM Specifier

12.6.16 INITIALSIZE Specifier

12.6.17 KEY Specifier

12.6.18 MAXREC Specifier

12.6.19 NAME Specifier

12.6.20 NOSPANBLOCKS Specifier

12.6.21 ORGANIZATION Specifier

12.6.22 PAD Specifier

12.6.23 POSITION Specifier

12.6.24 READONLY Specifier

12.6.25 RECL Specifier

12.6.26 RECORDSIZE Specifier

12.6.27 RECORDTYPE Specifier

12.6.28 SHARED Specifier

12.6.29 STATUS Specifier

12.6.30 TYPE Specifier

12.6.31 USEROPEN Specifier

12.7 REWIND Statement

12.8 UNLOCK Statement

13 File Operation I/O Statements on DIGITAL UNIX, Windows NT, and Windows 95 Systems

13.1 BACKSPACE Statement

13.2 CLOSE Statement

13.3 DELETE Statement

13.4 ENDFILE Statement

13.5 INQUIRE Statement

13.5.1 ACCESS Specifier

13.5.2 ACTION Specifier

13.5.3 BINARY Specifier (WNT, W95)

13.5.4 BLANK Specifier

13.5.5 BLOCKSIZE Specifier (WNT, W95)

13.5.6 BUFFERED Specifier

13.5.7 CARRIAGECONTROL Specifier

13.5.8 CONVERT Specifier

13.5.9 DELIM Specifier

13.5.10 DIRECT Specifier

13.5.11 EXIST Specifier

13.5.12 FORM Specifier

13.5.13 FORMATTED Specifier

13.5.14 IOFOCUS Specifier (WNT, W95)

13.5.15 MODE Specifier (WNT, W95)

13.5.16 NAME Specifier

13.5.17 NAMED Specifier

13.5.18 NEXTREC Specifier

13.5.19 NUMBER Specifier

13.5.20 OPENED Specifier

13.5.21 ORGANIZATION Specifier

13.5.22 PAD Specifier

13.5.23 POSITION Specifier

13.5.24 READ Specifier

13.5.25 READWRITE Specifier

13.5.26 RECL Specifier

13.5.27 RECORDTYPE Specifier

13.5.28 SEQUENTIAL Specifier

13.5.29 SHARE Specifier (WNT, W95)

13.5.30 UNFORMATTED Specifier

13.5.31 WRITE Specifier

13.6 OPEN Statement

13.6.1 ACCESS Specifier

13.6.2 ACTION Specifier

13.6.3 ASSOCIATEVARIABLE Specifier

13.6.4 BLANK Specifier

13.6.5 BLOCKSIZE Specifier

13.6.6 BUFFERCOUNT Specifier

13.6.7 BUFFERED Specifier

13.6.8 CARRIAGECONTROL Specifier

13.6.9 CONVERT Specifier

13.6.10 DEFAULTFILE Specifier

13.6.11 DELIM Specifier

13.6.12 DISPOSE Specifier

13.6.13 FILE Specifier

13.6.14 FORM Specifier

13.6.15 IOFOCUS Specifier (WNT, W95)

13.6.16 MAXREC Specifier

13.6.17 MODE Specifier (WNT, W95)

13.6.18 NAME Specifier

13.6.19 ORGANIZATION Specifier

13.6.20 PAD Specifier

13.6.21 POSITION Specifier

13.6.22 READONLY Specifier

13.6.23 RECL Specifier

13.6.24 RECORDSIZE Specifier

13.6.25 RECORDTYPE Specifier

13.6.26 SHARE Specifier (WNT, W95)

13.6.27 SHARED Specifier

13.6.28 STATUS Specifier

13.6.29 TITLE Specifier (WNT, W95)

13.6.30 TYPE Specifier

13.6.31 USEROPEN Specifier

13.7 REWIND Statement

13.8 UNLOCK Statement

14 Compilation Control Statements and Compiler Directives

14.1 Compilation Control Statements

14.1.1 INCLUDE Statement

14.1.2 OPTIONS Statement

14.2 Compiler Directives

14.2.1 General Directives

14.2.1.1 Syntax Rules for General Directives

14.2.1.2 ALIAS Directive

14.2.1.3 ATTRIBUTES Directive

14.2.1.4 DECLARE or NODECLARE Directives

14.2.1.5 DEFINE and UNDEFINE Directives

14.2.1.6 FIXEDFORMLINESIZE Directive

14.2.1.7 FREEFORM and NOFREEFORM Directives

14.2.1.8 IDENT Directive

14.2.1.9 IF and IF DEFINED Directives

14.2.1.10 INTEGER Directive

14.2.1.11 MESSAGE Directive

14.2.1.12 OBJCOMMENT Directive

14.2.1.13 OPTIONS Directive

14.2.1.14 PACK Directive

14.2.1.15 PSECT Directive

14.2.1.16 REAL Directive

14.2.1.17 STRICT and NOSTRICT Directives

14.2.1.18 TITLE and SUBTITLE Directives

14.2.2 High Performance Fortran Directives for DIGITAL UNIX Systems

14.2.2.1 Syntax Rules for HPF Directives (U*X only)

14.2.2.2 ALIGN Directive (U*X only)

14.2.2.3 DISTRIBUTE Directive (U*X only)

14.2.2.4 INDEPENDENT Directive (U*X only)

14.2.2.5 INHERIT Directive (U*X only)

14.2.2.6 PROCESSORS Directive (U*X only)

14.2.2.7 [NO]SEQUENCE Directive (U*X only)

14.2.2.8 TEMPLATE Directive (U*X only)

15 Scope and Association

15.1 Scope

15.2 Unambiguous Generic Procedure References

15.3 Resolving Procedure References

15.3.1 References to Generic Names

15.3.2 References to Specific Names

15.3.3 References to Nonestablished Names

15.4 Association

15.4.1 Name Association

15.4.1.1 Argument Association

15.4.1.2 Use and Host Association

15.4.2 Pointer Association

15.4.3 Storage Association

15.4.3.1 Storage Units and Storage Sequence

15.4.3.2 Array Association

A Obsolescent and Deleted Language Features

A.1 Obsolescent Language Features in Fortran 90

A.2 Deleted Language Features in Fortran 95

A.3 Obsolescent Language Features in Fortran 95

B Additional Language Features

B.1 DEFINE FILE Statement

B.2 The ENCODE and DECODE Statements

B.3 FIND Statement

B.4 Alternative Syntax for the PARAMETER Statement

B.5 VIRTUAL Statement

B.6 Alternative Syntax for Octal and Hexadecimal Constants

B.7 Alternative Syntax for a Record Specifier

B.8 Alternative Syntax for the DELETE Statement

B.9 Alternative Form for Namelist External Records

B.10 The DIGITAL Fortran POINTER Statement

B.11 Record Structures

B.11.1 Structure Declarations

B.11.1.1 Type Declarations

B.11.1.2 Substructure Declarations

B.11.1.3 Union Declarations

B.11.2 RECORD Statement

B.11.3 References to Record Fields

B.11.4 Aggregate Assignment

C The ASCII and DEC Multinational Character Sets for OpenVMS and DIGITAL UNIX

C.1 The ASCII Character Set (VMS, U*X)

C.2 The DEC Multinational Character Set (VMS, U*X)

D Data Representation Models

D.1 Model for Integer Data

D.2 Model for Real Data

D.3 Model for Bit Data

E Run-Time Library Module Routines on Windows NT and Windows 95 Systems

E.1 Portability Routines (WNT, W95)

E.2 QuickWin Routines (WNT, W95)

E.3 Graphics Routines (WNT, W95)

E.4 Dialog Routines (WNT, W95)

E.5 National Language Support Routines (WNT, W95)

E.6 Miscellaneous Run-Time Routines (WNT, W95)

E.7 DFCOM Routines (WNT, W95)

E.8 DFAUTO Routines (WNT, W95)

F High Performance Fortran (HPF) Library Routines on DIGITAL UNIX Systems

G Summary of Language Extensions

G.1 DIGITAL Fortran Language Extensions

G.2 High Performance Fortran Language Extensions

Glossary

Index

Examples

6-1 Allocating Virtual Memory

8-1 Using and Redefining an Intrinsic Function Name

11-1 Interaction Between Format Specifications and I/O Lists

14-1 Including Text from a File

15-1 Example of Name, Pointer, and Storage Association

Figures

1-1 Graphic Representation of DIGITAL Fortran

2-1 Required Order of Statements

2-2 Line Formatting Example

3-1 Array Storage

4-1 Conversion Rules for Numeric Assignment Statements

5-1 Equivalence of Substrings

5-2 Equivalence of Character Arrays

5-3 A Valid Extension of a Common Block

5-4 An Invalid Extension of a Common Block

7-1 Flow of Control in CASE Constructs

7-2 Nested DO Constructs

7-3 Control Transfers and Extended Range

7-4 Flow of Control in IF Constructs

B-1 Memory Map of Structure APPOINTMENT

B-2 Memory Map of Structure WORDS_LONG

C-1 Graphic Representation of the ASCII Character Set

C-2 Graphic Representation of the DEC Multinational Extension to the ASCII Character Set

Tables

1 Conventions Used in This Manual

2-1 Statements Restricted in Scoping Units

2-2 Indicators in Source Forms

3-1 C-Style Escape Sequences

4-1 Precedence of Expression Operators

5-1 Compatible Attributes

5-2 Noncharacter Data Types

5-3 Equivalence of Array Storage

5-4 Equivalence of Arrays with Nonunity Lower Bounds

8-1 Defaults for Argument List Functions

9-1 Functions Not Allowed as Actual Arguments

9-2 Categories of Intrinsic Functions

9-3 Summary of Generic Intrinsic Functions

9-4 Intrinsic Subroutines

10-1 Default Formats for List-Directed Output

11-1 Summary of Edit Descriptors

11-2 Effect of Data Magnitude on G Format Conversions

11-3 Size Limits for Noncharacter Data Using A Editing

11-4 Default Widths for Data Edit Descriptors

11-5 Control Characters for Printing

12-1 OPEN Statement Specifiers and Values on OpenVMS Systems

12-2 Maximum Record Lengths (RECL) on OpenVMS Systems

12-3 Default Record Lengths (RECL) on OpenVMS Systems

13-1 OPEN Statement Specifiers and Values on DIGITAL UNIX, Windows NT, and Windows 95 Systems

13-2 Maximum Record Lengths (RECL) on DIGITAL UNIX, Windows NT, and Windows 95 Systems

13-3 Default Record Lengths (RECL) on DIGITAL UNIX, Windows NT, and Windows 95 Systems

14-1 Common Block Defaults and PSECT Modification

15-1 Scope of Program Entities

15-2 Data Type Storage Requirements

E-1 Summary of Portability Routines (WNT, W95)

E-2 Summary of Quickwin Routines (WNT, W95)

E-3 Summary of Graphics Routines (WNT, W95)

E-4 Summary of Dialog Routines (WNT, W95)

E-5 Summary of NLS Routines (WNT, W95)

E-6 Summary of Miscellaneous Run-Time Routines (WNT, W95)

E-7 Summary of DFCOM Routines (WNT, W95)

E-8 Summary of DFAUTO Routines (WNT, W95)

F-1 Summary of DIGITAL Fortran 3hpf Routines (U*X only)


(no previous page) Next Page