24小时热门版块排行榜    

查看: 321  |  回复: 2

戴戴12345

新虫 (正式写手)

[求助] 算一种材料的动力学模拟,老师给我发的一个程序一直不能用,忘高人能够指点一二 已有1人参与

错误如这图片,请高人指点发生什么事情了
程序如下
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
回复此楼

» 猜你喜欢

» 本主题相关商家推荐: (我也要在这里推广)

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

weiwei43

至尊木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
读18号文件出错。
可能是18号文件程序读的数据和你给的不匹配。这可能是数据个数不匹配,数据类型不匹配等。
2楼2015-06-11 09:14:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

weiwei43

至尊木虫 (正式写手)

18号文件应该是step行,每行两个数据,两个数据均为整型。
3楼2015-06-11 09:17:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 戴戴12345 的主题更新
信息提示
请填处理意见