fortran错误:the type of the actual argument differs from the type of the dummy argument 港控/mmm° 2021-12-05 16:56 270阅读 0赞 参考原文:https://blog.csdn.net/SinjoyWong/article/details/70138960 在用intel fortran写一个DLL程序的时候,发现数据结构比较复杂,所以使用了fortran90中新增的结构体。因为abaqus只能识别.for格式的文件,一开始以为fortran77是无法使用结构体的。 在写的过程中,直接将结构体对象的名称作为子程序的形参。一直报错,表示实参与形参的类型不统一。 在确认语法没错之后,在网上查找了很长时间,但是除了语法层面外仍没有解释。后来有人建议将Debug改为Release,遂尝试之,顺利通过。 \--------------------------------------------------- 我的经验:想编译一个dll给VBNET调用 \---------------------------------------------------- SUBROUTINE SAP(NJ,N,NE,NPJ,NPF,JN,X,Y,JE,JEAI,EAI,JPJ,PJ,JPF,PF,F,FM) !\*\*\*\*\*\*\*\*\* ANALYSIS PROGRAM FOR PLANE FRAME \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* !MS$ATTRIBUTES DLLEXPORT,STDCALL,ALIAS:'PFSAP' :: PFSAP !DEC$ ATTRIBUTES VALUE :: NJ,N,NE,NPJ,NPF !DEC$ ATTRIBUTES REFERENCE :: JN,JE,JEAI,JPJ,JPF !DEC$ ATTRIBUTES REFERENCE ::X,Y,EAI,PJ,PF,F,FM INTEGER(4),INTENT(IN) :: NJ,N,NE,NPJ,NPF INTEGER(4),INTENT(IN) :: JN(3,100),JE(2,100),JEAI(100),JPJ(100),JPF(2,100) REAL(8),INTENT(IN) :: X(100),Y(100),EAI(3,100),PJ(100),PF(2,100) REAL(8),INTENT(OUT) :: F(100,3),FM(100,6) 后面程序中的变量都定义为INTEGER或 REAL 编译报错 错误 error \#6633: The type of the actual argument differs from the type of the dummy argument. \[Y\] J:\\Recent\\VB\\WindowsApp1\\PlaneFrame\\PlaneFrame.f90 19 将红色代码改为:(删除 (8)) REAL,INTENT(IN) :: X(100),Y(100),EAI(3,100),PJ(100),PF(2,100) REAL,INTENT(OUT) :: F(100,3),FM(100,6) 再编译 则成功 分析:主要是因为上下文中的变量定义不一致
还没有评论,来说两句吧...