File: C:\NOAA\NEMS_11731\src\chem\gocart\src\GMAO_Shared\Chem_Shared\mod_diag.F90

1           MODULE mod_diag
2     
3     ! !REVISION HISTORY:
4     !
5     !  16Jul2003  Norris  Added a few comments. Will now allow a
6     !                     -ve history freq (-1) for non-output diags.
7     !  18Apr2005 Nielsen  Removed iTRACER1-iTRACER5 and iCTRCR1-iCTRCR5, and
8     !                     added i-values for SC_GridComp species.
9     
10           implicit none
11     !
12     !    -----------------------------------------------------------
13     !     Refer to ../README file for how to add or delete a field.
14     !    -----------------------------------------------------------
15     !
16     ! ... 2-D diagnostic fields
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     ! ... 3-D diagnostic fields
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     ! Total number of 2-D diagnostic fields
212           integer  pd3d     ! Total number of 3-D diagnostic fields
213           integer  pdiag    ! Total number of diagnostic fields
214     !
215     ! ... 2-D diagnosis fields
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     !     Dust submicron diagnostics (column integral)
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     !     Seasalt submicron diagnostics (column integral)
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     ! ... 3-D diagnosis fields
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     !          8 CO regions and types for INTEX-B 2006
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)	! maximum number of output files
874     
875     !      real*4 			:: undef = 1.e25
876           real 			:: undef = 1.e25
877     
878     ! There is one such diagnostic descriptor (diag_type) for each diagnostic
879     ! which can be output using outfld. Each diagnostic can be output to multiple
880     ! output streams (up to nlist of them, the index of % count and % alt and the 
881     ! second index of % fldloc) and for each output stream different types of
882     ! the diagnostic may be output, currently averaged, instantaneous, maximum 
883     ! and minimum (the first index of % fldloc).
884     
885           type diag_type
886                character*8 		:: name        	! name for diagnostic
887                character*16 	:: unit        	! unit for diagnostic fields
888                character*80 	:: desc        	! description for diagnostic fields
889                integer              :: pick         ! is the diag needed for output 1:yes 0:no
890                logical      	:: counted      ! if true, diagnostic is counted 
891                integer		:: vdim		! number of levels 1 or km
892                integer              :: nlist	! number of output streams
893                integer, pointer 	:: fldloc(:,:)	! location in diagnostic buffer (negative if not on)
894                integer, pointer 	:: count(:)	! counter 
895                logical, pointer 	:: alt(:)	! if true use alternate name/unit for output
896                character*8 		:: aname       	! Alternate name for diagnostic
897                character*16 	:: aunit       	! Alternate unit for diagnostic fields
898                character*80         :: adesc        ! description for diagnostic fields
899                real*4       	:: convfac     	! conversion factor if alternate unit different than primary
900           endtype 
901     
902     ! Each output stream (history file) has a hist_type descriptor. Each stream has one
903     ! frequency and any number of subset regions of the model grid (nreg of them, the array
904     ! index in most of the fields). A positive frequency gives the period of periodic output.
905     ! A zero frequency is used for segment end output. As of 7-16-03 we allow a negative
906     ! frequency (-1) to indicate a set of non-output diagnostics. Such diagnostics (usually
907     ! instantaneous) are maintained in the same way as a normal diagnostics but they are
908     ! never output to file. They can be accessed through getdiag (). 
909     
910           type hist_type
911                character*80, pointer :: name(:)	! Output Filenames for each region
912                integer             	:: frequency    ! frequency for output stream HHMMSS
913                character*1          :: timestamp    ! Time stamp for output stream Centered, Forward, Backward
914                character*3,pointer  :: type(:)  	! file type for output hdf or bin, hdf is default
915                integer, pointer	:: imin(:)	! longitude minimum bounds for each region
916                integer, pointer	:: imax(:)	! longitude maximum bounds for each region
917                integer, pointer	:: jmin(:)	! latitude minimum bounds for each region
918                integer, pointer	:: jmax(:)	! latitude maximum bounds for each region
919                integer, pointer	:: ktop(:)	! vertical top bounds for each region
920                integer, pointer	:: kbot(:)	! vertical bottom bounds for each region
921                integer, pointer 	:: nrec(:)      ! diag record number (for binary not hdf output)
922                integer, pointer 	:: lun(:)       ! logical unit numbers (binary, grads ctl reuses lun)
923                integer          	:: nreg    	! Number of regions for the output stream
924           endtype 
925     
926           logical doingDiag
927     
928           END MODULE mod_diag
929     
930