Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(json_value), | , | pointer | :: | me | ||
real(kind=RK), | intent(out) | :: | value |
Get a double value from a json_value.
Solid arrows point from a parent (sub)module to the submodule which is descended from it. Dashed arrows point from a module being used to the module using it.
Solid arrows point from one derived type to another which extends (inherits from) it. Dashed arrows point from a derived type to another type containing it as a components, with a label listing the name(s) of said component(s).
Solid arrows point from a procedure to one which it calls. Dashed arrows point from an interface to procedures which implement that interface. This could include the module procedures in a generic interface or the implementation in a submodule of an interface in a parent module.
Solid arrows point from a parent (sub)module to the submodule which is descended from it. Dashed arrows point from a module being used to the module using it.
Solid arrows point from one derived type to another which extends (inherits from) it. Dashed arrows point from a derived type to another type containing it as a components, with a label listing the name(s) of said component(s).
Solid arrows point from a procedure to one which it calls. Dashed arrows point from an interface to procedures which implement that interface. This could include the module procedures in a generic interface or the implementation in a submodule of an interface in a parent module.
subroutine json_get_double(me, value)
implicit none
type(json_value),pointer :: me
real(RK),intent(out) :: value
value = 0.0_RK
if ( exception_thrown ) return
select case (me%var_type)
case (json_integer)
value = me%int_value
case (json_double)
value = me%dbl_value
case (json_logical)
if (me%log_value) then
value = 1.0_RK
else
value = 0.0_RK
end if
case default
call throw_exception('Error in json_get_double:'//&
' Unable to resolve value to double: '//me%name)
end select
end subroutine json_get_double