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

Add soil tillage for crops #2040

Merged
merged 104 commits into from
Jan 10, 2024
Merged
Show file tree
Hide file tree
Changes from 59 commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
298845e
First commit bringing tillage in from Mike Graham's code.
samsrabin May 20, 2023
a2f56c3
Compile fixes to previous.
samsrabin May 22, 2023
4c00684
Added namelist setup logic for tillage params.
samsrabin May 22, 2023
2adb528
Fixes to reading tillage namelist.
samsrabin May 22, 2023
ff41083
Replace index vars: i_litr2 → i_cel_lit, i_litr3 → i_lig_lit.
samsrabin May 22, 2023
416eae4
Only apply tillage multipliers once per column!
samsrabin May 31, 2023
7a006dc
Remove patch loops in get_tillage_multipliers*() subroutines.
samsrabin Jun 1, 2023
aefd94a
Is it that crop columns have multiple patches but only 1 is active?
samsrabin Jun 1, 2023
e909270
Is it that my filtering of non-crop columns didn't work?
samsrabin Jun 1, 2023
4a447d4
Added TODO: Figure out how to simply identify crop columns.
samsrabin Jun 1, 2023
5dda283
Only set tillage_mults(:) = 1 once per get_tillage_multipliers*() sub…
samsrabin Jun 1, 2023
2453126
Removed unneeded patch stuff from tillage_init().
samsrabin Jun 2, 2023
6c4a6e7
Removed unused indices from get_tillage_multipliers*().
samsrabin Jun 2, 2023
f1732c7
Simplified specification of tillage multipliers.
samsrabin Jun 2, 2023
e80cfdf
Merged get_tillage_multipliers*() subroutines.
samsrabin Jun 2, 2023
6c36b20
Simplify application of tillage multipliers.
samsrabin Jun 2, 2023
aaf20aa
Tillage params now duplicated as private vars.
samsrabin Jun 2, 2023
6e1102f
Added tillage params to namelist_defaults_ctsm.xml.
samsrabin Jun 2, 2023
6fedb42
Added high-intensity tillage from Mike Graham's code.
samsrabin Jun 2, 2023
eb42243
Removed a check from tillage_init() that was already in CLMBuildNamel…
samsrabin Jun 2, 2023
e132e43
Removed a TODO that was already done.
samsrabin Jun 13, 2023
9386d81
Corrected capitalization of TillageMod's .F90.
samsrabin Jun 14, 2023
df7e4de
Moved filling of tillage_mults_allphases to its own subroutine.
samsrabin Jun 16, 2023
2a812c4
Error if called with soil_decomp_method other than CENTURYKoven2013.
samsrabin Jun 16, 2023
270a5cd
Do not loop through soil layers within a loop through soil layers.
samsrabin Jun 21, 2023
2d79b38
Merge tag 'ctsm5.1.dev128' into tillage-reorg02
samsrabin Jun 22, 2023
6a2f1ae
Typo fix.
samsrabin Jul 6, 2023
80ea55c
Replaced do_tillage_* logicals with character tillage_mode.
samsrabin Jul 6, 2023
6acf76e
Discard use_original_tillage_private.
samsrabin Jul 6, 2023
4308802
Run fixes.
samsrabin Jul 17, 2023
6c0049a
Only call tillage_init_century() if doing tillage.
samsrabin Jul 17, 2023
e85505e
Allow tillage with FATES.
samsrabin Jul 17, 2023
d144df9
Added note about GDP dependence in old code.
samsrabin Jul 17, 2023
44eeaf7
Reorder tillage_mults_allphases fill for consistency.
samsrabin Jul 17, 2023
35b7f23
Removed an old comment in TillageMod.
samsrabin Jul 17, 2023
9090a6e
TillageMod now has its own copies of indices for soil pools.
samsrabin Jul 17, 2023
8c43072
Initialize tillage for MIMICS; not yet applying.
samsrabin Jul 17, 2023
a5e770e
Added note.
samsrabin Jul 7, 2023
07a259f
Only pass one patch's idop to get_tillage_multipliers().
samsrabin Jul 7, 2023
48b697e
Generalize tillage to work with multiple active crop patches.
samsrabin Jul 7, 2023
70e65c3
Merge branch 'tillage-multi-patch' into tillage-dev
samsrabin Jul 18, 2023
13f898c
Merge branch 'tillage-dev' into tillage-mimics
samsrabin Jul 18, 2023
eb3171d
Moved TillageMod.F90 to soilbiogeochem/
samsrabin Jul 18, 2023
955ec7f
Tillage now applied to MIMICS.
samsrabin Jul 18, 2023
6c4e019
Compile fixes.
samsrabin Jul 18, 2023
f9a03e6
Merge branch 'tillage-mimics' into tillage-dev
samsrabin Jul 19, 2023
d629ddd
Added script to add tillage parameters to params file.
samsrabin Jul 24, 2023
c148410
Tillage multipliers now read from params file.
samsrabin Jul 24, 2023
de88db0
Add git status info to params file.
samsrabin Jul 25, 2023
49b15ad
Save paramfile as NETCDF3_CLASSIC.
samsrabin Jul 26, 2023
0441df0
Replaced logical do_tillage_* with integer tillage_intensity.
samsrabin Jul 26, 2023
163147e
Removed unused 'use' in readParams_netcdf().
samsrabin Jul 26, 2023
23a89d6
Renamed nphases to ntill_intensities_max for consistency with netCDF …
samsrabin Jul 26, 2023
f61f983
Move present(idop) checks to beginning of decomp_rates_* subroutines.
samsrabin Jul 26, 2023
c1757d1
Rework get_apply_tillage_multipliers() to j;c loop instead of c;j.
samsrabin Jul 26, 2023
8cfeafe
Slice decomp_k by column and soil layer before passing to get_apply_t…
samsrabin Jul 26, 2023
750f5b9
Merge branch 'tillage-dev' into tillage
samsrabin Jul 26, 2023
7eaf5e2
Merge tag 'ctsm5.1.dev132' into tillage
samsrabin Aug 9, 2023
4a8adff
Bugfix to check that tillage is off when use_crop false.
samsrabin Aug 9, 2023
d856f1b
Improved description of get_tillage_multipliers().
samsrabin Aug 14, 2023
b71fa23
Improved description of use_original_tillage parameter.
samsrabin Aug 14, 2023
c5ee474
Improved error message when tillage on but use_crop off.
samsrabin Aug 14, 2023
fe568e1
Use get_do_tillage() in first readParams_netcdf() return check.
samsrabin Aug 14, 2023
3495f4b
Added a space.
samsrabin Aug 14, 2023
1865649
get_apply_tillage_multipliers(): multiple crop patches are OK.
samsrabin Aug 14, 2023
9063873
get_apply_tillage_multipliers: Check for sumwt < 1.
samsrabin Aug 14, 2023
f01adc6
Share idpp calculation code.
samsrabin Aug 14, 2023
cb5a889
Prepend bgc_ to till_decompk_multipliers.
samsrabin Aug 21, 2023
86b81fb
Till to 32 cm depth rather than top 5 soil layers.
samsrabin Aug 21, 2023
69451e2
Allow partially-tilled soil layers.
samsrabin Aug 21, 2023
8e67f28
max_tillage_depth is now a namelist parameter.
samsrabin Aug 21, 2023
b18572d
Added a comment and TODO.
samsrabin Aug 22, 2023
7af6bf6
Max till depth now 26cm (match text of Graham et al., 2021).
samsrabin Aug 22, 2023
ebda444
Renamed var & added text re: original tillage settings.
samsrabin Aug 22, 2023
2d76faa
Moved fraction_tilled calculation to new function get_fraction_tilled().
samsrabin Aug 31, 2023
e628c71
Added unit test for get_fraction_tilled().
samsrabin Aug 31, 2023
b12c780
Corrected a unit in a comment.
samsrabin Sep 1, 2023
c5171fe
get_apply_tillage_multipliers(): Skip non-crop columns more simply.
samsrabin Sep 1, 2023
579ca9a
Bug fix in get_fraction_tilled().
samsrabin Sep 15, 2023
7f7dfc8
test_get_fraction_tilled(): Use nlayers instead of 5.
samsrabin Sep 18, 2023
46da730
test_get_fraction_tilled(): Now works with new function call.
samsrabin Sep 18, 2023
9c1618b
get_fraction_tilled() no longer takes argument j.
samsrabin Sep 18, 2023
b87fbd9
get_fraction_tilled() can now handle zero-thickness layers.
samsrabin Sep 18, 2023
c0d8784
Simplify and split up test_get_fraction_tilled().
samsrabin Sep 18, 2023
77d0c7d
get_fraction_tilled() receives layer_bottom, not layer_top.
samsrabin Sep 18, 2023
3c24b25
Prevent tillage from being enabled.
samsrabin Oct 2, 2023
d43c617
Merge tag 'ctsm5.1.dev142' into tillage
samsrabin Oct 2, 2023
c8d6754
Removed a TODO.
samsrabin Oct 5, 2023
7510431
Removed an incorrect comment.
samsrabin Oct 5, 2023
d565176
Do not till generic crops.
samsrabin Oct 5, 2023
b86402e
Warn instead of fail when trying to enable tillage.
samsrabin Oct 5, 2023
1a3a8b7
Delete add_tillage_to_paramsfile.py.
samsrabin Oct 5, 2023
ae56384
Use ntill_intensities_max; set to private.
samsrabin Oct 5, 2023
d1f08a7
Add script used to add tillage to paramfile.
samsrabin Dec 29, 2023
d566b6d
Specify posNOTonfile=.true. in call of ncd_io() for till_decompk_mult…
samsrabin Dec 27, 2023
693750c
Replace a ntill_stages_max with ntill_intensities_max.
samsrabin Dec 29, 2023
9af1a04
Merge tag 'ctsm5.1.dev159' into tillage
samsrabin Dec 29, 2023
fffa851
Typo fix in crop Tech Note.
samsrabin Dec 29, 2023
ff610b4
Add tillage documentation to Tech Note.
samsrabin Dec 29, 2023
c86e1b6
Add "Running with tillage" section to User's Guide.
samsrabin Dec 29, 2023
f344ff1
Add 'till' testdef.
samsrabin Dec 29, 2023
0665754
Use parameter files with tillage multipliers (*.c240105.nc).
samsrabin Jan 5, 2024
2f69473
Remove warning about tillage not being scientifically tested.
samsrabin Jan 5, 2024
142c2c1
Enable tillage in two aux_clm tests.
samsrabin Jan 5, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 17 additions & 1 deletion bld/CLMBuildNamelist.pm
Original file line number Diff line number Diff line change
Expand Up @@ -1629,6 +1629,11 @@ sub process_namelist_inline_logic {
###############################
setup_logic_crop_inparm($opts, $nl_flags, $definition, $defaults, $nl);

###############################
# namelist group: tillage #
###############################
setup_logic_tillage($opts, $nl_flags, $definition, $defaults, $nl);

###############################
# namelist group: ch4par_in #
###############################
Expand Down Expand Up @@ -2183,6 +2188,17 @@ sub setup_logic_crop_inparm {
}
}

