ctor_R8P Function

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

Arguments

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

String containing input number.

real(kind=R8P), 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=R8P)

Number returned.

Description

Convert string to real.

Called By

proc~~ctor_r8p~~CalledByGraph proc~ctor_r8p ctor_R8P interface~cton cton interface~cton->proc~ctor_r8p
Help

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_R8P(str, knd, pref, error) result(n)
  !---------------------------------------------------------------------------------------------------------------------------------
  !< Convert string to real.
  !---------------------------------------------------------------------------------------------------------------------------------
  character(*),           intent(in)  :: str   !< String containing input number.
  real(R8P),              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(R8P)                           :: 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_R8P