24小时热门版块排行榜    

查看: 1034  |  回复: 0

wuyifeijx

铜虫 (初入文坛)

[求助] fortran运行提示错误:program exception—Access violation

本人新手,运行出错了,我不知道该怎么改,求助,求助高手,大牛帮忙看看吧
program main
  !   
  !
  implicit none
  !
  integer(4) :: i,j,k,n,pnblk,nbl
  integer(4), dimension(, allocatable :: pim,pjm,pkm
  integer(4), dimension(, allocatable :: idim,jdim,kdim
  real(8), dimension(:,:,, pointer  ::  x1,y1,z1
  real(8), dimension(:,:,, pointer  ::  x,y,z
type thblk
    real(8), dimension(:,:,, pointer  ::  x,y,z
  end type thblk
  !
  type twblk
    real(8), dimension(:,:,, pointer  ::  x1,y1,z1
  end type twblk
  type(thblk), allocatable :: pblk3(
  type(twblk), allocatable :: pblk2(
  allocate(pblk2(1:nbl))
  allocate(pblk3(1:pnblk))
  allocate(pim(1:pnblk),pjm(1:pnblk),pkm(1:pnblk))
  allocate(idim(1:nbl),jdim(1:nbl),kdim(1:nbl))
! allocate arrays
      do n=1,nbl
            allocate(pblk2(n)%x1(0:idim(n),0:jdim(n),0:kdim(n)),                &
                 pblk2(n)%y1(0:idim(n),0:jdim(n),0:kdim(n)),                 &
                 pblk2(n)%z1(0:idim(n),0:jdim(n),0:kdim(n)))
          end do
          !   
      do n=1,pnblk
        allocate(pblk3(n)%x(0:pim(n),0:pjm(n),0:pkm(n)),              &
                 pblk3(n)%y(0:pim(n),0:pjm(n),0:pkm(n)),              &
                 pblk3(n)%z(0:pim(n),0:pjm(n),0:pkm(n)))
      end do
      !
  open(11,file='backstep5_3levdn.p3dfmt')
   rewind(11)                  
      read(11,*) nbl
      read(11,*) (idim(n),jdim(n),kdim(n),n=1,nbl)
     !
      do n=1,nbl
       read(11,*) (((x1(i,j,k),i=1,idim(n)),j=1,jdim(n)),k=1,kdim(n)),   &
                  (((y1(i,j,k),i=1,idim(n)),j=1,jdim(n)),k=1,kdim(n)),  &
                    (((z1(i,j,k),i=1,idim(n)),j=1,jdim(n)),k=1,kdim(n))   
       end do
           !
      close(11)
!
   do n=1,pnblk
    do k=0,pkm(n)
       do j=0,pjm(n)
        do i=0,pim(n)
          pblk3(n)%x=pblk2(n)%x1
          pblk3(n)%y=pblk2(n)%y1
          pblk3(n)%z=pblk2(n)%z1  
        end do
       end do
    end do
   end do
!  
  open(11,file='prep.grd',form='unformatted')
   rewind(11)
      do n=1,pnblk        
                  write(11) pblk3(n)%x,pblk3(n)%y,pblk3(n)%z
      end do
      close(11)
  !
end program main
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wuyifeijx 的主题更新
信息提示
请填处理意见