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

Guidance on Running with LME datasets with CESM2.1.3 (CLM5)

oleson

Keith Oleson
CSEG and Liaisons
Staff member
Unfortunately, we can't provide any specific answers since we don't have any experience with this type of workflow. Our suggestion is to experiment with a short sequence of simulations, e.g., just a few years for each segment, to see how the workflow should be implemented.
 

wvsi3w

wvsi3w
Member
Unfortunately, we can't provide any specific answers since we don't have any experience with this type of workflow. Our suggestion is to experiment with a short sequence of simulations, e.g., just a few years for each segment, to see how the workflow should be implemented.
Thank you Keith for your suggestion.

From 500 to 1850, it is better to use the I1850 compset, and then from 1850 onwards, using a transient compset like IHIST1850 is suggested.

So, because there is a need to change the compset from one point in time, it is better if I divide the simulation into two parts (at least):
from year 500 to 1850 (with I1850 compset that I use atm forcings from 500 to 1850). Then using IHIST1850 compset from 1850 onwards (setting the atm forcing accordingly).

But do you have a rough idea about the stream files? I mean is there another way of writing thousands of lines for the file names? I can definitely write it into the stream file but I was thinking maybe you know another way.
Because lets say I am doing the two parts simulation, then from 500 to 1850 my stream files will be like:

<filePath>
/home/USER/projects/def-xxx/USER/inputdata/atm/datm7/atm_forcing.datm7.GSWP3.0.5d.v1.c170516/Precip
</filePath>
<fileNames>
0500-01.nc
0500-02.nc
0500-03.nc
0500-04.nc
.
.
.
.
.
1850-11.nc
1850-12.nc


which is 16,200 lines of file names!
It is fine if this is the norm, but I thought maybe you guys know some other way for writing the names into the stream when it is a lot of files.
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
I think you could change the paths to your data by modifying:

cime/src/components/data_comps/datm/cime_config/namelist_definition_datm.xml

I think the list of file names would then be setup automatically by setting DATM_CLMNCEP_YR_START, DATM_CLMNCEP_YR_END.

The names would be different from yours, e.g., clmforc.GSWP3.c2011.0.5x0.5.Prec.1901-01.nc versus 1901-01.nc, but you could either change your names to match or link your files to those filenames.
 

wvsi3w

wvsi3w
Member
I think you could change the paths to your data by modifying:

cime/src/components/data_comps/datm/cime_config/namelist_definition_datm.xml

I think the list of file names would then be setup automatically by setting DATM_CLMNCEP_YR_START, DATM_CLMNCEP_YR_END.

The names would be different from yours, e.g., clmforc.GSWP3.c2011.0.5x0.5.Prec.1901-01.nc versus 1901-01.nc, but you could either change your names to match or link your files to those filenames.

Dear Keith, @oleson
Sorry, I have a question regarding the datm_in file.
In this thread related to the "1" in the user_datm*, you suggested changing that "1" to 1901, and the align issue got fixed. That person's problem is not my problem, but I found this thread because I want to specify something:

In my spin-up, which worked fine, this was my datm_in for IHIST compset (which I modified the years):

streams = "datm.streams.txt.CLMGSWP3v1.Solar 500 500 500",
"datm.streams.txt.CLMGSWP3v1.Precip 500 500 500",
"datm.streams.txt.CLMGSWP3v1.TPQW 500 500 500",
"datm.streams.txt.presaero.trans_1850-2000 1850 1850 1850",
"datm.streams.txt.topo.observed 1 1 1",
"datm.streams.txt.co2tseries.20tr 1850 1850 1850"
taxmode = "cycle", "cycle", "cycle", "cycle", "cycle", "cycle"

And this was for I1850 compset:

streams = "datm.streams.txt.CLMGSWP3v1.Solar 1 500 500",
"datm.streams.txt.CLMGSWP3v1.Precip 1 500 500",
"datm.streams.txt.CLMGSWP3v1.TPQW 1 500 500",
"datm.streams.txt.presaero.clim_1850 1 1850 1850",
"datm.streams.txt.topo.observed 1 1 1"
taxmode = "cycle", "cycle", "cycle", "cycle", "cycle"

I am assuming those 1s are the align in I1850 compset (?)

As this compset is better for having constant variables (such as urban, co2, etc) so I used I1850 in my last spin-up and it worked fine, all reached equilibrium.

I was setting up my transient run, and the start date is 500 and end is 1849, so what should I do with align here, do I leave it to be 1? Is the format below correct for the transient run?

streams = "datm.streams.txt.CLMGSWP3v1.Solar 1 500 1849",
"datm.streams.txt.CLMGSWP3v1.Precip 1 500 1849",
"datm.streams.txt.CLMGSWP3v1.TPQW 1 500 1849",
"datm.streams.txt.presaero.clim_1850 1 1850 1850",
"datm.streams.txt.topo.observed 1 1 1"
taxmode = "cycle", "cycle", "cycle", "cycle", "cycle"

Or should I change that 1 when we are in transient run from year 500 to 1849? However, since the first part of my transient run is from 500 to 1849 so I will have the constant values for CO2, aerosol, urban, fire, ... and only my forcings (Precip, Solar, TPHWL) are transient (from 500 to 1849).

Also, I think the taxmode part should be different? How about other parts of my datm_in (e.g. tintalgo, mapalgo, readmode, ...)?

P.S. will that align being "1" in the spin-up, affect the results of spin-up? should I redo it with "500 500 500"?
 

wvsi3w

