fortran - 有没有办法在 fortran 中读取文件的一部分?
问题描述
我想根据出现的内容读取数据文件的一部分。例如,在下面的示例文件中,我想通读文件,只要一行上有“OW”,代码就必须转到下一行并将三个数字存储在一个数组中。我该如何实施?
amber
0 2 18
timestep 100 18 0 2 0.001000
25.20 0.000 0.000
0.000 25.20 0.000
0.000 0.000 25.20
OW 1 15.999400 -0.847600
-8.3620E+00 1.0724E+01 7.9568E+00
HW 2 1.007900 0.423800
-7.8947E+00 1.0963E+01 8.7573E+00
解决方案
这只是我在评论中提出的“您可以将文件逐行读取为字符串,然后根据字符串的内容进行操作”的草图。
logical :: read_numbers
character(255) :: line
read_numbers = .false.
do
read(unit,'(a)') line
if (read_numbers) then
read(line,*) array
read_numbers = .false.
end if
read_numbers = (line(1:2)=='OW')
end do
read_numbers
遇到“OW”时会设置为真。然后它将在下一次传递中读取数字。根据需要添加任何错误处理。
推荐阅读
- sql - 在 SQL Server 中 - 如何从字段中排除短语“Type I”,但包含“Type II”
- api - 处理 GoogleSheets 上 IMPORTJSON 脚本返回的多行
- databricks - 在数据块上安装 cudf
- javascript - lodash / fp getOr 的工作原理
- javascript - 通过单击堆叠的条形图打开选项卡
- excel - 自动连接过程
- networking - 连接 VPN(网络管理器和 Openvpn 插件)时出现问题 raspian RESOLVE:无法解析主机地址
- django - 使用详细名称创建 Django 模型
- woocommerce - Woocommerce 不保存表单字段
- python - Wagtail 在管理员中为 PageChooserBlock 设置默认页面资源管理器视图位置