tem_load_cylinder Subroutine

public subroutine tem_load_cylinder(me, transform, conf, thandle)

\brief Loading cylinder information from config file \n

Arguments

Type IntentOptional Attributes Name
type(tem_cylinder_type), intent(out), allocatable :: me(:)

array of cylinders

type(tem_transformation_type), intent(in) :: transform

transformation for spatial object

type(flu_State) :: conf

lua state

integer, intent(in) :: thandle

Calls

proc~~tem_load_cylinder~~CallsGraph proc~tem_load_cylinder tem_load_cylinder aot_table_close aot_table_close proc~tem_load_cylinder->aot_table_close aot_table_length aot_table_length proc~tem_load_cylinder->aot_table_length aot_table_open aot_table_open proc~tem_load_cylinder->aot_table_open proc~tem_load_cylinder_single tem_load_cylinder_single proc~tem_load_cylinder->proc~tem_load_cylinder_single aot_get_val aot_get_val proc~tem_load_cylinder_single->aot_get_val proc~tem_abort tem_abort proc~tem_load_cylinder_single->proc~tem_abort mpi_abort mpi_abort proc~tem_abort->mpi_abort

Source Code

  subroutine tem_load_cylinder(me, transform, conf, thandle)
    ! --------------------------------------------------------------------------!
    !inferface variables
    !> array of cylinders
    type(tem_cylinder_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 :: cyl_handle, cyl_subHandle
    integer :: iObj, nObjects
    ! --------------------------------------------------------------------------!

    write(logunit(1),*) 'Loading cylinder:'

    call aot_table_open(L = conf, parent = thandle, thandle = cyl_handle, &
      &                 key = 'object')
    call aot_table_open(L=conf, parent = cyl_handle, thandle = cyl_subHandle, &
      & pos = 1 )

    if ( cyl_subHandle .eq. 0) then
      !object is a single table
      allocate(me(1))
      call aot_table_close(L=conf, thandle=cyl_subHandle)
      call tem_load_cylinder_single( me(1), transform, conf, cyl_handle )
    else
      !object is a multiple table
      call aot_table_close(L=conf, thandle=cyl_subHandle)
      nObjects = aot_table_length(L=conf, thandle=cyl_handle)
      allocate(me(nObjects))
      do iObj=1,nObjects
        call aot_table_open(L=conf, parent=cyl_handle, thandle=cyl_suBHandle,&
          & pos=iObj)
        call tem_load_cylinder_single(me(iObj), transform, conf, cyl_Subhandle)
        call aot_table_close(L=conf, thandle=cyl_subHandle)
      end do
    end if

    call aot_table_close(L=conf, thandle=cyl_Handle)

  end subroutine tem_load_cylinder