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

ERROR about taxmode

Zh Chen

chen
New Member
Dear Professor
I am using CLM4.5(CESM1.2.2) and CLM5.0(CESM2.1.3). I use my own atmosphere data(2015.7.1-2016.9.30) to force CLM4.5 for a single point simulation. And I want to spin up with my own atmosphere data, and plan to run 10 years in SP mode with repeating using one year data(2015.7.1-2016.6.30). do the following:

./xmlchange STOP_OPTION=nyears
./xmlchange STOP_N=10
./xmlchange RUN_STARTDATE=2015-07-01
./xmlchange DATM_CLMNCEP_YR_START=2015
./xmlchange DATM_CLMNCEP_YR_END=2016
./xmlchange DATM_CLMNCEP_YR_ALIGN = 1

It's successful(restart file is 1x1_XDT_1.clm2.r.2025-07-01-00000.nc).

However, I read the ug

taxmode is the time axis mode. For CLM we usually have it set to cycle which means that once the end of the data is reached it will start over at the beginning.
THE extend OPTION NEEDS TO BE USED WITH CAUTION! It is only invoked by default for the CLM1PT mode and is only intended for the supported urban datasets to extend the data for a single time-step.
So, I set the "taxmode" to "cycle" instead of "extend" in user_nl_datm, and then rebuild and submit. error shows:
140 NODE# NAME
141 ( 0) fa0710.para.bscc
142 NetCDF: Invalid dimension ID or name
143 NetCDF: Invalid dimension ID or name
144 NetCDF: Invalid dimension ID or name
145 NetCDF: Invalid dimension ID or name
146 NetCDF: Invalid dimension ID or name
147 NetCDF: Variable not found
148 NetCDF: Invalid dimension ID or name
149 NetCDF: Invalid dimension ID or name
150 NetCDF: Invalid dimension ID or name
151 NetCDF: Invalid dimension ID or name
152 NetCDF: Invalid dimension ID or name
153 NetCDF: Variable not found
154 NetCDF: Variable not found
155 NetCDF: Variable not found
156 NetCDF: Invalid dimension ID or name
157 NetCDF: Invalid dimension ID or name
158 NetCDF: Invalid dimension ID or name
159 NetCDF: Invalid dimension ID or name
160 NetCDF: Invalid dimension ID or name
161 NetCDF: Variable not found
162 NetCDF: Invalid dimension ID or name
163 NetCDF: Invalid dimension ID or name
164 NetCDF: Invalid dimension ID or name
165 NetCDF: Invalid dimension ID or name
166 NetCDF: Invalid dimension ID or name
167 NetCDF: Variable not found
168 NetCDF: Variable not found
169 NetCDF: Invalid dimension ID or name
170 NetCDF: Invalid dimension ID or name
171 NetCDF: Invalid dimension ID or name
172 NetCDF: Invalid dimension ID or name
173 NetCDF: Invalid dimension ID or name
174 (shr_sys_abort) ERROR: (shr_strdata_advance) ERROR dt limit
175 (shr_sys_abort) WARNING: calling shr_mpi_abort() and stopping
176 application called MPI_Abort(MPI_COMM_WORLD, 1001) - process 0
177 srun: error: fa0710: task 0: Exited with exit code 233
I want to ask:
(1) the successful case that spin up for 10 years ("taxmode" is "extend", which CLM1PT mode default) is right? Although it's successful.
(2) I read "For a spinup, we usually set RUN_STARTDATE=0001-01-01, since the years aren't real years." that you say. RUN_STARTDATE must start on January 1st of a certain year? Can I set RUN_STARTDATE=2015-07-01? As I have set.
(3) I can not understand the reason that the error occurs that set the "taxmode" to "cycle" in user_nl_datm.
(4) should I use “cycle” or “extend” for "taxmode" to repeating using one year data?
Related files are attached below. Thanks for helping!
 

Attachments

  • user_nl_clm.txt
    1.5 KB · Views: 5
  • datm_atm_in.txt
    464 bytes · Views: 6
  • user_nl_datm.txt
    926 bytes · Views: 4

Zh Chen

