/[MITgcm]/MITgcm/pkg/seaice/seaice_do_diags.F
ViewVC logotype

Diff of /MITgcm/pkg/seaice/seaice_do_diags.F

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

revision 1.20 by mlosch, Mon Mar 20 21:36:11 2006 UTC revision 1.26 by dimitri, Fri Nov 3 23:02:47 2006 UTC
# Line 42  C     == Local variables == Line 42  C     == Local variables ==
42        ELSE        ELSE
43          pf(1:1) = 'R'          pf(1:1) = 'R'
44        ENDIF        ENDIF
45          
46        IF (SEAICEwriteState) THEN        IF (SEAICEwriteState) THEN
47    
48          IF ( DIFFERENT_MULTIPLE(SEAICE_dumpFreq,myTime,deltaTClock)          IF ( DIFFERENT_MULTIPLE(SEAICE_dumpFreq,myTime,deltaTClock)
49         &    .OR. dumpInitAndLast.AND.( myTime.EQ.endTime .OR.
50         &                               myTime.EQ.startTime  )
51       &       ) THEN       &       ) THEN
52                
53              _BARRIER
54  #ifdef ALLOW_MNC  #ifdef ALLOW_MNC
55            IF ( useMNC .AND. SEAICE_dump_mnc ) THEN            IF ( useMNC .AND. SEAICE_dump_mnc ) THEN
56              CALL MNC_CW_SET_UDIM('sice', -1, myThid)              CALL MNC_CW_SET_UDIM('sice', -1, myThid)
# Line 77  C     == Local variables == Line 80  C     == Local variables ==
80  #endif  #endif
81            IF (SEAICE_dump_mdsio) THEN            IF (SEAICE_dump_mdsio) THEN
82              WRITE(suff,'(I10.10)') myIter              WRITE(suff,'(I10.10)') myIter
83              _BARRIER              IF ( myIter.NE.nIter0 ) THEN
             _BEGIN_MASTER( myThid )  
84              CALL WRITE_FLD_XY_RS( 'UWIND.',suff,uwind,myIter,myThid)              CALL WRITE_FLD_XY_RS( 'UWIND.',suff,uwind,myIter,myThid)
85              CALL WRITE_FLD_XY_RS( 'VWIND.',suff,vwind,myIter,myThid)              CALL WRITE_FLD_XY_RS( 'VWIND.',suff,vwind,myIter,myThid)
86              CALL WRITE_FLD_XY_RS( 'FU.',suff,fu,myIter,myThid)              CALL WRITE_FLD_XY_RS( 'FU.',suff,fu,myIter,myThid)
# Line 86  C     == Local variables == Line 88  C     == Local variables ==
88              CALL WRITE_FLD_XY_RS( 'EmPmR.',suff,EmPmR,myIter,myThid)              CALL WRITE_FLD_XY_RS( 'EmPmR.',suff,EmPmR,myIter,myThid)
89              CALL WRITE_FLD_XY_RS( 'Qnet.',suff,Qnet,myIter,myThid)              CALL WRITE_FLD_XY_RS( 'Qnet.',suff,Qnet,myIter,myThid)
90              CALL WRITE_FLD_XY_RS( 'Qsw.',suff,Qsw,myIter,myThid)              CALL WRITE_FLD_XY_RS( 'Qsw.',suff,Qsw,myIter,myThid)
91                ENDIF
92                CALL WRITE_FLD_XY_RL( 'HSNOW.',suff,HSNOW,myIter,myThid)
93  #if ( defined(SEAICE_CGRID) && defined(SEAICE_ALLOW_EVP) )  #if ( defined(SEAICE_CGRID) && defined(SEAICE_ALLOW_EVP) )
94              IF ( SEAICEuseEVP ) THEN              IF ( SEAICEuseEVP ) THEN
95               CALL WRITE_FLD_XY_Rs('SIGMA1.',suff,seaice_sigma1,               CALL WRITE_FLD_XY_RS('SIGMA1.',suff,seaice_sigma1,
96       &            myIter,myThid)       &            myIter,myThid)
97               CALL WRITE_FLD_XY_Rs('SIGMA2.',suff,seaice_sigma2,               CALL WRITE_FLD_XY_RS('SIGMA2.',suff,seaice_sigma2,
98       &            myIter,myThid)       &            myIter,myThid)
99               CALL WRITE_FLD_XY_Rs('SIGMA12.',suff,seaice_sigma12,               CALL WRITE_FLD_XY_RS('SIGMA12.',suff,seaice_sigma12,
100       &            myIter,myThid)       &            myIter,myThid)
101              ENDIF              ENDIF
102  #endif /* SEAICE_CGRID and SEAICE_ALLOW_EVP */  #endif /* SEAICE_CGRID and SEAICE_ALLOW_EVP */
             _END_MASTER( myThid )  
             _BARRIER  
