/[MITgcm]/MITgcm_contrib/ecco_darwin/v4_3deg/code/darwin_init_fixed.F
ViewVC logotype

Contents of /MITgcm_contrib/ecco_darwin/v4_3deg/code/darwin_init_fixed.F

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


Revision 1.2 - (show annotations) (download)
Mon Jan 27 06:31:50 2020 UTC (6 years, 7 months ago) by dimitri
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +1 -1 lines
FILE REMOVED
where possible, using code and input files from va_llc270

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

  ViewVC Help
Powered by ViewVC 1.1.22