主题:新手求问 allocate 用法
subroutine myfunc(val, n, x, grad, need_gradient, f_data)
real(8) val, x(n), grad(n), averg_res
integer n, need_gradient, counts
integer m, vn
real(8),allocatable :: vz(:),vv(:)
real(8),allocatable :: rr(:),tt(:),resat(:),restt(:), p(:),sx(:),sz(:),at(:)real(8) :: fdata(300)
vv=0
m = nint(fdata(1))
vn = nint(fdata(2))
sx = fdata(3 : m+2)
sz = fdata(m+3 : 2*m+2)
at = fdata(2*m+3 : 3*m+2)
vv = fdata(3*m+3 : 3*m+vn+2)
vz = fdata( 3*m+vn+3 : 3*m+2*vn+2)
allocate(rr(1:m),tt(1:m),resat(1:m),restt(1:m), p(1:m))
报错:
deallocate(rr(1:m),tt(1:m),resat(1:m),restt(1:m), p(1:m))
1
错误: (1)处的分配对象必须是 ALLOCATABLE 或 POINTER
fdirect.f95:175.25:
deallocate(rr(1:m),tt(1:m),resat(1:m),restt(1:m), p(1:m))
1
错误: (1)处的分配对象必须是 ALLOCATABLE 或 POINTER
fdirect.f95:175.33:
deallocate(rr(1:m),tt(1:m),resat(1:m),restt(1:m), p(1:m))
1
错误: (1)处的分配对象必须是 ALLOCATABLE 或 POINTER
fdirect.f95:175.44:
deallocate(rr(1:m),tt(1:m),resat(1:m),restt(1:m), p(1:m))
1
错误: (1)处的分配对象必须是 ALLOCATABLE 或 POINTER
fdirect.f95:175.56:
deallocate(rr(1:m),tt(1:m),resat(1:m),restt(1:m), p(1:m))
错误: (1)处的分配对象必须是 ALLOCATABLE 或 POINTER
明明已经规定了allocatable 为什么还报这个错误呢