bc_set_GetBCPointer Subroutine

private impure subroutine bc_set_GetBCPointer(this, region, var, val)

Fetches a pointer to the val array describing the Dirichlet or Neumann BC of a given variable on a given region.

Type Bound

bc_set

Arguments

Type IntentOptional Attributes Name
class(bc_set), intent(in) :: this

Boundary conditions utility

character(len=*), intent(in) :: region

Region name

character(len=*), intent(in) :: var

Variable name

real(kind=wp), intent(inout), pointer :: val(:,:,:)

Pointer


Calls

proc~~bc_set_getbcpointer~~CallsGraph proc~bc_set_getbcpointer bc_set%bc_set_GetBCPointer proc~bc_set_getregionindex bc_set%bc_set_GetRegionIndex proc~bc_set_getbcpointer->proc~bc_set_getregionindex proc~region_obj_getbcindex region_obj%region_obj_GetBCIndex proc~bc_set_getbcpointer->proc~region_obj_getbcindex none~get~3 hashtbl_obj%Get proc~bc_set_getregionindex->none~get~3 proc~hashtbl_obj_hashstring hashtbl_obj%hashtbl_obj_HashString proc~bc_set_getregionindex->proc~hashtbl_obj_hashstring proc~region_obj_getbcindex->none~get~3 proc~region_obj_getbcindex->proc~hashtbl_obj_hashstring proc~hashtbl_obj_get_int4 hashtbl_obj%hashtbl_obj_Get_int4 none~get~3->proc~hashtbl_obj_get_int4 proc~hashtbl_obj_get_int8 hashtbl_obj%hashtbl_obj_Get_int8 none~get~3->proc~hashtbl_obj_get_int8 proc~hashtbl_obj_get_real_dp hashtbl_obj%hashtbl_obj_Get_real_dp none~get~3->proc~hashtbl_obj_get_real_dp proc~hashtbl_obj_get_real_sp hashtbl_obj%hashtbl_obj_Get_real_sp none~get~3->proc~hashtbl_obj_get_real_sp none~get~2 sllist_obj%Get proc~hashtbl_obj_get_int4->none~get~2 proc~hashtbl_obj_get_int8->none~get~2 proc~hashtbl_obj_get_real_dp->none~get~2 proc~hashtbl_obj_get_real_sp->none~get~2 proc~sllist_obj_get_int4 sllist_obj%sllist_obj_Get_int4 none~get~2->proc~sllist_obj_get_int4 proc~sllist_obj_get_int8 sllist_obj%sllist_obj_Get_int8 none~get~2->proc~sllist_obj_get_int8 proc~sllist_obj_get_real_dp sllist_obj%sllist_obj_Get_real_dp none~get~2->proc~sllist_obj_get_real_dp proc~sllist_obj_get_real_sp sllist_obj%sllist_obj_Get_real_sp none~get~2->proc~sllist_obj_get_real_sp proc~sllist_obj_get_int4->proc~sllist_obj_get_int4 proc~sllist_obj_get_int8->proc~sllist_obj_get_int8 proc~sllist_obj_get_real_dp->proc~sllist_obj_get_real_dp proc~sllist_obj_get_real_sp->proc~sllist_obj_get_real_sp

Called by

