Fortran Coder

标题: 关于调用module的问题(被困扰好久了) [打印本页]

作者: 呜啦啦    时间: 2020-11-27 13:59
标题: 关于调用module的问题(被困扰好久了)
本帖最后由 呜啦啦 于 2020-11-27 14:27 编辑

最近我在编译的时候遇到了一些问题。我简单阐述一下:我使用的是abc软件,里面有它的程序代码,一个主程序 abc.f90,以及许多子程序,它有一个 pes.f90 文件用于用户定义的势能面。然后我从势能面库里面下载了我需要的势能面文件 PES_N2O_3App_umn_v1.f90 (我上传到了附件里),它是用模块封装的,现在我需要调用这个势能面文件,因此我在pes.f90 文件里面写了 use PES_N2O_3App_umn_v1 ,虽然编译没有报错,但是我从计算的输出结果看,发现其实是没有把这个势能面文件编译进去的。
是因为我还是没有把他们连接起来吗?还是说我在 use PES_N2O_3App_umn_v1 之后还需要调用模块里面的子程序这样才可以呢?不知道可以把程序和从外面下载的模块接到一起吗?要接的话是需要修改什么地方吗?
麻烦老师帮我解答一下,新手小白太难了。

pes.f90 (270 Bytes, 下载次数: 2)


abc.f90 (3.02 KB, 下载次数: 2)


PES_N2O_3App_umn_v1.f90 (250.91 KB, 下载次数: 2)


真的特别特别感谢!


作者: vvt    时间: 2020-11-27 21:15
use PES_N2O_3App_umn_v1 只是让编译器知道,需要时,可以去PES_N2O_3App_umn_v1这个模块里找对应的函数或变量。
并没有改变程序运行的流程。

你需要调用其中的函数,才能改变程序要做的事情。
作者: 呜啦啦    时间: 2020-11-27 21:32
vvt 发表于 2020-11-27 21:15
use PES_N2O_3App_umn_v1 只是让编译器知道,需要时,可以去PES_N2O_3App_umn_v1这个模块里找对应的函数或 ...

是这样呀,我还想问一下 我这个模块文件是从外面下载的,然后我在pes.f90下面使用 use之后,我又在下面写了 call 调用里面的子程序,但是会报错,这个是不是这两个文件不匹配呀,您可以帮忙看一下附件里我添加的,是因为哪里出问题了?
您有没有关于这方面的知识分享(视频教程或者文档),关于从其他地方下载的模块怎么使用到程序里面去。
谢谢您的回复
作者: xinger    时间: 2020-11-29 08:37
建议关于自己专业的软件,先读软件的说明文件以了解如何使用。关于call子程序出错,要具体问题具体分析呀!
作者: 呜啦啦    时间: 2020-11-30 09:34
xinger 发表于 2020-11-29 08:37
建议关于自己专业的软件,先读软件的说明文件以了解如何使用。关于call子程序出错,要具体问题具体分析呀! ...

谢谢你的回复,只不过我这个软件太小众,没有手册,说明文件也只有一点点内容,我一直在努力搞,谢谢你啦,我自己再看看




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2