@@ -137,7 +137,7 @@ module generic_WOMBATmid
137
137
! =======================================================================
138
138
character (len= 10 ) :: co2_calc = ' mocsy' ! other option is 'ocmip2'
139
139
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?
141
141
logical :: do_conserve_tracers = .false. ! add back the lost NO3 and Alk due to burial to surface?
142
142
logical :: do_open_n_cycle = .true. ! N cycle has denitrification, anammox and nitrogen fixation?
143
143
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
2751
2751
call g_tracer_get_pointer(tracer_list, ' det_sediment' , ' field' , wombat% p_det_sediment)
2752
2752
wombat% p_det_sediment(:,:,1 ) = wombat% p_det_sediment(:,:,1 ) + (wombat% det_btm(:,:) + wombat% bdet_btm(:,:)) * (1.0 - wombat% fbury(:,:)) ! [mol/m2]
2753
2753
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 )
2754
2755
2755
2756
call g_tracer_get_pointer(tracer_list, ' detfe_sediment' , ' field' , wombat% p_detfe_sediment)
2756
2757
wombat% p_detfe_sediment(:,:,1 ) = wombat% p_detfe_sediment(:,:,1 ) + (wombat% detfe_btm(:,:) + wombat% bdetfe_btm(:,:)) * (1.0 - wombat% fbury(:,:)) ! [mol/m2]
2757
2758
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 )
2758
2760
2759
2761
call g_tracer_get_pointer(tracer_list, ' caco3_sediment' , ' field' , wombat% p_caco3_sediment)
2760
2762
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, &
2895
2897
real :: mesexcrphyfe, mesexcrdiafe, mesexcrdetfe, mesexcrbdetfe, mesexcrzoofe
2896
2898
real , dimension (:,:), allocatable :: ek_bgr, par_bgr_mid, par_bgr_top
2897
2899
real , dimension (:), allocatable :: wsink1, wsink2, wsinkcal
2900
+ real :: max_wsink
2898
2901
real , dimension (4 ,61 ) :: zbgr
2899
2902
real :: ztemk, I_ztemk, fe_keq, fe_par, fe_sfe, fe_tfe, partic
2900
2903
real :: fesol1, fesol2, fesol3, fesol4, fesol5, hp, fe3sol
@@ -3701,7 +3704,7 @@ subroutine generic_WOMBATmid_update_from_source(tracer_list, Temp, Salt, &
3701
3704
! Coagulation of colloidal Fe (umol/m3) to form sinking particles (mmol/m3)
3702
3705
! Following Tagliabue et al. (2023), make coagulation rate dependent on DOC and Phytoplankton biomass
3703
3706
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)
3705
3708
! Colloidal shunt associated with small particles and DOC (Tagliabue et al., 2023)
3706
3709
if (wombat% zw(i,j,k).le. hblt_depth(i,j)) then
3707
3710
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, &
4600
4603
! Increase sinking rate with depth to achieve power law behaviour
4601
4604
wsink1(k) = wsink1(k) + max (0.0 , wombat% zw(i,j,k)/ 5000.0 * (wombat% wdetmax - wsink1(k)))
4602
4605
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
4604
4606
! CaCO3 sinks slower than general detritus because it tends to be smaller
4605
4607
wsinkcal(k) = wsink1(k) * wombat% wcaco3/ wombat% wdetbio
4606
4608
enddo
0 commit comments