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

Forcing data preparation

mk_pdf

Dr Mahesh
New Member
I have been working on CLM4.0 and I have executed CLM4.0 for point simulation (CLM1pt) using default input data which have posted in cesm_inputdata lists.

I would like to prepare my own forcing data and surface to execute CLM1pt.
Please suggest
How to obtain a global forcing simulation for preparing a forcing file ?
How to calculate FLDS, FSDS from precipitation, temperature and humidity data?
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
First of all, we no longer support CLM4, so any help I provide will have to be more general than specific and focused on the latest version CLM5.0.
I'm wondering what default input data you have used to force CLM with already?
There are global forcing datasets available in inputdata that can be used as is for single point simulations, e.g., GSWP3.
In CLM5, you would use "PTS_MODE" to set your desired latitude/longitude of the site. The closest GSWP3 forcing gridcell would be used for atmospheric forcing.
If you have observed forcing data, e.g., from a flux tower site, then you would need to create your own forcing data files. In that case you would use a compset such as I1PtClm50SpGs for CLM5.
Deriving incoming solar and longwave from other variables is a research question that can be investigated by searching the literature, I don't have any specific recommendations regarding that.
There are tutorials on the CLM web site, in particular, the slide deck on single point simulations might be useful:

 

mk_pdf

Dr Mahesh
New Member
Thank You Professor for your response.
The link which you provided have data upto 2014.
We are doing the rice crop simulation for the year 2017 to 2020. I would like to get the GFS forcing/surface data for the year 2017 to 2020.
How can I download recent data ?
The GFS data will be comparing to tower site data which is provide Indian space research organisation.
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
We don't offer GFS data for forcing CLM. I guess I would just search for the GFS data on the web.
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
The DGVM is not supported in recent versions of the model nor is it likely to work at all or well.
 

mk_pdf

Dr Mahesh
New Member
Dear professor
I have done CLM simulation and I have used inputdata (surface and forcing) set from cesm input repository which you have suggested previously. The surface data which I have used contains only 16 pft.
How to find surface data file having 21 pfts ?
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
It sounds like you are looking for a surface dataset with crops on it (crops active). If so, you can set up a CLM5 or a CLM4.5 case with a BgcCrop compset (e.g., I2000Clm50BgcCrop or I2000Clm45BgcCrop), which will point you to a 78pft surface dataset.
 

mk_pdf

Dr Mahesh
New Member
It sounds like you are looking for a surface dataset with crops on it (crops active). If so, you can set up a CLM5 or a CLM4.5 case with a BgcCrop compset (e.g., I2000Clm50BgcCrop or I2000Clm45BgcCrop), which will point you to a 78pft surface dataset.
Thank You Sir
 

mk_pdf

Dr Mahesh
New Member
Dear Professor
I have used ICLM45BGCCROP as compset for executing point simulation. I am getting following error (I have prepared 1x1 surface data file from "surfdata_0.23x0.31_simyr2000_c100406" available in the cesm inputdata repository).
.....
Attempting to read surface boundary data .....
(GETFIL): attempting to find local file surfdata_1x1_navagamTEST_simyr2000_05042022.nc
(GETFIL): using /home/mahesh/CLM_root/User_inputdata/lnd/clm2/surfdata/surfdata_1x1_navagamTEST_simyr2000_05042022.nc
Opened existing file /home/mahesh/CLM_root/User_inputdata/lnd/clm2/surfdata/surfdata_1x1_navagamTEST_simyr2000_05042022.nc 131072
surfrd_get_data lon_var = xc lat_var =yc
domain_clean: cleaning 1 1
PCT_URBAN is not multi-density, pcturb set to 0
check_dim ERROR: mismatch of input dimension 17 with expected value 25 for variable lsmpft
ENDRUN: called without a message string
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
The error you are getting means the the model is expecting a surface dataset with crops on it (expected value of 25) and you are providing a surface dataset that doesn't have crops on it (input dimension 17).
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
What version of cesm are you using?
From the error you are getting it sounds like it is an older version, perhaps cesm1_2_2?
In that case, I think you want a surface dataset that has "mp24" in the name.
You could run this:

./create_newcase --compset ICLM45BGCCROP --case ICLM45BGCCROP_f19 --res f19_g16 -mach cheyenne

and then run cesm_setup in the case directory. That should generate a lnd_in file with:

fsurdat = '/glade/p/cesmdata/cseg/inputdata/lnd/clm2/surfdata_map/surfdata_1.9x2.5_mp24_simyr2000_c130419.nc'

You could then create a single-point dataset from that.

You also might consider using a newer version of cesm that also has CLM45, we can more easily support that.
 

mk_pdf

Dr Mahesh
New Member
Thank You Professor
As per your suggestion, I have successfully prepared 1x1 surface data with 25 ptf.
I am getting following error while executing point simulation with ICLM45BGCCROP as a compset.
Currently I am using CESM1_2_2 with CLM4.0 and CLM45 as a first phase of my postdoctoral work.
I will switchover to CLM5.0 after executing CLM45BGCCROP simulation.

