This PR brings two changes in the CVMix module and Stokes drift module.
Support of bottom layer mixing through CVMix. The CVMix parameters for the bottom layer are separate from those in the surface layer. So an additional section of cvmix/bottom_layer is added in the YAML file. The original cvmix/surface_layer section is also adjusted to make it simple. So the cvmix/surface_layer section of old YAML configuration files need to be updated.
Require input of surface Stokes drift us0 and vs0 if Stokes drift is read from a file. This allows better representation of the Stokes drift shear near the surface. The Stokes drift profile usprof and vsprof are treated as the layer-averaged Stokes drift over the grid cell. Previously, if Stokes drift profile is read from a file, surface Stokes drift was simply taken as the value at the top cell, i.e., us0 = usprof(nlev). This underestimates the surface Stokes drift and may cause errors if surface Stokes drift is used in the model. This change does not affect the results of the KPP-based Langmuir turbulence parameterization currently implemented in CVMix since in those parameterizations the surface layer averaged Stokes drift is used rather than the surface value. But the waves/stokes_drift section of the YAML configuration file needs to be updated.
Also included in this PR is the fix to some bugs in the CVMix and Stokes drift modules, which didn't seem to cause any issues in my previous tests but may be problematic under certain conditions.
This PR brings two changes in the CVMix module and Stokes drift module.
cvmix/bottom_layer
is added in the YAML file. The originalcvmix/surface_layer
section is also adjusted to make it simple. So thecvmix/surface_layer
section of old YAML configuration files need to be updated.us0
andvs0
if Stokes drift is read from a file. This allows better representation of the Stokes drift shear near the surface. The Stokes drift profileusprof
andvsprof
are treated as the layer-averaged Stokes drift over the grid cell. Previously, if Stokes drift profile is read from a file, surface Stokes drift was simply taken as the value at the top cell, i.e.,us0 = usprof(nlev)
. This underestimates the surface Stokes drift and may cause errors if surface Stokes drift is used in the model. This change does not affect the results of the KPP-based Langmuir turbulence parameterization currently implemented in CVMix since in those parameterizations the surface layer averaged Stokes drift is used rather than the surface value. But thewaves/stokes_drift
section of the YAML configuration file needs to be updated.Also included in this PR is the fix to some bugs in the CVMix and Stokes drift modules, which didn't seem to cause any issues in my previous tests but may be problematic under certain conditions.