ORB5  v4.9.4
part Module Reference

Data Types

type  moments_3d_class
 
interface  omp_reduce_diag
 
type  pointer_markers
 
type  pointer_markers_i8
 
type  pointer_markers_logic
 
type  pointer_markers_r4
 
type  pointer_quadtree
 

Enumerations

enum  { p_parallel , v_parallel , mixed }
 

Functions/Subroutines

subroutine, public init_particles
 
subroutine construct_moments_3d (this, id, label, description)
 
subroutine initpic
 Allocate and initialize particle arrays. More...
 
subroutine check_allocation (istat, locatn, varname)
 
subroutine allocate_work_rev
 
subroutine deallocate_work_rev
 
subroutine, public load_particles
 Initialize markers. More...
 
subroutine, public init_test_particles
 
subroutine, public load_test_particles
 
real function toroidal_momentum (isp, st, chit, tsubB, ut, mut, psi_correction)
 Function wrapper for toroidal momentum calculation. More...
 
subroutine get_toroidal_momentum (isp, st, chit, ut, mut, psi_correction, tsubB, psit_prof, psit_pot, fvpllb_out, dfvpllb_den_out, dfvpllb_dpsi_out)
 
real function, public b_star (st, chit, b, ut, tprime, addpBst, isp)
 Calculate the parallel component of b_star. More...
 
subroutine get_dist_derivs (f0, ut, mut, b, epsilon_hat, ze, zvth2, nval, Epsi, psit, ngrad, tgrad, vpval, vpgrad, isp, df0_dek, df0_du, df0_dpsi_prof, df0_dchi_prof, df0_dpsi_pot, zecor, pot_equil, pot_equil0, chit)
 
subroutine, public bcpart_disp (run_on_device)
 Impose particle boundary conditions in phi and s (dispatcher). More...
 
subroutine bcpart (pic1_loc, npart_loc, isp, run_on_device)
 Boundary Conditions at s=sfmax (and s=sfmin if needed) and periodicity at phi=2pi. More...
 
subroutine, public print_test_particles (step)
 
subroutine printip (isp, step, ntest_loc, pion_1_loc)
 
subroutine, public pullback
 
subroutine weight_mixed2sympl (pic1_loc, pic2_loc, npart_loc, isp)
 
subroutine coords_mixed2sympl (pic1_loc, pic2_loc, npart_loc, isp)
 
subroutine, public parmove (iter, run_on_device, work1flag, work2flag, work3flag, work5flag, work6flag, work7flag, work8flag, work9flag)
 
subroutine, public parmove_sp (iter, isp, run_on_device, work1flag, work2flag, work3flag, work5flag, work6flag, work7flag, work8flag, work9flag)
 
subroutine, public get_larmor_indices_disp (initflag_in, adapt_only_in)
 
subroutine get_larmor_indices (isp, pic1_loc, pic2_loc, npart_loc, initflag)
 Compute the Larmor radius and number of gyropoints, and store then in work_temp. More...
 
subroutine, public compute_all_larmor_positions_disp (comp_dk)
 
subroutine compute_all_larmor_positions (isp, pic1_loc, pic2_loc, npart_loc)
 
subroutine compute_deposition_attributes_dk (u, w, uw, n)
 Compute drift-kinetic species marker attributes to be deposited. More...
 
subroutine, public compute_reduced_weights_disp (isp, nsel_att)
 
subroutine compute_reduced_weights (isp, pic1_loc, pic2_loc, pic3_loc, npart_loc, nsel_att)
 
subroutine, public sort_gc_2d_disp
 Sort guiding centers of all species in the s-chi plane (so-called "cache sort") More...
 
subroutine, public sort_gc_2d (isp)
 Sort guiding centers of one species in the s-chi plane. More...
 
subroutine, public sort_gc_3d_disp
 Sort drift-kinetic species in 3D. More...
 
subroutine, public unsort_gc_3d_disp
 Sort drift-kinetic species in 3D. More...
 
logical function convert_need_field_to_logical (need_field, istep, nl_main_substep)
 Convert integer convention for when field is needed to logical. More...
 
subroutine, public get_field_disp (field, istep, nl_main_substep, i_att)
 Evaluate field at marker positions for each species. More...
 
subroutine get_field_disp_lvl2 (field_bspl, markers, markers_field, np, x_att, y_att, z_att, field_att, grad_field_att, need_field, need_grad_field, istep, nl_main_substep, displs, atts_offset)
 Evaluate field at marker positions for a given species and a given set of markers (guiding centers or Larmor points, sorted or not) More...
 
subroutine change_grad_coord (np, dfield_dx, dfield_dy, gxx, gxy, gyx, gyy)
 Change coordinate of field gradient. More...
 
subroutine gyroaverage_field (pic1_loc, work_temp_loc, npart_loc, gyro_field_att, gyro_grad_field_att, larmor_loc, need_gyro_field, need_gyro_grad_field, istep, nl_main_substep, atts_offset)
 Gyro-average field. More...
 
subroutine, public push_disp (iter)
 
subroutine push (pic1_loc, pic2_loc, pic3_loc, work1_loc, npart_loc, isp, iter)
 Pushes the particles according to the fields. More...
 
subroutine diagnostics_after_loop (isp)
 
subroutine polarisation_fieldcalc (isp)
 
subroutine diagnostics_in_loop (ip, isp, sigmat, chit, chit_cos, chit_sin, phit, wt, dPsidt0, dPsidt1, zf0, psi0t, ze, pot_equil, tval, zvth2, rt, hh, vpt2, ut, ut2, w3t, pt, pvolgc, df0_dpsi_prof, df0_dchi_prof, dpsi_prof_dt, dchi_prof_dt, vpar, genelec, bstar_inv, bgrb, rhs, tempd, vgc, dvpadt1, dvpadt0, vgb, vpressure, veb_f, vexb, expt_back, eypt_back, b, exh, vecrossb_f2, dpotdpsi, vdr, pvol, ksieta, is_trapped, mut, umin_bin, du_flux_inv, dmu_flux_inv, gyroapar, nval, ithread)
 
subroutine test_particle_output (isp, ip, psi0t, ze, pot_equil, wt, zvth2, nval, pvol, zf0)
 
subroutine clear_diagnostics (isp)
 Clean diagnostics by re-initializing data array to zero. More...
 
subroutine, public update_ffinit_or_pvol
 
subroutine, public trap_detrap_disp
 
subroutine trap_detrap (pic1_loc, pic3_loc, npart_loc, isp)
 Determines whether trapped particles are now free and vice versa. More...
 
subroutine str_diagnostic_start
 
subroutine, public init_push_diagnostics
 
subroutine get_vdr (isp, sigmat, chit, b_inv, tprime, ut, bstar_inv, toB, dvpadt1, vgc, vgb, vexb, bgrb, genelec, vapar, rhs_type, vdr, dPsidt0, dPsidt1, vdchi)
 
subroutine get_rhs (ip, isp, pvol, vdr, vdchi, vgc, vin, vpval, genelec, dvpadt0, dvpadt1, gyroapar, ze, zecor, dH0_dt_correction, pot_equil, pot_equil0, distribution, ut, mut, b, zvth2, nval, Epsi, psi0t, ngrad, tgrad, vpgrad, dfvpllb_dpsi, dfvpllb_den, rhs, dpotdpsi, omegasq_corr, df0_dpsi_prof, df0_dchi_prof, dpsi_prof_dt, dchi_prof_dt, rhs_type, mgradphi, vgb, vpressure, mgradapar, hh_sympl, chit, dchi_dt1, iter, ffinit, dPsidt0)
 
subroutine get_vexbn (sigmat, chit, zvth2, rt2, hy, hz, genelec, grsigma2, grchi2, grsigmagrchi, vexbn)
 
subroutine strong_diagnostic_output (isp, ip, psi0t, temp2, ze, vecrossb_f2, pot_equil, zf0, zvth2_inv, dpotdpsi, vdr, rhs)
 
subroutine sum_of_weights_and_energy_transfer (isp, wt, w3t, pt, pvolgc, ze, zf0, sigmat, q_vgc_dot_genelec, q_dvpadt0_dot_gyroapar, ithread)
 
subroutine add_to_0d (diag, i, to_add_list, ithread)
 
subroutine max_of_0d (diag, i, to_add_list, ithread)
 
subroutine add_to_1d (diag, diag_index, i, to_add_list, ithread)
 
subroutine add_to_2d (diag, diag_index, diag_index2, i, to_add_list, ithread)
 
subroutine add_to_3d (diag, diag_index, diag_index2, diag_index3, i, to_add_list, ithread)
 
subroutine omp_reduce_diag0d (diagnostic, nl_max_)
 
subroutine omp_reduce_diag1d (diagnostic, nl_max_)
 
subroutine omp_reduce_diag2d (diagnostic, nl_max_)
 
subroutine omp_reduce_diag3d (diagnostic, nl_max_)
 
