Adding parameter estimation capabilities to CLM#1125
Draft
braczka wants to merge 18 commits into
Draft
Conversation
Adding SOIL_CARBON_1m obs type. Although soil carbon is vertically discretized in CLM this observation is to the total carbon stock in 1 meter. For CLM TOTSOMC_1m, thus can treat this obs as 2 dimensional (horizontal interp only)
Do not need vertical interpolation for soil carbon 1 meter carbon stock.
Adding specific fast, medium, slow turnover carbon pools
Assimilating averaged flux tower data (hourly, monthly) requires simplified common code obs type/quantity
Needed to reduce LH and SH quant and obs names for text limits. These are intended for direct interpolation of daily averages.
Just updating namelist values for calLMIP observations and time
Just simplified things when parsing obs for calLMIP application
Adding land parameter quantities for CalLMIP parameter DA. I have included a high level of mechanism specificity anticipating I will need this for variable localization later on.
The model_nml 6 column format now supports new 'param' file origin and adds this new param domain to join the original restart,history and vector clm domains. Adds 'estimate params' option and allows user to define which clm PFTs to estimate parameters for. Performs parameter augmentation to map explicit 2D lat/lon locations to global PFT parameters (and for global scalar parameters). Brings in new parameter specific QTYs.
Leverages clm_to_dart to create parameter augmentation (expansion) by mapping single global parameter value onto spatially explicit 2D lat/lon clm grid. This applies lat/lon history information from history domain onto param domain. Allows for spatially explicit updates to parameter values and application of spatial localization.
clm_to_dart expands parameter to spatial 2D grid, therefore during the filter update global parameter values will have spatially explicit updates. This commit spatially averages the posterior parameter values to generate a global parameter so that it can be re-inserted into clm model for the subsequent forecast. User options for spatial averaging based on geometric spatial average and masks out cells where PFT is not present. Also has PFT-averaged option which spatially averages the PFT specific spatial coverage to calculate global posterior parameter value.
Adds namelist options within model_nml, filter_nml fill_inflation_restart_nml and clm_to_dart and dart_to_clm specifically for parameter DA functionality
Assimilate.csh orchestrates key execution of DART executables and links all important file defined in namelist to DART code. Block 4 adds the parameter domain for functioning of fill_inflation_restart. Block 5 provided proper linkages to parameter related to template and expanded param files. Block 7 performs dart_to_clm execution and appropriate linkages. Block 8 updates the archiving and cleanup consisten with other domain files
Adds parameter file staging to run directory
Sets the initial parameter directory and base file name. Also informs the shell scripting when estimate_params is turned on, which is required for non-Fortran related operation of code (i.e. coordination of csh commands)
average_params_to_scalar previously used num_active_pfts > 0 to determine whether a param variable was PFT-indexed or scalar, which incorrectly classified scalar variables (e.g. cv) as PFT-indexed whenever any PFT index was set. Fix by inspecting the actual variable dimensionality in the compact param file via nf90_inquire_variable, mirroring the existing logic in expand_params_to_grid (clm_to_dart.f90).
hkershaw-brown
requested changes
Jun 10, 2026
hkershaw-brown
left a comment
Member
There was a problem hiding this comment.
Leaving this on request changes since this is not code to review (has not been run, & will not run).
Contributor
|
It looks like this is a pull request to main? If that's so, shouldn't this
really be developing on a branch? I am probably confused. Jeff
…On Wed, Jun 10, 2026 at 7:07 AM Helen Kershaw ***@***.***> wrote:
***@***.**** requested changes on this pull request.
Leaving this on request changes since this is not code to review (has not
been run, & will not run).
—
Reply to this email directly, view it on GitHub
<#1125?email_source=notifications&email_token=ANDHUIVRPVSI3XZ4IAM3C6D47FMP3A5CNFSNUABKM5UWIORPF5TWS5BNNB2WEL2QOVWGYUTFOF2WK43UKJSXM2LFO4XTINBWHAYDKNBQGIYKM4TFMFZW63VKON2WE43DOJUWEZLEUVSXMZLOOSWGM33PORSXEX3DNRUWG2Y#pullrequestreview-4468054020>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ANDHUIRLHDYYJYN2HBRFJCL47FMP3AVCNFSNUABFKJSXA33TNF2G64TZHMZDAOJRGAZTSOJVHNEXG43VMU5TINRQGA2TAOBSGQYKC5QC>
.
Triage notifications, keep track of coding agent tasks and review pull
requests on the go with GitHub Mobile for iOS
<https://github.com/notifications/mobile/ios/ANDHUIS6T2SB5QFCKR5SWNT47FMP3A5CNFSNUABKM5UWIORPF5TWS5BNNB2WEL2QOVWGYUTFOF2WK43UKJSXM2LFO4XTINBWHAYDKNBQGIYKM4TFMFZW63VKON2WE43DOJUWEZLEUVSXMZLOOSVGM33PORSXEX3JN5ZQ>
and Android
<https://github.com/notifications/mobile/android/ANDHUIRTOEX5ASEODQK2AJT47FMP3A5CNFSNUABKM5UWIORPF5TWS5BNNB2WEL2QOVWGYUTFOF2WK43UKJSXM2LFO4XTINBWHAYDKNBQGIYKM4TFMFZW63VKON2WE43DOJUWEZLEUVSXMZLOOSXGM33PORSXEX3BNZSHE33JMQ>.
Download it today!
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
Contributor
Author
|
This is a draft PR, and as such, not ready to review. I am still currently testing/changing functionality. I put it on draft to start discussion on changes and development. If you want me to keep it as a branch and remove as draft PR I can do that as well... |
Force error if inconsistent param estimation setting between input.nml and shell scripting
All variables present in input.nml:model_nml must be declared within clm_to_dart and dart_to_clm, otherwise unrecognized namelist error
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description:
Adds parameter estimation functionality to CLM model. This is designed to be tested with the CalLMIP project for site level runs only, however, this code is generalized to handle regional/global simulations, where parameter global parameters are mapped onto 2D gridded space for localization. Code also performs spatial averaging of parameter posterior before reinserting back into clm parameter file for forecast integration.
Key additions:
proper linkages to parameter related files, similar to functionality of previous domain files (e.g. restart, history, vector).
Types of changes
Documentation changes needed?
Tests
Will be tested with CalLMIP project for single site and multi-site parameter estimation immediately which will test the added param domain and namelist setting functionality. The site simulations do not require parameter augmentation and averaging functionality, so will perform a separate regional simulation for parameter localization/averaging testing.
Checklist for merging
Checklist for release
Testing Datasets
I will provide testing results related to CalLMIP project for single site and multi-site parameter and joint parameter-state DA simulations.