/[MITgcm]/MITgcm/pkg/diagnostics/diagstats_output.F
ViewVC logotype

Annotation of /MITgcm/pkg/diagnostics/diagstats_output.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.11 - (hide annotations) (download)
Mon Jun 6 15:42:58 2011 UTC (12 years, 11 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint64y, checkpoint64x, checkpoint64z, checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64w, checkpoint64v, checkpoint64i, checkpoint64h, checkpoint64k, checkpoint64j, checkpoint64m, checkpoint64l, checkpoint64o, checkpoint64n, checkpoint64a, checkpoint64c, checkpoint64b, checkpoint64e, checkpoint64d, checkpoint64g, checkpoint64f, checkpoint63p, checkpoint63q, checkpoint63r, checkpoint63s, checkpoint63l, checkpoint63m, checkpoint63n, checkpoint63o, checkpoint63h, checkpoint63i, checkpoint63j, checkpoint63k, checkpoint63d, checkpoint63e, checkpoint63f, checkpoint63g, checkpoint63a, checkpoint63b, checkpoint63c, checkpoint64, checkpoint65, checkpoint63, checkpoint65p, checkpoint65q, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65n, checkpoint65o, checkpoint65l, checkpoint65m, checkpoint65b, checkpoint65c, checkpoint65a, checkpoint65f, checkpoint65g, checkpoint65d, checkpoint65e, checkpoint62z
Changes since 1.10: +2 -2 lines
refine debugLevel criteria when printing messages

1 jmc 1.11 C $Header: /u/gcmpack/MITgcm/pkg/diagnostics/diagstats_output.F,v 1.10 2010/01/10 04:09:31 jmc Exp $
2 jmc 1.1 C $Name: $
3    
4     #include "DIAG_OPTIONS.h"
5    
6     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7     CBOP 0
8     C !ROUTINE: DIAGSTATS_OUTPUT
9    
10     C !INTERFACE:
11 jmc 1.10 SUBROUTINE DIAGSTATS_OUTPUT(
12 jmc 1.1 I listId,
13 edhill 1.5 I myTime, myIter, myThid )
14 jmc 1.1
15     C !DESCRIPTION:
16     C Write output for diagnostics fields.
17 jmc 1.2
18 jmc 1.1 C !USES:
19     IMPLICIT NONE
20     #include "SIZE.h"
21     #include "EEPARAMS.h"
22     #include "PARAMS.h"
23     #include "GRID.h"
24     #include "DIAGNOSTICS_SIZE.h"
25     #include "DIAGNOSTICS.h"
26    
27     INTEGER nLev
28     #ifdef ALLOW_FIZHI
29     #include "fizhi_SIZE.h"
30     PARAMETER (nLev = Nr+Nrphys)
31     #else
32     PARAMETER (nLev = Nr)
33     #endif
34    
35     C !INPUT PARAMETERS:
36 edhill 1.4 C listId :: Diagnostics list number being written
37 jmc 1.1 C myIter :: current iteration number
38 edhill 1.4 C myTime :: Current time of simulation (s)
39 jmc 1.1 C myThid :: my Thread Id number
40 edhill 1.5 _RL myTime
41     INTEGER listId, myIter, myThid
42 jmc 1.1 CEOP
43    
44 jmc 1.9 C !FUNCTIONS:
45     c INTEGER ILNBLNK
46     c EXTERNAL ILNBLNK
47     #ifdef ALLOW_FIZHI
48     _RL getcon
49     EXTERNAL getcon
50     #endif
51    
52 jmc 1.1 C !LOCAL VARIABLES:
53 jmc 1.2 INTEGER j, m, ndId, iSp, iSm
54 jmc 1.8 CHARACTER*10 gcode
55 jmc 1.1 INTEGER mate
56     _RL statGlob(0:nStats,0:nLev,0:nRegions)
57     _RL tmp_Glob(0:nStats,0:nLev)
58 jmc 1.9 _RL undef
59 jmc 1.1
60     INTEGER ioUnit
61     CHARACTER*(MAX_LEN_MBUF) msgBuf
62    
63     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
64    
65     ioUnit= standardMessageUnit
66 jmc 1.9 undef = UNSET_RL
67     #ifdef ALLOW_FIZHI
68     IF ( useFIZHI ) undef = getcon('UNDEF')
69     #endif
70 jmc 1.1
71     DO m = 1,diagSt_nbFlds(listId)
72     ndId = jSdiag(m,listId)
73 jmc 1.8 gcode = gdiag(ndId)(1:10)
74     IF ( iSdiag(m,listId).NE.0 .AND. gcode(5:5).NE.'D' ) THEN
75 jmc 1.1 C-- Start processing 1 Fld :
76    
77 jmc 1.8 IF ( gcode(5:5).EQ.'C' ) THEN
78 jmc 1.1 C Check for Mate of a Counter Diagnostic
79     C --------------------------------------
80 jmc 1.8 mate = hdiag(ndId)
81 jmc 1.1 ELSE
82     mate = 0
83     ENDIF
84    
85     DO j=0,nRegions
86     IF ( diagSt_region(j,listId).GT.0 ) THEN
87 jmc 1.2 iSp = ABS(iSdiag(m,listId))
88     iSm = mSdiag(m,listId)
89 jmc 1.1 CALL DIAGSTATS_GLOBAL(
90     O statGlob(0,0,j), tmp_Glob,
91 jmc 1.2 I undef, nLev, j,
92     I ndId, mate, iSp, iSm, myThid )
93 jmc 1.1
94     C- Check for empty Diag (= not filled or using empty mask)
95 jmc 1.6 IF ( tmp_Glob(0,0).EQ.0. ) THEN
96 jmc 1.1 _BEGIN_MASTER( myThid )
97 jmc 1.8 WRITE(msgBuf,'(A,I10,A,I4)')
98 jmc 1.1 & '- WARNING - from DIAGSTATS_OUTPUT at iter=', myIter,
99     & ' , region:', j
100     CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
101     & SQUEEZE_RIGHT, myThid)
102 jmc 1.8 WRITE(msgBuf,'(A,I6,3A,I4,2A)')
103 jmc 1.1 & '- WARNING - diagSt.#',ndId, ' : ',diagSt_Flds(m,listId),
104     & ' (#',m,' ) in outp.Stream: ',diagSt_Fname(listId)
105     CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
106     & SQUEEZE_RIGHT, myThid)
107     WRITE(msgBuf,'(2A)') '- WARNING - has not been filled,',
108     & ' OR using empty mask/region'
109     CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
110     & SQUEEZE_RIGHT, myThid)
111     WRITE(msgBuf,'(A)')
112     & 'WARNING DIAGSTATS_OUTPUT => write UNDEF instead'
113     CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
114     & SQUEEZE_RIGHT, myThid)
115     _END_MASTER( myThid )
116     ENDIF
117    
118 jmc 1.11 IF ( debugLevel .GE. debLevB ) THEN
119 jmc 1.1 _BEGIN_MASTER( myThid )
120 jmc 1.8 WRITE(ioUnit,'(A,I6,3A,I4,A,1PE10.3,2A)')
121 jmc 1.1 & ' Compute Stats, Diag. # ',ndId, ' ', cdiag(ndId),
122     & ' vol(',j,' ):', statGlob(0,0,j),' Parms: ',gdiag(ndId)
123     IF ( mate.GT.0 ) THEN
124 jmc 1.8 WRITE(ioUnit,'(A,I6,3A,I4,2(A,1PE10.3))')
125 jmc 1.1 & ' use Counter Mate # ', mate,' ',cdiag(mate),
126     & ' vol(',j,' ):',tmp_Glob(0,0), ' integral',tmp_Glob(1,0)
127     ENDIF
128     _END_MASTER( myThid )
129     ENDIF
130     ENDIF
131     ENDDO
132    
133 edhill 1.3 C-- Write to ASCII file:
134 jmc 1.1 IF (diagSt_Ascii) THEN
135     CALL DIAGSTATS_ASCII_OUT( statGlob, nLev, ndId,
136     & m, listId, myIter, myThid )
137     ENDIF
138    
139 molod 1.7 #ifdef ALLOW_MNC
140 edhill 1.3 IF (diagSt_mnc) THEN
141 jmc 1.8 CALL DIAGSTATS_MNC_OUT(
142 edhill 1.3 & statGlob, nLev, ndId,
143 edhill 1.5 & m, listId, myTime, myIter, myThid )
144 edhill 1.3 ENDIF
145 molod 1.7 #endif
146 edhill 1.3
147 jmc 1.1 C-- end of Processing Fld # m
148     ENDIF
149     ENDDO
150    
151 jmc 1.2 RETURN
152 jmc 1.1 END
153 jmc 1.2
154 jmc 1.1 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|

  ViewVC Help
Powered by ViewVC 1.1.22