Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=R8P), | intent(in) | :: | n | |||
logical, | intent(in), | optional | :: | no_sign | ||
logical, | intent(in), | optional | :: | compact |
elemental function str_R8P(n, no_sign, compact) result(str)
!< Convert real to string.
!<
!<```fortran
!< use penf
!< print "(A)", str(n=-1._R8P)
!<```
!=> -0.100000000000000E+001 <<<
!<
!<```fortran
!< use penf
!< print "(A)", str(n=-1._R8P, no_sign=.true.)
!<```
!=> 0.100000000000000E+001 <<<
!<
!<```fortran
!< use penf
!< print "(A)", str(n=-1._R8P, compact=.true.)
!<```
!=> -0.1E+1 <<<
real(R8P), intent(in) :: n !< Real to be converted.
logical, intent(in), optional :: no_sign !< Flag for leaving out the sign.
logical, intent(in), optional :: compact !< Flag for *compacting* string encoding.
character(DR8P) :: str !< Returned string containing input number.
write(str, FR8P) n ! Casting of n to string.
if (n>0._R8P) str(1:1)='+' ! Prefixing plus if n>0.
if (present(no_sign)) str=str(2:) ! Leaving out the sign.
if (present(compact)) then
if (compact) call compact_real_string(string=str)
endif
endfunction str_R8P