103            ENDIF            ENDIF
104              
105  #ifdef SEAICE_DEBUG  #ifdef SEAICE_DEBUG
106         CALL PLOT_FIELD_XYRS( uwind , 'Current uwind ', myIter, myThid )         CALL PLOT_FIELD_XYRS( uwind , 'Current uwind ', myIter, myThid )
107         CALL PLOT_FIELD_XYRS( vwind , 'Current vwind ', myIter, myThid )         CALL PLOT_FIELD_XYRS( vwind , 'Current vwind ', myIter, myThid )
# Line 128  C     == Local variables == Line 130  C     == Local variables ==
130                ENDDO                ENDDO
131              ENDDO              ENDDO
132            ENDDO            ENDDO
133              _BARRIER
134            IF (SEAICE_dump_mdsio) THEN            IF (SEAICE_dump_mdsio) THEN
             _BARRIER  
             _BEGIN_MASTER( myThid )  
135              CALL WRITE_FLD_XY_RS( 'UICE.',suff,arr,myIter,myThid)              CALL WRITE_FLD_XY_RS( 'UICE.',suff,arr,myIter,myThid)
             _END_MASTER( myThid )  
             _BARRIER  
136            ENDIF            ENDIF
137  #ifdef ALLOW_MNC  #ifdef ALLOW_MNC
138            IF ( useMNC .AND. SEAICE_dump_mnc ) THEN            IF ( useMNC .AND. SEAICE_dump_mnc ) THEN
# Line 143  C     == Local variables == Line 141  C     == Local variables ==
141  #endif  #endif
142  #ifdef SEAICE_DEBUG  #ifdef SEAICE_DEBUG
143            _EXCH_XY_R4( arr, myThid )            _EXCH_XY_R4( arr, myThid )
144            CALL PLOT_FIELD_XYRS( arr   , 'Current uice  ',            CALL PLOT_FIELD_XYRS( arr   , 'Current uice  ',
145       &         myIter, myThid )       &         myIter, myThid )
146  #endif  #endif
147              _BARRIER
148    
149            DO bj=myByLo(myThid),myByHi(myThid)            DO bj=myByLo(myThid),myByHi(myThid)
150              DO bi=myBxLo(myThid),myBxHi(myThid)              DO bi=myBxLo(myThid),myBxHi(myThid)
# Line 156  C     == Local variables == Line 155  C     == Local variables ==
155                ENDDO                ENDDO
156              ENDDO              ENDDO
157            ENDDO            ENDDO
158              _BARRIER
159            IF (SEAICE_dump_mdsio) THEN            IF (SEAICE_dump_mdsio) THEN
             _BARRIER  
             _BEGIN_MASTER( myThid )  
160              CALL WRITE_FLD_XY_RS( 'VICE.',suff,arr,myIter,myThid)              CALL WRITE_FLD_XY_RS( 'VICE.',suff,arr,myIter,myThid)
             _END_MASTER( myThid )  
             _BARRIER  
161            ENDIF            ENDIF
162  #ifdef ALLOW_MNC  #ifdef ALLOW_MNC
163            IF ( useMNC .AND. SEAICE_dump_mnc ) THEN            IF ( useMNC .AND. SEAICE_dump_mnc ) THEN
# Line 170  C     == Local variables == Line 166  C     == Local variables ==
166  #endif  #endif
167  #ifdef SEAICE_DEBUG  #ifdef SEAICE_DEBUG
168            _EXCH_XY_R4( arr, myThid )            _EXCH_XY_R4( arr, myThid )
169            CALL PLOT_FIELD_XYRS( arr   , 'Current vice  ',            CALL PLOT_FIELD_XYRS( arr   , 'Current vice  ',
170       &         myIter, myThid )       &         myIter, myThid )
171  #endif  #endif
172                        _BARRIER
173    
174            DO bj=myByLo(myThid),myByHi(myThid)            DO bj=myByLo(myThid),myByHi(myThid)
175              DO bi=myBxLo(myThid),myBxHi(myThid)              DO bi=myBxLo(myThid),myBxHi(myThid)
176                DO j=1-Oly,sNy+Oly                DO j=1-Oly,sNy+Oly
# Line 183  C     == Local variables == Line 180  C     == Local variables ==
180                ENDDO                ENDDO
181              ENDDO              ENDDO
182            ENDDO            ENDDO
183              _BARRIER
184            IF (SEAICE_dump_mdsio) THEN            IF (SEAICE_dump_mdsio) THEN
             _BARRIER  
             _BEGIN_MASTER( myThid )  
