sol_var_MHD3D_init Subroutine

private subroutine sol_var_MHD3D_init(sf, varsize)

initialize (=allocate) sf of type t_sol_var

Type Bound

t_sol_var_MHD3D

Arguments

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

sf

integer, intent(in) :: varsize(:)

Calls

proc~~sol_var_mhd3d_init~~CallsGraph proc~sol_var_mhd3d_init t_sol_var_MHD3D%sol_var_MHD3D_init none~set_to t_sol_var_MHD3D%set_to proc~sol_var_mhd3d_init->none~set_to proc~sol_var_mhd3d_test sol_var_MHD3D_test proc~sol_var_mhd3d_init->proc~sol_var_mhd3d_test proc~sol_var_mhd3d_set_to_scalar t_sol_var_MHD3D%sol_var_MHD3D_set_to_scalar none~set_to->proc~sol_var_mhd3d_set_to_scalar proc~sol_var_mhd3d_set_to_solvar t_sol_var_MHD3D%sol_var_MHD3D_set_to_solvar none~set_to->proc~sol_var_mhd3d_set_to_solvar proc~sol_var_mhd3d_test->none~set_to proc~sol_var_mhd3d_axby t_sol_var_MHD3D%sol_var_MHD3D_AXBY proc~sol_var_mhd3d_test->proc~sol_var_mhd3d_axby proc~sol_var_mhd3d_copy t_sol_var_MHD3D%sol_var_MHD3D_copy proc~sol_var_mhd3d_test->proc~sol_var_mhd3d_copy proc~sol_var_mhd3d_norm_2 t_sol_var_MHD3D%sol_var_MHD3D_norm_2 proc~sol_var_mhd3d_test->proc~sol_var_mhd3d_norm_2 swrite swrite proc~sol_var_mhd3d_test->swrite proc~sol_var_mhd3d_copy->proc~sol_var_mhd3d_init

Called by

proc~~sol_var_mhd3d_init~~CalledByGraph proc~sol_var_mhd3d_init t_sol_var_MHD3D%sol_var_MHD3D_init proc~sol_var_mhd3d_test sol_var_MHD3D_test proc~sol_var_mhd3d_init->proc~sol_var_mhd3d_test proc~sol_var_mhd3d_copy t_sol_var_MHD3D%sol_var_MHD3D_copy proc~sol_var_mhd3d_copy->proc~sol_var_mhd3d_init proc~initmhd3d t_functional_mhd3d%InitMHD3D proc~initmhd3d->proc~sol_var_mhd3d_copy proc~sol_var_mhd3d_test->proc~sol_var_mhd3d_copy

Source Code

SUBROUTINE sol_var_MHD3D_init( sf,varsize)
IMPLICIT NONE
!-----------------------------------------------------------------------------------------------------------------------------------
! INPUT VARIABLES
  CLASS(t_sol_var_MHD3D), INTENT(INOUT) :: sf  !!sf
  INTEGER         , INTENT(IN   ) :: varsize(:)
!-----------------------------------------------------------------------------------------------------------------------------------
! OUTPUT VARIABLES
!-----------------------------------------------------------------------------------------------------------------------------------
! LOCAL VARIABLES
!===================================================================================================================================
  IF(sf%initialized)THEN
    WRITE(*,*)'WARNING: REALLOCATION OF SOL_VAR_MHD3D!!'
    CALL sf%free()
  END IF
  IF((size(varsize(:)).NE.6)) THEN
    CALL abort(__STAMP__, &
        "sol_var_MHD3D init: varsize is a vector of 3 entries!")
  END IF
  sf%nvars=3
  ALLOCATE(sf%varSize(2,sf%nvars),sf%offset(0:sf%nvars))
  sf%varSize(1,:)=varSize(1:3)
  sf%varSize(2,:)=varSize(4:6)
  sf%offset(0)=0
  sf%offset(1)=sf%offset(0)+PRODUCT(sf%varsize(:,1))
  sf%offset(2)=sf%offset(1)+PRODUCT(sf%varsize(:,2))
  sf%offset(3)=sf%offset(2)+PRODUCT(sf%varsize(:,3))
  ALLOCATE(sf%q(1:sf%offset(sf%nvars)))

  sf%X1(1:sf%varSize(1,1),1:sf%varSize(2,1))=>sf%q(1+sf%offset(0) : sf%offset(1))
  sf%X2(1:sf%varSize(1,2),1:sf%varSize(2,2))=>sf%q(1+sf%offset(1) : sf%offset(2))
  sf%LA(1:sf%varSize(1,3),1:sf%varSize(2,3))=>sf%q(1+sf%offset(2) : sf%offset(3))
  sf%W_MHD3D=-1.0_wp
  sf%initialized=.TRUE.
  CALL sf%set_to(0.0_wp)

  IF(.NOT.test_called) CALL sol_var_MHD3D_test(sf)
END SUBROUTINE sol_var_MHD3D_init