计算化学公社

标题: 如何提取gro文件中每个元素的元素符号? [打印本页]

作者
Author:
让你变成回忆    时间: 2018-1-3 14:55
标题: 如何提取gro文件中每个元素的元素符号?
如题,现在得到了gro文件,想通过fortran程序计算gro文件中每个分子的质心。

按照格式(i5,2a5,i5,3f8.3)去读gro文件,在第二个a5格式的时候读到了元素符号,不过gro文件里元素后面还跟了数字,例如读到的数据为:   C1(前面有三个空格)

现在我仅仅需要元素,而不要后面的数字,应该怎么处理?

谢谢老师指点~

作者
Author:
sobereva    时间: 2018-1-3 15:09
character*10 str1,str2
character elename
...
read(10,*) str1,str2
elename=str2(1:1)
...

作者
Author:
让你变成回忆    时间: 2018-1-3 15:13
sobereva 发表于 2018-1-3 15:09
character*10 str1,str2
character elename
...

sob老师的意思是说:直接用两个长度为10的字符串来读前面的20个字符吗?

我暂时想到了另一种方法:通过vmd把gro文件转成xyz文件,xyz文件中元素是对齐的。gro文件主要在于元素后面的数字会逐渐增加,导致元素对不齐。
作者
Author:
sobereva    时间: 2018-1-3 15:20
让你变成回忆 发表于 2018-1-3 15:13
sob老师的意思是说:直接用两个长度为10的字符串来读前面的20个字符吗?

我暂时想到了另一种方法:通 ...


残基名+残基号和原子名分别被读入str1和str2字符串里。str2字符串第一个字符就是元素名(也看情况。gro里记录的原子名往往第一个字符不对应元素名)
作者
Author:
让你变成回忆    时间: 2018-1-3 15:23
sobereva 发表于 2018-1-3 15:20
残基名+残基号和原子名分别被读入str1和str2字符串里。str2字符串第一个字符就是元素名(也看 ...


OK! 搞定了。

谢谢sob老师!
作者
Author:
beefly    时间: 2018-1-3 17:07
你可以读入一个字符串sss,然后把其中非字母的字符都改为空格,然后
read(sss,*)element




欢迎光临 计算化学公社 (http://ccc.keinsci.com/) Powered by Discuz! X3.3