Fortran 形式的含义是什么;格式化的;在公开声明中?

Fortran 形式的含义是什么;格式化的;在公开声明中?,fortran,fortran90,Fortran,Fortran90,我有两个FORTRAN的问题(我对这门语言不熟悉) 我有以下代码行: OPEN(UNIT=79, FILE='sampling.txt', FORM='FORMATTED') READ(79,*) NP1,NP2,IW NP1、NP2、IW被声明为整数 “打开”中的“格式化”是什么?我在读什么数据?读取行是否读取单行并将数据放入NP1、NP2、IW中?数据是否用逗号分隔?空间分隔 我的下一个问题是: D_IN = (RD/1000000)**(2./3.)/9.81**(1./3.)

我有两个FORTRAN的问题(我对这门语言不熟悉)

我有以下代码行:

  OPEN(UNIT=79, FILE='sampling.txt', FORM='FORMATTED')
  READ(79,*) NP1,NP2,IW 
NP1、NP2、IW被声明为整数

“打开”中的“格式化”是什么?我在读什么数据?读取行是否读取单行并将数据放入NP1、NP2、IW中?数据是否用逗号分隔?空间分隔

我的下一个问题是:

D_IN = (RD/1000000)**(2./3.)/9.81**(1./3.) 

这条线是干什么的??(D_IN和RD是真实的*8)有人能把它翻译成C吗?

格式化文件或多或少是一个文本文件。格式化意味着数字和其他变量存储为字符。否则,文件的实际格式由您决定。在您的示例中,read语句中的*表示所谓的“列表定向格式”,它允许处理器在写入和读取时有很大的自由度。如果您需要更多,格式化的I/O是Fortran中比较困难的方面之一,您应该在上的大量资源中学习


另一个问题:操作员
**
是电源操作员。如果第二个操作数不是小整数,则在翻译时使用C中的函数
pow()

“格式化”基本上是指文本输出,即人类可读的。另一种选择是“未格式化”,它允许处理器使用位和字节(或其等价物)而不是文本来写入文件。在C语言中,区别在于库调用级别——fprintf(~formatted)与fwrite(~unformatted)

您的read语句使用了所谓的列表导向格式(由括号列表第二个位置的
*
指定)-输入的格式根据输入中的项目列表确定,而不是由程序员明确指定。这种语言有一套关于如何在列表导向格式下翻译输入的规则,这些规则在穿孔卡片时代很有意义,但今天的用户可能会感到惊讶。作为一个非常不完整的摘要记录(可能是多行)将从文件中读取,直到读取了三个值为止,这些值将被解释为整数。记录中的值可以用逗号或空格分隔

假设粗体格式是无意中出现的(如果不是,则该行是语法错误,Fortran 90处理器将为您提供诊断,在C语言中获取语法错误的方法非常多),则在中以
D_开头的行是赋值语句。
=
右侧表达式的值将分配给左侧的变量。等效的C几乎是文字转录(通常需要在浮点常量后附加
f
,以使用类似的数字类型,但这取决于Fortran处理器和C实现的具体情况)。

假设粗体格式是无意的(如果不是,则该行是语法错误,Fortran 90处理器将为您提供诊断,在C语言中获取语法错误的方法非常多)
**
是Fortran中的求幂运算符。