Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MIMICS todo list #2361

Open
4 of 5 tasks
wwieder opened this issue Feb 13, 2024 · 9 comments
Open
4 of 5 tasks

MIMICS todo list #2361

wwieder opened this issue Feb 13, 2024 · 9 comments
Assignees
Labels
tag: enh - new science enhancement that brings in new science capabilities

Comments

@wwieder
Copy link
Contributor

wwieder commented Feb 13, 2024

Working with @piersond and @katierocci on our MSBio project we've realized a few things should be altered in MIMICS. This is a running list of issues to address. Checked boxes have been evaluated in single point testing

  • Modify Vmax parameterization to avoid excessively large litter pools (from preliminary tests).
    • This could be evaluated further.
  • Remove environmental scalars from microbial turnover (tau) calculation (causes fluxes to be unresponsive to changes in soil moisture).
  • Fix how the density dependent turnover parameterization is implemented in CLM-MIMICS, currently parameterized (should not be densdep-1).
    Both of the isssues above are related to this line, which is repeated for oli_mic too:
decomp_k(c,j,i_cop_mic) = tau_m1 *m1_conc**(mimics_densdep - 1.0_r8) * w_d_o_scalars
  • remove NPP modification of tau (which may help with depth profiles of litter and microbial biomass)?
    • For now this can be done on the parameter file by setting mimics_tau_mod_min & _max to one
  • Check definition of pools and modifications to fluxes, as current pool size of SOMa > SOMc, which doesn't make sense.
    image
@mvdebolskiy
Copy link
Contributor

Tagging @elisacw, so she is up-to-date.

@wwieder
Copy link
Contributor Author

wwieder commented Feb 13, 2024

Thanks @mvdebolskiy

@wwieder wwieder changed the title MIMICS list to todos MIMICS todo list Feb 13, 2024
@wwieder
Copy link
Contributor Author

wwieder commented Feb 13, 2024

@slevis-lmwg I'm trying to understand why CHEM pools are so much smaller than AVAIL in the plot above.

One thing I can't track down is the fraction of litter inputs that bypasses the microbial "filter" and goes direct to SOM pools. This parameter was called FI in previous MIMICS work and was larger for structural litter (passed to chemically protected SOM) than it was for metabolic letter (passed to protected SOM). I can't find where litter inputs enter the litter pools at all in the code, nor can I find a parameter like FI on the parameter file. If you have some time, can we dig into this together? Thanks in advance.

@slevis-lmwg
Copy link
Contributor

I'm adding @wwieder's notes from an email here:

in CNCStateUpdate1Mod.F90, line 214

                  ! phenology and dynamic land cover fluxes
                  do i = i_litr_min, i_litr_max
                     cf_soil%decomp_cpools_sourcesink_col(c,j,i) = &
                          cf_veg%phenology_c_to_litr_c_col(c,j,i) * dt
                  end do
  • I think this is where we want to send a fraction of the phenology_c_to_litr_c_col flux to SOM2 and SOM3 in MIMICS. I'm sure some details of this aren't quite right, but something like this is what we want for MIMICS:
cf_soil%decomp_cpools_sourcesink_col(c,j,lit1) = (1 - mimics_fi_1) * cf_veg%phenology_c_to_litr_c_col(c,j,lit1) * dt
cf_soil%decomp_cpools_sourcesink_col(c,j,lit2) = (1 - mimics_fi_2) * cf_veg%phenology_c_to_litr_c_col(c,j,lit2) * dt

cf_soil%decomp_cpools_sourcesink_col(c,j,som3) = mimics_fi_1 * cf_veg%phenology_c_to_litr_c_col(c,j,lit1) * dt
cf_soil%decomp_cpools_sourcesink_col(c,j,som2) = mimics_fi_2 * cf_veg%phenology_c_to_litr_c_col(c,j,lit2) * dt
  • We'll have to repeat this code for N fluxes too.
  • In the testbed I'm using values of 0.005 and 0.3 for mimics_fi_1 and mimics_fi_2, respectively. This should be a single 2d parameter on the parameter file, similar to how we have other mimics parameters.

