Releases: CVMix/CVMix-src
Eighth minor update to v0.60 (v0.68)
Bug fix in double diffusion - was updating entire column in salt-fingering case rather than just the level[s] where salt-fingering was occurring.
Seventh minor update to v0.60 (v0.67)
I inadvertently introduced a bug when removing cvmix_kpp_compute_nonlocal (that I am surprised was not caught during testing... but that's a different issue).
Sixth minor update to v0.60 (v0.66)
Remove lavg_N_or_Nsqr, per issue #54
Also changed compile flags for stand-alone driver using Intel - no longer errors on remarks (due to remark in Intel 15 regarding "vector always assert"
Fifth minor update to v0.60 (v0.65)
Two big modifications to the KPP algorithm:
-
Previously, enhanced diffusivity was only computed for
MatchTechnique = 'MatchBoth'
; now it is available for all MatchTechnique options by settinglenhanced_diff = .true.
in cvmix_init_kpp -
When using
MatchTechnique = 'ParabolicNonlocal'
, gamma did not match the surface fluxes because the shape function (which = 1 at the surface) was still multiplied by the constant Cs. There is now an initialization settinglnonzero_surf_nonlocal
which sets Cs = 1.
Also, a minor change in the stand-alone driver build system to make it easier to determine how to link to netCDF libraries.
Fourth minor update to v0.60 (v0.64)
Several small changes in cvmix_kpp, including some that change answers:
-
Updated bulk Richardson computation to use (d-dr) rather than d, where dr is the depth of the center of the surface layer. Since the surface layer depth is assumed to be surf_layer_ext_d, this means the bulk Richardson number is computed using (1-0.5_surf_layer_ext)*d instead of d in the numerator.
-
Change default behavior for computing the unresolved shear if you pass in N or N^2: instead of using N at the deeper interface as the cell center value as well, the default behavior is to average the two interfaces to get the cell center value. The old behavior is preserved by setting lavg_N_or_Nsqr = .false. in cvmix_init_kpp()
-
The way N^2 is averaged has changed; rather than N_cntr = sqrt(avg(N^2[above,below])), we now use N_cntr = avg(sqrt(N^2)[above,below])
-
Added a new parameter, minVtsqr, that can be set in cvmix_init_kpp to enforce a minimum value on the unresolved shear. Default is 1e-10 m^2/s^2
-
Added two new parameters, minOBLdepth and maxOBLdepth, that can be set in cvmix_init_kpp to enforce a minimum and / or maximum value on the OBL depth. maxOBLdepth = 0 => no maximum; by default both parameters are set to 0.
Third minor update to v0.60 (v0.63)
Most of the changes in this release are in the stand-alone driver... improvements to plots (especially the plots coming out of the double diffusion test) and some small bookkeeping updates.
The big changes in src/shared/ are:
- Like all the other modules, background mixing now uses Mdiff and Tdiff instead of visc and diff
- In double diffusion mixing, you can now use the diffusive convection parameterization specified in either Marmorino and Caldwell 1976 [formerly the only option, now the default] or that of Kelley 1988. Just set diff_conv_type = "MC76" for the former and "K88" for the latter when initializing double diffusion.
Second minor update to v0.60 (v0.62)
Updates to shared code:
- Treat RICH < 0 like RICH = 0 for Pacanowski-Philander mixing (we already do this in the LMD shear mixing).
- Remove "no_diff" option for computing shear mixing coefficients
Updates to reg tests:
- Add PP test (recreate Figure 4 from their paper)
- Lots of clean up to shear testing directory and subroutine to account for additional test
- Improve cvmix_io routine for writing multiple columns of data at once
- A little bit of clean up in background and double diffusion driver routines
Minor update to v0.60 (v0.61)
Add max_nlev attribute to all the regression tests, switch flag for intel compiler from -fp-model precise to -fp-model source.
Major [interface-changing] update to beta version of CVMix
The low-level interfaces for computing diffusivity coefficients now require nlev (number of active levels) and max_nlev (size of arrays) as inputs. The CVMix data type stores nlev and max_nlev for each column, and both must be set before calling the wrapped interfaces for computing diffusivity coefficients.
Fifth minor update to first beta release (v0.55)
Bug fix: cvmix_coeffs_kpp_low no longer assumes old_Mdiff and Mdiff_out are the same length. (See issue #44)