proc~~bc_set_getbcpointer~~CalledByGraph proc~bc_set_getbcpointer bc_set%bc_set_GetBCPointer proc~bc_set_read bc_set%bc_set_Read proc~bc_set_read->proc~bc_set_getbcpointer proc~bc_set_updateboundarydirichlet bc_set%bc_set_UpdateBoundaryDirichlet proc~bc_set_updateboundarydirichlet->proc~bc_set_getbcpointer proc~cdifs_obj_preparesolverbcs cdifs_obj_PrepareSolverBCS proc~cdifs_obj_preparesolverbcs->proc~bc_set_getbcpointer none~updateboundary bc_set%UpdateBoundary proc~cdifs_obj_preparesolverbcs->none~updateboundary proc~grans_obj_preparesolverbcs grans_obj_PrepareSolverBCS proc~grans_obj_preparesolverbcs->proc~bc_set_getbcpointer proc~op_obj_applylaplaciandc op_obj%op_obj_ApplyLaplacianDC proc~op_obj_applylaplaciandc->proc~bc_set_getbcpointer proc~bc_set_updateboundaryscalar bc_set%bc_set_UpdateBoundaryScalar proc~bc_set_updateboundaryscalar->proc~bc_set_updateboundarydirichlet proc~bc_set_updateboundaryvector bc_set%bc_set_UpdateBoundaryVector proc~bc_set_updateboundaryvector->proc~bc_set_updateboundarydirichlet proc~cdifs_obj_computesolidvf cdifs_obj%cdifs_obj_ComputeSolidVF proc~cdifs_obj_computesolidvf->proc~op_obj_applylaplaciandc proc~cdifs_obj_computesolidvf->none~updateboundary proc~respart_set_updatenormals ResPart_set%ResPart_set_UpdateNormals proc~cdifs_obj_computesolidvf->proc~respart_set_updatenormals proc~cdifs_obj_preparesolver cdifs_obj_PrepareSolver proc~cdifs_obj_preparesolver->proc~cdifs_obj_preparesolverbcs proc~cdifs_obj_preparesolver->proc~cdifs_obj_computesolidvf proc~cdifs_obj_preparesolver->none~updateboundary proc~grans_obj_computesolidvf grans_obj%grans_obj_ComputeSolidVF proc~grans_obj_computesolidvf->proc~op_obj_applylaplaciandc proc~grans_obj_computesolidvf->none~updateboundary proc~grans_obj_computesolidvf->proc~respart_set_updatenormals proc~grans_obj_preparesolver grans_obj_PrepareSolver proc~grans_obj_preparesolver->proc~grans_obj_preparesolverbcs proc~grans_obj_preparesolver->proc~grans_obj_computesolidvf proc~grans_obj_preparesolver->none~updateboundary interface~grans_obj_writeoutputdata grans_obj%grans_obj_WriteOutputData proc~grans_obj_preparesolver->interface~grans_obj_writeoutputdata interface~cdifs_obj_preparesolver cdifs_obj%cdifs_obj_PrepareSolver interface~cdifs_obj_preparesolver->proc~cdifs_obj_preparesolver interface~grans_obj_preparesolver grans_obj%grans_obj_PrepareSolver interface~grans_obj_preparesolver->proc~grans_obj_preparesolver none~updateboundary->proc~bc_set_updateboundaryscalar none~updateboundary->proc~bc_set_updateboundaryvector proc~cdifs_obj_advancesolutionrp cdifs_obj_AdvanceSolutionRP proc~cdifs_obj_advancesolutionrp->proc~cdifs_obj_computesolidvf proc~grans_obj_writeoutputdata grans_obj_WriteOutputData proc~grans_obj_writeoutputdata->proc~grans_obj_computesolidvf proc~grans_obj_writeoutputdata->none~updateboundary interface~grans_obj_writeoutputdata->proc~grans_obj_writeoutputdata proc~cdifs_obj_advancesolution cdifs_obj_AdvanceSolution proc~cdifs_obj_advancesolution->proc~cdifs_obj_advancesolutionrp proc~cdifs_obj_advancesolutioncorrector cdifs_obj_AdvanceSolutionCorrector proc~cdifs_obj_advancesolution->proc~cdifs_obj_advancesolutioncorrector proc~cdifs_obj_advancesolutionib cdifs_obj_AdvanceSolutionIB proc~cdifs_obj_advancesolution->proc~cdifs_obj_advancesolutionib proc~cdifs_obj_advancesolutionpredictor cdifs_obj_AdvanceSolutionPredictor proc~cdifs_obj_advancesolution->proc~cdifs_obj_advancesolutionpredictor proc~cdifs_obj_advancesolutioncorrector->none~updateboundary proc~cdifs_obj_advancesolutionib->none~updateboundary proc~cdifs_obj_advancesolutionpredictor->none~updateboundary proc~marker_set_updatenormals marker_set%marker_set_UpdateNormals proc~marker_set_updatenormals->none~updateboundary interface~cdifs_obj_advancesolution cdifs_obj%cdifs_obj_AdvanceSolution interface~cdifs_obj_advancesolution->proc~cdifs_obj_advancesolution proc~respart_set_updatenormals->proc~marker_set_updatenormals

Source Code

    impure subroutine bc_set_GetBCPointer(this,region,var,val)
      !> Fetches a pointer to the val array describing the Dirichlet or
      ! Neumann BC of a given variable on a given region.
      class(bc_set),     intent(in)   :: this                                  !! Boundary conditions utility
      character(len=*),  intent(in)   :: region                                !! Region name
      character(len=*),  intent(in)   :: var                                   !! Variable name
      real(wp), pointer, intent(inout):: val(:,:,:)                            !! Pointer
      ! Work variable
      integer :: ind_reg
      integer :: ind_var

      if (associated(val)) val => null()

      ind_reg =  this%GetRegionIndex(region)
      ind_var =  this%region(ind_reg)%GetBCIndex(var)
      val     => this%region(ind_reg)%BC(ind_var)%val

      return
    end subroutine bc_set_GetBCPointer