The error is:
Attempting to read surface boundary data .....
(GETFIL): attempting to find local file surfdata_1x1_navagamTEST_mp24_simyr2000_08042022.nc
(GETFIL): using /home/docse/CLM_root/User_inputdata/lnd/clm2/surfdata/surfdata_1x1_navagamTEST_mp24_simyr2000_08042022.nc
Opened existing file /home/docse/CLM_root/User_inputdata/lnd/clm2/surfdata/surfdata_1x1_navagamTEST_mp24_simyr2000_08042022.nc 131072
surfrd_get_data lon_var = xc lat_var =yc
domain_clean: cleaning 1 1
PCT_URBAN is not multi-density, pcturb set to 0
surfrd_wtxy_veg_all ERROR: sum(pct) over numpft+1 is not = 100.
95.107624420025871 -4.8923755799741286 1
ENDRUN: called without a message string
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
The error means that your plant functional types don't sum up to 100% for the vegetated landunit on your surface dataset.
The code throwing the error is here in clm4_5/main/surfrdMod.F90:

! Error check: make sure PFTs sum to 100% cover for vegetated landunit
! (convert pctpft from percent with respect to gridcel to percent with
! respect to vegetated landunit)

! THESE CHECKS NEEDS TO BE THE SAME AS IN pftdynMod.F90!
if (pctspec(nl) < 100._r8 * (1._r8 - eps_fact*epsilon(1._r8))) then ! pctspec not within eps_fact*epsilon of 100
sumpct = 0._r8
do m = 0,numpft
sumpct = sumpct + pctpft(nl,m) * 100._r8/(100._r8-pctspec(nl))
end do
if (abs(sumpct - 100._r8) > 0.1e-4_r8) then
write(iulog,*) trim(subname)//' ERROR: sum(pct) over numpft+1 is not = 100.'
write(iulog,*) sumpct, sumpct-100._r8, nl
call endrun()
end if

pctpft corresponds to PCT_PFT on the surface dataset.
pctspec corresponds to the sum of the "special" landunits on the surface dataset (PCT_WETLAND+PCT_GLACIER+PCT_LAKE+PCT_URBAN).
 

mk_pdf

Dr Mahesh
New Member
The error means that your plant functional types don't sum up to 100% for the vegetated landunit on your surface dataset.
The code throwing the error is here in clm4_5/main/surfrdMod.F90:

! Error check: make sure PFTs sum to 100% cover for vegetated landunit
! (convert pctpft from percent with respect to gridcel to percent with
! respect to vegetated landunit)

! THESE CHECKS NEEDS TO BE THE SAME AS IN pftdynMod.F90!
if (pctspec(nl) < 100._r8 * (1._r8 - eps_fact*epsilon(1._r8))) then ! pctspec not within eps_fact*epsilon of 100
sumpct = 0._r8
do m = 0,numpft
sumpct = sumpct + pctpft(nl,m) * 100._r8/(100._r8-pctspec(nl))
end do
if (abs(sumpct - 100._r8) > 0.1e-4_r8) then
write(iulog,*) trim(subname)//' ERROR: sum(pct) over numpft+1 is not = 100.'
write(iulog,*) sumpct, sumpct-100._r8, nl
call endrun()
end if

pctpft corresponds to PCT_PFT on the surface dataset.
pctspec corresponds to the sum of the "special" landunits on the surface dataset (PCT_WETLAND+PCT_GLACIER+PCT_LAKE+PCT_URBAN).
Thank You Professor !!
How to overcome this issue ? Any suggestions
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
You need to make modifications to your 1x1pt surface dataset so that the sum is 100%.
 

mk_pdf

Dr Mahesh
New Member
Dear Professor
I have successfully modified surface data file and made sum of pft is 100 %. I have used surfdata_1.9x2.5_mp20_simyr2000_c110105 file to compile 1x1 surface data for point simulation. After preparing all, I have done I1PTCLM45 simulation and the model shows following error

.......
Reading in urban input data from fsurdat file ...
(GETFIL): attempting to find local file surfdata_21pft2.nc
(GETFIL): using /home/docse/CLM_root/User_inputdata/lnd/clm2/surfdata/surfdata_21pft2.nc
Opened existing file /home/docse/CLM_root/User_inputdata/lnd/clm2/surfdata/surfdata_21pft2.nc 65536
UrbanInput /home/docse/CLM_root/User_inputdata/lnd/clm2/surfdata/surfdata_21pft2.nc
PCT_URBAN is not multi-density, nlevurb set to 0
Attempting to read PFT physiological data .....
(GETFIL): attempting to find local file pft-physiology.c130503.nc
(GETFIL): using /home/docse/CLM_root/CESM_inputdata/lnd/clm2/pftdata/pft-physiology.c130503.nc
Opened existing file /home/docse/CLM_root/CESM_inputdata/lnd/clm2/pftdata/pft-physiology.c130503.nc 131072
Successfully read PFT physiological data

Attempting to read surface boundary data .....
(GETFIL): attempting to find local file surfdata_21pft2.nc
(GETFIL): using /home/docse/CLM_root/User_inputdata/lnd/clm2/surfdata/surfdata_21pft2.nc
Opened existing file /home/docse/CLM_root/User_inputdata/lnd/clm2/surfdata/surfdata_21pft2.nc 131072
surfrd_get_data lon_var = xc lat_var =yc
domain_clean: cleaning 1 1
PCT_URBAN is not multi-density, pcturb set to 0
check_dim ERROR: mismatch of input dimension 21 with expected value 17 for variable lsmpft
ENDRUN: called without a message string
 
Top