Revised KPP_smooth_BLD() to reproduce across processor count and layout when USE_KPP is true and KPP%N_SMOOTH > 1. The specific changes include adding a variable with the total ocean depth before doing the iterations, doing a halo update on this total ocean depth, marching in the working do-loop size with successive iterations, and moving the code to calculate CS%kOBL into a separate loop that is exercised after all of the iterations for the smoothing passes on CS%OBLdepth. This commit will change answers (so that they reproduce across processor count and layout) when USE_KPP is true and KPP%N_SMOOTH >= 2, but it gives bitwise identical answers when KPP%N_SMOOTH <= 1.
Revised KPP_smooth_BLD() to reproduce across processor count and layout when USE_KPP is true and KPP%N_SMOOTH > 1. The specific changes include adding a variable with the total ocean depth before doing the iterations, doing a halo update on this total ocean depth, marching in the working do-loop size with successive iterations, and moving the code to calculate CS%kOBL into a separate loop that is exercised after all of the iterations for the smoothing passes on CS%OBLdepth. This commit will change answers (so that they reproduce across processor count and layout) when USE_KPP is true and KPP%N_SMOOTH >= 2, but it gives bitwise identical answers when KPP%N_SMOOTH <= 1.