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

Any tips on setting surface soil moisture as climatology at each time step at a specific domain in CLM

yangx2

xinyi yang
Member
Hi everyone,
I am going to carry out an experiment setting surface soil moisture as prescribed values at a specific domain. It is very similar to the Pacific pacemaker experiment which is usually applied in POP. I know how to modify on POP, but I am kind of new to CLM. Are there any documents or tips on modifying CLM? Thanks in advance.
Best,
Skylar
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
You might be able to leverage the soil moisture stream feature in CLM5. From the ChangeLog:

Add new prescribed moisture streams feature. This allows the user
to specify a streams file for soil moisture and use it in place of the model prognostically
determining soil moisture. To turn it on set use_soil_moisture_streams=T in user_nl_clm. You can also
set the filename to use with stream_fldfilename_soilm, and there are other _soilm namelist
items to control the years to run over. The file MUST be on the same grid as the model resolution.

The module controlling this is:

biogeophys/SoilMoistureStreamMod.F90

You could try modifying this to just read in the surface soil moisture over a specified region.

You might try also posting on the CAM forum.
 

yangx2

xinyi yang
Member
You might be able to leverage the soil moisture stream feature in CLM5. From the ChangeLog:

Add new prescribed moisture streams feature. This allows the user
to specify a streams file for soil moisture and use it in place of the model prognostically
determining soil moisture. To turn it on set use_soil_moisture_streams=T in user_nl_clm. You can also
set the filename to use with stream_fldfilename_soilm, and there are other _soilm namelist
items to control the years to run over. The file MUST be on the same grid as the model resolution.

The module controlling this is:

biogeophys/SoilMoistureStreamMod.F90

You could try modifying this to just read in the surface soil moisture over a specified region.

You might try also posting on the CAM forum.
Hi Oleson,
Thanks for the reply! It is a good hint for me to start!
Best,
Skylar
 

yangx2

xinyi yang
Member
You might be able to leverage the soil moisture stream feature in CLM5. From the ChangeLog:

Add new prescribed moisture streams feature. This allows the user
to specify a streams file for soil moisture and use it in place of the model prognostically
determining soil moisture. To turn it on set use_soil_moisture_streams=T in user_nl_clm. You can also
set the filename to use with stream_fldfilename_soilm, and there are other _soilm namelist
items to control the years to run over. The file MUST be on the same grid as the model resolution.

The module controlling this is:

biogeophys/SoilMoistureStreamMod.F90

You could try modifying this to just read in the surface soil moisture over a specified region.

You might try also posting on the CAM forum.
Hi Oleson,
I checked namelist items you mentioned before. Sorry for forgeting to mention that outside of domain is freely coupled. Therefore, the methods you suggested probably work for the data mode of CLM instead of an active mode. Do you have other hints on coupled mode (like B1850, or FHIST)?
best,
Skylar
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
The soil moisture streams should work in coupled mode as well. CLM itself is still fully active, soil moisture is just overwritten by the stream file.
 

yangx2

xinyi yang
Member
The soil moisture streams should work in coupled mode as well. CLM itself is still fully active, soil moisture is just overwritten by the stream file.
Hi Dr. Oleson,
Thanks for your help. Sorry for the late reply. I was trying to organize your suggestion. Based on your suggestion, it seems like there are two methods that can achieve my experiment goal. Not sure whether they are right or not, please correct me if I am wrong.
Method 1:
-Carry out a control run (use_soil_moisture_stream=.false.)
-Carry out another run ( with the same initial condition with control run;use_soil_moisture_stream=.true.; get stream_fldfilename_soilm from control run but with a modification that soil moisture within a specific domain will be set to climatology )
Possible problem:
-In the CLM5 NAMELIST websit, stream_fldfilename_soilm is set to "/dir/LFMIP-pdLC-SST.H2OSOI.0.9x1.25.20levsoi.natveg.1980-2014.MONS_climo.c190716.nc". I checked this nc file, it has 12 months. So I am wondering if I want to run the model for several years, does the corresponding *.nc specified by "stream_fldfilename_soilm" has to expand to a multiple-year timespan?

