我定义了以下模块:
module data_model_2
implicit none
! -------------------
! TYPE DEFINITION
! -------------------
type :: type1_record
integer :: month
integer :: day
integer :: year
integer :: hour
integer :: minute
integer :: second
integer :: value1
integer :: value2
end type
type :: timestamp_record
integer :: year
integer :: month
integer :: day
integer :: hour
integer :: minute
integer :: second
end type
end module
Run Code Online (Sandbox Code Playgroud)
我已经看到,modules应使用条款contains。当模块仅包含派生类型定义时是否需要该子句?
如果是这样,它应该包括在implicit none什么地方,在?之后还是之前?
如果模块还包括函数或过程,派生类型定义是在contains子句之前还是之后?
我很想知道这在 Fortran 95 和 Fortran 03 中是如何工作的。
该contains声明说,接踵而来的是内部的子程序或模块子程序。只有那些东西可能出现在模块的contains和之间end。
在 Fortran 2008 之前,不允许有“空包含”部分:如果您在 Fortran 90、95、2003 中没有模块子程序,那么您可能没有contains. 在 Fortran 2008+ 中,虽然不是必需的,但没有它们,您可能会拥有它。
contains本质上是模块中允许的最后一件事:所有不是内部/模块子程序的模块范围定义必须在此之前。一个implicit语句必须是在模块范围很早就:只有模块声明,use并import(在那些支持极少数情况下)可能会preceed它。
| 归档时间: |
|
| 查看次数: |
49 次 |
| 最近记录: |