I've been using the INTERFACE definitions with no problem until I set the /DEFREAL_KIND to 2 as the compile option. Now, all of the floating point related interfaces generate an error. At the same time, I set the /DEFINT_KIND to 3, but the integer functions don't generate any errors.
The interfaces are:
C --- type specific interface definitions for integers and floating points
interface SCIINP
subroutine sci2inp(R,C,IVAL,F,NDIG)
INTEGER R,C,F,NDIG
integer*2 IVAL
end
subroutine sci4inp(R,C,IVAL,F,NDIG)
INTEGER R,C,F,NDIG
integer*4 IVAL
end
end interface
interface scfinp
SUBROUTINE SCF4INP(R,C,FVAL,F,MAXDIG,NDIG)
REAL*4 fval
INTEGER R,C,F,NDIG,MAXDIG
end
SUBROUTINE SCF8INP(R,C,FVAL,F,MAXDIG,NDIG)
REAL*8 fval
INTEGER R,C,F,NDIG,MAXDIG
end
end interface
INTERFACE SCIOUT
subroutine sci2OUT(R,C,IVAL,NDIG)
INTEGER R,C,F,NDIG
integer*2 IVAL
end
subroutine sci4OUT(R,C,IVAL,NDIG)
INTEGER R,C,F,NDIG
integer*4 IVAL
END
END INTERFACE
INTERFACE SCFOUT
SUBROUTINE SCF4OUT(R,C,FVAL,MAXDIG,NDIG)
REAL*4 fval
INTEGER R,C,F,NDIG,MAXDIG
end
SUBROUTINE SCF8OUT(R,C,dVAL,MAXDIG,NDIG)
REAL*8 dval
INTEGER R,C,F,NDIG,MAXDIG
END
END INTERFACE
interface fcvt
logical function fcvt4(BUFF,IS,NDIG,ARES)
real*4 ares ! result
character*(*) buff
integer is,ndig
end
logical function fcvt8(BUFF,IS,NDIG,dRES)
real*8 dres ! result
character*(*) buff
integer is,ndig
end
end interface
interface icvt
logical function icvt2(BUFFER,IS,NDIG,IRES)
character*(*) buffer
integer is,ndig
integer*2 ires ! result
end
logical function icvt4(BUFFER,IS,NDIG,dRES)
character*(*) buffer
integer is,ndig
integer*4 dres ! result
end
end interface
interface FEET_TO_METERS
REAL*4 FUNCTION FEET_TO_METERS_4(VDATA,VFLAG)
REAL*4 VDATA
LOGICAL VFLAG
end
REAL*8 FUNCTION FEET_TO_METERS_8(dDATA,VFLAG)
REAL*8 dDATA
LOGICAL VFLAG
end
end interface
interface METERS_TO_FEET
REAL*4 FUNCTION METERS_TO_FEET_4(VDATA,VFLAG)
REAL*4 VDATA
LOGICAL VFLAG
end
REAL*8 FUNCTION METERS_TO_FEETS_8(dDATA,VFLAG)
REAL*8 dDATA
LOGICAL VFLAG
end
end interface
and the errors are:
*** Specific procedure METERS_TO_FEETS_8 of type REAL(KIND=2) FUNCTION is too similar to METERS_TO_FEET_4 of type REAL(KIND=2)
FUNCTION for overload METERS_TO_FEET in module <number>. The arguments are too similar. (In include file
Z:\CMASTERF95\parametersandtypes.ins)
*** Specific procedure FEET_TO_METERS_8 of type REAL(KIND=2) FUNCTION is too similar to FEET_TO_METERS_4 of type REAL(KIND=2)
FUNCTION for overload FEET_TO_METERS in module <number>. The arguments are too similar.
*** Specific procedure FCVT8 of type LOGICAL(KIND=3) FUNCTION is too similar to FCVT4 of type LOGICAL(KIND=3) FUNCTION for
overload FCVT in module <number>. The arguments are too similar.
*** Specific procedure SCF8OUT of type SUBROUTINE is too similar to SCF4OUT of type SUBROUTINE for overload SCFOUT in module
<number>. The arguments are too similar.
*** Specific procedure SCF8INP of type SUBROUTINE is too similar to SCF4INP of type SUBROUTINE for overload SCFINP in module
<number>. The arguments are too similar.
5 ERRORS [<MAIN> FTN95/Win32 v8.05.0]
Any help would be appreciated.