错误如这图片,请高人指点发生什么事情了
程序如下
program main
implicit none
character*15 :: charac
integer :: i,j,k,status,temp,step,nband_shift,flagd
integer :: read_bands_total,read_bands_h,read_bands_e
real(8) :: Efermi
integer, allocatable :: itera_steps(
real(8), allocatable :: energy(:,
open(unit=99,file='ReadOUTCAR.inp')
read(99,*) step ! Number of MD steps
read(99,*) nband_shift ! nband_shift+1 is the first band which is output
read(99,*) read_bands_h ! Number of hole energy bands to output
read(99,*) read_bands_e ! Number of electron energy bands to output
read(99,*) Efermi ! Fermi energy
close(99)
read_bands_total=read_bands_h+read_bands_e
allocate(itera_steps(step),energy(read_bands_total,step))
open(18,file='iteration-steps.dat')
do i=1,step
read(18,*) flagd,itera_steps(i)
end do
close(18)
open(32,file='OUTCAR')
read(32,*,IOSTAT=status) charac
j=1
k=0
do while(status==0)
charac=adjustl(charac)
if(index(charac,'E-fermi')==1) then
k=k+1
if(k>itera_steps(j)) then
write(*,*) 'error!!'
stop
else if(k==itera_steps(j)) then
do i=1,4+nband_shift
read(32,*)
end do
do k=1,read_bands_total
read(32,*) temp, energy(k,j)
end do
j=j+1
k=0
end if
end if
if (j>step) exit
read(32,*,IOSTAT=status) charac
end do
close(32)
open(32,FILE='hole-result.dat')
do i=1,step
do j=1,read_bands_h
write(32,'(F12.6)',advance='no') energy(j,i)+Efermi
end do
write(32,*)
end do
close(32)
open(32,FILE='elec-result.dat')
do i=1,step
do j=read_bands_h+1,read_bands_total
write(32,'(F12.6)',advance='no') energy(j,i)+Efermi
end do
write(32,*)
end do
close(32)
deallocate(itera_steps,energy)
end program
![算一种材料的动力学模拟,老师给我发的一个程序一直不能用,忘高人能够指点一二]()
4Q{N`3WHZS9B}EU(~1ZXH4T.png |