Re: [問題] write 單行的限制

看板Fortran作者 (MoOn)時間14年前 (2010/10/12 15:53), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《alecyen (恩~)》之銘言:subroutine output(matrix) : ※ 引述《alecyen (恩~)》之銘言: : : 請問有誰瞭解write出幾個變數在一行 : : 上有限制個數嗎? : : b=30 : : a=15 : : do i = 1 ,a : : write(*,*)(c(i,j),j=1,b) : : enddo : : 我發現第一行只輸出19個變數,然後就跳到下一行 : : 輸出剩餘的11個變數? : : 而我希望的是輸出一個30x15的矩陣 : 解決方式:針對不同的b可以一次應付 : write(crl,'(i3)')b : write(*,'(a)')crl : wtmp = '('//crl//'(f5.3,1x)'//')' : write(*,'(a)')wtmp : do i = 1, a : write(12,wtmp)(c(i,j), j = 1, b) : enddo : 回饋一下~ 感謝給建議的朋友 這個可能更不錯用 subroutine output(matrix) implicit none real :: matrix(:,:) integer :: m,n,i character(len=20) :: for='(??(1x,f6.3))' m = size(matrix,1) n = size(matrix,2) ! 用字串來設定輸出格式 write( FOR(2:3), '(I2)' ) N do i=1,N write( *, FMT=FOR ) matrix(i,:) end do return end subroutine output 出自彭國倫 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.230.80.229

10/12 19:27, , 1F
內容再改一下吧~~這邊我剛好是要出方陣
10/12 19:27, 1F
文章代碼(AID): #1Cj1FTpj (Fortran)
討論串 (同標題文章)
文章代碼(AID): #1Cj1FTpj (Fortran)