24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 2358  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 302求调剂 +9 zyx上岸! 2026-04-02 9/450 2026-04-02 23:07 by 马儿快快地跑
[考研] 一志愿北京科技材料科学与工程288分,求调剂 +14 是辰啊 2026-04-02 14/700 2026-04-02 21:10 by dongzh2009
[考研] 310求调剂 +17 争取九点睡 2026-03-30 17/850 2026-04-02 16:40 by guanxin1001
[考研] 282求调剂 +18 ycy1201 2026-04-01 20/1000 2026-04-02 16:39 by liumengping
[考研] 085600,材料与化工321分求调剂 +11 大馋小子 2026-03-28 11/550 2026-04-02 15:59 by yunlongyang
[考研] 085601一志愿中山大学深圳材料工程330求调剂 +8 pipiver 2026-03-30 8/400 2026-04-02 12:01 by ms629
[考研] 材料考研调剂 +9 Gs大王 2026-04-02 9/450 2026-04-02 10:24 by olim
[考研] 324求调剂 +5 想上学求调 2026-04-01 6/300 2026-04-02 10:16 by sanrepian
[考研] 324分 085600材料与化工 +20 呆鹅oor 2026-03-27 20/1000 2026-04-02 10:13 by oooqiao
[考研] 367求调剂 +8 芋泥啵啵… 2026-03-28 8/400 2026-04-02 09:20 by olim
[考研] 339求调剂,想调回江苏 +7 烤麦芽 2026-03-27 10/500 2026-04-01 21:35 by 495374996
[考研] 材料科学与工程339求调剂 +11 hyz0119 2026-03-31 12/600 2026-04-01 18:40 by 伟大河北
[考研] 349求调剂 +6 吃的不少 2026-04-01 6/300 2026-04-01 17:55 by JYD2011
[考研] 285求调剂 +5 FZAC123 2026-03-30 5/250 2026-04-01 15:50 by 韩雨涵
[考研] 生物学296求调剂 +10 汤圆包 2026-03-29 14/700 2026-04-01 10:44 by 求调剂zz
[考研] 一志愿武理材料工程302调剂环化或化工 +15 Doleres 2026-03-31 16/800 2026-04-01 09:49 by lfj11
[考研] 311(085601)求调剂 +12 liziyeyeye 2026-03-28 13/650 2026-04-01 00:34 by fmesaito
[考研] 求化学调剂 +12 wulanna 2026-03-28 12/600 2026-03-31 16:38 by 690616278
[考研] 调剂 +4 GK72 2026-03-30 4/200 2026-03-30 20:32 by dick_runner
[考研] 本科新能源科学与工程,一志愿华理能动285求调剂 +3 AZMK 2026-03-27 5/250 2026-03-28 16:19 by xxxsssccc
信息提示
请填处理意见