我正在使用带有 intel fortran 编译器 (10.1.025) 的 Visual Studio 2008。
在我的程序中,我有一个子程序 solvemgmt()
subroutine solvemgmt()
use precision
use data_global
use lib_interface
implicit none
integer :: m
integer :: p1
integer :: c1
integer :: c2
integer :: g1
integer :: g2
integer :: t1
integer :: t2
real(iwp) :: ptime = 0.0
real(iwp), allocatable :: t1xfree(:,:,:) ! *** Break point 1 ***
real(iwp), allocatable :: t1force(:,:)
real(iwp), allocatable :: t2xfree(:,:,:)
real(iwp), allocatable :: t2force(:,:)
real(iwp), allocatable :: t2f(:,:)
real(iwp), allocatable :: jfres(:,:)
real(iwp), allocatable :: intfr(:,:)
m = gdtratio
p1 = 1
g1 = gpair(p1)%gfid(1)
g2 = gpair(p1)%gfid(2)
t1 = gpair(p1)%tfid(1)
t2 = gpair(p1)%tfid(2)
allocate(t1xfree(0:gparam(t1)%neq,3,m))
allocate(t1force(0:gparam(t1)%neq,0:m))
allocate(t2xfree(0:gparam(t2)%neq,3,m))
allocate(t2force(0:gparam(t2)%neq,0:m))
allocate(t2f(0:gparam(t2)%neq,3))
allocate(jfres(0:gparam(t1)%neq,m))
allocate(intfr(gpair(p1)%lmn*gpair(p1)%lmnodof,m))
: ! *** Break point 2 ***
:
:
return
end subroutine solvemgmt
在调试时,在断点 1 时,
T2XFREE Undefined pointer/array REAL(8)
T2F Undefined address REAL(8)
INTFR Undefined address REAL(8)
T2FORCE Undefined address REAL(8)
JFRES Undefined address REAL(8)
T1FORCE Undefined address REAL(8)
T1XFREE Undefined pointer/array REAL(8)
在断点 2 时,
T2XFREE {...} REAL(8)
T2F Undefined pointer/array REAL(8)
INTFR Undefined pointer/array REAL(8)
T2FORCE Undefined pointer/array REAL(8)
JFRES Undefined pointer/array REAL(8)
T1FORCE Undefined pointer/array REAL(8)
T1XFREE {...} REAL(8)
我不明白为什么 T2F、INTFR、T2FORCE、JFRES 和 T1FORCE 显示为未定义地址,然后显示为未定义指针/数组。