使用其他程序单元的模块

要从另一个程序单元(模块,过程或程序)访问模块中声明的实体,该模块必须与 use 语句一起使用

module shared_data
  implicit none

  integer::iarray(4) = [1, 2, 3, 4]
  real::rarray(4) = [1., 2., 3., 4.]
end module

program test

  !use statements most come before implicit none
  use shared_data

  implicit none

  print *, iarray
  print *, rarray
end program

use 语句仅支持导入选定的名称

program test

  !only iarray is accessible
  use shared_data, only: iarray

  implicit none

  print *, iarray
  
end program

也可以使用重命名列表以不同的名称访问实体 :

program test

  !only iarray is locally renamed to local_name, rarray is still acessible
  use shared_data, local_name => iarray

  implicit none

  print *, local_name

  print *, rarray
  
end program

此外,重命名可以与 only 选项结合使用

program test
  use shared_data, only : local_name => iarray
end program

这样只访问模块实体 iarray,但它的本地名称为 local_name

如果选择将名称标记为私有,则无法将其导入程序。