FORTRAN 77 言語リファレンス ホーム目次前ページへ次ページへ索引


付録 B

文の例

この付録では、f77 構文の型の選ばれた例を表に示します。この表は、各文の型の一般的なバリエーションに関する構文の早見表になっています。

規格外の機能には、普通小さなシンボル記号 (©) を付けます。

この表では、次の規約を使用します。

表 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) 


AB を初期化
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'/


BC を初期化 ©
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 倍精度複素数 ©
UV を初期化 ©
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 ©
UV を初期化
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 /
AC を初期化 ©
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 /
AC を初期化 ©
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
内部直接探査 ©



サン・マイクロシステムズ株式会社
Copyright information. All rights reserved.
ホーム   |   目次   |   前ページへ   |   次ページへ   |   索引