Handle the selection of the base, based on the selection string
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=2), | intent(in) | :: | var |
selection string: which variable to evaluate |
||
| class(t_base), | intent(out), | POINTER | :: | base |
pointer to the base object (X1, X2, LA) |
|
| real, | intent(out), | POINTER | :: | dofs(:,:) |
pointer to the solution dofs (U(0)%X1, U(0)%X2, U(0)%LA) |
SUBROUTINE select_base_dofs(var, base, dofs) ! MODULES USE MODgvec_MHD3D_vars, ONLY: X1_base,X2_base,LA_base USE MODgvec_base, ONLY: t_base ! INPUT/OUTPUT VARIABLES ------------------------------------------------------------------------------------------------------! CHARACTER(LEN=2), INTENT(IN) :: var !! selection string: which variable to evaluate CLASS(t_base), POINTER, INTENT(OUT) :: base !! pointer to the base object (X1, X2, LA) REAL, POINTER, INTENT(OUT) :: dofs(:,:) !! pointer to the solution dofs (U(0)%X1, U(0)%X2, U(0)%LA) ! CODE ------------------------------------------------------------------------------------------------------------------------! SELECT CASE(var) CASE('X1') base => X1_base dofs => functional%minimizer%vars%dofs(0)%X1 CASE('X2') base => X2_base dofs => functional%minimizer%vars%dofs(0)%X2 CASE('LA') base => LA_base dofs => functional%minimizer%vars%dofs(0)%LA CASE DEFAULT CALL abort(__STAMP__, & 'ERROR: variable "'//TRIM(var)//'" not recognized') END SELECT END SUBROUTINE select_base_dofs