As a separate issue, it seems like allocation to litter pools is actually being determined in CNPhenologyMod.F90 by the parameters lf_f & lf_r. This is different to how MIMICS handles the allocation to LIT1 and LIT2 pools, but may not be worth addressing at this point.

@slevis-lmwg slevis-lmwg added the tag: enh - new science enhancement that brings in new science capabilities label Feb 14, 2024
@slevis-lmwg
Copy link
Contributor

@wwieder and I agreed on the following steps:

  • @wwieder will open a PR with his mods and make me collaborator
  • @wwieder will add the new parameters (mimics_fi) to an already modified params file that he's working with
  • @slevis-lmwg will add the code changes described above

@slevis-lmwg
Copy link
Contributor

slevis-lmwg commented Feb 14, 2024

Here is my first draft of the code change in CNCStateUpdate1Mod.F90:

                  ! phenology and dynamic land cover fluxes
                  if (decomp_method == mimics_decomp) then
                     do i = i_litr_min, i_litr_max  ! in MIMICS these are 1 and 2
                        cf_soil%decomp_cpools_sourcesink_col(c,j,i) = (1 - mimics_fi(i)) * &
                           cf_veg%phenology_c_to_litr_c_col(c,j,i) * dt
                     end do
                     cf_soil%decomp_cpools_sourcesink_col(c,j,i_phys_som) = mimics_fi(1) * &
                        cf_veg%phenology_c_to_litr_c_col(c,j,i_met_lit) * dt
                     cf_soil%decomp_cpools_sourcesink_col(c,j,i_chem_som) = mimics_fi(2) * &
                        cf_veg%phenology_c_to_litr_c_col(c,j,i_str_lit) * dt
                  else
                     do i = i_litr_min, i_litr_max
                        cf_soil%decomp_cpools_sourcesink_col(c,j,i) = &
                             cf_veg%phenology_c_to_litr_c_col(c,j,i) * dt
                     end do
                  end if

...and equivalent in CNNStateUpdate1Mod.F90:

               ! phenology and dynamic land cover fluxes
               if (decomp_method == mimics_decomp) then
                  do i = i_litr_min, i_litr_max  ! in MIMICS these are 1 and 2
                     nf_soil%decomp_npools_sourcesink_col(c,j,i) = (1 - mimics_fi(i)) * &
                        nf_veg%phenology_n_to_litr_n_col(c,j,i) * dt
                  end do
                  nf_soil%decomp_npools_sourcesink_col(c,j,i_phys_som) = mimics_fi(1) * &
                     nf_veg%phenology_n_to_litr_n_col(c,j,i_met_lit) * dt
                  nf_soil%decomp_npools_sourcesink_col(c,j,i_chem_som) = mimics_fi(2) * &
                     nf_veg%phenology_n_to_litr_n_col(c,j,i_str_lit) * dt
               else
                  do i = i_litr_min, i_litr_max
                     nf_soil%decomp_npools_sourcesink_col(c,j,i) = &
                          nf_veg%phenology_n_to_litr_n_col(c,j,i) * dt
                  end do
               end if

@wwieder
Copy link
Contributor Author

wwieder commented Feb 15, 2024

looks good to me Sam. Once you have this ready to go I'll test it out on my branch.

Easiest may be for me to use use source mods, so if you can point me to your branch / directory I'll grab the StateUpdate1Mod files to test things out. Alternatively, I guess you can push to my PR branch and I can pull the changes onto my local branch?

@wwieder
Copy link
Contributor Author

wwieder commented Mar 12, 2024

@slevis-lmwg is this something that can be accomplished in Sprint 3, even if it's just implementing the code mods on a branch tag that I can merge into simulations I'm running with MIMICS? It will remove a blocker for me, but isn't super urgent as I'm on PTO next week :)

@slevis-lmwg
Copy link
Contributor

@wwieder I will add to my Sprint 3 TODOs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tag: enh - new science enhancement that brings in new science capabilities
Projects
Status: Done
Development

No branches or pull requests

3 participants