Skip to content

Initial WIEMIP usermods#3950

Draft
wwieder wants to merge 5 commits intoESCOMP:wetlandsfrom
wwieder:wetlands_usermods
Draft

Initial WIEMIP usermods#3950
wwieder wants to merge 5 commits intoESCOMP:wetlandsfrom
wwieder:wetlands_usermods

Conversation

@wwieder
Copy link
Copy Markdown
Contributor

@wwieder wwieder commented Apr 23, 2026

Initial draft of usermods I'm using in WIEMIP spinups (currently for AD, only)

@wwieder wwieder added the enhancement new capability or improved behavior of existing capability label Apr 23, 2026
@wwieder wwieder changed the title initial wiemip usermods Initial WIEMIP usermods Apr 23, 2026
@wwieder
Copy link
Copy Markdown
Contributor Author

wwieder commented Apr 28, 2026

@lawrencepj1 can you suggest additional history output we need for WIEMIP simulations?

@swensosc the list of variables I have for hillslope output is below. Does this seem appropriate?

!!! extra history from Sean's wiemip test case

hist_nhtfrq = 0,0
hist_mfilt = 1,1
hist_dov2xy = .true., .false.

! average to column level for vector output
hist_type1d_pertape = 'GRID','COLS'

hist_fincl1 = 'STREAM_WATER_DEPTH','STREAM_WATER_VOLUME','FROST_TABLE'

hist_fincl2 = 'H2OSFC','H2OSNO','ZWT','ZWT_PERCH','FROST_TABLE',
'TWS','SOILLIQ','SOILICE','FSNO','FH2OSFC','ALT','QFLOOD','QLATFLOWOUT',
'QDRAI','QOVER','QVEGT','QVEGE','QSOIL','TSOI','FINUNDATED',
'CH4_SURF_DIFF_SAT','CH4_SURF_DIFF_UNSAT','CH4_EBUL_TOTAL_SAT',
'CH4_EBUL_TOTAL_UNSAT','CH4_SURF_EBUL_SAT','CH4_SURF_EBUL_UNSAT',
'CH4_SURF_AERE_SAT','CH4_SURF_AERE_UNSAT','TOTCOLCH4','CONC_CH4_SAT',
'CONC_CH4_UNSAT','CH4_PROD_COL','CH4_OXID_COL'

@swensosc
Copy link
Copy Markdown
Contributor

swensosc commented Apr 28, 2026 via email

@lawrencepj1
Copy link
Copy Markdown

Hi @wwieder and @swensosc

This is directly from Adrianna's user_nl_clm files used for TRENDY 2025 S3 (full transient) simulation:

hist_mfilt = 1,1,1
hist_nhtfrq = 0,0,-24

