atn 05.aug.2024 This is a re-run of aste release1 , with modified code to diagnose vertical diffusivities and diffusive fluxes. New diagnostics and their meanings are indicated in "available_diagnostics_short.log" , with further elaboration below: ASTE runs with an initial input 3D vertical diffusivity field "logdiffkr_i62.bin" (note log10). Once read in, the mitgcm fills a 3d field "diffkr" with this input (taken 10^), then call on kpp to compute as follows: 1. pre-assign variables KPPdiffKz[T,S] with diffkr (<-- note SAME values for T and S) 2. compute kpp mixing coefficients (called either blmc or vdiff), then: a) if kpp coeff is active (non-zeros, within the active mixing layer), then KPPdiffKz[T,S] = max(vidff, diffkr(k=bottom)) <-- note it's not just max at any depths, but the minimum nonzero diffkr at bottom of ocean, essentially to avoid potential negative values due to whatever issues. b) if kpp not active, then KPPdiffKz[T,S] = diffkr (nothing change from 1.) 3. Add Redi GM_Kwz to KPPdiffKz[T,S]. So this variable name KPPdiffKz[T,S] is quite deceiving, because it is the combined of max(kpp,min(bg))+redi. 4. So, it is NOT that kpp is added on top of the input background, but it's a full replacement. What this means is if we're to locate where the "background is active", what we can do is reverse the checks of 2a and 2b above, as I have done: a) KPdiffKz[T,S]1 = [2a] when kpp is active, DIFFKrBG = 0. b) if kpp is not active, DIFFKrBG = diffkr, KPdiffKz[T,S]1 = 0. (3a) and (3b) above constitutes diagnostics "KPdiffT1" and "DIFFKrBG" (at most 8-character string). The Redi portion is also diagnosed to "GM_Kwz". Salt coefficients were not saved because they're identical to theta ones. 5. The vertical diffusive fluxes are then easily followed from DIFFKrBG, KPdiffKzT1, and Kwz: i) DBgr_TH: vertical diffusive flux from background DIFFKrBG ii) DKpr_TH: .. .. kpp part KPdiffKzT1 iii) DReI_TH: .. .. Redi part GM_Kwz iv) DFrI_TH: as default in mitgcm, total "implicit" vertical diffusive flux, with conservations: DFrI_TH = DBgr_TH + DKpr_TH + DReI_TH Same for salt. The coefficients are the same as for theta, but obviously the diffusive fluxes wont be. They're saved to DBgr_SLT, DKpr_SLT, DRer_SLT, DFrI_SLT 6. The explicit part of vertical diffusion is only from the iso-pycnal projection (GM Kwx and Kwy), and is diagnosed to DFrE_[TH,SLT] So, when you say you see "compensation" between the "E" and "I", I suspect it is almost entirely compensation within the Redi iso and dia projections... 7. Lastly, there's also the "non-local transport" part of KPP, based on the NET KPPdiffKz[T,S]. I could split them into KPdiffKz[T,S]1 and DIFFKrBG and Redi, but I didn't , because I'm not sure if you're using this nonlocal transports (diagnostics KPPg_[TH,SLT]). =========================================