subroutine strong_flow_terms (isp, sigmat, chit, bstar_inv, genelec, pztomobstar, bgrb, addp, expt_back, eypt_back, exh, ut, mut, hh, dvpadt1_str, dvpadt0_str, vgc)
 
subroutine diagnose_sampling (isp, s, en, pvol, w, zf0, ithread)
 Diagnose the velocity space sampling. More...
 
subroutine diagnose_phasespace (isp, s, vpar, mu, B, pvol, w, zf0, ithread)
 Diagnose phase space properties. More...
 
subroutine helical_flux_label (sigmat, xiang, irloc, dr_flux_inv, ipol)
 
subroutine jdote (isp, ut2, vpt2, vpar, genelec, elec_par, wt, bstar_inv, bgrb, vgb, vpressure, veb_f, vexb, expt_back, eypt_back, dvpadt0, gyroapar, jdote_tot, ithread)
 
subroutine mpr_es_calc (isp, ithread, iuloc, imuloc, sigmat, thetat, wt, ut2, vpt2, bstar_inv, vpar, genelec, bgrb, vgb, vpressure, veb_f)
 
subroutine sum_moment2d (isp, irloc, ithetaloc, wt, ffinit_tmp1, ffinit_tmp2, ffinit_tmp3, ffinit_tmp4, ithread)
 
subroutine sum_particles_in_poloidal_bins (isp, ithetaloc, wt, ffinit_tmp1, ffinit_tmp2, ffinit_tmp3, ffinit_tmp4, wt_tmp1, wt_tmp2, wt_tmp3, ithread)
 
subroutine sum_particles_in_radial_bins (isp, ip, irloc, zf0, dPsidt1, dPsidt0, ze, wt, ut, rt2, vpar, zf0_tmp1, zf0_tmp2, zf0_tmp3, sigmat, zf0_local, grsigma2, grsigmagrchi, b, exh, wt_tmp1, wt_tmp2, wt_tmp3, vexb, ffinit_tmp1, ffinit_tmp2, ffinit_tmp3, ffinit_tmp4, ffinit_tmp5, jdote_tot, ithread)
 
subroutine sum_in_radial_bins_island (isp, irloc, ipol, ut, gradpsi0, htildex, htildey, ze, zf0, wt, dPsidt1, ffinit_tmp1, ffinit_tmp2, ffinit_tmp3, ffinit_tmp4, ithread)
 
subroutine push_displacements (isp, ksieta, vexb, chit_cos, chit_sin, sigmat, tempd, vgc, dvpadt1, dvpadt0, rhs, ithread)
 
subroutine electron_fluxes_moments (isp, irloc, zf0, dPsidt1, dPsidt0, ze, wt, ffinit_tmp1, ffinit_tmp2, ffinit_tmp3, ffinit_tmp4, is_trapped, ithread)
 
subroutine sum_fluid_moments (isp, sigmat, chit, phit, wt, ut, ut2, vpt2, ithread)
 
subroutine sum_entropy_fluctuation (isp, wt, zf0, q_vgc_dot_genelec, zvth2_inv, df0_dpsi_prof, df0_dchi_prof, dpsi_prof_dt, ithread)
 
subroutine sum_velocities (isp, iuloc, imuloc, wt, zf0, pvol, ithread)
 
subroutine, public get_pos (isp, nsel_gyr_local, alp, rhog, sigma, chi, lnaveg, chit, sigmat, chi_sigma_gradients)
 
subroutine get_n_larmor_pts (isp, nsel_gyr_local, rhog, lnaveg)
 Choice of the gyro-average algorithm. More...
 
subroutine, public calc_dist (isp, sigmat, chit, ut, mu, psi0_corr, distribution, bst, dist_coeff, diff_t_vpll)
 
real function ze_correction (ut, vpval)
 
real function, dimension(3) cross_product (a, b)
 
subroutine, public read_write_particle_data (flag, datn)
 
real function get_fvpllb (psi, mu, en, v_pll, isp)
 
real function vpaob_ba (psi, mu_scaled, vpll_sign)
 
real function, public get_vpaob_ba (psi, mu, en, v_pll, isp)
 
subroutine build_vpaob
 
subroutine init_vpa_quants
 
subroutine vpa_quants (psi, mu, en_star, v_pll, fvpllb, dfvpllb_den, dfvpllb_dpsi, isp)
 
subroutine, public get_properties (ip, isp, sigmat, chit, en, b, psi0can, f0, zf0, f0_max, T, en_hamilt)
 Get species properties. More...
 
real function, public q_of_s (zs)
 
subroutine, public quadtree_smoothing_disp ()
 
subroutine quadtree_smoothing_interface (pic1_loc, pic2_loc, indx, ipos, p_start, p_end, work, quadtree_array_all, npart_loc, isp, diagnose_)
 Dispatcher for the quadtree_smoothing algorithm. More...
 
subroutine postpush_fullf (pic1_loc, pic2_loc, npart_loc, isp)
 
subroutine, public postpush_disp
 
subroutine, public set_weights_to_zero_at_t0
 
subroutine, public compute_psi0_corr_disp (run_on_device)
 
subroutine, public compute_psi0_corr (pic1_loc, pic2_loc, npart_loc, isp, run_on_device)
 
real function, public compute_psi0_corr_one_particle (isp, st, chit, mut, ut)
 Compute the the correction term for the corrected canonical Maxwellian. More...
 
real function bmaxi (psit)
 Approximate B(psi0,pi) by B(abs(psi0),0) if psi0 is negative. More...
 
subroutine perp_curl_ue (s, chi, smodstar, chimodstar, phimodstar)
 
subroutine, public diagnose_particles
 
subroutine, public grid_pic (isp, nsel_att, reduce_flag, lb, ub, assign1, i_att)
 Charge or current deposition on grid. More...
 
subroutine, public charge_deposition_passing_electrons_disp (isp, lb, ub, rho_passing)
 Deposit the charge of passing electrons in a separate array for new hybrid electron model. More...
 
subroutine charge_deposition_passing_electrons (x, y, w, nl_trapped, np, lb, ub, rho_passing)
 Charge deposition routine for passing electrons. More...
 
subroutine l5_auto_init (isp, l5_s_array)
 
subroutine gauss_list_init (isp, pert_table, nperts)
 
subroutine, public grid_pic_diagnostic (isp, nsel_att, lb, ub, assign1)
 Charge or current deposition on grid. More...
 
subroutine pszs_setboundaries (pic1_loc, pic2_loc, npart_loc, isp, lb, ub)
 
subroutine, public pszs_calc
 
subroutine deposit_bsplines (pszs_, isp, npart_loc, pic1_loc, pic2_loc)
 

Variables

integer, save, public max_work
 
integer, save, public max_work_fields
 
integer, save, public max_pic2
 
integer, save nlarm_pic2
 
integer, save max_work_rev
 
integer, save, public max_pic5
 
integer, dimension(:), allocatable, save, public npart
 
integer, dimension(:), allocatable, save, public npmx
 
real, dimension(:), allocatable, save, public total_weight
 
real, dimension(:), allocatable, save, public dens0
 
real, save ftrap
 
integer, save ntrap
 
integer, dimension(:), allocatable, save, public ntest
 
type(pointer_markers), dimension(:), allocatable, save, public pic1
 
type(pointer_markers), dimension(:), allocatable, save, public pic2
 
type(pointer_markers), dimension(:), allocatable, save, public work1
 
type(pointer_markers), dimension(:), allocatable, save, public work2
 
type(pointer_markers), dimension(:), allocatable, save, public work_temp
 
type(pointer_markers), dimension(:), allocatable, save work_rev
 
type(pointer_markers), dimension(:), allocatable, save pion_1
 
integer, parameter tpnprop =17
 
type(pointer_markers), dimension(:), allocatable, save, public work3
 
type(pointer_markers), dimension(:), allocatable, save, public work5
 
type(pointer_markers), dimension(:), allocatable, save, public work6
 
type(pointer_markers), dimension(:), allocatable, save, public work7
 
type(pointer_markers), dimension(:), allocatable, save, public work8
 
type(pointer_markers), dimension(:), allocatable, save, public work9
 
type(pointer_markers_logic), dimension(:), allocatable, save, public pic3
 
type(pointer_markers_i8), dimension(:), allocatable, save, public pic4
 
type(pointer_markers_r4), dimension(:), allocatable, save, public pic5
 
real, dimension(:,:), allocatable, save n_vel_1d
 
real, dimension(:,:), allocatable, save n_vel_trap_1d
 
real, save dr_flux_inv
 
real, save dth_inv
 
real, save psi0_inv
 
integer, save irloc_in
 
real, dimension(:), allocatable, save ppsum_buff_real
 
real, save psi_max =1.0
 
real, save psi_min =0.0
 
real, save mu_max
 
real, save mu_min
 
real, dimension(:,:), allocatable, save vpll_momentum_bins
 
real, dimension(:,:), allocatable, save vpbi
 
integer, save nbin_mu_f0
 
real, save dpsi_bin
 
real, save dmu_bin
 
real, save dmu_bin_2
 
