将sun兼容的fortran 77移植到gcc:READ,FORMAT中的格式说明符

时间:2010-02-24 02:11:51

标签: fortran fortran77 gfortran

我有一些旧的fortran 77我试图在Windows上移植到gcc。

我正在使用gfortran 4.4。

该声明使用READ(FOO,'(F)',ERR = BAR)BAZ和gcc抱怨F.从我看到它看起来F需要与它相关的大小。还有FORMAT语句使用类似的构造。

移植此端口的正确方法是什么?似乎在sun studio编译器上单独使用F只适合合适的大小。但是gfortran抱怨它不是非负的或正的宽度。

任何想法如何移植?

1 个答案:

答案 0 :(得分:1)

这是格式化的阅读。它应该是READ(FOO,'(FN.M)',ERR = BAR)BAZ,N和M特定数字,其中N是以字符为单位的字段宽度,M是小数点后的位数。输入M如果数据有小数点则无关紧要,因为小数点将覆盖格式规范。如果您不确定输入数据是否始终符合此严格规范,则最好切换到无格式输入:READ(FOO,*,ERR = BAR)BAZ。这也称为列表导向的i / o。这非常灵活和猜测,可能更好地匹配扩展“F”正在做的事情。 (format-free / list-directed与unformatted不同,后者用于没有任何位转换的二进制文件。)