sBase_alloc Subroutine

private subroutine sBase_alloc(sf)

allocate all variables in sbase

Arguments

Type IntentOptional Attributes Name
class(t_sBase), intent(inout) :: sf

self


Calls

proc~~sbase_alloc~~CallsGraph proc~sbase_alloc sBase_alloc dmatip dmatip proc~sbase_alloc->dmatip wbaryip wbaryip proc~sbase_alloc->wbaryip xiip xiip proc~sbase_alloc->xiip

Called by

proc~~sbase_alloc~~CalledByGraph proc~sbase_alloc sBase_alloc proc~sbase_init t_sBase%sBase_init proc~sbase_init->proc~sbase_alloc proc~sbase_test sBase_test proc~sbase_init->proc~sbase_test proc~sbase_copy t_sBase%sBase_copy proc~sbase_copy->proc~sbase_init proc~sbase_new sBase_new proc~sbase_new->proc~sbase_init proc~base_copy t_base%base_copy proc~base_copy->proc~sbase_copy proc~base_new Base_new proc~base_new->proc~sbase_new proc~readstatefilefromascii ReadStateFileFromASCII proc~readstatefilefromascii->proc~sbase_new proc~readstatefilefromascii->proc~base_new proc~sbase_test->proc~sbase_new interface~readstate ReadState interface~readstate->proc~readstatefilefromascii proc~init_base Init_Base proc~init_base->proc~base_new proc~initmhd3d t_functional_mhd3d%InitMHD3D proc~initmhd3d->proc~base_new proc~transform_sfl_init t_transform_sfl%transform_SFL_init proc~transform_sfl_init->proc~base_new proc~init_gvec_to_jorek init_gvec_to_jorek proc~init_gvec_to_jorek->interface~readstate proc~init_gvec_to_jorek->proc~init_base proc~restartfromstate RestartFromState proc~restartfromstate->interface~readstate proc~transform_sfl_new transform_sfl_new proc~transform_sfl_new->proc~transform_sfl_init

Source Code

SUBROUTINE sBase_alloc( sf)
! MODULES
IMPLICIT NONE
!-----------------------------------------------------------------------------------------------------------------------------------
! INPUT VARIABLES
!-----------------------------------------------------------------------------------------------------------------------------------
! OUTPUT VARIABLES
  CLASS(t_sBase), INTENT(INOUT) :: sf !! self
!-----------------------------------------------------------------------------------------------------------------------------------
! LOCAL VARIABLES
  INTEGER :: i
!===================================================================================================================================
  ASSOCIATE(nElems=>sf%grid%nElems, degGP=>sf%degGP, deg=>sf%deg, nBase =>sf%nBase)
  ALLOCATE(sf%xi_GP(     0:degGP))
  ALLOCATE(sf%w_GPloc(   0:degGP))
  ALLOCATE(sf%w_GP((degGP+1)*nElems))
  ALLOCATE(sf%s_GP((degGP+1)*nElems))
  ALLOCATE(sf%base_GP(   0:degGP,0:deg,1:nElems))
  ALLOCATE(sf%base_ds_GP(0:degGP,0:deg,1:nElems))
  ALLOCATE(sf%base_offset(            1:nElems))
  ALLOCATE(sf%base_dsAxis(0:deg,1:deg+1        ))
  ALLOCATE(sf%base_dsEdge(0:deg,nBase-deg:nBase))
  ALLOCATE(sf%nDOF_BC(                  -(deg+1):NBC_TYPES))
  ALLOCATE(sf%A_Axis(   1:deg+1,1:deg+1,-(deg+1):NBC_TYPES))
  ALLOCATE(sf%invA_Axis(1:deg+1,1:deg+1,-(deg+1):NBC_TYPES))
  ALLOCATE(sf%R_Axis(   1:deg+1,1:deg+1,-(deg+1):NBC_TYPES))
  ALLOCATE(sf%AR_Axis(  1:deg+1,1:deg+1,-(deg+1):NBC_TYPES))
  ALLOCATE(sf%A_Edge(   nBase-deg:nBase,nBase-deg:nBase,1:NBC_TYPES))
  ALLOCATE(sf%invA_Edge(nBase-deg:nBase,nBase-deg:nBase,1:NBC_TYPES))
  ALLOCATE(sf%R_Edge(   nBase-deg:nBase,nBase-deg:nBase,1:NBC_TYPES))
  ALLOCATE(sf%AR_Edge(  nBase-deg:nBase,nBase-deg:nBase,1:NBC_TYPES))
  sf%xi_GP        =0.0_wp
  sf%w_GPloc      =0.0_wp
  sf%w_GP         =0.0_wp
  sf%s_GP        =0.0_wp
  sf%base_offset =-1
  sf%base_GP      =0.0_wp
  sf%base_ds_GP   =0.0_wp
  sf%base_dsAxis =0.0_wp
  sf%base_dsEdge =0.0_wp
  sf%nDOF_BC     =0
  sf%A_Axis      =0.0_wp
  sf%invA_Axis   =0.0_wp
  sf%A_Edge      =0.0_wp
  sf%invA_Edge   =0.0_wp
  sf%R_Axis      =0.0_wp
  sf%R_Edge      =0.0_wp
  DO i=0,deg
    sf%A_Axis(   1+i,1+i,:)=1.0_wp
    sf%invA_Axis(1+i,1+i,:)=1.0_wp
    sf%R_Axis(   1+i,1+i,:)=1.0_wp
    sf%A_Edge(   nBase-deg+i,nBase-deg+i,:)=1.0_wp
    sf%invA_Edge(nBase-deg+i,nBase-deg+i,:)=1.0_wp
    sf%R_Edge(   nBase-deg+i,nBase-deg+i,:)=1.0_wp
  END DO
  SELECT TYPE(sf)
  TYPE IS(t_sbase_disc)
    ALLOCATE(sf%xiIP(   0:deg))
    ALLOCATE(sf%wbaryIP(0:deg))
    ALLOCATE(sf%DmatIP( 0:deg,0:deg))
    sf%xiIP   =0.0_wp
    sf%wbaryIP=0.0_wp
    sf%DmatIP =0.0_wp
  END SELECT !TYPE is t_sbase_disc
  END ASSOCIATE !nElems, degGP, deg
END SUBROUTINE sbase_alloc