Fortran:编写和读取格式化文件

时间:2015-03-27 18:48:26

标签: file fortran

我有一个浮点数数组,想要将值写入文件。然后读回来。

我正在写文件如下

Do k = 1, nk
  Do j = 1, nj
    Write (u,*) (lec(i,j,k), i = 1, ni)
  End Do
End Do

这时写下数字如下 ni = 5nj = 4nk = 2

1.1 1.2 1.3 1.4 1.5    
2.1 2.2 2.3 2.4 2.5
3.1 3.2 3.3 3.4 3.5
4.1 4.2 4.3 4.4 4.5
1.1 1.2 1.3 1.4 1.5    
2.1 2.2 2.3 2.4 2.5
3.1 3.2 3.3 3.4 3.5
4.1 4.2 4.3 4.4 4.5

我想以下列方式更改输出文件的格式

lec: 1.1 1.2 1.3 1.4 1.5    
+ 2.1 2.2 2.3 2.4 2.5
+ 3.1 3.2 3.3 3.4 3.5
+ 4.1 4.2 4.3 4.4 4.5
+ 1.1 1.2 1.3 1.4 1.5    
+ 2.1 2.2 2.3 2.4 2.5
+ 3.1 3.2 3.3 3.4 3.5
+ 4.1 4.2 4.3 4.4 4.5

如何修改代码以获得此输出形式?

我以同样的方式读取内容,但只有在文件中遇到密钥lec:时才读取lec中的值。

1 个答案:

答案 0 :(得分:1)

 Do k = 1, nk
   Do j = 1, nj
     if(k.eq.1.and.j.eq.1)then
       write(u,'(a)',advance='no')'lec:'
     else
       write(u,'(a)',advance='no')'+'
     endif
     Write (u,*) (lec(i,j,k), i = 1, ni)
   End Do
  End Do

 Do k = 1, nk
   Do j = 1, nj
     if(k.eq.1.and.j.eq.1)then
       write(u,'(a,99f4.1))'lec:',(lec(i,j,k), i = 1, ni)
     else
       write(u,'(a,99f4.1)')'+',(lec(i,j,k), i = 1, ni)
     endif      
   End Do
  End Do

如果您的编译器支持,99可以是大于ni*的任何数字。