20 #include "sll_assert.h"
21 #include "sll_memory.h"
22 #include "sll_working_precision.h"
23 #include "sll_accumulators.h"
71 sll_int64 :: num_particles
74 sll_int32 :: thread_id
76 sll_assert(
associated(p_group) .and.
associated(q_accumulator))
77 num_particles = int(p_group%number_particles, i64)
82 thread_id = omp_get_thread_num()
86 q_accum => q_accumulator(thread_id + 1)%q
88 do i = 1, num_particles
89 sll_accumulate_particle_charge(q_accum, p(i), tmp1, tmp2)
104 sll_int64 :: num_particles
105 sll_real32 :: tmp(1:4, 1:2), temp
106 sll_int32 :: thread_id
108 sll_assert(
associated(p_group) .and.
associated(q_accumulator))
109 num_particles = int(p_group%number_particles, i64)
114 thread_id = omp_get_thread_num()
118 q_accum => q_accumulator(thread_id + 1)%q
120 do i = 1, num_particles
121 sll_accumulate_particle_charge_cs(q_accum, p(i), tmp, temp)
135 sll_int64 :: num_particles
138 sll_int32 :: thread_id
140 sll_assert(
associated(p_group) .and.
associated(q_accumulator))
141 num_particles = int(p_group%number_particles, i64)
146 thread_id = omp_get_thread_num()
150 q_accum => q_accumulator(thread_id + 1)%q
152 do i = 1, num_particles
153 sll_accumulate_particle_charge(q_accum, p(i), tmp1, tmp2)
166 sll_int64 :: num_particles
167 sll_real32 :: tmp(1:4, 1:2), temp
168 sll_int32 :: thread_id
170 sll_assert(
associated(p_group) .and.
associated(q_accumulator))
171 num_particles = int(p_group%number_particles, i64)
176 thread_id = omp_get_thread_num()
180 q_accum => q_accumulator(thread_id + 1)%q
182 do i = 1, num_particles
183 sll_accumulate_particle_charge_cs(q_accum, p(i), tmp, temp)
Particle deposition routines.
subroutine, public sll_s_first_gc_charge_accumulation_2d(p_group, q_accumulator)
subroutine, public sll_s_first_charge_accumulation_2d_cs(p_group, q_accumulator)
subroutine, public sll_s_first_gc_charge_accumulation_2d_cs(p_group, q_accumulator)
subroutine, public sll_s_first_charge_accumulation_2d(p_group, q_accumulator)