Convert a real value to a string.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=RK), | intent(in) | :: | rval | real value. |
||
character(kind=CDK,len=*), | intent(in) | :: | real_fmt | format for real numbers |
||
logical(kind=LK), | intent(in) | :: | compact_real | compact the string so that it is displayed with fewer characters |
||
character(kind=CK,len=*), | intent(out) | :: | str |
|
subroutine real_to_string(rval,real_fmt,compact_real,str)
implicit none
real(RK),intent(in) :: rval !! real value.
character(kind=CDK,len=*),intent(in) :: real_fmt !! format for real numbers
logical(LK),intent(in) :: compact_real !! compact the string so that it is
!! displayed with fewer characters
character(kind=CK,len=*),intent(out) :: str !! `rval` converted to a string.
integer(IK) :: istat
if (real_fmt==star) then
write(str,fmt=*,iostat=istat) rval
else
write(str,fmt=real_fmt,iostat=istat) rval
end if
if (istat==0) then
!in this case, the default string will be compacted,
! so that the same value is displayed with fewer characters.
if (compact_real) call compact_real_string(str)
else
str = repeat(star,len(str))
end if
end subroutine real_to_string