Next: , Previous: Old-style kind specifications, Up: Extensions


7.2 Old-style variable initialization

gfortran allows old-style initialization of variables of the form:

           INTEGER*4 i/1/,j/2/
           REAL*8 x(2,2) /3*0.,1./

These are only allowed in declarations without double colons (::), as these were introduced in Fortran 90 which also introduced a new syntax for variable initializations. The syntax for the individual initializers is as for the DATA statement, but unlike in a DATA statement, an initializer only applies to the variable immediately preceding. In other words, something like INTEGER I,J/2,3/ is not valid.

Examples of standard conforming code equivalent to the above example, are:

     ! Fortran 90
           INTEGER(4) :: i = 1, j = 2
           REAL(8) :: x(2,2) = RESHAPE((/0.,0.,0.,1./),SHAPE(x))
     ! Fortran 77
           INTEGER  i, j
           DOUBLE PRECISION x(2,2)
           DATA i,j,x /1,2,3*0.,1./