! monthly global gridded
hist_fincl1 = 'AR', 'COL_FIRE_CLOSS', 'CROPPROD1C_LOSS', 'CWD_C', 'CWD_C_TO_LIT_CEL_C',
'CWD_C_TO_LIT_LIG_C', 'DEADCROOTC', 'DEADCROOTC_STORAGE', 'DEADCROOTC_XFER',
'DEADCROOTN_STORAGE', 'DEADCROOTN_XFER', 'DEADSTEMN_STORAGE', 'DEADSTEMN_XFER',
'LIVECROOTN_STORAGE', 'LIVECROOTN_XFER', 'LIVESTEMN_STORAGE', 'LIVESTEMN_XFER',
'DEADCROOTN', 'DEADSTEMN', 'DENIT', 'DWT_CONV_CFLUX', 'F_N2O_DENIT',
'F_N2O_NIT', 'FAREA_BURNED', 'FFIX_TO_SMINN', 'FROOTC', 'FROOTC_STORAGE',
'FROOTC_TO_LITTER', 'FROOTC_XFER', 'FROOTN', 'FSDS', 'GPP', 'HR', 'H2OSNO',
'FSR', 'FGEV', 'FCTR', 'FSRNI', 'FSRVI', 'FSDSNI', 'FSDSVI', 'FSH',
'FLDS', 'FIRE',
'LEAFC', 'LEAFC_STORAGE', 'LEAFC_TO_LITTER', 'LEAFC_XFER', 'LEAFN',
'LEAFN_STORAGE', 'LEAFN_XFER', 'LIT_CEL_C_TO_SOM_ACT_C',
'LIT_LIG_C_TO_SOM_SLO_C', 'LIT_MET_C_TO_SOM_ACT_C', 'LITFALL', 'LITFIRE',
'LIVECROOTC', 'LIVECROOTC_STORAGE', 'LIVECROOTC_XFER', 'LIVECROOTN',
'LIVESTEMN', 'M_DEADROOTC_STORAGE_TO_FIRE', 'M_DEADROOTC_TO_FIRE',
'M_DEADROOTC_XFER_TO_FIRE', 'M_DEADSTEMC_STORAGE_TO_FIRE',
'M_DEADSTEMC_TO_FIRE', 'M_DEADSTEMC_XFER_TO_FIRE',
'M_FROOTC_STORAGE_TO_FIRE', 'M_FROOTC_TO_FIRE', 'M_FROOTC_XFER_TO_FIRE',
'M_GRESP_STORAGE_TO_FIRE', 'M_GRESP_XFER_TO_FIRE', 'M_LEAFC_STORAGE_TO_FIRE',
'M_LEAFC_TO_FIRE', 'M_LEAFC_XFER_TO_FIRE', 'M_LIVEROOTC_STORAGE_TO_FIRE',
'M_LIVEROOTC_TO_FIRE', 'M_LIVEROOTC_XFER_TO_FIRE',
'M_LIVESTEMC_STORAGE_TO_FIRE', 'M_LIVESTEMC_TO_FIRE',
'M_LIVESTEMC_XFER_TO_FIRE', 'NBP', 'NDEP_TO_SMINN', 'NET_NMIN', 'NFIX',
'NPP', 'QRUNOFF', 'QSOIL', 'QVEGE', 'QVEGT', 'RAIN', 'RR', 'QIRRIG_DRIP',
'SMIN_NO3_LEACHED', 'SMIN_NO3_RUNOFF', 'SMINN', 'SMINN_TO_PLANT', 'SNOW',
'SOILICE', 'SOILLIQ', 'SOM_ACT_C', 'SOM_ACT_C_1m', 'SOM_ACT_C_TO_SOM_PAS_C',
'SOM_ACT_C_TO_SOM_SLO_C', 'SOM_PAS_C', 'SOM_PAS_C_1m',
'SOM_PAS_C_TO_SOM_ACT_C', 'SOM_SLO_C', 'SOM_SLO_C_1m',
'SOM_SLO_C_TO_SOM_ACT_C', 'SOM_SLO_C_TO_SOM_PAS_C', 'SOMC_FIRE', 'SOMFIRE',
'TLAI', 'TOT_WOODPRODC', 'TOT_WOODPRODC_LOSS', 'TOT_WOODPRODN', 'TOTLITC',
'TOTLITN', 'TOTSOILICE', 'TOTSOILLIQ', 'TOTSOMC', 'TOTSOMN', 'TOTVEGC',
'TOTVEGN', 'TSA', 'TSOI', 'WOODC',
'FROOTN_STORAGE', 'FROOTN_XFER', "FSRND", "FSRVD", "FSDSND", "FSDSVD"

! monthly pft
hist_fincl2 = 'AGNPP', 'FCEV', 'FCTR', 'FGEV', 'FIRE', 'FLDS', 'FROOTC_ALLOC', 'FSDS', 'FSDSND',
'FSDSNI', 'FSDSVD', 'FSDSVI', 'FSH', 'FSR', 'FSRND', 'FSRNI', 'FSRVD',
'FSRVI', 'GPP', 'HR', 'HTOP', 'LEAFC_ALLOC', 'NPP', 'QIRRIG_DRIP', 'TLAI',
'TOTVEGC', 'TV', 'WOODC_ALLOC', 'GRAINC_TO_FOOD', 'QVEGE', 'QVEGT', 'QSOIL',
'Rnet'

! daily global gridded
hist_fincl3 = 'TLAI'

hist_dov2xy = .true., .false., .true.

@lawrencepj1
Copy link
Copy Markdown

@wwieder

Can you point me to the default history files being produced in your flat spin up?

Thanks
Peter

