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

oleson

Keith Oleson
CSEG and Liaisons
Staff member
C3 and C4 refer to the different pathways that plants use to capture carbon dioxide during photosynthesis.

If say, a grid cell is 100% glacier, then PCT_NATVEG should be 0%. I would agree that it seems like the pfts could then be set to any values. However, when I look at a surface dataset, I see that in those cases where glacier is 100%, the bare soil pft (0) seems to be set to 100% and the other pfts are set to 0%. I don't remember why that is, it might have something to do with dynamic landunit requirements (if glacier goes away perhaps). So I would stick to the requirement.that the pfts add up to 100% even in cases where PCT_NATVEG is 0%, in your own dataset.

Why do you say "at most four kinds of pfts"? I'm curious where you got that information?
 

nevergiveup

nevergiveup
Member
C3 and C4 refer to the different pathways that plants use to capture carbon dioxide during photosynthesis.

If say, a grid cell is 100% glacier, then PCT_NATVEG should be 0%. I would agree that it seems like the pfts could then be set to any values. However, when I look at a surface dataset, I see that in those cases where glacier is 100%, the bare soil pft (0) seems to be set to 100% and the other pfts are set to 0%. I don't remember why that is, it might have something to do with dynamic landunit requirements (if glacier goes away perhaps). So I would stick to the requirement.that the pfts add up to 100% even in cases where PCT_NATVEG is 0%, in your own dataset.

Why do you say "at most four kinds of pfts"? I'm curious where you got that information?
Thanks a lot, the description of "at most four kinds of pfts" were acquired from a paper, which may be wrong.... I have successly replaced PCT_NAT_PFT, thanks again! Now, I want to repalce PCT_SAND PCT_CLAY ORGANIC with a soil dataset developed by Yongjiu Dai, However, there are some questions:
(1) I see the soil layers in the default surface data is 10 with soil depth of 0.01,0.04,0.09....1.36m in Table 2.3 from CLM50_Tech_Note. However, there are 8 layers in the new soil dataset, i.e., 0.045, 0.09, 0.166,...2.3m, what kind of interpolation method should I adopt to interploate PCT_SAND PCT_CLAY ORGANIC to be consistent with CLM? neareast or bilinear?
 

nevergiveup

nevergiveup
Member
thanks oleson. I have successfully replaced the default soil datasets and surface datasets. Finally, I want to repalce the default Monthly_LAI with a new MODIS LAI product. However, I found the MONTHLY_LAI is with four dimensions, i.e.,(:,:,17,12). I'm wondering how to allocate the LAI in third dimension, i.e., the 17pfts? Besides, should I replace MONTHLY_SAI synchronously? How to achieve it ? My research is foucuing on the simulation of soil temperature. Any suggestion will be highly appreciated.
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
That's quite a research project to derive pft-dependent values of LAI from mixed pixels in a remotely-sensed dataset (see for example Lawrence, P.J., and Chase, T.N. 2007. Representing a MODIS consistent land surface in the Community Land Model (CLM 3.0). J. Geophys. Res. 112:G01023. DOI:10.1029/2006JG000168).
Alternatively, there is a global 0.05deg X 0.05 deg version of the CLM LAI/SAI data available at:

 

nevergiveup

nevergiveup
Member
thanks oleson. I have decided to adopt your suggestion to use the global 0.05deg X 0.05 deg version of the CLM LAI/SAI data. However, I don't know how to replace it. I have downloaded mksrf_lai_histclm52deg005_earthstatmirca_2005.c190119.nc
and put it to the path ../inputdata/lnd/clm2/rawdata/pftcftlandusedynharv.0.25x0.25.MODIS.simyr1850-2015.c170412,
I want to ask that which script should I modify so that the model will recognize this new LaI/SAI dataset?
 

nevergiveup

nevergiveup
Member
In additio, I found there are 10 soil layers (nlevsoi) in surface data, I want to seek confirmation that if their depthes are 0.01,0.04,0.09....1.36m (i.e., the first ten zi ) in Table 2.3 from CLM50_Tech_Note?
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
You can create a surface dataset that will use the high resolution pft and lai data by specifying "-hirespft", e.g.,

./mksurfdata.pl -hirespft ..........

Otherwise, you'd have to modify your surface dataset manually.

Yes, those are the node depths of the first 10 layers (there are generally 20 layers of soil in CLM5). You can also confirm this by looking at "levsoi" in your history file.
 

nevergiveup

nevergiveup
Member
thank you so much. my command is ./mksurfdata.pl -r usrspec -usr_gname 200x200_df -usr_gdate 211025 -y 2000 -no-crop, my clm version is release-clm5.0.27-1-gc7a45bdf, and my compset is I2000Clm50SpGs.
However, error shows:

trouble getting vegtyp file with: ./../../bld/queryDefaultNamelist.pl -csmdata /home/hh/inputdata -silent -justvalue -onlyfiles -phys clm4_5 -res 3x3min -options sim_year='2000',crop='on' -var mksrf_fvegtyp -namelist clmexp

Then I discarded -y 2000 -no-crop, it successfully run but with a warning:
WARNING: mklai(): parameter numpft+1 = 17 does not equal input dataset numpft = 16
This inconsistency used to stop the program. Now we allow it
because crop pfts 17-last are assumed to never use satellite lai data.

