/[MITgcm]/MITgcm/pkg/thsice/thsice_monitor.F
ViewVC logotype

Diff of /MITgcm/pkg/thsice/thsice_monitor.F

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

revision 1.14 by jmc, Mon Aug 27 13:23:13 2007 UTC revision 1.17 by jmc, Tue Mar 16 00:23:59 2010 UTC
# Line 27  C     === Global variables === Line 27  C     === Global variables ===
27    
28  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
29  C     == Routine arguments ==  C     == Routine arguments ==
30  C     myTime - Current time of simulation ( s )  C     myTime :: Current time of simulation ( s )
31  C     myIter - Iteration number  C     myIter :: Iteration number
32  C     myThid -  Number of this instance of INI_FORCING  C     myThid :: my Thread Id. number
33        _RL     myTime        _RL     myTime
34        INTEGER myIter        INTEGER myIter
35        INTEGER myThid        INTEGER myThid
# Line 48  C     == Local variables == Line 48  C     == Local variables ==
48        CHARACTER*(MAX_LEN_MBUF) msgBuf        CHARACTER*(MAX_LEN_MBUF) msgBuf
49        CHARACTER*10 mon_var        CHARACTER*10 mon_var
50        CHARACTER*2 mon_sufx(0:2)        CHARACTER*2 mon_sufx(0:2)
51          _RS locMask(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
52        _RS yBand(2), locDr(1)        _RS yBand(2), locDr(1)
53        _RL theMin(2), theMax(2)        _RL theMin(2), theMax(2)
54        _RL theMean(2), theVar(2), theVol(2)        _RL theMean(2), theVar(2), theVol(2)
55        _RL theMeanG, theVolG        _RL theMeanG, theVolG
56        _RL theMean1, theMean2, theEnergy        _RL theMean1, theMean2, theEnergy
57        _RL theMin0, theMax0, theSD, theDel2        _RL theMin0, theMax0, theSD, theDel2
58          INTEGER i,j,bi,bj
59  #ifdef ALLOW_MNC  #ifdef ALLOW_MNC
60        INTEGER k        INTEGER k
61  #endif  #endif
# Line 70  C---+----1----+----2----+----3----+----4 Line 72  C---+----1----+----2----+----3----+----4
72    
73          IF ( MASTER_CPU_IO(myThid) ) THEN          IF ( MASTER_CPU_IO(myThid) ) THEN
74  C--   only the master thread is allowed to switch On/Off mon_write_stdout  C--   only the master thread is allowed to switch On/Off mon_write_stdout
75  C     & mon_write_mnc (since it's the only thread that uses those flags):  C     & mon_write_mnc (since it is the only thread that uses those flags):
76    
77            IF ( thSIce_mon_stdio ) THEN            IF ( thSIce_mon_stdio ) THEN
78              mon_write_stdout = .TRUE.              mon_write_stdout = .TRUE.
# Line 109  C     & mon_write_mnc (since it's the on Line 111  C     & mon_write_mnc (since it's the on
111  C--   endif master cpu io  C--   endif master cpu io
112          ENDIF          ENDIF
113    
114    C--   make a local copy of iceMask into "RS" array:
115            DO bj = myByLo(myThid), myByHi(myThid)
116             DO bi = myBxLo(myThid), myBxHi(myThid)
117              DO j=1-OLy,sNy+OLy
118               DO i=1-OLx,sNx+OLx
119                locMask(i,j,bi,bj) = iceMask(i,j,bi,bj)
120               ENDDO
121              ENDDO
122             ENDDO
123            ENDDO
124    
125          CALL MON_SET_PREF('thSI_',myThid)          CALL MON_SET_PREF('thSI_',myThid)
126          CALL MON_OUT_RL('time_sec', myTime,mon_string_none,myThid)          CALL MON_OUT_RL('time_sec', myTime,mon_string_none,myThid)
127    
128  C-- Ice area and Ice thickness :  C-- Ice area and Ice thickness :
129          CALL MON_STATS_LATBND_RL(          CALL MON_STATS_LATBND_RL(
130       I                1, 1, 1, 2, yBand,       I                1, 1, 1, 2, yBand,
131       I                iceHeight, iceMask, maskH, rA, yC, locDr,       I                iceHeight, locMask, maskInC, rA, yC, locDr,
132       O                theMin, theMax, theMean, theVar, theVol,       O                theMin, theMax, theMean, theVar, theVol,
133       I                myThid )       I                myThid )
134          theVolG= theVol(1)+theVol(2)          theVolG= theVol(1)+theVol(2)
# Line 137  C-- Ice area and Ice thickness : Line 150  C-- Ice area and Ice thickness :
150  C-- Snow thickness :  C-- Snow thickness :
151          CALL MON_STATS_LATBND_RL(          CALL MON_STATS_LATBND_RL(
152       I                1, 1, 1, 2, yBand,       I                1, 1, 1, 2, yBand,
153       I                snowHeight, iceMask, maskH, rA, yC, locDr,       I                snowHeight, locMask, maskInC, rA, yC, locDr,
154       O                theMin, theMax, theMean, theVar, theVol,       O                theMin, theMax, theMean, theVar, theVol,
155       I                myThid )       I                myThid )
156          theVolG= theVol(1)+theVol(2)          theVolG= theVol(1)+theVol(2)
# Line 153  C-- Snow thickness : Line 166  C-- Snow thickness :
166          CALL MON_OUT_RL(mon_var, theMax(1), mon_sufx(1), myThid)          CALL MON_OUT_RL(mon_var, theMax(1), mon_sufx(1), myThid)
167          CALL MON_OUT_RL(mon_var, theMax(2), mon_sufx(2), myThid)          CALL MON_OUT_RL(mon_var, theMax(2), mon_sufx(2), myThid)
168    
 C-- Total Energy :  
         CALL  MON_STATS_RL(  
      I                1, Qice1, iceMask, iceHeight, rA, locDr,  
      O                theMin0,theMax0,theMean1,theSD,theDel2,theVolG,  
      I                myThid )  
         CALL  MON_STATS_RL(  
      I                1, Qice2, iceMask, iceHeight, rA, locDr,  
      O                theMin0,theMax0,theMean2,theSD,theDel2,theVolG,  
      I                myThid )  
         theEnergy = theEnergy -rhoi*(theMean1+theMean2)*theVolG/2  
         mon_var='TotEnerg'  
         CALL MON_OUT_RL(mon_var, theEnergy, mon_sufx(0), myThid)  
   
169  C-- Surface Temp. :  C-- Surface Temp. :
170          CALL MON_STATS_LATBND_RL(          CALL MON_STATS_LATBND_RL(
171       I                1, 1, 1, 2, yBand,       I                1, 1, 1, 2, yBand,
172       I                Tsrf, iceMask, maskH, rA, yC, locDr,       I                Tsrf, locMask, maskInC, rA, yC, locDr,
173       O                theMin, theMax, theMean, theVar, theVol,       O                theMin, theMax, theMean, theVar, theVol,
174       I                myThid )       I                myThid )
175          theVolG= theVol(1)+theVol(2)          theVolG= theVol(1)+theVol(2)
# Line 187  C-- Surface Temp. : Line 187  C-- Surface Temp. :
187          CALL MON_OUT_RL(mon_var, theMax(1), mon_sufx(1), myThid)          CALL MON_OUT_RL(mon_var, theMax(1), mon_sufx(1), myThid)
188          CALL MON_OUT_RL(mon_var, theMax(2), mon_sufx(2), myThid)          CALL MON_OUT_RL(mon_var, theMax(2), mon_sufx(2), myThid)
189    
190    C--   make a local copy of iceMask*iceHeight into "RS" array:
191            DO bj = myByLo(myThid), myByHi(myThid)
192             DO bi = myBxLo(myThid), myBxHi(myThid)
193              DO j=1-OLy,sNy+OLy
194               DO i=1-OLx,sNx+OLx
195                locMask(i,j,bi,bj)=iceMask(i,j,bi,bj)*iceHeight(i,j,bi,bj)
196               ENDDO
197              ENDDO
198             ENDDO
199            ENDDO
200    
201  C-- 1rst level (volume-mean) Temp. :  C-- 1rst level (volume-mean) Temp. :
202          CALL MON_STATS_LATBND_RL(          CALL MON_STATS_LATBND_RL(
203       I                1, 1, 1, 2, yBand,       I                1, 1, 1, 2, yBand,
204       I                Tice1, iceMask, iceHeight, rA, yC, locDr,       I                Tice1, locMask, maskInC, rA, yC, locDr,
205       O                theMin, theMax, theMean, theVar, theVol,       O                theMin, theMax, theMean, theVar, theVol,
206       I                myThid )       I                myThid )
207          theVolG = theVol(1)+theVol(2)          theVolG = theVol(1)+theVol(2)
# Line 215  c       CALL MON_OUT_RL(mon_var, theVol( Line 226  c       CALL MON_OUT_RL(mon_var, theVol(
226  C-- 2nd  level (volume-mean) Temp. :  C-- 2nd  level (volume-mean) Temp. :
227          CALL MON_STATS_LATBND_RL(          CALL MON_STATS_LATBND_RL(
228       I                1, 1, 1, 2, yBand,       I                1, 1, 1, 2, yBand,
229       I                Tice2, iceMask, iceHeight, rA, yC, locDr,       I                Tice2, locMask, maskInC, rA, yC, locDr,
230       O                theMin, theMax, theMean, theVar, theVol,       O                theMin, theMax, theMean, theVar, theVol,
231       I                myThid )       I                myThid )
232          theMeanG= theMean(1)*theVol(1)+theMean(2)*theVol(2)          theMeanG= theMean(1)*theVol(1)+theMean(2)*theVol(2)
# Line 232  C-- 2nd  level (volume-mean) Temp. : Line 243  C-- 2nd  level (volume-mean) Temp. :
243          CALL MON_OUT_RL(mon_var, theMax(1), mon_sufx(1), myThid)          CALL MON_OUT_RL(mon_var, theMax(1), mon_sufx(1), myThid)
244          CALL MON_OUT_RL(mon_var, theMax(2), mon_sufx(2), myThid)          CALL MON_OUT_RL(mon_var, theMax(2), mon_sufx(2), myThid)
245    
246    C-- Total Energy :
247            CALL  MON_CALC_STATS_RL(
248         I                1, Qice1, locMask, maskInC, rA, locDr,
249         O                theMin0,theMax0,theMean1,theSD,theDel2,theVolG,
250         I                myThid )
251            CALL  MON_CALC_STATS_RL(
252         I                1, Qice2, locMask, maskInC, rA, locDr,
253         O                theMin0,theMax0,theMean2,theSD,theDel2,theVolG,
254         I                myThid )
255            theEnergy = theEnergy -rhoi*(theMean1+theMean2)*theVolG/2
256            mon_var='TotEnerg'
257            CALL MON_OUT_RL(mon_var, theEnergy, mon_sufx(0), myThid)
258    
259          IF ( MASTER_CPU_IO(myThid) ) THEN          IF ( MASTER_CPU_IO(myThid) ) THEN
260  C--   only the master thread is allowed to switch On/Off mon_write_stdout  C--   only the master thread is allowed to switch On/Off mon_write_stdout
261  C     & mon_write_mnc (since it's the only thread that uses those flags):  C     & mon_write_mnc (since it is the only thread that uses those flags):
262    
263            IF (mon_write_stdout) THEN            IF (mon_write_stdout) THEN
264              WRITE(msgBuf,'(2A)') '// ==========================',              WRITE(msgBuf,'(2A)') '// ==========================',

Legend:
Removed from v.1.14  
changed lines
  Added in v.1.17

  ViewVC Help
Powered by ViewVC 1.1.22