Load variables, parent scheme and conditions defined in lua file. This routine serves as a wrapper and calls the single routine which loads the various arguments
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_depend_type), | intent(inout), | allocatable | :: | me(:) |
list of depend types to be filled |
|
type(flu_State), | intent(in) | :: | conf |
lua state to read from |
||
integer, | intent(in) | :: | parent |
parent table identifier |
||
character(len=*), | intent(in) | :: | label |
label to identify depend type |
||
logical, | intent(in), | optional | :: | requireCond |
if true? load condition table for each variable |
subroutine tem_load_depend_vector(me, conf, parent, label, requireCond) !--------------------------------------------------------------------------- !> list of depend types to be filled type(tem_depend_type), allocatable, intent(inout) :: me(:) !> lua state to read from type(flu_state), intent(in) :: conf !> parent table identifier integer, intent(in) :: parent !> label to identify depend type character(len=*), intent(in) :: label !> if true? load condition table for each variable logical, optional, intent(in) :: requireCond !--------------------------------------------------------------------------- integer :: iDep, nDeps integer :: dep_handle ! local depend table handle integer :: dep_sub_handle ! local depend table handle !--------------------------------------------------------------------------- call tem_horizontalSpacer(fUnit = logUnit(1)) write(logUnit(1),*) 'loading depend table of: '//trim(label) ! Open the depend table call aot_table_open( L = conf, & & parent = parent, & & thandle = dep_handle, & & key = 'depend' ) if (dep_handle .ne. 0) then ! Check if there are multiple members inside depend call aot_table_open( L = conf, & & parent = dep_handle, & & thandle = dep_sub_handle, & & pos = 1 ) ! If there is only one member, call the load routine once if (dep_sub_handle .eq. 0) then allocate(me(1)) call aot_table_close( L = conf, thandle = dep_sub_handle ) call tem_load_depend_single( me = me(1), & & conf = conf, & & parent = dep_handle, & & label = label, & & requireCond = requireCond ) else call aot_table_close( L = conf, thandle = dep_sub_handle ) nDeps = aot_table_length( L = conf, thandle = dep_handle ) allocate( me( nDeps )) ! Read the subtables individually do iDep = 1, nDeps call aot_table_open( L = conf, & & parent = dep_handle, & & thandle = dep_sub_handle, & & pos = iDep ) call tem_load_depend_single( me = me(iDep), & & conf = conf, & & parent = dep_sub_handle, & & label = label, & & requireCond = requireCond ) call aot_table_close( L = conf, thandle = dep_sub_handle ) end do end if else write(logUnit(1),*) 'depend table is not defined' end if call aot_table_close( L = conf, thandle = dep_handle ) call tem_horizontalSpacer(fUnit = logUnit(1)) end subroutine tem_load_depend_vector