Interpret topmost entry on Lua stack as a extdouble precision real.
NOTE that numbers provided by Lua are only double precision.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=xdble_k), | intent(out) | :: | val |
Value of the Variable in the script |
||
integer, | intent(out) | :: | ErrCode |
Error code to indicate what kind of problem might have occured. |
||
type(flu_State) | :: | L | ||||
real(kind=xdble_k), | intent(in), | optional | :: | default |
Some default value, that should be used, if the variable is not set in the Lua script. |
subroutine aot_top_get_extdouble(val, ErrCode, L, default) type(flu_State) :: L !< Handle to the Lua script !> Value of the Variable in the script real(kind=xdble_k), intent(out) :: val !> Error code to indicate what kind of problem might have occured. integer, intent(out) :: ErrCode !> Some default value, that should be used, if the variable is not set in !! the Lua script. real(kind=xdble_k), optional, intent(in) :: default logical :: not_retrievable ErrCode = 0 not_retrievable = .false. if (flu_isNoneOrNil(L, -1)) then ErrCode = ibSet(ErrCode, aoterr_NonExistent) not_retrievable = .true. else if (flu_isNumber(L, -1)) then val = real(flu_toDouble(L, -1), kind=xdble_k) else ErrCode = ibSet(ErrCode, aoterr_WrongType) ErrCode = ibSet(ErrCode, aoterr_Fatal) not_retrievable = .true. end if end if if (not_retrievable) then if (present(default)) then val = default else ErrCode = ibSet(ErrCode, aoterr_Fatal) end if end if call flu_pop(L) end subroutine aot_top_get_extdouble