get_table_double Subroutine

private subroutine get_table_double(val, ErrCode, L, thandle, key, pos, default)

Retrieve a double precision real value from a table.

Arguments

Type IntentOptional Attributes Name
real(kind=double_k), intent(out) :: val

Value of the table entry if it exists.

integer, intent(out) :: ErrCode

Error code to indicate what kind of problem might have occured.

type(flu_State) :: L

Handle to the Lua script.

integer, intent(in), optional :: thandle

Handle to the table to look the value up in.

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

Name of the entry to look for.

Key and pos are both optional, however at least one of them has to be supplied. The key takes precedence over the pos if both are given.

integer, intent(in), optional :: pos

Position of the entry to look for in the table.

It allows the access to unnamed arrays in the Lua tables.

real(kind=double_k), intent(in), optional :: default

Some default value, that should be used, if the variable is not set in the Lua script.


Calls

proc~~get_table_double~~CallsGraph proc~get_table_double get_table_double proc~aot_table_push aot_table_push proc~get_table_double->proc~aot_table_push interface~aot_top_get_val~2 aot_top_get_val proc~get_table_double->interface~aot_top_get_val~2 proc~flu_getglobal flu_getglobal proc~get_table_double->proc~flu_getglobal proc~aot_table_push->proc~flu_getglobal proc~flu_getfield flu_getfield proc~aot_table_push->proc~flu_getfield proc~flu_type flu_type proc~aot_table_push->proc~flu_type interface~flu_pushinteger flu_pushinteger proc~aot_table_push->interface~flu_pushinteger proc~flu_gettable flu_gettable proc~aot_table_push->proc~flu_gettable proc~flu_pop flu_pop proc~aot_table_push->proc~flu_pop proc~flu_pushnil flu_pushnil proc~aot_table_push->proc~flu_pushnil proc~aot_top_get_extdouble aot_top_get_extdouble interface~aot_top_get_val~2->proc~aot_top_get_extdouble interface~lua_getglobal lua_getglobal proc~flu_getglobal->interface~lua_getglobal interface~lua_getfield lua_getfield proc~flu_getfield->interface~lua_getfield interface~lua_type lua_type proc~flu_type->interface~lua_type proc~aot_top_get_extdouble->proc~flu_pop proc~flu_todouble flu_todouble proc~aot_top_get_extdouble->proc~flu_todouble proc~flu_isnoneornil flu_isNoneOrNil proc~aot_top_get_extdouble->proc~flu_isnoneornil proc~flu_isnumber flu_isnumber proc~aot_top_get_extdouble->proc~flu_isnumber proc~flu_pushint flu_pushint interface~flu_pushinteger->proc~flu_pushint proc~flu_pushlong flu_pushlong interface~flu_pushinteger->proc~flu_pushlong interface~lua_gettable lua_gettable proc~flu_gettable->interface~lua_gettable interface~lua_settop lua_settop proc~flu_pop->interface~lua_settop interface~lua_pushnil lua_pushnil proc~flu_pushnil->interface~lua_pushnil interface~lua_tonumberx lua_tonumberx proc~flu_todouble->interface~lua_tonumberx proc~flu_isnoneornil->interface~lua_type interface~lua_pushinteger lua_pushinteger proc~flu_pushint->interface~lua_pushinteger interface~lua_isnumber lua_isNumber proc~flu_isnumber->interface~lua_isnumber proc~flu_pushlong->interface~lua_pushinteger

Called by

proc~~get_table_double~~CalledByGraph proc~get_table_double get_table_double interface~aot_table_get_val aot_table_get_val interface~aot_table_get_val->proc~get_table_double interface~aot_get_val aot_get_val interface~aot_get_val->proc~get_table_double

Contents

Source Code


Source Code

  subroutine get_table_double(val, ErrCode, L, thandle, key, pos, &
    &                         default)
    type(flu_State) :: L !! Handle to the Lua script.

    !> Handle to the table to look the value up in.
    integer, intent(in), optional :: thandle

    !> Value of the table entry if it exists.
    real(kind=double_k), intent(out) :: val

    !> Error code to indicate what kind of problem might have occured.
    integer, intent(out) :: ErrCode

    !> Name of the entry to look for.
    !!
    !! Key and pos are both optional, however at least one of them has to be
    !! supplied.
    !! The key takes precedence over the pos if both are given.
    character(len=*), intent(in), optional :: key

    !> Position of the entry to look for in the table.
    !!
    !! It allows the access to unnamed arrays in the Lua tables.
    integer, intent(in), optional :: pos

    !> Some default value, that should be used, if the variable is not set in
    !! the Lua script.
    real(kind=double_k), intent(in), optional :: default

    logical :: valid_args
    integer :: toptype

    valid_args = .true.
    if (present(thandle)) then
      call aot_table_push(L=L, thandle=thandle, &
        &                 key=key, pos=pos)
    else
      if (present(key)) then
        toptype = flu_getglobal(L, key)
      else if (present(pos)) then
        valid_args = .false.
      end if
    end if
    if (valid_args) then
      call aot_top_get_val(val, ErrCode, L, default)
    else
      ErrCode = ibSet(0, aoterr_NonExistent)
      ErrCode = ibSet(ErrCode, aoterr_Fatal)
    end if

  end subroutine get_table_double