maji...@gmail.com
unread,Aug 26, 2014, 11:56:01 PM8/26/14You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to
Dear all,
can Every body tell me about the following error.
I ran the code with 500000 steps with out any problem but when I ran the code with 5000000 steps the error occurred. Please share your comments. I really need them.
Thanks in Advance
forrtl: severe (24): end-of-file during read, unit 1, file /home/majid/140820-1700-New/140820-New/Production-Step/140825-9000-g0.006/HISTORY
Image PC Routine Line Source
NUMdensity.ex 000000000042426A Unknown Unknown Unknown
NUMdensity.ex 0000000000403E1B Unknown Unknown Unknown
NUMdensity.ex 0000000000402BE6 Unknown Unknown Unknown
libc.so.6 00007F81DADF676D Unknown Unknown Unknown
NUMdensity.ex 0000000000402AD9 Unknown Unknown Unknown
My codes
PROGRAM density
IMPLICIT none
INTEGER :: iii,natoms,stepinterval,steptotal,nsteps,istep,iatom
INTEGER, ALLOCATABLE :: pp(:)!,prob(:)
REAL :: box(3),zmin,zmax,length
REAL, ALLOCATABLE :: XXX(:,:,:)
CHARACTER*3, ALLOCATABLE :: atomtype(:)
CHARACTER*8 :: arg,clength!,cbin
CHARACTER*80 :: filename
filename="none"
clength="0.0"
!cbin="0.0"
iii=1
DO WHILE (.TRUE.)
CALL GETARG(iii,arg)
IF (TRIM(arg) .eq. "-f") THEN
iii=iii+1
CALL GETARG(iii,filename)
ELSE IF (TRIM(arg) .eq. "-l") THEN
iii=iii+1
CALL GETARG(iii,clength)
!ELSE IF (TRIM(arg) .eq. "-b") THEN
! iii=iii+1
! CALL GETARG(iii,cbin)
ELSE
EXIT
END IF
iii=iii+1
END DO
IF (TRIM(filename) .eq. "none") THEN
print *, ""
print *, "----------------------------------------------------------------"
print *, "density.ex"
print *, " ."
print *, " "
print *, ""
print *, "----------------------------------------------------------------"
print *, "Run options:"
print *, "density.ex -f HISTORY -l 40"
print *, " -f: (filename) DL_Poly HISTORY force co-ordinate output file"
print *, " -l: length of pore, length"
!print *, " -b: (bin) Number of bins along z direction"
print *, " The selection of bin number should consider both of nanopore and pool. Total length of z dimention= box(3)"
print *, ""
print *, "----------------------------------------------------------------"
STOP
END IF
READ(clength,'(F4.0)') length
!READ(cbin,'(F4.0)') bin
!print *, "Number of bins:", bin
CALL data_range(filename,natoms,stepinterval,steptotal)
!Output data: natoms,stepinterval,steptotal
nsteps=steptotal/stepinterval
!print *,"number of output steps: ", nsteps
ALLOCATE(atomtype(natoms), XXX(nsteps,natoms,3))
CALL read_history(atomtype,natoms,nsteps,filename,XXX,box)
!Output data: atomtype,XXX,box
print *, "Finish read HISTORY file..."
ALLOCATE(pp(nsteps))
!ALLOCATE(prob(nsteps))
pp=0
!prob=0
!nsteps=10
DO istep=1,nsteps
DO iatom=1,natoms
IF (atomtype(iatom) .eq. "OW ") THEN
zmin=-box(3)/2
zmax=-box(3)/2+length
IF ((XXX(istep,iatom,3) .ge. zmin) .AND. (XXX(istep,iatom,3) .le. zmax)) THEN
pp(istep)=pp(istep)+1
!prob(pp(istep))=prob(pp(istep))+1
!prob(pp(istep))=prob(pp(istep))/nsteps
END IF
END IF
END DO
!print *,istep, pp(istep)
END DO
OPEN(1,FILE="Analysis/density.dat")
DO istep=1,nsteps
!
WRITE (1,*) istep, pp(istep)
END DO
CLOSE(1)
END PROGRAM density
SUBROUTINE data_range(filename,natoms,stepinterval,steptotal)
IMPLICIT none
INTEGER, INTENT(OUT) :: natoms, stepinterval, steptotal
CHARACTER*80, INTENT(IN) :: filename
print *, "Determining measurement parameters..."
! Get total number of steps
CALL SYSTEM("tail -100000 " // TRIM(filename) // " | grep timestep | tail -1 | awk '{ print $2 }' > out.tmp")
OPEN(1,FILE="out.tmp")
READ(1,*) steptotal
CLOSE(1)
! Get print interval
CALL SYSTEM ("head -100000 " // TRIM(filename) // " | grep timestep | head -1| awk '{ print $2 }' > out.tmp")
OPEN(1,FILE="out.tmp")
READ(1,*) stepinterval
CLOSE(1)
! Get number of atoms
CALL SYSTEM("head -100000 " // TRIM(filename) // " | grep timestep | head -1 | awk '{ print $3 }' > out.tmp")
OPEN(1,FILE="out.tmp")
READ(1,*) natoms
CLOSE(1)
! Clean up
CALL SYSTEM("rm out.tmp")
END SUBROUTINE data_range
SUBROUTINE read_history(atomtype,natoms,nsteps,filename,XXX,box)
IMPLICIT none
INTEGER :: iatom, istep, istepp, nnn, mmm, kkk, vvv
INTEGER,INTENT(IN) :: natoms, nsteps
REAL,INTENT(OUT) :: box(3),XXX(nsteps,natoms,3)
REAL :: rubbish, tstep,readsuccess
CHARACTER*80 :: header
CHARACTER*80,INTENT(IN) :: filename
CHARACTER*8 :: crubbish
CHARACTER*3,INTENT(OUT) :: atomtype(natoms)
print *, "Reading data..."
OPEN (1,FILE=filename) ! Open file to read positions
READ(1,'(A80)') header ! Read header
READ(1,*) nnn, kkk, vvv
DO istep=1,nsteps
readsuccess=0
READ(1,*,err=99991) crubbish, istepp, vvv, kkk, nnn, tstep ! Read the step number
readsuccess=1
READ(1,*) box(1), rubbish, rubbish ! Read the 1st dimensions of the box
READ(1,*) rubbish, box(2), rubbish ! Read the 2nd dimensions of the box
READ(1,*) rubbish, rubbish, box(3) ! Read the 3th dimensions of the box
DO iatom=1,natoms
READ(1,*) atomtype(iatom),mmm,rubbish,rubbish
READ(1,*) XXX(istep,iatom,1:3)
READ(1,*) rubbish,rubbish ,rubbish
READ(1,*) rubbish,rubbish ,rubbish
END DO
IF (readsuccess .eq. 0) THEN
WRITE (*,'(A,I8,A)') "Restart point foud (",istep,").Continuing."
READ(1,*) header
END IF
END DO
99991 CONTINUE
CLOSE(1)
END SUBROUTINE read_history
A part of My HISTORY FILE
New Box 2.0A
2 2 11922
timestep 500 11922 2 2 0.000200
50.00 0.000 0.000
0.000 50.00 0.000
0.000 0.000 180.0
C 1 0.000000 0.000000
1.1500E+01 0.0000E+00 -9.0000E+01
0.0000E+00 0.0000E+00 0.0000E+00
0.0000E+00 0.0000E+00 0.0000E+00
C 2 0.000000 0.000000
1.1488E+01 5.2342E-01 -9