Fortran重组数据文件



我有一个带有4列的数据文件:

x    y    u    v

使得x和y是与u和v。

相关的坐标位置

数据的结构使得

x    y    u    v
1    1    #    #
2    1    #    #
3    1    #    #
...

但是,我想重组文件

x    y    u    v
1    1    #    #
1    2    #    #
1    3    #    #
...

fortran中是否有可以实现此目标的功能?

好吧,我从不对" Pretty"提出主张,但应该可以完成工作。显然,您需要检查您的格式语句:

      PROGRAM TEST
      REAL*8 :: U(4,4)
      REAL*8 :: V(4,4)
      INTEGER :: X, Y
      DO
         READ(*,'(2I2)',ADVANCE='NO',END=10) X,Y
         READ(*,'(2F6.1)',ADVANCE='YES',END=10) U(X,Y),V(X,Y)
      END DO
 10   CONTINUE
      WRITE(*,'(2I4,2F10.2)') ((I,J,U(I,J),V(I,J),J=1,4),I=1,4)
      END

我假设您的数组已经正确分配了。

这是我的输入文件:

$ cat test.in
 1 1    5.0  10.0
 2 1    1.3  -0.2
 3 1    5.1   0.0
 4 1   -9.1   3.0
 1 2    4.0   2.0
 2 2   14.0  -8.0
 3 2   -8.0   8.0
 4 2    4.0   9.6
 1 3    2.0   1.1
 2 3    3.4   8.0
 3 3    4.0   7.0
 4 3    4.0   4.1
 1 4    5.5   8.4
 2 4   34.1  23.0
 3 4   -4.1   4.0
 4 4    6.0   8.4

和输出:

$ cat test.in | ./a.out
 1 1    5.0  10.0
 1 2    4.0   2.0
 1 3    2.0   1.1
 1 4    5.5   8.4
 2 1    1.3  -0.2
 2 2   14.0  -8.0
 2 3    3.4   8.0
 2 4   34.1  23.0
 3 1    5.1   0.0
 3 2   -8.0   8.0
 3 3    4.0   7.0
 3 4   -4.1   4.0
 4 1   -9.1   3.0
 4 2    4.0   9.6
 4 3    4.0   4.1
 4 4    6.0   8.4

最新更新