在fortran中解析输入文件

2024-01-10

这是我前辈的延续thread https://stackoverflow.com/questions/21409601/reading-input-file-in-fortran.

我有一个来自不同代码的文件,我应该parse用作我的输入。 其中的一个片段如下所示:

GLOBAL SYSTEM PARAMETER 
NQ                 2 
NT                 2 
NM                 2 
IREL               3 
************************************* 
BEXT        0.00000000000000E+00 
SEMICORE  F 
LLOYD     F 
NE                32         0 
IBZINT             2 
NKTAB            936 
XC-POT    VWN       
SCF-ALG   BROYDEN2   
SCF-ITER          29 
SCF-MIX     2.00000000000000E-01 
SCF-TOL     1.00000000000000E-05 
RMSAVV      2.11362995016878E-06 
RMSAVB      1.25411205586140E-06 
EF          7.27534671479201E-01 
VMTZ       -7.72451391270293E-01 
************************************* 

等等。

目前我正在逐行阅读它,如下所示:

Program  readpot 
use iso_fortran_env 
Implicit None 
integer ::i,filestat,nq 
character(len=120):: rdline 
character(10)::key!,dimension(:),allocatable ::key 
real,dimension(:),allocatable ::val 
i=0 

open(12,file="FeRh.pot_new",status="old") 
readline:do 
  i=i+1 
  read(12,'(A)',iostat=filestat) rdline!(i) 

  if (filestat /= 0) then 
    if (filestat == iostat_end ) then 
      exit readline 
    else 
      write ( *, '( / "Error reading file: ", I0 )' )  filestat 
      stop 
    endif 
  end if 

  if (rdline(1:2)=="NQ") then 
    read(rdline(19:20),'(i)'),nq 
    write(*,*)nq 
  end if 
end do readline 

End Program  readpot 

因此,我必须读取每一行,手动找到与键对应的值列,然后写入(为简洁起见,我仅显示一个值)。 我的问题是,这是proper这样做的方法?或者还有其他更简单的方法?请告诉我。


如果文件没有可变性,您几乎不需要解析它。假设您已为文件中所有感兴趣的数据项声明了变量,并且这些变量的名称显示在文件的行上。例如

  INTEGER :: nq , nt, nm, irel
  REAL:: scf_mix, scf_tol  ! '-' not allowed in Fortran names
  CHARACTER(len=48) :: label, text
  LOGICAL :: semicore, lloyd
  ! Complete this as you wish

然后写一段这样的代码

  OPEN(12,file="FeRh.pot_new",status="old") 
  READ(12,*) ! Not interested in the 1st line
  READ(12,*) label, nq
  READ(12,*) label, nt
  READ(12,*) label, nm
  READ(12,*) label, irel
  READ(12,*) ! Not interested in this line
  READ(12,*) label, bext
  READ(12,*) label, semicore
  ! Other lines to write
  CLOSE(12)

福尔特兰语言的列表导向输入理解行中的空白来分隔值。它不会将这些空格读取为字符变量的一部分。这种行为可以改变,但在你的情况下你不需要这样做。请注意,它也会理解该字符F意思是.false.当读入逻辑变量时。

我的代码片段只是忽略了标签和解释行。如果你性格紧张,你可以处理它们,也许

IF (label/='NE') STOP

