Fortran元素的End语句

Fortran元素的End语句,fortran,coding-style,Fortran,Coding Style,在Fortran 77或Fortan 90或Fortran 2003中,是否可以在没有相应的end语句的情况下结束以下构造,如下所示 例如,是否可以只使用end语句而不是end program来结束程序 子例程:结束子例程 函数:结束函数 模块:结束模块 节目:结束节目 如果:如果结束\endif do:end do\enddo select:end select\endselect这有点复杂,但当您包含编码样式标记时,我首先要说,我强烈建议在所有情况下都使用完整的表单-任何一个像样的编辑器都会

在Fortran 77或Fortan 90或Fortran 2003中,是否可以在没有相应的end语句的情况下结束以下构造,如下所示

例如,是否可以只使用
end
语句而不是
end program
来结束程序

子例程:结束子例程

函数:结束函数

模块:结束模块

节目:结束节目

如果:如果结束\endif

do:end do\enddo


select:end select\endselect

这有点复杂,但当您包含编码样式标记时,我首先要说,我强烈建议在所有情况下都使用完整的表单-任何一个像样的编辑器都会自动神奇地完成相应的
end
语句。例如,在emacs中,我使用的编辑器在键入
End
后点击tab将自动添加所有文本

但是,在某些情况下,技术上并不需要。对于do、if、select、where等控件构造,需要完整的表单。然而,对于程序和子程序来说,严格来说,它不是——事实上,最简单的Fortran程序就是

End
然而,我建议不要这样做,因为完整的表单可以有效地记录程序,程序员的开销几乎为零,这也意味着您不必记住什么时候需要完整的表单,什么时候不需要

我还将再次添加,当您包括编码样式标记时,完整形式实际上是指还包括程序/子程序名称或控件构造名称(如果使用)的形式。因此,我将编写一个“Hello World”程序作为

Program hello_world

  Implicit None

  Write( *, * ) 'Hello World!'

End Program hello_world

最后,我要补充的是,在当今时代,任何人都不应该使用Fortran77,它已经过时四分之一个世纪了,Fortran90也应该因为新代码而退役。

在程序单元和子程序/过程定义中可以使用未加修饰的
结尾

  • 结束[程序]
  • 结束[模块]
  • 结束[子模块]
  • end[块数据]
  • 结束[功能]
  • end[子例程]
不允许对可执行构造、接口块或“赋值构造”或类型定义(基本上,在任何其他地方)使用未经修饰的
结束

  • end-associate
  • 端块
  • end-critical
  • end do
  • 结束枚举
  • end for all
  • end if
  • end接口
  • 结束选择
    (对于
    选择案例
    选择等级
    选择类型
  • end团队
  • 末端类型
  • 在哪里结束
此外,对于第一个列表,在添加程序单元/过程名称时需要使用扩展形式:

  • 结束。。。名称
请注意,我没有提到语言修订:其中一些问题在Fortran 77中甚至不存在,上面列表中的一些问题在Fortran 2018中是新的



简单地说一下风格,我没有什么可反对的。

好的,我没有注意到这一点!根据我的MR&C(最新版本),它应该是简单的结束选择-这有点奇怪,因为它们是不同的结构