Fortran IF statement with numbers/labels rather than another statement
This is an arithmetic if
statement from FORTRAN 77. Adapted from the FORTRAN 77 specification (emphasis mine):
The form of an arithmetic
IF
statement is:
IF (e) s1 , s2 , s2
where:
e
is an integer, real, or double precision expression
s1
,s2
, ands3
are each the statement label of an executable statement that appears in the same program unit as the arithmeticIF
statement. The same statement label may appear more than once in the same arithmeticIF
statement.Execution of an arithmetic
IF
statement causes evaluation of the expressione
followed by a transfer of control. The statement identified bys1
,s2
, ors3
is executed next as the value ofe
is less than zero, equal to zero, or greater than zero, respectively.
For the example in your question, from the last sentence above,
- If
J1-3 < 0
statement 20 will be executed - If
J1-3 = 0
statement 20 will also be executed - If
J1-3 > 0
statement 21 will be executed
Edit: A modern and much more readable way to write this would be:
if (J1-3 > 0) J1 = J1 - 3
if (J2-3 > 0) J2 = J2 - 3