Skip to content

Commit d3d5a44

Browse files
pearsebdougiesquire
authored andcommitted
Removed CFL criterion for sinking, since this is already handled by the implicit sinking scheme in MOM
Also fixed a bug where big detritus had run-away accumulation in sedimnets because we were not resetting its bottom reservoir to zero
1 parent d25368c commit d3d5a44

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

generic_tracers/generic_WOMBATmid.F90

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ module generic_WOMBATmid
137137
!=======================================================================
138138
character(len=10) :: co2_calc = 'mocsy' ! other option is 'ocmip2'
139139
logical :: do_caco3_dynamics = .true. ! do dynamic CaCO3 precipitation, dissolution and ballasting?
140-
logical :: do_burial = .false. ! permanently bury organics and CaCO3 in sediments?
140+
logical :: do_burial = .false. ! permanently bury organics and CaCO3 in sediments?
141141
logical :: do_conserve_tracers = .false. ! add back the lost NO3 and Alk due to burial to surface?
142142
logical :: do_open_n_cycle = .true. ! N cycle has denitrification, anammox and nitrogen fixation?
143143
logical :: do_check_n_conserve = .false. ! check that the N fluxes balance in the ecosystem
@@ -2751,10 +2751,12 @@ subroutine generic_WOMBATmid_update_from_bottom(tracer_list, dt, tau, model_time
27512751
call g_tracer_get_pointer(tracer_list, 'det_sediment', 'field', wombat%p_det_sediment)
27522752
wombat%p_det_sediment(:,:,1) = wombat%p_det_sediment(:,:,1) + (wombat%det_btm(:,:) + wombat%bdet_btm(:,:)) * (1.0-wombat%fbury(:,:)) ! [mol/m2]
27532753
call g_tracer_set_values(tracer_list, 'det', 'btm_reservoir', 0.0)
2754+
call g_tracer_set_values(tracer_list, 'bdet', 'btm_reservoir', 0.0)
27542755

27552756
call g_tracer_get_pointer(tracer_list, 'detfe_sediment', 'field', wombat%p_detfe_sediment)
27562757
wombat%p_detfe_sediment(:,:,1) = wombat%p_detfe_sediment(:,:,1) + (wombat%detfe_btm(:,:) + wombat%bdetfe_btm(:,:)) * (1.0-wombat%fbury(:,:)) ! [mol/m2]
27572758
call g_tracer_set_values(tracer_list, 'detfe', 'btm_reservoir', 0.0)
2759+
call g_tracer_set_values(tracer_list, 'bdetfe', 'btm_reservoir', 0.0)
27582760

27592761
call g_tracer_get_pointer(tracer_list, 'caco3_sediment', 'field', wombat%p_caco3_sediment)
27602762
wombat%p_caco3_sediment(:,:,1) = wombat%p_caco3_sediment(:,:,1) + wombat%caco3_btm(:,:) * (1.0-wombat%fbury(:,:)) ! [mol/m2]
@@ -2895,6 +2897,7 @@ subroutine generic_WOMBATmid_update_from_source(tracer_list, Temp, Salt, &
28952897
real :: mesexcrphyfe, mesexcrdiafe, mesexcrdetfe, mesexcrbdetfe, mesexcrzoofe
28962898
real, dimension(:,:), allocatable :: ek_bgr, par_bgr_mid, par_bgr_top
28972899
real, dimension(:), allocatable :: wsink1, wsink2, wsinkcal
2900+
real :: max_wsink
28982901
real, dimension(4,61) :: zbgr
28992902
real :: ztemk, I_ztemk, fe_keq, fe_par, fe_sfe, fe_tfe, partic
29002903
real :: fesol1, fesol2, fesol3, fesol4, fesol5, hp, fe3sol
@@ -3701,7 +3704,7 @@ subroutine generic_WOMBATmid_update_from_source(tracer_list, Temp, Salt, &
37013704
! Coagulation of colloidal Fe (umol/m3) to form sinking particles (mmol/m3)
37023705
! Following Tagliabue et al. (2023), make coagulation rate dependent on DOC and Phytoplankton biomass
37033706
biof = max(1/3., biophy / (biophy + 0.03))
3704-
biodoc = 10.0 + (1.0 - min(wombat%phy_lnit(i,j,k), wombat%phy_lfer(i,j,k))) * 40.0 ! proxy of DOC (mmol/m3)
3707+
biodoc = 40.0 + (1.0 - min(wombat%phy_lnit(i,j,k), wombat%phy_lfer(i,j,k))) * 40.0 ! proxy of DOC (mmol/m3)
37053708
! Colloidal shunt associated with small particles and DOC (Tagliabue et al., 2023)
37063709
if (wombat%zw(i,j,k).le.hblt_depth(i,j)) then
37073710
zval = ( (12.*biof*biodoc + 9.*biodet) + 2.5*biodet + 128.*biof*biodoc + 725.*biodet )*wombat%kcoag_dfe
@@ -4600,7 +4603,6 @@ subroutine generic_WOMBATmid_update_from_source(tracer_list, Temp, Salt, &
46004603
! Increase sinking rate with depth to achieve power law behaviour
46014604
wsink1(k) = wsink1(k) + max(0.0, wombat%zw(i,j,k)/5000.0 * (wombat%wdetmax - wsink1(k)))
46024605
wsink2(k) = wsink2(k) + max(0.0, wombat%zw(i,j,k)/5000.0 * (wombat%wdetmax - wsink2(k)))
4603-
! Ensure that we don't violate the CFL criterion
46044606
! CaCO3 sinks slower than general detritus because it tends to be smaller
46054607
wsinkcal(k) = wsink1(k) * wombat%wcaco3/wombat%wdetbio
46064608
enddo

0 commit comments

Comments
 (0)