在大型遗留代码中,在END SUBROUTINE之前只有一个简单的RETURN语句(没有任何参数)是一个好习惯,还是应该将其删除?
我正在处理一份大型科学计算遗留代码,其中部分代码最初是用Fortran 77编写的,而大多数新开发都是用Fortran 95及以上版本编写的。其中还穿插了一些C代码和Python脚本。
英特尔开发人员指南明确提到End Subroutine已经启动了Return:https://software.intel.com/en-us/fortran-compiler-developer-guide-and-reference-end 另一方面,我记得在2000年代曾被教导过在END SUBROUTINE之前指定显式RETURN语句始终是个好习惯。
典型的子程序结构如下所示(例如,查普曼的“科学家和工程师的Fortran”第4版):
我正在处理一份大型科学计算遗留代码,其中部分代码最初是用Fortran 77编写的,而大多数新开发都是用Fortran 95及以上版本编写的。其中还穿插了一些C代码和Python脚本。
英特尔开发人员指南明确提到End Subroutine已经启动了Return:https://software.intel.com/en-us/fortran-compiler-developer-guide-and-reference-end 另一方面,我记得在2000年代曾被教导过在END SUBROUTINE之前指定显式RETURN语句始终是个好习惯。
典型的子程序结构如下所示(例如,查普曼的“科学家和工程师的Fortran”第4版):
SUBROUTINE subroutine_name ( argument_list )
...
(Declaration section)
...
(Execution section)
...
RETURN
END SUBROUTINE [subroutine_name]
如果没有任何参数的返回语句不是一种好的实践,那么为什么要在结构中提及它,尤其是在“执行部分”之外?CYCLE或EXIT等从未被提及作为标准子程序结构的一部分。那么,为什么要使用RETURN?