Introduce namelist option for thermal conductivity of snow: Jordan vs. Sturm#2148
Introduce namelist option for thermal conductivity of snow: Jordan vs. Sturm#2148AdrienDams wants to merge 7 commits intoESCOMP:masterfrom
Conversation
wwieder
left a comment
There was a problem hiding this comment.
Thanks for contributing this @AdrienDams we're investigating the impact of the change to arctic soil temperatures and productivity now.
Assuming the results seem promising, I suggest we add Jordan vs. Sturm namelist options for calculating snow thermal conductivity thk. Updates for Sturm will also need to be added to the technote (e.q. 2.6.85)
| if (snl(c)+1 < 1 .AND. (j >= snl(c)+1) .AND. (j <= 0)) then | ||
| bw(c,j) = (h2osoi_ice(c,j)+h2osoi_liq(c,j))/(frac_sno(c)*dz(c,j)) | ||
| thk(c,j) = tkair + (7.75e-5_r8 *bw(c,j) + 1.105e-6_r8*bw(c,j)*bw(c,j))*(tkice-tkair) | ||
| bw(c,j) = ((h2osoi_ice(c,j)*1)+h2osoi_liq(c,j))/(frac_sno(c)*dz(c,j)) ! ==RHOS |
There was a problem hiding this comment.
This line is actually is the same for both approaches.
There was a problem hiding this comment.
Returning line 740 to the original. Is the comment at the end ==RHOS helpful to keep?
| ! the algorithm of Johansen (as reported by Farouki 1981), and the | ||
| ! conductivity of snow is from the formulation used in | ||
| ! SNTHERM (Jordan 1991). | ||
| ! Sturm (1997). |
There was a problem hiding this comment.
Why is there so much documentation in the code itself here? If we keep all the notes (here and below) snow conductivity should reference both Jordan and Sturm papers.
There was a problem hiding this comment.
Half of the notes here and below are about the thermal conductivity of soil, so I will keep them and reference both papers.
| thk(c,j) = tkair + (7.75e-5_r8 *bw(c,j) + 1.105e-6_r8*bw(c,j)*bw(c,j))*(tkice-tkair) | ||
| bw(c,j) = ((h2osoi_ice(c,j)*1)+h2osoi_liq(c,j))/(frac_sno(c)*dz(c,j)) ! ==RHOS | ||
| ! thk(c,j) = tkair + (7.75e-5_r8 *bw(c,j) + 1.105e-6_r8*bw(c,j)*bw(c,j))*(tkice-tkair) ! Original (Jordan) Parameterisation | ||
| if (bw(c,j) <= 156) then !LMW or 0.156 ? |
There was a problem hiding this comment.
Here is where I think we'll want to use a namelist option to chose between Jornand and Sturm formulations for thk
|
Thanks for your presentation yesterday @AdrienDams. Given results from your presentation and tests done by @olyson and @slevis-lmwg it seems like we should bring this in as a namelist option to let users chose between Jordan and Sturm snow conductivity formulations. Adrien, can you add Keith and Sam as collaborators to your github PR so they can work on this PR and bring it to main? |
|
Notes to self:
|
| ! select case (thermal_cond_snow) | ||
| ! case ('Jordan1991') | ||
| ! thk(c,j) = tkair + (7.75e-5_r8 *bw(c,j) + 1.105e-6_r8*bw(c,j)*bw(c,j))*(tkice-tkair) | ||
| ! case ('Sturm1997') |
There was a problem hiding this comment.
@wwieder
I wanted to make sure I had the default value correct... Are we keeping Jordan1991 as default or changing it to Sturm1997?
There was a problem hiding this comment.
...and maybe the right answer is Jordan1991 for now to get bfb same answers and we change the default later in an answer changing tag.
|
Test-suites
|
Add GRAINN outputs In response to a user request for GRAINN_TO_FOOD outputs, this adds *_N_TO_FOOD(_ANN) and *_N_TO_SEED(_ANN) outputs for reproductive N pools. These are off by default, unlike their C counterparts. Note that the results are not scientifically supported, and tests have revealed unrealistic values. (Also adds GRAINC_TO_SEED_ANN output.)
|
Labeled as bfb because I made Jordan1991 the default option. |
This PR implements @AdrienDams snow thermal conductivity fixes in CLM5. > Damseaux, A., Matthes, H., Dutch, V. R., Wake, L., and Rutter, N.: **Impact of snow thermal conductivity schemes on pan-Arctic permafrost dynamics in the Community Land Model version 5.0**, The Cryosphere, 19, 1539–1558, https://doi.org/10.5194/tc-19-1539-2025, 2025. ## New namelist parameters in `lnd_in` These fixes allow changing the snow thermal conductivity per land unit type. New namelist switches must be added in the `lnd_in` with defaults set to [CLM6 defaults](https://github.com/ESCOMP/CTSM/blob/9f5c3602f9efea2ade07a8f5dcf9eb2b0425d540/bld/namelist_files/namelist_defaults_ctsm.xml#L576-L583). ```fortran &clm_inparm snow_thermal_cond_method = 'Sturm1997' snow_thermal_cond_glc_method = 'Sturm1997' snow_thermal_cond_lake_method = 'Jordan1991' ``` For reference the namelist parameters reproducing the **old defaults** ```fortran &clm_inparm snow_thermal_cond_method = 'Jordan1991' snow_thermal_cond_glc_method = 'Jordan1991' snow_thermal_cond_lake_method = 'Jordan1991' ``` ## Code changes Changes were based from these upstream PRs: - ESCOMP/CTSM#2148 - ESCOMP/CTSM#3072
Description of changes
We have replaced the snow thermal conductivity calculations from Jordan (1991) with Sturm et al. (1997) discussed here and described for single point runs by Dutch et al 2022.
Specific notes
Contributors: Victoria Dutch, Leanne Wake
Testing in progress here