File: C:\NOAA\NEMS_11731\src\chem\gocart\src\GMAO_Shared\Chem_Shared\mod_diag.F90
1 MODULE mod_diag
2
3
4
5
6
7
8
9
10 implicit none
11
12
13
14
15
16
17
18 integer iALBEDO
19 integer iALDIF
20 integer iALDIR
21 integer iASDIF
22 integer iASDIR
23 integer iBMA
24 integer iBULKTS
25 integer iCAPEMX
26 integer iCLDHGH
27 integer iCLDLOW
28 integer iCLDMED
29 integer iCLDPRS
30 integer iCLDTMP
31 integer iCLDTOT
32 integer iCNVCLD
33 integer iDRUNOFF
34 integer iDTG
35 integer iEMSFC
36 integer iFLNS
37 integer iFLNSC
38 integer iFLNT
39 integer iFLNTC
40 integer iFRACLAKE
41 integer iFRACVEG
42 integer iFSDS
43 integer iFSNS
44 integer iFSNSC
45 integer iFSNT
46 integer iFSNTC
47 integer iGWETROOT
48 integer iGWETTC
49 integer iGWETTOP
50 integer iH300
51 integer iH500
52 integer iHSURF
53 integer iHTLCL
54 integer iHTMMSE
55 integer iLAI
56 integer iLHFX
57 integer iLWSH
58 integer iO3DU
59 integer iORO
60 integer iOSR
61 integer iOSRCLR
62 integer iPARDF
63 integer iPARDR
64 integer iPBLH
65 integer iPREACC
66 integer iPRECC
67 integer iPRECL
68 integer iPRECL_RH
69 integer iQ10M
70 integer iQ2M
71 integer iQFLX
72 integer iQPERT
73 integer iSHFX
74 integer iSLP
75 integer iSNOWDP
76 integer iSNOWH
77 integer iSOILWC1
78 integer iSOILWC2
79 integer iSOLIN
80 integer iSRFRAD
81 integer iSRUNOFF
82 integer iSURFP
83 integer iT10M
84 integer iT200
85 integer iT2M
86 integer iT850
87 integer iTAUGWX
88 integer iTAUGWY
89 integer iTAUX
90 integer iTAUY
91 integer iTHICK
92 integer iTLAKE1
93 integer iTPERT
94 integer iTQ
95 integer iTRAD
96 integer iTROPP
97 integer iTROPQ
98 integer iTROPT
99 integer iTSKIN
100 integer iTSLAKE
101 integer iTSOIL1
102 integer iTVEG
103 integer iU10M
104 integer iU200
105 integer iU2M
106 integer iU500
107 integer iU850
108 integer iUSTAR
109 integer iV10M
110 integer iV200
111 integer iV2M
112 integer iV500
113 integer iV850
114 integer iVAVET
115 integer iVAVEU
116 integer iVAVEUQ
117 integer iVAVEUT
118 integer iVAVEV
119 integer iVAVEVQ
120 integer iVAVEVT
121 integer iWATCAN
122 integer iWBALLAKE
123 integer iZ0H
124 integer iZ0M
125 integer iZMMB
126 integer iZMPR
127 integer iZPD
128
129
130
131
132 integer iAIRDENS
133 integer iCAPE
134 integer iCGS
135 integer iCLDLWP
136 integer iCLOUD
137 integer iCLOUDUP
138 integer iCMFDQ
139 integer iCMFDQR2
140 integer iCMFDT
141 integer iCMFDTR
142 integer iCMFETR
143 integer iCMFMC
144 integer iCMFMC2
145 integer iCONVCLD
146 integer iDCAFDT
147 integer iDIABDT
148 integer iDQCOND
149 integer iDQPBLCG
150 integer iDQRL
151 integer iDTCOND
152 integer iDTPBLCG
153 integer iDTRAIN
154 integer iDTV
155 integer iDUV
156 integer iDVV
157 integer iEFFCLD
158 integer iEVAPL
159 integer iH
160 integer iHGHTE
161 integer iHKBETA
162 integer iHKETA
163 integer iKVH
164 integer iKVM
165 integer iO3VMR
166 integer iOMEGA
167 integer iPV
168 integer iQ
169 integer iQC
170 integer iQRL
171 integer iQRS
172 integer iRAYFDT
173 integer iRELHUM
174 integer iRHCLR
175 integer iRNEVPDQ
176 integer iRNEVPDT
177 integer iSETLWP
178 integer iSTRATCLD
179 integer iT
180 integer iTAUCLI
181 integer iTAUCLW
182 integer iTKE
183 integer iTTMGW
184 integer iU
185 integer iUQ
186 integer iUT
187 integer iUTGW
188 integer iUU
189 integer iUV
190 integer iV
191 integer iVD01
192 integer iVQ
193 integer iVT
194 integer iVTGW
195 integer iVV
196 integer iZMCME
197 integer iZMDLF
198 integer iZMDQ
199 integer iZMDQR
200 integer iZMDT
201 integer iZMDU
202 integer iZMED
203 integer iZMEPS
204 integer iZMEU
205 integer iZMEVP
206 integer iZMMD
207 integer iZMMU
208 integer iZMPFLX
209 integer iZMQL
210
211 integer pd2d
212 integer pd3d
213 integer pdiag
214
215
216
217 parameter (iALBEDO = 1)
218 parameter (iALDIF = iALBEDO + 1)
219 parameter (iALDIR = iALDIF + 1)
220 parameter (iASDIF = iALDIR + 1)
221 parameter (iASDIR = iASDIF + 1)
222 parameter (iBMA = iASDIR + 1)
223 parameter (iBULKTS = iBMA + 1)
224 parameter (iCAPEMX = iBULKTS + 1)
225 parameter (iCLDHGH = iCAPEMX + 1)
226 parameter (iCLDLOW = iCLDHGH + 1)
227 parameter (iCLDMED = iCLDLOW + 1)
228 parameter (iCLDPRS = iCLDMED + 1)
229 parameter (iCLDTMP = iCLDPRS + 1)
230 parameter (iCLDTOT = iCLDTMP + 1)
231 parameter (iCNVCLD = iCLDTOT + 1)
232 parameter (iDRUNOFF = iCNVCLD + 1)
233 parameter (iDTG = iDRUNOFF + 1)
234 parameter (iEMSFC = iDTG + 1)
235 parameter (iFLNS = iEMSFC + 1)
236 parameter (iFRACLAKE = iFLNS + 1)
237 parameter (iFRACVEG = iFRACLAKE+ 1)
238 parameter (iFLNSC = iFRACVEG + 1)
239 parameter (iFLNT = iFLNSC + 1)
240 parameter (iFLNTC = iFLNT + 1)
241 parameter (iFSDS = iFLNTC + 1)
242 parameter (iFSNS = iFSDS + 1)
243 parameter (iFSNSC = iFSNS + 1)
244 parameter (iFSNT = iFSNSC + 1)
245 parameter (iFSNTC = iFSNT + 1)
246 parameter (iGWETROOT = iFSNTC + 1)
247 parameter (iGWETTC = iGWETROOT+ 1)
248 parameter (iGWETTOP = iGWETTC + 1)
249 parameter (iH300 = iGWETTOP + 1)
250 parameter (iH500 = iH300 + 1)
251 parameter (iHSURF = iH500 + 1)
252 parameter (iHTLCL = iHSURF + 1)
253 parameter (iHTMMSE = iHTLCL + 1)
254 parameter (iLAI = iHTMMSE + 1)
255 parameter (iLHFX = iLAI + 1)
256 parameter (iLWSH = iLHFX + 1)
257 parameter (iO3DU = iLWSH + 1)
258 parameter (iORO = iO3DU + 1)
259 parameter (iOSR = iORO + 1)
260 parameter (iOSRCLR = iOSR + 1)
261 parameter (iPARDF = iOSRCLR + 1)
262 parameter (iPARDR = iPARDF + 1)
263 parameter (iPBLH = iPARDR + 1)
264 parameter (iPREACC = iPBLH + 1)
265 parameter (iPRECC = iPREACC + 1)
266 parameter (iPRECL = iPRECC + 1)
267 parameter (iPRECL_RH = iPRECL + 1)
268 parameter (iQ10M = iPRECL_RH+ 1)
269 parameter (iQ2M = iQ10M + 1)
270 parameter (iQFLX = iQ2M + 1)
271 parameter (iQPERT = iQFLX + 1)
272 parameter (iSHFX = iQPERT + 1)
273 parameter (iSLP = iSHFX + 1)
274 parameter (iSNOWDP = iSLP + 1)
275 parameter (iSNOWH = iSNOWDP + 1)
276 parameter (iSOILWC1 = iSNOWH + 1)
277 parameter (iSOILWC2 = iSOILWC1 + 1)
278 parameter (iSOLIN = iSOILWC2 + 1)
279 parameter (iSRFRAD = iSOLIN + 1)
280 parameter (iSRUNOFF = iSRFRAD + 1)
281 parameter (iSURFP = iSRUNOFF + 1)
282 parameter (iT10M = iSURFP + 1)
283 parameter (iT200 = iT10M + 1)
284 parameter (iT2M = iT200 + 1)
285 parameter (iT850 = iT2M + 1)
286 parameter (iTAUGWX = iT850 + 1)
287 parameter (iTAUGWY = iTAUGWX + 1)
288 parameter (iTAUX = iTAUGWY + 1)
289 parameter (iTAUY = iTAUX + 1)
290 parameter (iTHICK = iTAUY + 1)
291 parameter (iTLAKE1 = iTHICK + 1)
292 parameter (iTPERT = iTLAKE1 + 1)
293 parameter (iTQ = iTPERT + 1)
294 parameter (iTRAD = iTQ + 1)
295 parameter (iTROPP = iTRAD + 1)
296 parameter (iTROPQ = iTROPP + 1)
297 parameter (iTROPT = iTROPQ + 1)
298 parameter (iTSKIN = iTROPT + 1)
299 parameter (iTSLAKE = iTSKIN + 1)
300 parameter (iTSOIL1 = iTSLAKE + 1)
301 parameter (iTVEG = iTSOIL1 + 1)
302 parameter (iU10M = iTVEG + 1)
303 parameter (iU200 = iU10M + 1)
304 parameter (iU2M = iU200 + 1)
305 parameter (iU500 = iU2M + 1)
306 parameter (iU850 = iU500 + 1)
307 parameter (iUSTAR = iU850 + 1)
308 parameter (iV10M = iUSTAR + 1)
309 parameter (iV200 = iV10M + 1)
310 parameter (iV2M = iV200 + 1)
311 parameter (iV500 = iV2M + 1)
312 parameter (iV850 = iV500 + 1)
313 parameter (iVAVET = iV850 + 1)
314 parameter (iVAVEU = iVAVET + 1)
315 parameter (iVAVEUQ = iVAVEU + 1)
316 parameter (iVAVEUT = iVAVEUQ + 1)
317 parameter (iVAVEV = iVAVEUT + 1)
318 parameter (iVAVEVQ = iVAVEV + 1)
319 parameter (iVAVEVT = iVAVEVQ + 1)
320 parameter (iWATCAN = iVAVEVT + 1)
321 parameter (iWBALLAKE = iWATCAN + 1)
322 parameter (iZ0H = iWBALLAKE+ 1)
323 parameter (iZ0M = iZ0H + 1)
324 parameter (iZMMB = iZ0M + 1)
325 parameter (iZMPR = iZMMB + 1)
326 parameter (iZPD = iZMPR + 1)
327
328 #ifdef FVCHEM
329 integer, parameter :: iDUEM001 = iZPD + 1
330 integer, parameter :: iDUEM002 = iDUEM001 + 1
331 integer, parameter :: iDUEM003 = iDUEM002 + 1
332 integer, parameter :: iDUEM004 = iDUEM003 + 1
333 integer, parameter :: iDUEM005 = iDUEM004 + 1
334 integer, parameter :: iDUEM006 = iDUEM005 + 1
335 integer, parameter :: iDUEM007 = iDUEM006 + 1
336 integer, parameter :: iDUEM008 = iDUEM007 + 1
337
338 integer, parameter :: iDUSD001 = iDUEM008 + 1
339 integer, parameter :: iDUSD002 = iDUSD001 + 1
340 integer, parameter :: iDUSD003 = iDUSD002 + 1
341 integer, parameter :: iDUSD004 = iDUSD003 + 1
342 integer, parameter :: iDUSD005 = iDUSD004 + 1
343 integer, parameter :: iDUSD006 = iDUSD005 + 1
344 integer, parameter :: iDUSD007 = iDUSD006 + 1
345 integer, parameter :: iDUSD008 = iDUSD007 + 1
346
347 integer, parameter :: iDUDP001 = iDUSD008 + 1
348 integer, parameter :: iDUDP002 = iDUDP001 + 1
349 integer, parameter :: iDUDP003 = iDUDP002 + 1
350 integer, parameter :: iDUDP004 = iDUDP003 + 1
351 integer, parameter :: iDUDP005 = iDUDP004 + 1
352 integer, parameter :: iDUDP006 = iDUDP005 + 1
353 integer, parameter :: iDUDP007 = iDUDP006 + 1
354 integer, parameter :: iDUDP008 = iDUDP007 + 1
355
356 integer, parameter :: iDUWT001 = iDUDP008 + 1
357 integer, parameter :: iDUWT002 = iDUWT001 + 1
358 integer, parameter :: iDUWT003 = iDUWT002 + 1
359 integer, parameter :: iDUWT004 = iDUWT003 + 1
360 integer, parameter :: iDUWT005 = iDUWT004 + 1
361 integer, parameter :: iDUWT006 = iDUWT005 + 1
362 integer, parameter :: iDUWT007 = iDUWT006 + 1
363 integer, parameter :: iDUWT008 = iDUWT007 + 1
364
365 integer, parameter :: iDUSV001 = iDUWT008 + 1
366 integer, parameter :: iDUSV002 = iDUSV001 + 1
367 integer, parameter :: iDUSV003 = iDUSV002 + 1
368 integer, parameter :: iDUSV004 = iDUSV003 + 1
369 integer, parameter :: iDUSV005 = iDUSV004 + 1
370 integer, parameter :: iDUSV006 = iDUSV005 + 1
371 integer, parameter :: iDUSV007 = iDUSV006 + 1
372 integer, parameter :: iDUSV008 = iDUSV007 + 1
373
374 integer, parameter :: iDUSMASS = iDUSV008 + 1
375 integer, parameter :: iDUCMASS = iDUSMASS + 1
376 integer, parameter :: iDUSMASS1 = iDUCMASS + 1
377 integer, parameter :: iDUCMASS1 = iDUSMASS1 + 1
378 integer, parameter :: iDUEXTTAU = iDUCMASS1 + 1
379 integer, parameter :: iDUSCATAU = iDUEXTTAU + 1
380 integer, parameter :: iDUAERIDX = iDUSCATAU + 1
381
382
383 integer, parameter :: iDUSM25 = iDUAERIDX + 1
384 integer, parameter :: iDUCM25 = iDUSM25 + 1
385 integer, parameter :: iDUEXTT25 = iDUCM25 + 1
386 integer, parameter :: iDUSCAT25 = iDUEXTT25 + 1
387
388 integer, parameter :: iSSEM001 = iDUSCAT25 + 1
389 integer, parameter :: iSSEM002 = iSSEM001 + 1
390 integer, parameter :: iSSEM003 = iSSEM002 + 1
391 integer, parameter :: iSSEM004 = iSSEM003 + 1
392 integer, parameter :: iSSEM005 = iSSEM004 + 1
393 integer, parameter :: iSSEM006 = iSSEM005 + 1
394 integer, parameter :: iSSEM007 = iSSEM006 + 1
395 integer, parameter :: iSSEM008 = iSSEM007 + 1
396
397 integer, parameter :: iSSSD001 = iSSEM008 + 1
398 integer, parameter :: iSSSD002 = iSSSD001 + 1
399 integer, parameter :: iSSSD003 = iSSSD002 + 1
400 integer, parameter :: iSSSD004 = iSSSD003 + 1
401 integer, parameter :: iSSSD005 = iSSSD004 + 1
402 integer, parameter :: iSSSD006 = iSSSD005 + 1
403 integer, parameter :: iSSSD007 = iSSSD006 + 1
404 integer, parameter :: iSSSD008 = iSSSD007 + 1
405
406 integer, parameter :: iSSDP001 = iSSSD008 + 1
407 integer, parameter :: iSSDP002 = iSSDP001 + 1
408 integer, parameter :: iSSDP003 = iSSDP002 + 1
409 integer, parameter :: iSSDP004 = iSSDP003 + 1
410 integer, parameter :: iSSDP005 = iSSDP004 + 1
411 integer, parameter :: iSSDP006 = iSSDP005 + 1
412 integer, parameter :: iSSDP007 = iSSDP006 + 1
413 integer, parameter :: iSSDP008 = iSSDP007 + 1
414
415 integer, parameter :: iSSWT001 = iSSDP008 + 1
416 integer, parameter :: iSSWT002 = iSSWT001 + 1
417 integer, parameter :: iSSWT003 = iSSWT002 + 1
418 integer, parameter :: iSSWT004 = iSSWT003 + 1
419 integer, parameter :: iSSWT005 = iSSWT004 + 1
420 integer, parameter :: iSSWT006 = iSSWT005 + 1
421 integer, parameter :: iSSWT007 = iSSWT006 + 1
422 integer, parameter :: iSSWT008 = iSSWT007 + 1
423
424 integer, parameter :: iSSSV001 = iSSWT008 + 1
425 integer, parameter :: iSSSV002 = iSSSV001 + 1
426 integer, parameter :: iSSSV003 = iSSSV002 + 1
427 integer, parameter :: iSSSV004 = iSSSV003 + 1
428 integer, parameter :: iSSSV005 = iSSSV004 + 1
429 integer, parameter :: iSSSV006 = iSSSV005 + 1
430 integer, parameter :: iSSSV007 = iSSSV006 + 1
431 integer, parameter :: iSSSV008 = iSSSV007 + 1
432
433 integer, parameter :: iSSSMASS = iSSSV008 + 1
434 integer, parameter :: iSSCMASS = iSSSMASS + 1
435 integer, parameter :: iSSEXTTAU = iSSCMASS + 1
436 integer, parameter :: iSSSCATAU = iSSEXTTAU + 1
437
438
439 integer, parameter :: iSSSM25 = iSSSCATAU + 1
440 integer, parameter :: iSSCM25 = iSSSM25 + 1
441 integer, parameter :: iSSEXTT25 = iSSCM25 + 1
442 integer, parameter :: iSSSCAT25 = iSSEXTT25 + 1
443
444 integer, parameter :: iBCEM001 = iSSSCAT25 + 1
445 integer, parameter :: iBCEM002 = iBCEM001 + 1
446 integer, parameter :: iBCEM003 = iBCEM002 + 1
447 integer, parameter :: iBCEM004 = iBCEM003 + 1
448 integer, parameter :: iBCEM005 = iBCEM004 + 1
449 integer, parameter :: iBCEM006 = iBCEM005 + 1
450 integer, parameter :: iBCEM007 = iBCEM006 + 1
451 integer, parameter :: iBCEM008 = iBCEM007 + 1
452
453 integer, parameter :: iBCDP001 = iBCEM008 + 1
454 integer, parameter :: iBCDP002 = iBCDP001 + 1
455 integer, parameter :: iBCDP003 = iBCDP002 + 1
456 integer, parameter :: iBCDP004 = iBCDP003 + 1
457 integer, parameter :: iBCDP005 = iBCDP004 + 1
458 integer, parameter :: iBCDP006 = iBCDP005 + 1
459 integer, parameter :: iBCDP007 = iBCDP006 + 1
460 integer, parameter :: iBCDP008 = iBCDP007 + 1
461
462 integer, parameter :: iBCWT001 = iBCDP008 + 1
463 integer, parameter :: iBCWT002 = iBCWT001 + 1
464 integer, parameter :: iBCWT003 = iBCWT002 + 1
465 integer, parameter :: iBCWT004 = iBCWT003 + 1
466 integer, parameter :: iBCWT005 = iBCWT004 + 1
467 integer, parameter :: iBCWT006 = iBCWT005 + 1
468 integer, parameter :: iBCWT007 = iBCWT006 + 1
469 integer, parameter :: iBCWT008 = iBCWT007 + 1
470
471 integer, parameter :: iBCSV001 = iBCWT008 + 1
472 integer, parameter :: iBCSV002 = iBCSV001 + 1
473 integer, parameter :: iBCSV003 = iBCSV002 + 1
474 integer, parameter :: iBCSV004 = iBCSV003 + 1
475 integer, parameter :: iBCSV005 = iBCSV004 + 1
476 integer, parameter :: iBCSV006 = iBCSV005 + 1
477 integer, parameter :: iBCSV007 = iBCSV006 + 1
478 integer, parameter :: iBCSV008 = iBCSV007 + 1
479
480 integer, parameter :: iBCSMASS = iBCSV008 + 1
481 integer, parameter :: iBCCMASS = iBCSMASS + 1
482 integer, parameter :: iBCEXTTAU = iBCCMASS + 1
483 integer, parameter :: iBCSCATAU = iBCEXTTAU + 1
484 integer, parameter :: iBCEMBF = iBCSCATAU+1
485 integer, parameter :: iBCEMBB = iBCEMBF+1
486 integer, parameter :: iBCEMAN = iBCEMBB+1
487 integer, parameter :: iBCHYPHIL = iBCEMAN+1
488
489 integer, parameter :: iOCEM001 = iBCHYPHIL + 1
490 integer, parameter :: iOCEM002 = iOCEM001 + 1
491 integer, parameter :: iOCEM003 = iOCEM002 + 1
492 integer, parameter :: iOCEM004 = iOCEM003 + 1
493 integer, parameter :: iOCEM005 = iOCEM004 + 1
494 integer, parameter :: iOCEM006 = iOCEM005 + 1
495 integer, parameter :: iOCEM007 = iOCEM006 + 1
496 integer, parameter :: iOCEM008 = iOCEM007 + 1
497
498 integer, parameter :: iOCDP001 = iOCEM008 + 1
499 integer, parameter :: iOCDP002 = iOCDP001 + 1
500 integer, parameter :: iOCDP003 = iOCDP002 + 1
501 integer, parameter :: iOCDP004 = iOCDP003 + 1
502 integer, parameter :: iOCDP005 = iOCDP004 + 1
503 integer, parameter :: iOCDP006 = iOCDP005 + 1
504 integer, parameter :: iOCDP007 = iOCDP006 + 1
505 integer, parameter :: iOCDP008 = iOCDP007 + 1
506
507 integer, parameter :: iOCWT001 = iOCDP008 + 1
508 integer, parameter :: iOCWT002 = iOCWT001 + 1
509 integer, parameter :: iOCWT003 = iOCWT002 + 1
510 integer, parameter :: iOCWT004 = iOCWT003 + 1
511 integer, parameter :: iOCWT005 = iOCWT004 + 1
512 integer, parameter :: iOCWT006 = iOCWT005 + 1
513 integer, parameter :: iOCWT007 = iOCWT006 + 1
514 integer, parameter :: iOCWT008 = iOCWT007 + 1
515
516 integer, parameter :: iOCSV001 = iOCWT008 + 1
517 integer, parameter :: iOCSV002 = iOCSV001 + 1
518 integer, parameter :: iOCSV003 = iOCSV002 + 1
519 integer, parameter :: iOCSV004 = iOCSV003 + 1
520 integer, parameter :: iOCSV005 = iOCSV004 + 1
521 integer, parameter :: iOCSV006 = iOCSV005 + 1
522 integer, parameter :: iOCSV007 = iOCSV006 + 1
523 integer, parameter :: iOCSV008 = iOCSV007 + 1
524
525 integer, parameter :: iOCSMASS = iOCSV008 + 1
526 integer, parameter :: iOCCMASS = iOCSMASS + 1
527 integer, parameter :: iOCEXTTAU = iOCCMASS + 1
528 integer, parameter :: iOCSCATAU = iOCEXTTAU + 1
529 integer, parameter :: iOCEMBF = iOCSCATAU + 1
530 integer, parameter :: iOCEMBB = iOCEMBF + 1
531 integer, parameter :: iOCEMAN = iOCEMBB + 1
532 integer, parameter :: iOCEMBG = iOCEMAN + 1
533 integer, parameter :: iOCHYPHIL = iOCEMBG + 1
534
535 integer, parameter :: iSUEM001 = iOCHYPHIL + 1
536 integer, parameter :: iSUEM002 = iSUEM001 + 1
537 integer, parameter :: iSUEM003 = iSUEM002 + 1
538 integer, parameter :: iSUEM004 = iSUEM003 + 1
539 integer, parameter :: iSUEM005 = iSUEM004 + 1
540 integer, parameter :: iSUEM006 = iSUEM005 + 1
541 integer, parameter :: iSUEM007 = iSUEM006 + 1
542 integer, parameter :: iSUEM008 = iSUEM007 + 1
543
544 integer, parameter :: iSUDP001 = iSUEM008 + 1
545 integer, parameter :: iSUDP002 = iSUDP001 + 1
546 integer, parameter :: iSUDP003 = iSUDP002 + 1
547 integer, parameter :: iSUDP004 = iSUDP003 + 1
548 integer, parameter :: iSUDP005 = iSUDP004 + 1
549 integer, parameter :: iSUDP006 = iSUDP005 + 1
550 integer, parameter :: iSUDP007 = iSUDP006 + 1
551 integer, parameter :: iSUDP008 = iSUDP007 + 1
552
553 integer, parameter :: iSUWT001 = iSUDP008 + 1
554 integer, parameter :: iSUWT002 = iSUWT001 + 1
555 integer, parameter :: iSUWT003 = iSUWT002 + 1
556 integer, parameter :: iSUWT004 = iSUWT003 + 1
557 integer, parameter :: iSUWT005 = iSUWT004 + 1
558 integer, parameter :: iSUWT006 = iSUWT005 + 1
559 integer, parameter :: iSUWT007 = iSUWT006 + 1
560 integer, parameter :: iSUWT008 = iSUWT007 + 1
561
562 integer, parameter :: iSUSV001 = iSUWT008 + 1
563 integer, parameter :: iSUSV002 = iSUSV001 + 1
564 integer, parameter :: iSUSV003 = iSUSV002 + 1
565 integer, parameter :: iSUSV004 = iSUSV003 + 1
566 integer, parameter :: iSUSV005 = iSUSV004 + 1
567 integer, parameter :: iSUSV006 = iSUSV005 + 1
568 integer, parameter :: iSUSV007 = iSUSV006 + 1
569 integer, parameter :: iSUSV008 = iSUSV007 + 1
570
571 integer, parameter :: iSUSO2SMASS = iSUSV008 + 1
572 integer, parameter :: iSUSO2CMASS = iSUSO2SMASS + 1
573 integer, parameter :: iSUSO4SMASS = iSUSO2CMASS + 1
574 integer, parameter :: iSUSO4CMASS = iSUSO4SMASS + 1
575 integer, parameter :: iSUDMSSMASS = iSUSO4CMASS + 1
576 integer, parameter :: iSUDMSCMASS = iSUDMSSMASS + 1
577 integer, parameter :: iSUPSO2 = iSUDMSCMASS + 1
578 integer, parameter :: iSUPSO4g = iSUPSO2 + 1
579 integer, parameter :: iSUPSO4aq = iSUPSO4g + 1
580 integer, parameter :: iSUPMSA = iSUPSO4aq + 1
581 integer, parameter :: iSUPSO4wet = iSUPMSA + 1
582 integer, parameter :: iSUEXTTAU = iSUPSO4wet + 1
583 integer, parameter :: iSUSCATAU = iSUEXTTAU + 1
584 integer, parameter :: iSUEMSO4AN = iSUSCATAU+1
585 integer, parameter :: iSUEMSO2AN = iSUEMSO4AN+1
586 integer, parameter :: iSUEMSO2BB = iSUEMSO2AN+1
587 integer, parameter :: iSUEMSO2VN = iSUEMSO2BB+1
588 integer, parameter :: iSUEMSO2VE = iSUEMSO2VN+1
589
590 INTEGER, PARAMETER :: iN2OFLX = iSUEMSO2VE + 1
591 INTEGER, PARAMETER :: iCH4FLX = iN2OFLX + 1
592 INTEGER, PARAMETER :: iF11FLX = iCH4FLX + 1
593 INTEGER, PARAMETER :: iF12FLX = iF11FLX + 1
594 INTEGER, PARAMETER :: iF113FLX = iF12FLX + 1
595 INTEGER, PARAMETER :: iHCFCFLX = iF113FLX + 1
596 INTEGER, PARAMETER :: iCCL4FLX = iHCFCFLX + 1
597 INTEGER, PARAMETER :: iCH3CCL3FLX = iCCL4FLX + 1
598 INTEGER, PARAMETER :: iCH3CLFLX = iCH3CCL3FLX + 1
599 INTEGER, PARAMETER :: iCH3BRFLX = iCH3CLFLX + 1
600 INTEGER, PARAMETER :: iH1301FLX = iCH3BRFLX + 1
601 INTEGER, PARAMETER :: iH12_24FLX = iH1301FLX + 1
602
603 integer, parameter :: iCOSSZA = iH12_24FLX + 1
604 integer, parameter :: iTCOSZ = iCOSSZA + 1
605 integer, parameter :: iXOH = iTCOSZ + 1
606 integer, parameter :: iXNO3 = iXOH + 1
607 integer, parameter :: iXH2O2 = iXNO3 + 1
608
609 integer, parameter :: iCOEM001 = iXH2O2 + 1
610 integer, parameter :: iCOEM002 = iCOEM001 + 1
611 integer, parameter :: iCOEM003 = iCOEM002 + 1
612 integer, parameter :: iCOEM004 = iCOEM003 + 1
613 integer, parameter :: iCOEM005 = iCOEM004 + 1
614 integer, parameter :: iCOEM006 = iCOEM005 + 1
615 integer, parameter :: iCOEM007 = iCOEM006 + 1
616 integer, parameter :: iCOEM008 = iCOEM007 + 1
617
618 integer, parameter :: iCOLS001 = iCOEM008 + 1
619 integer, parameter :: iCOLS002 = iCOLS001 + 1
620 integer, parameter :: iCOLS003 = iCOLS002 + 1
621 integer, parameter :: iCOLS004 = iCOLS003 + 1
622 integer, parameter :: iCOLS005 = iCOLS004 + 1
623 integer, parameter :: iCOLS006 = iCOLS005 + 1
624 integer, parameter :: iCOLS007 = iCOLS006 + 1
625 integer, parameter :: iCOLS008 = iCOLS007 + 1
626
627 integer, parameter :: iCOPD001 = iCOLS008 + 1
628 integer, parameter :: iCOPD002 = iCOPD001 + 1
629 integer, parameter :: iCOPD003 = iCOPD002 + 1
630 integer, parameter :: iCOPD004 = iCOPD003 + 1
631 integer, parameter :: iCOPD005 = iCOPD004 + 1
632 integer, parameter :: iCOPD006 = iCOPD005 + 1
633 integer, parameter :: iCOPD007 = iCOPD006 + 1
634 integer, parameter :: iCOPD008 = iCOPD007 + 1
635
636 integer, parameter :: iCOCL001 = iCOPD008 + 1
637 integer, parameter :: iCOCL002 = iCOCL001 + 1
638 integer, parameter :: iCOCL003 = iCOCL002 + 1
639 integer, parameter :: iCOCL004 = iCOCL003 + 1
640 integer, parameter :: iCOCL005 = iCOCL004 + 1
641 integer, parameter :: iCOCL006 = iCOCL005 + 1
642 integer, parameter :: iCOCL007 = iCOCL006 + 1
643 integer, parameter :: iCOCL008 = iCOCL007 + 1
644
645 integer, parameter :: iCOSC001 = iCOCL008 + 1
646 integer, parameter :: iCOSC002 = iCOSC001 + 1
647 integer, parameter :: iCOSC003 = iCOSC002 + 1
648 integer, parameter :: iCOSC004 = iCOSC003 + 1
649 integer, parameter :: iCOSC005 = iCOSC004 + 1
650 integer, parameter :: iCOSC006 = iCOSC005 + 1
651 integer, parameter :: iCOSC007 = iCOSC006 + 1
652 integer, parameter :: iCOSC008 = iCOSC007 + 1
653
654 integer, parameter :: iCO2EM001 = iCOSC008 + 1
655 integer, parameter :: iCO2EM002 = iCO2EM001 + 1
656 integer, parameter :: iCO2EM003 = iCO2EM002 + 1
657 integer, parameter :: iCO2EM004 = iCO2EM003 + 1
658 integer, parameter :: iCO2EM005 = iCO2EM004 + 1
659 integer, parameter :: iCO2EM006 = iCO2EM005 + 1
660 integer, parameter :: iCO2EM007 = iCO2EM006 + 1
661 integer, parameter :: iCO2EM008 = iCO2EM007 + 1
662
663 integer, parameter :: iCO2CL001 = iCO2EM008 + 1
664 integer, parameter :: iCO2CL002 = iCO2CL001 + 1
665 integer, parameter :: iCO2CL003 = iCO2CL002 + 1
666 integer, parameter :: iCO2CL004 = iCO2CL003 + 1
667 integer, parameter :: iCO2CL005 = iCO2CL004 + 1
668 integer, parameter :: iCO2CL006 = iCO2CL005 + 1
669 integer, parameter :: iCO2CL007 = iCO2CL006 + 1
670 integer, parameter :: iCO2CL008 = iCO2CL007 + 1
671
672 integer, parameter :: iCO2SC001 = iCO2CL008 + 1
673 integer, parameter :: iCO2SC002 = iCO2SC001 + 1
674 integer, parameter :: iCO2SC003 = iCO2SC002 + 1
675 integer, parameter :: iCO2SC004 = iCO2SC003 + 1
676 integer, parameter :: iCO2SC005 = iCO2SC004 + 1
677 integer, parameter :: iCO2SC006 = iCO2SC005 + 1
678 integer, parameter :: iCO2SC007 = iCO2SC006 + 1
679 integer, parameter :: iCO2SC008 = iCO2SC007 + 1
680
681 parameter (pd2d = iCO2SC008 )
682
683 #else
684 parameter (pd2d = iZPD )
685 #endif
686
687
688
689
690 parameter (iAIRDENS = pd2d + 1)
691 parameter (iCAPE = iAIRDENS + 1)
692 parameter (iCGS = iCAPE + 1)
693 parameter (iCLDLWP = iCGS + 1)
694 parameter (iCLOUD = iCLDLWP + 1)
695 parameter (iCLOUDUP = iCLOUD + 1)
696 parameter (iCMFDQ = iCLOUDUP + 1)
697 parameter (iCMFDQR2 = iCMFDQ + 1)
698 parameter (iCMFDT = iCMFDQR2 + 1)
699 parameter (iCMFDTR = iCMFDT + 1)
700 parameter (iCMFETR = iCMFDTR + 1)
701 parameter (iCMFMC = iCMFETR + 1)
702 parameter (iCMFMC2 = iCMFMC + 1)
703 parameter (iCONVCLD = iCMFMC2 + 1)
704 parameter (iDCAFDT = iCONVCLD + 1)
705 parameter (iDIABDT = iDCAFDT + 1)
706 parameter (iDQCOND = iDIABDT + 1)
707 parameter (iDQPBLCG = iDQCOND + 1)
708 parameter (iDQRL = iDQPBLCG + 1)
709 parameter (iDTCOND = iDQRL + 1)
710 parameter (iDTPBLCG = iDTCOND + 1)
711 parameter (iDTRAIN = iDTPBLCG + 1)
712 parameter (iDTV = iDTRAIN + 1)
713 parameter (iDUV = iDTV + 1)
714 parameter (iDVV = iDUV + 1)
715 parameter (iEFFCLD = iDVV + 1)
716 parameter (iEVAPL = iEFFCLD + 1)
717 parameter (iH = iEVAPL + 1)
718 parameter (iHGHTE = iH + 1)
719 parameter (iHKBETA = iHGHTE + 1)
720 parameter (iHKETA = iHKBETA + 1)
721 parameter (iKVH = iHKETA + 1)
722 parameter (iKVM = iKVH + 1)
723 parameter (iO3VMR = iKVM + 1)
724 parameter (iOMEGA = iO3VMR + 1)
725 parameter (iPV = iOMEGA + 1)
726 parameter (iQ = iPV + 1)
727 parameter (iQC = iQ + 1)
728 parameter (iQRL = iQC + 1)
729 parameter (iQRS = iQRL + 1)
730 parameter (iRAYFDT = iQRS + 1)
731 parameter (iRELHUM = iRAYFDT + 1)
732 parameter (iRHCLR = iRELHUM + 1)
733 parameter (iRNEVPDQ = iRHCLR + 1)
734 parameter (iRNEVPDT = iRNEVPDQ + 1)
735 parameter (iSETLWP = iRNEVPDT + 1)
736 parameter (iSTRATCLD = iSETLWP + 1)
737 parameter (iT = iSTRATCLD+ 1)
738 parameter (iTAUCLI = iT + 1)
739 parameter (iTAUCLW = iTAUCLI + 1)
740 parameter (iTKE = iTAUCLW + 1)
741 parameter (iTTMGW = iTKE + 1)
742 parameter (iU = iTTMGW + 1)
743 parameter (iUQ = iU + 1)
744 parameter (iUT = iUQ + 1)
745 parameter (iUTGW = iUT + 1)
746 parameter (iUU = iUTGW + 1)
747 parameter (iUV = iUU + 1)
748 parameter (iV = iUV + 1)
749 parameter (iVD01 = iV + 1)
750 parameter (iVQ = iVD01 + 1)
751 parameter (iVT = iVQ + 1)
752 parameter (iVTGW = iVT + 1)
753 parameter (iVV = iVTGW + 1)
754 parameter (iZMCME = iVV + 1)
755 parameter (iZMDLF = iZMCME + 1)
756 parameter (iZMDQ = iZMDLF + 1)
757 parameter (iZMDQR = iZMDQ + 1)
758 parameter (iZMDT = iZMDQR + 1)
759 parameter (iZMDU = iZMDT + 1)
760 parameter (iZMED = iZMDU + 1)
761 parameter (iZMEPS = iZMED + 1)
762 parameter (iZMEU = iZMEPS + 1)
763 parameter (iZMEVP = iZMEU + 1)
764 parameter (iZMMD = iZMEVP + 1)
765 parameter (iZMMU = iZMMD + 1)
766 parameter (iZMPFLX = iZMMU + 1)
767 parameter (iZMQL = iZMPFLX + 1)
768
769 #ifdef FVCHEM
770 INTEGER, PARAMETER :: iBR = iZMQL + 1
771 INTEGER, PARAMETER :: iBRCL = iBR + 1
772 INTEGER, PARAMETER :: iBRO = iBRCL + 1
773 INTEGER, PARAMETER :: iBRONO2 = iBRO + 1
774 INTEGER, PARAMETER :: iBRX = iBRONO2 + 1
775 INTEGER, PARAMETER :: iCCL4 = iBRX + 1
776 INTEGER, PARAMETER :: iCH2O = iCCL4 + 1
777 INTEGER, PARAMETER :: iCH3BR = iCH2O + 1
778 INTEGER, PARAMETER :: iCH3CCL3 = iCH3BR + 1
779 INTEGER, PARAMETER :: iCH3CL = iCH3CCL3 + 1
780 INTEGER, PARAMETER :: iCH3O2 = iCH3CL + 1
781 INTEGER, PARAMETER :: iCH3OOH = iCH3O2 + 1
782 INTEGER, PARAMETER :: iCH4 = iCH3OOH + 1
783 INTEGER, PARAMETER :: iCL = iCH4 + 1
784 INTEGER, PARAMETER :: iCL2 = iCL + 1
785 INTEGER, PARAMETER :: iCL2O2 = iCL2 + 1
786 INTEGER, PARAMETER :: iCLO = iCL2O2 + 1
787 INTEGER, PARAMETER :: iCLONO2 = iCLO + 1
788 INTEGER, PARAMETER :: iCLX = iCLONO2 + 1
789
790
791
792
793
794 INTEGER, PARAMETER :: iCO = iCLX + 1
795 INTEGER, PARAMETER :: iCONOAMAN= iCO + 1
796 INTEGER, PARAMETER :: iCOCEAMAN= iCONOAMAN + 1
797 INTEGER, PARAMETER :: iCOWHBB = iCOCEAMAN + 1
798 INTEGER, PARAMETER :: iCOASIAAN= iCOWHBB + 1
799 INTEGER, PARAMETER :: iCOASNBB = iCOASIAAN + 1
800 INTEGER, PARAMETER :: iCOASSBB = iCOASNBB + 1
801 INTEGER, PARAMETER :: iCOFDAN = iCOASSBB + 1
802
803
804
805 INTEGER, PARAMETER :: iCOFF = iCOFDAN + 1
806 INTEGER, PARAMETER :: iCOBF = iCOFF + 1
807 INTEGER, PARAMETER :: iCOBB = iCOBF + 1
808 INTEGER, PARAMETER :: iCOBI = iCOBB + 1
809 INTEGER, PARAMETER :: iCONAMERI= iCOBI + 1
810 INTEGER, PARAMETER :: iCOSAMERI= iCONAMERI + 1
811 INTEGER, PARAMETER :: iCOAFRICA= iCOSAMERI + 1
812 INTEGER, PARAMETER :: iCO2 = iCOAFRICA + 1
813 INTEGER, PARAMETER :: iCO2NAMER= iCO2 + 1
814 INTEGER, PARAMETER :: iCO2SAMER= iCO2NAMER + 1
815 INTEGER, PARAMETER :: iCO2AFRIC= iCO2SAMER + 1
816 INTEGER, PARAMETER :: iF11 = iCO2AFRIC + 1
817 INTEGER, PARAMETER :: iF113 = iF11 + 1
818 INTEGER, PARAMETER :: iF12 = iF113 + 1
819 INTEGER, PARAMETER :: iH12_24 = iF12 + 1
820 INTEGER, PARAMETER :: iH1301 = iH12_24 + 1
821 INTEGER, PARAMETER :: iH2O2 = iH1301 + 1
822 INTEGER, PARAMETER :: iH2OCOND = iH2O2 + 1
823 INTEGER, PARAMETER :: iHATOMIC = iH2OCOND + 1
824 INTEGER, PARAMETER :: iHBR = iHATOMIC + 1
825 INTEGER, PARAMETER :: iHCFC = iHBR + 1
826 INTEGER, PARAMETER :: iHCL = iHCFC + 1
827 INTEGER, PARAMETER :: iHNO3 = iHCL + 1
828 INTEGER, PARAMETER :: iHNO3COND= iHNO3 + 1
829 INTEGER, PARAMETER :: iHO2 = iHNO3COND + 1
830 INTEGER, PARAMETER :: iHO2NO2 = iHO2 + 1
831 INTEGER, PARAMETER :: iHOBR = iHO2NO2 + 1
832 INTEGER, PARAMETER :: iHOCL = iHOBR + 1
833 INTEGER, PARAMETER :: iN = iHOCL + 1
834 INTEGER, PARAMETER :: iN2O = iN + 1
835 INTEGER, PARAMETER :: iN2O5 = iN2O + 1
836 INTEGER, PARAMETER :: iNO = iN2O5 + 1
837 INTEGER, PARAMETER :: iNO2 = iNO + 1
838 INTEGER, PARAMETER :: iNO3 = iNO2 + 1
839 INTEGER, PARAMETER :: iNOX = iNO3 + 1
840 INTEGER, PARAMETER :: iO1D = iNOX + 1
841 INTEGER, PARAMETER :: iO3CHEM = iO1D + 1
842 INTEGER, PARAMETER :: iO3P = iO3CHEM + 1
843 INTEGER, PARAMETER :: iO3PARAM = iO3P + 1
844 INTEGER, PARAMETER :: iOCLO = iO3PARAM + 1
845 INTEGER, PARAMETER :: iOH = iOCLO + 1
846 INTEGER, PARAMETER :: iOX = iOH + 1
847 INTEGER, PARAMETER :: iOXSTRAT = iOX + 1
848 INTEGER, PARAMETER :: iOXTROP = iOXSTRAT + 1
849
850 integer, parameter :: iDUMASS = iOXTROP + 1
851 integer, parameter :: iDUMASS1 = iDUMASS + 1
852 integer, parameter :: iDUMASS25 = iDUMASS1 + 1
853 integer, parameter :: iSSMASS = iDUMASS25 + 1
854 integer, parameter :: iSSMASS25 = iSSMASS + 1
855 integer, parameter :: iBCMASS = iSSMASS25 + 1
856
857 integer, parameter :: iOCMASS = iBCMASS + 1
858 integer, parameter :: iSO4MASS = iOCMASS + 1
859 integer, parameter :: iPSO2 = iSO4MASS + 1
860 integer, parameter :: iPSO4g = iPSO2 + 1
861 integer, parameter :: iPSO4aq = iPSO4g + 1
862 integer, parameter :: iPMSA = iPSO4aq + 1
863 integer, parameter :: iPSO4wet = iPMSA + 1
864 integer, parameter :: iQ4AGE = iPSO4wet + 1
865 parameter (pdiag = iQ4AGE)
866 #else
867 parameter (pdiag = iZMQL)
868 #endif
869
870 parameter (pd3d = pdiag - pd2d)
871
872 integer maxlist
873 parameter (maxlist = 30)
874
875
876 real :: undef = 1.e25
877
878
879
880
881
882
883
884
885 type diag_type
886 character*8 :: name
887 character*16 :: unit
888 character*80 :: desc
889 integer :: pick
890 logical :: counted
891 integer :: vdim
892 integer :: nlist
893 integer, pointer :: fldloc(:,:)
894 integer, pointer :: count(:)
895 logical, pointer :: alt(:)
896 character*8 :: aname
897 character*16 :: aunit
898 character*80 :: adesc
899 real*4 :: convfac
900 endtype
901
902
903
904
905
906
907
908
909
910 type hist_type
911 character*80, pointer :: name(:)
912 integer :: frequency
913 character*1 :: timestamp
914 character*3,pointer :: type(:)
915 integer, pointer :: imin(:)
916 integer, pointer :: imax(:)
917 integer, pointer :: jmin(:)
918 integer, pointer :: jmax(:)
919 integer, pointer :: ktop(:)
920 integer, pointer :: kbot(:)
921 integer, pointer :: nrec(:)
922 integer, pointer :: lun(:)
923 integer :: nreg
924 endtype
925
926 logical doingDiag
927
928 END MODULE mod_diag
929
930