18 void get_inversion_startendindices(
int *loop,
int *is,
int *ie,
int *js,
int *je,
int *ks,
int *ke)
77 void get_stag_startendindices(
int *loop,
int dir,
int *is,
int *ie,
int *js,
int *je,
int *ks,
int *ke)
122 void get_flux_startendindices(
int *loop,
int *is,
int *ie,
int *js,
int *je,
int *ks,
int *ke)
164 #pragma omp parallel // just copying, only need PLOOP even for ucum_check()
168 int is,ie,js,je,ks,ke;
169 extern void ucum_check(
int i,
int j,
int k,
int loc,
int pl,
FTYPE *ucum);
172 is=loop[
FIS]-SHIFT1*(AVOIDADVANCESHIFTX1DN==0);
173 ie=loop[
FIE]+SHIFT1*(AVOIDADVANCESHIFTX1UP==0);
174 js=loop[
FJS]-SHIFT2*(AVOIDADVANCESHIFTX2DN==0);
175 je=loop[
FJE]+SHIFT2*(AVOIDADVANCESHIFTX2UP==0);
176 ks=loop[
FKS]-SHIFT3*(AVOIDADVANCESHIFTX3DN==0);
177 ke=loop[
FKE]+SHIFT3*(AVOIDADVANCESHIFTX3UP==0);
183 copy_3d_nofield_nowait(is, ie, js, je, ks, ke, tempucum,ucum);
186 #pragma omp barrier // force barrier since otherwise nowait will leak into here with undefined values in general
189 PLOOPNOB2(pl) ucum_check(i,j,k,CENT,pl,
MAC(ucum,i,j,k));
199 is=loop[
FIS]-SHIFT1*(AVOIDADVANCESHIFTX1DN==0);
200 ie=loop[
FIE]+SHIFT1*(AVOIDADVANCESHIFTX1UP==0);
201 js=loop[
FJS]-SHIFT2*(AVOIDADVANCESHIFTX2DN==0);
202 je=loop[
FJE]+SHIFT2*(AVOIDADVANCESHIFTX2UP==0);
203 ks=loop[
FKS]-SHIFT3*(AVOIDADVANCESHIFTX3DN==0);
204 ke=loop[
FKE]+SHIFT3*(AVOIDADVANCESHIFTX3UP==0);
207 copy_3d_onepl_nowait(is, ie, js, je, ks, ke, pl, tempucum, ucum );
210 #pragma omp barrier // force barrier since otherwise nowait will leak into here with undefined values in general
212 ucum_check(i,j,k,
FACE1,pl,
MAC(ucum,i,j,k));
219 is=loop[
FIS]-SHIFT1*(AVOIDADVANCESHIFTX1DN==0);
220 ie=loop[
FIE]+SHIFT1*(AVOIDADVANCESHIFTX1UP==0);
221 js=loop[
FJS]-SHIFT2*(AVOIDADVANCESHIFTX2DN==0);
222 je=loop[
FJE]+SHIFT2*(AVOIDADVANCESHIFTX2UP==0);
223 ks=loop[
FKS]-SHIFT3*(AVOIDADVANCESHIFTX3DN==0);
224 ke=loop[
FKE]+SHIFT3*(AVOIDADVANCESHIFTX3UP==0);
227 copy_3d_onepl_nowait(is, ie, js, je, ks, ke, pl, tempucum, ucum );
231 #pragma omp barrier // force barrier since otherwise nowait will leak into here with undefined values in general
233 ucum_check(i,j,k,
FACE2,pl,
MAC(ucum,i,j,k));
240 is=loop[
FIS]-SHIFT1*(AVOIDADVANCESHIFTX1DN==0);
241 ie=loop[
FIE]+SHIFT1*(AVOIDADVANCESHIFTX1UP==0);
242 js=loop[
FJS]-SHIFT2*(AVOIDADVANCESHIFTX2DN==0);
243 je=loop[
FJE]+SHIFT2*(AVOIDADVANCESHIFTX2UP==0);
244 ks=loop[
FKS]-SHIFT3*(AVOIDADVANCESHIFTX3DN==0);
245 ke=loop[
FKE]+SHIFT3*(AVOIDADVANCESHIFTX3UP==0);
248 copy_3d_onepl_nowait(is, ie, js, je, ks, ke, pl, tempucum, ucum );
252 #pragma omp barrier // force barrier since otherwise nowait will leak into here with undefined values in general
254 ucum_check(i,j,k,
FACE3,pl,
MAC(ucum,i,j,k));
266 #pragma omp barrier // force barrier since otherwise nowait will leak into here with undefined values in general
270 ucum_check(i,j,k,
CENT,pl,
MAC(ucum,i,j,k));
287 #pragma omp parallel // just copying, only need PLOOP even for ucum_check()
291 int is,ie,js,je,ks,ke;
292 extern void ucum_check(
int i,
int j,
int k,
int loc,
int pl,
FTYPE *ucum);
295 is=loop[
FIS]-SHIFT1*(AVOIDADVANCESHIFTX1DN==0);
296 ie=loop[
FIE]+SHIFT1*(AVOIDADVANCESHIFTX1UP==0);
297 js=loop[
FJS]-SHIFT2*(AVOIDADVANCESHIFTX2DN==0);
298 je=loop[
FJE]+SHIFT2*(AVOIDADVANCESHIFTX2UP==0);
299 ks=loop[
FKS]-SHIFT3*(AVOIDADVANCESHIFTX3DN==0);
300 ke=loop[
FKE]+SHIFT3*(AVOIDADVANCESHIFTX3UP==0);
308 copy_3d_onepl_nowait(is, ie, js, je, ks, ke, pl, tempucum, ucum );
312 ucum_check(i,j,k,
FACE1,pl,
MAC(ucum,i,j,k));
320 copy_3d_onepl_nowait(is, ie, js, je, ks, ke, pl, tempucum, ucum );
325 ucum_check(i,j,k,
FACE2,pl,
MAC(ucum,i,j,k));
333 copy_3d_onepl_nowait(is, ie, js, je, ks, ke, pl, tempucum, ucum );
338 ucum_check(i,j,k,
FACE3,pl,
MAC(ucum,i,j,k));
378 #pragma omp for schedule(OPENMPFULLNOVARYSCHEDULE())
405 copy_3dnpr(is, ie, js, je, ks, ke,
source, dest);
420 #pragma omp for schedule(OPENMPFULLNOVARYSCHEDULE())
447 #pragma omp for schedule(OPENMPFULLNOVARYSCHEDULE())
473 copy_3d_fieldonly(is, ie, js, je, ks, ke, source, dest);
489 #pragma omp for schedule(OPENMPFULLNOVARYSCHEDULE()) nowait
512 #pragma omp for schedule(OPENMPFULLNOVARYSCHEDULE()) nowait
535 #pragma omp for schedule(OPENMPFULLNOVARYSCHEDULE())
559 #pragma omp for schedule(OPENMPFULLNOVARYSCHEDULE())
583 copy_3d_onepl(is, ie, js, je, ks, ke, pl, source, dest);
600 copy_3d_onepl_nowait(is, ie, js, je, ks, ke, pl, source, dest);
616 #pragma omp for schedule(OPENMPFULLNOVARYSCHEDULE())
622 MACP0A1(dest,i,j,k,pl)=initvalue;
632 void init_3dnpr(
int is,
int ie,
int js,
int je,
int ks,
int ke,
FTYPE initvalue,
FTYPE (*dest)[
NSTORE2][
NSTORE3][NPR])
642 #pragma omp for schedule(OPENMPFULLNOVARYSCHEDULE())
648 MACP0A1(dest,i,j,k,pl)=initvalue;
667 init_3dnpr(is,ie,js,je,ks,ke,initvalue,dest);
681 init_3dnpr_flux(is,ie,js,je,ks,ke,initvalue,dest);
695 #pragma omp for schedule(OPENMPFULLNOVARYSCHEDULE())
699 MAC(dest,i,j,k)=initvalue;
731 #pragma omp for schedule(OPENMPFULLNOVARYSCHEDULE())
735 MAC(dest,i,j,k)=
MAC(source,i,j,k);
752 copy_3dvpot(is,ie,js,je,ks,ke,source,dest);
766 #pragma omp for schedule(OPENMPFULLNOVARYSCHEDULE())
791 #pragma omp for schedule(OPENMPFULLNOVARYSCHEDULE())
797 MACP0A1(dest1,i,j,k,pl)=
MACP0A1(dest2,i,j,k,pl)=
MACP0A1(dest3,i,j,k,pl)=initvalue;
819 #pragma omp for schedule(OPENMPFULLNOVARYSCHEDULE())
825 MACP0A1(dest1,i,j,k,pl)=
MACP0A1(dest2,i,j,k,pl)=
MACP0A1(source,i,j,k,pl);
852 #pragma omp for schedule(OPENMPFULLNOVARYSCHEDULE())
876 get_inversion_startendindices(
Uconsevolveloop,&is,&ie,&js,&je,&ks,&ke);
887 copy_3dpftype_special(is, ie, js, je, ks, ke,source, destspecial);
899 #pragma omp parallel OPENMPGLOBALPRIVATEPLOOPINTERPONLY
904 #pragma omp for schedule(OPENMPFULLNOVARYSCHEDULE())
910 MACP0A1(dest1,i,j,k,pl)=
MACP0A1(dest2,i,j,k,pl)=
MACP0A1(source,i,j,k,pl);
931 copy_3dnpr2interp_2ptrs(is, ie, js, je, ks, ke,source, dest1, dest2);