Closed wwieder closed 3 weeks ago
The presence of other matrix solvers in use in the CTSM also came up in our conversation.
The following subroutines call Tridiagonal:
ch4_tran
solves for (1) conc_ch4_rel, (2) conc_o2_rel.
LakeTemperature
solves for the lake and soisno temperature profile.
soilwater_zengdecker2009
solves for dwat2.
SoilBiogeochemLittVertTransp
solves for conc_trcr.
Other:
subroutine SoilTemperature
calls BandDiagonal for t_soisno.
subroutine SNICAR_RT
sets up it's own tridiagonal solution locally for flx_abs_lcl.
subroutine soilwater_moisture_form
has an unused call to private procedure TridiagonalCol for dwat.
I see that the new matrix solver replaces the above mentioned call Tridiagonal
in SoilBiogeochemLittVertTransp
.
Including here for reference...
Ying-Ping's code:
/glade/work/slevis/cable_mimics/vsoilmic05f_ms25.f90
To spin up the mimics system of equations he uses the following numerical recipes calls:
do ns=1,ms ! soil layer loop
call ludcmp
call ludksb
After spin-up, he solves the mimics system of equations daily using Runge-Kutta. Next he solves the soil bgc once per year in subroutine bioturb with a tridiagonal solver.
Putting my response to our email thread here:
@wwieder yes, it would likely help to include Yiqi and Ying-Ping in one of our meetings and/or this github issue.
My main question for Ying-Ping is why he chose ludcmp + ludksb for the mimics spin-up while using subr. tridiag for the annual soil bgc timestep. I may of course be missing something trivial given my inexperience with matrix solvers. But this seems relevant if we are considering using CTSM's matrix solver (Yiqi's or Tridiagonal) for both steps.
Otherwise, I think you're right that our work putting MIMICS in the same structure as the existing bgc code (#1318) should allow seamless use of the matrix setup in SoilBiogeochemLittVertTranspMod.F90.
While I tie loose ends in #1318 I started cold-start simulations to assess model behavior at 1x1_brazil:
init_stock_1
: completed 700+ yrs, annual output, initial C soil pools 200 gC/m3, microbes, litter, cwd = 1 gC/m3 eachinit_stock_10
: completed 700+ yrs, annual output, initial C stocks soil pools 200 gC/m3, microbes, litter, cwd = 10 gC/m3These two simulations start different but quickly end up looking very similar: The x-axis shows time from 2000 to 2550 (simulation started in 1850).
Try init_stock_100?
PS. Used compset IHistClm50BgcQianRs (my attempts to run 1x1_brazil w a Clm51 compset failed).
Very, exciting, Sam.
I'm not sure how much it may help to increase the initial pools size, especially because stocks are zero below 1.5 m and will only 'fill' by diffusion (which will take some time). Hopefully the N-K spinup will help with this!
Can you point me to the directory where these simulations are?
Can you point me to the directory where these simulations are?
Exciting indeed :-)
In /glade/scratch/slevis/archive
, look at cases
New runs in progress:
New runs in progress:
- init_stock_1_f10 ...is the global run
- init_stock_1_test ...should have name it BGC. Currently running 50 yrs of AD_SPINUP
@wwieder these runs have stopped now, too. 200 yrs in the first one and 100 yrs (post spin-up) in the second one. We're supposed to compare the second one to init_stock_1:
Feel free to look at output in /glade/scratch/slevis/archive/<case_name>
and let me know if you'd like me to run longer or if there are other tests you'd like me to perform.
Hi Sam, You're right the size of the pools are quite different. I'm not expecting them to be identical, but in surface horizons it looks like SOMp and litter pools are ~10x larger with MIMICS than their analogous plots in the BGC model, suggesting turnover times (controlled by Vmax and Km) are too slow with the vertically resolved MIMICS results. I also was surprised to see how small the SOMc pools were in MIMCS, making we wonder if we're doing something incorrectly related to the allocation to or turnover from this pool?
The new simulation is far enough along to give us an idea, I think. See /glade/scratch/slevis/archive/init_stock_1/lnd/hist
The previous simulation is here now:
/glade/scratch/slevis/archive/init_stock_1/lnd/hist/clay_as_pct
I have looked only at the top soil layer:
chem_som_c
has roughly tripled but avl_som_c
and phys_som_c
are less.
oli_mic_c
has more than doubled.
cop_mic_c
has increased by a factor of 4 or 5.
met_lit_c
has roughly doubled.
str_lit_c
has increased by about a factor of 1.5
@wwieder pls take a look and let me know if there are other tests you'd like to try. (No rush.)
thanks for the summary @slevisconsulting. I'll look more at this. all the changes you described make sense, and I think are desirable, but not the necessarily increases in litter pools. This is not what I'd expected.
Tangentially related to MIMICS spinup: I wanted to keep handy this MIMICS timing table for future reference.
Moving to a discussion.
We need to determine the most efficient way to handle spinup of soil C pools with MIMICS in CTSM #1318 that also reuses available code, where possible. I don't think the at AD spinup used in the century-BGC approach is appropriate for the MIMICS given the non-linear feedbacks between microbial biomass pools and litter/SOM pools. In initial conversations with @slevisconsulting and @klindsay28 we've identified the following options to explore farther to use the:
This seems like a good place for us to record thoughts, ideas, and progress on this topic.