You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In mode_ice4_pack, we can compute the microphysics on a selection of points by packing them in new arrays before calling ice4_stepping (LPACK_MICRO=T) or call directly ice4_stepping on all the points (LPACK_MICRO=F).
On NEC, it could be more efficient to use indirection.
This issue describes how to implement an indirection mechanism in the LPACK_MICRO=.F. case. But this way of implementing it was not fully validated by Ryad.
compute an indirection array (INDIRARRAY), which will be given to ice4_stepping
in ice4_stepping and lower in the call tree, all "DO JL=1, KSIZE" loops will be transformed into
"DO JLL=1,KSIZEINDIR; JL=INDIR(JLL, INDIRARRAY)"
the following piece of code will be included in the different files:
#ifdef INDIR_MICRO
#define INDIR(JLL, INDIRARRAY) INDIRARRAY(JLL)
#else
#define INDIR(JLL, INDIRARRAY) JLL
#endif
The text was updated successfully, but these errors were encountered:
In mode_ice4_pack, we can compute the microphysics on a selection of points by packing them in new arrays before calling ice4_stepping (LPACK_MICRO=T) or call directly ice4_stepping on all the points (LPACK_MICRO=F).
On NEC, it could be more efficient to use indirection.
This issue describes how to implement an indirection mechanism in the LPACK_MICRO=.F. case. But this way of implementing it was not fully validated by Ryad.
"DO JLL=1,KSIZEINDIR; JL=INDIR(JLL, INDIRARRAY)"
#ifdef INDIR_MICRO
#define INDIR(JLL, INDIRARRAY) INDIRARRAY(JLL)
#else
#define INDIR(JLL, INDIRARRAY) JLL
#endif
The text was updated successfully, but these errors were encountered: