| 1 |
C $Header: /u/gcmpack/MITgcm/pkg/diagnostics/DIAGNOSTICS.h,v 1.11 2005/07/09 17:22:58 jmc Exp $ |
| 2 |
C $Name: $ |
| 3 |
|
| 4 |
C ====================================================================== |
| 5 |
C Common blocks for diagnostics package. |
| 6 |
C - diagarrays contains the master list of diagnostics and parameters |
| 7 |
C ndiagt :: total number of available diagnostics |
| 8 |
C kdiag - number of levels associated with the diagnostic |
| 9 |
C cdiag - character names |
| 10 |
C tdiag - description of field in diagnostic |
| 11 |
C gdiag - parser field with characteristics of the diagnostics |
| 12 |
C udiag - physical units of the diagnostic field |
| 13 |
C - diagnostics contains the large array containing diagnostic fields |
| 14 |
C qdiag - diagnostic fields array |
| 15 |
C qSdiag - storage array for diagnostics of (per level) statistics |
| 16 |
C ndiag - counter for number of times diagnostic is added |
| 17 |
C - diag_choices contains the user-chosen list of fields to store |
| 18 |
C idiag - slot number in large diagnostic array |
| 19 |
C mdiag - slot number in large diagnostic array for the mate |
| 20 |
C jdiag - short-list (active diag.) to long-list (available diag.) |
| 21 |
C pointer |
| 22 |
C - diag_statis contains the user-chosen list of statistics to store |
| 23 |
C ====================================================================== |
| 24 |
|
| 25 |
C diagarrays common |
| 26 |
|
| 27 |
integer ndiagt |
| 28 |
|
| 29 |
integer kdiag(ndiagMax) |
| 30 |
character*8 cdiag(ndiagMax) |
| 31 |
character*80 tdiag(ndiagMax) |
| 32 |
character*16 gdiag(ndiagMax) |
| 33 |
character*16 udiag(ndiagMax) |
| 34 |
|
| 35 |
common /diagarrays/ ndiagt |
| 36 |
common /diagarrays/ kdiag |
| 37 |
common /diagarrays/ cdiag |
| 38 |
common /diagarrays/ tdiag |
| 39 |
common /diagarrays/ gdiag |
| 40 |
common /diagarrays/ udiag |
| 41 |
|
| 42 |
C diagnostics common |
| 43 |
C qSdiag - storage array for (per level) statistics |
| 44 |
|
| 45 |
_RL qdiag(1-OLx:sNx+Olx,1-Oly:sNy+Oly,numdiags,nSx,nSy) |
| 46 |
_RL qSdiag(0:nStats,0:nRegions,diagSt_size,nSx,nSy) |
| 47 |
integer ndiag(numdiags,nSx,nSy) |
| 48 |
|
| 49 |
common /diagnostics/ qdiag, qSdiag, ndiag |
| 50 |
|
| 51 |
|
| 52 |
C diag_choices common |
| 53 |
C freq :: frequency (in s) to write output stream # n |
| 54 |
C phase :: phase (in s) to write output stream # n |
| 55 |
C nfields(n) :: number of active diagnostics for output stream # n |
| 56 |
C nActive(n) :: number of active diagnostics (including counters) |
| 57 |
C for output stream # n |
| 58 |
C fflags(n) :: character string with per-file flags |
| 59 |
|
| 60 |
integer nlists |
| 61 |
|
| 62 |
_RL freq(numlists), phase(numlists) |
| 63 |
_RL levs (numLevels,numlists) |
| 64 |
integer nlevels(numlists) |
| 65 |
integer nfields(numlists) |
| 66 |
integer nActive(numlists) |
| 67 |
integer idiag(numperlist,numlists) |
| 68 |
integer mdiag(numperlist,numlists) |
| 69 |
integer jdiag(numperlist,numlists) |
| 70 |
character*8 flds (numperlist,numlists) |
| 71 |
character*80 fnames(numlists) |
| 72 |
character*8 fflags(numlists) |
| 73 |
logical dumpatlast, diag_mdsio, diag_mnc |
| 74 |
logical diag_pickup_read, diag_pickup_write |
| 75 |
logical diag_pickup_read_mdsio, diag_pickup_write_mdsio |
| 76 |
logical diag_pickup_read_mnc, diag_pickup_write_mnc |
| 77 |
|
| 78 |
common /diag_choices/ |
| 79 |
& freq, phase, levs, nlevels, |
| 80 |
& nfields, nActive, nlists, |
| 81 |
& idiag, mdiag, jdiag, |
| 82 |
& dumpatlast, diag_mdsio, diag_mnc, |
| 83 |
& diag_pickup_read, diag_pickup_write, |
| 84 |
& diag_pickup_read_mdsio, diag_pickup_write_mdsio, |
| 85 |
& diag_pickup_read_mnc, diag_pickup_write_mnc, |
| 86 |
& flds, fnames, fflags |
| 87 |
|
| 88 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
| 89 |
|
| 90 |
C DIAG_STATIS common block: |
| 91 |
C iSdiag :: slot number in large diagnostic array |
| 92 |
C mSdiag :: slot number in large diagnostic array for the mate |
| 93 |
C jSdiag :: short-list (active diag.) to long-list (available diag.) |
| 94 |
C pointer |
| 95 |
C diagSt_region(j,n) :: flag to perform (=1) or not (=0) regional-statistics |
| 96 |
C over region # j for output stream # n |
| 97 |
C diagSt_freq(n) :: frequency (in s) to write output stream # n |
| 98 |
C diagSt_phase(n) :: phase (in s) to write output stream # n |
| 99 |
C diagSt_nbFlds(n) :: number of active diagnostics for output stream # n |
| 100 |
C diagSt_nbActv(n) :: number of active diagnostics (including counters) |
| 101 |
C for output stream # n |
| 102 |
C diagSt_nbLists :: effective number of output streams |
| 103 |
C diagSt_ioUnit(n) :: fortran IO unit for output stream # n (ascii output) |
| 104 |
C diagSt_Flds(:,n) :: list of field names in output stream # n |
| 105 |
C diagSt_Fname(n) :: output file name for output stream # n |
| 106 |
|
| 107 |
_RL diagSt_freq(numlists), diagSt_phase(numlists) |
| 108 |
CHARACTER*8 diagSt_Flds(numperlist,numlists) |
| 109 |
CHARACTER*80 diagSt_Fname(numlists) |
| 110 |
INTEGER iSdiag(numperlist,numlists) |
| 111 |
INTEGER jSdiag(numperlist,numlists) |
| 112 |
INTEGER mSdiag(numperlist,numlists) |
| 113 |
INTEGER diagSt_region(0:nRegions,numlists) |
| 114 |
INTEGER diagSt_nbFlds(numlists) |
| 115 |
INTEGER diagSt_nbActv(numlists) |
| 116 |
INTEGER diagSt_nbLists |
| 117 |
INTEGER diagSt_ioUnit(numlists) |
| 118 |
LOGICAL diagSt_ascii, diagSt_mnc |
| 119 |
COMMON / DIAG_STATIS / |
| 120 |
& diagSt_freq, diagSt_phase, |
| 121 |
& iSdiag, jSdiag, mSdiag, diagSt_region, |
| 122 |
& diagSt_nbFlds, diagSt_nbActv, diagSt_nbLists, |
| 123 |
& diagSt_ioUnit, |
| 124 |
& diagSt_Ascii, diagSt_mnc, |
| 125 |
& diagSt_Flds, diagSt_Fname |
| 126 |
|
| 127 |
CEH3 ;;; Local Variables: *** |
| 128 |
CEH3 ;;; mode:fortran *** |
| 129 |
CEH3 ;;; End: *** |