Skip to content

Commit 6ba6109

Browse files
Apply suggestions from code review
Co-authored-by: Dougie Squire <[email protected]>
1 parent e2ca7cf commit 6ba6109

File tree

1 file changed

+57
-64
lines changed

1 file changed

+57
-64
lines changed

generic_tracers/generic_WOMBATmid.F90

Lines changed: 57 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -685,7 +685,6 @@ module generic_WOMBATmid
685685
p_wcaco3, &
686686
p_wafe, &
687687
p_wbafe
688-
689688

690689
real, dimension(:,:), pointer :: &
691690
p_no3_stf, &
@@ -3326,7 +3325,6 @@ subroutine user_add_tracers(tracer_list)
33263325

33273326
! Silicic acid (H4SiO4)
33283327
!-----------------------------------------------------------------------
3329-
! dts: There is currently no sea-ice coupling of Ammonium
33303328
call g_tracer_add(tracer_list, package_name, &
33313329
name = 'sil', &
33323330
longname = 'Silicic acid', &
@@ -3543,13 +3541,11 @@ subroutine user_add_tracers(tracer_list)
35433541
units = 'mol/kg', &
35443542
prog = .true., &
35453543
flux_gas = .true., &
3546-
flux_bottom = .false., &
35473544
flux_gas_name = 'n2o_flux', &
35483545
flux_gas_type = 'air_sea_gas_flux_generic', &
35493546
flux_gas_molwt = WTMCO2, & !pjb: N2O molar mass is 44.01 g/mol, same as CO2
35503547
flux_gas_param = (/ as_coeff_wombatmid, 9.7561e-06 /), & ! dts: param(2) converts Pa -> atm
3551-
flux_gas_restart_file = 'ocean_wombatmid_airsea_flux.res.nc', &
3552-
flux_virtual = .false.)
3548+
flux_gas_restart_file = 'ocean_wombatmid_airsea_flux.res.nc')
35533549

