init_tem_bc_prop Subroutine

public subroutine init_tem_bc_prop(tree, mypart, comm, bc)

Initialize boundary conditions of a given tree.

Arguments

Type IntentOptional Attributes Name
type(treelmesh_type), intent(in) :: tree
integer, intent(in) :: mypart
integer, intent(in) :: comm

Communicator to use

type(tem_BC_prop_type), intent(out) :: bc

Calls

proc~~init_tem_bc_prop~~CallsGraph proc~init_tem_bc_prop init_tem_bc_prop proc~load_bc_intern_0d load_BC_intern_0D proc~init_tem_bc_prop->proc~load_bc_intern_0d proc~load_bc_intern_1d load_BC_intern_1D proc~init_tem_bc_prop->proc~load_bc_intern_1d proc~load_bc_intern_2d load_BC_intern_2D proc~init_tem_bc_prop->proc~load_bc_intern_2d proc~load_tem_bc_prop load_tem_BC_prop proc~init_tem_bc_prop->proc~load_tem_bc_prop proc~tem_bc_prop_pos tem_bc_prop_pos proc~init_tem_bc_prop->proc~tem_bc_prop_pos proc~tem_empty_bc_prop tem_empty_BC_prop proc~init_tem_bc_prop->proc~tem_empty_bc_prop proc~tem_coordofid tem_CoordOfId proc~load_bc_intern_1d->proc~tem_coordofid proc~tem_firstidatlevel tem_FirstIdAtLevel proc~load_bc_intern_1d->proc~tem_firstidatlevel proc~tem_idofcoord tem_IdOfCoord proc~load_bc_intern_1d->proc~tem_idofcoord proc~load_bc_intern_2d->proc~tem_coordofid proc~load_bc_intern_2d->proc~tem_idofcoord aot_get_val aot_get_val proc~load_tem_bc_prop->aot_get_val aot_table_close aot_table_close proc~load_tem_bc_prop->aot_table_close aot_table_open aot_table_open proc~load_tem_bc_prop->aot_table_open close_config close_config proc~load_tem_bc_prop->close_config mpi_bcast mpi_bcast proc~load_tem_bc_prop->mpi_bcast mpi_comm_rank mpi_comm_rank proc~load_tem_bc_prop->mpi_comm_rank mpi_comm_split mpi_comm_split proc~load_tem_bc_prop->mpi_comm_split mpi_file_close mpi_file_close proc~load_tem_bc_prop->mpi_file_close mpi_file_open mpi_file_open proc~load_tem_bc_prop->mpi_file_open mpi_file_read_all mpi_file_read_all proc~load_tem_bc_prop->mpi_file_read_all mpi_file_set_view mpi_file_set_view proc~load_tem_bc_prop->mpi_file_set_view mpi_type_commit mpi_type_commit proc~load_tem_bc_prop->mpi_type_commit mpi_type_contiguous mpi_type_contiguous proc~load_tem_bc_prop->mpi_type_contiguous mpi_type_free mpi_type_free proc~load_tem_bc_prop->mpi_type_free mpi_type_size mpi_type_size proc~load_tem_bc_prop->mpi_type_size open_config_file open_config_file proc~load_tem_bc_prop->open_config_file proc~check_mpi_error check_mpi_error proc~load_tem_bc_prop->proc~check_mpi_error proc~tem_create_endiansuffix tem_create_EndianSuffix proc~load_tem_bc_prop->proc~tem_create_endiansuffix proc~tem_open tem_open proc~load_tem_bc_prop->proc~tem_open

Source Code

  subroutine init_tem_bc_prop( tree, mypart, comm, bc )
    ! ---------------------------------------------------------------------------
    type(treelmesh_type), intent(in)    :: tree
    integer, intent(in)                 :: mypart
    !> Communicator to use
    integer, intent(in) :: comm
    type(tem_bc_prop_type), intent(out) :: bc
    ! ---------------------------------------------------------------------------
    integer :: iprop
    logical :: found_bc
    ! ---------------------------------------------------------------------------

    iProp = tem_bc_prop_pos(tree)
    found_bc = iProp > 0

    if (found_bc) then
      bc%header => tree%global%Property(iprop)
      bc%property => tree%property(iprop)

      select case(trim(bc%header%label))
      case('internal 0D BC')
        call load_bc_intern_0D(tree = tree, me = bc)
      case('internal 1D BC')
        call load_bc_intern_1D(tree = tree, me = bc, xbounds=.false.)
      case('bounded internal 1D BC')
        call load_bc_intern_1D(tree = tree, me = bc, xbounds=.true.)
      case('internal 2D BC')
        call load_bc_intern_2D(tree = tree, me = bc)
      case default
        call load_tem_bc_prop(me       = bc,                               &
          &                   offset   = bc%property%Offset,               &
          &                   nElems   = bc%property%nElems,               &
          &                   basename = trim(tree%global%dirname)//'bnd', &
          &                   comm     = comm,                             &
          &                   mypart   = mypart                            )
      end select
    else
      call tem_empty_BC_prop(bc)
    end if

  end subroutine init_tem_bc_prop