#-------------------------------------------------------------------------------

sub setup_logic_tillage {
my ($opts, $nl_flags, $definition, $defaults, $nl) = @_;

my $tillage_mode = remove_leading_and_trailing_quotes( $nl->get_value( "tillage_mode" ) );
if ( $tillage_mode ne "off" && $tillage_mode ne "" && not &value_is_true($nl->get_value('use_crop')) ) {
$log->fatal_error( "It doesn't make sense to use tillage with use_crop false" );
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it make sense to have this be more explicit? "Tillage only works on crop columns, so use_crop must be true"

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good thinking. I've changed this with commit c5ee474:

Tillage only works on crop columns, so use_crop must be true if tillage is enabled.

}
}

#-------------------------------------------------------------------------------
sub error_if_set {
# do a fatal_error and exit if any of the input variable names are set
Expand Down Expand Up @@ -4412,7 +4428,7 @@ sub write_output_files {
soil_resis_inparm bgc_shared canopyfluxes_inparm aerosol
clmu_inparm clm_soilstate_inparm clm_nitrogen clm_snowhydrology_inparm
cnprecision_inparm clm_glacier_behavior crop_inparm irrigation_inparm
surfacealbedo_inparm water_tracers_inparm);
surfacealbedo_inparm water_tracers_inparm tillage_inparm);

