Expressions may contain unindexed array variables, with the operations acting on whole arrays, element by element. This results in nice, compact expressions:
FORTRAN 77 Fortran 90
REAL a(100), b(100) REAL, DIMENSION(100):: a, b
DO 1 i = 1,100
a(i) = 2.0 a = 2.0
1 b(i) = b(i)*a(i) b = b * aNote the
overloading of the multiplication operator, that is, the multiplication is understood to apply between corresponding elements when vector arguments are supplied. The result is then a vector of the same dimension. Many Fortran 90 intrinsics are similarly elemental: SIN, ABS, DBLE, etc. This gives the compiler some latitude in creating object code, and even holds the possibility for parallel execution.