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

Several questions about CLM5.0 porting

nevergiveup

nevergiveup
Member
Hi,
i'm a new user of clm5.0. I have several questions
(1) I see the Global Attributes in the output xx.nc file showing:
title = 'CLM History file information'
comment = 'NOTE: None of the variables are weighted by land fraction!'
Conventions = 'CF-1.0'
source = 'Community Land Model CLM4.0'
version = 'release-clm5.0.27-1-gc7a45bdf'
Why it shows CLM4.0 model? I have set the compset to I2000Clm50SpGs.
(2) How can I output variables with 0.5/1 hour time step variables? I see it is with monthly output by default.
(3) What are the model output variable of surface upward (outgoing) longwave radiation, vegetation emissivity, ground emissivity, and ptf/soil type? I didn't find them in the output xx.nc file.
(4) I want to use the default GSWP3 forcing in other LSMs, but I don't know the physical meaning of them. Are all the variables (precip, solar and tphwl) with 3-hourly mean (from 0 hr to 3hr)? Or is there some data description of GSWP3 forcing?
(5) If I want to replace GSWP3 forcing with other forcing (1-hr Instantaneous value) , which DATM_MODE should I use? Do I need to set offset?
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
(1) This was fixed in later tags.

(2) You can specify a second history stream in your user_nl_clm in your case directory:
hist_nhtfrq(2) = -1 (this will produce hourly output) or hist_nhtfrq = 1 (this will produce output at each model time step, e.g., half-hourly if the model time step is half-hourly)
hist_mfilt(2) = 48 (or however many time sample you want per file)
hist_fincl2 = 'TSA' (or whatever variables you want to output, TSA is 2-m air temperature)
See here for a description of CLM namelist variables:

(3) You could use an ncdump -h on the file to look at the variables, the descriptions, and the units.
For example:
float FIRE(time, lat, lon) ;
FIRE:long_name = "emitted infrared (longwave) radiation" ;
FIRE:units = "W/m^2" ;
FIRE:cell_methods = "time: mean" ;
FIRE:_FillValue = 1.e+36f ;
FIRE:missing_value = 1.e+36f ;
FIRE:landunit_mask = "unknown" ;

Emissivity is not output by default. You'd have to request it by adding them in your user_nl_clm
hist_fincl1 = 'EMV','EMS'
There are surface characterization variables on the history file, e.g., PCT_LANDUNIT, PCT_CFT, PCT_GLC_MEC, PCT_NAT_PFT. Soil types are specified in the surface dataset (the file pointed to by fsurdat in the lnd_in file).
There is a master list of variables available in CTSM here in the User's Guide:

(4) and (5) There is a description of GSWP3 forcing as well as instructions on how to modify the datm settings here:


The CIME DATM User's Guide may also be useful:


More generally, as a new user, I recommend you look through the material available here:


In particular, there is a recent CTSM tutorial that you might find useful.
 

nevergiveup

nevergiveup
Member
Thanks, oleson. It helpes me a lot. There are two additional questions, thanks in advance.
(1) I see there are similar output variables, e.g. TSA/TBOT/Tair, Q2M/QBOT, PBOT/PSurf. Which of them is the actual output that can be comparable with in-situ data? In other words, are the output "TBOT,QBOT and PBOT" the same as that in input GSWP3?
(2) As seen in "1.2.4.2. CLMCRUNCEPv7 mode and it’s DATM settings":
the “everything else” data stream (of temperature, pressure, humidity and wind) also includes the data for longwave downward forcing as well. Our simulations showed sensitivity to this field, so we backed off in using it, and let DATM calculate longwave down from the other fields.

Does this mean that CLM model does not support the use of FLDS? So the introduction of lwdn in CLM will introduct errors?
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
(1) TBOT, QBOT, and PBOT are the same as that in input GSWP3 (after interpolation)
(2) That statement applies only to the CRUNCEP forcing. The DATM uses FLDS (downward longwave) for GSWP3. So CLM/DATM supports the use of FLDS.
The output variables FLDS and LWdown are the same. LWdown was added in for a model intercomparison project at some point. The same applies to FIRE and LWup.

