在Fortran中将字符串中的前导空格替换为零

时间:2014-10-10 13:05:23

标签: fortran fortran90

我想以这种格式yyyymm打印一系列时间段,例如。 19700106001980010600因此我将输入作为字符串并将子字符串转换为整数,将其递增并再次将其转换为字符串。

我将这些字符串变量连接为fln=yyyy//mm,但我的输出有前导空格。我使用了空白描述符,但它不起作用:

我的输出为1971 1,但我需要197101。如果是两个月的月份就没有问题。

我怎样才能有一个领先的零而不是本月的领先空白?

代码的一部分是:

integer:: m,j,n,k
character(len=12)::fln,st,et
character(len=4)::yy,tt
character(len=2)::mm,dd

 do j=0,k
 ma(j)=m+j
 write(mm,'(BZ,I2)')ma(j)
 fln=yy//mm
 write(19,121)fln
 121 format(A12)

1 个答案:

答案 0 :(得分:1)

尝试替换

write(mm,'(BZ,I2)')ma(j)

write(mm,'(I2.2)')ma(j)

然后查阅您的Fortran参考资料,了解I格式Iw.m的{​​{1}}编辑描述符的用法。 BZ编辑控件描述符仅对输入有用。