real, dimension(:), allocatable, save bin_surf_inv
 
real, dimension(:), allocatable, save bin_vol_inv
 
type(pointer_quadtree), dimension(:), allocatable, save qtree
 
integer, save num_mesh
 
integer, save qt_num_s
 
integer, save qt_num_chi
 
integer, parameter qt_num_s_per_ns = 2
 
logical, dimension(:), allocatable, save qt_toggle_flag
 
complex, dimension(:,:,:), allocatable, save, public cfield_out_3d
 
complex, dimension(:,:,:), allocatable, save, public cfield_out_3d_fft
 
type(sorting_class), dimension(:), allocatable, save sortings
 
integer, save lb_wx
 
integer, save ub_wx
 Non-null splines over interval i are [i+lb_wx,i+ub_wx]. More...
 
real, dimension(:,:,:), allocatable rho_passing_omp
 OpenMP working array for deposition for passing electrons (field replicated among OpenMP threads) More...
 
type(moments_3d_class), dimension(moments_3d_size), public moments_3d
 
real, dimension(:), allocatable nptot_inv
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
private
Enumerator
p_parallel 
v_parallel 
mixed 

Function/Subroutine Documentation

◆ add_to_0d()

subroutine part::add_to_0d ( type(diag0d), intent(inout)  diag,
integer, intent(in)  i,
real, intent(in)  to_add_list,
integer, intent(in)  ithread 
)
private
+ Here is the caller graph for this function:

◆ add_to_1d()

subroutine part::add_to_1d ( type(diag1d), intent(inout)  diag,
integer, intent(in)  diag_index,
integer, intent(in)  i,
real, intent(in)  to_add_list,
integer, intent(in)  ithread 
)
private
+ Here is the caller graph for this function:

◆ add_to_2d()

subroutine part::add_to_2d ( type(diag2d), intent(inout)  diag,
integer, intent(in)  diag_index,
integer, intent(in)  diag_index2,
integer, intent(in)  i,
real, intent(in)  to_add_list,
integer, intent(in)  ithread 
)
private
+ Here is the caller graph for this function:

◆ add_to_3d()

subroutine part::add_to_3d ( type(diag3d), intent(inout)  diag,
integer, intent(in)  diag_index,
integer, intent(in)  diag_index2,
integer, intent(in)  diag_index3,
integer, intent(in)  i,
real, intent(in)  to_add_list,
integer, intent(in)  ithread 
)
private
+ Here is the caller graph for this function:

◆ allocate_work_rev()

subroutine part::allocate_work_rev
private
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ b_star()

real function, public part::b_star ( real, intent(in)  st,
real, intent(in)  chit,
real, intent(in)  b,
real, intent(in)  ut,
real, intent(in)  tprime,
real, intent(in)  addpBst,
integer, intent(in)  isp 
)

Calculate the parallel component of b_star.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bcpart()

subroutine part::bcpart ( real, dimension(:,:), intent(inout)  pic1_loc,
integer, intent(in)  npart_loc,
integer, intent(in)  isp,
logical, intent(in)  run_on_device 
)
private

Boundary Conditions at s=sfmax (and s=sfmin if needed) and periodicity at phi=2pi.

Parameters
[in]run_on_deviceRun kernel on the accelerator
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bcpart_disp()

subroutine, public part::bcpart_disp ( logical, intent(in)  run_on_device)

Impose particle boundary conditions in phi and s (dispatcher).

Parameters
[in]run_on_deviceRun kernel on the accelerator
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bmaxi()

real function part::bmaxi ( real, intent(in)  psit)

Approximate B(psi0,pi) by B(abs(psi0),0) if psi0 is negative.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ build_vpaob()

subroutine part::build_vpaob
Bug:
ALS Should psi_max, psi_min, really depend on the last species in the loop?
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ calc_dist()

subroutine, public part::calc_dist ( integer, intent(in)  isp,
real, intent(in)  sigmat,
real, intent(in)  chit,
real, intent(in)  ut,
real, intent(in)  mu,
real, intent(in)  psi0_corr,
real, intent(out)  distribution,
real, intent(out), optional  bst,
real, intent(out), optional  dist_coeff,
real, intent(out), optional  diff_t_vpll 
)
Note
BFM: Would be better to include the potential energy here so this relates more clearly to the Hamiltonian formalism.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ change_grad_coord()

subroutine part::change_grad_coord ( integer, intent(in)  np,
real, dimension(np), intent(inout)  dfield_dx,
real, dimension(np), intent(inout)  dfield_dy,
real, dimension(np), intent(in)  gxx,
real, dimension(np), intent(in)  gxy,
real, dimension(np), intent(in)  gyx,
real, dimension(np), intent(in)  gyy 
)

Change coordinate of field gradient.

Author
N. Ohana
Date
08.2018
Parameters
[in]npNumber of markers
[in,out]dfield_dxRadial derivative of field
[in,out]dfield_dyPoloidal derivative of field
[in]gxxMarkers' |grad x|^2
[in]gxyMarkers' (grad x \cdot \nabla y)
[in]gyxMarkers' (grad y \cdot \nabla x)
[in]gyyMarkers' |grad y|^2
+ Here is the caller graph for this function:

◆ charge_deposition_passing_electrons()

subroutine part::charge_deposition_passing_electrons ( real, dimension(np), intent(in)  x,
real, dimension(np), intent(in)  y,
real, dimension(np), intent(in)  w,
logical, dimension(np), intent(in)  nl_trapped,
integer, intent(in)  np,
integer, dimension(4), intent(in)  lb,
integer, dimension(4), intent(in)  ub,
real, dimension(lb(1):ub(1),lb(2):ub(2)), intent(out)  rho_passing 
)

Charge deposition routine for passing electrons.

Date
05/2017
Parameters
[in]xMarker radial positions
[in]yMarker poloidal positions
[in]wMarker weights
[in]nl_trappedAre markers trapped?
[in]npNumber of markers
[in]lbLower indices of the deposition arrays
[in]ubUpper indices of the deposition arrays
[out]rho_passingArray containing the deposited charge
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ charge_deposition_passing_electrons_disp()

subroutine, public part::charge_deposition_passing_electrons_disp ( integer, intent(in)  isp,
integer, dimension(4), intent(in)  lb,
integer, dimension(4), intent(in)  ub,
real, dimension(lb(1):ub(1),lb(2):ub(2)), intent(out)  rho_passing 
)

Deposit the charge of passing electrons in a separate array for new hybrid electron model.

Date
05/2017
Parameters
[in]ispSpecies under consideration
[in]lbLower indices of the deposition arrays
[in]ubUpper indices of the deposition arrays
[out]rho_passingReturned array with the passing charge
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ check_allocation()

