ctor_R16P Function

private function ctor_R16P(str, knd, pref, error) result(n)

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: str

String containing input number.

real(kind=R16P), intent(in) :: knd

Number kind.

character(len=*), intent(in), optional :: pref

Prefixing string.

integer(kind=I4P), intent(out), optional :: error

Error trapping flag: 0 no errors, >0 error occurs.

Return Value real(kind=R16P)

Number returned.

Description

Convert string to real.


Variables

TypeVisibility AttributesNameInitial
integer(kind=I4P), public :: err

Error trapping flag: 0 no errors, >0 error occurs.

character(len=:), public, allocatable:: prefd

Prefixing string.


Source Code

  function ctor_R16P(str, knd, pref, error) result(n)
  !---------------------------------------------------------------------------------------------------------------------------------
  !< Convert string to real.
  !---------------------------------------------------------------------------------------------------------------------------------
  character(*),           intent(in)  :: str   !< String containing input number.
  real(R16P),             intent(in)  :: knd   !< Number kind.
  character(*), optional, intent(in)  :: pref  !< Prefixing string.
  integer(I4P), optional, intent(out) :: error !< Error trapping flag: 0 no errors, >0 error occurs.
  real(R16P)                          :: n     !< Number returned.
  integer(I4P)                        :: err   !< Error trapping flag: 0 no errors, >0 error occurs.
  character(len=:), allocatable       :: prefd !< Prefixing string.
  !---------------------------------------------------------------------------------------------------------------------------------

  !---------------------------------------------------------------------------------------------------------------------------------
  read(str, *, iostat=err) n ! Casting of str to n.
  if (err/=0) then
    prefd = '' ; if (present(pref)) prefd = pref
    write(stderr, '(A,I1,A)') prefd//' Error: conversion of string "'//str//'" to real failed! real(', kind(knd), ')'
  endif
  if (present(error)) error = err
  return
  !---------------------------------------------------------------------------------------------------------------------------------
  endfunction ctor_R16P