Thank you very much dear Keith for your answer.Yes, it is.
soil_layerstruct= '23SL_3.5m'
use_init_interp = .true.
check_dynpft_consistency =.false.
do_transient_crops=.false.
do_transient_pfts=.false.
flanduse_timeseries=' '
Dear Keith,Regarding dtlimit, I found this documentation:
<entry id="dtlimit" per_stream_entry="true">
<type>real(30)</type>
<category>streams</category>
<group>shr_strdata_nml</group>
<desc>
array (up to 30 elements) of delta time ratio limits placed on the
time interpolation associated with the array of streams. this real
value causes the model to stop if the ratio of the running maximum
delta time divided by the minimum delta time is greater than the
dtlimit for that stream. for instance, with daily data, the delta
time should be exactly one day throughout the dataset and the computed
maximum divided by minimum delta time should always be 1.0. for
monthly data, the delta time should be between 28 and 31 days and the
maximum ratio should be about 1.1. the running value of the delta
time is computed as data is read and any wraparound or cycling is also
included. this input helps trap missing data or errors in cycling.
to turn off trapping, set the value to 1.0e30 or something similar.
</desc>
The error you got was:
(shr_strdata_advance) ERROR: for stream 1
(shr_strdata_advance) ERROR: dt limit1 62.0000000000000
28.0000000000000 1.50000000000000
(shr_strdata_advance) ERROR: dt limit2 18500201 0 18500301 0
And the corresponding code is:
SDAT%dtmin(n) = min(SDAT%dtmin(n),dtime)
SDAT%dtmax(n) = max(SDAT%dtmax(n),dtime)
if ((SDAT%dtmax(n)/SDAT%dtmin(n)) > SDAT%dtlimit(n)) then
write(logunit,*) trim(subname),' ERROR: for stream ',n
write(logunit,*) trim(subName),' ERROR: dt limit1 ',SDAT%dtmax(n),SDAT%dtmin(n),SDAT%dtlimit(n)
write(logunit,*) trim(subName),' ERROR: dt limit2 ',SDAT%ymdLB(n),SDAT%todLB(n), &
SDAT%ymdUB(n),SDAT%todUB(n)
call shr_sys_abort(trim(subName)//' ERROR dt limit for stream')
endif
So, 62/28 = 2.2 which is > 1.5
My suggestion was to set dtlimit to something large to avoid this, but looking at this closer this would seem to indicate that you may have a 62 day gap in your forcing data somewhere? I'd look at the time stamps in your forcing files. Maybe your monthly time stamps should be in the middle of the month?
netcdf \0500-01 {
dimensions:
time = UNLIMITED ; // (1 currently)
bnds = 2 ;
lon = 288 ;
lat = 192 ;
variables:
double time(time) ;
time:standard_name = "time" ;
time:long_name = "time" ;
time:bounds = "time_bnds" ;
time:units = "days since 0500-01-01 00:00:00" ;
time:calendar = "365_day" ;
time:axis = "T" ;
double time_bnds(time, bnds) ;
&datm_nml
decomp = "1d"
factorfn = "null"
force_prognostic_true = .false.
iradsw = 1
presaero = .true.
restfilm = "undefined"
restfils = "undefined"
wiso_datm = .false.
/
&shr_strdata_nml
datamode = "CLMNCEP"
domainfile = "/home/USER/projects/def-xxxx/USER/inputdata/share/domains/domain.lnd.fv0.9x1.25_gx1v7.151020.nc"
dtlimit = 1.e36, 1.e36, 1.e36, 1.e36, 1.e36, 1.e36
fillalgo = "nn", "nn", "nn", "nn", "nn", "nn"
fillmask = "nomask", "nomask", "nomask", "nomask", "nomask", "nomask"
fillread = "NOT_SET", "NOT_SET", "NOT_SET", "NOT_SET", "NOT_SET", "NOT_SET"
fillwrite = "NOT_SET", "NOT_SET", "NOT_SET", "NOT_SET", "NOT_SET", "NOT_SET"
mapalgo = "bilinear", "bilinear", "bilinear", "bilinear", "bilinear", "nn"
mapmask = "nomask", "nomask", "nomask", "nomask", "nomask", "nomask"
mapread = "NOT_SET", "NOT_SET", "NOT_SET", "NOT_SET", "NOT_SET", "NOT_SET"
mapwrite = "NOT_SET", "NOT_SET", "NOT_SET", "NOT_SET", "NOT_SET", "NOT_SET"
readmode = "single", "single", "single", "single", "single", "single"
streams = "datm.streams.txt.CLMGSWP3v1.Solar 1901 500 500",
"datm.streams.txt.CLMGSWP3v1.Precip 1901 500 500",
"datm.streams.txt.CLMGSWP3v1.TPQW 1901 500 500",
"datm.streams.txt.presaero.trans_1850-2000 1849 1849 2014",
"datm.streams.txt.topo.observed 1 1 1",
"datm.streams.txt.co2tseries.20tr 1850 1850 2014"
taxmode = "cycle", "cycle", "cycle", "cycle", "cycle", "extend"
tintalgo = "coszen", "nearest", "linear", "linear", "lower", "linear"
vectors = "null"
/
Thanks a lot @oleson for your response.The fact that the CO2 streams is appearing in your namelists indicates to me that you are using a historical (HIST) compset. The CLM_CO2_TYPE and CCSM_CO2_PPMV variables are appropriate for non-transient compsets, e.g, 1850, 2000.
As you suggested, you can effectively make the streams non-transient by changing the 2014 to 1850, e.g., datm.streams.txt.co2tseries.20tr 1850 1850 1850.
The urbantv stream controls the building interior minimum (space heating) and maximum (air conditioning) temperature setpoints.
I don't know why the solar file ( "/inputdata/atm/cam/solar/" (SolarForcing1995-2005avg_c160929.nc) would be showing up in your I-compset. The solar forcing will come from your datm forcing files.
An alternative to using a HIST compset and setting everything to non-transient, is that if the only thing you want to be transient is your atmospheric forcing (temperature, precip, solar, etc), you could use an 1850 compset.
We don't have enough information about your setup to know whether you should set use_init_interp to .false. or .true. If you get an init_interp error when you set it to .false., then you'll probably need to set it to .true.
./create_newcase --case /home/USER/scratch/cases/SpinDownMem1_1degNarval --compset IHistClm50BgcCrop --res f09_g17 --machine narval --walltime 03:59:00 --run-unsupported
./xmlchange STOP_OPTION=nyears
./xmlchange STOP_N=5
./xmlchange JOB_WALLCLOCK_TIME=03:59:00
./xmlchange DATM_CLMNCEP_YR_END=500
./xmlchange DATM_CLMNCEP_YR_START=500
./xmlchange CLM_CO2_TYPE=constant
./xmlchange CCSM_CO2_PPMV=280.0
./xmlchange DATM_PRESAERO=clim_1850
./xmlchange NTASKS=-8
./xmlchange NTASKS_ESP=1
./case.setup
#then edit user_nl_clm and user_nl_datm, then create (copy) the user_datm.streams... to the case directory
#emacs user_nl_clm by putting finidat and the variables (excluding some variables + making surface data timeseries constant exactly like what I did for the TEST case)
use_init_interp = .true.
soil_layerstruct= '23SL_3.5m'
check_dynpft_consistency =.false.
do_transient_crops=.false.
do_transient_pfts=.false.
flanduse_timeseries=' '
finidat ='/home/USER/scratch/cases/SpinDownMem1_1degNarval/ND_Narval_1deg_All_variables.clm2.r.1750-01-01-00000.nc'
&clm_inparm
hist_empty_htapes = .true.
hist_fincl1 = 'TSOI', 'TSOI_ICE', 'FCH4', 'CH4PROD', 'ALT', 'ALTMAX', 'DSL', 'FCEV', 'FSH_G', 'FSH_V', 'GR', 'HEAT_CONTENT1', 'HEAT_CONTENT1_VEG', 'HEAT_CONTENT2', 'ICE_CONTENT1', 'TG', 'TSOI_10CM', 'TB
OT', 'TOTCOLC', 'TOTCOLCH4', 'TOTCOLN', 'TSA', 'TSA_ICE', 'STORVEGC', 'STORVEGN', 'TSL', 'TV', 'WIND', 'SOILICE', 'SOILC_CHANGE', 'SOILC_vr', 'SOILN_vr', 'TOTECOSYSC', 'TOTECOSYSN', 'TOTSOMC', 'TOTSOMN', 'T
OTVEGC', 'TOTVEGN', 'TLAI', 'GPP', 'CPOOL', 'NPP', 'TWS'
/
./xmlchange RUN_STARTDATE=0500-01-01
#user_nl_datm:
&datm_nml
decomp = "1d"
factorfn = "null"
force_prognostic_true = .false.
iradsw = 1
presaero = .true.
restfilm = "undefined"
restfils = "undefined"
wiso_datm = .false.
/
&shr_strdata_nml
datamode = "CLMNCEP"
domainfile = "/home/USER/projects/def-xxx/USER/inputdata/share/domains/domain.lnd.fv0.9x1.25_gx1v7.151020.nc"
dtlimit = 1.e36, 1.e36, 1.e36, 1.e36, 1.e36, 1.e36
fillalgo = "nn", "nn", "nn", "nn", "nn", "nn"
fillmask = "nomask", "nomask", "nomask", "nomask", "nomask", "nomask"
fillread = "NOT_SET", "NOT_SET", "NOT_SET", "NOT_SET", "NOT_SET", "NOT_SET"
fillwrite = "NOT_SET", "NOT_SET", "NOT_SET", "NOT_SET", "NOT_SET", "NOT_SET"
mapalgo = "bilinear", "bilinear", "bilinear", "bilinear", "bilinear", "nn"
mapmask = "nomask", "nomask", "nomask", "nomask", "nomask", "nomask"
mapread = "NOT_SET", "NOT_SET", "NOT_SET", "NOT_SET", "NOT_SET", "NOT_SET"
mapwrite = "NOT_SET", "NOT_SET", "NOT_SET", "NOT_SET", "NOT_SET", "NOT_SET"
readmode = "single", "single", "single", "single", "single", "single"
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", "extend"
tintalgo = "coszen", "nearest", "linear", "linear", "lower", "linear"
vectors = "null"
/
#then
./xmlchange RUN_TYPE=startup
./xmlchange RESUBMIT=5
./case.build
./case.submit