本帖最后由 necrohan 于 2021-7-29 09:13 编辑
空格是第2列的输出格式问题,把F6.2改为F5.2可以去掉空格。
第1列原格式相当于去掉了数字末尾的0和小数点,可以用字符串处理。
[Fortran] 纯文本查看 复制代码 real::x; ! 要输出的数据
character*(20)::cx; ! 输出数据转字符串
integer::lx,i,i1,i2
do i=1,100
x=812.8-(i-1)*0.05; ! 要输出的数据
write(cx,'(f6.2)')x; ! 数值变字符串
lx=LEN_TRIM(cx); ! 取字符串长度
! 去掉字符串末尾的0和小数点
do while(.true.)
i1=index(cx(1:lx),'0',back=.true.);
i2=index(cx(1:lx),'.',back=.true.);
if(i1==lx .or. i2==lx)then
lx=lx-1
else
exit
endif
enddo
write(*,*)"_"//cx(1:lx)//"_";
end do
end |