@slevis-lmwg slevis-lmwg moved this to In progress - release/externals / MOSART / RTM / mizu etc. tags in CTSM: Upcoming tags Apr 28, 2026
@wwieder
Copy link
Copy Markdown
Contributor Author

wwieder commented Apr 29, 2026

@lawrencepj1, sample default h0 files available are here:
/glade/derecho/scratch/wwieder/archive/wetlands.n03.ctsm5.4.029_f09noCrop_HH_165_testCTRL

@wwieder
Copy link
Copy Markdown
Contributor Author

wwieder commented Apr 30, 2026

@slevis-lmwg noted in this comment. I'm migrating this thread to the CTSM-side PR here.

@wwieder I noticed the following (may or may not be of concern):

  1. In BGC and RAD, should co2 align be 1850 and last be 1869 or 2000?
co2tseries.cmip6_20tr:year_first=1850
co2tseries.cmip6_20tr:year_last=1850
co2tseries.cmip6_20tr:year_align=1
  1. I have one or two more comments but glade has frozen on me... Adding now:
    Two paramfiles and two hillslope files appear in user_nl_clm. Which one of each is correct?

  2. We may have already discussed the topic of transient vs. fixed ndep, and we decided that fixed made more sense? In any case, that's what you're using.

@wwieder
Copy link
Copy Markdown
Contributor Author

wwieder commented Apr 30, 2026

Thanks for looking at these, Sam.

I'm constantly baffled by year_align. Can you help me on this?

CO2 year_last should be:

  • 2000 for BGC (where we cycle climate 1850-1869) and
  • 1850 for RAD (constant CO2, but time evolving climate).

@olyson
Copy link
Copy Markdown
Contributor

olyson commented Apr 30, 2026

@wwieder I think you had a question about the urbantv streams (not sure where the question was but I'm posting here). Currently, the urbantv streams are just a way to turn off air conditioning (AC) in the 1850-1949 part of the transient. For 1950-2100 AC is on but the values of the variables on the file are the same for every year.
For an 1850 spinup the settings should show up explicitly in the namelist as:

stream_year_first_urbantv = 1850
stream_year_last_urbantv = 1850

AC will thus be off.
For a historical the settings should show up explicitly in the namelist as:

model_year_align_urbantv = 1850
stream_year_first_urbantv = 1850
stream_year_last_urbantv = 2106

Happy to talk about what settings might be appropriate for your particular simulations.

@slevis-lmwg
Copy link
Copy Markdown
Contributor

@wwieder I added a couple more comments to my post above for you to look at.

Regarding year_align, it confused me, too, for a while. Now I think it's simpler than it appears:

  • year_first and last give the range of stream data to use in the simulation
  • year_align represents the simulation year that you want aligned with the data in year_first, and it really just matters most in transient cases; examples:
  1. In transient simulations from 1850 to 1920 where we cycle stream data from 1901 to 1920, the most intuitive year_align = 1901 because I want the same data year as model year. For the sake of argument, you could less intuitively offset year_align by 20 yrs (1881, 1921, etc.), and you would have the same outcome.
  2. In 1850 simulations that start with model year 1 and cycle stream data from 1901 to 1920, year_align doesn't really matter. If you set it to 1, then the model will align the first year of stream data (1901) with the first year of the simulation (1).
  3. A workflow that would likely still confuse me is Peter Thornton's. His logic makes sense, but I do not think that we do this anymore. Peter wanted the stream data at the end of AD to line up with the stream data at the beginning of postAD and similarly the stream data at the end of postAD to line up with the stream data at the beginning of the next simulation, and so forth. In other words if AD ended with stream data year 1907, then I should make sure to start postAD with stream data year 1908. I sometimes spent hours trying to figure out how things would line up correctly...

@wwieder
Copy link
Copy Markdown
Contributor Author

wwieder commented May 1, 2026

@lawrencepj1, sorry to nag, but have you made any progress on going through the WIEMIP data request to make sure we're writing out the history needed form the experiments? (if it's easier, see also #3949)

@wwieder wwieder mentioned this pull request May 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement new capability or improved behavior of existing capability

Projects

Status: In progress - release/externals / MOSART / RTM / mizu etc. tags
Status: Todo

Development

Successfully merging this pull request may close these issues.

5 participants