/[MITgcm]/MITgcm_contrib/darwin2/pkg/monod/monod_init_fixed.F
ViewVC logotype

Contents of /MITgcm_contrib/darwin2/pkg/monod/monod_init_fixed.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.10 - (show annotations) (download)
Wed Dec 4 21:21:32 2013 UTC (11 years, 8 months ago) by jahn
Branch: MAIN
CVS Tags: ctrb_darwin2_ckpt64r_20131210, ctrb_darwin2_ckpt64v_20140411, ctrb_darwin2_ckpt64t_20140202, ctrb_darwin2_ckpt64s_20140105, ctrb_darwin2_ckpt64u_20140308
Changes since 1.9: +6 -4 lines
clean up multi-threading directives

1 C $Header: /u/gcmpack/MITgcm_contrib/darwin2/pkg/monod/monod_init_fixed.F,v 1.9 2012/07/26 21:40:10 stephd Exp $
2 C $Name: $
3
4 #include "CPP_OPTIONS.h"
5 #include "PTRACERS_OPTIONS.h"
6 #include "DARWIN_OPTIONS.h"
7
8 #ifdef ALLOW_PTRACERS
9 #ifdef ALLOW_MONOD
10
11 c===============================================================================
12 C===============================================================================
13 CStartofinterface
14 SUBROUTINE MONOD_INIT_FIXED(myThid)
15 C =============== Global data ==========================================
16 C === Global variables ===
17 implicit none
18 #include "SIZE.h"
19 #include "EEPARAMS.h"
20 #include "PARAMS.h"
21 #include "GRID.h"
22 #include "DYNVARS.h"
23 #include "GCHEM.h"
24 #include "DARWIN_PARAMS.h"
25 #include "MONOD_SIZE.h"
26 #include "MONOD.h"
27 #include "DARWIN_FLUX.h"
28
29 INTEGER myThid
30 C============== Local variables ============================================
31 C msgBuf - Informational/error meesage buffer
32 CHARACTER*(MAX_LEN_MBUF) msgBuf
33 _RL pday
34 INTEGER i,j,k,bi,bj,nz
35 INTEGER tmp
36 INTEGER prec
37 CHARACTER*(MAX_LEN_MBUF) fn
38 C /--------------------------------------------------------------\
39 C | initialise common block biochemical parameters |
40 C \--------------------------------------------------------------/
41
42 _BEGIN_MASTER(myThid)
43
44 WRITE(msgBuf,'(A)')
45 &'// ======================================================='
46 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
47 & SQUEEZE_RIGHT, myThid )
48 WRITE(msgBuf,'(A)') '// Darwin loading parameters'
49 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
50 & SQUEEZE_RIGHT, myThid )
51 WRITE(msgBuf,'(A)')
52 &'// ======================================================='
53 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
54 & SQUEEZE_RIGHT, myThid )
55
56
57 c ANNA set fixed params for WAVEBANDS
58 #ifdef WAVEBANDS
59 call wavebands_init_fixed(myThid)
60 #endif
61
62 c c define 1 day in seconds
63 pday = 86400.0 _d 0
64
65
66 c attenuation coefficients
67 c ANNA only if not wavebands
68 #ifndef WAVEBANDS
69 k0= 4. _d -2 !atten coefficient water(m^-1)
70 #ifdef GEIDER
71 kc= 4. _d -2 !atten coefficient chl ((mmol chl/m3)-1)
72 #else
73 kc= 4. _d -2*16. _d 0*1. _d 0 !atten coefficient phy((uM m)-1)
74 #endif
75 #endif
76 c ANNA endif
77
78
79 c par parameters
80 parfrac= 0.4 _d 0 !fraction Qsw that is PAR
81 parconv= 1. _d 0/0.2174 _d 0 !conversion from W/m2 to uEin/m2/s
82 c for chl
83 chlpmax=40. _d 0 ! mg Chl/mmolP
84 chlpmin=16. _d 0 ! mg Chl/mmolP
85 istar=90. _d 0 ! w/m2
86 c iron related
87 alpfe= 0.04 _d 0 !solubility of Fe dust
88 scav= 0.4 _d 0/(360. _d 0*86400. _d 0) !iron chem scavenging rate (s-1)
89 ligand_tot=1. _d -3 !total ligand (uM)
90 ligand_stab=2. _d 5 !ligand stability rate ratio
91 freefemax = .4 _d -3 ! max free fe
92
93 #ifdef IRON_SED_SOURCE
94 c iron sediment source
95 depthfesed=1000.0 _d 0 !depth above which to add sediment source
96 fesedflux =1.0 _d 0 * 1.0 _d -3 / (86400.0 _d 0) !iron flux (mmol/m2/s)
97 fesedflux_pcm =0.68 _d 0 * 1.0 _d -3 !iron flux (mmol/m3/s) per
98 c mmol POC/m3/s
99 #endif
100 #ifdef PART_SCAV
101 scav_rat=0.005 _d 0 /(86400.0 _d 0)
102 scav_inter=0.079 _d 0
103 scav_exp=0.58 _d 0
104 #endif
105
106 c depth for denitrification to start
107 depthdenit=185.0 _d 0
108
109 c critical oxygen for O2/NO3 remineralization
110 O2crit = 6.0 _d 0 !(Lipschultz et al 1990, DSR 37, 1513-1541)
111 c ratio of n to p in denitrification process
112 denit_np = 120.0 _d 0
113 c ratio no3 used relative to all n in denitrification process
114 denit_no3 = 104.0 _d 0
115 c critical nitrate below which no denit (or remin) happens
116 no3crit = 1. _d -2
117 c
118 c oxidation rates for ammonium and nitrite
119 c i.e. Knita ... NH4 -> NO2
120 c i.e. Knitb ... NO2 -> NO3
121 Knita = 1.0 _d 0/(.50 _d 0*pday)
122 Knitb = 1.0 _d 0/(10.0 _d 0*pday)
123 c critical light level (muEin/m2/s) after which oxidation starts
124 PAR0 = 10. _d 0
125 c
126 #ifndef GEIDER
127 c set growth days ...small or big organism?
128 Smallgrow = .7 _d 0
129 Biggrow = .4 _d 0
130 Smallgrowrange = 0. _d 0
131 Biggrowrange = 0. _d 0
132 diaz_growfac = 2. _d 0
133 #endif
134 c set mort days ...small or big organism?
135 Smallmort = 10. _d 0
136 Bigmort = 10. _d 0
137 Smallmortrange = 0. _d 0
138 Bigmortrange = 0. _d 0
139 c set export fraction ...small or big organism?
140 Smallexport = 0.2 _d 0
141 Bigexport = 0.5 _d 0
142 c set sinking rates (m/s)... small or big organism?
143 SmallSink = 0.0 _d 0/pday
144 BigSink = 0.5 _d 0/pday !0.5 _d 0/pday
145 c set parameters for light function for phyto growth
146 #ifndef GEIDER
147 smallksatpar = 0.12 _d 0 ! 0.8 _d 0
148 smallksatparstd = 0.20 _d 0 ! 0.3 _d 0
149 smallkinhib = 6.0 _d 0 ! 2.0 _d 0
150 smallkinhibstd = 0.10 _d 0 ! 0.5 _d 0
151 Bigksatpar = 0.12 _d 0 ! 0.35 _d 0
152 Bigksatparstd = 0.06 _d 0 ! 0.1 _d 0
153 Bigkinhib = 1.0 _d 0 ! 0.5 _d 0
154 Bigkinhibstd = 0.05 _d 0 ! 0.1 _d 0
155 #endif
156 #ifdef GEIDER
157 c for Pcm -- should be growth rates, but using old variables
158 c note these are in terms of days - converted to 1/s later
159 Smallgrow = .7 _d 0
160 Biggrow = .4 _d 0
161 Smallgrowrange = 0. _d 0
162 Biggrowrange = 0. _d 0
163 diaz_growfac = 2. _d 0
164 c
165 smallchl2cmax = 0.2 _d 0 !mg Chl (mmol C)
166 smallchl2cmaxrange = 0.3 _d 0 !mg Chl (mmol C)
167 Bigchl2cmax = 0.5 _d 0 !mg Chl (mmol C)
168 Bigchl2cmaxrange = 0.3 _d 0 !mg Chl (mmol C)
169
170 c ANNA_Q units for alpha are same as expected: mmol C (mg chla)-1 (uEin)-1 (m)2
171 c smallalphachl = 1. _d -6 !mmol C (uEin/m-2)-1 (mg Chl)-1
172 c smallalphachlrange = 1. _d -6 !mmol C (uEin/m-2)-1 (mg Chl)-1
173 c Bigalphachl = 6. _d -7 !mmol C (uEin/m-2)-1 (mg Chl)-1
174 c Bigalphachlrange = 4. _d -7 !mmol C (uEin/m-2)-1 (mg Chl)-1
175 c ANNA mQyield vals are from alphachl / aphy_chl which for now is 0.02
176 c ANNA ranges for mQyield are same as alphachl but reduced by factor 100
177 smallmQyield = 5. _d -5 !mmol C (uEin)-1
178 smallmQyieldrange = 1. _d -4 !mmol C (uEin)-1
179 BigmQyield = 3. _d -5 !mmol C (uEin)-1
180 BigmQyieldrange = 4. _d -5 !mmol C (uEin)-1
181
182 c ANNA value of aphy_chl_ave = 0.02 - its the mean of all spectras used as input data
183 aphy_chl_ave = 0.02 _d 0 !m2 (mg chla)-1 (ie. x chla gives absorption m-1)
184
185 c inhib for Prochl?
186 C inhibcoef_geid_val = 1.2 _d 0 !DUMMY VAL
187 inhibcoef_geid_val = 0 _d 0 !DUMMY VAL
188 #ifdef DYNAMIC_CHL
189 acclimtimescl = 1./(60. _d 0 *60. _d 0 *24. _d 0 * 20. _d 0)
190 #endif
191 #endif
192 c
193
194 c set temperature function
195 tempcoeff1 = 1. _d 0/3. _d 0
196 tempcoeff2_small = 0.001 _d 0
197 tempcoeff2_big = 0.0003 _d 0
198 tempcoeff3 = 1.04 _d 0
199 tempmax = 30. _d 0 ! 32. _d 0
200 temprange = 32. _d 0 ! 30. _d 0
201 tempnorm = 0.3 _d 0 ! 1. _d 0
202 tempdecay = 4. _d 0
203 c set phosphate half stauration constants .. small or big organism
204 SmallPsat=0.015 _d 0
205 BigPsat=0.035 _d 0
206 ProcPsat=0.01 _d 0
207 UniDzPsat=0.012 _d 0
208 SmallPsatrange=0.02 _d 0
209 BigPsatrange=0.02 _d 0
210 ProcPsatrange=0.005 _d 0
211 UniDzPsatrange=0.02 _d 0
212 c set NH4/NO2 frac, so that NH4/NO2 can be preferred nitrogen source
213 ksatNH4fac=.50 _d 0
214 ksatNO2fac=1.0 _d 0
215 c set prochl lower half-sat (used only for mutants)
216 prochlPsat=.85 _d 0
217 c ammonia and nitrite inhibition
218 sig1 = 4.6 _d 0
219 sig2 = 4.6 _d 0
220 sig3 = 4.6 _d 0
221 ngrowfac = 1. _d 0
222 ilight = 2. _d 0
223 c set si half sat
224 val_ksatsi=1. _d 0
225 c set nutrient ratios for phyto
226 #ifdef ONLY_P_CYCLE
227 val_R_SiP_diatom=0.0 _d 0
228 val_R_NP=0.0 _d 0
229 val_RFeP=0.0 _d -3
230 val_R_NP_diaz=0.0 _d 0
231 val_RFeP_diaz=0.0 _d 0 * val_RFeP
232 val_R_PC=0.0 _d 0
233 val_R_PICPOC=0.0 _d 0
234 #else
235 val_R_SiP_diatom=16.0 _d 0 ! 32 for Fanny's runs
236 val_R_NP=16.0 _d 0
237 val_RFeP=1.0 _d -3
238 val_R_NP_diaz=40.0 _d 0
239 val_RFeP_diaz=30.0 _d 0 * val_RFeP
240 val_R_PC=120.0 _d 0
241 val_R_PICPOC=0.8 _d 0
242 #endif
243 c
244 #ifdef OLD_GRAZE
245 c grazing hlaf saturation
246 kgrazesat = 0.1 _d 0
247 c set grazing rates .. small or big organism?
248 GrazeFast = 1.0 _d 0/(5.0 _d 0*pday)
249 GrazeSlow = 1.0 _d 0/(30.0 _d 0*pday)
250 c set grazing effeciency
251 GrazeEffsmall=0.6 _d 0
252 GrazeEffbig =0.2 _d 0
253 c set grazing of diatom factor
254 diatomgraz = 0.8 _d 0
255 coccograz = 0.7 _d 0
256 olargegraz = 0.9 _d 0
257 #else
258 c grazing hlaf saturation
259 c kgrazesat = 0.1 _d 0
260 kgrazesat = 0.1 _d 0
261 c phygrazmin = 1 _d -5
262 phygrazmin = 1 _d -10
263 c set grazing rates .. small or big organism?
264 c GrazeFast = 1.0 _d 0/(5.0 _d 0*pday)
265 GrazeFast = 1.0 _d 0/(2.0 _d 0*pday)
266 c GrazeSlow = 1.0 _d 0/(30.0 _d 0*pday)
267 GrazeSlow = 1.0 _d 0/(7.0 _d 0*pday)
268 c set grazing effeciency
269 GrazeEfflow= 0.2 _d 0
270 GrazeEffmod= 0.5 _d 0
271 GrazeEffhi = 0.7 _d 0
272 c set palatibility
273 palathi = 1.0 _d 0
274 palatlo = 0.2 _d 0
275 c set palatibilty diatom factor
276 diatomgraz = 0.7 _d 0
277 coccograz = 0.6 _d 0
278 olargegraz = 1.0 _d 0
279 c set faction graz to POM
280 ExGrazfracbig = 0.8 _d 0
281 ExGrazfracsmall = 0.8 _d 0
282 c grazing exponential 1= holling 2, 2=holling 3
283 hollexp=1.0 _d 0
284 #endif
285 c set zoo mortality
286 ZoomortSmall = 1.0 _d 0/(30.0 _d 0*pday)
287 ZoomortBig = 1.0 _d 0/(30.0 _d 0*pday)
288 ZoomortSmall2 = 0. _d 0
289 ZoomortBig2 = 0. _d 0
290 c set zoo exportfrac
291 ZooexfacSmall = 0.2 _d 0
292 ZooexfacBig = 0.7 _d 0
293 c minimum phyto (below which grazing and mortality doesn't happen)
294 c phymin = 1 _d -10
295 c phymin = 1 _d -50
296 phymin = 1 _d -20
297 c DOM remin rates
298 Kdop = 1.0 _d 0/(100.0 _d 0*pday)
299 Kdon = 1.0 _d 0/(100.0 _d 0*pday)
300 KdoFe = 1.0 _d 0/(100.0 _d 0*pday)
301 c Particulate detritus remin rates
302 c z* = wx_sink/Kremin_X
303 c for e-folding length scale, z* = 300 m
304 c choose Kremin_X = 1/30 day-1, wx_sink = 10 m day-1
305 Kpremin_P = 1.0 _d 0/(50.0 _d 0*pday)
306 Kpremin_N = Kpremin_P
307 Kpremin_Fe = Kpremin_P
308 Kpremin_Si = 1.0 _d 0/(300.0 _d 0*pday)
309 c sinking rate for particulate matter (m/s)
310 wp_sink = 10.0 _d 0/pday
311 wn_sink = wp_sink
312 wfe_sink = wp_sink
313 wsi_sink = wp_sink
314
315 #ifdef ALLOW_CARBON
316 R_OP = 170 _d 0
317 Kdoc = 1.0 _d 0/(100.0 _d 0*pday)
318 Kpremin_C = 1.0 _d 0/(50.0 _d 0*pday)
319 Kdissc = 1.0 _d 0/(300.0 _d 0*pday)
320 wc_sink = wp_sink
321 wpic_sink = 15.0 _d 0/pday
322 permil = 1. _d 0 / 1024.5 _d 0
323 Pa2Atm = 1.01325 _d 5
324 #endif
325
326 #ifdef ALLOW_CDOM
327 fraccdom=2. _d 0 / 100. _d 0
328 cdomdegrd= 1. _d 0 / (200 _d 0 *pday)
329 cdombleach = 1. _d 0 / (15 _d 0 *pday)
330 PARcdom = 20. _d 0
331 rnp_cdom = 16. _d 0
332 rfep_cdom = 1. _d -3
333 rcp_cdom = 120. _d 0
334 cdomcoeff = .1 _d -1 / 1.d -4
335 #endif
336
337 C make sure we have reserved enough space in Ptracers
338 IF ( nCompZooMax .LT. 4 ) THEN
339 #ifndef ONLY_P_CYCLE
340 WRITE(msgBuf,'(A,A,I3)')
341 & 'MONOD_INIT_FIXED: ERROR: 4 zooplankton components, but ',
342 & 'nCompZooMax = ', nCompZooMax
343 CALL PRINT_ERROR( msgBuf , 1)
344 STOP 'ABNORMAL END: S/R MONOD_INIT_FIXED'
345 #endif
346 ENDIF
347 DO nz = 1,nzmax
348 iZooP (nz) = iZoo + (nz-1)*strideTypeZoo
349 #ifdef ONLY_P_CYCLE
350 iZooN (nz) = nptot
351 iZooFe(nz) = nptot
352 iZooSi(nz) = nptot
353 #else
354 iZooN (nz) = iZoo + 1*strideCompZoo + (nz-1)*strideTypeZoo
355 iZooFe(nz) = iZoo + 2*strideCompZoo + (nz-1)*strideTypeZoo
356 iZooSi(nz) = iZoo + 3*strideCompZoo + (nz-1)*strideTypeZoo
357 #endif
358 ENDDO
359 #ifdef ALLOW_CARBON
360 DO nz = 1,nzmax
361 iZooC (nz) = iZoC + (nz-1)
362 ENDDO
363 #endif
364
365 #ifdef DAR_DIAG_DIVER
366 c only look at grid point with a minimum biomass
367 diver_thresh0=1 _d -12
368 c diver1 - if any type greater than
369 diver_thresh1=1 _d -8
370 c diver2 - if more than this proportion of total biomass
371 diver_thresh2=1 _d -3
372 c diver3 - fraction of biomass to count
373 diver_thresh3=.999 _d 0
374 c diver4 - fraction of maximum species
375 diver_thresh4=1 _d -5
376 c threshold on total biomass for contributing to Shannon and Simpson ind
377 c (these become large at very small biomass)
378 shannon_thresh = 1 _d -8 ! mmol P m-3
379 #endif
380
381 c set up diagnostics
382 #ifdef ALLOW_MNC
383 IF ( useMNC ) THEN
384 CALL DARWIN_MNC_INIT( myThid )
385 #ifdef ALLOW_CARBON
386 CALL DIC_MNC_INIT( myThid )
387 #endif
388 ENDIF
389 #endif /* ALLOW_MNC */
390
391 COJ set up diagnostics
392 #ifdef ALLOW_DIAGNOSTICS
393 IF ( useDIAGNOSTICS ) THEN
394 CALL MONOD_DIAGNOSTICS_INIT( myThid )
395 #ifdef ALLOW_CARBON
396 CALL DIC_DIAGNOSTICS_INIT( myThid )
397 #endif
398 ENDIF
399 #endif /* ALLOW_DIAGNOSTICS */
400 COJ
401
402 _END_MASTER(myThid)
403
404 RETURN
405 END
406 C============================================================================
407 #endif
408 #endif
409

  ViewVC Help
Powered by ViewVC 1.1.22