-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Broken diagnostics (T_adx, T_ady, S_adx, S_ady) in symmetric memory mode #646
Comments
Not sure (haven't tried) but it looks like the |
Apparently (slack thread) this is not apparent in other variables so the newer loop structure in MOM_diag_remap.F90 is probably OK. We'll have to do a DEBUG=True for before and after... |
It looks like it was this commit that introduced the striping: 6153d97 Still unsure what the fix should be. |
I have now figured out that I can get rid of the striping with the newer version of the code with 2 changes: (A works independent of B and B works independent of A) I'm not sure if "B" is the correct patch for this yet, but just offering these as clues. I wonder if @Hallberg-NOAA or @kshedstrom might have thoughts? |
Making the halos or the work space wider is a good clue, but it will be a potentially expensive (and in the case of the wider halos unreliable) fix for this problem. I think that the underlying problem here is with how the To fix the problem, I suspect that the logic surrounding the calculation of the tracer advection diagnostics should be revised to In addition, I believe that the declarations for In addition, I suspect that @marshallward might advise us that it would just be faster to avoid the logical tests around these diagnostics of net advective fluxes and exploit the fact that we don't change anything by adding in 0-fluxes. (We do need the logical tests for the tracer advection itself at about lines 653 and 1041, because even when the fluxes are 0, multiplying a tracer concentration by a thickness and then the reciprocal of that thickness changes the tracer concentration at roundoff.) |
Thanks @Hallberg-NOAA! I tested this again with the revised logic and indeed that seems to also fix the striping on its own. Pr is in #649 Another thing I noticed while debugging this is the inconsistency between the logic change at L127 with the existing logic at L396 and L768 |
I'm fine to close it now, the bug that was impacting OM5 is now resolved. It seems we have a couple things to potentially revisit later in this code w/ the other being the logicals inside the loop setting the diagnostics. |
Diagnostics including T_adx, T_ady, S_adx, and S_ady give stripes of no values on CPU boundaries in symmetric memory mode (vertical stripes in X_adx and horizontal stripes in X_ady). The stripes are not present in non-symmetric memory. We have not yet confirmed if it impacts other diagnostics. It does not impact the prognostic model solutions. The stripes emerge in code versions from PR #564 and later.
The text was updated successfully, but these errors were encountered: