Fortran 修剪或调整在使用两次时不起作用

hba*_*ega 4 fortran trim fortran90

我正在尝试将trim/adjustl用于以下代码。似乎我得到了X_eq_ 10.0.dat或者X_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
Run Code Online (Sandbox Code Playgroud)

我曾经gfortran作为编译器使用过。

Ste*_*nel 5

你想要的是:

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

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