Langmuir turbulence induced entrainment #31
Conversation
|
It looks like the PR as it stands is keeping the default |
mnlevy1981
left a comment
There was a problem hiding this comment.
Thanks for cleaning up so much whitespace!
I think getting the default values of langmuir_opt right in the XML file (and aborting in the Fortran if an invalid value is used) are important. I'm less concerned about c10000 vs bignum or bringing in the CVMix tag that uses CMake.
mnlevy1981
left a comment
There was a problem hiding this comment.
I think it's important to include langmuir_opt in the error message; the comment about using -1 for LASL was just an aside, only make that change if you think it's a reasonable thing to do.
source/vmix_kpp.F90
Outdated
| call exit_POP(sigAbort, & | ||
| 'ERROR: Unknown option for Langmuir turbulence parameterization') |
There was a problem hiding this comment.
Could you include the value of langmuir_opt in the error message? I think something like
write(string, "(3A)") "Error: '", trim(langmuir_opt), "' is not a valid option for Langmuir turbulence parameterization"
call exit_POP(sigAbort, string)
Since we use string to stage some tavg long_names
drivers/mct/ocn_import_export.F90
Outdated
| WORKB(i,j ) = x2o(index_x2o_Sw_hstokes,n) | ||
| LASL(i,j,iblock) = WORKB(i,j)*RCALCT(i,j,iblock) | ||
| else | ||
| LASL(i,j,iblock) = bignum |
There was a problem hiding this comment.
I know I recommended bignum instead of c10000, but if LASL must be positive (per vmix_kpp.F90#L2509), does it make more sense to set LASL(i, j, iblock) = -c1 here instead of using bignum?
There was a problem hiding this comment.
Yes, this is better. Then I will not need to check IFRAC again in
Line 2509 in b029469
I will do that. Thanks.
drivers/nuopc/ocn_import_export.F90
Outdated
| where (IFRAC <= 0.05_r8) | ||
| LASL(:,:,:) = work1 * RCALCT(:,:,:) ! surface layer Lanmguir number (unitless) | ||
| elsewhere | ||
| LASL(:,:,:) = bignum |
There was a problem hiding this comment.
Same as above, maybe LASL(:,:,:) = -c1?
…ntrol of invalid values for LaSL
alperaltuntas
left a comment
There was a problem hiding this comment.
testing: aux_pop.cheyenne_intel. answer changes
Description of changes:
This pull request enables the parameterization of Langmuir turbulence induced entrainment by Li and Fox-Kemper (2017) via CVMix. It includes the following changes:
LaSLfrom WAVEWATCH III for Langmuir induced entrainment.Testing:
Test case/suite: See below
Test status: climate changing
Fixes [POP2 Github issue #]: N/A
User interface (namelist or namelist defaults) changes?
langmuir_opt = 'lf17'in POP's namelist.I have tested these change in the following two steps using a JRA55-do forced G-case in CESM (tag cesm2_2_beta04) running for 60 years (looking at mean mixed layer depth of the last 30 years). Here the control run is using default values for the namelist. Testing with a longer simulation is underway.
langmuir_opt = 'vr12-ma')langmuir_opt = 'lf17')The first step is not bit-for-bit, as described in this PR. But it gives essentially the same mean climate, with small changes in some coastal regions where the boundary layer is very shallow. See the figure below. It's likely due to changes in the order of some operations in CVMix introduced in v0.94b-beta. Note that the panels below plot the summer/winter mean mixed layer depth in both hemispheres together, as in Li and Fox-Kemper (2017).

The second step is climate changing, making the mixed layer deeper in the extratropical regions, as expected in Li and Fox-Kemper (2017). Note the different scale in the color bar of the percentage changes.
