Commit 4aaa729a authored by dumoda01's avatar dumoda01
Browse files

Le dependance en temperature du modele bio_ismer est maintenant activable via...

Le dependance en temperature du modele bio_ismer est maintenant activable via une variable logique (mte) dans la namelist bio_ismer.nml. Quatre nouveaux coefficients peuvent egalement etre modifies dans la namelist (ca1, ca2, ch1, ch2). Une description de ces parametres a ete integree dans nml/bio_ismer.nml.
parent 4e171ca6
......@@ -10,19 +10,21 @@
! 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]
! n_init = *** see obs.nml *** [mmol n/m3]
! a_init = *** see obs.nml *** [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]
! theta = phytoplancton buoyancy parameter [m3 day/(mmol N)] !CHG2
! 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
! 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)] !CHG1
! inib2 = inhibition slope of the PI-curve (pos.) [m2/(W day)] !CHG1
! 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 fla [mmol n/m3]
! ka1 = half sat. constant ammonium uptake by fla [mmol n/m3]
! kn2 = half sat. constant nitrate uptake by diatoms [mmol n/m3]
......@@ -33,6 +35,7 @@
! gamma = exudation fraction [-]
! w_p1 = flagellate settling velocity [m/day]
! w_p2 = diatom settling velocity [m/day]
! theta = phytoplancton buoyancy parameter [m3 day/(mmol N)]
! g1max = maximum microzooplankton ingestion rate [1/day]
! g2max = maximum mesozooplankton ingestion rate [1/day]
! k3 = half saturation constant ingestion [mmol n/m3]
......@@ -70,11 +73,16 @@
p0 = 0.0001
z0 = 0.0001
b0 = 0.0001
vp1 = 1.0
mte = .true.
ca1 = 3.61
ca2 = 14.58
ch1 = 3.265
ch2 = 24.923
vp1 = 0.02
vp2 = 0.8
alpha1 = 0.04
alpha1 = 0.02
alpha2 = 0.04
inib1 = 0.006
inib1 = 0.0
inib2 = 0.006
kn1 = 1.0
ka1 = 0.8
......@@ -84,7 +92,7 @@
mu12 = 0.05
k5 = 0.2
gamma = 0.05
w_p1 =-0.00
w_p1 =-0.38
w_p2 =-0.00
theta = 0.0
w_p1min =-0.01
......
......@@ -64,6 +64,11 @@
REALTYPE :: p0 = 0.0
REALTYPE :: z0 = 0.0
REALTYPE :: b0 = 0.0
LOGICAL :: mte = .true.
REALTYPE :: ca1 = 3.61
REALTYPE :: ca2 = 14.58
REALTYPE :: ch1 = 3.265
REALTYPE :: ch2 = 24.923
REALTYPE :: vp1 = 1.5
REALTYPE :: alpha1 = 0.065
REALTYPE :: inib1 = 0.05
......@@ -146,11 +151,13 @@
p1_init,p2_init,z1_init,z2_init, &
b_init,d_init,l_init, &
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, &
r11,r12,r13,r21,r22,r23,r24, &
vb,k4,mu3,eta,mu4,w_d,kc,mu5, &
theta,w_p1max,w_p1min,w_p2min,w_p2max
theta,w_p1max,w_p1min,w_p2min,w_p2max, &
mte,ca1,ca2,ch1,ch2
!EOP
!-----------------------------------------------------------------------
!BOC
......@@ -207,6 +214,12 @@
write(10,901) mu5
write(10,901) w_d
write(10,901) kc
if (mte) then
write(10,901) ca1
write(10,901) ca2
write(10,901) ch1
write(10,901) ch2
endif
900 format (a,f8.5)
......@@ -542,8 +555,8 @@
! Original author(s): Hans Burchard, Karsten Bolding
!
! !LOCAL VARIABLES:
REALTYPE :: amr1(1:nlev),amr2(1:nlev)
REALTYPE :: hmr1(1:nlev),hmr2(1:nlev)
REALTYPE :: amr1,amr2
REALTYPE :: hmr1,hmr2
REALTYPE :: fac1,fac2,fac3,fac4
REALTYPE :: minal,qn1,qa1,qn2,qa2
REALTYPE :: ps1,ps2,ff1,ff2
......@@ -559,21 +572,61 @@
do ci=1,nlev
!CHG1
! Smith (1936) - saturation (default)
! ff= vp*alpha*par(ci)/sqrt(vp**2+alpha**2*par(ci)**2)
! Blackman (1919)
! if (par(ci) .lt. vp/alpha) then
! ff=alpha*par(ci)
! else
! ff=vp
! endif
! Steele (1962) - inhibition
! ff= vp*((par(ci)/I_opt)*exp(1-(par(ci)/I_opt)))
! Parker (1974) - inhibition
! ff= vp*((par(ci)/I_opt)*exp(1-(par(ci)/I_opt)))**2
! Platt et al. (1980) - inhibition
if (mte) then
! Temperature-dependent metabolic rates
! Gillooly et al. (2002)
Eh = 0.65 ! Activation energy for heterotrophs (eV)
Ea = 0.32 ! Activation energy for autotrophs (eV)
kBeV = 8.62e-5 ! Boltzmann constant (eV K-1)
T0 = 273.15-1.9 ! Temperature at which metabolism stops
! metabolic rate coefficient (a(T0) in Gillooly et al. 2002 in kg^1/4 s^-1)
! they are tuned to
ca1 = 3.61 ! pico-phytoplankton
ca2 = 14.58 ! micro-phytoplankton
ch1 = 3.265 ! micro-zooplankton
ch2 = 24.923 ! meso-zooplankton
! The mass ratio between pico-phytoplankton (p1) and
! nano- and micro-phytoplankton (p2) is amratio,
! which translates into a ratio of fac3=amratio**0.25 between
! their respective metabolic rates, according to the MTE.
! The same applies to micro-zooplankton (z1) versus
! meso-zooplankton (z2) through fac4=hmratio**0.25.
amratio = 200.0
hmratio = 1000.0
fac3 = amratio**0.25
fac4 = hmratio**0.25
! Autotroph metabolic rate
amr1 = max(0.0,ca1*0.25*exp(Ea/(kBeV*T0**2)*(T(ci)/(1+T(ci)/T0))) )
amr2 = max(0.0,ca2*0.25*exp(Ea/(kBeV*T0**2)*(T(ci)/(1+T(ci)/T0)))/fac3)
! Heterotroph metabolic rate
hmr1 = max(0.0,ch1*0.25*exp(Eh/(kBeV*T0**2)*(T(ci)/(1+T(ci)/T0))) )
hmr2 = max(0.0,ch2*0.25*exp(Eh/(kBeV*T0**2)*(T(ci)/(1+T(ci)/T0)))/fac4)
else
amr1 = 1.0
amr2 = 1.0
hmr1 = 1.0
hmr2 = 1.0
endif
! Smith (1936) - saturation (default)
! ff= vp*alpha*par(ci)/sqrt(vp**2+alpha**2*par(ci)**2)
! Blackman (1919)
! if (par(ci) .lt. vp/alpha) then
! ff=alpha*par(ci)
! else
! ff=vp
! endif
! Steele (1962) - inhibition
! ff= vp*((par(ci)/I_opt)*exp(1-(par(ci)/I_opt)))
! Parker (1974) - inhibition
! ff= vp*((par(ci)/I_opt)*exp(1-(par(ci)/I_opt)))**2
! Platt et al. (1980) - inhibition
! Light limitation factor (PI curve)
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)
......@@ -599,88 +652,50 @@
minal=min(cc(a,ci),eta*cc(l,ci))
! Temperature-dependent metabolic rates
! Gillooly et al. (2002)
Eh = 0.65 ! Activation energy for heterotrophs (eV)
Ea = 0.32 ! Activation energy for autotrophs (eV)
kBeV = 8.62e-5 ! Boltzmann constant (eV K-1)
T0 = 273.15-1.9 ! Temperature at which metabolism stops
! metabolic rate coefficient (a(T0) in Gillooly et al. 2002 in kg^1/4 s^-1)
! they are tuned to
ca1 = 3.61 ! pico-phytoplankton
ca2 = 14.58 ! micro-phytoplankton
ch1 = 3.265 ! micro-zooplankton
ch2 = 24.923 ! meso-zooplankton
! The mass ratio between pico-phytoplankton (p1) and
! nano- and micro-phytoplankton (p2) is amratio,
! which translates into a ratio of fac3=amratio**0.25 between
! their respective metabolic rates, according to the MTE.
! The same applies to micro-zooplankton (z1) versus
! meso-zooplankton (z2) through fac4=hmratio**0.25.
amratio = 200.0
hmratio = 1000.0
fac3 = amratio**0.25
fac4 = hmratio**0.25
! Autotroph metabolic rate
!amr1(ci) = 1.0
!amr2(ci) = 1.0
amr1(ci) = max(0.0,ca1*0.25*exp(Ea/(kBeV*T0**2)*(T(ci)/(1+T(ci)/T0))) )
amr2(ci) = max(0.0,ca2*0.25*exp(Ea/(kBeV*T0**2)*(T(ci)/(1+T(ci)/T0)))/fac3)
! Heterotroph metabolic rate
!hmr1(ci) = 1.0
!hmr2(ci) = 1.0
hmr1(ci) = max(0.0,ch1*0.25*exp(Eh/(kBeV*T0**2)*(T(ci)/(1+T(ci)/T0))) )
hmr2(ci) = max(0.0,ch2*0.25*exp(Eh/(kBeV*T0**2)*(T(ci)/(1+T(ci)/T0)))/fac4)
! Light and nutrient limitation factors
lumlim1(ci) =ff1
lumlim1(ci) =amr1*ff1
nitlim1(ci) =qn1
ammlim1(ci) =qa1
lumlim2(ci) =ff2
lumlim2(ci) =amr2*ff2
nitlim2(ci) =qn2
ammlim2(ci) =qa2
! Nutrient uptake by pico- and nano-phytoplankton
dd(n,p1,ci) =amr1(ci)*ff1*qn1*(cc(p1,ci)+p0)
dd(a,p1,ci) =amr1(ci)*ff1*qa1*(cc(p1,ci)+p0)
dd(n,p2,ci) =amr2(ci)*ff2*qn2*(cc(p2,ci)+p0)
dd(a,p2,ci) =amr2(ci)*ff2*qa2*(cc(p2,ci)+p0)
dd(n,p1,ci) =amr1*ff1*qn1*(cc(p1,ci)+p0)
dd(a,p1,ci) =amr1*ff1*qa1*(cc(p1,ci)+p0)
dd(n,p2,ci) =amr2*ff2*qn2*(cc(p2,ci)+p0)
dd(a,p2,ci) =amr2*ff2*qa2*(cc(p2,ci)+p0)
dd(p1,l,ci) =amr1(ci)*gamma*ff1*(qn1+qa1)*cc(p1,ci)
dd(p2,l,ci) =amr2(ci)*gamma*ff2*(qn2+qa2)*cc(p2,ci)
dd(p1,l,ci) =amr1*gamma*ff1*(qn1+qa1)*cc(p1,ci)
dd(p2,l,ci) =amr2*gamma*ff2*(qn2+qa2)*cc(p2,ci)
dd(p1,d,ci) =amr1(ci)*mu11*(cc(p1,ci)+p0)/(k5+cc(p1,ci)+p0)*cc(p1,ci) &
dd(p1,d,ci) =amr1*mu11*(cc(p1,ci)+p0)/(k5+cc(p1,ci)+p0)*cc(p1,ci) &
+(1.-beta)*cc(p1,ci)**2*(g1max*r11*fac1+g2max*r21*fac2)
dd(p2,d,ci) =amr2(ci)*mu12*(cc(p2,ci)+p0)/(k5+cc(p2,ci)+p0)*cc(p2,ci) &
dd(p2,d,ci) =amr2*mu12*(cc(p2,ci)+p0)/(k5+cc(p2,ci)+p0)*cc(p2,ci) &
+(1.-beta)*g2max*r21*cc(p2,ci)**2*fac2
dd(b,d,ci) =(1.-beta)*g1max*r12*cc(b,ci)**2*fac1
dd(p1,z1,ci)=hmr1(ci)*beta*g1max*r11*cc(p1,ci)**2*fac1
dd(b,z1,ci) =hmr1(ci)*beta*g1max*r12*cc(b,ci)**2*fac1
dd(d,z1,ci) =hmr1(ci)*beta*g1max*r13*cc(d,ci)**2*fac1
dd(p1,z1,ci)=hmr1*beta*g1max*r11*cc(p1,ci)**2*fac1
dd(b,z1,ci) =hmr1*beta*g1max*r12*cc(b,ci)**2*fac1
dd(d,z1,ci) =hmr1*beta*g1max*r13*cc(d,ci)**2*fac1
dd(p1,z2,ci)=hmr2(ci)*beta*g2max*r21*cc(p1,ci)**2*fac2
dd(p2,z2,ci)=hmr2(ci)*beta*g2max*r22*cc(p2,ci)**2*fac2
dd(d,z2,ci) =hmr2(ci)*beta*g2max*r23*cc(d,ci)**2*fac2
dd(z1,z2,ci)=hmr2(ci)*beta*g2max*r24*cc(z1,ci)**2*fac2
dd(p1,z2,ci)=hmr2*beta*g2max*r21*cc(p1,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(z1,z2,ci)=hmr2*beta*g2max*r24*cc(z1,ci)**2*fac2
dd(b,a,ci) =mu3*cc(b,ci)
dd(d,l,ci) =mu4*cc(d,ci)
dd(a,n,ci) =mu5*cc(a,ci)
dd(z1,d,ci) =hmr1(ci)*(1.-epsi-delta)*mu21*(cc(z1,ci)+z0)/(k6+cc(z1,ci)+z0)*cc(z1,ci)
dd(z1,a,ci) =hmr1(ci)*epsi*mu21*(cc(z1,ci)+z0)/(k6+cc(z1,ci)+z0)*cc(z1,ci)
dd(z1,l,ci) =hmr1(ci)*delta*mu21*(cc(z1,ci)+z0)/(k6+cc(z1,ci)+z0)*cc(z1,ci)
dd(z1,d,ci) =hmr1*(1.-epsi-delta)*mu21*(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,l,ci) =hmr1*delta*mu21*(cc(z1,ci)+z0)/(k6+cc(z1,ci)+z0)*cc(z1,ci)
dd(z2,d,ci) =hmr2(ci)*(1.-epsi-delta)*mu22*(cc(z2,ci)+z0)/(k6+cc(z2,ci)+z0)*cc(z2,ci)
dd(z2,a,ci) =hmr2(ci)*epsi*mu22*(cc(z2,ci)+z0)/(k6+cc(z2,ci)+z0)*cc(z2,ci)
dd(z2,l,ci) =hmr2(ci)*delta*mu22*(cc(z2,ci)+z0)/(k6+cc(z2,ci)+z0)*cc(z2,ci)
dd(z2,d,ci) =hmr2*(1.-epsi-delta)*mu22*(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,l,ci) =hmr2*delta*mu22*(cc(z2,ci)+z0)/(k6+cc(z2,ci)+z0)*cc(z2,ci)
dd(a,b,ci) =vb*minal/(k4+minal+cc(l,ci))*(cc(b,ci)+b0)
dd(l,b,ci) =vb*cc(l,ci)/(k4+minal+cc(l,ci))*(cc(b,ci)+b0)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment