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

Diff of /MITgcm/pkg/diagnostics/diagnostics_switch_onoff.F

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

revision 1.8 by molod, Tue May 17 00:22:00 2005 UTC revision 1.9 by jmc, Fri May 20 07:28:50 2005 UTC
# Line 28  C     !USES: Line 28  C     !USES:
28  #include "PARAMS.h"  #include "PARAMS.h"
29  #include "DIAGNOSTICS_SIZE.h"  #include "DIAGNOSTICS_SIZE.h"
30  #include "DIAGNOSTICS.h"  #include "DIAGNOSTICS.h"
 #ifdef ALLOW_FIZHI  
 #include "chronos.h"  
 #endif  
31    
32  C     !INPUT PARAMETERS:  C     !INPUT PARAMETERS:
33  C     myTime     :: current Time of simulation ( s )  C     myTime     :: current Time of simulation ( s )
# Line 47  C      j,m,n   :: loop index Line 44  C      j,m,n   :: loop index
44  c     CHARACTER*(MAX_LEN_MBUF) msgBuf  c     CHARACTER*(MAX_LEN_MBUF) msgBuf
45  c     INTEGER newIter  c     INTEGER newIter
46        INTEGER j, m, n        INTEGER j, m, n
47          INTEGER bi, bj, iSp
48        LOGICAL time4SnapShot        LOGICAL time4SnapShot
49        _RL     phiSec, freqSec        _RL     phiSec, freqSec
50          LOGICAL dBugFlag
51  #ifdef ALLOW_FIZHI  #ifdef ALLOW_FIZHI
       integer mmdd,hhmmss,nsecf2  
52        logical alarm2        logical alarm2
53        character *9 tagname        character *9 tagname
54  #endif  #endif
# Line 74  C--    Select diagnostics list that uses Line 72  C--    Select diagnostics list that uses
72       &                                       myTime, deltaTclock )       &                                       myTime, deltaTclock )
73  #ifdef ALLOW_FIZHI  #ifdef ALLOW_FIZHI
74          if( useFIZHI) then          if( useFIZHI) then
          mmdd = int(freq(n))  
          hhmmss = int((freq(n) - int(freq(n)))*1.e6)  
          freqSec = nsecf2(hhmmss,mmdd,nymd)  
75           write(tagname,'(A,I2.2)')'diagtag',n           write(tagname,'(A,I2.2)')'diagtag',n
76           time4SnapShot = alarm2(tagname)           time4SnapShot = alarm2(tagname)
77          endif          endif
# Line 101  c           IF (ndiag(j).NE.-1) WRITE(0, Line 96  c           IF (ndiag(j).NE.-1) WRITE(0,
96         ENDIF         ENDIF
97        ENDDO        ENDDO
98    
 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  
   
99        _END_MASTER(myThid)        _END_MASTER(myThid)
100    
101  C-jmc: do we need a "BARRIER" at this point ?  C-jmc: do we need a "BARRIER" at this point ?
102  c     _BARRIER  c     _BARRIER
103    
104    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
105    
106          DO n = 1,diagSt_nbLists
107    
108           IF ( diagSt_freq(n).LT.0. ) THEN
109    C--    Select diagnostics list that uses instantaneous output
110    
111            dBugFlag = debugLevel.GT.debLevB
112    
113            freqSec = diagSt_freq(n)
114            phiSec = diagSt_phase(n)
115            time4SnapShot = DIFF_PHASE_MULTIPLE( phiSec, freqSec,
116         &                                       myTime, deltaTclock )
117    
118            DO bj=myByLo(myThid), myByHi(myThid)
119             DO bi=myBxLo(myThid), myBxHi(myThid)
120              dBugFlag = dBugFlag.AND.(bi.EQ.1.AND.bj.EQ.1.AND.myThid.EQ.1)
121              IF ( time4SnapShot ) THEN
122    C--     switch ON diagnostics of output-stream # n
123                DO m=1,diagSt_nbActv(n)
124                  j = jSdiag(m,n)
125                  iSp = iSdiag(j)
126                  IF (dBugFlag.AND.qSdiag(0,0,iSp,bi,bj).NE. 0.)
127         &          WRITE(0,'(I8,I4,3A,1PE10.3,A,I3)') myIter,
128         &            j,' ',cdiag(j),' :',qSdiag(0,0,iSp,bi,bj),' ->', 0
129                  qSdiag(0,0,iSp,bi,bj) = 0.
130                ENDDO
131              ELSE
132    C--     switch OFF diagnostics of output-stream # n
133                DO m=1,diagSt_nbActv(n)
134                  j = jSdiag(m,n)
135                  iSp = iSdiag(j)
136                  IF (dBugFlag.AND.qSdiag(0,0,iSp,bi,bj).NE.-1.)
137         &          WRITE(0,'(I8,I4,3A,1PE10.3,A,I3)') myIter,
138         &            j,' ',cdiag(j),' :',qSdiag(0,0,iSp,bi,bj),' ->',-1
139                  qSdiag(0,0,iSp,bi,bj) = -1.
140                ENDDO
141              ENDIF
142             ENDDO
143            ENDDO
144    
145           ENDIF
146          ENDDO
147    
148        RETURN        RETURN
149        END        END

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.9

  ViewVC Help
Powered by ViewVC 1.1.22