Fortran数据读取格式的问题
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/17 06:27:08
Fortran数据读取格式的问题
读取某种原子坐标文件.xyz格式.大致如下
1 C 0.000000 0.000000 0.000000 1 2 7 8 18
2 O 0.000000 0.000000 0.950000 6 1 3
3 C 1.320000 0.000000 1.417000 1 2 4 5 6
4 H 1.320000 0.000000 2.506000 5 3
5 H 1.833000 -0.889000 1.054000 5 3
读取语句(第六列不读)
read(10,"(5x,A2,3f12.6,7x,4i4)")atomname(j),atomxyz(1:3,j,k),contact(j,1:4)
不同软件生成的这种格式,数据之间的空格数目也不一样.这样经常要变化读取格式
比如把4i4变成4i6,5x变成3x之类.很麻烦
请问有没有什么统一的办法可以处理,像C语言里的"%d%s%lf%lf%lf"这种.
读取某种原子坐标文件.xyz格式.大致如下
1 C 0.000000 0.000000 0.000000 1 2 7 8 18
2 O 0.000000 0.000000 0.950000 6 1 3
3 C 1.320000 0.000000 1.417000 1 2 4 5 6
4 H 1.320000 0.000000 2.506000 5 3
5 H 1.833000 -0.889000 1.054000 5 3
读取语句(第六列不读)
read(10,"(5x,A2,3f12.6,7x,4i4)")atomname(j),atomxyz(1:3,j,k),contact(j,1:4)
不同软件生成的这种格式,数据之间的空格数目也不一样.这样经常要变化读取格式
比如把4i4变成4i6,5x变成3x之类.很麻烦
请问有没有什么统一的办法可以处理,像C语言里的"%d%s%lf%lf%lf"这种.
* 就可以了.自由格式
再问: 但是最后三列不一定有数据,如果用自由格式读取contact(j,1:4)就会因为没有足够数据可读报错.
再答: 百度搜索fortran getdatan 你会找到一个有用的函数,可以获得数据的列数。根据数据列数来进行不同的读取。
再问: 做成了,非常感谢!
再问: 但是最后三列不一定有数据,如果用自由格式读取contact(j,1:4)就会因为没有足够数据可读报错.
再答: 百度搜索fortran getdatan 你会找到一个有用的函数,可以获得数据的列数。根据数据列数来进行不同的读取。
再问: 做成了,非常感谢!