24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 3022  |  回复: 6

信任开花

铁杆木虫 (知名作家)

[交流] 【求助】Fortran如何调用模块中子程序 已有1人参与

我在写main.f90程序的时候,需要调用test1.f90中的fun3函数


而test1.f90是一个模块函数:

module test_test
………………
……………………

SUBROUTINE fun3

……………………

……………………
end module test_test


我在main.f90中用了

program main

         use test_test

…………………………
…………………………
…………………………
call fun3
…………………………

…………………………
end program main

然后编译的时候出现错误:main.f90(281): error #6405: The same named entity from different modules and/or program units cannot be referenced.


不知该如何处理?


谢谢大家帮助
回复此楼
从不温柔,从不体贴,从不讲理
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbbb188

铜虫 (初入文坛)


余泽成(金币+1):谢谢参与应助! 2010-09-06 20:50:19
信任开花(金币+5):谢谢提醒和关注 2010-09-07 17:40:22
其他模块中有同名的函数,检查一下吧
2楼2010-09-06 19:39:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信任开花

铁杆木虫 (知名作家)

引用回帖:
Originally posted by dbbb188 at 2010-09-06 19:39:24:
其他模块中有同名的函数,检查一下吧

其实上面已经说比较清楚啦哈,我也知道是这个错误

就是不知道怎么调用模块中的子函数或者子程序


然后我的主程序中包含如下语句:

use module
…………
call fun()

其中模块中包含了子程序fun()

所以出现了以上的同名函数的错误
从不温柔,从不体贴,从不讲理
3楼2010-09-07 08:08:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liubin1984

木虫 (著名写手)

不纠结的男人

信任开花(金币+5):谢谢,我刚开始学,不知道如何声明,可否举个例子? 2010-09-07 17:38:16
引用回帖:
Originally posted by 信任开花 at 2010-09-07 08:08:21:

其实上面已经说比较清楚啦哈,我也知道是这个错误

就是不知道怎么调用模块中的子函数或者子程序


然后我的主程序中包含如下语句:

use module
…………
...

在主程序前声明一下子例行程序看看
路漫漫其修远兮,吾将上下而求索
4楼2010-09-07 17:34:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信任开花

铁杆木虫 (知名作家)

引用回帖:
Originally posted by liubin1984 at 2010-09-07 17:34:30:

在主程序前声明一下子例行程序看看

不知道如何声明啊

可能举个例子呢
从不温柔,从不体贴,从不讲理
5楼2010-09-07 17:39:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liubin1984

木虫 (著名写手)

不纠结的男人


信任开花(金币+5):正在编译,看看行不行 2010-09-07 17:45:01
余泽成(金币+1):谢谢参与应助! 2010-09-07 23:50:50
引用回帖:
Originally posted by 信任开花 at 2010-09-07 17:39:00:

不知道如何声明啊

可能举个例子呢

不知道能不能用,就是在主程序声明部分中声明一下子例行程序,例如
SUBROUTINE Fun3
就是简单的声明一下,具体情况能把代码发上来看看么
路漫漫其修远兮,吾将上下而求索
6楼2010-09-07 17:43:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ChemiAndy

木虫 (正式写手)


★ ★
小木虫: 金币+0.5, 给个红包,谢谢回帖
xzhdty: 金币+1, 欢迎常来程序语言 2012-05-17 06:24:20
偶然遇到了一个类似的问题,发现了解决办法:
使用多个module,可能会遇到变量名成或是函数名称重复的问题,解决办法是在use命令后面临时把module里面的变量或是函数名称改名。。e.g.:

module A
  implicit none
  integer va
end module

module B
  implicit noe
  integer va
end module

programe main
  use A, aa=>va  !把module A中的变量va临时改为aa来使用
  use B
  implicit none
  ...

(ref: http://wenku.baidu.com/view/45ad2564783e0912a2162a81.html)
7楼2012-05-17 05:38:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 信任开花 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 生物与医药调剂 +3 十七sa 2026-04-05 3/150 2026-04-05 13:28 by jp9609
[考研] 调剂 +3 好好读书。 2026-04-02 3/150 2026-04-05 13:02 by arrow8852
[考研] 085600,专业课化工原理,320分求调剂 +10 大馋小子 2026-03-29 10/500 2026-04-05 12:49 by Hdyxbekcb
[有机交流] 甲醇/二氯 1:15过柱子 5+3 a哎y呦w喂 2026-03-31 3/150 2026-04-05 10:42 by 88817753
[考研] 272求调剂 +4 电气李 2026-04-05 4/200 2026-04-05 10:41 by lbsjt
[考研] 一志愿电子科技大学085600材料与化工 329分求调剂 +10 Naiko 2026-04-04 10/500 2026-04-05 09:40 by sam3303
[考研] 085600调剂 +4 1amJJ 2026-04-02 4/200 2026-04-04 21:53 by hemengdong
[考研] 331求调剂 +3 niby 2026-04-02 3/150 2026-04-04 19:56 by 蓝云思雨
[考研] 349求调剂 +11 zwjjjjjj 2026-03-31 11/550 2026-04-04 19:52 by 蓝云思雨
[考研] 085600,320分求调剂 +14 大馋小子 2026-04-04 15/750 2026-04-04 16:27 by 无际的草原
[考研] 总分328生物与医药考数学求调剂 +7 aaadim 2026-04-02 9/450 2026-04-03 22:53 by syh9288
[考研] 考研调剂 +3 15615482637 2026-04-03 3/150 2026-04-03 22:50 by ms629
[考研] 282求调剂 不挑专业 求收留 +7 Yam. 2026-03-30 8/400 2026-04-03 14:12 by zhangdingwa
[考研] 交通运输考试264分求工科调剂 +4 jike777 2026-04-02 4/200 2026-04-02 21:53 by zllcz
[考研] 一志愿大工学硕,求调剂 +4 yub0811 2026-04-02 4/200 2026-04-02 21:36 by 百灵童888
[考研] 346求调剂 +5 郑诚乐 2026-04-02 5/250 2026-04-02 16:38 by SZW_UJN
[考研] 08生物与医药专硕初试346找调剂 +6 dianeeee 2026-04-01 7/350 2026-04-02 08:23 by guoweigw
[考研] 302求调剂一志愿北航070300,本科郑大化学 +8 圣日耳曼条 2026-04-01 11/550 2026-04-02 07:40 by chemdavid
[考研] 0817化工学硕调剂 +11 努力上岸中! 2026-03-31 11/550 2026-04-01 20:30 by 赖春艳
[考研] 考研调剂求助 +7 13287130938 2026-03-31 7/350 2026-03-31 16:39 by 690616278
信息提示
请填处理意见