Commit b19e2b848278977574c95642236dcca3d67e6d64

Authored by dumoda01
1 parent b0a803da
Exists in master and in 1 other branch snow

Distinction entre les taux de mortalite des differentes classes d'heterotrophes et d'autotrophes.

Showing 2 changed files with 68 additions and 40 deletions   Show diff stats
nml/bio_ismer.nml
@@ -27,8 +27,9 @@ @@ -27,8 +27,9 @@
27 ! ka1 = half sat. constant ammonium uptake by fla [mmol n/m3] 27 ! ka1 = half sat. constant ammonium uptake by fla [mmol n/m3]
28 ! kn2 = half sat. constant nitrate uptake by diatoms [mmol n/m3] 28 ! kn2 = half sat. constant nitrate uptake by diatoms [mmol n/m3]
29 ! ka2 = half sat. constant ammonium uptake by diatoms [mmol n/m3] 29 ! ka2 = half sat. constant ammonium uptake by diatoms [mmol n/m3]
30 -! mu1 = phytoplankton (fla & dia) mortality rate [1/day]  
31 -! k5 = half sat. constant phy. mortality (fla & dia) [mmol n/m3] 30 +! mu11 = pico-phytoplankton mortality rate [1/day]
  31 +! mu12 = nano-phytoplankton mortality rate [1/day]
  32 +! k5 = half sat. constant phy. mortality [mmol n/m3]
32 ! gamma = exudation fraction [-] 33 ! gamma = exudation fraction [-]
33 ! w_p1 = flagellate settling velocity [m/day] 34 ! w_p1 = flagellate settling velocity [m/day]
34 ! w_p2 = diatom settling velocity [m/day] 35 ! w_p2 = diatom settling velocity [m/day]
@@ -36,8 +37,9 @@ @@ -36,8 +37,9 @@
36 ! g2max = maximum mesozooplankton ingestion rate [1/day] 37 ! g2max = maximum mesozooplankton ingestion rate [1/day]
37 ! k3 = half saturation constant ingestion [mmol n/m3] 38 ! k3 = half saturation constant ingestion [mmol n/m3]
38 ! beta = grazing efficiency [-] 39 ! beta = grazing efficiency [-]
39 -! mu2 = maximum zooplankton loss rate (mcz & msz) [1/day]  
40 ! k6 = half saturation zooplankton loss (mcz & msz) [mmol n/m3] 40 ! k6 = half saturation zooplankton loss (mcz & msz) [mmol n/m3]
  41 +! mu21 = maximum micro-zooplankton loss rate [1/day]
  42 +! mu22 = maximum meso-zooplankton loss rate [1/day]
41 ! delta = fractional zooplankton loss to LDON (mcz & msz) [-] 43 ! delta = fractional zooplankton loss to LDON (mcz & msz) [-]
42 ! epsi = fractional zooplankton loss to ammonium (mcz & msz) [-] 44 ! epsi = fractional zooplankton loss to ammonium (mcz & msz) [-]
43 ! r11 = mcz grazing preference on flagellates [-] 45 ! r11 = mcz grazing preference on flagellates [-]
@@ -78,11 +80,12 @@ @@ -78,11 +80,12 @@
78 ka1 = 0.8 80 ka1 = 0.8
79 kn2 = 1.0 81 kn2 = 1.0
80 ka2 = 0.8 82 ka2 = 0.8
81 - mu1 = 0.05 83 + mu11 = 0.05
  84 + mu12 = 0.05
82 k5 = 0.2 85 k5 = 0.2
83 gamma = 0.05 86 gamma = 0.05
84 - w_p1 =-0.10  
85 - w_p2 =-0.38 87 + w_p1 =-0.00
  88 + w_p2 =-0.00
86 theta = 0.0 89 theta = 0.0
87 w_p1min =-0.01 90 w_p1min =-0.01
88 w_p1max =-0.10 91 w_p1max =-0.10
@@ -92,7 +95,8 @@ @@ -92,7 +95,8 @@
92 g2max = 1.0 95 g2max = 1.0
93 k3 = 1.0 96 k3 = 1.0
94 beta = 0.625 97 beta = 0.625
95 - mu2 = 0.3 98 + mu21 = 0.3
  99 + mu22 = 0.3
