24小时热门版块排行榜    

查看: 3308  |  回复: 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的回帖
相关版块跳转 我要订阅楼主 信任开花 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 今日不放榜?网传国自然预计 8 月 27 日可查结果 +17 医学老男孩 2026-08-20 21/1050 2026-08-24 14:21 by refreshing11
[基金申请] 能否退出参与的面上项目解除限项 +15 koalala 2026-08-24 17/850 2026-08-24 14:16 by hhs666
[基金申请] 估计是周四 +4 archvillain 2026-08-18 4/200 2026-08-24 13:53 by zzuzxg
[基金申请] 我面上完蛋了 +8 且听虎啸 2026-08-20 9/450 2026-08-24 13:52 by zzuzxg
[基金申请] 2026国自然函评费到账 +17 羊腰板 2026-08-21 18/900 2026-08-24 12:03 by iaeyuan
[基金申请] 建议基金发布提前给出明确的时间点 +12 kulium 2026-08-21 15/750 2026-08-24 12:02 by iaeyuan
[基金申请] 范进中举一文的中心思想 +6 炎黄贵胄 2026-08-22 7/350 2026-08-24 11:58 by 6543yes
[基金申请] 朋友圈看到的 +7 wangzilk 2026-08-18 9/450 2026-08-24 10:50 by cmrandy
[基金申请] 让我中一个面上吧! +13 大萍1987 2026-08-20 16/800 2026-08-24 10:23 by 太傻了
[基金申请] 明天应该可查了!? +4 chengyan1220 2026-08-23 4/200 2026-08-24 08:47 by gloomy6159
[基金申请] 93BebMhtakh前后11位开头都是大写 +7 且听虎啸 2026-08-17 8/400 2026-08-22 21:55 by 医学老男孩
[基金申请] 只有每年这种时候来逛逛小木虫 +24 yaoyewhu2008 2026-08-20 26/1300 2026-08-22 17:43 by kammury
[基金申请] filecode,4个jtjc了 +13 ziyangfang 2026-08-19 16/800 2026-08-22 17:08 by WH3796
[基金申请] 人气不行了 +8 fansofjerry 2026-08-21 8/400 2026-08-22 16:30 by zyqchem
[基金申请] 今天基金会出结果吗?20260819 +16 kkkl_v 2026-08-19 17/850 2026-08-22 16:12 by 阿布Abu
[基金申请] 时间戳今天,20号变了 +5 archvillain 2026-08-20 5/250 2026-08-22 06:12 by hui_daxiao
[论文投稿] 投稿咨询 +5 wwm09 2026-08-17 7/350 2026-08-21 10:11 by 期刊论文帮手
[基金申请] 基金啊基金 +4 longfie172 2026-08-20 4/200 2026-08-21 08:58 by mark mao
[基金申请] 重要消息,中午系统在维护 +11 yuleib84 2026-08-18 12/600 2026-08-20 11:09 by xskun
[基金申请] 今天维护系统维护 祝所有人 高中 +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by 家与远方
信息提示
请填处理意见