24小时热门版块排行榜    

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

1xiaohua1

木虫 (正式写手)

[求助] 请高手指点如何成功运行fun.f90和main.f90

  假如现在有两个Fortran程序fun.f90和main.f90,其中main.f90是主程序,fun.f90是在主程序中调用的子程序,将这两个文件放到一个目录下,如何使用fortran成功编译并运行主程序,获得运算结果?
              (需要在主程序中添加什么语句,以及如何运行和编译主程序,一切都在window系统VS软件下进行)
  
求高手指点,给出详细的操作
回复此楼
活着,就要不停地做事
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

zhg19

金虫 (小有名气)

引用回帖:
4楼: Originally posted by 1xiaohua1 at 2013-11-11 15:06:14
谢谢了,我加了运行不了...

你的那个fun.90里的子程序是按subroutine定义的?
6楼2013-11-11 17:52:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

virtualzx

木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★
1xiaohua1: 金币+4, ★★★★★最佳答案 2013-11-15 09:28:29
1xiaohua1: 金币+1 2013-12-13 22:50:53
引用回帖:
19楼: Originally posted by 1xiaohua1 at 2013-11-14 09:12:30
另一个...

在fun.f90里,把
real,intent(out)::z
改为
real::z
然后在main.f90里,把
real, external :: fun
改为
real, external :: funm
然后再编译就行了。

$ gfortran *.f90 -o test.x
$ ./test.x
   8.00000000
20楼2013-11-15 06:39:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

Carpathia

银虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★
感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2013-11-12 01:23:20
1xiaohua1: 金币+2 2013-11-14 16:39:40
1xiaohua1: 金币+1 2013-12-13 22:51:01
前提两个文件都加入project,主程序中要加入interface,指定fun里面的函数,main里面确定要有program入口,然后可以编译了
追求理想的道路上东张西望
2楼2013-11-10 20:47:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhg19

金虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★
感谢参与,应助指数 +1
1xiaohua1: 金币+1 2013-11-11 15:06:45
jjdg: 金币+1, 感谢参与 2013-11-12 01:23:27
1xiaohua1: 金币+2 2013-11-14 16:39:46
楼主可尝试在主程序末尾添加:
include 'fun.f90'
3楼2013-11-10 23:05:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1xiaohua1

木虫 (正式写手)

引用回帖:
3楼: Originally posted by zhg19 at 2013-11-10 23:05:33
楼主可尝试在主程序末尾添加:
include 'fun.f90'

谢谢了,我加了运行不了
活着,就要不停地做事
4楼2013-11-11 15:06:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1xiaohua1

木虫 (正式写手)

引用回帖:
2楼: Originally posted by Carpathia at 2013-11-10 20:47:04
前提两个文件都加入project,主程序中要加入interface,指定fun里面的函数,main里面确定要有program入口,然后可以编译了

你好,你说的我不太明白,能不能给个例子
        main主程序:
                       program  main
                                implicit none
                                real::a=2,b=3
                                  real::c
                                  c=fun(a,b)
                         end   program

              function  fun(x,y)
                                real,intent(in)  ::   x  ,   y
                                  real::z
                                z=x+y
                end function
对这样简单的例子,我该对主程序怎样修改??
活着,就要不停地做事
5楼2013-11-11 15:12:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

totu2013

新虫 (初入文坛)

引用回帖:
6楼: Originally posted by zhg19 at 2013-11-11 17:52:16
你的那个fun.90里的子程序是按subroutine定义的?...

正解。
7楼2013-11-11 22:53:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhg19

金虫 (小有名气)

引用回帖:
7楼: Originally posted by totu2013 at 2013-11-11 22:53:40
正解。...

应该可以啊,不过,没代码,问题不好说。。。
8楼2013-11-11 23:55:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhg19

金虫 (小有名气)

【答案】应助回帖

引用回帖:
5楼: Originally posted by 1xiaohua1 at 2013-11-11 15:12:20
你好,你说的我不太明白,能不能给个例子
        main主程序:
                       program  main
                                implicit none
                                real::a=2,b=3
    ...

貌似fun(a,b)木有返回值啊。。。
9楼2013-11-12 00:03:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

virtualzx

木虫 (著名写手)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
1xiaohua1: 金币+2 2013-11-14 16:40:03
引用回帖:
5楼: Originally posted by 1xiaohua1 at 2013-11-11 02:12:20
你好,你说的我不太明白,能不能给个例子
        main主程序:
                       program  main
                                implicit none
                                real::a=2,b=3
    ...

先改下主程序,加上
real, external :: fun

然后改一下子程序
function  fun(x,y) result(z)

然后直接编译,就可以了
10楼2013-11-12 01:56:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 1xiaohua1 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 085600,320分求调剂 +6 大馋小子 2026-04-02 6/300 2026-04-02 21:54 by dongzh2009
[考研] 315分 085602 求调剂 +10 26考研上岸版26 2026-04-02 10/500 2026-04-02 20:45 by dongzh2009
[考研] 319求调剂 +16 太容易1018 2026-04-01 16/800 2026-04-02 20:12 by seattle40
[考研] 环境工程297分求调剂一志愿杭高院 +15 GENJIOW 2026-03-31 16/800 2026-04-02 17:56 by cyh—315
[考研] 282求调剂 +18 ycy1201 2026-04-01 20/1000 2026-04-02 16:39 by liumengping
[考研] 一志愿北京科技大学085601材料工程英一数二初试总分335求调剂 +9 双马尾痞老板2 2026-04-01 9/450 2026-04-02 12:14 by oooqiao
[考研] 385分 生物学(071000)求调剂 +6 qf626 2026-04-01 6/300 2026-04-02 10:39 by guoweigw
[考研] 一志愿346上海大学生物学 +3 上海大学346调剂 2026-04-01 3/150 2026-04-02 08:36 by w虫虫123
[考研] 一志愿北京科技,085601总分305求调剂 +9 半生瓜! 2026-04-01 11/550 2026-04-02 08:28 by Wang200018
[考研] 一志愿北交大材料工程,总分358 +4 cs0106 2026-04-01 4/200 2026-04-02 07:42 by 尚水阁主
[考研] 求调剂0703 +5 周嘉尧 2026-03-31 8/400 2026-04-01 20:32 by ltltkkk
[考研] 0710生物学考研调剂 +3 李多米lee. 2026-03-27 4/200 2026-04-01 16:21 by zzchen2000
[考研] 调剂 +5 好好读书。 2026-03-28 7/350 2026-04-01 15:32 by 王亮_大连医科大
[考研] 262求调剂 +9 励志一定发文章 2026-03-31 10/500 2026-04-01 12:22 by sunshine0013
[硕博家园] 博一被送出联培感觉不适应怎么办 +3 全村的狗 2026-03-31 3/150 2026-04-01 10:44 by 328838485
[考研] 289求调剂 +3 Acesczlo 2026-03-29 4/200 2026-03-31 14:48 by 热情沙漠
[考研] 0703化学 +20 妮妮ninicgb 2026-03-27 20/1000 2026-03-31 13:33 by 无际的草原
[考研] 085701求调剂初试286分 +5 secret0328 2026-03-28 5/250 2026-03-30 12:54 by fangnagu
[考研] 一志愿中南大学化学0703总分337求调剂 +6 niko- 2026-03-27 6/300 2026-03-30 10:25 by herarysara
[考研] 本科双非材料,跨考一志愿华电085801电气,283求调剂,任何专业都可以 +6 芝士雪baoo 2026-03-28 8/400 2026-03-29 08:16 by 松花缸1201
信息提示
请填处理意见