Apologies in advance for what seems to be a very basic question. I'm not a Fortran programmer, unfortunately, but I'm in a position of having to maintain some legacy FORTRAN77 code, and it is not compiling in Intel Visual Fortran Parallel XE 2013 (with VS2010).
The error I'm getting is
error #6633: The type of the actual argument differs from the type of the dummy argument.
It occurs in several calls to subroutines that are defined within the project. This code has the statement
IMPLICIT REAL(8) (A-H,O-Z)
throughout, in both the calling function and the called subroutine. (It had been REAL*8
, but I changed it.)
Doesn't that mean that the arguments, all of which have names that fall into the range (A-H,O-Z), will be two-byte reals? I don't know where they are being declared or otherwise converted to any other type. The only functions called within the subroutines are intrinsic math functions, such as cos, sin, atan2.
Here is an example:
INCLUDE 'common.f'
... ! (many lines of code)
C Transform from RS to RL
call RS$RL(0,iobl,1,vrel,xlatgc,gam,az,vph,vth,vr,
* xlatgd,gaml,azl,vphl,vthl,vrl)
which calls
SUBROUTINE RS$RL(ID,IOBL,IV,VREL,TH,GAM,AZ,VPH,VTH,VR,
* THL,GAML,AZL,VPHL,VTHL,VRL)
C* DECLARATIONS
IMPLICIT REAL(8) (A-H,O-Z)
C IMPLICIT REAL*8(A-H,O-Z)
DEL = THL-TH
IF(ID.EQ.0) THEN
C* TRANSFORM FROM RS TO RL FRAME
IF(IV.EQ.0) THEN
VPH = VREL*COS(GAM)*SIN(AZ)
VTH = VREL*COS(GAM)*COS(AZ)
VR = VREL*SIN(GAM)
ENDIF
IF(IOBL.EQ.0) THEN
VPHL = VPH
VTHL = VTH
VRL = VR
ELSE
VPHL = VPH
VTHL = VTH*COS(DEL)-VR*SIN(DEL)
VRL = VTH*SIN(DEL)+VR*COS(DEL)
ENDIF
GAML = ATAN2(VRL,SQRT(VPHL**2+VTHL**2))
AZL = ATAN2(VPHL,VTHL)
ELSE
C* TRANSFORM FROM RL FRAME TO RS FRAME
IF(IV.EQ.0) THEN
VPHL = VREL*COS(GAML)*SIN(AZL)
VTHL = VREL*COS(GAML)*COS(AZL)
VRL = VREL*SIN(GAML)
ENDIF
IF(IOBL.EQ.0) THEN
VPH = VPHL
VTH = VTHL
VR = VRL
ELSE
VPH = VPHL
VTH = VTHL*COS(DEL)+VRL*SIN(DEL)
VR =-VTHL*SIN(DEL)+VRL*COS(DEL)
ENDIF
GAM = ATAN2(VR,SQRT(VPH**2+VTH**2))
AZ = ATAN2(VPH,VTH)
ENDIF
RETURN
END
The file common.f contains the line IMPLICIT REAL(8) (A-H,O-Z)
at the very top of the file, which is followed by many explicit declarations, none of which include the offending parameters that produce the compile error.
The error messages complain about the arguments, vrel, xlatgc, gam, az.