1 |
C $Header$ |
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 |
#endif /* DAR_DIAG_DIVER */ |
147 |
|
148 |
#ifdef ALLOW_DIAZ |
149 |
#ifdef DAR_DIAG_NFIXP |
150 |
DO np=1,MIN(99,npmax) |
151 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|C-- Add diagnostics of NFix |
152 |
WRITE(diagName,'(A,I2.2,A)') 'NfixP',np,' ' |
153 |
WRITE(diagTitle,'(A,I2.2)') 'Nfix of Phy', np |
154 |
diagUnits = 'mmol N/m^3 ' |
155 |
diagCode = 'SM P MR ' |
156 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
157 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
158 |
|
159 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| ENDDO /* np */ |
160 |
ENDDO /* np */ |
161 |
#endif /* DAR_DIAG_NFIXP */ |
162 |
#endif |
163 |
|
164 |
#ifdef ALLOW_PAR_DAY |
165 |
diagName = 'PARday ' |
166 |
WRITE(diagTitle, '(A)') 'daily-averaged PAR' |
167 |
diagUnits = 'uEin/m^2/s ' |
168 |
diagCode = 'SM P MR ' |
169 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
170 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
171 |
#endif /* ALLOW_PAR_DAY */ |
172 |
|
173 |
#ifdef DAR_DIAG_CHL |
174 |
diagName = 'ChlGeide' |
175 |
WRITE(diagTitle, '(A)') 'Chlorophyll a concentration a la Geider' |
176 |
diagUnits = 'mg Chla/m^3 ' |
177 |
diagCode = 'SM P MR ' |
178 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
179 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
180 |
diagName = 'Chl2CGei' |
181 |
WRITE(diagTitle, '(A)')'Chlorophyll a to carbon ratio a la Geider' |
182 |
diagUnits = 'mg Chla/mmol C ' |
183 |
diagCode = 'SM P MR ' |
184 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
185 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
186 |
|
187 |
diagName = 'ChlDoney' |
188 |
WRITE(diagTitle, '(A)') 'Chlorophyll a concentration a la Doney' |
189 |
diagUnits = 'mg Chla/m^3 ' |
190 |
diagCode = 'SM P MR ' |
191 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
192 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
193 |
|
194 |
diagName = 'Chl2CDon' |
195 |
WRITE(diagTitle, '(A)') 'Chlorophyll a to carbon ratio a la Doney' |
196 |
diagUnits = 'mg Chla/mmol C ' |
197 |
diagCode = 'SM P MR ' |
198 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
199 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
200 |
|
201 |
diagName = 'ChlCloer' |
202 |
WRITE(diagTitle, '(A)') 'Chlorophyll a concentration a la Cloern' |
203 |
diagUnits = 'mg Chla/m^3 ' |
204 |
diagCode = 'SM P MR ' |
205 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
206 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
207 |
diagName = 'Chl2CClo' |
208 |
WRITE(diagTitle, '(A)')'Chlorophyll a to carbon ratio a la Cloern' |
209 |
diagUnits = 'mg Chla/mmol C ' |
210 |
diagCode = 'SM P MR ' |
211 |
CALL DIAGNOSTICS_ADDTOLIST( diagNum, |
212 |
I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) |
213 |
#endif /* DAR_DIAG_CHL */ |
214 |
|
215 |
#endif /* ALLOW_DIAGNOSTICS */ |
216 |
|
217 |
RETURN |
218 |
END |
219 |
C============================================================================ |
220 |
#endif |
221 |
#endif |
222 |
|