作者charlesdc (MoOn)
看板Fortran
标题Re: [问题] write 单行的限制
时间Tue Oct 12 15:52:59 2010
※ 引述《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
1F:→ charlesdc:内容再改一下吧~~这边我刚好是要出方阵 10/12 19:27