chen
New Member
atm.log file
(shr_dmodel_readLBUB) reading file: /public1/home/sca2380/CESM/inputdata/atm/datm7/CLM1PT_data/1x1_XDT/2016-09.nc 1435
(shr_dmodel_readLBUB) reading file: /public1/home/sca2380/CESM/inputdata/atm/datm7/CLM1PT_data/1x1_XDT/2016-09.nc 1436
(datm_comp_run) atm: model date 20160930 75600s
(datm_comp_run) atm: model date 20160930 77400s
(shr_dmodel_readLBUB) reading file: /public1/home/sca2380/CESM/inputdata/atm/datm7/CLM1PT_data/1x1_XDT/2016-09.nc 1437
(shr_dmodel_readLBUB) reading file: /public1/home/sca2380/CESM/inputdata/atm/datm7/CLM1PT_data/1x1_XDT/2016-09.nc 1438
(datm_comp_run) atm: model date 20160930 79200s
(datm_comp_run) atm: model date 20160930 81000s
(shr_dmodel_readLBUB) reading file: /public1/home/sca2380/CESM/inputdata/atm/datm7/CLM1PT_data/1x1_XDT/2016-09.nc 1439
(shr_dmodel_readLBUB) reading file: /public1/home/sca2380/CESM/inputdata/atm/datm7/CLM1PT_data/1x1_XDT/2016-09.nc 1440
(datm_comp_run) atm: model date 20160930 82800s
(datm_comp_run) atm: model date 20160930 84600s
(shr_dmodel_readLBUB) reading file: /public1/home/sca2380/CESM/inputdata/atm/datm7/CLM1PT_data/1x1_XDT/2015-06.nc 1
(shr_strdata_advance) ERROR: dt limit1 243.020833333333
2.083333333333333E-002 1.50000000000000
(shr_strdata_advance) ERROR: dt limit2 20160930 84600 20170601
0
(shr_sys_abort) ERROR: (shr_strdata_advance) ERROR dt limit
(shr_sys_abort) WARNING: calling shr_mpi_abort() and stopping
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
For spinup, taxmode should be cycle. Extend would use the last time slice of the forcing data for every time step of the remainder of the simulation.
You can set RUN_STARTDATE to 2015-07-01 or to 0001-07-01.
However, spinup is usually done by starting with Jan 1 and looping over complete years. The dtlimit error is occurring because you are starting near the middle of the year and the model is faced with a gap. I think you can avoid this error by setting dtlimit to something large in your streams file, but I would look carefully at your atm log to make sure that the datm is properly looping over the forcing data.
 

Zh Chen

chen
New Member
For spinup, taxmode should be cycle. Extend would use the last time slice of the forcing data for every time step of the remainder of the simulation.
You can set RUN_STARTDATE to 2015-07-01 or to 0001-07-01.
However, spinup is usually done by starting with Jan 1 and looping over complete years. The dtlimit error is occurring because you are starting near the middle of the year and the model is faced with a gap. I think you can avoid this error by setting dtlimit to something large in your streams file, but I would look carefully at your atm log to make sure that the datm is properly looping over the forcing data.
Thanks for your reply, Mr.Oleson.
The atm.log file is too large to upload, So I deleted the middle part of atm.log (mark in line 3091 to 3093) so that the file can be uploaded.
I read atm.log and I just want to cycle the data for one year(2015-07-01 to 2016-06-30), but why did the forcing data have been read until 2016-09-30 and finally make an error on 2015-06-01? It's because of user_ datm. streams. txt. CLM1PT. CLM_ USRDAT?
Thank you.
 

Attachments

  • atm.log.txt
    543.5 KB · Views: 3
  • user_datm.streams.txt.CLM1PT.CLM_USRDAT.txt
    1.3 KB · Views: 2

oleson

Keith Oleson
CSEG and Liaisons
Staff member
You said above that you want to run the model 2015-07-01 through 2016-06-30. However, the atm log indicates that the model is running past 2016-06-30, until 2016-09-30. At that point the model needs another data point for interpolation and hence it is trying to get that from the first time slice of 2015-07-01. That's when you get a dtlimit error.
 

Zh Chen

chen
New Member
You said above that you want to run the model 2015-07-01 through 2016-06-30. However, the atm log indicates that the model is running past 2016-06-30, until 2016-09-30. At that point the model needs another data point for interpolation and hence it is trying to get that from the first time slice of 2015-07-01. That's when you get a dtlimit error.
Thanks for your reply, Mr.Oleson.
According to your suggestion, and I read the ug about dtlimit, I add “dtlimit = 1.0e30, 1.0e30” to user_nl_datm, actually I dont‘t understand the description of “dtlimit”, so I don't know if “dtlimit” that i set it's correct. My forcing data have not missing data and 0.5hr temporal resolution. And do the following:

