首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在子程序中使用module2,该子程序包含在module1中还是module1本身?

在子程序中使用module2,该子程序包含在module1中还是module1本身?
EN

Stack Overflow用户
提问于 2016-04-07 15:25:37
回答 1查看 28关注 0票数 0

如下所示的模块之间是否存在显著差异

代码语言:javascript
复制
MODULE module1
   USE module2
   IMPLICIT NONE
       :
CONTAINS

   SUBROUTINE subroutine1
      IMPLICIT NONE
          :
   END SUBROUTINE subroutine1

   SUBROUTINE subroutine2
      IMPLICIT NONE
          :
   END SUBROUTINE subroutine2

END MODULE module1

另一个像下面这样的

代码语言:javascript
复制
MODULE module1
   IMPLICIT NONE
       :
CONTAINS

   SUBROUTINE subroutine1
      USE module2
      IMPLICIT NONE
          :
   END SUBROUTINE subroutine1

   SUBROUTINE subroutine2
      IMPLICIT NONE
          :
   END SUBROUTINE subroutine2

END MODULE module1

除了在第一种情况下两个子程序都会看到module2之外?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-07 15:41:12

有可能是重要的,而且应该注意到的区别是

代码语言:javascript
复制
MODULE module1
   USE module2

默认情况下,module1还将导出module2的所有公共符号。当您只在子例程中使用module2时,这种情况不会发生,因为模块没有看到它。

所以:

代码语言:javascript
复制
  module module2
    integer int
  end module

  module module1
    use module2
  end module

    use module1
    print *, int
  end

是可能的,但是

代码语言:javascript
复制
  module module2
    integer int
  end module

  module module1
  contains
    subroutine s
      use module2
    end subroutine
  end module

    use module1
    print *, int
  end

不是。

当然,only子句以及privatepublic语句可以更详细地控制这种行为。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36480654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档