this%eflx_lwrad_out_patch(begp:endp) = spval
call hist_addfld1d (fname='FIRE', units='W/m^2', &
avgflag='A', long_name='emitted infrared (longwave) radiation', &
ptr_patch=this%eflx_lwrad_out_patch, c2l_scale_type='urbanf')
! Rename of FIRE for Urban intercomparision project
call hist_addfld1d (fname='LWup', units='W/m^2', &
avgflag='A', long_name='upwelling longwave radiation', &
ptr_patch=this%eflx_lwrad_out_patch, c2l_scale_type='urbanf', default='inactive')


call hist_addfld1d (fname='FLDS', units='W/m^2', &
avgflag='A', long_name='atmospheric longwave radiation (downscaled to columns in glacier regions)', &
ptr_col=this%forc_lwrad_downscaled_col)
call hist_addfld1d (fname='LWdown', units='W/m^2', &
avgflag='A', long_name='atmospheric longwave radiation (downscaled to columns in glacier regions)', &
ptr_col=this%forc_lwrad_downscaled_col, default='inactive')
 

nevergiveup

nevergiveup
Member
Hi,oleson, I want to know which land cover type( e.g. bareland or grassland or forest ) a site (with x and y coordinates) belongs to in the fsurdat file. which variable should I use to check?
 

nevergiveup

nevergiveup
Member
double PCT_NAT_PFT(natpft, lsmlat, lsmlon) ;
PCT_NAT_PFT:long_name = "percent plant functional type on the natural veg landunit (% of landunit)" ;
PCT_NAT_PFT:units = "unitless" ;

See this table in the CLM User's Guide for the list of pfts:

thanks,but how should I know one specific grid whether belongs to bare land or not ? and I want to ask that which year the landcover type(e.g. bareland or vegetation type) in the default land surface datasets embed in clm5.0 represent ? I found the landcover type in 2018 has been largely changed in some areas
 

nevergiveup

nevergiveup
Member
Actuall,I'm still confused with the form of GSWP3 data. From the inference of "1.2.4. Customizing the DATM namelist", I guess the the raw GSWP3 data is a mean of 0-3hr ? For example, the first vale in GSWPS is a mean of 00-03 UTC ?
do you have any opinion?
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
Regarding GSWP3, yes.
If you want to know whether a specific grid cell has bare land, then look at the value of PCT_NAT_PFT(0,lsmlat,lsmlon) where lsmlat, lsmlon is the latitude/longitude of the grid cell you are interested in. "0" is bare land/soil. The pft numbering in the table starts at zero.

What surface dataset are you looking at? There are many default surface datasets depending on the type of run you are setting up CLM for.
 

nevergiveup

nevergiveup
Member
Regarding GSWP3, yes.
If you want to know whether a specific grid cell has bare land, then look at the value of PCT_NAT_PFT(0,lsmlat,lsmlon) where lsmlat, lsmlon is the latitude/longitude of the grid cell you are interested in. "0" is bare land/soil. The pft numbering in the table starts at zero.

What surface dataset are you looking at? There are many default surface datasets depending on the type of run you are setting up CLM for.
Hi oleson, I found the variable " PCT_NAT_PFT" in my generatged surface data file is 80x60x15 (lsmlon,lsmlat,natpft), i.e., there are only 15 PFTs , however, it is anticipated to have 16 PFTs, so I don't know the meanings of these 15 PFTs. Does the first dmension respresent bare land and the last respresent C4 grass? model is clm5.0, mode is I2000Clm50SpGs . The command using for generating surface data is : ./mksurfdata.pl -r usrspec -usr_gname 80x60_de -usr_gdate 200526 -y 2000 -no-crop It seems that I did not open irrigation and crop model.
 

nevergiveup

nevergiveup
Member
Regarding GSWP3, yes.
If you want to know whether a specific grid cell has bare land, then look at the value of PCT_NAT_PFT(0,lsmlat,lsmlon) where lsmlat, lsmlon is the latitude/longitude of the grid cell you are interested in. "0" is bare land/soil. The pft numbering in the table starts at zero.

