请高手指点一下:
我的程序怎么当矩阵一大就出错啊?小的时候运行都很好的啊:

program caculation  
use IMSL
 

implicit none

integer i,q, k,r,p,j,a,b,LDH,LDS,LDEVEC,NOUT
real t,u
integer, parameter :: n=10
integer,parameter :: m=6
real ::     H(4*n*m,4*n*m)
real ::     S(4*n*m,4*n*m)
complex::   EVAL(4*m*n)
complex ::  EVEC(4*m*n,4*m*n)
complex ::  ALPHA(4*m*n)
real ::     aBETA(4*m*n)
 real::      PI
open (unit=20,file='caculation v.text')
  t=-2.79
  u=0.3
LDEVEC=4*m*n
LDH=4*m*n
LDS=4*m*n
do a=1,4*m*n
    do b=1,4*m*n
    H(b,a)=0
    end do
end do

do i=1,4*n*m-1
      H(i,i+1)=t
      H(i+1,i)=t
      S(i,i+1)=u
      S(i+1,i)=u
end do

do q=1,m-1
      H(4*q*n,4*q*n+1)=0
      H(4*q*n+1,4*q*n)=0
      S(4*q*n,4*q*n+1)=0
      S(4*q*n+1,4*q*n)=0
end do

do r=0,m-2
   do k=0,n-1
        H(4*r*n+4*k+1,4*n*(r+1)+4*k+2)=t
        H(4*r*n+4*k+2,4*n*(r+1)+4*k+1)=t
        S(4*r*n+4*k+1,4*n*(r+1)+4*k+2)=u
        S(4*r*n+4*k+2,4*n*(r+1)+4*k+1)=u
   end do
 end do
do r=0,m-2
   do p=1,n
       H(4*n*r+4*p,4*n*(r+1)+4*p-1)=t
       H(4*n*(r+1)+4*p-1,4*n*r+4*p)=t
       S(4*n*r+4*p,4*n*(r+1)+4*p-1)=u
       S(4*n*(r+1)+4*p-1,4*n*r+4*p)=u
   end do
end do

      
CALL GVCRG (4*m*n, H, LDH, S, LDS, ALPHA, ABETA, EVEC, LDEVEC)  !!!!!!!question!
 DO 10  I=1, 4*M*N
            EVAL(I) = ALPHA(I)/ABETA(I)
   10 CONTINUE
 PI = GPIRG(4*M*N,4*M*N,H,LDH,S,LDS,ALPHA,ABETA,EVEC,LDEVEC)

     CALL UMACH (2, NOUT)
     CALL WRCRN ('EVAL', 1, 4*M*N, EVAL, 1, 0)
      CALL WRCRN ('EVEC', 4*M*N, 4*M*N, EVEC, LDEVEC, 0)


    WRITE (NOUT,'(/,A,F6.3)') ' Performance index = ', PI
!                                 Solve for reciprocals of values
 !    CALL GVCRG (4*M*N,  S, LDS,H, LDH, ALPHA, aBETA, EVEC, LDEVEC)
!       DO 20  I=1, 4*M*N
 !           EVAL(I) = ALPHA(I)/aBETA(I)
  ! 20 CONTINUE
!                                 Compute performance index
!     PI = GPIRG(4*M*N,4*M*N,S,LDS,H,LDH,ALPHA,aBETA,EVEC,LDEVEC)
 !                               Print results
  !    CALL WRCRN ('EVAL reciprocals', 1, 4*M*N, EVAL, 1, 0)
  !   CALL WRCRN ('EVEC', 4*M*N, 4*M*N, EVEC, LDEVEC, 0)
!      WRITE (NOUT,'(/,A,F6.3)') ' Performance index = ', PI
 
      do i=1,4*m*n
          write(20,*) eval(i)
     end do
                write(20,*) "this is vectors 1"
  do i=1,4*m*n
     do j=1,4*m*n
         write(20,*) evec(j,i)
      end do
         write(20,*) "this is vector ",i+1
 end do

end