real_to_string Subroutine

public subroutine real_to_string(rval, real_fmt, compact_real, str)

Convert a real value to a string.

Modified

  • Izaak Beekman : 02/24/2015 : added the compact option.
  • Jacob Williams : 10/27/2015 : added the star option.

Arguments

Type IntentOptional AttributesName
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

rval converted to a string.


Called by

proc~~real_to_string~~CalledByGraph proc~real_to_string real_to_string proc~json_get_string json_get_string proc~json_get_string->proc~real_to_string proc~json_value_print json_value_print proc~json_value_print->proc~real_to_string

Contents

Source Code


Source Code

    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