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

RCP atmospheric forcing for CLM5 projections

Status
Not open for further replies.

oleson

Keith Oleson
CSEG and Liaisons
Staff member
There isn't a blank line at the top of the document in the version on the ftp site. You could remove the blank lines, although I don't think blank lines cause any problems.
That same file works fine on our machine so I'm not sure what to say. Maybe it has been changed somehow or corrupted during your download.
 

Gabriel.Hes

Hes
Member
Yes, it doesn't change anything when I remove the blank space.
I am not sure to understand if I have to change something concerning those lines you wrote on monday 18. Where do these lines come from? Just to be sure I'm doing things correctly.
The base forcing (GSWP3V1) that the anomaly forcing is applied to comes out of the box with:

<entry id="DATM_CLMNCEP_YR_ALIGN" value="$DATM_CLMNCEP_YR_START">
<entry id="DATM_CLMNCEP_YR_START" value="2001">
<entry id="DATM_CLMNCEP_YR_END" value="2013">
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
Those are in env_run.xml. You can query their values using xmlquery or change them using xmlchange.
 

Gabriel.Hes

Hes
Member
I found out that I had the wrong quote format on the first line of the user_nl_datm file. I changed the format and was then able to finish the case build.
 

Gabriel.Hes

Hes
Member
Another problem I encountered is the nc format of the input files (user_datm files and domain file). I changed these files from nc4 to cdf5 following the advice in the recent post CESM link error during build
Now the code seems to run well so many thanks for your help to get me through.
I have tested the case ctsm51sp_ctsm51d029_hcru_GSWP3V1_SSP3-7_Anomaly you advised me. Is there a similar case for SSP5-8.5 ?
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
You can specify different SSPs in the create_newcase command, e.g.,

./create_newcase --compset SSP585_DATM%GSWP3v1_CLM51%SP_SICE_SOCN_MOSART_SGLC_SWAV ....

Use ./query_config --compsets clm to see the available clm compsets.
 

Gabriel.Hes

Hes
Member
Yes it works thank you!
I would like to run the model starting from 1990. Is this possible with this compset (eg SSP370_DATM%GSWP3v1_CLM51%SP_SICE_SOCN_MOSART_SGLC_SWAV) or should I run a first compset until 2015 and then branch it to the current one?
 

Gabriel.Hes

Hes
Member
Alright. So I will run an IHistClm51Sp simulation over 1990-2015 and branch it to the SSP5-85_DATM%GSWP3v1_CLM51%SP_SICE_SOCN_MOSART_SGLC_SWAV anomaly forcing projection. I read in the documentation that this historical compset should be run on f19_g17 or f09_g17 grids. However it seems to also work with hcru_hcru grid. Could you confirm that it is ok to use hcru_hcru grid for IHistClm51Sp run? This would allow me to have the same grid for the historical run and the projection run.
Another question: does the branching of the historical run to the projections simulation require other manipulations apart from adding the last nc restart file of the historical simulation as finidat in the projection simulation? I'd be grateful if you could redirect me to some documentation on this.
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
We don't use the hcru_hcru grid much, it isn't scientifically supported. I'm not sure what kind of an initial file you will get (if any) for a historical simulation beginning in 1990.
Specifying the finidat from the historical simulation in the SSP simulation will work fine. You could also specify the initial file for MOSART using finidat_rtm in user_nl_mosart. The SSP case can be specified as a startup case.
Alternatively, you can specify the SSP case as a branch or hybrid run in which all components are initialized using a consistent set of restart files from a previous run (e.g., the historical). See the notes associated with "RUN_TYPE" in env_run.xml. See also the cime user's guide regarding this:

 

syang

Shawn Yang
Member
We don't use the hcru_hcru grid much, it isn't scientifically supported. I'm not sure what kind of an initial file you will get (if any) for a historical simulation beginning in 1990.
Specifying the finidat from the historical simulation in the SSP simulation will work fine. You could also specify the initial file for MOSART using finidat_rtm in user_nl_mosart. The SSP case can be specified as a startup case.
Alternatively, you can specify the SSP case as a branch or hybrid run in which all components are initialized using a consistent set of restart files from a previous run (e.g., the historical). See the notes associated with "RUN_TYPE" in env_run.xml. See also the cime user's guide regarding this:

Hi Keith,

I would like to ask some questions about forcing clm5 by cmip6 anomaly forcing. Firstly, since I am running a regional case, I generated my own regional cmip6 anomaly forcing by using cmip6-ssp126 dataset (e.g., precipitation) minus cmip6-hist2014. I would like to know is that a correct way to get the af dataset?

Secondly, I noticed that there are compsets for ssp scenarios in CLM5, such as ISSP126CLM50BgcCrop. I successfully run my hist cast by I2000CLM50BgcCruGs. I am wondering the difference between them. Could I still use the compset I2000CLM50BgcCruGs and just modify the user_nl_datm and stream files (adding anomaly forcing) to run ssp126 case?

Thirdly, for my hist case, my forcing dataset has the variable "wind" in the TPQWL files (like GSWP3v1 dataset). However, it looks like the anomaly forcing can only apply Uwind and Vwind. I am wondering is there a "wind" for anomaly forcing? or it will automatically convert Uwind and Vwind to wind? If I setup the hist case by wind, and add the anomaly forcing with Uwind and Vwind, will that work properly? Thank you!!!
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
First, I will have to get someone else to respond, there are some subtleties in doing this.
Second, you could try this but there are other settings that are controlled by the compset besides just the datm forcing (e.g., nitrogen deposition, CO2, etc.). Keep in mind that I2000 is a climatological present day compset, not a historical compset (e.g., with transient land cover change).
Third, that should work properly. I believe the wind components of anomaly forcing are read in as uas and vas and then converted to wind in the code
 

