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

Some question about spin up

LIN

watermelon
New Member
Dear,
Hello, everyone. I just started learning CLM models and I have a few questions about spin up.

1. How many years of atmospheric forcing data is good to spin up? Does the use of atmospheric forcing data for different time periods affect the effect of spin up. For example, if I want to spin up with my own atmospheric forcing data, would it be better to spin up 100 years with five years of my own atmospheric forcing data than to two years of atmospheric forcing data?

2.If I use my own atmospheric forcing data for spin up do I need to replace the other years' atmospheric forcing data for subsequent simulations? For example, If I use the atmospheric forcing data from 1995-2000 for 100-year spin up, and then simulate the LAI from 2000-2020, should I replace the atmospheric forcing data from 1995-2020 at the beginning? Furthermore, if I want to replace the compset for future LAI prediction,and replace I1850Clm50BgcCrop with ISSP126Clm50BgcCrop for the simulation of 2020-2100, should I re-spin up on the new compset, or can I call the initial spin up information?

I hope you understand what I mean and hope to get your help soon
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
1. We generally recommend using more than two or even more than five years of data to spinup on to introduce some interannual variability into the spinup. For example, the two years you pick may be dry or wet compared to climatology and this may bias the model toward dry or wet conditions.

2. I'm not quite sure I understand your question, but a standard sequence of simulations would be to use I1850Clm50BgcCrop for spinup, then IHistClm50BgcCrop to run 1850-2014, then ISSP126Clm50BgcCrop to run 2015-2100. A spinup isn't required between IHistClm50BgcCrop and ISSP126Clm50BgcCrop.
 

LIN

watermelon
New Member
Thank you very much for your answer.

Q1: And I wonder if I can understand your answer this way, if I use the standard simulation sequence like I1850Clm50BgcCrop that I need to carry out two or even more than five years of data to spin up. And the spinup isn't required between IHistClm50BgcCrop and ISSP126Clm50BgcCrop, is it because the IHIST and ISSP compset comes with the default initial file?

And this week I have some new questions want to ask:

I want to simulate the LAI from 2020-2100 in regional scale in future scenarios(SSP126, SSP585). Compared with global simulation, regional simulation aims to improve the accuracy of LAI simulation. I have two ideas about how to improve the model but I don't know if that's possible. The first is the use of local atmospheric forcing dataset CMFD(China meteorological forcing dataset; 1978-2018; 0.1°×0.1°) to replace GSWP3v1 in CLM model (1901-2014; 0.5° x 0.5°) data. I started with an unmodified model and looked at the datm_in file as follows. Can the meaning of ‘cycle’ be understood as the atmospheric forcing data to be reused in the future scenario simulation, and the forcing data of solar, precip and TPQW will go through a reused of five times in the model. And the data of co2 (fco2_datm_globalSSP1-2.6__simyr_2014-2501_CMIP6_c190506.nc) also will go through a reused of two times. I doubt the accuracy of the simulation with this kind of recycling.

Code:
... streams = "datm.streams.txt.CLMGSWP3v1.Solar 2000 2000 2014",     
 "datm.streams.txt.CLMGSWP3v1.Precip 2000 2000 2014",      
"datm.streams.txt.CLMGSWP3v1.TPQW 2000 2000 2014",      
"datm.streams.txt.presaero.SSP1-2.6 2020 2020 2101",     
 "datm.streams.txt.topo.observed 1 1 1",    
  "datm.streams.txt.co2tseries.SSP1-2.6 2015 2015 2500" 
 taxmode = "cycle", "cycle", "cycle", "cycle", "cycle", "cycle" 
 tintalgo = "coszen", "nearest", "linear", "linear", "lower", "linear"  vectors = "null" /

Q2: I would like to know whether it is feasible to simulate LAI in 2020-2100 by replacing the forcing data of solar, precip and TPQW before 2020?
Q3: This test used fco2_datm_globalSSP1-2.6__simyr_2014-2501_CMIP6_c190506.nc. Is there any co2 data for 2014-2101? Ican't find it.

