【发布时间】:2012-12-14 07:27:11
【问题描述】:
我正在尝试使用 gfortran 4.4.6 编译其他人的 FORTRAN 代码。最初的编码器使用 Compaq FORTRAN 之类的东西。
有问题的代码应该读取像“foo.txt”这样的文件名并创建一个名为“foo_c.txt”的新文件:
file_label_end = SCAN(文件名, '.') - 1 WRITE (output_filename,5) 文件名 5 格式 (Agfortran 抱怨字符说明符的左尖括号。也就是说,他有“A”,而不是“A3”。我找不到任何关于从变量中插入格式宽度的信息......这可能吗?如果没有,解决此问题的最佳方法是什么?
更新:
这似乎工作(编译):
file_label_end = SCAN(par_filename, '.', .TRUE. ) + 1
output_filename = par_filename(1:file_label_end) // '_c.par'
但我后来也有类似的情况:
12 格式 (F10.5) ... READ(1,12) (cat_parm (blk,j), j = 1,n-1)
我试图通过创建格式字符串来解决这个问题:
写(fmt12,'(I0,A4)') n-1, 'F10.5' !12 格式 (fmt12) 12 格式(fmt=fmt12)
但是“fmt”中的“t”被标记为“格式字符串中需要非负宽度”的错误
【问题讨论】: