Re: [問題] write 單行的限制
※ 引述《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
討論串 (同標題文章)
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章