#@groups = qw(clm_inparm clm_canopyhydrology_inparm clm_soilhydrology_inparm
# finidat_consistency_checks dynpft_consistency_checks);
Expand Down
7 changes: 7 additions & 0 deletions bld/namelist_files/namelist_defaults_ctsm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2723,4 +2723,11 @@ use_crop=".true.">lnd/clm2/surfdata_map/ctsm5.1.dev052/landuse.timeseries_mpasa1
<stream_meshfile_exice use_excess_ice=".true.">lnd/clm2/paramdata/exice_init_0.125x0.125_ESMFmesh_cdf5_c20220802.nc</stream_meshfile_exice>
<stream_mapalgo_exice use_excess_ice=".true.">bilinear</stream_mapalgo_exice>

<!-- ========================================= -->
<!-- Defaults for tillage -->
<!-- ========================================= -->

<tillage_mode>off</tillage_mode>
<use_original_tillage>.false.</use_original_tillage>

</namelist_defaults>
13 changes: 13 additions & 0 deletions bld/namelist_files/namelist_definition_ctsm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2881,5 +2881,18 @@ Mapping method from excess ice input stream data to the model resolution
none = no interpolation
</entry>

<!-- ======================================================================================== -->
<!-- Namelist items controlling tillage -->
<!-- ======================================================================================== -->