Summary: Since soil moisture will be overwritten by setting "use_soil_moisture_stream" to true. The "get stream_fldfilename_soilm" will offer the same soil moisture value as the control run for the region outside of the domain. With the same initial condition, I assume the region outside of the domain is freely coupled.

Method 2:
-modify biogeophys/SoilMoistureStreamMod.F90 directly.
This method I probably need more time to figure out how to make it work.


Best,
Skylar
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
The example file provided here is a climatology (1980-2014) of soil moisture. It would be repeated each year.
But you can also provide a file that has soil moisture for a multiple-year timespan and the streams function will handle that.
If you want to just prescribe soil moisture for a given region and let the model prognose soil moisture outside of that region, then you'll need to provide the file for that and also modify SoilMoistureStreamMod.F90. So you need a combination of Method 1 and 2.
You could provide a global file but modify SoilMoistureStreamMod.F90 to just read in soil moisture over your desired domain.
Note that we haven't done this before, so are not able to provide specifics.
 

Min-Seok Kim

Min-Seok Kim
New Member
The example file provided here is a climatology (1980-2014) of soil moisture. It would be repeated each year.
But you can also provide a file that has soil moisture for a multiple-year timespan and the streams function will handle that.
If you want to just prescribe soil moisture for a given region and let the model prognose soil moisture outside of that region, then you'll need to provide the file for that and also modify SoilMoistureStreamMod.F90. So you need a combination of Method 1 and 2.
You could provide a global file but modify SoilMoistureStreamMod.F90 to just read in soil moisture over your desired domain.
Note that we haven't done this before, so are not able to provide specifics.
Dear Dr. Oleson,

Thanks to your comment, I could notice that I can prescribe soil moisture in CESM2 simulation.
I check that example file in F compset, soil moisture climatology is monthly time-scale.
By the way, if I change it to daily soil moisture climatology by using 'stream_fldfilename_soilm', will it be also possible to work ?

And I would like to ask you one more thing.
I have two soil moisture climatology data as CESM2 inputdata.
One is 'LFMIP-pdLC-SST.H2OSOI.0.9x1.25.20levsoi.natveg.1980-2014.MONS_climo.c190716.nc'.
Another is 'LFMIP-pdLC-SST.H2OSOI.0.9x1.25.20levsoi.natveg.climo1980-2014.MONS_c190709.nc'
These are from https://svn-ccsm-inputdata.cgd.ucar.edu/trunk/inputdata/lnd/clm2/prescribed_data/.
One thing I want to ask you is that the first file time span is from 1997-01 to 1997-12 but second file is from 1997-02 to 1998-01.
If I prescribe soil moisture, will model recognize the first date as January and the last as December regardless of the time meta information in the file ?
Or will the model follow the time meta information in the prescribed file ?

I appreciate your help in advance.

Best regards,
Min-Seok
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
I think daily would work if you correctly specify the time variables in your soil moisture file.
The first file is the same as the one that was used in the actual simulation, so I think the first one is fine (c190716). I'm not sure how the second one was created, it looks like the time:units attribute was reset to "days since 1850-01-01 00:00:00". I'm not aware of a simulation run with that, so I can't assume that it is right.
 

Min-Seok Kim

Min-Seok Kim
New Member
I think daily would work if you correctly specify the time variables in your soil moisture file.
The first file is the same as the one that was used in the actual simulation, so I think the first one is fine (c190716). I'm not sure how the second one was created, it looks like the time:units attribute was reset to "days since 1850-01-01 00:00:00". I'm not aware of a simulation run with that, so I can't assume that it is right.
Dear Dr. Olseon,

Thank you for checking it out.
I will try to use daily climatology by making my own soil moisture data with specified time meta information.

Best regards,
Min-Seok
 
Top