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) |
SUBROUTINE select_base(var, base) ! MODULES USE MODgvec_Globals, ONLY: abort 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) ! CODE ------------------------------------------------------------------------------------------------------------------------! SELECT CASE(var) CASE('X1') base => X1_base CASE('X2') base => X2_base CASE('LA') base => LA_base CASE DEFAULT CALL abort(__STAMP__, & 'ERROR: variable "'//TRIM(var)//'" not recognized') END SELECT END SUBROUTINE select_base