96 k6 = 0.2 100 k6 = 0.2
97 delta = 0.1 101 delta = 0.1
98 epsi = 0.70 102 epsi = 0.70
src/extras/bio/bio_ismer.F90
@@ -79,7 +79,8 @@ @@ -79,7 +79,8 @@
79 REALTYPE :: ka1 = 0.8 79 REALTYPE :: ka1 = 0.8
80 REALTYPE :: kn2 = 0.2 80 REALTYPE :: kn2 = 0.2
81 REALTYPE :: ka2 = 0.8 81 REALTYPE :: ka2 = 0.8
82 - REALTYPE :: mu1 = 0.05 82 + REALTYPE :: mu11 = 0.05
  83 + REALTYPE :: mu12 = 0.05
83 REALTYPE :: k5 = 0.2 84 REALTYPE :: k5 = 0.2
84 REALTYPE :: gamma = 0.05 85 REALTYPE :: gamma = 0.05
85 REALTYPE :: w_p1 = -0.5 86 REALTYPE :: w_p1 = -0.5
@@ -88,7 +89,8 @@ @@ -88,7 +89,8 @@
88 REALTYPE :: g2max = 1.0 89 REALTYPE :: g2max = 1.0
89 REALTYPE :: k3 = 1.0 90 REALTYPE :: k3 = 1.0
90 REALTYPE :: beta = 0.625 91 REALTYPE :: beta = 0.625
91 - REALTYPE :: mu2 = 0.3 92 + REALTYPE :: mu21 = 0.3
  93 + REALTYPE :: mu22 = 0.3
92 REALTYPE :: k6 = 0.2 94 REALTYPE :: k6 = 0.2
93 REALTYPE :: delta = 0.1 95 REALTYPE :: delta = 0.1
94 REALTYPE :: epsi = 0.70 96 REALTYPE :: epsi = 0.70
@@ -144,8 +146,8 @@ @@ -144,8 +146,8 @@
144 p1_init,p2_init,z1_init,z2_init, & 146 p1_init,p2_init,z1_init,z2_init, &
145 b_init,d_init,l_init, & 147 b_init,d_init,l_init, &
146 p0,z0,b0,vp1,alpha1,inib1,vp2,alpha2,inib2, & 148 p0,z0,b0,vp1,alpha1,inib1,vp2,alpha2,inib2, &
147 - kn1,ka1,kn2,ka2,mu1,k5,gamma,w_p1,w_p2, &  
148 - g1max,g2max,k3,beta,mu2,k6,delta,epsi, & 149 + kn1,ka1,kn2,ka2,mu11,mu12,k5,gamma,w_p1,w_p2, &
  150 + g1max,g2max,k3,beta,mu21,mu22,k6,delta,epsi, &
149 r11,r12,r13,r21,r22,r23,r24, & 151 r11,r12,r13,r21,r22,r23,r24, &
150 vb,k4,mu3,eta,mu4,w_d,kc,mu5, & 152 vb,k4,mu3,eta,mu4,w_d,kc,mu5, &
151 theta,w_p1max,w_p1min,w_p2min,w_p2max 153 theta,w_p1max,w_p1min,w_p2min,w_p2max
@@ -179,8 +181,10 @@ @@ -179,8 +181,10 @@
179 vp1 = vp1 /secs_pr_day 181 vp1 = vp1 /secs_pr_day
180 vp2 = vp2 /secs_pr_day 182 vp2 = vp2 /secs_pr_day
181 vb = vb /secs_pr_day 183 vb = vb /secs_pr_day
182 - mu1 = mu1 /secs_pr_day  
183 - mu2 = mu2 /secs_pr_day 184 + mu11 = mu11 /secs_pr_day
  185 + mu12 = mu12 /secs_pr_day
  186 + mu21 = mu21 /secs_pr_day
  187 + mu22 = mu22 /secs_pr_day
