Re: [問題] 格式輸入問題
我不知道該怎麼解釋,所以直接打了一個例子給你參考,應該是你要的
關鍵就是format敘述裡的< >這個符號
要注意的是,這是我從INTEL FORTRAN編譯器的HELP找到的
所以不曉得<>這個符號是標準FORTRAN的用法還是INTEL編譯器自己的用法
因為INTEL的HELP裡,標準FORTRAN語法跟INTEL自己的特殊語法與函式庫都混在一起寫...
如果你不是用INTEL的編譯器,我不確定下面的CODE能不能用
PROGRAM main
IMPLICIT NONE
INTEGER*4::row,N
REAL*8::xyz(3,100)
CALL RANDOM_SEED()
CALL RANDOM_NUMBER(xyz)
DO row=1,100
N=INT(LOG10(DBLE(row)))+1
WRITE(*,"('AA',I<N>,<7-N>X,3(2X,E15.8))") row,xyz(:,row)
ENDDO
END PROGRAM main
輸出結果應該是
AA1 0.XXXXXXXXE+XX 0.XXXXXXXXE+XX 0.XXXXXXXXE+XX
AA2 0.XXXXXXXXE+XX 0.XXXXXXXXE+XX 0.XXXXXXXXE+XX
. ... ... ...
. ... ... ...
AA10 0.XXXXXXXXE+XX 0.XXXXXXXXE+XX 0.XXXXXXXXE+XX
. ... ... ...
. ... ... ...
AA99 0.XXXXXXXXE+XX 0.XXXXXXXXE+XX 0.XXXXXXXXE+XX
AA100 0.XXXXXXXXE+XX 0.XXXXXXXXE+XX 0.XXXXXXXXE+XX
※ 引述《sky770324 (Pony)》之銘言:
: 請想問一下大家
: 假如我想寫一個檔案格式像是下列這樣:
: AA1 x1 y1 z1
: AA2 x2 y2 z2
: AA3 x3 y3 z3
: AA10 x10 y10 z10
: AA100 x100 y100 z100
: 大概是像面那樣 AA代表是兩個字元,後面是我的編號(1~999)
: 我想問一下如果想把上面那些寫進去檔案裡面
: 我是想要利用迴圈
: do row =1,100
: write(10,??)"AA",row,x1,y1,z1
: end do
: x1 y1 z1 表示的是我想表達的座標
: 而AA是我的名稱,row是我的編號
: 因為座標我也要用固定的格式輸出 所以我不能再write內用free format來表達出
: AA1
: AA2
: AA10
: AA100
: 我有查過彭國倫寫的書,可是查不太到要用怎樣的format()格式
: 才可以一次表達最上面敘述的,
: 我最多只能把它寫成下面這樣
: AA 1 x1 y1 z1
: AA 2 x2 y2 z2
: AA 3 x3 y3 z3
: AA 10 x10 y10 z10
: AA100 x100 y100 z100
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.218.94
→
02/21 03:51, , 1F
02/21 03:51, 1F
→
02/21 04:05, , 2F
02/21 04:05, 2F
→
02/21 04:09, , 3F
02/21 04:09, 3F
※ 編輯: callmei 來自: 140.112.218.94 (02/21 04:13)
推
02/21 10:12, , 4F
02/21 10:12, 4F
討論串 (同標題文章)
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章