首页 > 解决方案 > Fortran 修剪或调整在使用两次时不起作用

问题描述

我正在尝试将trim/adjustl用于以下代码。似乎我得到了X_eq_ 10.0.datX_eq_10.0 .dat作为我期望的输出文件的名称X_eq_10.0.dat(没有空格)。有什么补救措施吗?

           Program Test
           double precision:: X
           character (len=10) :: tag
           character (len=100) :: outfile

           X=10.0

           write(tag,'(f10.1)') X
           print*,'tag=',tag

           outfile='X_eq_'//trim(tag)//'.dat'
           print*,'Output file: ',outfile

           outfile='X_eq_'//trim(tag)//trim('.dat')
           print*,'Output file: ',outfile

           outfile='X_eq_'//adjustl(trim(tag))//adjustl(trim('.dat'))
           print*,'Output file: ',outfile

           End Program Test

我已经用作gfortran编译器了。

标签: fortrantrimfortran90

解决方案


你想要的是:

outfile='X_eq_'//trim(adjustl(tag))//'.dat'

adjustl将字符向左移动,留下尾随空格,因此您需要修剪该结果。这样做是没有好处的,trim(tag)因为这已经正确调整了。最后,'.dat'不需要任何处理。


推荐阅读