Arrays are collection of elements of similar type. This data structure allows to implement mathematical objects like vectors, matrices and tensors.

To declare an array with 3 real elements we use

real, dimension(3) :: v or real :: v(3) real v(3)Particular entries of the array can be accessed with an index, running from 1 through the number of entries.

v(1)=1.0; v(2)=2.0; v(3)=3.0One can assign values to all elements of v at once using an

v = (/ 1.0, 2.0, 3.0 /)An even more compact initialization is achieved using an implicit do loop:

v = (/ (i, i=1,3) /)

In Fortran jargon the one-dimensional object v is called a rank-1 array (its entries are accessed using a single index). One can define multi-dimensional arrays as well. A rank-2 array can be defined for example as

real, dimension(2,3) :: A or real :: A(2,3) real A(2,3))A particular element is now accessed using two indices: A(i,j) where and .

One can initialize a rank-n array using constructors. The list of entries in a constructor is one-dimensional; we need to map this one-dimensional list onto the k-dimensional array. This is done using the intrinsic function reshape. For example, we can initialize the 6 entries of A using

A = reshape( (/ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 /), (/ 2, 3 /) )The first argument of the reshape function is the constructor, the second is another constructor containing the shape of A. Reshape initializes the entries of A in column-wise order; the result of the above operation is

Arrays can be used as arguments for input/output purposes. For example

read*, Awill (expect to) read 6 numbers from the console and assign the values to elements of A in column-wise order. Similarly,

print*, Aprints the elements of A one after another in column-wise order.