Load sphere information from config file.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_sphere_type), | intent(out), | allocatable | :: | me(:) |
Array of spheres |
|
type(tem_transformation_type), | intent(in) | :: | transform |
transformation for spatial object |
||
type(flu_State) | :: | conf |
lua state |
|||
integer, | intent(in) | :: | thandle |
subroutine tem_load_sphere(me, transform, conf, thandle )
! -------------------------------------------------------------------------!
!inferface variables
!> Array of spheres
type(tem_sphere_type), allocatable, intent(out) :: me(:)
!> transformation for spatial object
type(tem_transformation_type), intent(in) :: transform
!> lua state
type(flu_state) :: conf
integer, intent(in) :: thandle !< handle for canonical objects
! -------------------------------------------------------------------------!
! local varaibles
integer :: sph_handle, sph_subHandle
integer :: iObj, nObjects
! -------------------------------------------------------------------------!
write(logunit(1),*) 'Loading sphere: '
call aot_table_open(L = conf, parent = thandle, thandle = sph_handle, &
& key = 'object')
call aot_table_open(L=conf, parent = sph_handle, thandle = sph_subHandle, &
& pos = 1 )
if ( sph_subHandle .eq. 0) then
!object is a single table
allocate(me(1))
call aot_table_close(L=conf, thandle=sph_subHandle)
call tem_load_sphere_single( me(1), transform, conf, sph_handle )
else
!object is a multiple table
call aot_table_close(L=conf, thandle=sph_subHandle)
nObjects = aot_table_length(L=conf, thandle=sph_handle)
allocate(me(nObjects))
do iObj=1,nObjects
call aot_table_open(L=conf, parent=sph_handle, thandle=sph_suBHandle,&
& pos=iObj)
call tem_load_sphere_single( me(iObj), transform, conf, sph_Subhandle )
call aot_table_close(L=conf, thandle=sph_subHandle)
end do
end if
call aot_table_close(L=conf, thandle=sph_Handle)
end subroutine tem_load_sphere