訪問控制

可以使用 privatepublic 屬性和語句來控制模組中宣告的符號的可訪問性。

宣告表格的語法:

!all symbols declared in the module are private by default
private

!all symbols declared in the module are public by default
public

!symbols in the list will be private
private::name1, name2

!symbols in the list will be public
public::name3, name4

屬性形式的語法:

integer, parameter, public::maxn = 1000

real, parameter, private::local_constant = 42.24

可以使用模組從程式單元訪問公共符號,但私有符號不能。

如果未使用規範,則預設為 public

使用預設訪問規範

private

要麼

public

可以通過使用 entity-declaration-list 指定不同的訪問許可權來更改 **

public::name1, name2

或使用屬性。

此訪問控制還會影響從另一個模組匯入的符號:

module mod1
  integer::var1
end module

module mod2
  use mod1, only: var1

  public
end module

program test
  use mod2, only: var1
end program

是可能的,但是

module mod1
  integer::var1
end module

module mod2
  use mod1, only: var1

  public
  private::var1
end module

program test
  use mod2, only: var1
end program

是不可能的,因為 varmod2 是私人的。