Does it matter?
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
I think that if you use "-y 2005" in your first command, it should work.
 

nevergiveup

nevergiveup
Member
I think that if you use "-y 2005" in your first command, it should work.

thanks, oleson. I replaced the defalut organic data with a new dataset (organic value ranges from 2-350 kg/m3 in the first soil layer), however, when running the case, error shows:
1700 ENDRUN:
1701 ERROR: soilwater_moisture_form :: problem with the lapack solver
Do you know what's wrong?
 

nevergiveup

nevergiveup
Member
In addition, when I add “-y 2005" in ./mksurfdata.pl -hirespft .......... error shows:
.........
Successfully made PFTs
netcdf error from mkharvest_init rcode = 2 error = No such file or directory
Program aborted. Backtrace:
#0 0x47bb91 in ???
#1 0x42bc08 in ???
#2 0x461f0c in ???
#3 0x46c1da in ???
#4 0x31fe61ed5c in ???
#5 0x4020b8 in ???
sh: line 1: 19320 (core dumped) ./mksurfdata_map < surfdata_200x200_hh_hist_16pfts_Irrig_CMIP6_simyr2005_c211129.namelist
ERROR in mksurfdata_map: 34304
Then I discarded -y 2005, it successfully run but with 1850.


In addition to https://svn-ccsm-inputdata.cgd.ucar...dynharv.0.05x0.05.LUH2.histsimyr2005.c190116/ Is there any additional rawdata I should download?
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
The error indicates a problem with solving the soil moisture equations. Since you are replacing the organic matter data with your own, I guess I would look to see if you have any unphysical values specified. I assume the model runs with the default organic matter.

Regarding your mksurfdata error, all of the required datasets are specified in your namelist:

surfdata_200x200_hh_hist_16pfts_Irrig_CMIP6_simyr2005_c211129.namelist

So, maybe you are missing one of those datasets.
 

nevergiveup

nevergiveup
Member
thanks, the mksurfdata error has been solved. Regarding soilwater_moisture error, I don't understand "if you have any unphysical values specified". I confirmed that all the values in the 1-10 layers of soil organic matter in my own data are not nan values, but it seems like the values are somehow large, e.g., the organic matter ranges from 2 to 350 kg/m3 in the first layer( I use organic matter mass fraction (g/100g) * bulk density(g/cm3)*10 to acquire the organic data that CLM needed (kg/m3)), however, in the default organic data in CLM, the values ranges from 2-120 kg/m3 in the first soil layer.
 

nevergiveup

nevergiveup
Member
thanks, the mksurfdata error has been solved. Regarding soilwater_moisture error, I don't understand "if you have any unphysical values specified". I confirmed that all the values in the 1-10 layers of soil organic matter in my own data are not nan values, but it seems like the values are somehow large, e.g., the organic matter ranges from 2 to 350 kg/m3 in the first layer( I use organic matter mass fraction (g/100g) * bulk density(g/cm3)*10 to acquire the organic data that CLM needed (kg/m3)), however, in the default organic data in CLM, the values ranges from 2-120 kg/m3 in the first soil layer.
the organic matter data is important to my experiment, do you know what's wrong ? thanks a lot
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
There is an equation in the code that calculates the organic matter fraction:

om_frac = organic3d(g,1)/organic_max

organic_max is specified in the parameter file as 130 kg/m3. So if your values are greater than that, om_frac would be greater than 1.0 which might cause a problem. You could either try restricting your values to less than 130, or change organic_max in the parameter file to match or be slightly above your maximum value.
 

erik

Erik Kluzek
CSEG and Liaisons
Staff member
@nevergiveup for any cell the sum of the natural PFT's must still be one. But, if there are no natural PFT's for that cell it doesn't really matter what the breakdown of those are. So I suggest that you just assign index 0 (bare soil) to 1. and everything else to zero.

Oh, sorry I posted this as an answer to an earlier question as I didn't see the following posts. So this answer doesn't help now. Sorry about that.
 

nevergiveup

nevergiveup
Member
There is an equation in the code that calculates the organic matter fraction:

om_frac = organic3d(g,1)/organic_max

organic_max is specified in the parameter file as 130 kg/m3. So if your values are greater than that, om_frac would be greater than 1.0 which might cause a problem. You could either try restricting your values to less than 130, or change organic_max in the parameter file to match or be slightly above your maximum value.
hi,oleson,I want to ask where can I change organic_max(i.e., 130 kg/m3) in the parameter file ?
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
The parameter file is pointed to in your lnd_in, e.g., for release-cesm2.1.3:

paramfile = '/glade/p/cesmdata/cseg/inputdata/lnd/clm2/paramdata/clm5_params.c171117.nc'
 

nevergiveup

nevergiveup
Member
thanks a lot, but how can I specify one specific paramfile? I guess adding the following line in user_nl_clm?
paramfile = '/glade/p/cesmdata/cseg/inputdata/lnd/clm2/paramdata/my_paramfile.nc'
Am I right?
The parameter file is pointed to in your lnd_in, e.g., for release-cesm2.1.3:

paramfile = '/glade/p/cesmdata/cseg/inputdata/lnd/clm2/paramdata/clm5_params.c171117.nc'
 
Top