## 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 Logical expressions can be combined by the logical operators .AND. .OR. .NOT. which have the obvious meaning.

### Logical variables and assignment

Truth values can be stored in logical variables. The assignment is analogous to the arithmetic assignment. 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.

Logical variables are seldom used in Fortran. But logical expressions are frequently used in conditional statements like the if statement.