Base_new Subroutine

public subroutine Base_new(sf, deg_in, continuity_in, grid_in, degGP_in, mn_max_in, mn_nyq_in, nfp_in, sin_cos_in, exclude_mn_zero_in)

allocate and initialize the type base

Arguments

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

self

integer, intent(in) :: deg_in

polynomial degree

integer, intent(in) :: continuity_in

continuity:

class(t_sGrid), intent(in), TARGET :: grid_in

grid information

integer, intent(in) :: degGP_in

gauss quadrature points: nGP=degGP+1

integer, intent(in) :: mn_max_in(2)

maximum mode in m and n

integer, intent(in) :: mn_nyq_in(2)

number of integration points

integer, intent(in) :: nfp_in

number of field periods

character(len=8), intent(in) :: sin_cos_in

can be either only sine: " sin" only cosine: " cos" or full: "sin_cos"

logical, intent(in) :: exclude_mn_zero_in

=true: exclude m=n=0 mode in the basis (only important if cos is in basis)


Calls

proc~~base_new~~CallsGraph proc~base_new Base_new proc~base_test Base_test proc~base_new->proc~base_test proc~fbase_new fBase_new proc~base_new->proc~fbase_new proc~sbase_new sBase_new proc~base_new->proc~sbase_new proc~base_evaldof t_base%base_evalDOF proc~base_test->proc~base_evaldof proc~sbase_initdof t_sBase%sBase_initDOF proc~base_test->proc~sbase_initdof swrite swrite proc~base_test->swrite __perfoff __perfoff proc~fbase_new->__perfoff __perfon __perfon proc~fbase_new->__perfon proc~fbase_init t_fBase%fBase_init proc~fbase_new->proc~fbase_init proc~sbase_init t_sBase%sBase_init proc~sbase_new->proc~sbase_init proc~base_evaldof->__perfoff proc~base_evaldof->__perfon proc~fbase_evaldof_ip_tens t_fBase%fBase_evalDOF_IP_tens proc~base_evaldof->proc~fbase_evaldof_ip_tens proc~fbase_init->swrite proc~fbase_alloc fBase_alloc proc~fbase_init->proc~fbase_alloc proc~fbase_test fBase_test proc~fbase_init->proc~fbase_test proc~sbase_init->swrite add_element add_element proc~sbase_init->add_element barycentricweights barycentricweights proc~sbase_init->barycentricweights dmatip dmatip proc~sbase_init->dmatip eval_basis eval_basis proc~sbase_init->eval_basis eval_basis_and_n_derivs eval_basis_and_n_derivs proc~sbase_init->eval_basis_and_n_derivs eval_deriv eval_deriv proc~sbase_init->eval_deriv factorize factorize proc~sbase_init->factorize get_interp_points get_interp_points proc~sbase_init->get_interp_points init init proc~sbase_init->init initializevandermonde initializevandermonde proc~sbase_init->initializevandermonde legendregaussnodesandweights legendregaussnodesandweights proc~sbase_init->legendregaussnodesandweights mthpolynomialderivativematrix mthpolynomialderivativematrix proc~sbase_init->mthpolynomialderivativematrix proc~getlu getLU proc~sbase_init->proc~getlu proc~inv INV proc~sbase_init->proc~inv proc~sbase_alloc sBase_alloc proc~sbase_init->proc~sbase_alloc proc~sbase_test sBase_test proc~sbase_init->proc~sbase_test proc~sll_s_bsplines_new sll_s_bsplines_new proc~sbase_init->proc~sll_s_bsplines_new proc~sll_s_spline_matrix_new sll_s_spline_matrix_new proc~sbase_init->proc~sll_s_spline_matrix_new proc~solvemat SOLVEMAT proc~sbase_init->proc~solvemat xiip xiip proc~sbase_init->xiip compute_interpolant compute_interpolant proc~sbase_initdof->compute_interpolant __dgemm_nn __dgemm_nn proc~fbase_evaldof_ip_tens->__dgemm_nn proc~fbase_evaldof_xn t_fBase%fBase_evalDOF_xn proc~fbase_evaldof_ip_tens->proc~fbase_evaldof_xn proc~fbase_test->proc~fbase_init proc~fbase_test->swrite proc~fbase_test->proc~fbase_evaldof_ip_tens proc~fbase_change_base t_fBase%fBase_change_base proc~fbase_test->proc~fbase_change_base proc~fbase_compare t_fBase%fBase_compare proc~fbase_test->proc~fbase_compare proc~fbase_evaldof_x t_fBase%fBase_evalDOF_x proc~fbase_test->proc~fbase_evaldof_x proc~fbase_test->proc~fbase_evaldof_xn proc~fbase_evaldof_xn_tens t_fBase%fBase_evalDOF_xn_tens proc~fbase_test->proc~fbase_evaldof_xn_tens proc~fbase_initdof t_fBase%fBase_initDOF proc~fbase_test->proc~fbase_initdof dgetrf dgetrf proc~getlu->dgetrf proc~inv->dgetrf dgetri dgetri proc~inv->dgetri proc~sbase_alloc->dmatip proc~sbase_alloc->xiip wbaryip wbaryip proc~sbase_alloc->wbaryip proc~sbase_test->proc~sbase_new proc~sbase_test->proc~sbase_initdof proc~sbase_test->swrite proc~sbase_applybctodof_lgm t_sBase%sBase_applyBCtoDOF_LGM proc~sbase_test->proc~sbase_applybctodof_lgm proc~sbase_change_base t_sBase%sBase_change_base proc~sbase_test->proc~sbase_change_base proc~sbase_compare t_sBase%sBase_compare proc~sbase_test->proc~sbase_compare proc~sbase_eval t_sBase%sBase_eval proc~sbase_test->proc~sbase_eval proc~sbase_evaldof_base t_sBase%sBase_evalDOF_base proc~sbase_test->proc~sbase_evaldof_base proc~sbase_evaldof_gp t_sBase%sBase_evalDOF_GP proc~sbase_test->proc~sbase_evaldof_gp proc~sbase_evaldof_s t_sBase%sBase_evalDOF_s proc~sbase_test->proc~sbase_evaldof_s proc~sll_s_bsplines_new->init sll_assert sll_assert proc~sll_s_bsplines_new->sll_assert proc~sll_s_spline_matrix_new->init sll_error sll_error proc~sll_s_spline_matrix_new->sll_error proc~solvemat->dgetrf dgetrs dgetrs proc~solvemat->dgetrs proc~fbase_change_base->proc~fbase_compare proc~fbase_eval t_fBase%fBase_eval proc~fbase_evaldof_x->proc~fbase_eval __matvec_n __matvec_n proc~fbase_evaldof_xn->__matvec_n proc~fbase_eval_xn t_fBase%fBase_eval_xn proc~fbase_evaldof_xn->proc~fbase_eval_xn proc~fbase_evaldof_xn_tens->__dgemm_nn proc~fbase_eval1d_thet fBase_eval1d_thet proc~fbase_evaldof_xn_tens->proc~fbase_eval1d_thet proc~fbase_eval1d_zeta fBase_eval1d_zeta proc~fbase_evaldof_xn_tens->proc~fbase_eval1d_zeta proc~fbase_projectiptodof_tens t_fBase%fBase_projectIPtoDOF_tens proc~fbase_initdof->proc~fbase_projectiptodof_tens proc~fbase_projectxntodof t_fBase%fBase_projectxntoDOF proc~fbase_initdof->proc~fbase_projectxntodof proc~solve SOLVE proc~sbase_applybctodof_lgm->proc~solve proc~sbase_change_base->proc~sbase_initdof proc~sbase_change_base->proc~sbase_compare eval eval proc~sbase_change_base->eval evalDOF_base evalDOF_base proc~sbase_change_base->evalDOF_base proc~sgrid_compare t_sGrid%sGrid_compare proc~sbase_compare->proc~sgrid_compare proc~sbase_eval->eval_basis proc~sbase_eval->eval_basis_and_n_derivs lagrangeinterpolationpolys lagrangeinterpolationpolys proc~sbase_eval->lagrangeinterpolationpolys proc~sgrid_find_elem t_sGrid%sGrid_find_elem proc~sbase_eval->proc~sgrid_find_elem proc~sbase_evaldof_s->proc~sbase_eval proc~sbase_evaldof_s->proc~sbase_evaldof_base proc~fbase_eval->proc~fbase_eval_xn __adgemm_tn __adgemm_tn proc~fbase_projectiptodof_tens->__adgemm_tn __dgemm_nt __dgemm_nt proc~fbase_projectiptodof_tens->__dgemm_nt proc~fbase_projectxntodof->proc~fbase_eval_xn __pamatvec_t __pamatvec_t proc~fbase_projectxntodof->__pamatvec_t proc~solve->dgetrf proc~solve->dgetrs

