24小时热门版块排行榜    

查看: 3007  |  回复: 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的回帖
相关版块跳转 我要订阅楼主 信任开花 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] NSFC申报书里申请人简历中代表性论著还需要在申报书最后的附件里面再上传一遍吗 20+5 NSFC2026我来了 2026-03-10 14/700 2026-03-15 23:53 by 不负韶华的虎
[考研] 本人考085602 化学工程 专硕 +7 不知道叫什么! 2026-03-15 8/400 2026-03-15 20:11 by 棒棒球手
[考博] 东华理工大学化材专业26届硕士博士申请 +6 zlingli 2026-03-13 6/300 2026-03-15 20:00 by ryzcf
[考研] 化学工程321分求调剂 +5 大米饭! 2026-03-15 5/250 2026-03-15 18:49 by a不易
[基金申请] 国自科面上基金字体 +4 iwuli 2026-03-12 5/250 2026-03-15 17:07 by 风云无泪
[考研] 297求调剂 +4 学海漂泊 2026-03-13 4/200 2026-03-14 11:51 by 热情沙漠
[考研] 331求调剂(0703有机化学 +5 ZY-05 2026-03-13 6/300 2026-03-14 10:51 by Jy?
[考研] 一志愿郑大070303,338分,求调剂 +4 dadawaf 2026-03-10 5/250 2026-03-14 01:20 by lsw010101
[考研] 考研材料与化工,求调剂 +8 戏精丹丹丹 2026-03-09 8/400 2026-03-14 01:14 by JourneyLucky
[考研] 265求调剂 +9 小木虫085600 2026-03-09 12/600 2026-03-14 01:11 by JourneyLucky
[考研] 材料工程专硕,一志愿中国矿业大学,总分314,求调剂 +5 无懈可击的巨人 2026-03-10 5/250 2026-03-14 00:37 by JourneyLucky
[考研] 求调剂,一志愿江南大学环境工程085701 +3 Djdjj12 2026-03-10 4/200 2026-03-14 00:31 by JourneyLucky
[考研] 复试调剂 +9 Copy267 2026-03-10 9/450 2026-03-13 23:45 by userper
[考研] 281求调剂 +9 Koxui 2026-03-12 11/550 2026-03-13 20:50 by Koxui
[考研] 材料与化工085600调剂求老师收留 +9 jiaanl 2026-03-11 9/450 2026-03-13 20:22 by JourneyLucky
[考研] 310求调剂 +3 【上上签】 2026-03-11 3/150 2026-03-13 16:16 by JourneyLucky
[考研] 调剂 +5 呵唔哦豁 2026-03-10 5/250 2026-03-10 22:00 by 28375m
[考研] 收调剂 +7 调剂的考研学生 2026-03-10 7/350 2026-03-10 17:57 by 麦茶汤圆
[考研] 085602化工求调剂 +7 董boxing 2026-03-10 7/350 2026-03-10 17:07 by BruceLiu320
[考研] 家人们 调剂不迷路 看这里 +8 likeihood 2026-03-09 13/650 2026-03-10 08:09 by likeihood
信息提示
请填处理意见