|
||||
File indexing completed on 2024-05-11 05:10:21 UTC
view on githubraw file Latest commit 41c4545f on 2024-05-10 15:00:41 UTC09ceb40cd6 Jean*0001 C ====================================================================== 0002 C Common blocks for diagnostics package. 666b944083 Jean*0003 C - DIAG_DEFINE contains the definition of all available diagnostics 09ceb40cd6 Jean*0004 C ndiagt :: total number of available diagnostics 666b944083 Jean*0005 C kdiag :: number of levels associated with the diagnostic dd249f8e4f Jean*0006 C hdiag :: mate number (in available diag. list) of the diagnostic 931cda44c0 Jean*0007 C cdiag :: list of available diagnostic names 0008 C gdiag :: parser field with characteristics of the diagnostics dd249f8e4f Jean*0009 C tdiag :: description of field in diagnostic 666b944083 Jean*0010 C udiag :: physical units of the diagnostic field 0011 C - DIAG_STORE contains the large array to store diagnostic fields 931cda44c0 Jean*0012 C qdiag :: storage array for 2D/3D diagnostic fields 666b944083 Jean*0013 C qSdiag :: storage array for diagnostics of (per level) statistics 931cda44c0 Jean*0014 C ndiag :: holds number of times a diagnostic is filled (for time-mean diag) 26d80a25ac Jean*0015 C - DIAG_SELECT contains the user selection of diagnostics to write 666b944083 Jean*0016 C idiag :: slot number in large diagnostic array 0017 C mdiag :: slot number in large diagnostic array for the mate 0018 C jdiag :: short-list (active diag.) to long-list (available diag.) 0019 C pointer 26d80a25ac Jean*0020 C - DIAG_PARAMS contains general parameters (used for both 2D/3D & Stats diags) 0021 C - DIAG_STATIS contains the user selection of statistics-diags to write 09ceb40cd6 Jean*0022 C ====================================================================== 0023 8a1f6fb317 Jean*0024 C-- DIAG_STATUS common block: 0025 C diag_pkgStatus :: internal parameter to track status of this pkg settings 0026 C = -1 :: pkg is not used ; = 1 :: user params are loaded 0027 C = 2 :: early initialisation is done (enable to add diags to list) 0028 C = 3 :: diagnostics setting is done (no more diags to add to list) 0029 C = 10 :: storage is initialised (init_varia) 0030 C = 20 :: ready for active section (filling diagnostics & output) 0031 C = 99 :: active section is over (end of the run) 0032 C ready2setDiags :: pkgStatus level required to add any diagnostics to list 0033 C ready2fillDiags :: pkgStatus level required to fill any diagnostics 0034 C blkName :: blank diagnostics name 0035 0036 INTEGER ready2setDiags, ready2fillDiags 0037 PARAMETER ( ready2setDiags = 2 , ready2fillDiags = 20 ) 0038 CHARACTER*8 blkName 0039 PARAMETER ( blkName = ' ' ) 0040 0041 INTEGER diag_pkgStatus 0042 COMMON / DIAG_STATUS_I / 0043 & diag_pkgStatus 0044 666b944083 Jean*0045 C-- DIAG_DEFINE common block: 931cda44c0 Jean*0046 C ndiagt :: total number of available diagnostics 0047 C kdiag :: number of levels associated with the diagnostic dd249f8e4f Jean*0048 C hdiag :: mate number (in available diag. list) of the diagnostic 931cda44c0 Jean*0049 C cdiag :: list of available diagnostic names 0050 C gdiag :: parser field with characteristics of the diagnostics dd249f8e4f Jean*0051 C tdiag :: description of field in diagnostic 931cda44c0 Jean*0052 C udiag :: physical units of the diagnostic field 09ceb40cd6 Jean*0053 666b944083 Jean*0054 INTEGER ndiagt 0055 INTEGER kdiag(ndiagMax) 931cda44c0 Jean*0056 INTEGER hdiag(ndiagMax) 666b944083 Jean*0057 CHARACTER*8 cdiag(ndiagMax) 0058 CHARACTER*80 tdiag(ndiagMax) 0059 CHARACTER*16 gdiag(ndiagMax) 0060 CHARACTER*16 udiag(ndiagMax) 09ceb40cd6 Jean*0061 dd249f8e4f Jean*0062 COMMON / DIAG_DEFINE_I / 0063 & ndiagt, kdiag, hdiag 0064 COMMON / DIAG_DEFINE_C / 0065 & cdiag, gdiag, tdiag, udiag 09ceb40cd6 Jean*0066 666b944083 Jean*0067 C-- DIAG_STORE common block: 931cda44c0 Jean*0068 C qdiag :: storage array for 2D/3D diagnostic fields 666b944083 Jean*0069 C qSdiag :: storage array for (per level) statistics 931cda44c0 Jean*0070 C ndiag :: holds number of times a diagnostic is filled (for time-mean diag) 666b944083 Jean*0071 C pdiag :: index of current averaging interval within the averaging-cycle 09ceb40cd6 Jean*0072 61ef66e73f Jean*0073 _RL qdiag(1-OLx:sNx+OLx,1-OLy:sNy+OLy,numDiags,nSx,nSy) 3e5de6a370 Jean*0074 _RL qSdiag(0:nStats,0:nRegions,diagSt_size,nSx,nSy) 931cda44c0 Jean*0075 INTEGER ndiag(numDiags,nSx,nSy) 866f99417e Jean*0076 INTEGER pdiag(numLists,nSx,nSy) 09ceb40cd6 Jean*0077 dd249f8e4f Jean*0078 COMMON / DIAG_STORE_R / qdiag, qSdiag 0079 COMMON / DIAG_STORE_I / ndiag, pdiag 09ceb40cd6 Jean*0080 666b944083 Jean*0081 C-- DIAG_SELECT common block: dd249f8e4f Jean*0082 C freq(n) :: frequency (in s) to write output stream # n 0083 C phase(n) :: phase (in s) to write output stream # n 666b944083 Jean*0084 C averageFreq :: frequency (in s) for periodic averaging interval 0085 C averagePhase:: phase (in s) for periodic averaging interval 0086 C averageCycle:: number of averaging intervals in 1 cycle 61ef66e73f Jean*0087 C misValFlt(n):: missing value for floats to use in output stream #n 0088 Cc misValInt(n):: missing value for integers to use in output stream #n dd249f8e4f Jean*0089 C levs(:,n) :: list of selected levels to write for output stream # n 0090 C nlevels(n) :: number of levels to write for output stream # n 666b944083 Jean*0091 C nfields(n) :: number of active diagnostics for output stream # n 0092 C nActive(n) :: number of active diagnostics (including counters) 0093 C for output stream # n 0094 C nlists :: effective number of output streams dd249f8e4f Jean*0095 C idiag(:,n) :: list of diag slot number in long-list of available diag. 0096 C mdiag(:,n) :: list of mate slot number in long-list of available diag. 0097 C jdiag(:,n) :: short-list (active diag.) to long-list (available diag.) pointer 666b944083 Jean*0098 C flds(:,n) :: list of field names in output stream # n 0099 C fnames(n) :: output file name for output stream # n 0100 C fflags(n) :: character string with per-file flags 62f987c0ae Jean*0101 C :: 1rst: file precision ('R','D' or ' ' to use default outp prec) 0102 C :: 2nd: 'I'; integrate vertically ; 'P': interpolate vertically 1d99daeaf6 Oliv*0103 C :: 3rd: 'h'; multiply by hFac (if permitted) when filled 866f99417e Jean*0104 C useMissingValue :: put MissingValue where mask = 0 (NetCDF output only) 09ceb40cd6 Jean*0105 866f99417e Jean*0106 _RL freq(numLists), phase(numLists) 0107 _RL averageFreq(numLists), averagePhase(numLists) 61ef66e73f Jean*0108 _RL misValFlt(numLists) 866f99417e Jean*0109 _RL levs (numLevels,numLists) 0110 INTEGER averageCycle(numLists) 61ef66e73f Jean*0111 c INTEGER misValInt(numLists) 866f99417e Jean*0112 INTEGER nlevels(numLists) 0113 INTEGER nfields(numLists) 0114 INTEGER nActive(numLists) 666b944083 Jean*0115 INTEGER nlists 866f99417e Jean*0116 INTEGER idiag(numperList,numLists) 0117 INTEGER mdiag(numperList,numLists) 0118 INTEGER jdiag(numperList,numLists) 0119 CHARACTER*8 flds (numperList,numLists) 0120 CHARACTER*80 fnames(numLists) 0121 CHARACTER*8 fflags(numLists) 26d80a25ac Jean*0122 LOGICAL diag_mdsio, diag_mnc, useMissingValue 09ceb40cd6 Jean*0123 dd249f8e4f Jean*0124 COMMON / DIAG_SELECT_R / 0125 & freq, phase, averageFreq, averagePhase, 61ef66e73f Jean*0126 & misValFlt, levs dd249f8e4f Jean*0127 COMMON / DIAG_SELECT_I / 61ef66e73f Jean*0128 & averageCycle, dd249f8e4f Jean*0129 & nlevels, nfields, nActive, 0130 & nlists, idiag, mdiag, jdiag 61ef66e73f Jean*0131 c & , misValInt dd249f8e4f Jean*0132 COMMON / DIAG_SELECT_C / 0133 & flds, fnames, fflags 0134 COMMON / DIAG_SELECT_L / 26d80a25ac Jean*0135 & diag_mdsio, diag_mnc, useMissingValue 0136 0137 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| 0138 0139 C - DIAG_PARAMS common block: 0140 C diagLoc_ioUnit :: internal parameter: I/O unit for local diagnostics output 41c4545f8f Jean*0141 C diag_dBugLevel :: control debug print to STDOUT or log file, higher -> more 0142 C dumpAtLast :: always write time-ave (freq>0) diagnostics at end of the run 1f837e63b3 Gael*0143 C diagMdsDir :: directory where diagnostics will be written when using mds 0144 C diagMdsDirCreate :: system call to mkdir to create diagMdsDir 41c4545f8f Jean*0145 INTEGER diagLoc_ioUnit, diag_dBugLevel 1f837e63b3 Gael*0146 LOGICAL dumpAtLast, diagMdsDirCreate 26d80a25ac Jean*0147 LOGICAL diag_pickup_read, diag_pickup_write 0148 LOGICAL diag_pickup_read_mdsio, diag_pickup_write_mdsio 0149 LOGICAL diag_pickup_read_mnc, diag_pickup_write_mnc 54bb21a420 Jean*0150 CHARACTER*(MAX_LEN_FNAM) diagMdsDir 26d80a25ac Jean*0151 0152 COMMON / DIAG_PARAMS_I / 41c4545f8f Jean*0153 & diagLoc_ioUnit, diag_dBugLevel 0154 COMMON / DIAG_PARAMS_L / 1f837e63b3 Gael*0155 & dumpAtLast, diagMdsDirCreate, ee2e7fad64 Ed H*0156 & diag_pickup_read, diag_pickup_write, 0157 & diag_pickup_read_mdsio, diag_pickup_write_mdsio, dd249f8e4f Jean*0158 & diag_pickup_read_mnc, diag_pickup_write_mnc 1f837e63b3 Gael*0159 COMMON / DIAG_PARAMS_C / 0160 & diagMdsDir 3ae5f90260 Jean*0161 3e5de6a370 Jean*0162 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| 0163 666b944083 Jean*0164 C-- DIAG_STATIS common block: f800a6f6a8 Jean*0165 C diagSt_freq(n) :: frequency (in s) to write output stream # n 0166 C diagSt_phase(n) :: phase (in s) to write output stream # n dd249f8e4f Jean*0167 C iSdiag(:,n) :: list of diag slot number in long-list of available diag. 0168 C mSdiag(:,n) :: list of mate slot number in long-list of available diag. 0169 C jSdiag(:,n) :: short-list (active diag.) to long-list (available 0170 C diag.) pointer 0171 C diagSt_region(j,n) :: flag to perform (=1) or not (=0) regional-statistics 0172 C over region # j for output stream # n f800a6f6a8 Jean*0173 C diagSt_nbFlds(n) :: number of active diagnostics for output stream # n 0174 C diagSt_nbActv(n) :: number of active diagnostics (including counters) 0175 C for output stream # n 0176 C diagSt_nbLists :: effective number of output streams 0177 C diagSt_ioUnit(n) :: fortran IO unit for output stream # n (ascii output) 0178 C diagSt_Flds(:,n) :: list of field names in output stream # n 0179 C diagSt_Fname(n) :: output file name for output stream # n 0180 866f99417e Jean*0181 _RL diagSt_freq(numLists), diagSt_phase(numLists) 0182 INTEGER iSdiag(numperList,numLists) 0183 INTEGER mSdiag(numperList,numLists) 0184 INTEGER jSdiag(numperList,numLists) 0185 INTEGER diagSt_region(0:nRegions,numLists) 0186 INTEGER diagSt_nbFlds(numLists) 0187 INTEGER diagSt_nbActv(numLists) 3e5de6a370 Jean*0188 INTEGER diagSt_nbLists 866f99417e Jean*0189 INTEGER diagSt_ioUnit(numLists) 0190 CHARACTER*8 diagSt_Flds(numperList,numLists) 0191 CHARACTER*80 diagSt_Fname(numLists) 3e5de6a370 Jean*0192 LOGICAL diagSt_ascii, diagSt_mnc dd249f8e4f Jean*0193 0194 COMMON / DIAG_STATIS_R / 0195 & diagSt_freq, diagSt_phase 0196 COMMON / DIAG_STATIS_I / 0197 & iSdiag, mSdiag, jSdiag, diagSt_region, 3e5de6a370 Jean*0198 & diagSt_nbFlds, diagSt_nbActv, diagSt_nbLists, dd249f8e4f Jean*0199 & diagSt_ioUnit 0200 COMMON / DIAG_STATIS_C / 3ae5f90260 Jean*0201 & diagSt_Flds, diagSt_Fname dd249f8e4f Jean*0202 COMMON / DIAG_STATIS_L / 0203 & diagSt_Ascii, diagSt_mnc 09ceb40cd6 Jean*0204 0205 CEH3 ;;; Local Variables: *** 0206 CEH3 ;;; mode:fortran *** 0207 CEH3 ;;; End: ***
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated from https://github.com/MITgcm/MITgcm by the 2.2.1-MITgcm-0.1 LXR engine. The LXR team |