或者任何你想要的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在fortran中解析输入文件 的相关文章

  • XML 和 INI 哪个更快?

    我想知道 XML 是否比 INI 更快 反之亦然 我正在开发一个包含许多文件的网站 这个问题与我的问题有关关于包含许多文件 https stackoverflow com questions 7777522 too many include
  • serde_json::from_str 错误,其中字符串来自文件

    extern crate serde json use serde json Value use std fs File use std io prelude fn main let filepath map test anhui txt
  • MPI_Gather 在最基本的代码中给出了 seg 错误

    我正在开发一个更大的程序 但我在 MPI Gather 上遇到了困难 我编写了一个最小的示例代码 请参见下文 program test use MPI integer ierr rank size double precision allo
  • 使用 Java 将 HTML 文件读取到 DOM 树

    是否有一个解析器 库能够使用 Java 将 HTML 文档读入 DOM 树 我想使用标准DOM XpathJava提供的API 大多数库似乎都有自定义 API 来解决此任务 此外 大多数可用的解析器似乎都不支持 HTML 到 XML DOM
  • 如何增加使用 SAX 解析 XML 文件的entityExpansionLimit

    我正在尝试使用 Java 中的 SAX 解析器解析一个 1 23 GB 的 XML 文件 我使用的是 Mac 操作系统和 JDK 1 7 0 51 不幸的是 我收到以下错误 The pasrser has encountered more
  • 解析整数集的字符串并列出间隔

    I have 2 5 7 9 12 string 我想从中获取 2 5 7 8 9 12 列表 python中有没有内置的函数 Thanks UPD 我想 直接的答案是No 不管怎样 谢谢你的 片段 使用一个 建议者斯文 马尔纳克 s 2
  • Javascript 和自动分号插入

    test262 http test262 ecmascript org测试套件有test http hg ecmascript org tests test262 file 927ea8563f7f test suite ch07 7 9
  • 从电话号码确定国际电话代码的算法

    我可以使用 iOS 上的地址簿框架从设备中检索联系人的电话号码 如何区分或识别哪个是国家 地区代码 哪个是实际电话号码 是否可以 国家 地区代码是一个相当混乱的主题 但足够标准 通过一些程序员维护就可以解决它 您可以通过其初始子序列来识别国
  • Fortran :: (1) 处 OPEN 语句中存在语法错误

    我试图通过 顽固测试 来测试我的密码算法 http stat fsu edu pub diehard http stat fsu edu pub diehard 我意识到我的输入文件必须是未格式化的直接访问文件 所以我尝试用 Fortran
  • 如何从 pandas 数据框中包含文本的列中提取年份(或日期时间)

    假设我有一个 pandas 数据框 Id Book 1 Harry Potter 1997 2 Of Mice and Men 1937 3 Babe Ruth Story The 1948 Drama 948 Babe Ruth Stor
  • 在 C 中解析字符串的最简单方法是什么?

    我必须在 C 中解析这个字符串 XFR 3 NS 207 46 106 118 1863 0 207 46 104 20 1863 r n 并且能够得到207 46 106 118部分和1863部分 第一个 IP 地址 我知道我可以一个字符
  • 分发编译后的 fortran 库和模块文件

    我有一个Fortran使用很多模块的库 我用ifortWindows 上的编译器 因此 我得到一个 lib图书馆的文件和 mod所用模块的文件 这有一个缺点 我还必须分发 mod文件 如果我想在另一个程序中使用编译的库 如何防止这种情况发生
  • 如何向 Parse Signup 功能添加额外属性?

    我想向我的解析注册函数添加一个额外的属性 我的代码就像 signUp function e var self this var username this signup username val var password this sign
  • 使用 Cygwin64 的 Fortran MPI

    我正在使用 Codeblock IDE 编写和编译我的 Fortran 程序 现在我想将 MPI 包含到我的 GNU Fortran 编译器中 在遵循 GNU GCC 编译器的一些指南之后 我突然想到我需要为 MPICH2 设置以下内容 有
  • 使用 PEG.js 忽略空格

    我想忽略空格 and 新线路按照我的语法 所以它们在PEG js http pegjs majda cz online输出 此外 括号内的文字应在新数组中返回 Grammar start a sep cat dog sep sep stmt
  • ANTLR4 在导入时找不到语法

    我正在尝试将 ANTLR4 语法拆分为多个文件 以便我可以更轻松地测试它们 我在 java 项目中使用 gradle 作为构建工具 两种语法都单独正确编译 但是当我将导入添加到我的主语法中时 我收到下一个编译错误 错误 110 kaneko
  • 是否可以使用 fparsec 解析“越位”(基于缩进)语言?

    我希望将 FParsec 用于基于缩进的类似 python 的语言 我知道这必须在词法分析阶段完成 但 FParsec 没有词法分析阶段 是否可以使用 FParsec 或者 词法分析后如何提供它 P D 我是 F 新手 但在其他语言方面经验
  • String.Format 小数,带有千位分隔符和强制小数位

    我想String Format小数 使其同时具有千位分隔符和强制小数位 3 例如 Input 123456 12 78545 8 Output 123 456 120 78 545 800 我努力了 String Format 0 0 0
  • 解析 (yyyy-MM-dd) 格式的字符串日期

    我有一个 2013 09 18 形式的字符串 我想将其转换为 java util Date 我正在做这个 SimpleDateFormat sdf new SimpleDateFormat yyyy MM dd Date converted
  • 如何在 Sublime Text 2 的 OSX 终端中显示构建结果

    我刚刚从 TextMate 切换到 Sublime Text 2 我非常喜欢它 让我困扰的一件事是默认的构建结果显示在 ST2 的底部 我的程序产生一些很长的结果 显示它的理想方式 如在 TM2 中 是并排查看它们 如何在 Mac 操作系统