35543550
! CaCO3
35553551
!-----------------------------------------------------------------------
@@ -3814,7 +3810,6 @@ subroutine generic_WOMBATmid_update_from_bottom(tracer_list, dt, tau, model_time
38143810
call g_tracer_get_values(tracer_list, 'caco3', 'btm_reservoir', wombat%caco3_btm, isd, jsd)
38153811
call g_tracer_get_values(tracer_list, 'afe', 'btm_reservoir', wombat%afe_btm, isd, jsd)
38163812
call g_tracer_get_values(tracer_list, 'bafe', 'btm_reservoir', wombat%bafe_btm, isd, jsd)
3817-
38183813

38193814
! Calculate burial of deposited detritus (Dunne et al., 2007)
38203815
wombat%fbury(:,:) = 0.0
@@ -3859,7 +3854,6 @@ subroutine generic_WOMBATmid_update_from_bottom(tracer_list, dt, tau, model_time
38593854
call g_tracer_set_values(tracer_list, 'afe', 'btm_reservoir', 0.0)
38603855
call g_tracer_set_values(tracer_list, 'bafe', 'btm_reservoir', 0.0)
38613856

3862-
38633857
! Send diagnostics
38643858
!-----------------------------------------------------------------------
38653859
if (wombat%id_det_sed_depst .gt. 0) &
@@ -3974,11 +3968,11 @@ subroutine generic_WOMBATmid_update_from_source(tracer_list, Temp, Salt, &
39743968
real :: rdtts ! 1 / dt
39753969
real, dimension(nbands) :: sw_pen
39763970
real :: swpar
3977-
real :: u_npz, g_npz, m_npz, Xzoo, Xmes
3971+
real :: u_npz, g_npz, m_npz, Xzoo, I_Xzoo, Xmes, I_Xmes
39783972
real :: biono3, bion2o, bionh4, biooxy, biofer, biosil, biodoc, biodon, biocaco3
39793973
real :: biophy, biodia, biozoo, biomes, biodet, biobdet, biobac1, biobac2, bioaoa
39803974
real :: biophyfe, biodiafe, biodiasi, biozoofe, biomesfe, zooprey, mesprey
3981-
real :: denom, wzbac1, wzbac2, wzaoa, wzphy, wzdia, wzdet, wzbdet, wzzoo, wzmes, wzsum
3975+
real :: I_denom, wzbac1, wzbac2, wzaoa, wzphy, wzdia, wzdet, wzbdet, wzzoo, wzmes, I_wzsum
39823976
real :: fbc
39833977
real :: no3_bgc_change, caco3_bgc_change
39843978
real :: epsi = 1.0e-30
@@ -4721,7 +4715,6 @@ subroutine generic_WOMBATmid_update_from_source(tracer_list, Temp, Salt, &
47214715
dia_Si2C = max(epsi, wombat%f_diasi(i,j,k))/ max(epsi, wombat%f_dia(i,j,k))
47224716
bdet_Si2C= max(epsi, wombat%f_bdetsi(i,j,k))/max(epsi, wombat%f_bdet(i,j,k))
47234717

4724-
47254718

47264719
!-----------------------------------------------------------------------!
47274720
!-----------------------------------------------------------------------!
@@ -4894,8 +4887,8 @@ subroutine generic_WOMBATmid_update_from_source(tracer_list, Temp, Salt, &
48944887
* biofer / (biofer + wombat%dia_kfe(i,j,k)) &
48954888
* wombat%dia_feupreg(i,j,k) &
48964889
* wombat%dia_fedoreg(i,j,k))) * mmol_m3_to_mol_kg
4897-
4898-
4890+
4891+
48994892
!-----------------------------------------------------------------------!
49004893
!-----------------------------------------------------------------------!
49014894
!-----------------------------------------------------------------------!
@@ -5081,22 +5074,22 @@ subroutine generic_WOMBATmid_update_from_source(tracer_list, Temp, Salt, &
50815074
!!!~~~ Zooplankton ~~~!!!
50825075
! Grazing function ! [1/s]
50835076
! normalize the prey preference kernal to reflect dietary fractions (Gentleman et al., (2003) DSRII)
5084-
denom = (wombat%zprefbac1 + wombat%zprefbac2 + wombat%zprefaoa + wombat%zprefphy + wombat%zprefdia + wombat%zprefdet)
5085-
wombat%zooprefbac1(i,j,k) = wombat%zprefbac1 / denom
5086-
wombat%zooprefbac2(i,j,k) = wombat%zprefbac2 / denom
5087-
wombat%zooprefaoa(i,j,k) = wombat%zprefaoa / denom
5088-
wombat%zooprefphy(i,j,k) = wombat%zprefphy / denom
5089-
wombat%zooprefdia(i,j,k) = wombat%zprefdia / denom
5090-
wombat%zooprefdet(i,j,k) = wombat%zprefdet / denom
5077+
I_denom = 1.0 / (wombat%zprefbac1 + wombat%zprefbac2 + wombat%zprefaoa + wombat%zprefphy + wombat%zprefdia + wombat%zprefdet)
5078+
wombat%zooprefbac1(i,j,k) = wombat%zprefbac1 * I_denom
5079+
wombat%zooprefbac2(i,j,k) = wombat%zprefbac2 * I_denom
5080+
wombat%zooprefaoa(i,j,k) = wombat%zprefaoa * I_denom
5081+
wombat%zooprefphy(i,j,k) = wombat%zprefphy * I_denom
5082+
wombat%zooprefdia(i,j,k) = wombat%zprefdia * I_denom
5083+
wombat%zooprefdet(i,j,k) = wombat%zprefdet * I_denom
50915084

50925085
! Gentleman et al. (2003) DSRII
50935086
! - add a switching component designed to weight the diet towards abundant prey
50945087
! - see their Eq. 19
50955088
! Emulates empirical basis of selective feeding on more abundant prey (Kiorboe et al., 2017; L&O)
50965089
! ... if denominator is zero, then set all preferences to 1/3 (this is a failsafe, but it should not happen)
5097-
denom = wombat%zooprefbac1(i,j,k) + wombat%zooprefbac2(i,j,k) + wombat%zooprefaoa(i,j,k) &
5090+
zval = wombat%zooprefbac1(i,j,k) + wombat%zooprefbac2(i,j,k) + wombat%zooprefaoa(i,j,k) &
50985091
+ wombat%zooprefphy(i,j,k) + wombat%zooprefdia(i,j,k) + wombat%zooprefdet(i,j,k)
5099-
if (denom .lt. epsi) then
5092+
if (zval .lt. epsi) then
51005093
wombat%zooprefbac1(i,j,k) = 1.0/6.0; wombat%zooprefbac2(i,j,k) = 1.0/6.0; wombat%zooprefaoa(i,j,k) = 1.0/6.0
51015094
wombat%zooprefphy(i,j,k) = 1.0/6.0; wombat%zooprefdia(i,j,k) = 1.0/6.0; wombat%zooprefdet(i,j,k) = 1.0/6.0
51025095
else
@@ -5106,13 +5099,13 @@ subroutine generic_WOMBATmid_update_from_source(tracer_list, Temp, Salt, &
51065099
wzphy = (wombat%zooprefphy(i,j,k) * biophy)**wombat%zoopreyswitch
51075100
wzdia = (wombat%zooprefdia(i,j,k) * biodia)**wombat%zoopreyswitch
51085101
wzdet = (wombat%zooprefdet(i,j,k) * biodet)**wombat%zoopreyswitch
5109-
wzsum = wzbac1 + wzbac2 + wzaoa + wzphy + wzdia + wzdet + epsi
5110-
wombat%zooprefbac1(i,j,k) = wzbac1 / wzsum
5111-
wombat%zooprefbac2(i,j,k) = wzbac2 / wzsum
5112-
wombat%zooprefaoa(i,j,k) = wzaoa / wzsum
5113-
wombat%zooprefphy(i,j,k) = wzphy / wzsum
5114-
wombat%zooprefdia(i,j,k) = wzdia / wzsum
5115-
wombat%zooprefdet(i,j,k) = wzdet / wzsum
5102+
I_wzsum = 1.0 / (wzbac1 + wzbac2 + wzaoa + wzphy + wzdia + wzdet + epsi)
5103+
wombat%zooprefbac1(i,j,k) = wzbac1 * I_wzsum
5104+
wombat%zooprefbac2(i,j,k) = wzbac2 * I_wzsum
5105+
wombat%zooprefaoa(i,j,k) = wzaoa * I_wzsum
5106+
wombat%zooprefphy(i,j,k) = wzphy * I_wzsum
5107+
wombat%zooprefdia(i,j,k) = wzdia * I_wzsum
5108+
wombat%zooprefdet(i,j,k) = wzdet * I_wzsum
51165109
endif
51175110
! Compute sum of prey-specific Type-III terms to obtain grazing rate [1/s]
51185111
! - this avoids "perfect substitution" of prey types and aligns with reccommendations of Gentleman et al. (2003)
@@ -5135,24 +5128,24 @@ subroutine generic_WOMBATmid_update_from_source(tracer_list, Temp, Salt, &
51355128
!!!~~~ Mesozooplankton ~~~!!!
51365129
! Grazing function ! [1/s]
51375130
! normalize the prey preference kernal to reflect dietary fractions (Gentleman et al., (2003) DSRII)
5138-
denom = ( wombat%mprefbac1 + wombat%mprefbac2 + wombat%mprefaoa + wombat%mprefphy &
5131+
I_denom = 1.0 / ( wombat%mprefbac1 + wombat%mprefbac2 + wombat%mprefaoa + wombat%mprefphy &
51395132
+ wombat%mprefdia + wombat%mprefdet + wombat%mprefzoo )
5140-
wombat%mesprefbac1(i,j,k) = wombat%mprefbac1 / denom
5141-
wombat%mesprefbac2(i,j,k) = wombat%mprefbac2 / denom
5142-
wombat%mesprefaoa(i,j,k) = wombat%mprefaoa / denom
5143-
wombat%mesprefphy(i,j,k) = wombat%mprefphy / denom
5144-
wombat%mesprefdia(i,j,k) = wombat%mprefdia / denom
5145-
wombat%mesprefdet(i,j,k) = wombat%mprefdet / denom
5146-
wombat%mesprefbdet(i,j,k) = wombat%mprefbdet / denom
5147-
wombat%mesprefzoo(i,j,k) = wombat%mprefzoo / denom
5148-
denom = wombat%mesprefbac1(i,j,k) + wombat%mesprefbac2(i,j,k) + wombat%mesprefaoa(i,j,k) + wombat%mesprefphy(i,j,k) &
5133+
wombat%mesprefbac1(i,j,k) = wombat%mprefbac1 * I_denom
5134+
wombat%mesprefbac2(i,j,k) = wombat%mprefbac2 * I_denom
5135+
wombat%mesprefaoa(i,j,k) = wombat%mprefaoa * I_denom
5136+
wombat%mesprefphy(i,j,k) = wombat%mprefphy * I_denom
5137+
wombat%mesprefdia(i,j,k) = wombat%mprefdia * I_denom
5138+
wombat%mesprefdet(i,j,k) = wombat%mprefdet * I_denom
5139+
wombat%mesprefbdet(i,j,k) = wombat%mprefbdet * I_denom
5140+
wombat%mesprefzoo(i,j,k) = wombat%mprefzoo * I_denom
5141+
zval = wombat%mesprefbac1(i,j,k) + wombat%mesprefbac2(i,j,k) + wombat%mesprefaoa(i,j,k) + wombat%mesprefphy(i,j,k) &
51495142
+ wombat%mesprefdia(i,j,k) + wombat%mesprefdet(i,j,k) + wombat%mesprefbdet(i,j,k) + wombat%mesprefzoo(i,j,k)
51505143
! Gentleman et al. (2003) DSRII
51515144
! - add a switching component designed to weight the diet towards abundant prey
51525145
! - see their Eq. 19
51535146
! Emulates empirical basis of selective feeding on more abundant prey (Kiorboe et al., 2017; L&O)
51545147
! ... if denominator is zero, then set all preferences to 1/3 (this is a failsafe, but it should not happen)
5155-
if (denom .lt. 1e-20) then
5148+
if (zval .lt. 1e-20) then
51565149
wombat%mesprefbac1(i,j,k) = 1.0/8.0; wombat%mesprefbac2(i,j,k) = 1.0/8.0; wombat%mesprefaoa(i,j,k) = 1.0/8.0
51575150
wombat%mesprefphy(i,j,k) = 1.0/8.0; wombat%mesprefdia(i,j,k) = 1.0/8.0; wombat%mesprefdet(i,j,k) = 1.0/8.0
51585151
wombat%mesprefbdet(i,j,k) = 1.0/8.0; wombat%mesprefzoo(i,j,k) = 1.0/8.0
@@ -5165,15 +5158,15 @@ subroutine generic_WOMBATmid_update_from_source(tracer_list, Temp, Salt, &
51655158
wzdet = (wombat%mesprefdet(i,j,k) * biodet)**wombat%mespreyswitch
51665159
wzbdet= (wombat%mesprefbdet(i,j,k) * biobdet)**wombat%mespreyswitch
51675160
wzzoo = (wombat%mesprefzoo(i,j,k) * biozoo)**wombat%mespreyswitch
5168-
wzsum = wzbac1 + wzbac2 + wzaoa + wzphy + wzdia + wzdet + wzbdet + wzzoo + epsi
5169-
wombat%mesprefbac1(i,j,k) = wzbac1 / wzsum
5170-
wombat%mesprefbac2(i,j,k) = wzbac2 / wzsum
5171-
wombat%mesprefaoa(i,j,k) = wzaoa / wzsum
5172-
wombat%mesprefphy(i,j,k) = wzphy / wzsum
5173-
wombat%mesprefdia(i,j,k) = wzdia / wzsum
5174-
wombat%mesprefdet(i,j,k) = wzdet / wzsum
5175-
wombat%mesprefbdet(i,j,k) = wzbdet / wzsum
5176-
wombat%mesprefzoo(i,j,k) = wzzoo / wzsum
5161+
I_wzsum = 1.0 / (wzbac1 + wzbac2 + wzaoa + wzphy + wzdia + wzdet + wzbdet + wzzoo + epsi)
5162+
wombat%mesprefbac1(i,j,k) = wzbac1 * I_wzsum
5163+
wombat%mesprefbac2(i,j,k) = wzbac2 * I_wzsum
5164+
wombat%mesprefaoa(i,j,k) = wzaoa * I_wzsum
5165+
wombat%mesprefphy(i,j,k) = wzphy * I_wzsum
5166+
wombat%mesprefdia(i,j,k) = wzdia * I_wzsum
5167+
wombat%mesprefdet(i,j,k) = wzdet * I_wzsum
5168+
wombat%mesprefbdet(i,j,k) = wzbdet * I_wzsum
5169+
wombat%mesprefzoo(i,j,k) = wzzoo * I_wzsum
51775170
endif
51785171
! Compute sum of prey-specific Type-III terms to obtain grazing rate [1/s]
51795172
! - this avoids "perfect substitution" of prey types and aligns with reccommendations of Gentleman et al. (2003)
@@ -5288,7 +5281,6 @@ subroutine generic_WOMBATmid_update_from_source(tracer_list, Temp, Salt, &
52885281
! Take the maximum growth rate as the realised growth rate
52895282
wombat%bac1_mu(i,j,k) = max(bac_muaer, bac_muana)
52905283

5291-
52925284
!!!~~~ Bacterial type #2 ~~~!!!
52935285
! Uptake of DOC (i.e., DOC-limited growth)
52945286
wombat%bac2_kdoc(i,j,k) = wombat%bac2_kdoc_min + 2.0 * (wombat%bac2_kdoc_max - wombat%bac2_kdoc_min) &
@@ -5306,7 +5298,6 @@ subroutine generic_WOMBATmid_update_from_source(tracer_list, Temp, Salt, &
53065298
! Take the maximum growth rate as the realised growth rate
53075299
wombat%bac2_mu(i,j,k) = max(bac_muaer, bac_muana)
53085300

5309-
53105301
! Determine if bacteria are limited by N or Fe
53115302
if (wombat%bac1_mu(i,j,k)*wombat%f_bac1(i,j,k).gt.0.0) then
53125303
! Initial estimate of the C biomass growth, DOC and DON assimilation rate by bacteria
@@ -5532,12 +5523,13 @@ subroutine generic_WOMBATmid_update_from_source(tracer_list, Temp, Salt, &
55325523
endif
55335524
! Grazing by microzooplankton
55345525
if (Xzoo.gt.epsi) then
5535-
wombat%zoograzbac1(i,j,k) = g_npz * wombat%f_zoo(i,j,k) * wombat%zooepsbac1*(wombat%zooprefbac1(i,j,k)*biobac1)**2 / Xzoo ! [molC/kg/s]
5536-
wombat%zoograzbac2(i,j,k) = g_npz * wombat%f_zoo(i,j,k) * wombat%zooepsbac2*(wombat%zooprefbac2(i,j,k)*biobac2)**2 / Xzoo ! [molC/kg/s]
5537-
wombat%zoograzaoa(i,j,k) = g_npz * wombat%f_zoo(i,j,k) * wombat%zooepsaoa*(wombat%zooprefaoa(i,j,k)*bioaoa)**2 / Xzoo ! [molC/kg/s]
5538-
wombat%zoograzphy(i,j,k) = g_npz * wombat%f_zoo(i,j,k) * wombat%zooepsphy*(wombat%zooprefphy(i,j,k)*biophy)**2 / Xzoo ! [molC/kg/s]
5539-
wombat%zoograzdia(i,j,k) = g_npz * wombat%f_zoo(i,j,k) * wombat%zooepsdia*(wombat%zooprefdia(i,j,k)*biodia)**2 / Xzoo ! [molC/kg/s]
5540-
wombat%zoograzdet(i,j,k) = g_npz * wombat%f_zoo(i,j,k) * wombat%zooepsdet*(wombat%zooprefdet(i,j,k)*biodet)**2 / Xzoo ! [molC/kg/s]
5526+
I_Xzoo = 1.0 / Xzoo
5527+
wombat%zoograzbac1(i,j,k) = g_npz * wombat%f_zoo(i,j,k) * wombat%zooepsbac1*(wombat%zooprefbac1(i,j,k)*biobac1)**2 * I_Xzoo ! [molC/kg/s]
5528+
wombat%zoograzbac2(i,j,k) = g_npz * wombat%f_zoo(i,j,k) * wombat%zooepsbac2*(wombat%zooprefbac2(i,j,k)*biobac2)**2 * I_Xzoo ! [molC/kg/s]
5529+
wombat%zoograzaoa(i,j,k) = g_npz * wombat%f_zoo(i,j,k) * wombat%zooepsaoa*(wombat%zooprefaoa(i,j,k)*bioaoa)**2 * I_Xzoo ! [molC/kg/s]
5530+
wombat%zoograzphy(i,j,k) = g_npz * wombat%f_zoo(i,j,k) * wombat%zooepsphy*(wombat%zooprefphy(i,j,k)*biophy)**2 * I_Xzoo ! [molC/kg/s]
5531+
wombat%zoograzdia(i,j,k) = g_npz * wombat%f_zoo(i,j,k) * wombat%zooepsdia*(wombat%zooprefdia(i,j,k)*biodia)**2 * I_Xzoo ! [molC/kg/s]
5532+
wombat%zoograzdet(i,j,k) = g_npz * wombat%f_zoo(i,j,k) * wombat%zooepsdet*(wombat%zooprefdet(i,j,k)*biodet)**2 * I_Xzoo ! [molC/kg/s]
55415533
else
55425534
wombat%zoograzbac1(i,j,k) = 0.0
55435535
wombat%zoograzbac2(i,j,k) = 0.0
@@ -5591,14 +5583,15 @@ subroutine generic_WOMBATmid_update_from_source(tracer_list, Temp, Salt, &
55915583

55925584
! Grazing by mesozooplankton
55935585
if (Xmes.gt.epsi) then
5594-
wombat%mesgrazbac1(i,j,k) = m_npz * wombat%f_mes(i,j,k) * wombat%mesepsbac1*(wombat%mesprefbac1(i,j,k)*biobac1)**2 / Xmes ! [molC/kg/s]
5595-
wombat%mesgrazbac2(i,j,k) = m_npz * wombat%f_mes(i,j,k) * wombat%mesepsbac2*(wombat%mesprefbac2(i,j,k)*biobac2)**2 / Xmes ! [molC/kg/s]
5596-
wombat%mesgrazaoa(i,j,k) = m_npz * wombat%f_mes(i,j,k) * wombat%mesepsaoa*(wombat%mesprefaoa(i,j,k)*bioaoa)**2 / Xmes ! [molC/kg/s]
5597-
wombat%mesgrazphy(i,j,k) = m_npz * wombat%f_mes(i,j,k) * wombat%mesepsphy*(wombat%mesprefphy(i,j,k)*biophy)**2 / Xmes ! [molC/kg/s]
5598-
wombat%mesgrazdia(i,j,k) = m_npz * wombat%f_mes(i,j,k) * wombat%mesepsdia*(wombat%mesprefdia(i,j,k)*biodia)**2 / Xmes ! [molC/kg/s]
5599-
wombat%mesgrazdet(i,j,k) = m_npz * wombat%f_mes(i,j,k) * wombat%mesepsdet*(wombat%mesprefdet(i,j,k)*biodet)**2 / Xmes ! [molC/kg/s]
5600-
wombat%mesgrazbdet(i,j,k) = m_npz * wombat%f_mes(i,j,k) * wombat%mesepsbdet*(wombat%mesprefbdet(i,j,k)*biobdet)**2 / Xmes ! [molC/kg/s]
5601-
wombat%mesgrazzoo(i,j,k) = m_npz * wombat%f_mes(i,j,k) * wombat%mesepszoo*(wombat%mesprefzoo(i,j,k)*biozoo)**2 / Xmes ! [molC/kg/s]
5586+
I_Xmes = 1.0 / Xmes
5587+
wombat%mesgrazbac1(i,j,k) = m_npz * wombat%f_mes(i,j,k) * wombat%mesepsbac1*(wombat%mesprefbac1(i,j,k)*biobac1)**2 * I_Xmes ! [molC/kg/s]
5588+
wombat%mesgrazbac2(i,j,k) = m_npz * wombat%f_mes(i,j,k) * wombat%mesepsbac2*(wombat%mesprefbac2(i,j,k)*biobac2)**2 * I_Xmes ! [molC/kg/s]
5589+
wombat%mesgrazaoa(i,j,k) = m_npz * wombat%f_mes(i,j,k) * wombat%mesepsaoa*(wombat%mesprefaoa(i,j,k)*bioaoa)**2 * I_Xmes ! [molC/kg/s]
5590+
wombat%mesgrazphy(i,j,k) = m_npz * wombat%f_mes(i,j,k) * wombat%mesepsphy*(wombat%mesprefphy(i,j,k)*biophy)**2 * I_Xmes ! [molC/kg/s]
5591+
wombat%mesgrazdia(i,j,k) = m_npz * wombat%f_mes(i,j,k) * wombat%mesepsdia*(wombat%mesprefdia(i,j,k)*biodia)**2 * I_Xmes ! [molC/kg/s]
5592+
wombat%mesgrazdet(i,j,k) = m_npz * wombat%f_mes(i,j,k) * wombat%mesepsdet*(wombat%mesprefdet(i,j,k)*biodet)**2 * I_Xmes ! [molC/kg/s]
5593+
wombat%mesgrazbdet(i,j,k) = m_npz * wombat%f_mes(i,j,k) * wombat%mesepsbdet*(wombat%mesprefbdet(i,j,k)*biobdet)**2 * I_Xmes ! [molC/kg/s]
5594+
wombat%mesgrazzoo(i,j,k) = m_npz * wombat%f_mes(i,j,k) * wombat%mesepszoo*(wombat%mesprefzoo(i,j,k)*biozoo)**2 * I_Xmes ! [molC/kg/s]
56025595
else
56035596
wombat%mesgrazbac1(i,j,k) = 0.0
56045597
wombat%mesgrazbac2(i,j,k) = 0.0

0 commit comments

Comments
 (0)