20 #include "sll_memory.h"
21 #include "sll_working_precision.h"
46 sll_int32 :: hermite_case
54 procedure, pass(gyroaverage) :: initialize => &
56 procedure, pass(gyroaverage) :: compute_gyroaverage => &
73 sll_real64,
intent(in) :: eta_min(2)
74 sll_real64,
intent(in) :: eta_max(2)
75 sll_int32,
intent(in) :: nc(2)
76 sll_int32,
intent(in) :: n_points
77 sll_int32,
intent(in) :: interp_degree(2)
78 sll_real64,
intent(in) :: larmor_rad
79 sll_int32,
optional :: hermite_case
82 sll_allocate(gyroaverage, ierr)
105 sll_real64,
intent(in) :: eta_min(2)
106 sll_real64,
intent(in) :: eta_max(2)
107 sll_int32,
intent(in) :: nc(2)
108 sll_int32,
intent(in) :: n_points
109 sll_int32,
intent(in) :: interp_degree(2)
110 sll_real64,
intent(in) :: larmor_rad
111 sll_int32 :: deriv_size
112 sll_int32,
optional :: hermite_case
114 if (.not. (
present(hermite_case)))
then
115 gyroaverage%hermite_case = 2
117 gyroaverage%hermite_case = hermite_case
121 select case (gyroaverage%hermite_case)
126 select case (gyroaverage%hermite_case)
136 print *,
'#bad value of hermite_case=', gyroaverage%hermite_case
137 print *,
'#not implemented'
138 print *,
'#in initialize_gyroaverage_2d_polar_hermite_solver'
142 select case (gyroaverage%hermite_case)
151 sll_real64,
intent(in) :: larmor_rad
152 sll_real64,
dimension(:, :),
intent(inout) :: f
154 select case (gyroaverage%hermite_case)
164 print *,
'#bad value of hermite_case=', gyroaverage%hermite_case
165 print *,
'#not implemented'
166 print *,
'compute_gyroaverage_2d_polar_hermite'
type(gyroaverage_2d_polar_hermite_solver) function, pointer, public sll_f_new_gyroaverage_2d_polar_hermite_solver(eta_min, eta_max, Nc, N_points, interp_degree, larmor_rad, hermite_case)
subroutine compute_gyroaverage_2d_polar_hermite(gyroaverage, larmor_rad, f)
subroutine initialize_gyroaverage_2d_polar_hermite_solver(gyroaverage, eta_min, eta_max, Nc, N_points, interp_degree, larmor_rad, hermite_case)
subroutine, public sll_s_compute_gyroaverage_points_polar_hermite(gyro, f, rho)
subroutine, public sll_s_compute_gyroaverage_points_polar_hermite_c1(gyro, f, rho)
type(sll_t_plan_gyroaverage_polar) function, pointer, public sll_f_new_plan_gyroaverage_polar_hermite(eta_min, eta_max, Nc, N_points, interp_degree, deriv_size)
subroutine, public sll_s_compute_gyroaverage_pre_compute_polar_hermite_c1(gyro, f)
subroutine, public sll_s_pre_compute_gyroaverage_polar_hermite_c1(gyro, rho)
subroutine, public sll_s_compute_gyroaverage_points_polar_with_invar_hermite_c1(gyro, f, rho)