Called by

proc~~base_new~~CalledByGraph proc~base_new Base_new proc~init_base Init_Base proc~init_base->proc~base_new proc~initmhd3d t_functional_mhd3d%InitMHD3D proc~initmhd3d->proc~base_new proc~readstatefilefromascii ReadStateFileFromASCII proc~readstatefilefromascii->proc~base_new proc~transform_sfl_init t_transform_sfl%transform_SFL_init proc~transform_sfl_init->proc~base_new interface~readstate ReadState interface~readstate->proc~readstatefilefromascii proc~init_gvec_to_jorek init_gvec_to_jorek proc~init_gvec_to_jorek->proc~init_base proc~init_gvec_to_jorek->interface~readstate proc~transform_sfl_new transform_sfl_new proc~transform_sfl_new->proc~transform_sfl_init proc~restartfromstate RestartFromState proc~restartfromstate->interface~readstate

Source Code

SUBROUTINE Base_new( sf,deg_in,continuity_in,grid_in,degGP_in, &
                     mn_max_in,mn_nyq_in,nfp_in,sin_cos_in,exclude_mn_zero_in)
! MODULES
IMPLICIT NONE
!-----------------------------------------------------------------------------------------------------------------------------------
! INPUT VARIABLES
  INTEGER       , INTENT(IN   )        :: deg_in        !! polynomial degree
  INTEGER       , INTENT(IN   )        :: continuity_in !! continuity:
  CLASS(t_sgrid), INTENT(IN   ),TARGET :: grid_in       !! grid information
  INTEGER       , INTENT(IN   )        :: degGP_in      !! gauss quadrature points: nGP=degGP+1
  INTEGER        , INTENT(IN   ) :: mn_max_in(2)  !! maximum mode in m and n
  INTEGER        , INTENT(IN   ) :: mn_nyq_in(2)  !! number of integration points
  INTEGER        , INTENT(IN   ) :: nfp_in        !! number of field periods
  CHARACTER(LEN=8),INTENT(IN   ) :: sin_cos_in    !! can be either only sine: " _sin_" only cosine: " _cos_" or full: "_sin_cos_"
  LOGICAL         ,INTENT(IN   ) :: exclude_mn_zero_in !!  =true: exclude m=n=0 mode in the basis (only important if cos is in basis)
!-----------------------------------------------------------------------------------------------------------------------------------
! INPUT VARIABLES
!-----------------------------------------------------------------------------------------------------------------------------------
! OUTPUT VARIABLES
  CLASS(t_base), ALLOCATABLE,INTENT(INOUT)        :: sf !! self
!-----------------------------------------------------------------------------------------------------------------------------------
! LOCAL VARIABLES
!===================================================================================================================================
  ALLOCATE(t_base :: sf)
  CALL sbase_new(sf%s,deg_in,continuity_in,grid_in,degGP_in)
  CALL fbase_new(sf%f,mn_max_in,mn_nyq_in,nfp_in,sin_cos_in,exclude_mn_zero_in)
  sf%initialized=.TRUE.

  IF(.NOT.test_called) CALL Base_test(sf)

END SUBROUTINE base_new