184 mu3 = mu3 /secs_pr_day 188 mu3 = mu3 /secs_pr_day
185 mu4 = mu4 /secs_pr_day 189 mu4 = mu4 /secs_pr_day
186 mu5 = mu5 /secs_pr_day 190 mu5 = mu5 /secs_pr_day
@@ -391,10 +395,10 @@ @@ -391,10 +395,10 @@
391 zz = _ZERO_ 395 zz = _ZERO_
392 add = _ZERO_ 396 add = _ZERO_
393 do i=nlev,1,-1 397 do i=nlev,1,-1
394 - add=add+0.5*h(i)*(cc(p1,i)+cc(p2,i)+p0) 398 + add=add+0.5*h(i)*(cc(p1,i)+cc(p2,i)+2*p0)
395 zz=zz+0.5*h(i) 399 zz=zz+0.5*h(i)
396 par(i)=rad(nlev)*(1.-aa)*exp(-zz/g2)*exp(-kc*add) 400 par(i)=rad(nlev)*(1.-aa)*exp(-zz/g2)*exp(-kc*add)
397 - add=add+0.5*h(i)*(cc(p1,i)+cc(p2,i)+p0) 401 + add=add+0.5*h(i)*(cc(p1,i)+cc(p2,i)+2*p0)
398 zz=zz+0.5*h(i) 402 zz=zz+0.5*h(i)
399 if (bioshade_feedback) bioshade_(i)=exp(-kc*add) 403 if (bioshade_feedback) bioshade_(i)=exp(-kc*add)
400 end do 404 end do
@@ -503,8 +507,11 @@ @@ -503,8 +507,11 @@
503 ! Original author(s): Hans Burchard, Karsten Bolding 507 ! Original author(s): Hans Burchard, Karsten Bolding
504 ! 508 !
505 ! !LOCAL VARIABLES: 509 ! !LOCAL VARIABLES:
506 - REALTYPE :: fac1,fac2,fac3,minal,qn1,qa1,qn2,qa2  
507 - REALTYPE :: ps1,ps2,ff1,ff2 !CHG1 510 + REALTYPE :: amr(1:nlev)
  511 + REALTYPE :: hmr(1:nlev)
  512 + REALTYPE :: fac1,fac2,minal,qn1,qa1,qn2,qa2
  513 + REALTYPE :: ps1,ps2,ff1,ff2
  514 + REALTYPE :: Ea,Eh,kBeV,T0
508 integer :: i,j,ci 515 integer :: i,j,ci
509 !EOP 516 !EOP
510 !----------------------------------------------------------------------- 517 !-----------------------------------------------------------------------
@@ -555,17 +562,31 @@ @@ -555,17 +562,31 @@
555 562
556 minal=min(cc(a,ci),eta*cc(l,ci)) 563 minal=min(cc(a,ci),eta*cc(l,ci))
557 564
558 - ! Temperature-dependent function for zooplankton grazing (for test purposes)  
559 - ! This function should come from thermodynamical arguments  
560 - !fac3 = max(0.0,tanh(0.5*(T(ci)+1.9)))  
561 - fac3 = 1.0 565 + ! Temperature-dependent metabolic rates
  566 + ! Gillooly et al. (2002)
  567 + Eh = 0.65 ! Activation energy for heterotrophs (eV)
  568 + Ea = 0.32 ! Activation energy for autotrophs (eV)
  569 + kBeV = 8.62e-5 ! Boltzmann constant (eV K-1)
  570 + T0 = 273.15-1.9 ! Temperature at which metabolism stops
  571 +
  572 + ! The mass ratio between pico-phytoplankton (p1, 1 um) and
  573 + ! nano- and micro-phytoplankton (p2, 10 um) is approximately 1:1e3,
  574 + ! which translates into a ratio of (1e3)**0.25 = 5.62 between
  575 + ! their respective metabolic rates, according to the MTE. The same
  576 + ! ratio is applied to micro-zooplankton (100 um) versus
  577 + ! meso-zooplankton (1000 um).
  578 +
  579 + ! Autotrophs
  580 + amr(ci) = max(0.0,0.25*exp(Ea/(kBeV*T0**2)*(T(ci)/(1+T(ci)/T0))))
  581 + ! Heterotrophs
  582 + hmr(ci) = max(0.0,0.25*exp(Eh/(kBeV*T0**2)*(T(ci)/(1+T(ci)/T0))))
