计算化学公社

标题: 求助!Fortran中如何调用子程序啊? [打印本页]

作者
Author:
Gdkly    时间: 2019-8-7 16:22
标题: 求助!Fortran中如何调用子程序啊?
我编写了一个主程序,需要链接一个子程序,用CALL命令来调用它,但总是显示E:/aaa/F3.f90:56: undefined reference to `f3_order_parameter_',未定义这个子程序?这是为什么?谢谢大家了!

作者
Author:
zjxitcc    时间: 2019-8-7 16:46
你忘了编译subroutine吧···举例:
gfortran sub.f90 -c
gfortran main.f90 -c
gfortran sub.o main.o -o main
作者
Author:
Gdkly    时间: 2019-8-8 11:16
zjxitcc 发表于 2019-8-7 16:46
你忘了编译subroutine吧···举例:
gfortran sub.f90 -c
gfortran main.f90 -c

这是我主程序的最后一段:
call F3_Order_Parameter(0,u,idatom,x,y,z,3.5,0.,12.,0.,12.,0.,12.,1,1,1,'f3_result.txt')
   
  endprogram
这是子程序的开始:
subroutine F3_Order_Parameter(timestep,number_Ow,id_Ow,x_Ow,y_Ow,z_Ow,tolarance,xlo,xhi,ylo,yhi,zlo,zhi,xp,yp,zp,filename)

implicit none
您说的这个是放在那里呢?您看着是那里出错了呢?

作者
Author:
zjxitcc    时间: 2019-8-8 11:21
Gdkly 发表于 2019-8-8 11:16
这是我主程序的最后一段:
call F3_Order_Parameter(0,u,idatom,x,y,z,3.5,0.,12.,0.,12.,0.,12.,1,1,1, ...

我说的是编译命令啊,是命令行啊,不是Fortran代码
作者
Author:
Gdkly    时间: 2019-8-9 14:01
zjxitcc 发表于 2019-8-8 11:21
我说的是编译命令啊,是命令行啊,不是Fortran代码

哦哦 这样啊  知道了 谢谢!




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3