Secondly, now we have the local LAI products with 500-meter resolution from 2000 to 2020. I want to use this product to improve the module to simulate the future LAI. Now we want to do this by changing surfdata. I looked the official surfdata and found surfdata has the variable of LAI. I want to use local LAI products to replace default LAI in surfdata.
double MONTHLY_LAI(time, lsmpft, lsmlat, lsmlon) ;
MONTHLY_LAI:long_name =
"monthly leaf area index" ;
MONTHLY_LAI:units = "unitless" ;


Q4: I would like to know whether it is feasible to simulate LAI from 2020 to 2100 through change the default LAI in surfdata?
Q5: I don’t understand the meaning of the “time = UNLIMITED ; // (12 currently)”? Is there only 12 months surfdata of default. How to make the long
timeseries surfdata?

netcdf surfdata_0.9x1.25_hist_78pfts_CMIP6_simyr1850_c190214 {
dimensions:
lemon = 288 ;
lsmlat = 192 ;
nglcec = 10 ;
nglcecp1 = 11 ;
numurbl = 3 ;
nlevurb = 5 ;
numrad = 2 ;
nchar = 256 ;
nlevsoi = 10 ;
time = UNLIMITED ; // (12 currently)
lsmpft = 79 ;
natpft = 15 ;
cft = 64 ;

Q6: I looked some data named “landuse.timeseries ……..nc”. I think this type of data may give me help, but I don’t know how to use it. Is this can help me make long timeseries surfdata?

Thanks for your help and I'm looking forward to your reply. @oleson
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
Q1: Together, the IHistClm50BgcCrop (1850-2014) and ISSP126Clm50BgcCrop (2015-2100) essentially constitute a single transient simulation so you don't need a spinup in between them.
Q2: If you want to use SSP-specific future atmospheric forcing, we recommend using the anomaly forcing capability. See the User's Guide here:


Also, search for "anomaly forcing" in the Forums.

Q3: As indicated by the file name, that file has data for 2014-2501, so data for 2014-2101 is included.

Q4-Q6: If you want to simulate LAI in response to future climate, then you would use BGC-CROP to do so, as LAI is prognostic in this configuration. If you want to prescribe LAI, you'd need to use satellite phenology (SP) compset. The landuse timeseries only contains landcover change. There is an LAI streams capability in the model. If you set use_lai_streams = .true. in an SP compset you should get something like this in your lnd_in:

&lai_streams
lai_mapalgo = 'bilinear'
model_year_align_lai = 2001
stream_fldfilename_lai = '/glade/p/cesmdata/cseg/inputdata/lnd/clm2/lai_streams/MODISPFTLAI_0.5x0.5_c140711.nc'
stream_year_first_lai = 2001
stream_year_last_lai = 2013
/

The model will use the data in that file instead of the data in the surface dataset. Perhaps you could create a streams file for your desired time period.
 

LIN

watermelon
New Member
Q1: Together, the IHistClm50BgcCrop (1850-2014) and ISSP126Clm50BgcCrop (2015-2100) essentially constitute a single transient simulation so you don't need a spinup in between them.
Q2: If you want to use SSP-specific future atmospheric forcing, we recommend using the anomaly forcing capability. See the User's Guide here:


Also, search for "anomaly forcing" in the Forums.

Q3: As indicated by the file name, that file has data for 2014-2501, so data for 2014-2101 is included.

Q4-Q6: If you want to simulate LAI in response to future climate, then you would use BGC-CROP to do so, as LAI is prognostic in this configuration. If you want to prescribe LAI, you'd need to use satellite phenology (SP) compset. The landuse timeseries only contains landcover change. There is an LAI streams capability in the model. If you set use_lai_streams = .true. in an SP compset you should get something like this in your lnd_in:

&lai_streams
lai_mapalgo = 'bilinear'
model_year_align_lai = 2001
stream_fldfilename_lai = '/glade/p/cesmdata/cseg/inputdata/lnd/clm2/lai_streams/MODISPFTLAI_0.5x0.5_c140711.nc'
stream_year_first_lai = 2001
stream_year_last_lai = 2013
/

The model will use the data in that file instead of the data in the surface dataset. Perhaps you could create a streams file for your desired time period.
Hello,@oleson ! I recently solved the problem of replacing default atmospheric forcing data with my own atmospheric forcing data. Next, I want to modify the lai_streams file to better calibrate LAI parameters. I downloaded the file of "MODISPFTLAI_0.5x0.5_c140711.nc", and just like replacing the atm forcing data, my preliminary plan is to replace the default LAI data with my own LAI data. But I still have some questions about how to replace the LAI file when I look at the "MODISPFTLAI_0.5x0.5_c140711.nc".
Q1: There are 16 variables related to lai, from LAI_1 to LAI_16, and each LAI variable recorded monthly LAI from 2001 to 2013(you can see the picture). So what is the difference between LAI_1 and the other LAI variable? it seems to me that they are the same.
Q2: I want to replace the data by my own regional LAI data. So it was inevitable to change the lat(lat=360)and lon(lon=720), and maybe change the time(time=156). And did I need to make a new domain file to match lai_streams? I didn't see the location of the domain file belonging to this lai_streams file. Or does this file need to match LND_DOMAIN_FILE?
Code:
(default) [user@cesm2.2 ]$ ncdump -h ~/cesmlab/lnd/clm2/lai_streams/MODISPFTLAI_0.5x0.5_c140711.nc
netcdf MODISPFTLAI_0.5x0.5_c140711 {
dimensions:
        lat = 360 ;
        lon = 720 ;
        time = 156 ;
variables:
        float area(lat, lon) ;
                area:long_name = "area" ;
                area:units = "km^2" ;
        int mask(lat, lon) ;
                mask:long_name = "land mask from pft dataset, indicative of real/fake points" ;
                mask:units = "unitless" ;
        float LATIXY(lat, lon) ;
                LATIXY:long_name = "latitude-2d" ;
                LATIXY:units = "degrees north" ;
        float LONGXY(lat, lon) ;
                LONGXY:long_name = "longitude-2d" ;
                LONGXY:units = "degrees east" ;
        float time(time) ;
                time:_FillValue = 9.96921e+36f ;
                time:long_name = "time" ;
                time:units = "days since 2001-01-01 00:00:00" ;
        float lat(lat) ;
                lat:long_name = "latitude-2d" ;
                lat:units = "degrees north" ;
                lat:cell_methods = "lon: mean" ;
        float lon(lon) ;
                lon:long_name = "longitude-2d" ;
                lon:units = "degrees east" ;
                lon:cell_methods = "lat: mean" ;
        float LAI_1(time, lat, lon) ;
                LAI_1:_FillValue = -9999.f ;
                LAI_1:long_name = "Leaf Area Index" ;
                LAI_1:units = "m2/m2" ;
                LAI_1:cell_methods = "pft: mean" ;
        float LAI_2(time, lat, lon) ;
                LAI_2:_FillValue = -9999.f ;
                LAI_2:long_name = "Leaf Area Index" ;
                LAI_2:units = "m2/m2" ;
                LAI_2:cell_methods = "pft: mean" ;
.......   .......   .......   .......   .......   .......  
      float LAI_15(time, lat, lon) ;
                LAI_15:_FillValue = -9999.f ;
                LAI_15:long_name = "Leaf Area Index" ;
                LAI_15:units = "m2/m2" ;
                LAI_15:cell_methods = "pft: mean" ;
        float LAI_16(time, lat, lon) ;
                LAI_16:_FillValue = -9999.f ;
                LAI_16:long_name = "Leaf Area Index" ;
                LAI_16:units = "m2/m2" ;
                LAI_16:cell_methods = "pft: mean" ;

// global attributes:
                :source = "Peter Lawrence, NCAR" ;
                :creation_date = "Wed Jun 11 14:25:36 MDT 2014" ;
                :title = "MODISPFTLAI0.5x0.5" ;
                :history = "Thu Jul 10 13:24:21 2014: ncatted -a pft_number,global,c,c,Number of pfts in original file: 17 /project/bgc01/swensosc/lnd_lai_streams/MODISPFTLAI0.5x0.5.nc\n",
                        "Thu Jul 10 13:24:05 2014: ncks --64 -A -v LAI_16 tmp.nc /project/bgc01/swensosc/lnd_lai_streams/MODISPFTLAI0.5x0.5.nc\n",
                        "Thu Jul 10 13:23:35 2014: ncks --64 -A -v LAI_15 tmp.nc /project/bgc01/swensosc/lnd_lai_streams/MODISPFTLAI0.5x0.5.nc\n",
                        "Thu Jul 10 13:23:06 2014: ncks --64 -A -v LAI_14 tmp.nc /project/bgc01/swensosc/lnd_lai_streams/MODISPFTLAI0.5x0.5.nc\n",
                        "Thu Jul 10 13:22:39 2014: ncks --64 -A -v LAI_13 tmp.nc /project/bgc01/swensosc/lnd_lai_streams/MODISPFTLAI0.5x0.5.nc\n",
                        "Thu Jul 10 13:22:13 2014: ncks --64 -A -v LAI_12 tmp.nc /project/bgc01/swensosc/lnd_lai_streams/MODISPFTLAI0.5x0.5.nc\n",
                        "Thu Jul 10 13:21:52 2014: ncks --64 -A -v LAI_11 tmp.nc /project/bgc01/swensosc/lnd_lai_streams/MODISPFTLAI0.5x0.5.nc\n",
                        "Thu Jul 10 13:21:30 2014: ncks --64 -A -v LAI_10 tmp.nc /project/bgc01/swensosc/lnd_lai_streams/MODISPFTLAI0.5x0.5.nc\n",
                        "Thu Jul 10 13:21:09 2014: ncks --64 -A -v LAI_9 tmp.nc /project/bgc01/swensosc/lnd_lai_streams/MODISPFTLAI0.5x0.5.nc\n",
                        "Thu Jul 10 13:20:51 2014: ncks --64 -A -v LAI_8 tmp.nc /project/bgc01/swensosc/lnd_lai_streams/MODISPFTLAI0.5x0.5.nc\n",
                        "Thu Jul 10 13:20:34 2014: ncks --64 -A -v LAI_7 tmp.nc /project/bgc01/swensosc/lnd_lai_streams/MODISPFTLAI0.5x0.5.nc\n",
                        "Thu Jul 10 13:20:16 2014: ncks --64 -A -v LAI_6 tmp.nc /project/bgc01/swensosc/lnd_lai_streams/MODISPFTLAI0.5x0.5.nc\n",
                        "Thu Jul 10 13:20:02 2014: ncks --64 -A -v LAI_5 tmp.nc /project/bgc01/swensosc/lnd_lai_streams/MODISPFTLAI0.5x0.5.nc\n",
                        "Thu Jul 10 13:19:46 2014: ncks --64 -A -v LAI_4 tmp.nc /project/bgc01/swensosc/lnd_lai_streams/MODISPFTLAI0.5x0.5.nc\n",
                        "Thu Jul 10 13:19:37 2014: ncks --64 -A -v LAI_3 tmp.nc /project/bgc01/swensosc/lnd_lai_streams/MODISPFTLAI0.5x0.5.nc\n",
                        "Thu Jul 10 13:19:28 2014: ncks --64 -A -v LAI_2 tmp.nc /project/bgc01/swensosc/lnd_lai_streams/MODISPFTLAI0.5x0.5.nc\n",
                        "Thu Jul 10 13:19:18 2014: ncks --64 -A -v LAI_1 tmp.nc /project/bgc01/swensosc/lnd_lai_streams/MODISPFTLAI0.5x0.5.nc\n",
                        "Thu Jul 10 13:19:09 2014: ncks -A -v lon tmp.nc /project/bgc01/swensosc/lnd_lai_streams/MODISPFTLAI0.5x0.5.nc\n",
                        "Thu Jul 10 13:19:09 2014: ncks -A -v lat tmp.nc /project/bgc01/swensosc/lnd_lai_streams/MODISPFTLAI0.5x0.5.nc\n",
                        "Thu Jul 10 13:19:08 2014: ncrename -v TIME,time /project/bgc01/swensosc/lnd_lai_streams/MODISPFTLAI0.5x0.5.nc\n",
                        "Thu Jul 10 13:19:08 2014: ncrename -v AREA,area /project/bgc01/swensosc/lnd_lai_streams/MODISPFTLAI0.5x0.5.nc\n",
                        "Thu Jul 10 13:19:08 2014: ncrename -v LANDMASK,mask /project/bgc01/swensosc/lnd_lai_streams/MODISPFTLAI0.5x0.5.nc\n",
                        "Thu Jul 10 13:19:08 2014: ncks -v LATIXY,LONGXY,TIME,AREA,LANDMASK /project/bgc01/lawrence/modispft/modispft0.5x0.5/MODISPFTLAI0.5x0.5.nc tmp.nc" ;
                :NCO = "20140710" ;
                :pft_number = "Number of pfts in original file: 17" ;
}

1683638628644.png
Thank you for taking the time, and looking forward to hearing from you!
With appreciation!
 

LIN

watermelon
New Member
Thanks for your answer. Now I know that LAI_1 to LAI_16 correspond to the LAI under different plant functional types. I would like to ask if I only have TLAI (total leaf area index) data from 2001 to 2013 without the LAI under each plant functional type. Is it possible to modify the lai_streams file? If it is possible to modify it, how to modify the lai_streams file?
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
You'll have to decide how you want to modify it or even if it's possible with the limited data you have, that's more of a research question that we can't help with here.
 

LIN

watermelon
New Member
OK! But do you know where the source code for the user_lai_streams file runs? I would like to dig deeper into this issue
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
If you search the code for use_lai_streams, you'll see that the data is handled by src/biogeochem/SatellitePhenologyMod.F90.
 

pesieber

Petra Sieber
New Member
Hi Keith,
what is the correct way to set use_lai_streams = .true. so that the additional lines are generated automatically in lnd_in?
./xmlchange use_lai_streams does not work, so I can currently only change lnd_in manually.

Best,
Petra
 

LIN

watermelon
New Member
You would set it in your user_nl_clm.
Hi,@oleson .I successfully modified the use_lai_streams used 13years of locally lai data . And used compset SSP126_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_SROF_SGLC_SWAV and SSP585_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_SROF_SGLC_SWAV to run from 2015 to 2100. I found that though the LAI data I entered made the result distribution and range more normal. But I've found that this data can greatly influence the simulation of future data. You can look at the status of their averages, but in fact, the LAI has been circulating for 13 years in the following decades. The result of this cycle is certainly not true.I wonder what if this effect is eliminated?
1699365339152.png
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
After discussion, we're not quite sure we understand your questions. Is the plot on the right the data from your input file and the plot on the left the output from the model? Are you concerned that the data on the right doesn't match the data on the left? Are you plotting ELAI or TLAI on the left? ELAI will generally be less than TLAI because of snow cover (vegetation is buried or partly buried by snow). If you are concerned about the 13 year cycle, that is expected because you only have the 13 years of lai data that you specified and the model will cycle over that 13 years for the entirety of the simulation. Also, the prescribed lai is going to interact with the landuse distributions in the transient simulations and so the cycle isn't necessarily going to be the same for each 13 year cycle.
 

LIN

watermelon
New Member
After discussion, we're not quite sure we understand your questions. Is the plot on the right the data from your input file and the plot on the left the output from the model? Are you concerned that the data on the right doesn't match the data on the left? Are you plotting ELAI or TLAI on the left? ELAI will generally be less than TLAI because of snow cover (vegetation is buried or partly buried by snow). If you are concerned about the 13 year cycle, that is expected because you only have the 13 years of lai data that you specified and the model will cycle over that 13 years for the entirety of the simulation. Also, the prescribed lai is going to interact with the landuse distributions in the transient simulations and so the cycle isn't necessarily going to be the same for each 13 year cycle.
The data on the left is the TLAI from 2015 to 2100 that I modeled with the SSP126_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_SROF_SGLC_SWAV and SSP585_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_SROF_SGLC_SWAV. And the result on the right is the LAI(GLASS LAI) from 2001 to 2013 that I modified with lai_streams data. Actually, the current simulation results have been shown a trend of a cycle of I input LAI. Whether the land transient change has played a small role?
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
I'm sure the landcover plays a role. As I mentioned previously, the averaged lai will change based on the pft distributions as they change in the transient simulations.
 

xiaoxiaokuishu

Ru Xu
Member
Thanks for your answer. Now I know that LAI_1 to LAI_16 correspond to the LAI under different plant functional types. I would like to ask if I only have TLAI (total leaf area index) data from 2001 to 2013 without the LAI under each plant functional type. Is it possible to modify the lai_streams file? If it is possible to modify it, how to modify the lai_streams file?
Hi, Lin,
Is it possible to share the method you use to get the local LAI suitable to apply in model, since the open-access LAI is always the TLAI, not pft-level.
 
Top