It was discovered that the location where the ghost point values (details)
I accidentally committed a couple things in the previous commit (details)
Pushing loop into calc_ref_z_linear_thvm to prevent erroneous inlining optimizations by nvfortran. This is BFB on nvhpc 24.3 with -O0 and BFB on nvhpc 22.5 with -O2. https://github.com/larson-group/clubb/issues/1148 (details)
It was discovered that the location where the ghost point values of um and vm were set equal to their respective values at the first thermodynamic level above the surface was not ideal. Their assignment occurred before the love nudge (l_uv_nudge). Then, the love nudge came along and altered their values so that um(1) no longer equaled um(2) -- and analogous for vm(1) and vm(2) -- for a half dozen cases. In addition to making the code inconsistent, it also caused bit-for-bitness differences between the master and clubb_ghost_exorcism branches. For those reasons, this BIT_CHANGING commit is being made.
Pushing loop into calc_ref_z_linear_thvm to prevent erroneous inlining optimizations by nvfortran. This is BFB on nvhpc 24.3 with -O0 and BFB on nvhpc 22.5 with -O2. https://github.com/larson-group/clubb/issues/1148