问题1:
我们知道,子程序中使用Allocate语句动态分配内存空间的指针,在退出子程序时需要使用Nullify语句解除指针与目标之间的关联。
那么在子程序中,有些指针指向了带target属性的变量。
在退出子程序前,这些指针是否也有必要使用Nullify语句解除关联?
问题2:
假定有一个指针函数如下:
[Fortran] 纯文本查看 复制代码 Function PointOfFrameworkSite(Iselect)
Integer, Intent(In) :: Iselect
Type(Type_Sites), Dimension(:), Pointer :: PointOfFrameworkSite
Select Case(Iselect)
Case(1)
PointOfFrameworkSite => Framework%Site
Case(2)
PointOfFrameworkSite => Framework%OpenMetalSite
Case Default
Write(*,*) "Unknown SBU Type"
End select
Return
End Function PointOfFrameworkSite
然后在某个模块下的内部子程序中,需要使用这个指针函数(已使用use调用指针函数所在的模块)
那么如果A也是指针
[Fortran] 纯文本查看 复制代码 A => PointOfFrameworkSite(I)
A = PointOfFrameworkSite(I)
这两种写法哪种更好
|