Scheduled Downtime
On Tuesday 24 October 2023 @ 5pm MT the forums will be in read only mode in preparation for the downtime. On Wednesday 25 October 2023 @ 5am MT, this website will be down for maintenance and expected to return online later in the morning.
Normal Operations
The forums are back online with normal operations. If you notice any issues or errors related to the forums, please reach out to help@ucar.edu

Questions about Spin-Up Procedure Using Official CLM5BGCCrop Initial Conditions

Joanna Liu

Zehui Liu
New Member
Hi all,
I’m using the CLM5BGCCrop compset within CESM2_3_beta17 (CTSM5.2 tag) and also testing in CESM3_0_beta05 (CTSM5.3 tag). After going through Section 1.5.5 of the CLM User Guide and reading related forum posts, I still have a few questions about the proper spin-up procedure.
My current setup:
I'm using an official initial condition file from NCAR, which, as mentioned in forum discussions, should be already spun-up. For example:
I want to confirm whether this initial file is truly spun up.
To test its spin-up status, I ran the I2000Clm50BgcCrop compset in CESM2_3_beta17 using default settings (i.e., no code modifications), with:
· Default RUN_STARTDATE = "2000-01-01"
· Simulation length: ~10 years
· Using my own matlab code or SpinupStability.ncl to check spin-up status
Results:
(0) EQUILIBRIUM SUMMARY
(0) =======================================================================
(0) FATAL: TOTECOSYSC is NOT in equilibrium
(0) FATAL: TOTSOMC is NOT in equilibrium
(0) FATAL: TOTVEGC is NOT in equilibrium
(0) TLAI is in equilibrium. Eq. Yr. = 2006
(0) FATAL: GPP is NOT in equilibrium
(0) TWS is in equilibrium. Eq. Yr. = 2006
(0) H2OSNO is in equilibrium. Eq. Yr. = 2006
(0) FATAL: Not enough of the land surface is in equilibrium ( 80.18% > 3.00%)
(0) FATAL: Your simulation is not in equilibrium, 8 hours have been deducted from your PTO bank, try again

1744059686539.png
Soil moisture appeared stable, but carbon pools were not, which made me wonder if I had missed anything in the setup.

My questions:
1. Is this a valid approach to test whether an initial condition file is truly spun-up?
2. If I want to further spin up from this initial condition file, what’s the recommended approach? Specifically:
· Should I set RUN_STARTDATE = 0001-01-01?
· Should I enable CLM_BLDNML_OPTS="-bgc_spinup on" -append or set clm_accelerated_spinup='on'?
3. In SpinupStability.ncl, what exactly does the subper variable control? I set it to 1, assuming the I2000 configuration represents one-year cyclic forcing. Is that correct?
4. If I plan to use this I2000-based spun-up initial condition in a different compset (e.g., F2000), can I directly reuse it? Or do I need to re-spin-up within the F2000 compset? If so, is the spin-up process for F2000 the same as for I2000? And how many years does it usually take?

Any clarification or suggestions would be greatly appreciated! Thanks in advance.
Best,
Zehui
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
1. I'm not sure about the provenance of that file but the case title indicates that it was probably interpolated from another initial file using this test LII_D_Ld3_PS.f19_g17.I2000Clm50BgcCrop.derecho_intel.clm-default. So it's probably only going to be spunup for the exact code base and model options that it was derived from.
2. Setting RUN_STARTDATE to 0001-01-01 is fine. Use ./xmlchange CLM_ACCELERATED_SPINUP=on. This will give you an "AD" spinup case (accelerated decomposition). Then use the restart file from the end of that run to do a post-AD spinup (with CLM_ACCELERATED_SPINUP=off).
3. subper should be set to the number of years of atm forcing you are cycling over.
4. You can use the spunup file in an F2000 compset, but be aware that the coupled model climate will be different from the datm climate you've used to spinup so there will be some adjustment time. The adjustment time you use will be a function of what variables you really want to be spunup and practical considerations like computational time. You could also use the initial file that comes out of the box for an F2000 case and do some additional spinup in the F2000 configuration. How long is going to depend on what kind of changes you make to the model and again what variables you want to be spunup.
 

Joanna Liu

Zehui Liu
New Member
1. I'm not sure about the provenance of that file but the case title indicates that it was probably interpolated from another initial file using this test LII_D_Ld3_PS.f19_g17.I2000Clm50BgcCrop.derecho_intel.clm-default. So it's probably only going to be spunup for the exact code base and model options that it was derived from.
2. Setting RUN_STARTDATE to 0001-01-01 is fine. Use ./xmlchange CLM_ACCELERATED_SPINUP=on. This will give you an "AD" spinup case (accelerated decomposition). Then use the restart file from the end of that run to do a post-AD spinup (with CLM_ACCELERATED_SPINUP=off).
3. subper should be set to the number of years of atm forcing you are cycling over.
4. You can use the spunup file in an F2000 compset, but be aware that the coupled model climate will be different from the datm climate you've used to spinup so there will be some adjustment time. The adjustment time you use will be a function of what variables you really want to be spunup and practical considerations like computational time. You could also use the initial file that comes out of the box for an F2000 case and do some additional spinup in the F2000 configuration. How long is going to depend on what kind of changes you make to the model and again what variables you want to be spunup.
Hi Keith,
Thanks for the clarification! I’m still a bit confused about how to set subper correctly. I initially thought that for compsets like I1850 or I2000, where a single year of atmospheric forcing is used repeatedly, subper should always be set to 1. However, I noticed that the default value in the SpinupStability.ncl script is set to 20, which made me unsure.
Could you kindly provide an example of how setting subper=20 would be appropriate?
For example, would this apply when using a compset like IHistClm50BgcCrop with transient atmospheric forcing from 2000 to 2019?
Thanks again for your help!
Best, Zehui
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
The default settings for I1850 and I2000 are 20 years atmospheric forcing, at least for release-cesm2.1.5. For example, using the compset I2000Clm50BgcCrop, I get:

./xmlquery DATM_CLMNCEP_YR_START
DATM_CLMNCEP_YR_START: 1991

./xmlquery DATM_CLMNCEP_YR_END
DATM_CLMNCEP_YR_END: 2010

I get the same thing for cesm2_3_beta17 (the variables have changed here and are DATM_YR_START and DATM_YR_END).
Do you get something different?
 

Joanna Liu

Zehui Liu
New Member
The default settings for I1850 and I2000 are 20 years atmospheric forcing, at least for release-cesm2.1.5. For example, using the compset I2000Clm50BgcCrop, I get:

./xmlquery DATM_CLMNCEP_YR_START
DATM_CLMNCEP_YR_START: 1991

./xmlquery DATM_CLMNCEP_YR_END
DATM_CLMNCEP_YR_END: 2010

I get the same thing for cesm2_3_beta17 (the variables have changed here and are DATM_YR_START and DATM_YR_END).
Do you get something different?
I see now that I didn’t double-check the DATM_YR_START and DATM_YR_END settings in my case.
This means that I’ll need to run at least 20 years for the continuing spin-up since I noticed that subper is used in the denominator in the SpinupStability.ncl script. When I ran for only 10 years but still set subper = 20, I got the following error:
fatal:conform_dims: the dimensions sizes of the second argument do not match those indicated by the third argument.
Best,
Zehui
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
You'll need at least 3 cycles of atmospheric forcing data plus one year. For a 20 year cycle, the script will look at year 1, year 21, year 41.
 
Top