Professional Documents
Culture Documents
FORTRAN
FORTRAN
FORTRAN
FORTRAN
FORTRAN
OPEN CLOSE
2
-
READ
-
WRITE PRINT
INQUIRE
FORTRAN
16.1
16.1.1
FORTRAN FORTRAN
FORTRAN
ASCII FORTRAN
FORTRAN
ENDFILE
REWIND BACKSPACE
CLOSE OPEN
16.1.2
CPU
FORTRAN
FORTRAN
FORTRAN
16.1.3
n
1 n-1 n n-1
n
CLOSE
OPEN
1.
2.
16.1.4
FORTRAN
FORTRAN
REWIND BACKSPACE
16.1.5
FORTRAN
NULL BLANK=
16.2
FORTRAN
(R901)
(io-unit)
external-file-unit
*
io-unit
internal-file-unit
0
INQUIRE CLOSE
16-1
SUBROUTINE A
READ (6) X
...
SUBROUTINE B
N=6
REWIND N
16.2.1
OPEN
OPEN CLOSE INQUIRE
CLOSE
CLOSE
OPEN INQUIRE
OPEN
WRITE
16.2.2
OPEN
OPEN OPEN
OPEN (R904)
OPEN ( connect-spec-list )
(connect-spec)(R905)
[ UNIT = ] external-file-unit
IOSTAT = scalar-default-int-variable
ERR = label
FILE = file-name-expr
STATUS = scalar-default-char-expr
ACCESS = scalar-default-char-expr
FORM = scalar-default-char-expr
RECL = scalar-int-expr
BLANK = scalar-default-char-expr
POSITION = scalar-default-char-expr
ACTION = scalar-default-char-expr
DELIM = scalar-default-char-expr
PAD = scalar-default-char-expr
(file-name-expr)(R906)
OPEN
UNIT=(connect-spec-list)
OPEN (external-file-unit)
ERR= OPEN
STATUS= NEW REPLACE FILE=
STATUS= SCRATCH FILE=
STATUS= OLD FILE=
OPEN
OPEN OPEN
FILE=
OPEN
OPEN OPEN
OPEN STATUS= CLOSE
OPEN BLANK=DELIM=
PAD=ERR= IOSTAT=
OPEN POSITION=
OPEN STATUS= OLD
BLANK=DELIM=PAD=
16-2
OPEN (10, FILE = 'employee.names', ACTION = 'READ', PAD = 'YES')
OPEN
1 FILE=
FILE=
OPEN STATUS=
SCRATCH
2 STATUS=
OLDNEWSCRATCHREPLACE UNKNOWN
OLD NEW
SCRATCH
CLOSE
SCRATCH
UNKNOWN
UNKNOWN
3 ACCESS=
SEQUENTIAL DIRECT
SEQUENTIAL
4 FORM=
FORMATTED UNFORMATTED
UNFORMATTED
FORMATTED
5 RECL=
6 BLANK=
NULL ZERO
BLANK=
NULL
ZERO 0
NULL
7. POSITION=
ASISREWIND APPEND
REWIND
APPEND
ASIS ASIS
ASIS
8. ACTION=
READWRITEREADWRITE
WRITE READ
READWRITE
9. DELIM=
APOSTROPHEQUOTENONE
APOSTROPHE
QUOTE
NONE
NONE
10. PAD=
YESNO
YES
NO
YES
16.2.3
CLOSE
CLOSE
CLOSE (R907)
CLOSE ( close-spec-list )
(close-spec)(R908)
[ UNIT = ] external-file-unit
IOSTAT = scalar-default-int-variable
ERR = label
STATUS = scalar-default-char-expr
CLOSE
UNIT=
ERR= CLOSE
CLOSE
OPEN
CLOSE
CLOSE
CLOSE
SCRATCH
DELETE KEEP
16-3
CLOSE (10, STATUS = 'KEEP')
CLOSE STATUS=
KEEPDELETE
KEEP CLOSE
KEEP CLOSE
DELETE CLOSE
16.3
READ
WRITE PRINT
READ (R909)
READ ( io-control-spec-list ) [ input-item-list ]
READ format [ , input-item-list ]
WRITE (R910)
WRITE ( io-control-spec-list ) [ output-item-list ]
PRINT (R911)
PRINT format [ , output-item-list ]
16-4
READ (6, *) SIZE
READ 10, A, B
WRITE (6, 10) A, S, J
PRINT 10, A, S, J
10 FORMAT (2E16.3, I5)
16.3.1
(R912)
[ UNIT = ] io-unit
[ FMT = ] format
[ NML = ] namelist-group-name
REC = scalar-int-expr
IOSTAT = scalar-default-int-variable
ERR = label
END = label
ADVANCE = scalar-default-char-expr
SIZE = scalar-default-int-variable
EOR = label
UNIT=
FMT=
UNIT=
NML=
UNIT=
REC=
REC= END=
ADVANCE=
EOR= ADVANCE=
SIZE= ADVANCE=
SIZE= NO ADVANCE=
EOR= NO ADVANCE=
IOSTAT= SIZE=
do do
IOSTAT= SIZE=
do
16-5 READ
READ (IOSTAT = IOS, UNIT = 6, FMT = '(10F8.2)') A, B
1. FMT=
FMT=(R913)
default-char-expr
label
(label) FORMAT
(default-char-expr)
7
*
16-6
READ (6, FMT = "(" // CHAR_FMT // ")" ) X, Y, Z
CHAR_FMT
2. NML=
NML=
3. REC=
The REC=
REC=
4. IOSTAT=
IOSTAT= IOSTAT=
16-7
READ (FMT = "(E8.3)", UNIT = 3, IOSTAT = IOSS) X
IF (IOSS < 0) THEN
! 3 .
CALL END_PROCESSING
ELSE IF (IOSS > 0) THEN
!
CALL ERROR_PROCESSING
END IF
5.
ERR=
IOSTAT=
READ SIZE=
ERR=
6.
END=
IOSTAT=
END=
7.
EOR=
PAD= YES
IOSTAT=
SIZE=
EOR=
8. ADVANCE=
(scalar-default-char-expr) YES NO
NO
YES
YES
9. SIZE=
SIZE=
16.3.2
(input-item)(R914)
variable
io-implied-do
(output-item)(R915)
expr
io-implied-do
do (io-implied-do)(R916)
( io-implied-do-object-list , io-implied-do-control )
do (io-implied-do-object)(R917)
input-item
output-item
do (io-implied-do-control)(R918)
do-variable = scalar-int-expr , &
& scalar-int-expr [ , scalar-int-expr ]
do
(input-item-list) do (io-implied-do-object)
(output-item-list) do (io-implied-do-object)
do do do
do do do do
do
do DO
16-8
INTEGER A (100), J (100)
...
READ *, A (A) !
READ *, A (LBOUND (A, 1) : UBOUND (A, 1)) !
READ *, A (J) ! J
READ *, A (A (1) : A (10)) !
16-9
WRITE (LP, FMT = '(10F8.2)') (LOG (A (I)), I = 1, N + 9, K), G
do
16.3.3
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8) IOSTAT= SIZE=
16.3.4
16-1
16-1
1
PRINT WRITE
16.3.5
(namelist-group-object-list)
(/)
16.4
ENDFILE (R920)
ENDFILE external-file-unit
ENDFILE ( position-spec-list )
REWIND (R921)
REWIND external-file-unit
REWIND ( position-spec-list )
(position-spec)(R922)
[ UNIT = ] external-file-unit
IOSTAT = scalar-default-int-variable
ERR = label
ERR=
UNIT=
ACTION= READ
ENDFILE
16.4.1
BACKSPACE
BACKSPACE
BACKSPACE
16-10 BACKSPACE
BACKSPACE (10, ERR = 20)
16.4.2
ENDFILE
ENDFILE
ENDFILE
BACKSPACE REWIND
ENDFILE
16-11
ENDFILE K
16.4.3
ENDFILE
REWIND
REWIND
REWIND
REWIND
16-12
REWIND 10
REWIND
16.5
INQUIRE
INQUIRE
FILE=
UNIT=
IOLENGTH=
INQUIRE
INQUIRE
INQUIRE (R923)
INQUIRE ( inquire-spec-list )
INQUIRE ( IOLENGTH = scalar-default-int-variable ) &
&output-item-list
16-13
INQUIRE (IOLENGTH = IOL) A (1:N)
INQUIRE (UNIT = JOAN, OPENED = LOG_01, NAMED = LOG_02, &
FORM = CHAR_VAR, IOSTAT = IOS)
FORTRAN
FORTRAN
FORTRAN
FORTRAN
FORTRAN
FORTRAN 95
17.1
FORMAT
17.1.1
FORMAT
FORMAT (R1001)
FORMAT format-specification
(format-specification)(R1002)
( [ format-item-list ] )
(format-item-list) 17.2
FORMAT
FORMAT
P F, E, EN, ES, D, G
17-1
5 FORMAT (1PE12.4, I10)
9 FORMAT (I12, /, ' Dates: ', 2 (2I3, I5))
17.1.2
FORMAT
FORMAT
17-2
2 ISN'T 3
17.2
(format-item)(R1003)
[ r ] data-edit-desc
control-edit-desc
char-string-edit-desc
[ r ] ( format-item-list )
r(R1004)
1. (R1005)
Iw[.m]
Bw[.m]
Ow[.m]
Zw[.m]
Fw.d
Ew.d[Ee]
EN w . d [ E e ]
ES w . d [ E e ]
Gw.d[Ee]
Lw
A[w]
Dw.d
e
w I, B, O, Z, F 0
w, m, d, e
2.(R1010)
position-edit-desc
[r]/
sign-edit-desc
kP
blank-interp-edit-desc
k(R1011)
(position-edit-desc)(R1012)
Tn
TL n
TR n
nX
n(R1013)
(sign-edit-desc)(R1014)
S
SP
SS
(R1015)
BN
BZ
kP k
T, TL, TR, X, , , S, SP, SS, P, BN, BZ
17-6
3. (R1016)
17.3
()
0
0 0 DO
r r
r 1
F, E, EN, ES, D, G
(17.6.5)(17.6.4)(17.6.6)
17-3
10 FORMAT (1X, 2(F10.3, I5))
17.4
TTLTR X 17.6.1
17.6.2
17.5
,
,
17.5.1
IBOZFEENES, D,G
BLANK=
BN BZ
0
FEENESD G
IFEENESDG 0 SSPSS
Ew.dEe
ENw.dEeESw.dEeGw.dEe w
SP
IBOZF w 0
w 0
1.
Iw,Iw.m,Bw,Bw.m,Ow,Ow.m,Zw Zw.m
I (signed-digit-string)(R401)
BOZ (R408, R409, R410)
w w 0 w
0
G 17.5.4.1
Iw 0
0
BwOwZw 0
0
m Iw.mBw.mOw.mZw.m
IwBwOwZw 0
m w w 0
m 0 0
m w 0 0
2.
FEENES D FEENES D
G 17.5.4.1
1. F
Fw.d w d w 0
w 0 F
0
d
d
\
E 0
D 0 D E
-k k
1 0 0
0 0
2. E D
Ew.dDw.d Ew.dEe w d (
1 ) e e
d F
[] [0].x1x2xdexp
0 1 1000
ENw.d ENw.dEe w d e
F |exp| > 999 ENw.d
17-4
6.421
.5
SS, EN12.3
6.421E+00
500.000E03
.00217
2.170E03
4721.3
4.721E+03
4. ES
ES 0
1 10
[] y.x1x2xdexp
ESw.d ESw.dEe w d
e F |exp| > 999 ESw.d
17-5
SS, ES12.3
6.421
6.421E+00
.5
5.000E01
.00217
2.170E-03
4721.3
4.721E+03
5.
FORTRAN
17.5.2
Lw w G
17.5.4
T F T F
.TRUE..FALSE
w-1 T F
17.5.3
A[w]
G
A G
A w w A w
LEN A w w LEN
LEN w LEN w LEN-w
A w LEN w-LEN LEN
w LEN w
17.5.4
Gw.d Gw.dEe
w d e
d e
1.
Gw.d Gw.dEe 17.5.1
Gw.dEe Ew.dEe
Gw.d Gw.dEe
Iw w 0
F
F
2.
Gw.d Gw.dEe Lw
3.
Gw.d Gw.dEe Aw
17.6
FORTRAN
17.6.1
TTLTR X
T
X
nX TRn
TTLTR X
TTLTR X
TTLTR X
17.6.2
17.6.3
17.6.4
SSP SS
SSS SP
SP
SS
SSS SP IFEENESD
G
17.6.5
kP k
0 FEENESD G
P
FEENESDG F
10k
FEENESDG
ED 10k k
G F
E E
ENES
17.7
PROGRAM test_getarg
INTEGER :: ia
CHARACTER(len=32) :: arg
PAUSE
END PROGRAM