swensosc

New Member
regarding your first question, the default anomaly forcing data was created by smoothing the data with a 20 year window for each month for both the historical and future data. Then the climatology of the smoothed historical data was removed from the smoothed future data. This reduces the high frequency content of the anomalies, so that when the anomalies are applied to the historical data, the high frequency climate information comes from the historical data only.
 

syang

Shawn Yang
Member
First, I will have to get someone else to respond, there are some subtleties in doing this.
Second, you could try this but there are other settings that are controlled by the compset besides just the datm forcing (e.g., nitrogen deposition, CO2, etc.). Keep in mind that I2000 is a climatological present day compset, not a historical compset (e.g., with transient land cover change).
Third, that should work properly. I believe the wind components of anomaly forcing are read in as uas and vas and then converted to wind in the code
Thank you! It is really helpful!
 

syang

Shawn Yang
Member
regarding your first question, the default anomaly forcing data was created by smoothing the data with a 20 year window for each month for both the historical and future data. Then the climatology of the smoothed historical data was removed from the smoothed future data. This reduces the high frequency content of the anomalies, so that when the anomalies are applied to the historical data, the high frequency climate information comes from the historical data only.
Thank you! I would like to know is there a guide or instruction for making anomaly forcing? I noticed the af dataset (e.g., temperature) have both positive and negative values. So does that mean after a 20 year window for each month for both hist and future data, the final af dataset equals "future dataset" minus "hist dataset" by month?
 

Gabriel.Hes

Hes
Member
Alright. So I will run an IHistClm51Sp simulation over 1990-2015 and branch it to the SSP5-85_DATM%GSWP3v1_CLM51%SP_SICE_SOCN_MOSART_SGLC_SWAV anomaly forcing projection. I read in the documentation that this historical compset should be run on f19_g17 or f09_g17 grids. However it seems to also work with hcru_hcru grid. Could you confirm that it is ok to use hcru_hcru grid for IHistClm51Sp run? This would allow me to have the same grid for the historical run and the projection run.
Another question: does the branching of the historical run to the projections simulation require other manipulations apart from adding the last nc restart file of the historical simulation as finidat in the projection simulation? I'd be grateful if you could redirect me to some documentation on this.
I am encountering a problem while running IHistClm51Sp simulation over 1990-2014. Although I set ./xmlchange RUN_STARTDATE="1990-01-01", I see that the datm.streams correspond to other dates (see the following in my datm_in):
&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 = "/scratch/snx3000/ghes/cesm_inputdata/share/domains/domain.clm/domain.lnd.360x720_cruncep.100429.nc"
dtlimit = 1.5, 1.5, 1.5, 1.5, 1.5, 1.5
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 1901 1920",
"datm.streams.txt.CLMGSWP3v1.Precip 1901 1901 1920",
"datm.streams.txt.CLMGSWP3v1.TPQW 1901 1901 1920",
"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"
/

I tried changing this by adding the following in my script:
cat > user_nl_datm << EOF
streams = "datm.streams.txt.CLMGSWP3v1.Solar 1990 1990 2014",
"datm.streams.txt.CLMGSWP3v1.Precip 1990 1990 2014",
"datm.streams.txt.CLMGSWP3v1.TPQW 1990 1990 2014"
EOF

but this generates an error in the run (see atm.log below):
(datm_comp_init) initialize gsmaps
(datm_comp_init) copy domains
(datm_comp_init) allocate AVs
(datm_comp_init) flds_strm = strm_swdn:strm_precn:strm_tbot:strm_wind:strm_pbot:strm_shum:strm_lwdn:strm_co2diag
(shr_stream_findBounds) ERROR: LVD not found, all data is before yearFirst
ERROR:
(shr_stream_findBounds) ERROR: LVD not found, all data is before yearFirst

Is there a simple way to get around this problem in order to run this startup 1990-2014 run?
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
Regarding a guide for creating anomaly forcing, there is a python script that creates anomaly forcing that is available in a recent version of ctsm (ctsm5.1.dev100). The script is ssp_anomaly_forcing_smooth and can be found in the tools/contrib directory.
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
Regarding the IHistClm51Sp problem, you probably need to set these in your env_run.xml:

DATM_CLMNCEP_YR_ALIGN
DATM_CLMNCEP_YR_START
DATM_CLMNCEP_YR_END
 

Gabriel.Hes

Hes
Member
Regarding the IHistClm51Sp problem, you probably need to set these in your env_run.xml:

DATM_CLMNCEP_YR_ALIGN
DATM_CLMNCEP_YR_START
DATM_CLMNCEP_YR_END
Yes I have tried this, by setting
./xmlchange RUN_STARTDATE="1990-01-01", DATM_CLMNCEP_YR_ALIGN="1990", DATM_CLMNCEP_YR_START="1990", DATM_CLMNCEP_YR_END="2014"
but somehow the run ignores these commands. Is there a special order to follow? Or is my syntax not correct ?
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
Ok, thanks. Syntax seems correct.
Are the contents of these files as expected, i.e., do they point to files for 1990-2014:

datm.streams.txt.CLMGSWP3v1.Precip
datm.streams.txt.CLMGSWP3v1.Solar
datm.streams.txt.CLMGSWP3v1.TPQW
 
Status
Not open for further replies.
Top