楼主:
okda (我要当个晨型人)
2013-01-24 09:45:10我的问题如下:
Program snapshot_splitting
implicit none
integer, parameter :: max_atoms = 200000
real*8, dimension(max_atoms) :: x_axis,y_axis,z_axis
integer :: atom_number,i,j,snapshot
character*9, dimension(max_atoms) :: atom_type
open(unit=7,file='water_2.52E8_box1_snapshot.xyz')
!打开此档案,档案格式是
!Solvent 1
!1377
!O 0.262871E+02 0.347348E+02 0.642930E+01
!H 0.266831E+02 0.338788E+02 0.626620E+01
!H 0.266774E+02 0.353092E+02 0.577060E+01
!以此类推
do i=1,10
read(7,*)
read(7,*)atom_number
do j=1,atom_number
read(7,*)atom_type(j),x_axis(j),y_axis(j),z_axis(j)
open(unit=snapshot,file='("water_2.52E8_box1_snapshot_", i, ".txt")')
write(unit=snapshot,fmt='(a2,2x,3e14.6)')atom_type(j),x_axis(j), &
y_axis(j),z_axis(j)
!想把原本档案中的资料分别写至10个档案
!档案名称分别是:water_2.52E8_box1_snapshot_1.txt,
! water_2.52E8_box1_snapshot_2.txt,
!以此类推到10
!但执行gfortran之后什么东西也跑不出来
!我哪里写错了呢?
enddo
read(7,*)
read(7,*)
enddo
stop
end
作者: terryys (terry) 2013-01-24 12:22:00
open(unit=snapshot... 这一句的档案名称不对参考一下以前的讨论,要先把名称写入一个字串还有open应该在do loop外面,而且最好要有一个相应的close