计算化学公社

标题: fortran读取换行问题 [打印本页]

作者
Author:
wbn    时间: 2016-4-9 09:14
标题: fortran读取换行问题
大家好,我用 http://sobereva.com/125 里面的代码来读取一个cube file,但是在这几行出现了问题:

do i=1,n1 !循环第一个向量方向
do j=1,n2 !循环第二个向量方向
                !一次性将第三个向量方向上的n3个数据都载入内存
  if (nmo==0.or.nmo==1) then !如果记录的不是分子轨道数据或只含一个分子轨道,就直接将数据存到cubmat里即可
   read(10,*) cubmat(i,j,:)%value
  end if
end do
end do

我的cube文件是Travis 生成的,有100*100*100 个格点,记录了 spatial distribution 信息。 里面有一个问题是数据排列每当一个k 循环完成后, 如果未满6个数据,就并不会换行,这样就会导致下一个循环从下一行开始读,丢掉了本行最后的数据,而且行列对应也乱掉了。而且我的cube文件每个数据占据的列数并不一致,我没办法指定输入格式,然后通过ADVANCE='NO' 指定不换行。 请问大家这里有没有什么办法?



作者
Author:
sobereva    时间: 2016-4-9 14:31
没太清楚你的意思,建议把你的cube文件压缩下发上来我看看
作者
Author:
wbn    时间: 2016-4-9 23:10
sobereva 发表于 2016-4-9 14:31
没太清楚你的意思,建议把你的cube文件压缩下发上来我看看

抱歉我语文一向不太好。就是这么个文件,问题就是这个cube file 不标准,数据该换行的地方没换... 谢谢!

作者
Author:
sobereva    时间: 2016-4-10 01:07
read(10,*) cubmat
就这么一行就完事了

作者
Author:
wbn    时间: 2016-4-10 02:14
sobereva 发表于 2016-4-10 01:07
read(10,*) cubmat
就这么一行就完事了

真的可以哎, 多谢多谢!




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