NCAR / LMWG_dev

Repository to track LMWG development simulations
3 stars 0 forks source link

CRUJRA(w/FLDS) + DERECHO + Sturm_vegMods + new SNICAR + SNICAR param changes w/xdrdt=5 (ctsm51_ctsm51d160_1deg_CRUJRA_FLDS_ABCDE_blk_A5BCD_1850AD) #48

Closed olyson closed 1 month ago

olyson commented 10 months ago

Description: Same as ctsm51_ctsm51d160_1deg_GSWP3V1_ABCDE_blk_A5BCD_1850AD but with CRUJRA forcing (w/CRUJRA FLDS) (issue #47 )


Case directory: Locally: /glade/work/oleson/ctsm5.1.dev160/cime/scripts/ctsm51_ctsm51d160_1deg_CRUJRA_FLDS_ABCDE_blk_A5BCD_1850AD


Sandbox: Locally: /glade/work/oleson/ctsm5.1.dev160


usernl changes:

user_nl_clm:

! Full output hist_nhtfrq = 0 hist_mfilt = 1 hist_empty_htapes = .false. hist_fincl1 = 'FSDSND','FSDSVD','FSDSNI','FSDSVI','RAIN_FROM_ATM','SNOW_FROM_ATM','FLDS_NOT_DOWNSCALED','ZBOT','Tair_from_atm','Thair_from_atm','QBOT_NOT_DOWNSCALED','PBOT_NOT_DOWNSCALED','Rho_from_atm','PCO2','UWIND','VWIND','BCPHIDRY','BCPHODRY','BCPHIWET','OCPHIDRY','OCPHODRY','OCPHIWET','DSTWET1','DSTDRY1','DSTWET2','DSTDRY2','DSTWET3','DSTDRY3','DSTWET4','DSTDRY4','ATM_TOPO'

!---------------------------------------------------------------------------------- ! Settings from cmip6_carbon_isotopes ! CAN ONLY USE THIS IF STARTING FROM AN INITIAL FILE THAT HAS ISOTOPES !----------------------------------------------------------------------------------

use_c13 = .true. use_c14 = .true. use_c13_timeseries = .true. use_c14_bombspike = .true. fsurdat = '/glade/campaign/cesm/cesmdata/cseg/inputdata/lnd/clm2/surfdata_esmf/ctsm5.2.0/surfdata_0.9x1.25_hist_78pfts_CMIP6_1850_c230517.nc' paramfile = '/glade/campaign/cgd/tss/people/oleson/modify_param/ctsm51_params.c231117.norevert.nc.ABCD_blk_A5BCD.nc' snicar_snobc_intmix = .true. snow_thermal_cond_method = 'Sturm1997' z0param_method = 'Meier2022'

user_nl_datm_streams (note "datafiles" strings have been shortened below)

CLMCRUNCEPv7.Solar:tintalgo = coszen
CLMCRUNCEPv7.Solar:mapalgo = bilinear
CLMCRUNCEPv7.Solar:taxmode = cycle
CLMCRUNCEPv7.Solar:datavars = FSDS_DIRECT Faxa_swdndr,FSDS_DIFFUSE Faxa_swdndf
CLMCRUNCEPv7.Solar:meshfile = /glade/campaign/cesm/cesmdata/cseg/inputdata/atm/datm7/atm_forcing.datm7.CRUJRA.0.5d.c2023/TRENDY_cdf5/lnd_mesh_cdf5.nc
CLMCRUNCEPv7.Solar:datafiles = /glade/campaign/cesm/cesmdata/cseg/inputdata/atm/datm7/atm_forcing.datm7.CRUJRA.0.5d.c2023/TRENDY_cdf5/clmforc.TRENDY.c2023_0.5x0.5.Solr.1901_cdf5.nc,...,/glade/campaign/cesm/cesmdata/cseg/inputdata/atm/datm7/atm_forcing.datm7.CRUJRA.0.5d.c2023/TRENDY_cdf5/clmforc.TRENDY.c2023_0.5x0.5.Solr.2022_cdf5.nc
CLMCRUNCEPv7.Precip:tintalgo = nearest
CLMCRUNCEPv7.Precip:mapalgo = bilinear
CLMCRUNCEPv7.Precip:taxmode = cycle
CLMCRUNCEPv7.Precip:datavars = PRECTmms Faxa_precn
CLMCRUNCEPv7.Precip:meshfile = /glade/campaign/cesm/cesmdata/cseg/inputdata/atm/datm7/atm_forcing.datm7.CRUJRA.0.5d.c2023/TRENDY_cdf5/lnd_mesh_cdf5.nc
CLMCRUNCEPv7.Precip:datafiles = /glade/campaign/cesm/cesmdata/cseg/inputdata/atm/datm7/atm_forcing.datm7.CRUJRA.0.5d.c2023/TRENDY_cdf5/clmforc.TRENDY.c2023_0.5x0.5.Prec.1901_cdf5.nc,...,/glade/campaign/cesm/cesmdata/cseg/inputdata/atm/datm7/atm_forcing.datm7.CRUJRA.0.5d.c2023/TRENDY_cdf5/clmforc.TRENDY.c2023_0.5x0.5.Prec.2022_cdf5.nc
CLMCRUNCEPv7.TPQW:tintalgo = linear
CLMCRUNCEPv7.TPQW:mapalgo = bilinear
CLMCRUNCEPv7.TPQW:taxmode = cycle
CLMCRUNCEPv7.TPQW:datavars = QBOT Sa_shum,PSRF Sa_pbot,TBOT Sa_tbot,WIND Sa_wind, FLDS Faxa_lwdn
CLMCRUNCEPv7.TPQW:meshfile = /glade/campaign/cesm/cesmdata/cseg/inputdata/atm/datm7/atm_forcing.datm7.CRUJRA.0.5d.c2023/TRENDY_cdf5/lnd_mesh_cdf5.nc
CLMCRUNCEPv7.TPQW:datafiles = /glade/campaign/cesm/cesmdata/cseg/inputdata/atm/datm7/atm_forcing.datm7.CRUJRA.0.5d.c2023/TRENDY_cdf5/clmforc.TRENDY.c2023_0.5x0.5.TPQWL.1901_cdf5.nc,...,/glade/campaign/cesm/cesmdata/cseg/inputdata/atm/datm7/atm_forcing.datm7.CRUJRA.0.5d.c2023/TRENDY_cdf5/clmforc.TRENDY.c2023_0.5x0.5.TPQWL.2022_cdf5.nc

SourceMods:

src.clm/atm2lndType.F90: Add some additional history fields src.clm/clm_varpar.F90: nlevurb=5 -> nlevurb=10 src.clm/surfrdMod.F90: Remove read of PFTDATA_MASK src.clm/Wateratm2lndType.F90: Add some additional history fields src.clm/CNPhenologyMod.F90 decreasing temperature thresholds to -3C, reducing the minimum critical daylength by 25%, doubling the snow threshold src.clm/controlMod.F90 remove error associated with snicar_snobc_intmix src.clm/SnowSnicarMod.F90 set flg_snoage_scl to .true. so that xdrdt change takes effect


Diagnostics:

https://webext.cgd.ucar.edu/I1850/ctsm51_ctsm51d160_1deg_CRUJRA_FLDS_ABCDE_blk_A5BCD_1850AD/lnd/ctsm51_ctsm51d160_1deg_CRUJRA_FLDS_ABCDE_blk_A5BCD_1850AD_471_480-ctsm51_ctsm51d160_1deg_GSWP3V1_ABCDE_blk_A5BCD_1850AD_311_320/setsIndex.html


Output: Output (if still available): /glade/derecho/scratch/oleson/archive/ctsm51_ctsm51d160_1deg_CRUJRA_FLDS_ABCDE_blk_A5BCD_1850AD/


Contacts: @olyson @wwieder


Extra details: I've designated this combination simulation as ABCDE_blk_A5BCD, where the first ABCDE is: A - SturmSnowtk (implemented via namelist snow_thermal_cond_method = 'Sturm1997') B - decidphenotrig (implemented via src.clm/CNPhenologyMod.F90) C - frootleaf (implemented via ctsm51_params.c231117.norevert.nc.ABCD_blk_A5BCD.nc) D - FUNfracfixers (implemented via ctsm51_params.c2311117.norevert.nc.ABCD_blk_A5BCD.nc) E - new SNICAR (on by default) blk - snicar_snobc_intmix = .true. (implemented via namelist, per Issue #36 ) and the next A5BCD is (per Issue #36 ) A5 - xdrdt = 5 (implemented via ctsm51_params.c231117.norevert.nc.ABCD_blk_A5BCD.nc and takes effect by code change to SnowSnicarMod.F90) B - scvng_fct_mlt_sf = 0.5 (implemented via ctsm51_params.c2311117.norevert.nc.ABCD_blk_A5BCD.nc) C - snw_rds_refrz = 1500 (implemented via ctsm51_params.c231117.norevert.nc.ABCD_blk_A5BCD.nc) D - fresh_snw_rds_max = 400._r8 (implemented via ctsm51_params.c231117.norevert.nc.ABCD_blk_A5BCD.nc)

See discussion in https://github.com/NCAR/LMWG_dev/discussions/3 AD spunup to 2.89% disequilibrium, 480 years pAD spunup to X.XX% disequilibrium, X years

wwieder commented 9 months ago

I'm kind of assuming that a variant on this simulation should be our new baseline for CLM6 calibration? What do other's think?

@olyson it it worth opening a PR so that all the source mods you had to use in this simulation are in the main code? One exception would be the changes to CNPhenology, as I'm less sure we want to use these yet?

olyson commented 9 months ago

I guess a draft PR is in order. Aside from the changes to CNPhenology, this would encompass the code change that fixes https://github.com/ESCOMP/CTSM/issues/2298, a change to controlMod.F90 that eliminates the experimental warning for snicar_snobc_intmix, a new parameter file, and setting snicar_snobc_intmix=.true. and snow_thermal_cond_method = 'Sturm1997' by default. Meier2022 is already default on in the new code. Does that sound right?

wwieder commented 9 months ago

I think that sounds right. we should maybe talk about what would be appropriate on the default parameter file? This is maybe less critical than the code changes that also have to come in?

olyson commented 9 months ago

These are the differences from the current default file:

(0) diff: 0.75 (0) pft: 11 (0) FUN_fracfixers ABCD_blk_A5BCD Norevert: 1 ctsm5.1.dev166 Default: 0.25 (0) pftnum: 12 (0) DIFF (0) diff: 0.75 (0) pft: 12 (0) FUN_fracfixers ABCD_blk_A5BCD Norevert: 1 ctsm5.1.dev166 Default: 0.25

(0) diff: 0.3 (0) pft: 11 (0) froot_leaf ABCD_blk_A5BCD Norevert: 1.2 ctsm5.1.dev166 Default: 1.5 (0) pftnum: 12 (0) DIFF (0) diff: 0.3 (0) pft: 12 (0) froot_leaf ABCD_blk_A5BCD Norevert: 1.2 ctsm5.1.dev166 Default: 1.5

(0) diff: 0.5 (0) scvng_fct_mlt_sf ABCD_blk_A5BCD Norevert: 0.5 ctsm5.1.dev166 Default: 1

(0) diff: 500 (0) snw_rds_refrz ABCD_blk_A5BCD Norevert: 1500 ctsm5.1.dev166 Default: 1000

(0) diff: 195.474 (0) fresh_snw_rds_max ABCD_blk_A5BCD Norevert: 400 ctsm5.1.dev166 Default: 204.526

(0) diff: 4 (0) xdrdt ABCD_blk_A5BCD Norevert: 5 ctsm5.1.dev166 Default: 1