./xmlchange STOP_OPTION=nyears
./xmlchange STOP_N=5
./xmlchange RUN_STARTDATE=2015-07-01
./xmlchange DATM_CLMNCEP_YR_START=2015
./xmlchange DATM_CLMNCEP_YR_END=2016
./xmlchange DATM_CLMNCEP_YR_ALIGN = 1

user_nl_datm:
streams = "datm.streams.txt.CLM1PT.CLM_USRDAT 2015 2015 2016","datm.streams.txt.presaero.clim_2000 1 1 1"
taxmode = 'cycle','cycle'
dtlimit = 1.0e30, 1.0e30
1) It seems to have succeeded. The atm log file and data stream is attached below.
2) Is it right to set dtlimit to 1.0e30?
3) I read atm log find that after each cycle ends in the last month (2016-06), it will continue to cycle to the starting month (2015-07), for example, on lines 35132 to 52666. The screenshot is attached below. Is that right?
 

Attachments

  • atm.log.220428-164925.zip
    456.6 KB · Views: 2
  • user_datm.streams.txt.CLM1PT.CLM_USRDAT.txt
    1.2 KB · Views: 4
  • 1.png
    1.png
    169.9 KB · Views: 11
  • 2.png
    2.png
    153.7 KB · Views: 11

oleson

Keith Oleson
CSEG and Liaisons
Staff member
That doesn't look right. The atm log is showing that the datm stops reading any data from 20160701 through 20170701, then it starts reading the 2015 data again. This means that the last time slice of 2015-07.nc is being used to force the model for that entire period.
It looks like you have taxmode set to cycle which is correct.

You don't have full years to cycle through but you do appear to have one full year that overlaps two years. I think that should work, but I'm not sure why it isn't. Perhaps @erik has an idea?

Fyi, you can find a description of dtlimit and other datm settings here:

 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
I didn't notice this in your first post, but it looks like you are running cesm1.2.2. You can run CLM4.5 from within cesm2.1.3. Maybe there have been some updates to the datm to fix this particular problem.
 

erik

Erik Kluzek
CSEG and Liaisons
Staff member
Unfortunately you can't cycle over your data in CESM if you don't have a complete years worth of data for at least one year. You can run through the period when you have data -- but not cycle over it. So a kludgey way to to get around it would be to stitch together a year made up of the two years of data, but labeled as one year. Which will of course have a discontinuity at the point where you stitch them together, that you should probably adjust by hand. That's the best idea I have.
 

Zh Chen

chen
New Member
Unfortunately you can't cycle over your data in CESM if you don't have a complete years worth of data for at least one year. You can run through the period when you have data -- but not cycle over it. So a kludgey way to to get around it would be to stitch together a year made up of the two years of data, but labeled as one year. Which will of course have a discontinuity at the point where you stitch them together, that you should probably adjust by hand. That's the best idea I have.
Thank you for your reply!
I have a complete year data(2015-07-01 to 2016-06-30) and I want to loop the one year data. Spinup is usually done by starting with Jan 1 and loop over complete years, but my loop data start on July 1, so I have no idea that how to loop my data successfully with start on July 1. I try some cases just like 7 post, however, that doesn't look right. So, I sincerely hope you can give me some advice.

And If I can't cycle over my one year data that start on July 1. According to your suggestion, I am wondering if I can manually extend the one year data that start on July 1. For example, the first cycle forcing data(2015-07-01 to 2016-06-30), the second cycle forcing data(2016-07-1 to 2017-06-30) that copy from the first cycle forcing data and just change the nc file name, the third cycle forcing data(2017-07-01 to 2018-06-30) that also copy from the first cycle forcing data and change the nc file name, and so on. I know the method is inefficient.
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
It seems like you could do that. You'd have to make sure you set the units attribute for the time variable appropriately. Alternatively, you could use the initial/restart file that you obtained after the first cycle in your finidat in user_nl_clm and run the model again for a second cycle, then a third cycle, etc., manually (no resubmits and don't change the model startdate).
 
Top