我有一个模块:
module A
! derived data type definition
...
contains
subroutine initialize()
type(dtype), allocatable, dimension(:) :: var
! initialize the derived datatype variable "var"
end initialize
subroutine access()
! access derived datatype variable "var"
end access
end module A
在main
程序中,initialize
和access
函数在不同的位置被调用。考虑到两个函数都是在同一模块中定义的,是否可以在access
函数内部访问已初始化的变量,而无需将变量var
传递到access()
函数中?
答案 0 :(得分:0)
问题代码中有三个作用域单位:
A
initialize
access
Host 关联意味着在模块作用域定义单元中声明的变量(实体)可以在两个模块过程中访问。但是,在模块过程中声明的变量不能在另一个模块过程中访问。
也就是说,即使 type dtype
在模块中声明了(并且在initialize
中可用),变量变量对于该过程。再次可以在dtype
中访问access
,但不能访问变量var
。
要在两个过程中都可以访问var
,请在模块作用域中声明它。