主题:指针指向关系的作用域
程序中的一个问题,程序基本结构如下:
module fv
implicit none
type derivedType
real,pointer :: fun(:)
end type
end module
program test
use fv
implicit none
type(derivedType) :: array(1:2)
real :: x(1:8)
x = 0.
array(1)%fun => x(1:4)
array(2)%fun => x(5:8)
call f1(x)
contains
subroutine f1(x)
...
end subroutine
问题为:
1 先将指针指向x,调用子程序f1时,f1内部并没有将array和x关联起来;
2 在f1内部将array指向x后程序运行正常,但返回到主程序中后array数组中只有一个与x的相应部分关联。
对指针的这种指向关系是否在内部子程序中继续作用不太清楚,请问以上两个问题如何理解?
module fv
implicit none
type derivedType
real,pointer :: fun(:)
end type
end module
program test
use fv
implicit none
type(derivedType) :: array(1:2)
real :: x(1:8)
x = 0.
array(1)%fun => x(1:4)
array(2)%fun => x(5:8)
call f1(x)
contains
subroutine f1(x)
...
end subroutine
问题为:
1 先将指针指向x,调用子程序f1时,f1内部并没有将array和x关联起来;
2 在f1内部将array指向x后程序运行正常,但返回到主程序中后array数组中只有一个与x的相应部分关联。
对指针的这种指向关系是否在内部子程序中继续作用不太清楚,请问以上两个问题如何理解?