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

Annotation 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.1 - (hide annotations) (download)
Mon Jan 27 02:52:02 2020 UTC (6 years, 7 months ago) by dimitri
Branch: MAIN
First complete check in with v4_llc270 ecco-darwin set-up

1 dimitri 1.1 C $Header: /u/gcmpack/MITgcm_contrib/ecco_darwin/v4_llc270/code_darwin/darwin_init_fixed.F,v 1.7 2020/01/08 16:05:31 dcarroll 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