首页 文章

Fortran:将列添加到文件中(即跳过不同数量的水平空格)

提问于
浏览
3

我是Fortran的血腥初学者(f90),一些显然容易出问题导致严重的头痛......感谢您帮我解决这个问题:

我的代码运行循环,处理数据并将它们写入文件 . 我希望将这些数据写在同一文件的列中,直到循环结束 .

OPEN (unit=11,file=filename // '.csv')
WRITE(11,'(i4,A1,f10.6)') NUM4 , tab, NUMfloat10_6
CLOSE(11)

此代码适用于保存单个数据集 . “tab”定义为char(9); filename由脚本开头的用户指定 .

在循环模式下,我想添加另一个标签为“A1”和另一个NUMfloar10_6(“f10.6”) . 但是,我不能这样:

OPEN (unit=11,file=filename // '.csv')
WRITE(11,'(Tk,i4,A1,f10.6)') NUM4 , tab, NUMfloat10_6
CLOSE(11)

k定义为整数,随循环数增加* 15 .

你是如何解决这个问题的?如何在不知道要跳过多少空格的情况下将列“添加”到文件中?

1 回答

  • 0

    如果您使用ifort,只需添加括号 <k>

    k = 2
      WRITE(*,'(T<k>,A)'), "Hello World!"
    
      k = 6
      WRITE(*,'(T<k>,A)'), "Hello World!"
    
      k = 16
      WRITE(*,'(T<k>,A)'), "Hello World!"
    

    生产环境 :

    Hello World!
         Hello World!
                   Hello World!
    

相关问题