hmap_new_auxvar Subroutine

public subroutine hmap_new_auxvar(hmap, zeta, xv, do_2nd_der)

Uses

  • proc~~hmap_new_auxvar~~UsesGraph proc~hmap_new_auxvar hmap_new_auxvar module~modgvec_globals MODgvec_Globals proc~hmap_new_auxvar->module~modgvec_globals iso_fortran_env iso_fortran_env module~modgvec_globals->iso_fortran_env

initialize the hmap auxiliary variables, depends on hmap type

Arguments

Type IntentOptional Attributes Name
type(PP_T_HMAP), intent(in) :: hmap
real(kind=wp), intent(in) :: zeta(:)
type(PP_T_HMAP_AUXVAR), intent(inout), ALLOCATABLE :: xv(:)

self

logical, intent(in) :: do_2nd_der

Calls

proc~~hmap_new_auxvar~~CallsGraph proc~hmap_new_auxvar hmap_new_auxvar pp_t_hmap_auxvar pp_t_hmap_auxvar proc~hmap_new_auxvar->pp_t_hmap_auxvar

Called by

proc~~hmap_new_auxvar~~CalledByGraph proc~hmap_new_auxvar hmap_new_auxvar proc~evaluate_hmap evaluate_hmap proc~evaluate_hmap->proc~hmap_new_auxvar proc~evaluate_hmap_only evaluate_hmap_only proc~evaluate_hmap_only->proc~hmap_new_auxvar proc~evaluate_jac_h_derivs evaluate_jac_h_derivs proc~evaluate_jac_h_derivs->proc~hmap_new_auxvar proc~evaluate_metric_derivs evaluate_metric_derivs proc~evaluate_metric_derivs->proc~hmap_new_auxvar proc~init_la_from_solution Init_LA_from_Solution proc~init_la_from_solution->proc~hmap_new_auxvar proc~initmhd3d t_functional_mhd3d%InitMHD3D proc~initmhd3d->proc~hmap_new_auxvar proc~sfl_boozer_new sfl_boozer_new proc~sfl_boozer_new->proc~hmap_new_auxvar proc~initsolutionmhd3d t_functional_mhd3d%InitSolutionMHD3D proc~initsolutionmhd3d->proc~init_la_from_solution

Source Code

SUBROUTINE hmap_new_auxvar(hmap,zeta,xv,do_2nd_der)
! MODULES
USE MODgvec_Globals   , ONLY: abort,wp
IMPLICIT NONE
!-----------------------------------------------------------------------------------------------------------------------------------
! INPUT VARIABLES
#ifdef PP_WHICH_HMAP
  TYPE(PP_T_HMAP),INTENT(IN) :: hmap
#else
  CLASS(c_hmap),  INTENT(IN) :: hmap
#endif
  REAL(wp)     ,  INTENT(IN) :: zeta(:)
  LOGICAL      ,  INTENT(IN) :: do_2nd_der
!-----------------------------------------------------------------------------------------------------------------------------------
! OUTPUT VARIABLES
#ifdef PP_WHICH_HMAP
  TYPE(PP_T_HMAP_AUXVAR),ALLOCATABLE,INTENT(INOUT) :: xv(:) !! self
#else
  CLASS(c_hmap_auxvar),ALLOCATABLE,INTENT(INOUT) :: xv(:) !! self
#endif
!-----------------------------------------------------------------------------------------------------------------------------------
! LOCAL VARIABLES
  INTEGER :: i,nzeta
!===================================================================================================================================
  nzeta=SIZE(zeta)
#ifdef PP_WHICH_HMAP
  IF(hmap%which_hmap .NE. PP_WHICH_HMAP) CALL abort(__STAMP__, &
           "FIXED HMAP TO PP_WHICH_HMAP AT COMPILE TIME,  which_hmap choice is therefore not compatible  !")
  ALLOCATE(PP_T_HMAP_AUXVAR :: xv(nzeta))
  !$OMP PARALLEL DO &
  !$OMP   SCHEDULE(STATIC) DEFAULT(SHARED) PRIVATE(i)
  DO i=1,nzeta
    xv(i)= PP_T_HMAP_AUXVAR(hmap,zeta(i),do_2nd_der)
  END DO !i
  !$OMP END PARALLEL DO

#else

  SELECT TYPE(hmap)
  CLASS IS(t_hmap_RZ)
    ALLOCATE(t_hmap_RZ_auxvar :: xv(nzeta))
    SELECT TYPE(xv)
    TYPE IS(t_hmap_RZ_auxvar)
      !$OMP PARALLEL DO &
      !$OMP   SCHEDULE(STATIC) DEFAULT(SHARED) PRIVATE(i)
      DO i=1,nzeta
        xv(i)= t_hmap_RZ_auxvar(hmap,zeta(i),do_2nd_der)
      END DO !i
      !$OMP END PARALLEL DO
    END SELECT !TYPE(xv)
  CLASS IS(t_hmap_cyl)
    ALLOCATE(t_hmap_cyl_auxvar :: xv(nzeta))
    SELECT TYPE(xv)
    TYPE IS(t_hmap_cyl_auxvar)
      !$OMP PARALLEL DO &
      !$OMP   SCHEDULE(STATIC) DEFAULT(SHARED) PRIVATE(i)
      DO i=1,nzeta
        xv(i)= t_hmap_cyl_auxvar(hmap,zeta(i),do_2nd_der)
      END DO !i
      !$OMP END PARALLEL DO
    END SELECT !TYPE(xv)
  CLASS IS(t_hmap_knot)
    ALLOCATE(t_hmap_knot_auxvar :: xv(nzeta))
    SELECT TYPE(xv)
    TYPE IS(t_hmap_knot_auxvar)
      !$OMP PARALLEL DO &
      !$OMP   SCHEDULE(STATIC) DEFAULT(SHARED) PRIVATE(i)
      DO i=1,nzeta
        xv(i)= t_hmap_knot_auxvar(hmap,zeta(i),do_2nd_der)
      END DO !i
      !$OMP END PARALLEL DO
    END SELECT !TYPE(xv)
  CLASS IS(t_hmap_frenet)
    ALLOCATE(t_hmap_frenet_auxvar :: xv(nzeta))
    SELECT TYPE(xv)
    TYPE IS(t_hmap_frenet_auxvar)
      !$OMP PARALLEL DO &
      !$OMP   SCHEDULE(STATIC) DEFAULT(SHARED) PRIVATE(i)
      DO i=1,nzeta
        xv(i)= t_hmap_frenet_auxvar(hmap,zeta(i),do_2nd_der)
      END DO !i
      !$OMP END PARALLEL DO
    END SELECT !TYPE(xv)
  CLASS IS(t_hmap_axisNB)
    ALLOCATE(t_hmap_axisNB_auxvar :: xv(nzeta))
    SELECT TYPE(xv)
    TYPE IS(t_hmap_axisNB_auxvar)
      !$OMP PARALLEL DO &
      !$OMP   SCHEDULE(STATIC) DEFAULT(SHARED) PRIVATE(i)
      DO i=1,nzeta
        xv(i)= t_hmap_axisNB_auxvar(hmap,zeta(i),do_2nd_der)
      END DO !i
      !$OMP END PARALLEL DO
    END SELECT !TYPE(xv)
  CLASS DEFAULT
    CALL abort(__STAMP__, &
          "hmap_new_auxvar: this hmap class is not implemented  !")
  END SELECT
#endif /*defined(PP_WHICH_HAP)*/

END SUBROUTINE hmap_new_auxvar