562 583
563 ! Light and nutrient limitation factors 584 ! Light and nutrient limitation factors
564 lumlim(ci) =ff1 585 lumlim(ci) =ff1
565 nitlim(ci) =qn1 586 nitlim(ci) =qn1
566 ammlim(ci) =qa1 587 ammlim(ci) =qa1
567 588
568 - ! Nutrient uptake by flagellates and diatoms 589 + ! Nutrient uptake by pico- and nano-phytoplankton
569 dd(n,p1,ci) =ff1*qn1*(cc(p1,ci)+p0) 590 dd(n,p1,ci) =ff1*qn1*(cc(p1,ci)+p0)
570 dd(a,p1,ci) =ff1*qa1*(cc(p1,ci)+p0) 591 dd(a,p1,ci) =ff1*qa1*(cc(p1,ci)+p0)
571 dd(n,p2,ci) =ff2*qn2*(cc(p2,ci)+p0) 592 dd(n,p2,ci) =ff2*qn2*(cc(p2,ci)+p0)
@@ -574,37 +595,40 @@ @@ -574,37 +595,40 @@
574 dd(p1,l,ci) =gamma*ff1*(qn1+qa1)*cc(p1,ci) 595 dd(p1,l,ci) =gamma*ff1*(qn1+qa1)*cc(p1,ci)
575 dd(p2,l,ci) =gamma*ff2*(qn2+qa2)*cc(p2,ci) 596 dd(p2,l,ci) =gamma*ff2*(qn2+qa2)*cc(p2,ci)
576 597
577 - dd(p1,d,ci) =mu1*(cc(p1,ci)+p0)/(k5+cc(p1,ci)+p0)*cc(p1,ci) &  
578 - +fac3*(1.-beta)*cc(p1,ci)**2*(g1max*r11*fac1+g2max*r21*fac2)  
579 - dd(p2,d,ci) =mu1*(cc(p2,ci)+p0)/(k5+cc(p2,ci)+p0)*cc(p2,ci) &  
580 - +fac3*(1.-beta)*g2max*r21*cc(p2,ci)**2*fac2 598 + dd(p1,d,ci) =mu11*(cc(p1,ci)+p0)/(k5+cc(p1,ci)+p0)*cc(p1,ci) &
  599 + +(1.-beta)*cc(p1,ci)**2*(g1max*r11*fac1+g2max*r21*fac2)
  600 + dd(p2,d,ci) =mu12*(cc(p2,ci)+p0)/(k5+cc(p2,ci)+p0)*cc(p2,ci) &
  601 + +(1.-beta)*g2max*r21*cc(p2,ci)**2*fac2
581 602
582 - dd(b,d,ci) =fac3*(1.-beta)*g1max*r12*cc(b,ci)**2*fac1 603 + dd(b,d,ci) =(1.-beta)*g1max*r12*cc(b,ci)**2*fac1
583 604
584 - dd(p1,z1,ci)=fac3*beta*g1max*r11*cc(p1,ci)**2*fac1  
585 - dd(b,z1,ci) =fac3*beta*g1max*r12*cc(b,ci)**2*fac1  
586 - dd(d,z1,ci) =fac3*beta*g1max*r13*cc(d,ci)**2*fac1 605 + dd(p1,z1,ci)=beta*g1max*r11*cc(p1,ci)**2*fac1
  606 + dd(b,z1,ci) =beta*g1max*r12*cc(b,ci)**2*fac1
  607 + dd(d,z1,ci) =beta*g1max*r13*cc(d,ci)**2*fac1
