计算化学公社

 找回密码 Forget password
 注册 Register
Views: 5655|回复 Reply: 4
打印 Print 上一主题 Last thread 下一主题 Next thread

[Fortran] 请教FORTRAN从高斯输出中格式化读入问题

[复制链接 Copy URL]

83

帖子

3

威望

1445

eV
积分
1588

Level 5 (御坂)

跳转到指定楼层 Go to specific reply
楼主
本帖最后由 ChemiAndy 于 2014-11-14 11:09 编辑

今天编译以前组里人写的一个小code能编译但运行出错。以前用低版本的f77编译运行肯定是没问题的,[size=13.63636302948px]现在用了高版本的gfortran就不行。功能很简单,从高斯输出的SCF Done这一行读入能量值和所用的循环数。

code相关部分如下:
  1.    10 READ(10,'(A)',END=20)LINE
  2.    25 FORMAT(' SCF Done:  E(RHF) = ',G19.11,' A.U. after ',I4,
  3.      &  ' cycles')
  4.       IF (INDEX(LINE,'SCF Done').NE.0) THEN
  5.          READ(LINE,25) V,ITER
  6.       ENDIF
复制代码


出错提示,
  1. Fortran runtime error: Constant string in input format
  2. (' SCF Done:  E(RHF) = ',G19.11,' A.U. after ',I4,            ' cycles')
复制代码


高斯输出文件这一行的内容为:
  1. SCF Done:  E(RHF) =  -1.06610864862     A.U. after    1 cycles
复制代码


谁能帮着看一下应该怎么改。

83

帖子

3

威望

1445

eV
积分
1588

Level 5 (御坂)

2#
 楼主 Author| 发表于 Post on 2014-11-14 11:33:31 | 只看该作者 Only view this author
搞定了。格式化行的字符都用X编辑符代替就可以了
  1.    25 FORMAT(21X,G19.12,12X,I4,7X)
复制代码

5万

帖子

99

威望

5万

eV
积分
112354

管理员

公社社长

3#
发表于 Post on 2014-11-14 11:36:51 | 只看该作者 Only view this author
这么写是违背语法的。write的时候能用25号格式,而在读取的时候不能把本来要读的内容直接写在格式里。
如果你想空过字符部分,应该用比如24x,f19.11,10x,i4 ,x前面的数代表读的时候跳过的字符数
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入“北京科音”微信公众号获取北京科音培训的最新消息、避免错过网上有价值的计算化学文章!
欢迎加入人气非常高、专业性特别强的综合性理论与计算化学交流QQ群“思想家公社QQ群”:1号:18616395,2号:466017436,3号:764390338,搜索群号能搜到哪个说明目前哪个能加,合计9000人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大的量子化学波函数分析程序)
ResearchGate:https://www.researchgate.net/profile/Tian_Lu
Money and papers are rubbish, get a real life!

83

帖子

3

威望

1445

eV
积分
1588

Level 5 (御坂)

4#
 楼主 Author| 发表于 Post on 2015-2-8 15:21:21 | 只看该作者 Only view this author
sobereva 发表于 2014-11-14 11:36
这么写是违背语法的。write的时候能用25号格式,而在读取的时候不能把本来要读的内容直接写在格式里。
如 ...

Sob老大说的很对。我已经按照你的说法改过code了。
原来的code是老板写的。老。板。写。的。。。

83

帖子

3

威望

1445

eV
积分
1588

Level 5 (御坂)

5#
 楼主 Author| 发表于 Post on 2015-2-8 15:21:45 | 只看该作者 Only view this author
sobereva 发表于 2014-11-14 11:36
这么写是违背语法的。write的时候能用25号格式,而在读取的时候不能把本来要读的内容直接写在格式里。
如 ...

Sob老大说的很对。我已经按照你的说法改过code了。
原来的code是老板写的。老。板。写。的。。。

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2024-11-23 21:20 , Processed in 0.231005 second(s), 21 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list