我正在尝试在Windows上使用MinGW gfortran执行datcom源代码。
我遵循尝试使用命令编译源代码的过程:
gfortran datcom.f -o datcom.exe
,系统。F包含源代码。
但是在编译过程中我得到了很多错误。如果有帮助,我附上了编译过程中获得的一小部分错误的片段。我对gfortran还是个新手,所以如果我读错了或遗漏了什么,请务必理解。
下面给出了获得的一些编译错误,以及源文件的相关位:
错误1
Error: Rank mismatch in argument ‘mess’ at (1) (rank-1 and scalar)
datcom.f:9165:21:
9165 | & 4HRE ,1,ROUTID)
datcom.f
行9164-9165
和相关变量声明:
SUBROUTINE EQSPCE(X,R,P,S,NP,XE,RE,PE,SE,NE,DSEDX)
!
!*** TRANSFORMS 4-DIMENSIONAL ARRAY SO THAT THE 3 INDEPENDENT ARRAYS
! ARE EQUALLY SPACED
!
DIMENSION ROUTID(2)
DIMENSION CR(6),CP(6),CS(6)
DIMENSION X(1),R(1),P(1),S(1),XE(1),RE(1),PE(1),SE(1), &
& DSEDX(20)
DIMENSION VAR(4),LGH(4)
DATA ROUTID/4HEQSP,4HCE /
CALL INTERX(1,X,VAR,LGH,R,RE(I),NP,NP,0,0,0,0,0,0,0,0, &
& 4HRE ,1,ROUTID)
interx
程序接口:
SUBROUTINE INTERX (NIND,TABLE,VAR,LENGTH,DEP,ANS,LIND,LDEP, &
& LX1L,LX2L,LX3L,LX4L,LX1U,LX2U,LX3U,LX4U,MESS,NMSS,ROUT)
DIMENSION MSSCL(21),RMSCL(21)
DIMENSION LENGTH(4),TABLE(LIND,4),DEP(LDEP),VAR(4),ROUT(2), &
& MESS(20)
EQUIVALENCE(MSSCL(1),RMSCL(1))
DATA MSSCL /4HINTE,4HRX ,19*0/
DATA SRPMSS /4H1TIN/,HOL1/4H1EXP/
错误2
Error: Type mismatch in argument ‘x2’ at (1); passed LOGICAL(4) to REAL(4)
datcom.f:1245:72:
1245 | & DATA(5),DATA(6),DATA(7),DATA(8),DATA(9),P,Q,R,S,T,NN,NM)
误差3
Error: Actual argument contains too few elements for dummy argument ‘kol’ (1/80) at (1)
datcom.f:40352:36:
40352 | IF(LDM(I) .GT. 0) CALL RVALUE(KOL,L,NDML,NF,BLANK, &
| 1
我也有同样的问题,直到我在pda网站上找到解决方案。你必须使用命令。
gfortran -std=legacy datcom.f -o datcom.exe
编译时应该没有错误,只有警告。
这是信息