表 B-1 Fortran 77 文の例
ACCEPT ©
|
ACCEPT *, A, I
|
READ を参照
|
ASSIGN
|
ASSIGN 9 TO I
|
|
ASSIGNMENT
|
C = 'abc'
C = "abc"
C = S // 'abc'
C = S(I:M)
|
文字 ©
|
L = L1 .OR. L2
L = I .LE. 80
|
論理
|
N = N+1
X = '7FF00000'x
|
算術
16 進 ©
|
CURR = NEXT
NEXT.ID = 82
|
RECORD を参照
|
AUTOMATIC ©
|
AUTOMATIC A, B, C
AUTOMATIC REAL P, D, Q
IMPLICIT AUTOMATIC REAL (X-Z)
|
|
BACKSPACE
|
BACKSPACE U
BACKSPACE( UNIT=U, IOSTAT=I, ERR=9 )
|
|
BLOCK DATA
|
BLOCK DATA
BLOCK DATA COEFFS
|
|
BYTE ©
|
BYTE A, B, C
BYTE A, B, C(10)
BYTE A /'x'/, B /255/, C(10)
|
A と B を初期化
|
CALL
|
CALL P( A, B )
CALL P( A, B, *9 )
CALL P( A, B, &9 )
CALL P
|
選択戻り
選択戻り ©
|
CHARACTER
|
CHARACTER C*80, D*1(4)
CHARACTER*18 A, B, C
CHARACTER A, B*3 /'xyz'/, C /'z'/
|
B と C を初期化 ©
|
CLOSE
|
CLOSE ( UNIT=I )
CLOSE( UNIT=U, ERR=90, IOSTAT=I )
|
|
COMMON
|
COMMON / DELTAS / H, P, T
COMMON X, Y, Z
COMMON P, D, Q(10,100)
|
|
COMPLEX
|
COMPLEX U, V, U(3,6)
COMPLEX U*16
COMPLEX U*32 SPARC のみ
COMPLEX U / (1.0,1.0) /, V /(1.0,10.0) /
|
倍精度複素数 ©
4 倍精度複素数 ©
U と V を初期化 ©
|
CONTINUE
|
100 CONTINUE
|
|
DATA
|
DATA A, C / 4.01, 'z' /
DATA (V(I),I=1,3) /.7, .8, .9/
DATA ARRAY(4,4) / 1.0 /
DATA B,O,X,Y /B'0011111', O'37', X'1f',
Z'1f'/
|
©
|
DECODE ©
|
DECODE ( 4, 1, S ) V
|
|
DIMENSION
|
DIMENSION ARRAY(4, 4)
DIMENSION V(1000), W(3)
|
|
DO
|
DO 100 I = INIT, LAST, INCR
...
100 CONTINUE
|
|
|
DO I = INIT, LAST
...
END DO
|
文番号なし DO ©
|
|
DO WHILE ( DIFF .LE. DELTA )
...
END DO
|
DO WHILE ©
|
|
DO 100 WHILE ( DIFF .LE. DELTA )
...
100 CONTINUE
|
©
|
DOUBLE COMPLEX ©
|
DOUBLE COMPLEX U, V
DOUBLE COMPLEX U, V
COMPLEX U / (1.0,1.0D0) /, V / (1.0,1.0D0) /
|
Complex*16 ©
Complex ©
U と V を初期化
|
DOUBLE
PRECISION
|
DOUBLE PRECISION A, D, Y(2)
DOUBLE PRECISION A, D / 1.2D3 /, Y(2)
|
REAL*8 ©
D を初期化 ©
|
ELSE
|
ELSE
|
IF (ブロック) を 参照
|
ELSE IF
|
ELSE IF
|
|
ENCODE ©
|
ENCODE( 4, 1, T ) A, B, C
|
|
END
|
END
|
|
END DO ©
|
END DO
|
DO を参照
|
ENDFILE
|
ENDFILE ( UNIT=I )
ENDFILE I
ENDFILE( UNIT=U, IOSTAT=I, ERR=9 )
|
|
END IF
|
END IF
|
|
END MAP ©
|
END MAP
|
MAP を参照
|
END STRUCTURE
|
END STRUCTURE
|
STRUCTURE を 参照
|
END UNION ©
|
END UNION
|
UNION を参照
|
ENTRY
|
ENTRY SCHLEP( X, Y )
ENTRY SCHLEP( A1, A2, *4 )
ENTRY SCHLEP
|
|
EQUIVALENCE
|
EQUIVALENCE ( V(1), A(1,1) )
EQUIVALENCE ( V, A )
EQUIVALENCE (X,V(10)), (P,D,Q)
|
|
EXTERNAL
|
EXTERNAL RNGKTA, FIT
|
|
FORMAT
|
10 FORMAT(// 2X, 2I3, 3F6.1, 4E12.2, 2A6,3L2 )
10 FORMAT(// 2D6.1, 3G12.2 )
10 FORMAT( 2I3.3, 3G6.1E3, 4E12.2E3 )
|
|
10 FORMAT('a quoted string', " another", I2)
10 FORMAT( 18Ha hollerith string, I2)
10 FORMAT( 1X, T10, A1, T20, A1 )
|
文字列 ©
ホレリス
タブ
|
10 FORMAT( 5X, TR10, A1, TR10, A1, TL5, A1 )
10 FORMAT(" Init=", I2, :, 3X, "Last=", I2)
10 FORMAT( 1X, "Enter path name ", $ )
|
タブ右、左
:
$
|
10 FORMAT( F4.2, Q, 80 A1 )
10 FORMAT( 'Octal ', O6, ', Hex ' Z6 )
10 FORMAT( 3F<N>.2 )
|
Q ©
8 進、16 進 ©
変数式 ©
|
FUNCTION
|
FUNCTION Z( A, B )
FUNCTION W( P,D, *9 )
CHARACTER FUNCTION R*4(P,D,*9 )
INTEGER*2 FUNCTION M( I, J )
|
短 整数 ©
|
GO TO
|
GO TO 99
|
条件なし
|
GO TO I, ( 10, 50, 99 )
GO TO I
|
代入
|
GO TO ( 10, 50, 99), I
|
計算
|
IF
|
IF ( I -K ) 10, 50, 90
|
算術 IF
|
|
IF ( L ) RETURN
|
論理 IF
|
|
IF ( L ) THEN
N=N+1
CALL CALC
ELSE
K=K+1
CALL DISP
ENDIF
|
ブロック IF
|
|
IF ( C .EQ. 'a' ) THEN
NA=NA+1
CALL APPEND
ELSE IF ( C .EQ. 'b' ) THEN
NB=NB+1
CALL BEFORE
ELSE IF ( C .EQ. 'c' ) THEN
NC=NC+1
CALL CENTER
END IF
|
ELSE IF 付きブロック IF
|
IMPLICIT
|
IMPLICIT COMPLEX (U-W,Z)
IMPLICIT UNDEFINED (A-Z)
|
|
INCLUDE ©
|
INCLUDE 'project02/header'
|
|
INQUIRE
|
INQUIRE( UNIT=3, OPENED=OK )
INQUIRE( FILE='mydata', EXIST=OK )
INQUIRE( UNIT=3, OPENED=OK, IOSTAT=ERRNO )
|
|
INTEGER
|
INTEGER C, D(4)
INTEGER C*2
INTEGER*4 A, B, C
|
短 整数 ©
|
|
INTEGER A/ 100 /, B, C / 9 /
|
A と C を初期化 ©
|
INTRINSIC
|
INTRINSIC SQRT, EXP
|
|
LOGICAL
|
LOGICAL C
LOGICAL B*1, C*1
LOGICAL*1 B, C
LOGICAL*4 A, B, C
|
©
©
©
|
|
LOGICAL B / .FALSE. /, C
|
B を初期化 ©
|
MAP ©
|
MAP
CHARACTER *18 MAJOR
END MAP
MAP
INTEGER*2 CREDITS
CHARACTER*8 GRAD_DATE
END MAP
|
構造体 (STRUCTURE)と 共用体 (UNION) を参照
|
NAMELIST ©
|
NAMELIST /CASE/ S, N, D
|
|
OPEN
|
OPEN( UNIT=3, FILE="data.test" )
OPEN( UNIT=3, IOSTAT=ERRNO )
|
|
OPTIONS ©
|
OPTIONS /CHECK /EXTEND_SOURCE
|
|
PARAMETER
|
PARAMETER (A="xyz"), (PI=3.14)
PARAMETER (A="z", PI=3.14)
PARAMETER X=11, Y=X/3
|
©
|
PAUSE
|
PAUSE
|
|
POINTER ©
|
POINTER ( P, V ), ( I, X )
|
|
PRAGMA ©
|
EXTERNAL RNG, !$PRAGMA C(RNG)
|
C() 指令
|
PROGRAM
|
PROGRAM FIDDLE
|
|
PRINT
|
PRINT *, A, I
|
並びによる
|
|
PRINT 10, A, I
|
書式付き
|
|
PRINT 10, M
|
配列 M
|
|
PRINT 10, (M(I),I=J,K)
|
DO 型並び
|
|
PRINT 10, C(I:K)
|
部分列
|
|
PRINT '(A6,I3)', A, I
PRINT FMT='(A6,I3)', A, I
|
文字定数書式
|
|
PRINT S, I
PRINT FMT=S, I
|
スイッチ変数は書式番号
|
|
PRINT G
|
変数群 ©
|
READ
|
READ *, A, I
|
並びによる
|
|
READ 1, A, I
|
書式付き
|
|
READ 10, M
|
配列 M
|
|
READ 10, (M(I),I=J,K)
|
DO 型並び
|
|
READ 10, C(I:K)
|
部分列
|
|
READ '(A6,I3)', A, I
|
文字定数書式
|
|
READ( 1, 2 ) X, Y
READ( UNIT=1, FMT=2) X,Y
READ( 1, 2, ERR=8,END=9) X,Y
READ( UNIT=1, FMT=2, ERR=8,END=9) X,Y
|
ファイルからの書式付き READ
|
READ( *, 2 ) X, Y
|
標準入力からの書式付き READ
|
READ( *, 10 ) M
|
配列 M
|
READ( *, 10 ) (M(I),I=J,K)
|
DO 型並び
|
READ( *, 10) C(I:K)
|
部分列
|
READ( 1, * ) X, Y
READ( *, * ) X, Y
|
ファイルからの並びによる入力
-- 標準入力から
|
READ( 1, '(A6,I3)') X, Y
READ( 1, FMT='(A6,I3)') X, Y
|
文字定数書式
|
READ( 1, C ) X, Y
READ( 1, FMT=C ) X, Y
|
READ( 1, S ) X, Y
READ( 1, FMT=S ) X, Y
|
スイッチ変数は書式番号付き
|
READ( *, G )
READ( 1, G )
|
変数群 READ ©
ファイルからの変数群 READ ©
|
READ( 1, END=8, ERR=9 ) X, Y
|
書式なし直接探査
|
READ( 1, REC=3 ) V
READ( 1 ' 3 ) V
|
書式なし直接探査
|
READ( 1, 2, REC=3 ) V
|
書式つき直接探査
|
READ( CA, 1, END=8, ERR=9 ) X, Y
|
内部書式付き順次
|
READ( CA, *, END=8, ERR=9 ) X, Y
|
内部リスト指示順番探査 ©
|
READ( CA, REC=4, END=8, ERR=9 ) X, Y
|
内部直接探査 ©
|
REAL
|
REAL R, M(4)
REAL R*4
REAL*8 A, B, C
REAL*16 A, B, C SPARCのみ
|
©
倍精度 ©
4 倍精度 ©
|
|
REAL A / 3.14 /, B, C / 100.0 /
|
A と C を初期化 ©
|
RECORD ©
|
RECORD /PROD/ CURR,PRIOR,NEXT
|
|
RETURN
|
RETURN
RETURN 2
|
標準戻り
選択戻り
|
REWIND
|
REWIND 1
REWIND I
REWIND ( UNIT=U, IOSTAT=I, ERR=9 )
|
|
SAVE
|
SAVE A, /B/, C
SAVE
|
|
STATIC ©
|
STATIC A, B, C
STATIC REAL P, D, Q
IMPLICIT STATIC REAL (X-Z)
|
|
STOP
|
STOP
STOP "all gone"
|
|
STRUCTURE
|
STRUCTURE /PROD/
INTEGER*4 ID / 99 /
CHARACTER*18 NAME
CHARACTER*8 MODEL / 'XL' /
REAL*4 COST
REAL*4 PRICE
END STRUCTURE
|
|
SUBROUTINE
|
SUBROUTINE SHR( A, B, *9 )
SUBROUTINE SHR( A, B, &9 )
SUBROUTINE SHR( A, B )
SUBROUTINE SHR
|
選択戻り ©
|
TYPE ©
|
TYPE *, A, I
|
PRINT を参照
|
UNION ©
|
UNION
MAP
CHARACTER*18 MAJOR
END MAP
MAP
INTEGER*2 CREDITS
CHARACTER*8 GRAD_DATE
END MAP
END UNION
|
構造体 (STRUCTURE) を参照
|
VIRTUAL ©
|
VIRTUAL M(10,10), Y(100)
|
|
VOLATILE ©
|
VOLATILE V, Z, MAT, /INI/
|
|
WRITE
|
WRITE( 1, 2 ) X, Y }
WRITE( UNIT=1, FMT=2 ) X, Y
WRITE( 1, 2, ERR=8, END=9 ) X, Y
WRITE( UNIT=1, FMT=2, ERR=8, END=9 ) X, Y
|
ファイルへの書式付き WRITE
|
|
WRITE( *, 2 ) X, Y
WRITE( *, 10 ) M
|
標準出力への書式付き WRITE
配列 M
|
WRITE( *, 10 ) (M(I),I=J,K)
|
DO 型並び
|
WRITE( *, 10) C(I:K)
|
部分列
|
WRITE( 1, * ) X, Y
WRITE( *, * ) X, Y
|
ファイルへの並びによる WRITE
標準出力への並びによる WRITE
|
WRITE( 1, '(A6,I3)') X, Y
WRITE( 1, FMT='(A6,I3)') X, Y
|
文字定数書式
|
WRITE( 1, C ) X, Y
WRITE( 1, FMT=C ) X, Y
|
文字変数書式
|
WRITE( 1, S ) X, Y
WRITE( 1, FMT=S ) X, Y
|
スイッチ変数は書式番号
|
WRITE( *, CASE )
WRITE( 1, CASE )
|
変数群 WRITE ©
ファイルへの変数群
WRITE ©
|
WRITE( 1, END=8, ERR=9 ) X, Y
|
書式なし順番探査
|
WRITE( 1, REC=3 ) V
WRITE( 1 ' 3 ) V
|
書式なし直接探査
|
WRITE( 1, 2, REC=3 ) V
|
書式付き直接探査
|
WRITE( CA, 1, END=8, ERR=9 ) X, Y
|
内部書式付き順番探査
|
WRITE( CA, *, END=8, ERR=9 ) X, Y
|
並びによる内部順番探査 ©
|
WRITE( CA, REC=4, END=8, ERR=9 ) X, Y
|
内部直接探査 ©
|