7. Logical expressions

Logical expressions can only have the value .TRUE. or .FALSE.. A logical expression can be formed by comparing arithmetic expressions using the following relational operators:

```      .LT.  meaning <
.LE.          <=
.GT.          >
.GE.          >=
.EQ.          =
.NE.          /=
```

So you cannot use symbols like < or = for comparison in FORTRAN 77, you have to use the correct two-letter abbreviation enclosed by dots.

Logical expressions can be combined by the logical operators .AND. .OR. and .NOT. which have the obvious meanings.

Logical variables and assignment

Truth values can be stored in logical variables. The assignment is analogous to the arithmetic assignment. For example:

```      logical a, b
a = .TRUE.
b = a .AND. 3 .LT. 5/2
```

The order of precedence is important, as the last example shows. The rule is that arithmetic expressions are evaluated first, then relational operators, and finally logical operators. Hence b will be assigned .FALSE. in the example above. Among the logical operators the precedence (in the absence of parenthesis) is that .NOT. is done first, then .AND., then .OR. is done last.

While logical variables are seldom used in Fortran, logical expressions are frequently used in conditional statements such as the if statement.