INTEGER
REAL
DOUBLE PRECISION
COMPLEX
LOGICAL(Boolean)
CHARACTER(FORTRAN 77)
Mathematics: integers are a subset of reals, which are a subset of complex numbers.
Computer arithmetic (typical):
| ± | bn | . . . | b3 | b2 | b1 | b0 |
| ± | ck | . . . | c1 | c0 | mn | . . . | m2 | m1 | m0 |
| sign bit |
characteristic (biased) |
mantissa |
+ may be used with both INTEGER and REAL.
J is INTEGER and X is REAL,
J = X + J
means
J = IFIX( X + FLOAT( J )
I to N
is implicitly INTEGER
REAL
REAL A
DIMENSION A(100)
or in a single declaration.
REAL A(100)
| 1 | 2 | 3 | . . . | n | |
|---|---|---|---|---|---|
| 1 | | | | | | | | | |
| 2 | | | | | | | | | |
| 3 | | | | | | | . . . | | |
| : | | | | | | | | | |
| m | V | V | V | V |
{A(i)} = addr{A(1)} +
size{Aelem}·(i-1)
DIMENSION A(M,N):{A(i,j)} = addr{A(1,1)} +
size{Aelem}·[M·(j-1)+(i-1)]
| Name | Type | Location |
|---|---|---|
| : | : | : |
I |
INTEGER |
0245 |
J |
INTEGER |
0246 |
X |
REAL |
0247 |
| : | : | : |
DATA SUM, VEL, VOLT, LENGTH /0.0, 32.75, -2.5, 10/
FEET = FEAT + 1
X = COUNT (I)
X: REAL or INTEGER?
COUNT: function or array?
MAIN and pass them as parameters
to all subprograms which need them.
MAIN does not need the data but can see it.
COMMON blocks.
C MAIN PROGRAM
:
CALL ARRAY2 (NM, AVAIL, INTCOD, M, N)
:
END
SUBROUTINE ARRAY2 (N, L, C, D1, D2)
COMMON /SYMTAB/ NAMES(100), LOC(100), TYPE(100), DIMS(100)
:
END
SUBROUTINE VAR (N, L, C)
COMMON /SYMTAB/ NAMES(100), LOC(100), TYPE(100), DIMS(100)
:
END
COMMON block.SUBROUTINE ARRAY2 (N, L, C, D1, D2) COMMON /SYMTAB/ NAMES(100), LOC(100), TYPE(100), DIMS(100) : END SUBROUTINE VAR (N, L, C) COMMON /SYMTAB/ NM(100), WHERE(100), MODE(100), SIZE(100) : ENDor even
COMMON /B/ M, A(100)and
COMMON /B/ X, K, C(50), D(50)
| M | X | |
|---|---|---|
| A(1) | K | |
| A(2) | C(1) | |
| : | : | : |
| A(51) | C(50) | |
| A(52) | D(1) | |
| : | : | : |
| A(100) | D(49) | |
| D(50) |
EQUIVALENCEDIMENSION A(100), B(50) EQUIVALENCE (A(40), B(1))