Handle the selection of the functional and derivatives, based on the selection strings
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=2), | intent(in) | :: | var |
selection string: which variable to evaluate |
||
| character(len=2), | intent(in) | :: | sel_deriv_s |
selection string: which derivative to evaluate for the spline |
||
| character(len=2), | intent(in) | :: | sel_deriv_f |
selection string: which derivative to evaluate for the fourier series |
||
| class(t_base), | intent(out), | POINTER | :: | base |
pointer to the base object (X1, X2, LA) |
|
| real, | intent(out), | POINTER | :: | solution_dofs(:,:) |
pointer to the solution dofs (U(0)%X1, U(0)%X2, U(0)%LA) |
|
| integer, | intent(out) | :: | seli_deriv_s |
integer values for the derivative selection |
||
| integer, | intent(out) | :: | seli_deriv_f |
integer values for the derivative selection |
SUBROUTINE evaluate_base_select(var, sel_deriv_s, sel_deriv_f, base, solution_dofs, seli_deriv_s, seli_deriv_f) ! MODULES USE MODgvec_base, ONLY: t_base ! INPUT/OUTPUT VARIABLES ------------------------------------------------------------------------------------------------------! CHARACTER(LEN=2), INTENT(IN) :: var !! selection string: which variable to evaluate CHARACTER(LEN=2), INTENT(IN) :: sel_deriv_s !! selection string: which derivative to evaluate for the spline CHARACTER(LEN=2), INTENT(IN) :: sel_deriv_f !! selection string: which derivative to evaluate for the fourier series CLASS(t_base), POINTER, INTENT(OUT) :: base !! pointer to the base object (X1, X2, LA) REAL, POINTER, INTENT(OUT) :: solution_dofs(:,:) !! pointer to the solution dofs (U(0)%X1, U(0)%X2, U(0)%LA) INTEGER, INTENT(OUT) :: seli_deriv_s, seli_deriv_f !! integer values for the derivative selection ! CODE ------------------------------------------------------------------------------------------------------------------------! CALL select_base_dofs(var, base, solution_dofs) SELECT CASE(TRIM(sel_deriv_s)) CASE('s') seli_deriv_s = DERIV_S CASE('ss') seli_deriv_s = DERIV_S_S CASE DEFAULT seli_deriv_s = 0 END SELECT SELECT CASE(TRIM(sel_deriv_f)) CASE('t') seli_deriv_f = DERIV_THET CASE('tt') seli_deriv_f = DERIV_THET_THET CASE('z') seli_deriv_f = DERIV_ZETA CASE('zz') seli_deriv_f = DERIV_ZETA_ZETA CASE("tz") seli_deriv_f = DERIV_THET_ZETA CASE DEFAULT seli_deriv_f = 0 END SELECT END SUBROUTINE evaluate_base_select