bug report : gfortran E edit descriptor
Dominique d'Humières
dominiq@lps.ens.fr
Thu Mar 10 10:09:00 GMT 2016
> I have an trouble in E edit descriptor of gfortran.
> This is a example.
> (source file: test.f95)
> program test
> implicit none
> real a,b
> a=135.0
> b=1737.5
> write(*,*)a,b
> write(*,'(e9.3,a,f7.1)')a,' ',b
> write(*,'(1pe9.3,a,f7.1)')a,' ',b
> end
> (compile)
> gfortran test.f95
> (execute)
> a.exe
> (result)
> 135.000000 1737.50000
> 0.135E+03 1737.5
> 1.350E+02 17375.0 ( <--- wrong value )
>
> I suppose there are some bugs in the E edit descriptor.
IIRC
(1) the P ‘modifier’ applies to all the subsequent numeric descriptors,
(2) when rP is applied to an F descriptor, the value is ‘multiplied’ by 10**r.
write(*,'(e9.3,a,1pf7.1)')a,' ‘,b
gives
0.135E+03 17375.0
and
write(*,'(1pe9.3,a,e9.3)')a,' ‘,b
gives
1.350E+02 1.738E+03
So I think gfortran is right.
> I like Fortran and I wish gfortran of GCC to be better compiler.
> best regards.
If you want to contribute, discussion about gfortran should go to fortran@gcc.gnu.org and bug should be filed in bugzilla.
Cheers,
Dominique
More information about the Gcc
mailing list