Commit 8465f2a221eef6d0a23cf63f9e4d2d8ccad86311

Authored by Dany Dumont
1 parent 0ec83b65
Exists in master and in 1 other branch snow

migration vertical du zoo dans le modele bio_nocera

src/extras/bio/bio_nocera.F90
... ... @@ -123,6 +123,7 @@
123 123 REALTYPE :: theta = 0.0
124 124 REALTYPE :: w_pmin = -0.06
125 125 REALTYPE :: w_pmax = -0.38
  126 + REALTYPE :: w_zmax = 100.0
126 127 REALTYPE :: k1 = 0.2
127 128 REALTYPE :: k2 = 0.8
128 129 REALTYPE :: mu1 = 0.05
... ... @@ -145,9 +146,12 @@
145 146 REALTYPE :: eta = 0.0
146 147 REALTYPE :: mu4 = 0.02
147 148 REALTYPE :: w_d = -2.0
  149 + REALTYPE :: bertha = 0.05
  150 + REALTYPE :: parcrit = 0.02
  151 + REALTYPE :: pmin = 0.05
148 152 REALTYPE, public :: kc = 0.03
149 153 integer :: out_unit
150   - integer, parameter :: p=1,z=2,b=3,d=4,n=5,a=6,l=7
  154 + integer, parameter :: p=1,z=2,b=3,d=4,n=5,a=6,l=7,f=8
151 155 !EOP
152 156 !-----------------------------------------------------------------------
153 157  
... ... @@ -184,8 +188,9 @@
184 188 l_initial,p0,z0,b0,vp,alpha,k1,k2,mu1,k5, &
185 189 gamma,w_p,gmax,k3,beta,mu2,k6,delta,epsi,r1,r2,r3, &
186 190 vb,k4,mu3,eta,mu4,w_d,kc, &
187   - I_opt,inib, & !CHG1
188   - theta,w_pmax,w_pmin !CHG2
  191 + I_opt,inib, &
  192 + theta,w_pmax,w_pmin, &
  193 + bertha,parcrit,w_zmax,pmin
189 194 !EOP
190 195 !-----------------------------------------------------------------------
191 196 !BOC
... ... @@ -231,6 +236,7 @@
231 236 w_p = w_p /secs_pr_day
232 237 w_pmin = w_pmin /secs_pr_day !DD
233 238 w_pmax = w_pmax /secs_pr_day !DD
  239 + w_zmax = w_zmax /secs_pr_day
234 240 theta = theta /secs_pr_day !DD
235 241 w_d = w_d /secs_pr_day
236 242 alpha= alpha/secs_pr_day
... ... @@ -378,6 +384,10 @@
378 384 var_units(7) = 'mmol/m**3'
379 385 var_long(7) = 'labile_dissolved_organic_nitrogen'
380 386  
  387 + var_names(8) = 'fcp'
  388 + var_units(8) = 'mmol/m**3'
  389 + var_long(8) = 'fecal pellets'
  390 +
381 391 return
382 392 end subroutine var_info_nocera
383 393 !EOC
... ... @@ -597,6 +607,15 @@
597 607  
598 608 ppnet(ci) =(dd(a,p,ci)+dd(n,p,ci)-dd(p,d,ci)-dd(p,z,ci)-dd(p,l,ci))*secs_pr_day
599 609  
  610 + !Diurnal migration of zooplancton as a function of light and phytoplancton
  611 + !(food) concentration
  612 + if (cc(p,ci) .lt. pmin) then
  613 + ws(z,ci) = -1.0*w_zmax*tanh(bertha*(par(ci)-parcrit))
  614 + else
  615 + ws(z,ci) = 0.0
  616 + end if
  617 +
  618 +
600 619 do i=1,numc
601 620 do j=1,numc
602 621 pp(i,j,ci)=dd(j,i,ci)
... ...
src/extras/bio/bio_save.F90
... ... @@ -83,11 +83,18 @@
83 83 long_name=var_long(n))
84 84 end do
85 85  
86   - !CHG2 Diagnostic de la vitesse de chute du phytoplancton (wp)
  86 + ! Sedimentation or swimming rate of particulate matter
  87 + ! Living phytoplankton
87 88 iret = new_nc_variable(ncid,'wp',NF_REAL,4,dims,wp_id)
88 89 iret = set_attributes(ncid,wp_id,units='m/day', &
89 90 long_name='phytoplancton settling velocity')
90 91  
  92 + ! Living zooplankton
  93 + if (bio_model .eq. 8) then
  94 + iret = new_nc_variable(ncid,'wz',NF_REAL,4,dims,wz_id)
  95 + iret = set_attributes(ncid,wz_id,units='m/day', &
  96 + long_name='zooplancton swimming velocity')
  97 + end if
91 98 !CHG4 Diagnostic du PAR
92 99 iret = new_nc_variable(ncid,'par',NF_REAL,4,dims,par_id)
93 100 iret = set_attributes(ncid,par_id,units='W/m2',long_name='PAR')
... ... @@ -127,10 +134,14 @@
127 134 iret = store_data(ncid,var_ids(n),XYZT_SHAPE,nlev,array=cc(n,:))
128 135 end do
129 136  
130   - !CHG2 Vitesse de chute du phytoplancton (wp = ws(1,:))
131   - iret = store_data(ncid,wp_id,XYZT_SHAPE,nlev,array=86400*ws(1,:))
  137 + ! Sedimentation rate of phytoplankton
  138 + iret = store_data(ncid,wp_id,XYZT_SHAPE,nlev,array=secs_pr_day*ws(1,:))
  139 + ! Swimming velocity of zootoplankton
  140 + if (bio_model .eq. 8) then
  141 + iret = store_data(ncid,wz_id,XYZT_SHAPE,nlev,array=secs_pr_day*ws(2,:))
  142 + end if
132 143  
133   - !CHG4 PAR (par = par(:))
  144 + ! PAR
134 145 iret = store_data(ncid,par_id,XYZT_SHAPE,nlev,array=par(:))
135 146  
136 147 !DD
... ...
src/extras/bio/bio_var.F90
... ... @@ -35,8 +35,8 @@
35 35 REALTYPE, dimension(:,:), allocatable :: particle_pos
36 36  
37 37 integer, dimension(:), allocatable :: var_ids
38   - integer :: wp_id !CHG2
39   - integer :: par_id !CHG4
  38 + integer :: wp_id,wz_id
  39 + integer :: par_id
40 40 integer :: lumlim1_id,nitlim1_id,ammlim1_id,lumlim2_id,nitlim2_id,ammlim2_id !DD
41 41 integer :: ppnet_id
42 42 character(len=64), dimension(:), allocatable :: var_names
... ...