Commit e57d1d1d authored by Dany Dumont's avatar Dany Dumont
Browse files

Merge branch 'master' of gitlasso.uqar.ca:dumoda01/gotm_ismer

Conflicts:
	src/Rules.make
parents 0f87998d 5ab2e8dc
...@@ -8,7 +8,7 @@ can_do_F90 = true ...@@ -8,7 +8,7 @@ can_do_F90 = true
F90_to_f90 = $(FC) -E $(F90FLAGS) $(EXTRA_FFLAGS) $< > $@ F90_to_f90 = $(FC) -E $(F90FLAGS) $(EXTRA_FFLAGS) $< > $@
#MODULES = -M $(MODDIR) #MODULES = -M $(MODDIR)
MODULES = -J $(MODDIR) MODULES = -J $(MODDIR)
EXTRAS = -ffree-form -Wall -std=f95 -pedantic EXTRAS = -ffree-form -std=f95 -pedantic
DEBUG_FLAGS = -g DEBUG_FLAGS = -g
PROF_FLAGS = -p PROF_FLAGS = -p
PROD_FLAGS = -O0 PROD_FLAGS = -O0
......
...@@ -64,6 +64,7 @@ ...@@ -64,6 +64,7 @@
! mu4 = detritus breakdown rate [1/day] ! mu4 = detritus breakdown rate [1/day]
! mu5 = nitrification rate [1/day] ! mu5 = nitrification rate [1/day]
! w_d = detritus settling velocity [m/day] ! w_d = detritus settling velocity [m/day]
! w_h = hydrocarbon settling velocity [m/day]
! kc = attenuation constant for the self shading effect [m**2/mmol N] ! kc = attenuation constant for the self shading effect [m**2/mmol N]
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
&bio_gsj_nml &bio_gsj_nml
...@@ -111,6 +112,8 @@ ...@@ -111,6 +112,8 @@
k3 = 1.0 k3 = 1.0
beta = 0.625 beta = 0.625
mu21 = 0.3 mu21 = 0.3
mu21max = 1.5
bhc = 11.1
mu22 = 0.3 mu22 = 0.3
k6 = 0.2 k6 = 0.2
delta = 0.1 delta = 0.1
...@@ -130,7 +133,7 @@ ...@@ -130,7 +133,7 @@
w_h = 100.0 w_h = 100.0
mu3 = 0.03 mu3 = 0.03
etaa = 0.0 etaa = 0.0
etah = 0.0 etah = 0.2
mu4 = 0.02 mu4 = 0.02
mu5 = 0.00 mu5 = 0.00
w_d = -5.0 w_d = -5.0
......
#$Id$
!-------------------------------------------------------------------------------
! Fasham et al. biological model with modifications by Kuehn and Radach
!
! numc= number of compartments for geobiochemical model
!
! p1_init = initial flagellate concentration [mmol n/m3]
! p2_init = initial diatom concentration [mmol n/m3]
! z1_init = initial micro-zooplakton concentration [mmol n/m3]
! z2_init = initial meso-zooplakton concentration [mmol n/m3]
! b_init = initial bacteria concentration [mmol n/m3]
! d_init = initial detritus concentration [mmol n/m3]
! l_init = initial LDON concentration [mmol n/m3]
! p0 = minimum phytoplankton concentration [mmol n/m3]
! z0 = minimum zooplakton concentration [mmol n/m3]
! b0 = minimum bacteria concentration [mmol n/m3]
! mte = if .true. use temperature-dependent metabolic rates
! ca1 = temp-dependence coeff for p1
! ca2 = temp-dependence coeff for p2
! ch1 = temp-dependence coeff for z1
! ch2 = temp-dependence coeff for z2
! amratio = Mass ratio between p2 and p1
! hmratio = Mass ratio between z2 and z1
! vp1 = maximum flagellate uptake rate by flagellates [1/day]
! vp2 = maximum diatom uptake rate by diatoms [1/day]
! alpha1 = slope of the flagellate PI-curve [m2/(W day)]
! alpha2 = slope of the diatom PI-curve [m2/(W day)]
! inib1 = inhibition slope of the flagellate PI-curve (pos.) [m2/(W day)]
! inib2 = inhibition slope of the PI-curve (pos.) [m2/(W day)]
! kn1 = half sat. constant nitrate uptake by p1 [mmol n/m3]
! ka1 = half sat. constant ammonium uptake by p1 [mmol n/m3]
! kn2 = half sat. constant nitrate uptake by p2 [mmol n/m3]
! ka2 = half sat. constant ammonium uptake by p2 [mmol n/m3]
! mu11 = mortality rate for p1 [1/day]
! mu12 = mortality rate for p2 [1/day]
! k5 = half sat. constant phy. mortality [mmol n/m3]
! gamma = exudation fraction [-]
! w_p1 = settling velocity for p1 [m/day]
! w_p2 = settling velocity for p2 [m/day]
! theta = phytoplancton buoyancy parameter [m3 day/(mmol N)]
! g1max = maximum ingestion rate for z1 [1/day]
! g2max = maximum ingestion rate for z2 [1/day]
! k3 = half saturation constant ingestion [mmol n/m3]
! beta = grazing efficiency [-]
! k6 = half saturation zooplankton loss (z1 & z2) [mmol n/m3]
! mu21 = maximum loss rate for z1 [1/day]
! mu22 = maximum loss rate for z2 [1/day]
! delta = fractional zooplankton loss to LDON (z1 & z2) [-]
! epsi = fractional zooplankton loss to ammonium (z1 & z2) [-]
! r11 = z1 grazing preference on p1 [-]
! r12 = z1 grazing preference on p2 [-]
! r13 = z1 grazing preference on bacteria [-]
! r14 = z1 grazing preference on detritus [-]
! r21 = z2 grazing preference on p1 [-]
! r22 = z2 grazing preference on p2 [-]
! r23 = z2 grazing preference on detritus [-]
! r24 = z2 grazing preference on z1 [-]
! vb1 = maximum bac1 uptake rate [1/day]
! vb2 = maximum bac2 uptake rate [1/day]
! k4 = half saturation bacterial uptake [mmol n/m3]
! mu3 = bacteria excretion rate [1/day]
! etaa = uptake ratio ammonium:LDON [-]
! etah = uptake ratio hydrocarbon:LDON [-]
! mu4 = detritus breakdown rate [1/day]
! mu5 = nitrification rate [1/day]
! w_d = detritus settling velocity [m/day]
! w_h = hydrocarbon settling velocity [m/day]
! kc = attenuation constant for the self shading effect [m**2/mmol N]
!-------------------------------------------------------------------------------
&bio_gsj_nml
numc = 11
p1_init = 0.012
p2_init = 0.012
z1_init = 0.012
z2_init = 0.012
b_init = 0.001
d_init = 0.01
l_init = 0.1
p0 = 0.0001
z0 = 0.0001
b0 = 0.0001
mte = .true.
ca1 = 3.61
ca2 = 14.58
ch1 = 3.265
ch2 = 24.923
amratio = 200
hmratio = 1000
vp1 = 0.02
vp2 = 0.8
alpha1 = 0.02
alpha2 = 0.04
inib1 = 0.0
inib2 = 0.006
kn1 = 1.0
ka1 = 0.8
kn2 = 1.0
ka2 = 0.8
mu11 = 0.05
mu12 = 0.05
k5 = 0.2
gamma = 0.05
w_p1 =-0.38
w_p2 =-0.00
theta = 0.0
w_p1min =-0.01
w_p1max =-0.10
w_p2min =-0.05
w_p2max =-0.38
g1max = 1.0
g2max = 1.0
k3 = 1.0
beta = 0.625
mu21 = 0.3
mu22 = 0.3
k6 = 0.2
delta = 0.1
epsi = 0.70
r11 = 0.55
r12 = 0.30
r13 = 0.05
r14 = 0.10
r21 = 0.50
r22 = 0.30
r23 = 0.05
r24 = 0.15
vb1 = 0.24
vb2 = 0.24
k4 = 0.5
k10 = 0.5
w_h = 100.0
mu3 = 0.03
etaa = 0.0
etah = 0.2
mu4 = 0.02
mu5 = 0.00
w_d = -5.0
kc = 0.03
/
...@@ -12,8 +12,8 @@ endif ...@@ -12,8 +12,8 @@ endif
# Force this here. Could be done in bashrc. # Force this here. Could be done in bashrc.
#FORTRAN_COMPILER=PGF90 #FORTRAN_COMPILER=PGF90
#FORTRAN_COMPILER=GFORTRAN FORTRAN_COMPILER=GFORTRAN
FORTRAN_COMPILER=IFORT #FORTRAN_COMPILER=IFORT
DEFINES=-DNUDGE_VEL DEFINES=-DNUDGE_VEL
DEFINES=-D$(FORTRAN_COMPILER) DEFINES=-D$(FORTRAN_COMPILER)
......
...@@ -16,6 +16,7 @@ bio_sed.F90 \ ...@@ -16,6 +16,7 @@ bio_sed.F90 \
bio_fasham.F90 \ bio_fasham.F90 \
bio_ismer.F90 \ bio_ismer.F90 \
bio_gsj.F90 \ bio_gsj.F90 \
bio_nocera.F90 \
bio_save.F90 \ bio_save.F90 \
nitrate.F90 \ nitrate.F90 \
ammonium.F90 \ ammonium.F90 \
...@@ -31,6 +32,7 @@ ${LIB}(bio_mab.o) \ ...@@ -31,6 +32,7 @@ ${LIB}(bio_mab.o) \
${LIB}(bio_ismer.o) \ ${LIB}(bio_ismer.o) \
${LIB}(bio_gsj.o) \ ${LIB}(bio_gsj.o) \
${LIB}(bio_fasham.o) \ ${LIB}(bio_fasham.o) \
${LIB}(bio_nocera.o) \
${LIB}(bio_sed.o) \ ${LIB}(bio_sed.o) \
${LIB}(bio_save.o) \ ${LIB}(bio_save.o) \
${LIB}(nitrate.o) \ ${LIB}(nitrate.o) \
......
...@@ -176,6 +176,10 @@ ...@@ -176,6 +176,10 @@
do i=1,nlev do i=1,nlev
amm(i) = cc(9,i) amm(i) = cc(9,i)
end do end do
else if (bio_model.eq.8) then
do i=1,nlev
amm(i) = cc(6,i)
end do
end if end if
#endif #endif
......
...@@ -22,27 +22,30 @@ ...@@ -22,27 +22,30 @@
use bio_template, only : init_bio_template,init_var_template use bio_template, only : init_bio_template,init_var_template
use bio_template, only : var_info_template,light_template use bio_template, only : var_info_template,light_template
use bio_npzd, only : init_bio_npzd,init_var_npzd,var_info_npzd use bio_npzd, only : init_bio_npzd,init_var_npzd,var_info_npzd
use bio_npzd, only : light_npzd, do_bio_npzd use bio_npzd, only : light_npzd, do_bio_npzd
use bio_iow, only : init_bio_iow,init_var_iow,var_info_iow use bio_iow, only : init_bio_iow,init_var_iow,var_info_iow
use bio_iow, only : light_iow,surface_fluxes_iow,do_bio_iow use bio_iow, only : light_iow,surface_fluxes_iow,do_bio_iow
use bio_fasham, only : init_bio_fasham,init_var_fasham,var_info_fasham use bio_fasham, only : init_bio_fasham,init_var_fasham,var_info_fasham
use bio_fasham, only : light_fasham,do_bio_fasham use bio_fasham, only : light_fasham,do_bio_fasham
use bio_ismer, only : init_bio_ismer,init_var_ismer,var_info_ismer use bio_ismer, only : init_bio_ismer,init_var_ismer,var_info_ismer
use bio_ismer, only : light_ismer,do_bio_ismer use bio_ismer, only : light_ismer,do_bio_ismer
use bio_gsj, only : init_bio_gsj,init_var_gsj,var_info_gsj use bio_gsj, only : init_bio_gsj,init_var_gsj,var_info_gsj
use bio_gsj, only : light_gsj,do_bio_gsj use bio_gsj, only : light_gsj,do_bio_gsj
use bio_sed, only : init_bio_sed,init_var_sed,var_info_sed use bio_nocera, only : init_bio_nocera,init_var_nocera,var_info_nocera
use bio_nocera, only : light_nocera,do_bio_nocera
use bio_mab, only : init_bio_mab,init_var_mab,var_info_mab use bio_sed, only : init_bio_sed,init_var_sed,var_info_sed
use bio_mab, only : light_mab,surface_fluxes_mab,do_bio_mab
use output, only: out_fmt,write_results,ts use bio_mab, only : init_bio_mab,init_var_mab,var_info_mab
use bio_mab, only : light_mab,surface_fluxes_mab,do_bio_mab
use output, only : out_fmt,write_results,ts
use util use util
! !
...@@ -327,6 +330,16 @@ ...@@ -327,6 +330,16 @@
call var_info_gsj() call var_info_gsj()
case (8) ! The model of Ariadna Celina Nocera, modified from Fasham
call init_bio_nocera(namlst,'bio_nocera.nml',unit)
call allocate_memory(nlev)
call init_var_nocera(nlev)
call var_info_nocera()
case default case default
stop "bio: no valid biomodel specified in bio.nml !" stop "bio: no valid biomodel specified in bio.nml !"
end select end select
...@@ -710,6 +723,9 @@ ...@@ -710,6 +723,9 @@
case (7) case (7)
call light_gsj(nlev,bioshade_feedback) call light_gsj(nlev,bioshade_feedback)
call ode_solver(ode_method,numc,nlev,dt_eff,cc,do_bio_gsj) call ode_solver(ode_method,numc,nlev,dt_eff,cc,do_bio_gsj)
case (8)
call light_nocera(nlev,bioshade_feedback)
call ode_solver(ode_method,numc,nlev,dt_eff,cc,do_bio_nocera)
end select end select
end do end do
......
...@@ -97,8 +97,13 @@ ...@@ -97,8 +97,13 @@
REALTYPE :: k3 = 1.0 REALTYPE :: k3 = 1.0
REALTYPE :: beta = 0.625 REALTYPE :: beta = 0.625
REALTYPE :: mu21 = 0.3 REALTYPE :: mu21 = 0.3
REALTYPE :: mu22 = 0.3 REALTYPE :: mu21max = 1.5
REALTYPE :: k6 = 0.2 REALTYPE :: k6 = 0.2
REALTYPE :: k6hc = 31.4
REALTYPE :: bhc = 11.1
REALTYPE :: mhc = 5
REALTYPE :: mu22 = 0.3
REALTYPE :: mu22max = 1.5
REALTYPE :: delta = 0.1 REALTYPE :: delta = 0.1
REALTYPE :: epsi = 0.70 REALTYPE :: epsi = 0.70
REALTYPE :: r11 = 0.55 REALTYPE :: r11 = 0.55
...@@ -124,6 +129,79 @@ ...@@ -124,6 +129,79 @@
integer :: out_unit integer :: out_unit
integer, parameter :: n=1,p1=2,p2=3,z1=4,z2=5,d=6,l=7,b1=8,a=9,hc=10,b2=11 integer, parameter :: n=1,p1=2,p2=3,z1=4,z2=5,d=6,l=7,b1=8,a=9,hc=10,b2=11
!EOP !EOP
!! from a namelist
! p1_init : Small phytoplankton initial concentration
! p2_init : Large phytoplankton initial concentration
! z1_init : Small zooplankton initial concentration
! z2_init : Large zooplankton initial concentration
! b_init : Bacteria (Bac1) and OHC Bacteria (Bac2) initial concentration
! d_init : Detritus initial concentration
! l_init : Lablie Dissolved Organic Nitrogen (LDON) initial concentration
! p0 : Phytoplankton minimal concentration
! z0 : Zooplankton minimal concentration
! b0 : Bacteria minimal concentration
! mte : Temperature effect on phytoplankton and zooplankton loop
! hcz : Hydrocarbon mortality rate for large and small zooplankton
! ca1 :
! ca2 :
! ch1 :
! ch2 :
! amratio :
! hmratio :
! vp1 : Maximum uptake rate of small phytoplankton
! alpha1 : Slope of the small phytoplankton PI-curve
! inib1 : Inhibition slope of the small phytoplankton
! vp2 : Maximum uptake rate of large phytoplankton
! alpha2 : Slope of the large phytoplankton PI-curve
! inib2 : Inhibition slope of the large phytoplankton
! theta : Phytoplankton buoyancy parameter
! w_p1min : Maximum small phytoplankton settling velocity
! w_p1max : Minmimum small phytoplankton settling velocity
! w_p2min : Maximum large phytoplankton settling velocity
! w_p2max : Minmimum large phytoplankton settling velocity
! kn1 : Half saturation constant of nitrate uptake by small phytoplankton
! ka1 : Half saturation constant of ammonium uptake by small phytoplankton
! kn2 : Half saturation constant of nitrate uptake by large phytoplankton
! ka2 : Half saturation constant of ammonium uptake by large phytoplankton
! mu11 : Small phytoplankton mortality
! mu12 : Large phytoplankton mortality
! k5 : Half saturation of small and large phytoplankton mortality
! gamma : Excsudation fraction
! w_p1 : Small phytoplankton settling velocity
! w_p2 : Large phytoplankton settling velocity
! g1max : Maximum small zooplankton ingestion
! g2max : Maximum large zooplankton ingestion
! k3 : Half saturation constant of ingestion
! beta : Grazing efficiency
! mu21 : Maximum small zooplankton loss rate (variable function of hydrocarbon concentration)
! mu22 : Maximum large zooplankton loss rate
! k6 : Half saturation constant of zooplankton loss (small and large)
!! k7 : Half saturation constant of zooplankton loss by hydrocarbon toxicity (small and large)
! bhc : Slope factor of zooplankton mortality for sigmoïd exponential type curve
! mhc : Factor of zooplankton mortality for Michaelis-Menten exponential type curve
! hc0 : Hydrocarbon sill concentration for zooplankton mortality by hydrocarbons
! delta : Fractional zooplankton loss of LDON
! epsi : Fractional zooplankton loss of ammonuim
! r11 : Small zooplankton preference on small phytoplantkon
! r12 : Small zooplankton preference on small phytoplantkon
! r13 : Small zooplankton preference on small phytoplantkon
! r14 : Small zooplankton preference on small phytoplantkon
! r21 : Small zooplankton preference on small phytoplantkon
! r22 : Small zooplankton preference on small phytoplantkon
! r23 : Small zooplankton preference on small phytoplantkon
! r24 : Small zooplankton preference on small phytoplantkon
! vb1 : Maximum bacteria (b1) uptake rate
! vb2 : Maximum hydrocarbon degrading bacteria (b2) uptake rate
! k4 : Half saturation of bacteria (b1) uptake
! k10 : Half saturation of hydrocarbon degrading bacteria (b2) uptake
! w_h : Hydrocarbon settling velocity
! mu3 : Bacterial excretion rate
! etaa : Uptake ratio ammonium : LDON
! etah : Uptake ratio hydrocarbon : LDON
! mu4 : Detritus breakdown rate
! mu5 : Nitrification rate
! w_d : Detritus settling velocity
! kc :
!----------------------------------------------------------------------- !-----------------------------------------------------------------------
contains contains
...@@ -159,7 +237,7 @@ ...@@ -159,7 +237,7 @@
b_init,d_init,l_init, & b_init,d_init,l_init, &
p0,z0,b0,vp1,alpha1,inib1,vp2,alpha2,inib2, & p0,z0,b0,vp1,alpha1,inib1,vp2,alpha2,inib2, &
kn1,ka1,kn2,ka2,mu11,mu12,k5,gamma,w_p1,w_p2, & kn1,ka1,kn2,ka2,mu11,mu12,k5,gamma,w_p1,w_p2, &
g1max,g2max,k3,beta,mu21,mu22,k6,delta,epsi, & g1max,g2max,k3,beta,mu21,mu22,k6,bhc,delta,epsi, &
r11,r12,r13,r14,r21,r22,r23,r24, & r11,r12,r13,r14,r21,r22,r23,r24, &
vb1,vb2,k4,k10,w_h,mu3,etaa,etah,mu4,w_d,kc,mu5, & vb1,vb2,k4,k10,w_h,mu3,etaa,etah,mu4,w_d,kc,mu5, &
theta,w_p1max,w_p1min,w_p2min,w_p2max, & theta,w_p1max,w_p1min,w_p2min,w_p2max, &
...@@ -201,9 +279,8 @@ ...@@ -201,9 +279,8 @@
write(10,901) g2max write(10,901) g2max
write(10,901) k3 write(10,901) k3
write(10,901) beta write(10,901) beta
write(10,901) mu21
write(10,901) mu22 write(10,901) mu22
write(10,901) k6 write(10,901) bhc
write(10,901) delta write(10,901) delta
write(10,901) epsi write(10,901) epsi
write(10,901) r11 write(10,901) r11
...@@ -588,6 +665,7 @@ ...@@ -588,6 +665,7 @@
REALTYPE :: minal,minhl,qn1,qa1,qn2,qa2 REALTYPE :: minal,minhl,qn1,qa1,qn2,qa2
REALTYPE :: ps1,ps2,ff1,ff2 REALTYPE :: ps1,ps2,ff1,ff2
REALTYPE :: Ea,Eh,kBeV,T0 REALTYPE :: Ea,Eh,kBeV,T0
REALTYPE :: k6hc,mu21hc,mu22hc
integer :: i,j,ci integer :: i,j,ci
!EOP !EOP
!----------------------------------------------------------------------- !-----------------------------------------------------------------------
...@@ -637,6 +715,10 @@ ...@@ -637,6 +715,10 @@
hmr2 = 1.0 hmr2 = 1.0
endif endif
!-----------------------------------------------------------------------
! Light limitation factor (PI curve)
! Smith (1936) - saturation (default) ! Smith (1936) - saturation (default)
! ff= vp*alpha*par(ci)/sqrt(vp**2+alpha**2*par(ci)**2) ! ff= vp*alpha*par(ci)/sqrt(vp**2+alpha**2*par(ci)**2)
! Blackman (1919) ! Blackman (1919)
...@@ -651,7 +733,6 @@ ...@@ -651,7 +733,6 @@
! ff= vp*((par(ci)/I_opt)*exp(1-(par(ci)/I_opt)))**2 ! ff= vp*((par(ci)/I_opt)*exp(1-(par(ci)/I_opt)))**2
! Platt et al. (1980) - inhibition ! Platt et al. (1980) - inhibition
! Light limitation factor (PI curve)
ps1= vp1/((alpha1/(alpha1+inib1))*(alpha1/(alpha1+inib1))**(inib1/alpha1)) ps1= vp1/((alpha1/(alpha1+inib1))*(alpha1/(alpha1+inib1))**(inib1/alpha1))
ff1= ps1*(1.-exp(-1.*alpha1*par(ci)/ps1))*exp(-1.*inib1*par(ci)/ps1) ff1= ps1*(1.-exp(-1.*alpha1*par(ci)/ps1))*exp(-1.*inib1*par(ci)/ps1)
...@@ -675,7 +756,7 @@ ...@@ -675,7 +756,7 @@
+r23*cc(d,ci)**2+r24*cc(z1,ci)**2) +r23*cc(d,ci)**2+r24*cc(z1,ci)**2)
minal=min(cc(a,ci),etaa*cc(l,ci)) minal=min(cc(a,ci),etaa*cc(l,ci))
minhl=min(cc(hc,ci),etah*cc(l,ci)) minhl=min(cc(hc,ci)/(k10+cc(hc,ci)),cc(l,ci)/(k4+cc(l,ci)))
! Light and nutrient limitation factors ! Light and nutrient limitation factors
lumlim1(ci) =amr1*ff1 lumlim1(ci) =amr1*ff1
...@@ -684,6 +765,11 @@ ...@@ -684,6 +765,11 @@
lumlim2(ci) =amr2*ff2 lumlim2(ci) =amr2*ff2
nitlim2(ci) =qn2 nitlim2(ci) =qn2
ammlim2(ci) =qa2 ammlim2(ci) =qa2
! Hydrocarbon inhibition factors
!mu21hc = mu21+(mu21max-mu21)/(1d0 + exp(-1d0*(cc(hc,ci)-k6hc)/bhc))
mu21hc = mu21+((mu21max-mu21)*(cc(hc,ci))**mhc)/((cc(hc,ci))**mhc + k6hc**mhc)
mu22hc = mu21hc
! Nutrient uptake by pico- and nano-phytoplankton ! Nutrient uptake by pico- and nano-phytoplankton
dd(n,p1,ci) =amr1*ff1*qn1*(cc(p1,ci)+p0) dd(n,p1,ci) =amr1*ff1*qn1*(cc(p1,ci)+p0)
...@@ -701,6 +787,8 @@ ...@@ -701,6 +787,8 @@
dd(b1,d,ci) =(1.-beta)*g1max*r13*cc(b1,ci)**2*fac1 dd(b1,d,ci) =(1.-beta)*g1max*r13*cc(b1,ci)**2*fac1
! Grazing and uptake by zooplankton
dd(p1,z1,ci)=hmr1*beta*g1max*r11*cc(p1,ci)**2*fac1 dd(p1,z1,ci)=hmr1*beta*g1max*r11*cc(p1,ci)**2*fac1
dd(p2,z1,ci)=hmr1*beta*g1max*r12*cc(p2,ci)**2*fac1 dd(p2,z1,ci)=hmr1*beta*g1max*r12*cc(p2,ci)**2*fac1
dd(b1,z1,ci)=hmr1*beta*g1max*0.5*r13*cc(b1,ci)**2*fac1 dd(b1,z1,ci)=hmr1*beta*g1max*0.5*r13*cc(b1,ci)**2*fac1
...@@ -711,25 +799,32 @@ ...@@ -711,25 +799,32 @@
dd(p2,z2,ci)=hmr2*beta*g2max*r22*cc(p2,ci)**2*fac2 dd(p2,z2,ci)=hmr2*beta*g2max*r22*cc(p2,ci)**2*fac2
dd(d,z2,ci) =hmr2*beta*g2max*r23*cc(d,ci)**2*fac2 dd(d,z2,ci) =hmr2*beta*g2max*r23*cc(d,ci)**2*fac2
dd(z1,z2,ci)=hmr2*beta*g2max*r24*cc(z1,ci)**2*fac2 dd(z1,z2,ci)=hmr2*beta*g2max*r24*cc(z1,ci)**2*fac2
! Other processes
dd(b1,a,ci) =mu3*cc(b1,ci) dd(b1,a,ci) =mu3*cc(b1,ci)
dd(b2,a,ci) =mu3*cc(b2,ci) dd(b2,a,ci) =mu3*cc(b2,ci)
dd(d,l,ci) =mu4*cc(d,ci) dd(d,l,ci) =mu4*cc(d,ci)
dd(a,n,ci) =mu5*cc(a,ci) dd(a,n,ci) =mu5*cc(a,ci)
! Zooplankton mortality and exsudation
dd(z1,d,ci) =(1.-beta)*hmr2*g2max*r24*cc(z1,ci)**2*fac2 & dd(z1,d,ci) =(1.-beta)*hmr2*g2max*r24*cc(z1,ci)**2*fac2 &
+hmr1*(1.-epsi-delta)*mu21*(cc(z1,ci)+z0)/(k6+cc(z1,ci)+z0)*cc(z1,ci) +hmr1*(1.-epsi-delta)*mu21hc*(cc(z1,ci)+z0)/(k6+cc(z1,ci)+z0)*cc(z1,ci)
dd(z1,a,ci) =hmr1*epsi*mu21*(cc(z1,ci)+z0)/(k6+cc(z1,ci)+z0)*cc(z1,ci) dd(z1,a,ci) =hmr1*epsi*mu21hc*(cc(z1,ci)+z0)/(k6+cc(z1,ci)+z0)*cc(z1,ci)
dd(z1,l,ci) =hmr1*delta*mu21*(cc(z1,ci)+z0)/(k6+cc(z1,ci)+z0)*cc(z1,ci) dd(z1,l,ci) =hmr1*delta*mu21hc*(cc(z1,ci)+z0)/(k6+cc(z1,ci)+z0)*cc(z1,ci)
dd(z2,d,ci) =hmr2*(1.-epsi-delta)*mu22*(cc(z2,ci)+z0)/(k6+cc(z2,ci)+z0)*cc(z2,ci) dd(z2,d,ci) =hmr2*(1.-epsi-delta)*mu22hc*(cc(z2,ci)+z0)/(k6+cc(z2,ci)+z0)*cc(z2,ci)
dd(z2,a,ci) =hmr2*epsi*mu22*(cc(z2,ci)+z0)/(k6+cc(z2,ci)+z0)*cc(z2,ci) dd(z2,a,ci) =hmr2*epsi*mu22hc*(cc(z2,ci)+z0)/(k6+cc(z2,ci)+z0)*cc(z2,ci)
dd(z2,l,ci) =hmr2*delta*mu22*(cc(z2,ci)+z0)/(k6+cc(z2,ci)+z0)*cc(z2,ci) dd(z2,l,ci) =hmr2*delta*mu22hc*(cc(z2,ci)+z0)/(k6+cc(z2,ci)+z0)*cc(z2,ci)
! Nutrient and Hydrocarbon uptake by bacteria and OHC bacteria
dd(a,b1,ci) =vb1*minal/(k4+minal+cc(l,ci))*(cc(b1,ci)+b0) dd(a,b1,ci) =vb1*minal/(k4+minal+cc(l,ci))*(cc(b1,ci)+b0)
dd(l,b1,ci) =vb1*cc(l,ci)/(k4+minal+cc(l,ci))*(cc(b1,ci)+b0)