From: "W.J. Metzger" <[log in to unmask]>
Sent: Monday, 28 March 2011 11:20 PM
> It seems that the order of statements is important in the following,
> since both ifort and gfortran give the same error.
> But I don't understand why that must be so. Could someone explain?
PARAMETER statements come before any statements using
the variables defined by it.
> This routine gives an error message
> Subroutine B (IFL, T, TA)
> Integer, Intent(IN) :: IFL
> Real, Intent(OUT) :: T(3,KTMX), TA(KTMX)
> Integer, Parameter :: KTMX=20
> t = ifl
> ta = ifl
> End Subroutine B
>
> But the following two variations of it do not
> Subroutine G1 (IFL, T, TA)
> Integer, Intent(IN) :: IFL
> Real, Intent(OUT) :: T, TA
> Integer, Parameter :: KTMX=20
> Dimension T(3,KTMX), TA(KTMX)
> t = ifl
> ta = ifl
> End Subroutine G1
>
> Subroutine G2 (IFL, T, TA)
> Integer, Parameter :: KTMX=20
> Integer, Intent(IN) :: IFL
> Real, Intent(OUT) :: T(3,KTMX), TA(KTMX)
> t = ifl
> ta = ifl
> End Subroutine G2
|