我有一个主程序,它需要一个子程序(比如说1)来执行,但是同一个子程序(1)需要另一个子程序(比如说2),在我的例子中它是dsyev(标准矩阵对角化,通过LAPACK )。
现在,我遇到了一个问题,每当我将矩阵传递给我的子程序1时,它将相应的哈密顿矩阵写入其中,然后它调用子程序1中的子程序2,用于对齐哈密顿量;结果我将在我的主程序中获得能量特征值。我得到***************而不是能量特征值。
PROGRAM MAIN
! Variable intialization
!................
do i=1, N
call subroutine1(n, Matrix1 ,EIG )
write(3,'(100G5.5)')(EIG(K),K=1,siz)
!
!
!
!
enddo
end program
subroutine subroutine1(n, Matrix2, EIG )
CALL init_random_seed()
! body of the function
! writing Matrix2 to a Hamiltonian(which is done fruitfully)
! Diagonilizing Hamiltonian
CALL DSYEV('Vectors', 'Upper', SIZ, HAMIL, LDA, EIG, WORK, LWORK, INFO)
end subroutine
subroutine init_random_seed()
! Standard random no. generator
end subroutine