<entry id="tillage_mode" type="char*8" category="physics"
group="tillage_inparm" valid_values="off,low,high">
Whether to till crop soil, and if so, with what intensity.
</entry>

<entry id="use_original_tillage" type="logical" category="physics"
group="tillage_inparm" valid_values="" value=".false.">
Toggle to use original tillage logic
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the 'original' logic what was included in Mike's code with potential bugs, or Sam Levis' original code? Can we specify here by including a reference? You have Mike's, and here's a link to Sam's earlier work: https://gmd.copernicus.org/articles/7/613/2014/

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately I can't tell where it was introduced. It's present in Mike's code, but the git history isn't helpful; there's no link to Sam L.'s code in the publication you linked. Ultimately I think it doesn't matter where it was introduced, though, because Sam L.'s paper only looked at sites in the US Midwest, where I don't expect seasons to ever cross into a new calendar year.

I've updated the description with commit b71fa23:

Toggle to use original tillage logic, with bug for seasons crossing into a new calendar year

What do you think?

</entry>

</namelist_definition>
6 changes: 4 additions & 2 deletions src/biogeochem/CNDriverMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -340,12 +340,14 @@ subroutine CNDriverNoLeaching(bounds,
call t_startf('DecompRate')
if (decomp_method == century_decomp) then
call decomp_rate_constants_bgc(bounds, num_soilc, filter_soilc, &
soilstate_inst, temperature_inst, ch4_inst, soilbiogeochem_carbonflux_inst)
soilstate_inst, temperature_inst, ch4_inst, soilbiogeochem_carbonflux_inst, &
cnveg_state_inst%idop_patch)
else if (decomp_method == mimics_decomp) then
call decomp_rates_mimics(bounds, num_soilc, filter_soilc, &
num_soilp, filter_soilp, clm_fates, &
soilstate_inst, temperature_inst, cnveg_carbonflux_inst, ch4_inst, &
soilbiogeochem_carbonflux_inst, soilbiogeochem_carbonstate_inst)
soilbiogeochem_carbonflux_inst, soilbiogeochem_carbonstate_inst, &
cnveg_state_inst%idop_patch)
end if
call t_stopf('DecompRate')

