Fortran Coder

标题: fortran 在一个module中调用另一个module [打印本页]

作者: sweetxu    时间: 2021-10-23 09:46
标题: fortran 在一个module中调用另一个module
error #7002: Error in opening the compiled module file.  Check INCLUDE paths.   [GRIST_ZM_CONV]
    use grist_zm_conv,                  only: cape_before_dycore
error #6580: Name in only-list does not exist or is not accessible.   [PCAPE_BEFORE_DYCORE]
    use grist_zm_conv,                  only: cape_before_dycore

1、only:后面应该是一个函数,还是变量,或者二者都可以

2、在grist_zm_conv.F90中将cape_before_dycore设置成public属性了,为什么还是报上面这个错

3、如果想将A module中计算得到的量pcape传输到B module中作为B module中的全局变量,参与B module中的计算,我应该如何实现呢,谢谢,谢谢大家的解答!


作者: 楚香饭    时间: 2021-10-23 10:42
1. 都可以
2. 是否添加到同一个工程了?grist_zm_conv.F90 是否编译成功了?是否看到 GRIST_ZM_CONV.mod 文件了?
3. module 中 use A 即可。如果只使用 pcape,可以 use A , only : pcape
作者: sweetxu    时间: 2021-10-23 11:14
楚香饭 发表于 2021-10-23 10:42
1. 都可以
2. 是否添加到同一个工程了?grist_zm_conv.F90 是否编译成功了?是否看到 GRIST_ZM_CONV.mod 文 ...

谢谢你的解答,谢谢,关于第二个问题,这个use grist_zm_conv only:cape_before_dycore它是在grist_shallow.F90中,它的编译顺序是在grist_zm.F90的前面,这个顺序对于use grist_zm_conv only:cape_before有影响吗, 目前还没有编译到grist_zm.F90,没有生成GRIST_ZM_CONV.mod

作者: 楚香饭    时间: 2021-10-23 12:56
被使用者先编译,使用者后编译。

你采用什么方式进行工程管理?(即:你使用的环境是什么?何种编译器?是 IDE 还是 makefile ?)
作者: sweetxu    时间: 2021-10-23 15:01
楚香饭 发表于 2021-10-23 12:56
被使用者先编译,使用者后编译。

你采用什么方式进行工程管理?(即:你使用的环境是什么?何种编译器?是 ...

用的是intel 编译器,makefile
作者: 楚香饭    时间: 2021-10-23 16:21
那你需要确被被使用的 module 先编译,并且编译成功。得到 module名.mod 文件。




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