随机推荐

  • 特质类别如何运作以及它们的作用是什么?

    我正在读斯科特 迈耶斯的书有效的C https rads stackoverflow com amzn click 0321334876 他在谈论特征类 我明白我需要它们在编译时确定对象的类型 但我无法理解他对这些类实际上做什么的解释 从技
  • Spark scala 中的枢轴

    我有一个这样的df M M Max Sales Rank M1 100 200 1 M1 100 175 2 M1 101 150 3 M1 100 125 4 M1 100 90 5 M1 100 85 6 M2 200 1001 1 M
  • 苹果开发者拒绝 - 应用程序中使用的订阅 - 商业 - 3.1.1

    苹果开发者以此理由拒绝了我的应用程序 商业 3 1 1 您的应用程序包含帐户注册功能 该功能被视为访问外部机制以在应用程序中使用购买或订阅 此功能不符合 App Store 审核指南 下一步 请删除帐户注册链接以及指向您网站的任何其他完全合
  • 如何在没有 jQuery 的情况下在 Javascript 中链接选择器

    在尝试操纵外部站点的布局时 我经常被迫使用一系列选择器来定位我想要的特定元素 我第一次遇到这个问题时 有人向我提供了一个 jQuery 解决方案 并且很容易得到结果 我不想依赖 jQuery 并且想知道这在标准 Javascript 中是否
  • JavaScript,在公共方法中将私有函数作为字符串调用,而不使用 eval (揭示模式)

    我试图在揭示模式中调用一个私有函数 这是我的代码 var module function var privateMethod function val console log val var publicMethod function va
  • 如何在 SQL Server 中获取具有复合主键的表列表?

    如何创建一个查询 为我提供 SQL Server 中具有复合主键的表列表 也许使用 sys tables 或 information schema tables 或其他东西 你可以挖掘这些信息information schema table
  • PHP计数替换[重复]

    这个问题在这里已经有答案了 我有一些代码在 PHP 7 以下运行的服务器上运行良好 但在 PHP 7 上我收到一条警告 需要删除 我需要修复代码以消除警告 我不能只是隐藏警告 我的问题是 count 函数 这是我收到的警告及其所引用的一小段
  • 我可以在调试时仅“跳过”jQuery 代码吗?

    在单步执行使用 jQuery 的脚本时 我just想要测试代码I wrote 我不想进入 jQuery 文件 我不是在调试 jQuery 只是在调试我自己的文件 有什么方法可以告诉调试器不要进入 jQuery 文件吗 我使用 Visual
  • Windows 10 - 任务计划程序 - 未运行 (0x41303)

    我正在尝试在 Windows 10 中安排一项任务 在 登录时 事件中启动多个程序 但在多次尝试 错误后它不会运行 任务配置如下 常规 无论用户是否登录都运行 它提示凭据输入框 也尝试仅在用户登录时运行 以最高权限运行 在尝试过的情况下配置
  • 如何在当前Vue实例上添加方法或数据?

    我是新来的Vue js我正在摆弄它 有没有办法创建可重用的方法和数据 这是我想要实现的非常简单的代码 第1页 html div div
  • 从 Assembly.GetTypes() 获取的类型的排序

    我有一个要求 我需要获取以下类型 public class Class1 public class Class2 Class1 public class Class3 Class1 我可以致电Assembly GetTypes 在目标程序集
  • IGrouping 不包含以下定义

    我一直在这里查看其他线程以了解如何在 linq 中执行 GroupBy 我遵循对其他人有效的精确语法 但是它不起作用 这是查询 var results from p in pending group p by p ContactID int
  • 如何手动将 .dump() 文件的输出解析为文本小部件

    我如何手动将 dump 的输出从包含斜体和粗体文本的文本小部件解析到不同的文本小部件以将其及其文本格式加载 这是代码 如果有帮助的话 文本应该与文本格式一起保存 但是当文件打开时 文本格式消失了 from tkinter import fr
  • OutputCache 属性和 jQuery Ajax 不缓存

    我有一个像这样的简单 MVC3 控制器操作 HttpGet OutputCache Duration 1200 Location System Web UI OutputCacheLocation Server public string
  • C#:有关套接字编程(同步或异步)的问题

    我正在用 C 编写一个即时消息服务器用于学习目的 我的问题是我应该使用同步还是异步套接字来处理 IM 客户端 目标是处理尽可能多的客户 我不太确定 但据我所知 异步套接字的数据包不会按顺序到达 这意味着当您发送 2 条聊天消息并且存在延迟
  • 伊莎贝尔证明加法的交换律

    我试图证明 Isabelle HOL 中自定义的交换律add功能 我设法证明了关联性 但我坚持这一点 的定义add fun add nat nat nat where add 0 n n add Suc m n Suc add m n 关联
  • GORM 使用 hasMany 映射同一类的两个属性

    我有以下内容 class Match Team localTeam Team visitingTeam class Team static hasMany matches Match 抛出 加载插件管理器时出错 类 class myapp
  • 如何以编程方式/使用注释将代码节的语法突出显示设置为特定语言?

    我有一个 Laravel Blade 模板 blade php 其中包含纯 JavaScript 作为部分 稍后将其插入到通用包装器中 所以这个例子是 div Some HTML content div section js var a b
  • Android 广播到特定的第三方应用程序

    我开发了一个 Android 应用程序 它发送具有自定义权限的广播 public abstract void sendBroadcast Intent intent String receiverPermission 现在 任何具有广播接收
  • 在fortran中解析输入文件

    这是我前辈的延续thread https stackoverflow com questions 21409601 reading input file in fortran 我有一个来自不同代码的文件 我应该parse用作我的输入 其中的