1 |
C $Header: /u/gcmpack/MITgcm_contrib/darwin2/pkg/monod/monod_diagnostics_init.F,v 1.1 2011/04/13 18:56:25 jahn 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 |
CBOP |
12 |
C !ROUTINE: MONOD_DIAGNOSTICS_INIT |
13 |
C !INTERFACE: |
14 |
SUBROUTINE MONOD_DIAGNOSTICS_INIT( myThid ) |
15 |
C !DESCRIPTION: |
16 |
C Routine to initialize Darwin diagnostics |
17 |
|
18 |
C !USES: |
19 |
IMPLICIT NONE |
20 |
C === Global variables === |
21 |
#include "SIZE.h" |
22 |
#include "PTRACERS_SIZE.h" |
23 |
#include "EEPARAMS.h" |
24 |
#include "PARAMS.h" |
25 |
#include "GCHEM.h" |
26 |
#include "MONOD_SIZE.h" |
27 |
|
28 |
C !INPUT/OUTPUT PARAMETERS: |
29 |
C === Routine arguments === |
30 |
C myThid - Number of this instance of MONOD_DIAGNOSTICS_INIT |
31 |
INTEGER myThid |
32 |
CEOP |
33 |
|
34 |
#ifdef ALLOW_DIAGNOSTICS |
35 |
C !LOCAL VARIABLES: |
36 |
C === Local variables === |
37 |
C msgBuf - Informational/error meesage buffer |
38 |
c CHARACTER*(MAX_LEN_MBUF) msgBuf |
39 |
|
40 |
INTEGER diagNum |
41 |
CHARACTER*8 diagName |
42 |
CHARACTER*16 diagCode |
43 |
CHARACTER*16 diagUnits |
44 |
CHARACTER*(80) diagTitle |
45 |
|
46 |
INTEGER np |
47 |
|
48 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
49 |
|
50 |
C-- Add diagnostics to the (long) list |
51 |
|
52 |
C-- Add diagnostic PAR, PP and Nfix |
53 |
diagName = 'PAR ' |
54 |
WRITE(diagTitle, '(A)') 'PAR' |
55 |
diagUnits = 'uEin/m^2/s ' |
56 |
diagCode = 'SM P MR ' |
57 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
58 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
59 |
|
60 |
diagName = 'PP ' |
61 |
WRITE(diagTitle, '(A)') 'Primary Production' |
62 |
diagUnits = 'mmol P/m^3/s ' |
63 |
diagCode = 'SM P MR ' |
64 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
65 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
66 |
|
67 |
diagName = 'Nfix ' |
68 |
WRITE(diagTitle, '(A)') 'N fixation' |
69 |
diagUnits = 'mmol N/m^3/s ' |
70 |
diagCode = 'SM P MR ' |
71 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
72 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
73 |
|
74 |
diagName = 'Denit ' |
75 |
WRITE(diagTitle, '(A)') 'Denitrification' |
76 |
diagUnits = 'mmol N/m^3/s ' |
77 |
diagCode = 'SM P MR ' |
78 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
79 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
80 |
|
81 |
c ANNA_TAVE |
82 |
#ifdef WAVES_DIAG_PCHL |
83 |
DO np=1,MIN(99,npmax) |
84 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
85 |
C-- Add diagnostics of Pchl |
86 |
c ANNA_Q format to allow more Ptracers I2.3 ?? |
87 |
WRITE(diagName,'(A,I2.2,A)') 'Pchl',np,' ' |
88 |
WRITE(diagTitle,'(A,I2.2)') 'Chl of Phy', np |
89 |
diagUnits = 'mg chl/m^3 ' |
90 |
diagCode = 'SM P MR ' |
91 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
92 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
93 |
|
94 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
95 |
ENDDO /* np */ |
96 |
#endif /* WAVES_DIAG_PCHL */ |
97 |
c ANNA end TAVE |
98 |
|
99 |
#ifdef DAR_DIAG_RSTAR |
100 |
DO np=1,MIN(99,npmax) |
101 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
102 |
C-- Add diagnostics of Rstar |
103 |
WRITE(diagName,'(A,I2.2,A)') 'Rstar',np,' ' |
104 |
WRITE(diagTitle,'(A,I2.2)') 'Rstar^PO4 of Phy', np |
105 |
diagUnits = 'mmol P/m^3 ' |
106 |
diagCode = 'SM P MR ' |
107 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
108 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
109 |
|
110 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
111 |
ENDDO /* np */ |
112 |
#endif /* DAR_DIAG_RSTAR */ |
113 |
|
114 |
#ifdef DAR_DIAG_DIVER |
115 |
diagName = 'Diver1 ' |
116 |
WRITE(diagTitle, '(A)') |
117 |
& '# Phy species over absolute threshold' |
118 |
diagUnits = '1 ' |
119 |
diagCode = 'SM P MR ' |
120 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
121 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
122 |
|
123 |
diagName = 'Diver2 ' |
124 |
WRITE(diagTitle, '(A)') |
125 |
& '# Phy species over threshold for proportion of biomass' |
126 |
diagUnits = '1 ' |
127 |
diagCode = 'SM P MR ' |
128 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
129 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
130 |
|
131 |
diagName = 'Diver3 ' |
132 |
WRITE(diagTitle, '(A)') |
133 |
& '# Phy species constituting bulk of biomass' |
134 |
diagUnits = '1 ' |
135 |
diagCode = 'SM P MR ' |
136 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
137 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
138 |
|
139 |
diagName = 'Diver4 ' |
140 |
WRITE(diagTitle, '(A)') |
141 |
& '# Phy species over threshold for ratio to maximum species' |
142 |
diagUnits = '1 ' |
143 |
diagCode = 'SM P MR ' |
144 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
145 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
146 |
|
147 |
diagName = 'Shannon ' |
148 |
WRITE(diagTitle, '(A)') |
149 |
& '# Shannon index' |
150 |
diagUnits = '1 ' |
151 |
diagCode = 'SM P MR ' |
152 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
153 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
154 |
|
155 |
diagName = 'Simpson ' |
156 |
WRITE(diagTitle, '(A)') |
157 |
& '# Simpson diversity index 1/sum p*p' |
158 |
diagUnits = '1 ' |
159 |
diagCode = 'SM P MR ' |
160 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
161 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
162 |
#endif /* DAR_DIAG_DIVER */ |
163 |
|
164 |
#ifdef ALLOW_DIAZ |
165 |
#ifdef DAR_DIAG_NFIXP |
166 |
DO np=1,MIN(99,npmax) |
167 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|C-- Add diagnostics of NFix |
168 |
WRITE(diagName,'(A,I2.2,A)') 'NfixP',np,' ' |
169 |
WRITE(diagTitle,'(A,I2.2)') 'Nfix of Phy', np |
170 |
diagUnits = 'mmol N/m^3 ' |
171 |
diagCode = 'SM P MR ' |
172 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
173 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
174 |
|
175 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| ENDDO /* np */ |
176 |
ENDDO /* np */ |
177 |
#endif /* DAR_DIAG_NFIXP */ |
178 |
#endif |
179 |
|
180 |
#ifdef ALLOW_PAR_DAY |
181 |
diagName = 'PARday ' |
182 |
WRITE(diagTitle, '(A)') 'daily-averaged PAR' |
183 |
diagUnits = 'uEin/m^2/s ' |
184 |
diagCode = 'SM P MR ' |
185 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
186 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
187 |
#endif /* ALLOW_PAR_DAY */ |
188 |
|
189 |
#ifdef DAR_DIAG_CHL |
190 |
diagName = 'ChlGeide' |
191 |
WRITE(diagTitle, '(A)') 'Chlorophyll a concentration a la Geider' |
192 |
diagUnits = 'mg Chla/m^3 ' |
193 |
diagCode = 'SM P MR ' |
194 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
195 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
196 |
diagName = 'Chl2CGei' |
197 |
WRITE(diagTitle, '(A)')'Chlorophyll a to carbon ratio a la Geider' |
198 |
diagUnits = 'mg Chla/mmol C ' |
199 |
diagCode = 'SM P MR ' |
200 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
201 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
202 |
|
203 |
diagName = 'ChlDoney' |
204 |
WRITE(diagTitle, '(A)') 'Chlorophyll a concentration a la Doney' |
205 |
diagUnits = 'mg Chla/m^3 ' |
206 |
diagCode = 'SM P MR ' |
207 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
208 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
209 |
|
210 |
diagName = 'Chl2CDon' |
211 |
WRITE(diagTitle, '(A)') 'Chlorophyll a to carbon ratio a la Doney' |
212 |
diagUnits = 'mg Chla/mmol C ' |
213 |
diagCode = 'SM P MR ' |
214 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
215 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
216 |
|
217 |
diagName = 'ChlCloer' |
218 |
WRITE(diagTitle, '(A)') 'Chlorophyll a concentration a la Cloern' |
219 |
diagUnits = 'mg Chla/m^3 ' |
220 |
diagCode = 'SM P MR ' |
221 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
222 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
223 |
diagName = 'Chl2CClo' |
224 |
WRITE(diagTitle, '(A)')'Chlorophyll a to carbon ratio a la Cloern' |
225 |
diagUnits = 'mg Chla/mmol C ' |
226 |
diagCode = 'SM P MR ' |
227 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
228 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
229 |
#endif /* DAR_DIAG_CHL */ |
230 |
|
231 |
#endif /* ALLOW_DIAGNOSTICS */ |
232 |
|
233 |
RETURN |
234 |
END |
235 |
C============================================================================ |
236 |
#endif |
237 |
#endif |
238 |
|