185              CALL WRITE_FLD_XY_RS( 'HEFF.',suff,arr,myIter,myThid)              CALL WRITE_FLD_XY_RS( 'HEFF.',suff,arr,myIter,myThid)
             _END_MASTER( myThid )  
             _BARRIER  
186            ENDIF            ENDIF
187  #ifdef ALLOW_MNC  #ifdef ALLOW_MNC
188            IF ( useMNC .AND. SEAICE_dump_mnc ) THEN            IF ( useMNC .AND. SEAICE_dump_mnc ) THEN
# Line 200  C     == Local variables == Line 194  C     == Local variables ==
194            CALL PLOT_FIELD_XYRS( arr   , 'Current heff  ',            CALL PLOT_FIELD_XYRS( arr   , 'Current heff  ',
195       &         myIter, myThid )       &         myIter, myThid )
196  #endif  #endif
197                        _BARRIER
198    
199            DO bj=myByLo(myThid),myByHi(myThid)            DO bj=myByLo(myThid),myByHi(myThid)
200              DO bi=myBxLo(myThid),myBxHi(myThid)              DO bi=myBxLo(myThid),myBxHi(myThid)
201                DO j=1-Oly,sNy+Oly                DO j=1-Oly,sNy+Oly
# Line 210  C     == Local variables == Line 205  C     == Local variables ==
205                ENDDO                ENDDO
206              ENDDO              ENDDO
207            ENDDO            ENDDO
208              _BARRIER
209            IF (SEAICE_dump_mdsio) THEN            IF (SEAICE_dump_mdsio) THEN
             _BARRIER  
             _BEGIN_MASTER( myThid )  
210              CALL WRITE_FLD_XY_RS( 'AREA.',suff,arr,myIter,myThid)              CALL WRITE_FLD_XY_RS( 'AREA.',suff,arr,myIter,myThid)
             _END_MASTER( myThid )  
             _BARRIER  
211            ENDIF            ENDIF
212  #ifdef ALLOW_MNC  #ifdef ALLOW_MNC
213            IF ( useMNC .AND. SEAICE_dump_mnc ) THEN            IF ( useMNC .AND. SEAICE_dump_mnc ) THEN
# Line 227  C     == Local variables == Line 219  C     == Local variables ==
219            CALL PLOT_FIELD_XYRS( arr   , 'Current area  ',            CALL PLOT_FIELD_XYRS( arr   , 'Current area  ',
220       &         myIter, myThid )       &         myIter, myThid )
221  #endif  #endif
222              _BARRIER
223    
224           ENDIF           ENDIF
225        ENDIF        ENDIF
# Line 306  C      Normalize by integrated time Line 299  C      Normalize by integrated time
299       &                 bi,bj,myThid)       &                 bi,bj,myThid)
300          ENDDO          ENDDO
301         ENDDO         ENDDO
302    c      IF (myIter.EQ.10) WRITE(0,*) myThid, dumpFiles
303    
304           _BARRIER
305  #ifdef ALLOW_MNC  #ifdef ALLOW_MNC
306         IF (useMNC .AND. SEAICE_tave_mnc) THEN         IF (useMNC .AND. SEAICE_tave_mnc) THEN
307           CALL MNC_CW_SET_UDIM('sice_tave', -1, myThid)           CALL MNC_CW_SET_UDIM('sice_tave', -1, myThid)
# Line 337  C    &        myTime,myThid) Line 332  C    &        myTime,myThid)
332  #endif  #endif
333         IF (SEAICE_tave_mdsio) THEN         IF (SEAICE_tave_mdsio) THEN
334           WRITE(suff,'(I10.10)') myIter           WRITE(suff,'(I10.10)') myIter
          _BARRIER  
          _BEGIN_MASTER( myThid )  
