Lynn McGuire
2024-12-03 23:02:59 UTC
Is the "implicit none" in the proper place in the following code ? I
misspelled an argument name declaration and gfortran 14 did not complain
when compiling my module file. However, it implicitly declared the
argument variable to be real*4 and then complained when it compiled my
subroutine code that the subroutine was declared differently.
module aaa_modules
implicit none
INTERFACE
SUBROUTINE ABCPAR(ISW,IRETST,IR,IC,PAR,IPHASE)
INTEGER(KIND=8) :: ISW
INTEGER(KIND=8) :: IRETST
INTEGER(KIND=8) :: IR
INTEGER(KIND=8) :: IC
REAL(KIND=8) :: PAR
INTEGER(KIND=8) :: IPHASE
END SUBROUTINE ABCPAR
END INTERFACE
INTERFACE
SUBROUTINE ABSR(NIN,NOUT,NOCOMP,NEQP,NDSP,SIVPFR,SITEMP, &
&SIPRES,SIENTH,SIENTR,SIMOLE,SICOMP,SIKV,SOVPFR,SOTEMP,SOPRES, &
&SOENTH,SOENTR,SOMOLE,SOCOMP,SOKV,EQPAR,DESPAR)
INTEGER(KIND=8) :: NDSP
INTEGER(KIND=8) :: NEQP
INTEGER(KIND=8) :: NOCOMP
INTEGER(KIND=8) :: NOUT
INTEGER(KIND=8) :: NIN
REAL(KIND=8) :: SIVPFR(NIN)
REAL(KIND=8) :: SITEMP(NIN)
REAL(KIND=8) :: SIPRES(NIN)
REAL(KIND=8) :: SIENTH(NIN)
REAL(KIND=8) :: SIENTR(NIN)
REAL(KIND=8) :: SIMOLE(NIN)
REAL(KIND=8) :: SICOMP(NOCOMP,NIN)
REAL(KIND=8) :: SIKV(NOCOMP,NIN)
REAL(KIND=8) :: SOVPFR(NOUT)
REAL(KIND=8) :: SOTEMP(NOUT)
REAL(KIND=8) :: SOPRES(NOUT)
REAL(KIND=8) :: SOENTH(NOUT)
REAL(KIND=8) :: SOENTR(NOUT)
REAL(KIND=8) :: SOMOLE(NOUT)
REAL(KIND=8) :: SOCOMP(NOCOMP,NOUT)
REAL(KIND=8) :: SOKV(NOCOMP,NOUT)
REAL(KIND=8) :: EQPAR(NEQP)
REAL(KIND=8) :: DESPAR(NDSP)
END SUBROUTINE ABSR
END INTERFACE
...
Thanks,
Lynn
misspelled an argument name declaration and gfortran 14 did not complain
when compiling my module file. However, it implicitly declared the
argument variable to be real*4 and then complained when it compiled my
subroutine code that the subroutine was declared differently.
module aaa_modules
implicit none
INTERFACE
SUBROUTINE ABCPAR(ISW,IRETST,IR,IC,PAR,IPHASE)
INTEGER(KIND=8) :: ISW
INTEGER(KIND=8) :: IRETST
INTEGER(KIND=8) :: IR
INTEGER(KIND=8) :: IC
REAL(KIND=8) :: PAR
INTEGER(KIND=8) :: IPHASE
END SUBROUTINE ABCPAR
END INTERFACE
INTERFACE
SUBROUTINE ABSR(NIN,NOUT,NOCOMP,NEQP,NDSP,SIVPFR,SITEMP, &
&SIPRES,SIENTH,SIENTR,SIMOLE,SICOMP,SIKV,SOVPFR,SOTEMP,SOPRES, &
&SOENTH,SOENTR,SOMOLE,SOCOMP,SOKV,EQPAR,DESPAR)
INTEGER(KIND=8) :: NDSP
INTEGER(KIND=8) :: NEQP
INTEGER(KIND=8) :: NOCOMP
INTEGER(KIND=8) :: NOUT
INTEGER(KIND=8) :: NIN
REAL(KIND=8) :: SIVPFR(NIN)
REAL(KIND=8) :: SITEMP(NIN)
REAL(KIND=8) :: SIPRES(NIN)
REAL(KIND=8) :: SIENTH(NIN)
REAL(KIND=8) :: SIENTR(NIN)
REAL(KIND=8) :: SIMOLE(NIN)
REAL(KIND=8) :: SICOMP(NOCOMP,NIN)
REAL(KIND=8) :: SIKV(NOCOMP,NIN)
REAL(KIND=8) :: SOVPFR(NOUT)
REAL(KIND=8) :: SOTEMP(NOUT)
REAL(KIND=8) :: SOPRES(NOUT)
REAL(KIND=8) :: SOENTH(NOUT)
REAL(KIND=8) :: SOENTR(NOUT)
REAL(KIND=8) :: SOMOLE(NOUT)
REAL(KIND=8) :: SOCOMP(NOCOMP,NOUT)
REAL(KIND=8) :: SOKV(NOCOMP,NOUT)
REAL(KIND=8) :: EQPAR(NEQP)
REAL(KIND=8) :: DESPAR(NDSP)
END SUBROUTINE ABSR
END INTERFACE
...
Thanks,
Lynn