Fortran Coder

查看: 34243|回复: 13
打印 上一主题 下一主题

[求助] namelist

[复制链接]

25

帖子

10

主题

0

精华

熟手

F 币
149 元
贡献
97 点
跳转到指定楼层
楼主
发表于 2020-9-19 21:06:25 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
请教大家,我建了一个文档,里面设置了参数,a和b,希望输出,a+b的结果,但是运行出错,问题出在哪里了呢?
[Fortran] 纯文本查看 复制代码
program hello
    implicit none

   integer(kind=4) :: a,b
   namelist /legend/ a,b
   a=0
   b=0
   open(10,file="test01.txt",status="replace")
   read(10,nml=legend)
   write(*,*) a+b
end program


文档的内容如下
&legend
a=1
b=2
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

800

帖子

2

主题

0

精华

大宗师

F 币
3801 元
贡献
2272 点
14#
发表于 2020-9-21 11:36:41 | 只看该作者
风平老涡 发表于 2020-9-21 10:44
我用的就是gfortran, 我给出的文件格式都能通过。

那剩下的可能就是操作问题了。

213

帖子

2

主题

0

精华

宗师

F 币
2126 元
贡献
875 点

规矩勋章

13#
发表于 2020-9-21 10:44:39 | 只看该作者
li913 发表于 2020-9-21 10:21
ivf对输入文件的要求较为宽泛,写得不太标准也认,但gfortran必须按照标准写法组织文件。
&pa
a=1

我用的就是gfortran, 我给出的文件格式都能通过。

800

帖子

2

主题

0

精华

大宗师

F 币
3801 元
贡献
2272 点
12#
发表于 2020-9-21 10:21:11 | 只看该作者
ivf对输入文件的要求较为宽泛,写得不太标准也认,但gfortran必须按照标准写法组织文件。
&pa
a=1
b=2
/

评分

参与人数 1F 币 +2 收起 理由
fcode + 2 赞一个!

查看全部评分

213

帖子

2

主题

0

精华

宗师

F 币
2126 元
贡献
875 点

规矩勋章

11#
发表于 2020-9-20 23:03:33 | 只看该作者

我这边没问题。

[Fortran] 纯文本查看 复制代码
program hello
    implicit none

   integer:: a,b
   namelist /pa/a,b
   open(101,file="test01.txt",status="old")
   read(101,nml=pa)
   write(*,*) a+b
 end program hello


文本"test01.txt"

&pa a=1,
b=2 /

25

帖子

10

主题

0

精华

熟手

F 币
149 元
贡献
97 点
10#
 楼主| 发表于 2020-9-20 22:05:30 | 只看该作者
风平老涡 发表于 2020-9-20 21:15
namelist的变量名不能有空格,namelist /pa /a,b 可改为namelist /pa/a,b。 "test01.txt"文件可改为:

&pa ...

还是不行啊

213

帖子

2

主题

0

精华

宗师

F 币
2126 元
贡献
875 点

规矩勋章

9#
发表于 2020-9-20 21:15:23 | 只看该作者
本帖最后由 风平老涡 于 2020-9-20 21:29 编辑
胆怯滴大侠 发表于 2020-9-20 20:04
现在得到的结果是错误的,很大,1+2不等于17606072啊

namelist的变量名不能有空格,namelist /pa /a,b 可改为namelist /pa/a,b。 "test01.txt"文件可改为:

&pa a=1,b=2 /

或者

&pa
a=1, b=2 /

或者

&pa a=1,
b2 /


25

帖子

10

主题

0

精华

熟手

F 币
149 元
贡献
97 点
8#
 楼主| 发表于 2020-9-20 20:04:36 | 只看该作者
胆怯滴大侠 发表于 2020-9-20 20:03
你好,这是改过的txt
&pa  /
       a=1 /

现在得到的结果是错误的,很大,1+2不等于17606072啊

25

帖子

10

主题

0

精华

熟手

F 币
149 元
贡献
97 点
7#
 楼主| 发表于 2020-9-20 20:03:14 | 只看该作者
风平老涡 发表于 2020-9-19 22:21
文件"test01.txt"改为

&legend a=1, b=2 /

你好,这是改过的txt
&pa  /
       a=1 /
       b=2 /
&end /

25

帖子

10

主题

0

精华

熟手

F 币
149 元
贡献
97 点
6#
 楼主| 发表于 2020-9-20 20:02:24 | 只看该作者
风平老涡 发表于 2020-9-19 22:21
文件"test01.txt"改为

&legend a=1, b=2 /

[Fortran] 纯文本查看 复制代码
program hello
    implicit none

   integer:: a,b
   namelist /pa /a,b
   open(101,file="test01.txt",status="old")
   read(101,nml=pa)
   write(*,*) a+b
end program

您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-15 04:23

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表