Fortran Coder

查看: 281|回复: 2

[输入输出] namelist从文件输入如何在输入项不足时返回信息或报错

[复制链接]

2

帖子

1

主题

0

精华

入门

F 币
46 元
贡献
21 点
发表于 2021-7-22 14:04:27 | 显示全部楼层 |阅读模式
我目前开发的程序,想使用namelist从文本文件读取输入。调试过程中发现输入中缺少namelist中的某些变量时,程序依然可以继续运行,未输入的变量保持默认值。查看namelist文档后,发现确实是这样设计的,“It is not necessary for the input records in a namelist input statement to define every variable in the associated namelist.”“The number of values following the equal sign must be equal to or less than the number of list items in the expanded sequence.”
但这样的话程序使用者如果误删输入,程序不会直接报错,可能引起后续计算错误。
那么有没有什么方式能卡死在文件里必须输入完namelist所有变量呢,在不输入完整时返回某些信息或者直接报错。
感谢!

回复

使用道具 举报

148

帖子

2

主题

0

精华

宗师

F 币
1299 元
贡献
670 点

规矩勋章

发表于 2021-7-22 19:46:45 | 显示全部楼层
使用namelist无法避免所说的问题,只能采用list-directed I/O, 一个变量对应一个数值。

2

帖子

1

主题

0

精华

入门

F 币
46 元
贡献
21 点
 楼主| 发表于 2021-7-24 10:47:52 | 显示全部楼层
风平老涡 发表于 2021-7-22 19:46
使用namelist无法避免所说的问题,只能采用list-directed I/O, 一个变量对应一个数值。 ...

感谢回答!
那还是保留namelist,在输入手册里着重提示吧。用这个输入比较明了,有点弱化版xml的感觉
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2021-9-24 11:06

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

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