What surface dataset are you looking at? There are many default surface datasets depending on the type of run you are setting up CLM for.
Hi,i want to replace the default surface datasets in clm5.0 with MCD12Q1, however, I met some problems:
(1) I found the variable " PCT_NAT_PFT" in my generatged surface data file is 80x60x15 (lsmlon,lsmlat,natpft), i.e., there are only 15 PFTs , however, it is anticipated to have 16 PFTs, so I don't know the meanings of these 15 PFTs.
(2) what varliable should I replace besides "PCT_NAT_PFT"?
(3) Urban is divided into TBD HD and MD, however, there are no information provided by MCD12Q1, what should i do?
thanks a lot
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
Yes, first dimension (0) is bare ground, last (14) is C4 grass. The crop types, rainfed and irrigated, can be found in PCT_CFT (15 and 16 respectively).

I don't know what MCD12Q1 is. But you may have to replace PCT_NATVEG (percent natural vegetation landunit), PCT_CROP (percent crop landunit), PCT_GLACIER (percent glacier landunit), PCT_LAKE (percent lake landunit), PCT_WETLAND (percent wetland landunit) If you don't have any urban data, then you can either use what's given or set them to zero.

So,
PCT_CROP
PCT_NATVEG
PCT_LAKE
PCT_WETLAND
PCT_GLACIER
PCT_URBAN

The sum of these has to equal 100% at each gridcell. Note that unlike other landunits, there are up to three urban landunits per gridcell.

Also on the surface dataset is:

PCT_CFT

The sum of the two crops types (15 - C3 Unmanaged Rainfed Crop and 16 - C3 Unmanaged Irrigated Crop) must equal 100%, even for gridcells where PCT_CROP is zero (in this case crop type 15 is set to 100% and crop type 16 is set to 0%). These two crop types represent the non-irrigated/irrigated fractions on the crop landunit given by PCT_CROP.

Also on the surface dataset is:

PCT_NAT_PFT

The sum of these must equal 100%. They represent the fractions of pfts on the natural vegetated landunit given by PCT_NATVEG.
 

nevergiveup

nevergiveup
Member
Yes, first dimension (0) is bare ground, last (14) is C4 grass. The crop types, rainfed and irrigated, can be found in PCT_CFT (15 and 16 respectively).

I don't know what MCD12Q1 is. But you may have to replace PCT_NATVEG (percent natural vegetation landunit), PCT_CROP (percent crop landunit), PCT_GLACIER (percent glacier landunit), PCT_LAKE (percent lake landunit), PCT_WETLAND (percent wetland landunit) If you don't have any urban data, then you can either use what's given or set them to zero.

So,
PCT_CROP
PCT_NATVEG
PCT_LAKE
PCT_WETLAND
PCT_GLACIER
PCT_URBAN

The sum of these has to equal 100% at each gridcell. Note that unlike other landunits, there are up to three urban landunits per gridcell.

Also on the surface dataset is:

PCT_CFT

The sum of the two crops types (15 - C3 Unmanaged Rainfed Crop and 16 - C3 Unmanaged Irrigated Crop) must equal 100%, even for gridcells where PCT_CROP is zero (in this case crop type 15 is set to 100% and crop type 16 is set to 0%). These two crop types represent the non-irrigated/irrigated fractions on the crop landunit given by PCT_CROP.

Also on the surface dataset is:

PCT_NAT_PFT

The sum of these must equal 100%. They represent the fractions of pfts on the natural vegetated landunit given by PCT_NATVEG.
thanks a lot
 

nevergiveup

nevergiveup
Member
hi,oleson, through your kind help, I have successfully replaced the defaluted PCT_CROP PCT_NATVEG PCT_LAKE PCT_URBAN PCT_WETLAND and PCT_GLACIER with MCD12Q1(MODIS landcover products with 1km ). However, I'm stuck with PCT_NAT_PFT. As you say, the sum of 15 pfts in PCT_NAT_PFT must equals to 100%, I'm confused that if one specific grid(1km) is definitely urban or water, how to arrange the 15pfts?
 

nevergiveup

nevergiveup
Member
My understanding of surface data reading in CLM is as follows: (1) step I, CLM will determine which landunit(NATVEG CROP LAKE URBAN WETLAND and GLACIER ) the specific grid belongs (2) step II, if the grid belongs totally or partly to NATVEG, CLM will read PCT_NAT_PFT, and then CLM will calculate the weighted results of PCT_NAT_PFT (at most four kinds of pfts ) (3) finally, the weighted results on landunit scale is calculated.
Am I right? If that's the case, the 15pfts can be any value when the specific grid belongs to urban or glacier?
 
Top