335           CALL WRITE_FLD_XY_RL('FUtave.'   ,suff,FUtave   ,myIter,myThid)           CALL WRITE_FLD_XY_RL('FUtave.'   ,suff,FUtave   ,myIter,myThid)
336           CALL WRITE_FLD_XY_RL('FVtave.'   ,suff,FVtave   ,myIter,myThid)           CALL WRITE_FLD_XY_RL('FVtave.'   ,suff,FVtave   ,myIter,myThid)
337           CALL WRITE_FLD_XY_RL('EmPmRtave.',suff,EmPmRtave,myIter,myThid)           CALL WRITE_FLD_XY_RL('EmPmRtave.',suff,EmPmRtave,myIter,myThid)
# Line 348  C    &        myTime,myThid) Line 341  C    &        myTime,myThid)
341           CALL WRITE_FLD_XY_RL('VICEtave.' ,suff,VICEtave ,myIter,myThid)           CALL WRITE_FLD_XY_RL('VICEtave.' ,suff,VICEtave ,myIter,myThid)
342           CALL WRITE_FLD_XY_RL('HEFFtave.' ,suff,HEFFtave ,myIter,myThid)           CALL WRITE_FLD_XY_RL('HEFFtave.' ,suff,HEFFtave ,myIter,myThid)
343           CALL WRITE_FLD_XY_RL('AREAtave.' ,suff,AREAtave ,myIter,myThid)           CALL WRITE_FLD_XY_RL('AREAtave.' ,suff,AREAtave ,myIter,myThid)
          _END_MASTER( myThid )  
          _BARRIER  
344         ENDIF         ENDIF
345                 _BARRIER
346    
347  C      Reset averages to zero  C      Reset averages to zero
348         DO bj = myByLo(myThid), myByHi(myThid)         DO bj = myByLo(myThid), myByHi(myThid)
349          DO bi = myBxLo(myThid), myBxHi(myThid)          DO bi = myBxLo(myThid), myBxHi(myThid)
# Line 369  C      Reset averages to zero Line 361  C      Reset averages to zero
361           ENDDO           ENDDO
362          ENDDO          ENDDO
363         ENDDO         ENDDO
364          
365        ENDIF        ENDIF
366          
367  #endif /* ALLOW_TIMEAVE */  #endif /* ALLOW_TIMEAVE */
368    
369    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
370    
371    #ifdef ALLOW_DIAGNOSTICS
372          IF ( useDiagnostics ) THEN
373           DO bj = myByLo(myThid), myByHi(myThid)
374            DO bi = myBxLo(myThid), myBxHi(myThid)
375             CALL DIAGNOSTICS_FILL(AREA(1-oLx,1-oLy,1,bi,bj),
376         &          'SIarea  ',0,1 ,2,bi,bj,myThid)
377             CALL DIAGNOSTICS_FILL(HEFF(1-oLx,1-oLy,1,bi,bj),
378         &        'SIheff  ',0,1 ,2,bi,bj,myThid)
379             CALL DIAGNOSTICS_FILL(UICE(1-oLx,1-oLy,1,bi,bj),
380         &        'SIuice  ',0,1 ,2,bi,bj,myThid)
381             CALL DIAGNOSTICS_FILL(VICE(1-oLx,1-oLy,1,bi,bj),
382         &        'SIvice  ',0,1 ,2,bi,bj,myThid)
383            ENDDO
384           ENDDO
385    c
386           CALL DIAGNOSTICS_FILL(HSNOW  ,'SIhsnow ',0,1 ,0,1,1,myThid)
387    c
388           CALL DIAGNOSTICS_FILL(UWIND  ,'SIuwind ',0,1 ,0,1,1,myThid)
389           CALL DIAGNOSTICS_FILL(VWIND  ,'SIvwind ',0,1 ,0,1,1,myThid)
390           CALL DIAGNOSTICS_FILL(FU     ,'SIfu    ',0,1 ,0,1,1,myThid)
391           CALL DIAGNOSTICS_FILL(FV     ,'SIfv    ',0,1 ,0,1,1,myThid)
392           CALL DIAGNOSTICS_FILL(EmPmR  ,'SIempmr ',0,1 ,0,1,1,myThid)
393           CALL DIAGNOSTICS_FILL(Qnet   ,'SIqnet  ',0,1 ,0,1,1,myThid)
394           CALL DIAGNOSTICS_FILL(Qsw    ,'SIqsw   ',0,1 ,0,1,1,myThid)
395          ENDIF
396    #endif /* ALLOW_DIAGNOSTICS */
397    
398    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
399    
400    C--   do SEAICE monitor output : print some statistics about seaice fields
401          CALL SEAICE_MONITOR( myTime, myIter, myThid )
402    
403    
404    
405        RETURN        RETURN
406        END        END

Legend:
Removed from v.1.20  
changed lines
  Added in v.1.26

  ViewVC Help
Powered by ViewVC 1.1.22