587 608
588 - dd(p1,z2,ci)=fac3*beta*g2max*r21*cc(p1,ci)**2*fac2  
589 - dd(p2,z2,ci)=fac3*beta*g2max*r22*cc(p2,ci)**2*fac2  
590 - dd(d,z2,ci) =fac3*beta*g2max*r23*cc(d,ci)**2*fac2  
591 - dd(z1,z2,ci)=fac3*beta*g2max*r24*cc(z1,ci)**2*fac2 609 + dd(p1,z2,ci)=beta*g2max*r21*cc(p1,ci)**2*fac2
  610 + dd(p2,z2,ci)=beta*g2max*r22*cc(p2,ci)**2*fac2
  611 + dd(d,z2,ci) =beta*g2max*r23*cc(d,ci)**2*fac2
  612 + dd(z1,z2,ci)=beta*g2max*r24*cc(z1,ci)**2*fac2
592 613
593 dd(b,a,ci) =mu3*cc(b,ci) 614 dd(b,a,ci) =mu3*cc(b,ci)
594 dd(d,l,ci) =mu4*cc(d,ci) 615 dd(d,l,ci) =mu4*cc(d,ci)
595 dd(a,n,ci) =mu5*cc(a,ci) 616 dd(a,n,ci) =mu5*cc(a,ci)
596 617
597 - dd(z1,d,ci) =(1.-epsi-delta)*mu2*(cc(z1,ci)+z0)/(k6+cc(z1,ci)+z0)*cc(z1,ci)  
598 - dd(z1,a,ci) =epsi*mu2*(cc(z1,ci)+z0)/(k6+cc(z1,ci)+z0)*cc(z1,ci)  
599 - dd(z1,l,ci) =delta*mu2*(cc(z1,ci)+z0)/(k6+cc(z1,ci)+z0)*cc(z1,ci) 618 + dd(z1,d,ci) =(1.-epsi-delta)*mu21*(cc(z1,ci)+z0)/(k6+cc(z1,ci)+z0)*cc(z1,ci)
  619 + dd(z1,a,ci) =epsi*mu21*(cc(z1,ci)+z0)/(k6+cc(z1,ci)+z0)*cc(z1,ci)
  620 + dd(z1,l,ci) =delta*mu21*(cc(z1,ci)+z0)/(k6+cc(z1,ci)+z0)*cc(z1,ci)
600 621
601 - dd(z2,d,ci) =(1.-epsi-delta)*mu2*(cc(z2,ci)+z0)/(k6+cc(z2,ci)+z0)*cc(z2,ci)  
602 - dd(z2,a,ci) =epsi*mu2*(cc(z2,ci)+z0)/(k6+cc(z2,ci)+z0)*cc(z2,ci)  
603 - dd(z2,l,ci) =delta*mu2*(cc(z2,ci)+z0)/(k6+cc(z2,ci)+z0)*cc(z2,ci) 622 + dd(z2,d,ci) =(1.-epsi-delta)*mu22*(cc(z2,ci)+z0)/(k6+cc(z2,ci)+z0)*cc(z2,ci)
  623 + dd(z2,a,ci) =epsi*mu22*(cc(z2,ci)+z0)/(k6+cc(z2,ci)+z0)*cc(z2,ci)
  624 + dd(z2,l,ci) =delta*mu22*(cc(z2,ci)+z0)/(k6+cc(z2,ci)+z0)*cc(z2,ci)
604 625
605 dd(a,b,ci) =vb*minal/(k4+minal+cc(l,ci))*(cc(b,ci)+b0) 626 dd(a,b,ci) =vb*minal/(k4+minal+cc(l,ci))*(cc(b,ci)+b0)
606 dd(l,b,ci) =vb*cc(l,ci)/(k4+minal+cc(l,ci))*(cc(b,ci)+b0) 627 dd(l,b,ci) =vb*cc(l,ci)/(k4+minal+cc(l,ci))*(cc(b,ci)+b0)
607 628
  629 + ws(p1,ci) = w_p1
  630 + ws(p2,ci) = w_p2
  631 +
608 do i=1,numc 632 do i=1,numc
609 do j=1,numc 633 do j=1,numc
610 pp(i,j,ci)=dd(j,i,ci) 634 pp(i,j,ci)=dd(j,i,ci)