Expand Down
2 changes: 2 additions & 0 deletions src/main/readParamsMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ subroutine readParameters (photosyns_inst)
use SoilBiogeochemLittVertTranspMod , only : readSoilBiogeochemLittVertTranspParams => readParams
use SoilBiogeochemPotentialMod , only : readSoilBiogeochemPotentialParams => readParams
use SoilBiogeochemDecompMod , only : readSoilBiogeochemDecompParams => readParams
use TillageMod , only : readTillageParams => readParams
use SoilBiogeochemDecompCascadeMIMICSMod, only : readSoilBiogeochemDecompMimicsParams => readParams
use SoilBiogeochemDecompCascadeBGCMod , only : readSoilBiogeochemDecompBgcParams => readParams
use ch4Mod , only : readCH4Params => readParams
Expand Down Expand Up @@ -105,6 +106,7 @@ subroutine readParameters (photosyns_inst)
call readSoilBiogeochemDecompBgcParams(ncid)
end if
call readSoilBiogeochemDecompParams(ncid)
call readTillageParams(ncid)
call readSoilBiogeochemLittVertTranspParams(ncid)
call readSoilBiogeochemNitrifDenitrifParams(ncid)
call readSoilBiogeochemNLeachingParams(ncid)
Expand Down
20 changes: 17 additions & 3 deletions src/soilbiogeochem/SoilBiogeochemDecompCascadeBGCMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -229,8 +229,6 @@ subroutine init_decompcascade_bgc(bounds, soilbiogeochem_state_inst, soilstate_i
! initialize rate constants and decomposition pathways following the decomposition cascade of the BGC model.
! written by C. Koven
!
! !USES:
!
! !ARGUMENTS:
type(bounds_type) , intent(in) :: bounds
type(soilbiogeochem_state_type) , intent(inout) :: soilbiogeochem_state_inst
Expand Down Expand Up @@ -511,7 +509,8 @@ end subroutine init_decompcascade_bgc

!-----------------------------------------------------------------------
subroutine decomp_rate_constants_bgc(bounds, num_soilc, filter_soilc, &
soilstate_inst, temperature_inst, ch4_inst, soilbiogeochem_carbonflux_inst)
soilstate_inst, temperature_inst, ch4_inst, soilbiogeochem_carbonflux_inst, &
idop)
!
! !DESCRIPTION:
! calculate rate constants and decomposition pathways for the CENTURY decomposition cascade model
Expand All @@ -521,6 +520,9 @@ subroutine decomp_rate_constants_bgc(bounds, num_soilc, filter_soilc, &
use clm_time_manager , only : get_average_days_per_year, get_step_size
use shr_const_mod , only : SHR_CONST_PI
use clm_varcon , only : secspday
use TillageMod , only : get_do_tillage
use TillageMod , only : get_apply_tillage_multipliers
use landunit_varcon , only : istcrop
!
! !ARGUMENTS:
type(bounds_type) , intent(in) :: bounds
Expand All @@ -530,6 +532,7 @@ subroutine decomp_rate_constants_bgc(bounds, num_soilc, filter_soilc, &
type(temperature_type) , intent(in) :: temperature_inst
type(ch4_type) , intent(in) :: ch4_inst
type(soilbiogeochem_carbonflux_type) , intent(inout) :: soilbiogeochem_carbonflux_inst
integer, optional , intent(in) :: idop(:) ! patch day of planting
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is tangential to the work here, and perhaps something you've already done with the prescribed planting dates: Is it worth adding this variable to history to better identify crop phenology? I'm not sure if similar variables exist for leaf emergence and harvest, but it would be great to add (if they don't exist) and write them out. Likely easier to analyze than the current CPHASE variable.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did indeed add output for day of planting and harvest for the crop calendar work; you can see all the outputs I added here. No such variables exist for emergence and the vegetative-reproductive transition, but they could for sure be added in the future.

!
! !LOCAL VARIABLES:
real(r8), parameter :: eps = 1.e-6_r8
Expand Down Expand Up @@ -595,6 +598,10 @@ subroutine decomp_rate_constants_bgc(bounds, num_soilc, filter_soilc, &
errMsg(sourcefile, __LINE__))
endif

if (get_do_tillage() .and. .not. present(idop)) then
call endrun("Do not enable tillage without providing idop to decomp_rate_constants_bgc().")
end if

days_per_year = get_average_days_per_year()
dt = real( get_step_size(), r8 )

Expand Down Expand Up @@ -895,6 +902,12 @@ subroutine decomp_rate_constants_bgc(bounds, num_soilc, filter_soilc, &
decomp_k(c,j,i_cwd) = k_frag * t_scalar(c,j) * w_scalar(c,j) * &
depth_scalar(c,j) * o_scalar(c,j) * spinup_geogterm_cwd(c)
end if

! Tillage
if (get_do_tillage()) then
call get_apply_tillage_multipliers(idop, c, j, decomp_k(c,j,:))
end if

! Above into soil matrix
if(use_soil_matrixcn)then
! same for cwd but only if fates is not enabled; fates handles CWD
Expand All @@ -904,6 +917,7 @@ subroutine decomp_rate_constants_bgc(bounds, num_soilc, filter_soilc, &
end if !use_soil_matrixcn
end do
end do

pathfrac_decomp_cascade(bounds%begc:bounds%endc,1:nlevdecomp,i_l1s1) = 1.0_r8
pathfrac_decomp_cascade(bounds%begc:bounds%endc,1:nlevdecomp,i_l2s1) = 1.0_r8
pathfrac_decomp_cascade(bounds%begc:bounds%endc,1:nlevdecomp,i_l3s2) = 1.0_r8
Expand Down
15 changes: 14 additions & 1 deletion src/soilbiogeochem/SoilBiogeochemDecompCascadeMIMICSMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -755,7 +755,8 @@ end subroutine init_decompcascade_mimics
subroutine decomp_rates_mimics(bounds, num_soilc, filter_soilc, &
num_soilp, filter_soilp, clm_fates, &
soilstate_inst, temperature_inst, cnveg_carbonflux_inst, &
ch4_inst, soilbiogeochem_carbonflux_inst, soilbiogeochem_carbonstate_inst)
ch4_inst, soilbiogeochem_carbonflux_inst, soilbiogeochem_carbonstate_inst, &
idop)
!
! !DESCRIPTION:
! Calculate rates and decomposition pathways for the MIMICS
Expand All @@ -768,6 +769,8 @@ subroutine decomp_rates_mimics(bounds, num_soilc, filter_soilc, &
use subgridAveMod , only : p2c
use PatchType , only : patch
use pftconMod , only : pftname
use TillageMod , only : get_do_tillage
use TillageMod , only : get_apply_tillage_multipliers
!
! !ARGUMENTS:
type(bounds_type) , intent(in) :: bounds
Expand All @@ -782,6 +785,7 @@ subroutine decomp_rates_mimics(bounds, num_soilc, filter_soilc, &
type(soilbiogeochem_carbonflux_type) , intent(inout) :: soilbiogeochem_carbonflux_inst
type(soilbiogeochem_carbonstate_type), intent(in) :: soilbiogeochem_carbonstate_inst
type(hlm_fates_interface_type) , intent(inout) :: clm_fates
integer, optional , intent(in) :: idop(:) ! patch day of planting
!
! !LOCAL VARIABLES:
real(r8), parameter :: eps = 1.e-6_r8
Expand Down Expand Up @@ -883,6 +887,10 @@ subroutine decomp_rates_mimics(bounds, num_soilc, filter_soilc, &
spinup_factor => decomp_cascade_con%spinup_factor & ! Input: [real(r8) (:) ] factor for AD spinup associated with each pool
)

if (get_do_tillage() .and. .not. present(idop)) then
call endrun("Do not enable tillage without providing idop to decomp_rate_constants_mimics().")
end if

mino2lim = CNParamsShareInst%mino2lim

days_per_year = get_average_days_per_year()
Expand Down Expand Up @@ -1301,6 +1309,11 @@ subroutine decomp_rates_mimics(bounds, num_soilc, filter_soilc, &
if (.not. use_fates) then
decomp_k(c,j,i_cwd) = k_frag * w_d_o_scalars ! * spinup_geogterm_cwd(c)
end if

! Tillage
if (get_do_tillage()) then
call get_apply_tillage_multipliers(idop, c, j, decomp_k(c,j,:))
end if
end do
end do

Expand Down
Loading