Coding style 如何很好地使用Fortran语句标签?
我正在研究一个用Fortran 95编写的模型,我对它完全陌生。语句标签的概念似乎很奇怪,到目前为止,我只发现了一种解释,即标签可以由作者任意决定,通常递增10Coding style 如何很好地使用Fortran语句标签?,coding-style,fortran,standards,conditional-statements,fortran77,Coding Style,Fortran,Standards,Conditional Statements,Fortran77,我正在研究一个用Fortran 95编写的模型,我对它完全陌生。语句标签的概念似乎很奇怪,到目前为止,我只发现了一种解释,即标签可以由作者任意决定,通常递增10 除了更容易地找出语句的结尾外,这些标签还有什么实际用途吗?在现代Fortran中,我认为语句标签有用的唯一方法是在使用gotos时进行错误控制(是的,它们有时很有用-小心处理;-)。将它们列在“过时”下 另一方面,构造名称有时可能有助于帮助读者理解代码,例如对于大循环或if语句。构造名称的另一个用途是高级循环控制,例如循环外部循环时:
除了更容易地找出语句的结尾外,这些标签还有什么实际用途吗?在现代Fortran中,我认为语句标签有用的唯一方法是在使用
goto
s时进行错误控制(是的,它们有时很有用-小心处理;-)。将它们列在“过时”下
另一方面,构造名称有时可能有助于帮助读者理解代码,例如对于大循环或if
语句。构造名称的另一个用途是高级循环控制,例如循环外部循环时:
outer: do i=1,10
do ii=1,10
if ( i == 2 .and. ii == 3 ) cycle outer
z(ii,i) = 1.d0
enddo
enddo outer
“如何更好地使用它们”的字面答案是“不要”。如果你有一些东西看不到如何更新到现代标准,请发布一个具体的例子。这里有一些有趣的历史这确实是一段古老的历史,到80年代中期,我们还没有按顺序对fortran进行编号。“outer”是一个构造名称,而不是一个标签。他们是语法上不同的野兽。谢谢你的澄清,我在课文中修改了它。