我注意到,父模块使用的(子)模块中的变量只能通过父模块在主程序中访问。这是一个概念,它明确区分了Fortran中的use
语句与C/C++中的include
语句。以下程序清楚地说明了这个概念。Fortran中模块使用的模块的变量范围
a.f90
module a_mod
use b_mod
implicit none
integer :: a
end module
b.f90
module b_mod
use c_mod
implicit none
integer :: b
end module
c.f90
module c_mod
implicit none
integer :: c = 10
contains
subroutine inc_c
c = c + 10
end subroutine inc_c
end module
test.f90
program test
use a_mod
implicit none
call inc_c
write(*,*),c
end program
注意,我能够通过只使用a_mod
调用函数中c_mod
。请注意,我不能直接观察到c_mod
可用,除非我遍历依赖项列表。
但是在一个复杂的软件中,是否有一种简单的方法可以知道(比如说,使用IDE)如果某个变量可用于特定行?
每个IDE都不同。这不能真正回答。一些IDE可能提供此功能,其他IDE可能不提供此功能许多Fortran程序员根本不使用任何IDE。 –
请注意,Fortran使用'private','public'和'only'具有更好的Fortran可访问性。 –