Gdkly1 发表于 2019-9-5 15:41:17

fortran中调用子程序问题

有一个问题想请教各位大大,我刚接触Fortran,有一个问题总是不知道怎么解决?这是我的主程序的相关代码:
write(200,*) u,atom_id(l),'3',x(l),y(l),z(l)
       endif
       enddo
       close(100)
       close(200)
   call F3_Order_Parameter(0,u,atom_id,x,y,z,0.35,0.,36,0.,36,0.,36,1,1,1,'a.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
问题就是出现:F:/F3-1/F3/F321.F90:59: undefined reference to `f3_order_parameter_'
这是为什么?子程序 未定义?怎么解决?谢谢大家!

fcode 发表于 2019-9-5 17:13:17

你得把子程序放到一起链接

Gdkly1 发表于 2019-9-10 15:20:14

fcode 发表于 2019-9-5 17:13
你得把子程序放到一起链接

谢谢您的回复 我把他们放到一个文件下l 但就是启用不了

fcode 发表于 2019-9-10 15:29:20

是放到一起链接,而不是放到一个文件夹下。

具体操作看你使用的操作系统,编译器环境。

Gdkly1 发表于 2019-9-11 17:10:57

fcode 发表于 2019-9-10 15:29
是放到一起链接,而不是放到一个文件夹下。

具体操作看你使用的操作系统,编译器环境。 ...

好的谢谢您!我试一下

pasuka 发表于 2019-9-12 12:47:43

个人建议:
1、全部代码放在一个源文件内;
2、采用include申明 include申明
3、自己写Makefiles或CMake
4、使用IDE管理项目

Gdkly1 发表于 2019-9-30 10:23:15

pasuka 发表于 2019-9-12 12:47
个人建议:
1、全部代码放在一个源文件内;
2、采用include申明 include申明


谢谢您的回复!我尝试一下
页: [1]
查看完整版本: fortran中调用子程序问题