簡體   English   中英

Fortran重組數據文件

[英]Fortran restructure data file

我有一個包含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中是否有一個可以實現此目的的功能?

好吧,我從來沒有宣稱“漂亮”,但是它應該可以完成任務。 顯然,您需要檢查FORMAT語句:

      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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM