FORTRAN 错误 #6404:该名称没有类型,并且必须具有显式类型
我是 FORTRAN 新手,收到此错误 #6404。
my_file.f(11): error #6404: This name does not have a type, and must have an explicit type.
[POTENCIAL] d=POTENCIAL(1.0,1.0,1.0,1.0,1.4,1.4)
这是 ifort 编译器的问题,我希望这不是编译器错误。
有什么想法我错了吗?
program iiuu
implicit none
REAL*8 d
d=POTENCIAL(1.0,1.0,1.0,1.0,1.4,1.4)
write(*,*) 'potential=', d
END program iiuu
FUNCTION POTENCIAL(R1,R2,R3,R4,R5,R6)
REAL*8 R1,R2,R3,R4,R5,R6,V2,V3,V4
DIMENSION R(6)
R(1)=R1
R(2)=R2
R(3)=R3
R(4)=R4
R(5)=R5
R(6)=R6
V2=V2BODY(R)
V3=V3BODY(R)
V4=V4BODY(R)
POTENCIAL=V2+V3+V4+VADD(R)
RETURN
END
FUNCTION V2BODY(R)
.....
.....
I'm new to FORTRAN, and getting this error #6404.
my_file.f(11): error #6404: This name does not have a type, and must have an explicit type.
[POTENCIAL] d=POTENCIAL(1.0,1.0,1.0,1.0,1.4,1.4)
This is with the ifort compiler, and I hope it is not a compiler bug.
Any ideas where I'm wrong?
program iiuu
implicit none
REAL*8 d
d=POTENCIAL(1.0,1.0,1.0,1.0,1.4,1.4)
write(*,*) 'potential=', d
END program iiuu
FUNCTION POTENCIAL(R1,R2,R3,R4,R5,R6)
REAL*8 R1,R2,R3,R4,R5,R6,V2,V3,V4
DIMENSION R(6)
R(1)=R1
R(2)=R2
R(3)=R3
R(4)=R4
R(5)=R5
R(6)=R6
V2=V2BODY(R)
V3=V3BODY(R)
V4=V4BODY(R)
POTENCIAL=V2+V3+V4+VADD(R)
RETURN
END
FUNCTION V2BODY(R)
.....
.....
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不,这不是编译器错误。这是对代码的编辑,至少有机会编译:
潜在
函数没有返回类型(这是您遇到的原始错误消息)return
语句不是必需的)modules
中并use
它们,或者使用contains
语句,如上面的示例中1.0
是单精度。使用1.d0
告诉编译器这是一个双精度数字potencial
函数的参数?No, it is not a compiler bug. Here's an edit of your code which has at least a chance of compiling:
potencial
function did not have a return type (which is the original error message you came across)return
statement was not necessary)modules
anduse
them, or usecontains
statement, like in the example above1.0
is single-precision. Use1.d0
to tell the compiler it's a double precision numberpotencial
function?我让它工作了。
只是将其更改为正确的数据类型表示。
其余的还是一样。
I got it to work.
Just changed it to correct data type representation.
The rest still the same.