subroutine part::check_allocation ( integer, intent(in)  istat,
character(len=*), intent(in)  locatn,
character(len=*), intent(in)  varname 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ clear_diagnostics()

subroutine part::clear_diagnostics ( integer, intent(in)  isp)
private

Clean diagnostics by re-initializing data array to zero.

+ Here is the caller graph for this function:

◆ compute_all_larmor_positions()

subroutine part::compute_all_larmor_positions ( integer, intent(in)  isp,
real, dimension(:,:), intent(in)  pic1_loc,
real, dimension(:,:), intent(in)  pic2_loc,
integer, intent(in)  npart_loc 
)
Parameters
[in]ispSpecies under consideration
[in]npart_locLocal number of particles
[in]pic1_locMarker attributes (non constant in time)
[in]pic2_locMarker attributes (constant in time)
Todo:
Port this to GPU using CUDA prefix scan wrapper - NOA
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compute_all_larmor_positions_disp()

subroutine, public part::compute_all_larmor_positions_disp ( logical, intent(in)  comp_dk)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compute_deposition_attributes_dk()

subroutine part::compute_deposition_attributes_dk ( real, dimension(n), intent(in)  u,
real, dimension(n), intent(in)  w,
real, dimension(n), intent(out)  uw,
integer, intent(in)  n 
)

Compute drift-kinetic species marker attributes to be deposited.

Author
N. Ohana
Date
08.2018
Parameters
[in]uMarker parallel momenta
[in]wMarker weights
[out]uwProduct of u and w
[in]nNumber of markers
+ Here is the caller graph for this function:

◆ compute_psi0_corr()

subroutine, public part::compute_psi0_corr ( real, dimension(:,:), intent(in)  pic1_loc,
real, dimension(:,:), intent(inout)  pic2_loc,
integer, intent(in)  npart_loc,
integer, intent(in)  isp,
logical, intent(in)  run_on_device 
)
Parameters
[in]run_on_deviceRun kernel on the accelerator
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compute_psi0_corr_disp()

subroutine, public part::compute_psi0_corr_disp ( logical, intent(in)  run_on_device)
Parameters
[in]run_on_deviceRun kernel on the accelerator
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compute_psi0_corr_one_particle()

real function, public part::compute_psi0_corr_one_particle ( integer, intent(in)  isp,
real, intent(in)  st,
real, intent(in)  chit,
real, intent(in)  mut,
real, intent(in)  ut 
)

Compute the the correction term for the corrected canonical Maxwellian.

Corresponds to Eq. (7) from Angelino, PoP 13, 2006.

Note
The minus sign is not included here.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compute_reduced_weights()

subroutine part::compute_reduced_weights ( integer, intent(in)  isp,
real, dimension(:,:), intent(in)  pic1_loc,
real, dimension(:,:), intent(in)  pic2_loc,
logical, dimension(:,:), intent(in)  pic3_loc,
integer, intent(in)  npart_loc,
integer, intent(in)  nsel_att 
)
private
Parameters
[in]npart_locLocal number of particles
[in]pic1_locMarker attributes (non constant in time)
[in]pic2_locMarker attributes (constant in time)
[in]nsel_attWhich attribute to be deposited
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compute_reduced_weights_disp()

subroutine, public part::compute_reduced_weights_disp ( integer, intent(in)  isp,
integer, intent(in)  nsel_att 
)
Parameters
[in]ispSpecies under consideration
[in]nsel_attWhich attribute to be deposited
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ construct_moments_3d()

subroutine part::construct_moments_3d ( class(moments_3d_class), intent(inout)  this,
integer, intent(in)  id,
character(len=*), intent(in)  label,
character(len=*), intent(in)  description 
)
private

◆ convert_need_field_to_logical()

logical function part::convert_need_field_to_logical ( integer, intent(in)  need_field,
integer, intent(in)  istep,
logical, intent(in)  nl_main_substep 
)
private

Convert integer convention for when field is needed to logical.

Author
N. Ohana
Date
11.2018
Parameters
[in]need_field-1: field never needed, 0: field needed every substep, n>0: field needed every n time step
[in]istepTime loop iteration number
[in]nl_main_substepIs it the main time integrator substep?
Returns
Is the field needed now?
+ Here is the caller graph for this function:

◆ coords_mixed2sympl()

subroutine part::coords_mixed2sympl ( real, dimension(:,:), intent(inout)  pic1_loc,
real, dimension(:,:), intent(in)  pic2_loc,
integer, intent(in)  npart_loc,
integer, intent(in)  isp 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cross_product()

real function, dimension(3) part::cross_product ( real, dimension(3), intent(in)  a,
real, dimension(3), intent(in)  b 
)
private
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ deallocate_work_rev()

subroutine part::deallocate_work_rev
private
+ Here is the caller graph for this function:

◆ deposit_bsplines()

subroutine part::deposit_bsplines ( type(pszs_variables), intent(inout)  pszs_,
integer, intent(in)  isp,
integer, intent(in)  npart_loc,
real, dimension(:,:), intent(in)  pic1_loc,
real, dimension(:,:), intent(in)  pic2_loc 
)
private
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ diagnose_particles()

subroutine, public part::diagnose_particles
Bug:
Ions are suposed to be the first species which is not always the case.
Bug:
Electrons are suposed to be the second species which is not always the case.
+ Here is the call graph for this function:

◆ diagnose_phasespace()

subroutine part::diagnose_phasespace ( integer, intent(in)  isp,
real, intent(in)  s,
real, intent(in)  vpar,
real, intent(in)  mu,
real, intent(in)  B,
real, intent(in)  pvol,
real, intent(in)  w,
real, intent(in)  zf0,
integer, intent(in)  ithread 
)
private

Diagnose phase space properties.

Parameters
[in]ispCurrent species
[in]sRadial position in s coordinate
[in]vparMarker parallel velocity
[in]muMarker magnetic moment
[in]bMagnetic field intensity at marker position
[in]pvolMarker phase space volume
[in]wMarker weight
[in]zf0Marker p weight
[in]ithreadCurrent OpenMP thread
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ diagnose_sampling()

subroutine part::diagnose_sampling ( integer, intent(in)  isp,
real, intent(in)  s,
real, intent(in)  en,
real, intent(in)  pvol,
real, intent(in)  w,
real, intent(in)  zf0,
integer, intent(in)  ithread 
)

Diagnose the velocity space sampling.

Parameters
[in]ispCurrent species
[in]sRadial position in s coordinate
[in]enMarker kinetic energy
[in]pvolMarker phase space volume
[in]wMarker weight
[in]zf0Marker p weight
[in]ithreadCurrent OpenMP thread
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ diagnostics_after_loop()

subroutine part::diagnostics_after_loop ( integer, intent(in)  isp)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ diagnostics_in_loop()

subroutine part::diagnostics_in_loop ( integer, intent(in)  ip,
integer, intent(in)  isp,
real, intent(in)  sigmat,
real, intent(in)  chit,
real, intent(in)  chit_cos,
real, intent(in)  chit_sin,
real, intent(in)  phit,
real, intent(in)  wt,
real, intent(in)  dPsidt0,
real, intent(in)  dPsidt1,
real, intent(in)  zf0,
real, intent(in)  psi0t,
real, intent(in)  ze,
real, intent(in)  pot_equil,
real, intent(in)  tval,
real, intent(in)  zvth2,
real, intent(in)  rt,
real, dimension(3), intent(in)  hh,
real, intent(in)  vpt2,
real, intent(in)  ut,
real, intent(in)  ut2,
real, intent(in)  w3t,
real, intent(in)  pt,
real, intent(in)  pvolgc,
real, intent(in)  df0_dpsi_prof,
real, intent(in)  df0_dchi_prof,
real, intent(in)  dpsi_prof_dt,
real, intent(in)  dchi_prof_dt,
real, dimension(3), intent(in)  vpar,
real, dimension(3), intent(in)  genelec,
real, intent(in)  bstar_inv,
real, dimension(3), intent(in)  bgrb,
real, intent(in)  rhs,
real, dimension(3), intent(in)  tempd,
real, dimension(3), intent(in)  vgc,
real, intent(in)  dvpadt1,
real, intent(in)  dvpadt0,
real, dimension(3), intent(in)  vgb,
real, dimension(3), intent(in)  vpressure,
real, dimension(3), intent(in)  veb_f,
real, dimension(3), intent(in)  vexb,
real, intent(in)  expt_back,
real, intent(in)  eypt_back,
real, intent(in)  b,
real, dimension(3), intent(in)  exh,
real, intent(in)  vecrossb_f2,
real, intent(in)  dpotdpsi,
real, intent(in)  vdr,
real, intent(in)  pvol,
logical, intent(in)  ksieta,
logical, intent(in)  is_trapped,
real, intent(in)  mut,
real, intent(in)  umin_bin,
real, intent(in)  du_flux_inv,
real, intent(in)  dmu_flux_inv,
real, intent(in)  gyroapar,
real, intent(in)  nval,
integer, intent(in)  ithread 
)
Todo:
temp2 is not defined prior to its use here, so this diagnostic is not working. It is the source of a fair amount of clutter though. Remove? ALS
Todo:
This lone diagnostic uses pvolgc, rather than pvol. The difference is that pvolgc is PVOL_PIC before it is reassigned if nl_2weights. This is probably not intentional and changing it would clean things up a little bit. ALS
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ electron_fluxes_moments()

subroutine part::electron_fluxes_moments ( integer, intent(in)  isp,
integer, intent(in)  irloc,
real, intent(in)  zf0,
real, intent(in)  dPsidt1,
real, intent(in)  dPsidt0,
real, intent(in)  ze,
real, intent(in)  wt,
real, intent(in)  ffinit_tmp1,
real, intent(in)  ffinit_tmp2,
real, intent(in)  ffinit_tmp3,
real, intent(in)  ffinit_tmp4,
logical, intent(in)  is_trapped,
integer, intent(in)  ithread 
)
private
Todo:
change names HEAT_P_DIA in HEAT_P_DIA_TURB, PARTICLE_P_DIA in PARTICLE_P_DIA_TURB ...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gauss_list_init()

subroutine part::gauss_list_init ( integer, intent(in)  isp,
real, dimension(:,:), intent(inout), allocatable  pert_table,
integer, intent(out)  nperts 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ get_dist_derivs()

subroutine part::get_dist_derivs ( real, intent(in)  f0,
real, intent(in)  ut,
real, intent(in)  mut,
real, intent(in)  b,
real, intent(in)  epsilon_hat,
real, intent(in)  ze,
real, intent(in)  zvth2,
real, intent(in)  nval,
real, intent(in)  Epsi,
real, intent(in)  psit,
real, intent(in)  ngrad,
real, intent(in)  tgrad,
real, intent(in)  vpval,
real, intent(in)  vpgrad,
integer, intent(in)  isp,
real, intent(out)  df0_dek,
real, intent(out)  df0_du,
real, intent(out)  df0_dpsi_prof,
real, intent(out)  df0_dchi_prof,
real, intent(out)  df0_dpsi_pot,
real, intent(in)  zecor,
real, intent(in)  pot_equil,
real, intent(in)  pot_equil0,
real, intent(in)  chit 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ get_field_disp()

subroutine, public part::get_field_disp ( type(field_type), intent(in)  field,
integer, intent(in)  istep,
logical, intent(in)  nl_main_substep,
integer, intent(in)  i_att 
)

Evaluate field at marker positions for each species.

Author
N. Ohana
Date
08.2018
Parameters
[in]fieldField to be evaluated
[in]istepTime loop iteration number
[in]nl_main_substepIs it the main time integrator substep?
[in]i_attiteration over natt buffers
  • Loop over species
  1. Get field at guiding center positions
  2. Get field at Larmor positions
  3. Unsort Larmor markers
  4. Gyro-average field
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ get_field_disp_lvl2()

subroutine part::get_field_disp_lvl2 ( real, dimension(:,:,:), intent(in)  field_bspl,
real, dimension(:,:), intent(in)  markers,
real, dimension(:,:), intent(out)  markers_field,
integer, intent(in)  np,
integer, intent(in)  x_att,
integer, intent(in)  y_att,
integer, intent(in)  z_att,
integer, intent(in)  field_att,
integer, intent(in)  grad_field_att,
integer, intent(in)  need_field,
integer, intent(in)  need_grad_field,
integer, intent(in)  istep,
logical, intent(in)  nl_main_substep,
integer, dimension(:), intent(in), optional  displs,
integer, intent(in), optional  atts_offset 
)

Evaluate field at marker positions for a given species and a given set of markers (guiding centers or Larmor points, sorted or not)

Author
N. Ohana
Date
08.2018
Parameters
[in]field_bsplField B-spline coefficients
[in]markersMarkers with position attributes
[out]markers_fieldMarkers with field attributes
[in]npNumber of markers
[in]x_attRadial attribute index in markers
[in]y_attPoloidal attribute index in markers
[in]z_attToroidal attribute index in markers
[in]field_attField attribute index in markers_field
[in]grad_field_attField gradient attribute index in markers_field
[in]need_fieldEvaluate field at marker positions
[in]need_grad_fieldEvaluate field gradient at marker positions
[in]istepTime loop iteration number
[in]nl_main_substepIs it the main time integrator substep?
[in]atts_offsetParticle offset for atts buffers
[in]displsDisplacements to access markers in specific bin
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ get_fvpllb()

real function part::get_fvpllb ( real, intent(in)  psi,
real, intent(in)  mu,
real, intent(in)  en,
real, intent(in)  v_pll,
integer, intent(in)  isp 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ get_larmor_indices()

subroutine part::get_larmor_indices ( integer, intent(in)  isp,
real, dimension(:,:), intent(in)  pic1_loc,
real, dimension(:,:), intent(inout)  pic2_loc,
integer, intent(in)  npart_loc,
logical, intent(in)  initflag 
)

Compute the Larmor radius and number of gyropoints, and store then in work_temp.

Parameters
[in]ispSpecies under consideration
[in]npart_locLocal number of particles
[in]pic1_locMarker attributes (non constant in time)
[in,out]pic2_locMarker attributes (constant in time)
[in]initflagUsed in initialization to set larmor_max
Todo:
Port this to GPU using CUDA prefix scan wrapper - NOA
Todo:
Todo:
Can optimize this loop - ALS
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ get_larmor_indices_disp()

subroutine, public part::get_larmor_indices_disp ( logical, intent(in), optional  initflag_in,
logical, intent(in), optional  adapt_only_in 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ get_n_larmor_pts()

subroutine part::get_n_larmor_pts ( integer, intent(in)  isp,
integer, intent(in)  nsel_gyr_local,
real, intent(in)  rhog,
integer, intent(out)  lnaveg 
)

Choice of the gyro-average algorithm.

Selects the number of gyro-points based on the input parameter nsel_gyr.

Parameters
[in]ispSpecies under consideration
[in]nsel_gyr_localFlag for the method to use to compute the gyropoints
[in]rhogLarmor radius
[out]lnavegNumber of gyro-points
+ Here is the caller graph for this function:

◆ get_pos()

subroutine, public part::get_pos ( integer, intent(in)  isp,
integer, intent(in)  nsel_gyr_local,
real, intent(in)  alp,
real, intent(in)  rhog,
real, intent(in)  sigma,
real, intent(in)  chi,
integer, intent(out)  lnaveg,
real, dimension(basic%navg_max), intent(out)  chit,
real, dimension(basic%navg_max), intent(out)  sigmat,
real, dimension(4,basic%navg_max), intent(out), optional  chi_sigma_gradients 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ get_properties()

subroutine, public part::get_properties ( integer, intent(in)  ip,
integer, intent(in)  isp,
real, intent(out)  sigmat,
real, intent(out)  chit,
real, intent(out), optional  en,
real, intent(out), optional  b,
real, intent(out), optional  psi0can,
real, intent(out), optional  f0,
real, intent(out), optional  zf0,
real, intent(out), optional  f0_max,
real, intent(out), optional  T,
real, intent(out), optional  en_hamilt 
)

Get species properties.

Parameters
[in]ispSpecies under consideration
[in]ipParticle under consideration
[out]sigmatRadial position of the marker
[out]chitPoloidal position of the marker [0,2*PI]
[out]enKinetic energy of the particle
[out]bEquilibrium magnetic field at particle position
[out]zf0f0 weights of pic
Note
BFM: Would be better to include the potential energy here so this relates more clearly to the Hamiltonian formalism.
Bug:
Is it correct to add zecor to ze since it will be also added in vf0 for example ?
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ get_rhs()

subroutine part::get_rhs ( integer, intent(in)  ip,
integer, intent(in)  isp,
real, intent(in)  pvol,
real, intent(in)  vdr,
real, intent(in)  vdchi,
real, dimension(3), intent(in)  vgc,
real, dimension(3), intent(in)  vin,
real, intent(in)  vpval,
real, dimension(3), intent(in)  genelec,
real, intent(in)  dvpadt0,
real, intent(in)  dvpadt1,
real, intent(in)  gyroapar,
real, intent(in)  ze,
real, intent(in)  zecor,
real, intent(in)  dH0_dt_correction,
real, intent(in)  pot_equil,
real, intent(in)  pot_equil0,
real, intent(in)  distribution,
real, intent(in)  ut,
real, intent(in)  mut,
real, intent(in)  b,
real, intent(in)  zvth2,
real, intent(in)  nval,
real, intent(in)  Epsi,
real, intent(in)  psi0t,
real, intent(in)  ngrad,
real, intent(in)  tgrad,
real, intent(in)  vpgrad,
real, intent(in)  dfvpllb_dpsi,
real, intent(in)  dfvpllb_den,
real, intent(out)  rhs,
real, intent(out)  dpotdpsi,
real, intent(out)  omegasq_corr,
real, intent(out)  df0_dpsi_prof,
real, intent(out)  df0_dchi_prof,
real, intent(out)  dpsi_prof_dt,
real, intent(out)  dchi_prof_dt,
integer, intent(in)  rhs_type,
real, dimension(3), intent(in)  mgradphi,
real, dimension(3), intent(in)  vgb,
real, dimension(3), intent(in)  vpressure,
real, dimension(3), intent(in)  mgradapar,
real, dimension(3), intent(in)  hh_sympl,
real, intent(in)  chit,
real, intent(in)  dchi_dt1,
integer, intent(in)  iter,
real, intent(in)  ffinit,
real, intent(in)  dPsidt0 
)
Bug:
epsilon_hat is set to 0.0 here to avoid uninitialized value for case 1 and 3. For those latter cases it should be checked whether epsilon_hat should be computed or not. Note that until now, we relied on the compiler to initialize epsilon_hat to 0.0.
Note
ALS: dfvpllb_dpsi and dfvpllb_den were both never assigned in the loop and instead were 0.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ get_toroidal_momentum()

subroutine part::get_toroidal_momentum ( integer, intent(in)  isp,
real, intent(in)  st,
real, intent(in)  chit,
real, intent(in)  ut,
real, intent(in)  mut,
real, intent(in)  psi_correction,
real, intent(in)  tsubB,
real, intent(out)  psit_prof,
real, intent(out)  psit_pot,
real, intent(inout), optional  fvpllb_out,
real, intent(inout), optional  dfvpllb_den_out,
real, intent(inout), optional  dfvpllb_dpsi_out 
)
private
Todo:
I added these lines since it appears they should be here (with the commented version of the right hand side I'm waiting for someone who knows/uses nl_bgpot to address it; for now, this code hasn't changed anything - ALS
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ get_vdr()

subroutine part::get_vdr ( integer, intent(in)  isp,
real, intent(in)  sigmat,
real, intent(in)  chit,
real, intent(in)  b_inv,
real, intent(in)  tprime,
real, intent(in)  ut,
real, intent(in)  bstar_inv,
real, intent(in)  toB,
real, intent(in)  dvpadt1,
real, dimension(3), intent(in)  vgc,
real, dimension(3), intent(in)  vgb,
real, dimension(3), intent(in)  vexb,
real, dimension(3), intent(in)  bgrb,
real, dimension(3), intent(in)  genelec,
real, dimension(3), intent(in)  vapar,
integer, intent(in)  rhs_type,
real, intent(out)  vdr,
real, intent(out)  dPsidt0,
real, intent(out)  dPsidt1,
real, intent(out)  vdchi 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ get_vexbn()

subroutine part::get_vexbn ( real, intent(in)  sigmat,
real, intent(in)  chit,
real, intent(in)  zvth2,
real, intent(in)  rt2,
real, intent(in)  hy,
real, intent(in)  hz,
real, dimension(3), intent(in)  genelec,
real, intent(out)  grsigma2,
real, intent(out)  grchi2,
real, intent(out)  grsigmagrchi,
real, intent(out)  vexbn 
)
private
+ Here is the caller graph for this function:

◆ get_vpaob_ba()

real function, public part::get_vpaob_ba ( real, intent(in)  psi,
real, intent(in)  mu,
real, intent(in)  en,
real, intent(in)  v_pll,
integer, intent(in)  isp 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ grid_pic()

subroutine, public part::grid_pic ( integer, intent(in)  isp,
integer, intent(in)  nsel_att,
logical, intent(in)  reduce_flag,
integer, dimension(4), intent(in)  lb,
integer, dimension(4), intent(in)  ub,
real, dimension(lb(1):ub(1),lb(2):ub(2),lb(3):ub(3)), intent(out)  assign1,
integer, intent(in)  i_att 
)

Charge or current deposition on grid.

Parameters
[in]ispSpecies under consideration
[in]nsel_attWhich attribute to be deposited
[in]reduce_flagReduce the weights by the adiabatic density/current
[in]i_attIteration over atts arrays
[in]lbLower indices of the deposition arrays
[in]ubUpper indices of the deposition arrays
+ Here is the caller graph for this function:

◆ grid_pic_diagnostic()

subroutine, public part::grid_pic_diagnostic ( integer, intent(in)  isp,
integer, intent(in)  nsel_att,
integer, dimension(4), intent(in)  lb,
integer, dimension(4), intent(in)  ub,
real, dimension(lb(1):ub(1),lb(2):ub(2),lb(3):ub(3)), intent(out)  assign1 
)

Charge or current deposition on grid.

Parameters
[in]ispSpecies under consideration
[in]nsel_attWhich attribute to be deposited
[in]lbLower indices of the deposition arrays
[in]ubUpper indices of the deposition arrays

◆ gyroaverage_field()

subroutine part::gyroaverage_field ( real, dimension(:,:), intent(in)  pic1_loc,
real, dimension(:,:), intent(inout)  work_temp_loc,
integer, intent(in)  npart_loc,
integer, intent(in)  gyro_field_att,
integer, intent(in)  gyro_grad_field_att,
real, dimension(:,:), intent(in)  larmor_loc,
integer, intent(in)  need_gyro_field,
integer, intent(in)  need_gyro_grad_field,
integer, intent(in)  istep,
logical, intent(in)  nl_main_substep,
integer, intent(in), optional  atts_offset 
)
private

Gyro-average field.

Author
N. Ohana
Date
08.2018
Parameters
[in]pic1_locGuiding center attributes
[in,out]work_temp_locGuiding center attributes
[in]npart_locNumber of guiding centers
[in]gyro_field_attField attribute index
[in]gyro_grad_field_attField gradient attribute index
[in]larmor_locLarmor attributes
[in]need_gyro_fieldGyro-average field
[in]need_gyro_grad_fieldGyro-average field gradient
[in]istepTime loop iteration number
[in]nl_main_substepIs it the main time integrator substep?
[in]atts_offsetParticle offset for reusing atts buffers
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ helical_flux_label()

subroutine part::helical_flux_label ( real, intent(in)  sigmat,
real, intent(in)  xiang,
integer, intent(out)  irloc,
real, intent(out)  dr_flux_inv,
integer, intent(out)  ipol 
)
private
Bug:
func_torpsi takes psi as argument but it is defined for s (see def. in equil.F90).
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ init_particles()

subroutine, public part::init_particles
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ init_push_diagnostics()

subroutine, public part::init_push_diagnostics
+ Here is the caller graph for this function:

◆ init_test_particles()

subroutine, public part::init_test_particles
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ init_vpa_quants()

subroutine part::init_vpa_quants
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initpic()

subroutine part::initpic
private

Allocate and initialize particle arrays.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ jdote()

subroutine part::jdote ( integer, intent(in)  isp,
real, intent(in)  ut2,
real, intent(in)  vpt2,
real, dimension(3), intent(in)  vpar,
real, dimension(3), intent(in)  genelec,
real, dimension(3), intent(in)  elec_par,
real, intent(in)  wt,
real, intent(in)  bstar_inv,
real, dimension(3), intent(in)  bgrb,
real, dimension(3), intent(in)  vgb,
real, dimension(3), intent(in)  vpressure,
real, dimension(3), intent(in)  veb_f,
real, dimension(3), intent(in)  vexb,
real, intent(in)  expt_back,
real, intent(in)  eypt_back,
real, intent(in)  dvpadt0,
real, intent(in)  gyroapar,
real, intent(out)  jdote_tot,
integer, intent(in)  ithread 
)
Author
Julien Dominski
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ l5_auto_init()

subroutine part::l5_auto_init ( integer, intent(in)  isp,
real, dimension(:,:), intent(inout), allocatable  l5_s_array 
)
private
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ load_particles()

subroutine, public part::load_particles

Initialize markers.

Todo:
clean up - ALS
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ load_test_particles()

subroutine, public part::load_test_particles
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ max_of_0d()

subroutine part::max_of_0d ( type(diag0d), intent(inout)  diag,
integer, intent(in)  i,
real, intent(in)  to_add_list,
integer, intent(in)  ithread 
)
private
+ Here is the caller graph for this function:

◆ mpr_es_calc()

subroutine part::mpr_es_calc ( integer, intent(in)  isp,
integer, intent(in)  ithread,
integer, intent(in)  iuloc,
integer, intent(in)  imuloc,
real, intent(in)  sigmat,
real, intent(in)  thetat,
real, intent(in)  wt,
real, intent(in)  ut2,
real, intent(in)  vpt2,
real, intent(in)  bstar_inv,
real, dimension(3), intent(in)  vpar,
real, dimension(3), intent(in)  genelec,
real, dimension(3), intent(in)  bgrb,
real, dimension(3), intent(in)  vgb,
real, dimension(3), intent(in)  vpressure,
real, dimension(3), intent(in)  veb_f 
)
private
Author
Ivan Novikau
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ omp_reduce_diag0d()

subroutine part::omp_reduce_diag0d ( type(diag0d), intent(inout)  diagnostic,
logical, intent(in), optional  nl_max_ 
)
private

◆ omp_reduce_diag1d()

subroutine part::omp_reduce_diag1d ( type(diag1d), intent(inout)  diagnostic,
logical, intent(in), optional  nl_max_ 
)
private

◆ omp_reduce_diag2d()

subroutine part::omp_reduce_diag2d ( type(diag2d), intent(inout)  diagnostic,
logical, intent(in), optional  nl_max_ 
)
private

◆ omp_reduce_diag3d()

subroutine part::omp_reduce_diag3d ( type(diag3d), intent(inout)  diagnostic,
logical, intent(in), optional  nl_max_ 
)
private

◆ parmove()

subroutine, public part::parmove ( integer, intent(in)  iter,
logical, intent(in)  run_on_device,
logical, intent(in)  work1flag,
logical, intent(in)  work2flag,
logical, intent(in), optional  work3flag,
logical, intent(in), optional  work5flag,
logical, intent(in), optional  work6flag,
logical, intent(in), optional  work7flag,
logical, intent(in), optional  work8flag,
logical, intent(in), optional  work9flag 
)
Parameters
[in]iterTime integrator iteration
[in]run_on_deviceRun kernels on the accelerator
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ parmove_sp()

subroutine, public part::parmove_sp ( integer, intent(in)  iter,
integer, intent(in)  isp,
logical, intent(in)  run_on_device,
logical, intent(in)  work1flag,
logical, intent(in)  work2flag,
logical, intent(in), optional  work3flag,
logical, intent(in), optional  work5flag,
logical, intent(in), optional  work6flag,
logical, intent(in), optional  work7flag,
logical, intent(in), optional  work8flag,
logical, intent(in), optional  work9flag 
)
Parameters
[in]iterTime integrator iteration
[in]ispSpecies index
[in]run_on_deviceRun kernels on the accelerator
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ perp_curl_ue()

subroutine part::perp_curl_ue ( real, intent(in)  s,
real, intent(in)  chi,
real, intent(out)  smodstar,
real, intent(out)  chimodstar,
real, intent(out)  phimodstar 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ polarisation_fieldcalc()

subroutine part::polarisation_fieldcalc ( integer, intent(in)  isp)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ postpush_disp()

subroutine, public part::postpush_disp
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ postpush_fullf()

subroutine part::postpush_fullf ( real, dimension(:,:), intent(inout)  pic1_loc,
real, dimension(:,:), intent(inout)  pic2_loc,
integer, intent(in)  npart_loc,
integer, intent(in)  isp 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ print_test_particles()

subroutine, public part::print_test_particles ( integer, intent(in)  step)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ printip()

subroutine part::printip ( integer, intent(in)  isp,
integer, intent(in)  step,
integer, intent(in)  ntest_loc,
real, dimension(tpnprop, ntest_loc), intent(inout)  pion_1_loc 
)
private
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ pszs_calc()

subroutine, public part::pszs_calc
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ pszs_setboundaries()

subroutine part::pszs_setboundaries ( real, dimension(:,:), intent(in)  pic1_loc,
real, dimension(:,:), intent(in)  pic2_loc,
integer, intent(in)  npart_loc,
integer, intent(in)  isp,
real, dimension(3), intent(inout)  lb,
real, dimension(3), intent(inout)  ub 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ pullback()

subroutine, public part::pullback
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ push()

subroutine part::push ( real, dimension(:,:), intent(in)  pic1_loc,
real, dimension(:,:), intent(in)  pic2_loc,
logical, dimension(:,:), intent(in)  pic3_loc,
real, dimension(:,:), intent(inout)  work1_loc,
integer, intent(in)  npart_loc,
integer, intent(in)  isp,
integer, intent(in)  iter 
)
private

Pushes the particles according to the fields.

Parameters
[in]npart_locnumber of markers
[in]pic1_locArray for non constant particle attributes
[in]pic2_locArray for constant particle attributes
[in]pic3_locArray for constant particle attributes
[in,out]work1_locWorkspace array
[in]ispSpecies under consideration
[in]iterRK sub-step
Bug:
Why is this different in the merged verion? IPP/McMillan merge 16/12/2014
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ push_disp()

subroutine, public part::push_disp ( integer, intent(in)  iter)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ push_displacements()

subroutine part::push_displacements ( integer, intent(in)  isp,
logical, intent(in)  ksieta,
real, dimension(3), intent(in)  vexb,
real, intent(in)  chit_cos,
real, intent(in)  chit_sin,
real, intent(in)  sigmat,
real, dimension(3), intent(in)  tempd,
real, dimension(3), intent(in)  vgc,
real, intent(in)  dvpadt1,
real, intent(in)  dvpadt0,
real, intent(in)  rhs,
integer, intent(in)  ithread 
)
private
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ q_of_s()

real function, public part::q_of_s ( real, intent(in)  zs)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ quadtree_smoothing_disp()

subroutine, public part::quadtree_smoothing_disp
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ quadtree_smoothing_interface()

subroutine part::quadtree_smoothing_interface ( real, dimension(:,:), intent(inout)  pic1_loc,
real, dimension(:,:), intent(inout)  pic2_loc,
integer, dimension(:), intent(inout)  indx,
integer, dimension(:), intent(inout)  ipos,
integer, dimension(0:), intent(inout)  p_start,
integer, dimension(0:), intent(inout)  p_end,
real, dimension(:,:), intent(inout)  work,
real, dimension(:,:), intent(inout)  quadtree_array_all,
integer, intent(in)  npart_loc,
integer, intent(in)  isp,
logical, intent(in)  diagnose_ 
)
private

Dispatcher for the quadtree_smoothing algorithm.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ read_write_particle_data()

subroutine, public part::read_write_particle_data ( integer, intent(in)  flag,
integer, intent(in)  datn 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ set_weights_to_zero_at_t0()

subroutine, public part::set_weights_to_zero_at_t0
+ Here is the caller graph for this function:

◆ sort_gc_2d()

subroutine, public part::sort_gc_2d ( integer  isp)

Sort guiding centers of one species in the s-chi plane.

◆ sort_gc_2d_disp()

subroutine, public part::sort_gc_2d_disp

Sort guiding centers of all species in the s-chi plane (so-called "cache sort")

Note
Drift-kinetic species are already 3D-sorted if nl_gc_sort==true
+ Here is the caller graph for this function:

◆ sort_gc_3d_disp()

subroutine, public part::sort_gc_3d_disp

Sort drift-kinetic species in 3D.

+ Here is the caller graph for this function:

◆ str_diagnostic_start()

subroutine part::str_diagnostic_start
+ Here is the caller graph for this function:

◆ strong_diagnostic_output()

subroutine part::strong_diagnostic_output ( integer, intent(in)  isp,
integer, intent(in)  ip,
real, intent(in)  psi0t,
real, intent(in)  temp2,
real, intent(in)  ze,
real, intent(in)  vecrossb_f2,
real, intent(in)  pot_equil,
real, intent(in)  zf0,
real, intent(in)  zvth2_inv,
real, intent(in)  dpotdpsi,
real, intent(in)  vdr,
real, intent(in)  rhs 
)
+ Here is the caller graph for this function:

◆ strong_flow_terms()

subroutine part::strong_flow_terms ( integer, intent(in)  isp,
real, intent(in)  sigmat,
real, intent(in)  chit,
real, intent(in)  bstar_inv,
real, dimension(3), intent(in)  genelec,
real, intent(in)  pztomobstar,
real, dimension(3), intent(in)  bgrb,
real, dimension(3), intent(in)  addp,
real, intent(in)  expt_back,
real, intent(in)  eypt_back,
real, dimension(3), intent(in)  exh,
real, intent(in)  ut,
real, intent(in)  mut,
real, dimension(3), intent(in)  hh,
real, intent(out)  dvpadt1_str,
real, intent(out)  dvpadt0_str,
real, dimension(3), intent(inout)  vgc 
)
private
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sum_entropy_fluctuation()

subroutine part::sum_entropy_fluctuation ( integer, intent(in)  isp,
real, intent(in)  wt,
real, intent(in)  zf0,
real, intent(in)  q_vgc_dot_genelec,
real, intent(in)  zvth2_inv,
real, intent(in)  df0_dpsi_prof,
real, intent(in)  df0_dchi_prof,
real, intent(in)  dpsi_prof_dt,
integer, intent(in)  ithread 
)
private
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sum_fluid_moments()

subroutine part::sum_fluid_moments ( integer, intent(in)  isp,
real, intent(in)  sigmat,
real, intent(in)  chit,
real, intent(in)  phit,
real, intent(in)  wt,
real, intent(in)  ut,
real, intent(in)  ut2,
real, intent(in)  vpt2,
integer, intent(in)  ithread 
)
private
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sum_in_radial_bins_island()

subroutine part::sum_in_radial_bins_island ( integer, intent(in)  isp,
integer, intent(in)  irloc,
integer, intent(in)  ipol,
real, intent(in)  ut,
real, dimension(2), intent(in)  gradpsi0,
real, intent(in)  htildex,
real, intent(in)  htildey,
real, intent(in)  ze,
real, intent(in)  zf0,
real, intent(in)  wt,
real, intent(in)  dPsidt1,
real, intent(in)  ffinit_tmp1,
real, intent(in)  ffinit_tmp2,
real, intent(in)  ffinit_tmp3,
real, intent(in)  ffinit_tmp4,
integer, intent(in)  ithread 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sum_moment2d()

subroutine part::sum_moment2d ( integer, intent(in)  isp,
integer, intent(in)  irloc,
integer, intent(in)  ithetaloc,
real, intent(in)  wt,
real, intent(in)  ffinit_tmp1,
real, intent(in)  ffinit_tmp2,
real, intent(in)  ffinit_tmp3,
real, intent(in)  ffinit_tmp4,
integer, intent(in)  ithread 
)
private
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sum_of_weights_and_energy_transfer()

subroutine part::sum_of_weights_and_energy_transfer ( integer, intent(in)  isp,
real, intent(in)  wt,
real, intent(in)  w3t,
real, intent(in)  pt,
real, intent(in)  pvolgc,
real, intent(in)  ze,
real, intent(in)  zf0,
real, intent(in)  sigmat,
real, intent(in)  q_vgc_dot_genelec,
real, intent(in)  q_dvpadt0_dot_gyroapar,
integer, intent(in)  ithread 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sum_particles_in_poloidal_bins()

subroutine part::sum_particles_in_poloidal_bins ( integer, intent(in)  isp,
integer, intent(in)  ithetaloc,
real, intent(in)  wt,
real, intent(in)  ffinit_tmp1,
real, intent(in)  ffinit_tmp2,
real, intent(in)  ffinit_tmp3,
real, intent(in)  ffinit_tmp4,
real, intent(in)  wt_tmp1,
real, intent(in)  wt_tmp2,
real, intent(in)  wt_tmp3,
integer, intent(in)  ithread 
)
private
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sum_particles_in_radial_bins()

subroutine part::sum_particles_in_radial_bins ( integer, intent(in)  isp,
integer, intent(in)  ip,
integer, intent(in)  irloc,
real, intent(in)  zf0,
real, intent(in)  dPsidt1,
real, intent(in)  dPsidt0,
real, intent(in)  ze,
real, intent(in)  wt,
real, intent(in)  ut,
real, intent(in)  rt2,
real, dimension(3), intent(in)  vpar,
real, intent(in)  zf0_tmp1,
real, intent(in)  zf0_tmp2,
real, intent(in)  zf0_tmp3,
real, intent(in)  sigmat,
real, intent(in)  zf0_local,
real, intent(in)  grsigma2,
real, intent(in)  grsigmagrchi,
real, intent(in)  b,
real, dimension(3), intent(in)  exh,
real, intent(in)  wt_tmp1,
real, intent(in)  wt_tmp2,
real, intent(in)  wt_tmp3,
real, dimension(3), intent(in)  vexb,
real, intent(in)  ffinit_tmp1,
real, intent(in)  ffinit_tmp2,
real, intent(in)  ffinit_tmp3,
real, intent(in)  ffinit_tmp4,
real, intent(in)  ffinit_tmp5,
real, intent(in)  jdote_tot,
integer, intent(in)  ithread 
)
private
Todo:
change name of HEAT_DIA in HEAT_DIA_TURB, PARTICLE_DIA in PARTICLE_DIA_TURB......
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sum_velocities()

subroutine part::sum_velocities ( integer, intent(in)  isp,
integer, intent(in)  iuloc,
integer, intent(in)  imuloc,
real, intent(in)  wt,
real, intent(in)  zf0,
real, intent(in)  pvol,
integer, intent(in)  ithread 
)
private
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ test_particle_output()

subroutine part::test_particle_output ( integer, intent(in)  isp,
integer, intent(in)  ip,
real, intent(in)  psi0t,
real, intent(in)  ze,
real, intent(in)  pot_equil,
real, intent(in)  wt,
real, intent(in)  zvth2,
real, intent(in)  nval,
real, intent(in)  pvol,
real, intent(in)  zf0 
)
Todo:
I noticed a few issues with this diagnostic. (Use of st0, and alpt0, for example. Should be rewritten or deleted. - ALS
+ Here is the caller graph for this function:

◆ toroidal_momentum()

real function part::toroidal_momentum ( integer, intent(in)  isp,
real, intent(in)  st,
real, intent(in)  chit,
real, intent(in)  tsubB,
real, intent(in)  ut,
real, intent(in)  mut,
real, intent(in)  psi_correction 
)

Function wrapper for toroidal momentum calculation.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ trap_detrap()

subroutine part::trap_detrap ( real, dimension(:,:), intent(inout)  pic1_loc,
logical, dimension(:,:), intent(inout)  pic3_loc,
integer, intent(in)  npart_loc,
integer, intent(in)  isp 
)
private

Determines whether trapped particles are now free and vice versa.

Parameters
[in]npart_locnumber of markers
[in]ispScpecies under consideration
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ trap_detrap_disp()

subroutine, public part::trap_detrap_disp
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ unsort_gc_3d_disp()

subroutine, public part::unsort_gc_3d_disp

Sort drift-kinetic species in 3D.

+ Here is the caller graph for this function:

◆ update_ffinit_or_pvol()

subroutine, public part::update_ffinit_or_pvol
+ Here is the caller graph for this function:

◆ vpa_quants()

subroutine part::vpa_quants ( real, intent(in)  psi,
real, intent(in)  mu,
real, intent(in)  en_star,
real, intent(in)  v_pll,
real, intent(out)  fvpllb,
real, intent(out)  dfvpllb_den,
real, intent(out)  dfvpllb_dpsi,
integer, intent(in)  isp 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vpaob_ba()

real function part::vpaob_ba ( real, intent(in)  psi,
real, intent(in)  mu_scaled,
integer, intent(in)  vpll_sign 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ weight_mixed2sympl()

subroutine part::weight_mixed2sympl ( real, dimension(:,:), intent(inout)  pic1_loc,
real, dimension(:,:), intent(in)  pic2_loc,
integer, intent(in)  npart_loc,
integer, intent(in)  isp 
)
private
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ze_correction()

real function part::ze_correction ( real, intent(in)  ut,
real, intent(in)  vpval 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ bin_surf_inv

real, dimension(:), allocatable, save part::bin_surf_inv
private

◆ bin_vol_inv

real, dimension(:), allocatable, save part::bin_vol_inv
private

◆ cfield_out_3d

complex, dimension(:,:,:), allocatable, save, public part::cfield_out_3d

◆ cfield_out_3d_fft

complex, dimension(:,:,:), allocatable, save, public part::cfield_out_3d_fft

◆ dens0

real, dimension(:), allocatable, save, public part::dens0

◆ dmu_bin

real, save part::dmu_bin
private

◆ dmu_bin_2

real, save part::dmu_bin_2
private

◆ dpsi_bin

real, save part::dpsi_bin
private

◆ dr_flux_inv

real, save part::dr_flux_inv
private

◆ dth_inv

real, save part::dth_inv
private

◆ ftrap

real, save part::ftrap
private

◆ irloc_in

integer, save part::irloc_in
private

◆ lb_wx

integer, save part::lb_wx
private

◆ max_pic2

integer, save, public part::max_pic2

◆ max_pic5

integer, save, public part::max_pic5

◆ max_work

integer, save, public part::max_work

◆ max_work_fields

integer, save, public part::max_work_fields

◆ max_work_rev

integer, save part::max_work_rev
private

◆ moments_3d

type(moments_3d_class), dimension(moments_3d_size), public part::moments_3d

◆ mu_max

real, save part::mu_max
private

◆ mu_min

real, save part::mu_min
private

◆ n_vel_1d

real, dimension(:,:), allocatable, save part::n_vel_1d
private

◆ n_vel_trap_1d

real, dimension(:,:), allocatable, save part::n_vel_trap_1d
private

◆ nbin_mu_f0

integer, save part::nbin_mu_f0
private

◆ nlarm_pic2

integer, save part::nlarm_pic2
private

◆ npart

integer, dimension(:), allocatable, save, public part::npart

◆ npmx

integer, dimension(:), allocatable, save, public part::npmx

◆ nptot_inv

real, dimension(:), allocatable part::nptot_inv
private

◆ ntest

integer, dimension(:), allocatable, save, public part::ntest

◆ ntrap

integer, save part::ntrap
private

◆ num_mesh

integer, save part::num_mesh
private

◆ pic1

type(pointer_markers), dimension(:), allocatable, save, public part::pic1

◆ pic2

type(pointer_markers), dimension(:), allocatable, save, public part::pic2

◆ pic3

type(pointer_markers_logic), dimension(:), allocatable, save, public part::pic3

◆ pic4

type(pointer_markers_i8), dimension(:), allocatable, save, public part::pic4

◆ pic5

type(pointer_markers_r4), dimension(:), allocatable, save, public part::pic5

◆ pion_1

type(pointer_markers), dimension(:), allocatable, save part::pion_1
private

◆ ppsum_buff_real

real, dimension(:), allocatable, save part::ppsum_buff_real
private

◆ psi0_inv

real, save part::psi0_inv
private

◆ psi_max

real, save part::psi_max =1.0
private

◆ psi_min

real, save part::psi_min =0.0
private

◆ qt_num_chi

integer, save part::qt_num_chi
private

◆ qt_num_s

integer, save part::qt_num_s
private

◆ qt_num_s_per_ns

integer, parameter part::qt_num_s_per_ns = 2
private

◆ qt_toggle_flag

logical, dimension(:), allocatable, save part::qt_toggle_flag
private

◆ qtree

type(pointer_quadtree), dimension(:), allocatable, save part::qtree
private

◆ rho_passing_omp

real, dimension(:,:,:), allocatable part::rho_passing_omp
private

OpenMP working array for deposition for passing electrons (field replicated among OpenMP threads)

◆ sortings

type(sorting_class), dimension(:), allocatable, save part::sortings
private

◆ total_weight

real, dimension(:), allocatable, save, public part::total_weight

◆ tpnprop

integer, parameter part::tpnprop =17
private

◆ ub_wx

integer, save part::ub_wx
private

Non-null splines over interval i are [i+lb_wx,i+ub_wx].

◆ vpbi

real, dimension(:,:), allocatable, save part::vpbi
private

◆ vpll_momentum_bins

real, dimension(:,:), allocatable, save part::vpll_momentum_bins
private

◆ work1

type(pointer_markers), dimension(:), allocatable, save, public part::work1

◆ work2

type(pointer_markers), dimension(:), allocatable, save, public part::work2

◆ work3

type(pointer_markers), dimension(:), allocatable, save, public part::work3

◆ work5

type(pointer_markers), dimension(:), allocatable, save, public part::work5

◆ work6

type(pointer_markers), dimension(:), allocatable, save, public part::work6

◆ work7

type(pointer_markers), dimension(:), allocatable, save, public part::work7

◆ work8

type(pointer_markers), dimension(:), allocatable, save, public part::work8

◆ work9

type(pointer_markers), dimension(:), allocatable, save, public part::work9

◆ work_rev

type(pointer_markers), dimension(:), allocatable, save part::work_rev
private

◆ work_temp

type(pointer_markers), dimension(:), allocatable, save, public part::work_temp