我正在做一个项目,因为我以前没有用 Fortran 编码,所以我很挣扎。我的教授给了我一个代码文件,我需要修复它,但我不明白语法。
所以,在他的文件中
g = some formula,
1 some formula
2 * some formula
3 / some formula.
Run Code Online (Sandbox Code Playgroud)
1, 2, 3, * 和 / 有什么作用?
我问过我的教授,他说这是 Fortran 77 代码,1、2、3 用作第 6 列中的索引,g 在第 7 列中,因为这就是 Fortran 代码的编写方式。但我很困惑为什么 Fortran 77 只接受第 7 列之后的代码?
谢谢大家的回复。
kva*_*our 10
您最有可能看到的是Fixed source-form statement continuation ,它是Fixed source form 的一部分。
固定格式格式化是一种旧的代码格式化方式,它仍然源于旧的穿孔卡片。行的长度只能为 72 个字符,但有时您需要更多。因此,语句继续字符:
除了在评论中,字符位置
6
用于表示继续。如果字符 position6
包含空白或零,则该行是新语句的首行,该语句从字符 position 开始7
。如果字符位置6
包含除空白或零以外的任何字符7–72
,则该行的字符位置构成前一个非注释行的延续。
哪个字符用作语句继续标记,取决于程序员和他的风格。通常,您会看到 <&>-字符 ( &
)、<dollar>-字符( $
) 或 <星号>-字符 ( ),*
如下所示:
c23456789012345678901234567890123456789012345678901234567890123456789012
g = something long
& + something_longer
& + something_even_longer
Run Code Online (Sandbox Code Playgroud)
然而,在真正的旧时代,人们经常对他们的台词进行编号。
c23456789012345678901234567890123456789012345678901234567890123456789012
0g = something long
1 + something_longer
2 + something_even_longer
Run Code Online (Sandbox Code Playgroud)
并且由于空间有限,他们删除了所有空格,当您的行中有数字时,这有时会变得非常混乱:
c23456789012345678901234567890123456789012345678901234567890123456789012
0g=1.2345+
10.35697-
22.5789
Run Code Online (Sandbox Code Playgroud)
这不是加 10.35697 减 22.5789,而是加 0.35697 减 2.5789
数字作为语句继续标记的使用再次继承自穿孔卡片。一张打孔卡代表一个 Fortran 语句。卡片上印有行号和列号(感谢High Performance Mark提供此信息)
注意: OP中的星号和斜线无非是正常的乘除法。
归档时间: |
|
查看次数: |
238 次 |
最近记录: |