wvsi3w
Member
Because I remember when we used IHIST compset the datm_in for the CO2 part and taxmode shows this:

"datm.streams.txt.co2tseries.20tr 1850 1850 2014"
taxmode = "cycle", "cycle", "cycle", "cycle", "cycle", "extend"

which means the co2 stream is "extend", and I thought since IHIST was a transient compset from 1850 onwards, then for all transients we should change the taxmode (and other things like tintalgo, ...?). But since my first part of transient is from 500-1849, then technically I wont have much transient except for the prescribed 7 variables (Precip, Solar, TPHWL).

you see what I mean?!
 

wvsi3w

wvsi3w
Member
Because I remember when we used IHIST compset the datm_in for the CO2 part and taxmode shows this:

"datm.streams.txt.co2tseries.20tr 1850 1850 2014"
taxmode = "cycle", "cycle", "cycle", "cycle", "cycle", "extend"

which means the co2 stream is "extend", and I thought since IHIST was a transient compset from 1850 onwards, then for all transients we should change the taxmode (and other things like tintalgo, ...?). But since my first part of transient is from 500-1849, then technically I wont have much transient except for the prescribed 7 variables (Precip, Solar, TPHWL).

you see what I mean?!
I believe the align part being 1, is the most important question here, and what does it mean when align is 1.

Because if I dont know what that "1" does, then I can not trust my spin-up results. Also, that would impact my understanding of the current transient run.

Thank you in advance for your support
 

wvsi3w

wvsi3w
Member
I believe the align part being 1, is the most important question here, and what does it mean when align is 1.

Because if I dont know what that "1" does, then I can not trust my spin-up results. Also, that would impact my understanding of the current transient run.

Thank you in advance for your support
Dear Keith (@oleson) and dear Sam (@slevis),

Based on this thread and other CESM documentation, I want to check my understanding about the role of the align value and taxmode in the datm streams:

This thread you mentioned that the align part sets which forcing year gets mapped to your simulation start year. And this link says, if you want model year 1850 to use forcing year 1901 (when you only have 1901–2010 data), you set align=1901, start=1901, end=1920, and cycle those years for the early part of the run. And when using I1850 (constant non-transient compset), we see the align value to be "1".

So, let me know if I am right:

Based on what I learned, this "1" means the first year in the forcing record (which is also likely 1 in a constant file, or just the only available year in a climatology). Because the forcing is the same every year (either one year, or a repeated climatological mean), the align value is essentially arbitrary—the model always uses the same forcing. The taxmode = cycle tells datm to repeat that year until the end date, so here the align value being "1" doesn't matter for my spindown simulation, and does not affect my results, because I am using only one year (500) in this non-transeint case (????)

Also, the taxmode = "cycle" for all of the streams in this non-transient one-year forcing case is making sense, because technically it is cycling over one year. But, the real question is what to do in terms of transient runs? When I want to do 500-1849, I have the forcings from 500 onwards, so for that I need to set these:
./xmlchange DATM_CLMNCEP_YR_ALIGN=500
./xmlchange DATM_CLMNCEP_YR_START=500
./xmlchange DATM_CLMNCEP_YR_END=1849

Am I right?

And, for a transient CO₂ stream, I guess I should set taxmode="extend" to hold the last value after the data ends. But for the main atmospheric streams (Precip, Solar, TPHWL), since I have a full time series covering 500–1849, it seems taxmode="cycle" is fine and won't cause any unwanted cycling?

If I should change the CO2 taxmode to extend, how about other taxmodes? Should I change them from cycle to extend as well?

I dont see why we should change them here because the start year is 500, and I have the forcing from that year onwards, so it shouldn't cycle through this period when technically we are asking to have a transient run and the start and end of it are clear.

Also, I saw "cycle" for taxmode in IHIST compset too, which means my assumption could be correct (?)

How about simulation from 1850 to 2000 (where I have all the forcing as well), should I set the taxmode cycle and xmls like this (?):
./xmlchange DATM_CLMNCEP_YR_ALIGN=1850
./xmlchange DATM_CLMNCEP_YR_START=1850
./xmlchange DATM_CLMNCEP_YR_END=2000

Thanks again for your clarification.
 

wvsi3w

wvsi3w
Member
I guess for your simulation 1850–2000, since the CO2 is using "fco2_datm_global_simyr_1750-2014_CMIP6_c180929.nc" which is from 1750-2014, then setting the taxmode to either cycle or extend works because taxmode = extend only for timeseries where the simulation exceeds the data range and if the simulations go past 2014 (the last year of CO₂ file), then we must set taxmode = extend for CO₂. This way, the model will continue to use the 2014 value for all future years. And because my simulation ends in 2000 then having taxmode =cycle is ok and doesnt matter. right?

And for the 500-1849 simulation it should be taxmode = cycle, right? because we are using constant value of CO2 280ppm for this period.
 

slevis

Moderator
Staff member
I guess for your simulation 1850–2000, since the CO2 is using "fco2_datm_global_simyr_1750-2014_CMIP6_c180929.nc" which is from 1750-2014, then setting the taxmode to either cycle or extend works because taxmode = extend only for timeseries where the simulation exceeds the data range and if the simulations go past 2014 (the last year of CO₂ file), then we must set taxmode = extend for CO₂. This way, the model will continue to use the 2014 value for all future years. And because my simulation ends in 2000 then having taxmode =cycle is ok and doesnt matter. right?

And for the 500-1849 simulation it should be taxmode = cycle, right? because we are using constant value of CO2 280ppm for this period.
Sounds correct.
 
Top