親モジュールで使用される(子)モジュールの変数は、親モジュールだけでメインプログラムでアクセス可能であることに気付きました。これは、Fortranのuse
文をC/C++のinclude
文と明確に区別する1つの概念です。以下のプログラムは、この概念を明確に示しています。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があります。 –