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

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

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

revision 1.2 by jmc, Wed Apr 6 18:47:11 2005 UTC revision 1.5 by jmc, Thu Aug 11 21:08:17 2005 UTC
# Line 42  CEOP Line 42  CEOP
42  #ifdef ALLOW_THSICE  #ifdef ALLOW_THSICE
43    
44  C     == Local variables ==  C     == Local variables ==
45        LOGICAL  DIFF_BASE_MULTIPLE        LOGICAL  DIFFERENT_MULTIPLE
46        EXTERNAL DIFF_BASE_MULTIPLE        EXTERNAL DIFFERENT_MULTIPLE
47        INTEGER bi, bj, kl        INTEGER bi, bj, kl
48        CHARACTER*(MAX_LEN_MBUF) suff, fn        CHARACTER*(MAX_LEN_MBUF) suff, fn
49        LOGICAL gf        LOGICAL gf
50    #ifdef ALLOW_MNC
51          INTEGER i
52          CHARACTER*(MAX_LEN_MBUF) mncf
53    #endif
54    
55  #ifdef ALLOW_TIMEAVE  #ifdef ALLOW_TIMEAVE
56    
# Line 75  c set arrays to zero if first timestep Line 79  c set arrays to zero if first timestep
79    
80  C     Dump files and restart average computation if needed  C     Dump files and restart average computation if needed
81        ELSEIF (        ELSEIF (
82       &  DIFF_BASE_MULTIPLE(baseTime,thSIce_taveFreq,myTime,deltaTClock)       &  DIFFERENT_MULTIPLE(thSIce_taveFreq,myTime,deltaTClock)
83       &     ) THEN       &     ) THEN
84    
85  C--    Normalize by integrated time  C--    Normalize by integrated time
# Line 177  C--    Write all time-average variables Line 181  C--    Write all time-average variables
181         _BARRIER         _BARRIER
182         _BEGIN_MASTER( myThid )         _BEGIN_MASTER( myThid )
183    
184  C-     find wether we are writing globalFile or tile-files:         IF ( thSIce_tave_mdsio ) THEN
        CALL GET_WRITE_GLOBAL_FLD( gf )  
185    
186         WRITE(fn,'(A,I10.10)') 'thSIce_tave.', myIter  C        find wether we are writing globalFile or tile-files:
187             CALL GET_WRITE_GLOBAL_FLD( gf )
188    
189             WRITE(fn,'(A,I10.10)') 'thSIce_tave.', myIter
190    
191             CALL MDSWRITEFIELD( fn, writeBinaryPrec, gf, 'RL', 1,
192         &        ice_fract_Ave,  1, myIter, myThid )
193             CALL MDSWRITEFIELD( fn, writeBinaryPrec, gf, 'RL', 1,
194         &        ice_iceH_Ave,   2, myIter, myThid )
195             CALL MDSWRITEFIELD( fn, writeBinaryPrec, gf, 'RL', 1,
196         &        ice_snowH_Ave,  3, myIter, myThid )
197             CALL MDSWRITEFIELD( fn, writeBinaryPrec, gf, 'RL', 1,
198         &        ice_Tsrf_Ave,   4, myIter, myThid )
199             CALL MDSWRITEFIELD( fn, writeBinaryPrec, gf, 'RL', 1,
200         &        ice_Tice1_Ave,  5, myIter, myThid )
201             CALL MDSWRITEFIELD( fn, writeBinaryPrec, gf, 'RL', 1,
202         &        ice_Tice2_Ave,  6, myIter, myThid )
203             CALL MDSWRITEFIELD( fn, writeBinaryPrec, gf, 'RL', 1,
204         &        ice_snowPr_Ave, 7, myIter, myThid )
205             CALL MDSWRITEFIELD( fn, writeBinaryPrec, gf, 'RL', 1,
206         &        ice_albedo_Ave, 8, myIter, myThid )
207             CALL MDSWRITEFIELD( fn, writeBinaryPrec, gf, 'RL', 1,
208         &        ice_flx2oc_Ave, 9, myIter, myThid )
209             CALL MDSWRITEFIELD( fn, writeBinaryPrec, gf, 'RL', 1,
210         &        ice_frw2oc_Ave,10, myIter, myThid )
211             kl = 11
212             CALL MDSWRITEFIELD( fn, writeBinaryPrec, gf, 'RL', 1,
213         &        ice_salFx_Ave, kl, myIter, myThid )
214             IF ( fluidIsWater ) THEN
215               kl = kl+1
216               CALL MDSWRITEFIELD( fn, writeBinaryPrec, gf, 'RL', 1,
217         &          ice_flxAtm_Ave,kl, myIter, myThid )
218               kl = kl+1
219               CALL MDSWRITEFIELD( fn, writeBinaryPrec, gf, 'RL', 1,
220         &          ice_frwAtm_Ave,kl, myIter, myThid )
221             ENDIF
222             IF ( stepFwd_oceMxL ) THEN
223               kl = kl+1
224               CALL MDSWRITEFIELD( fn, writeBinaryPrec, gf, 'RL', 1,
225         &          ice_tMxL_Ave,  kl, myIter, myThid )
226               kl = kl+1
227               CALL MDSWRITEFIELD( fn, writeBinaryPrec, gf, 'RL', 1,
228         &          ice_sMxL_Ave,  kl, myIter, myThid )
229             ENDIF
230    
        CALL MDSWRITEFIELD( fn, writeBinaryPrec, gf, 'RL', 1,  
      &                     ice_fract_Ave,  1, myIter, myThid )  
        CALL MDSWRITEFIELD( fn, writeBinaryPrec, gf, 'RL', 1,  
      &                     ice_iceH_Ave,   2, myIter, myThid )  
        CALL MDSWRITEFIELD( fn, writeBinaryPrec, gf, 'RL', 1,  
      &                     ice_snowH_Ave,  3, myIter, myThid )  
        CALL MDSWRITEFIELD( fn, writeBinaryPrec, gf, 'RL', 1,  
      &                     ice_Tsrf_Ave,   4, myIter, myThid )  
        CALL MDSWRITEFIELD( fn, writeBinaryPrec, gf, 'RL', 1,  
      &                     ice_Tice1_Ave,  5, myIter, myThid )  
        CALL MDSWRITEFIELD( fn, writeBinaryPrec, gf, 'RL', 1,  
      &                     ice_Tice2_Ave,  6, myIter, myThid )  
        CALL MDSWRITEFIELD( fn, writeBinaryPrec, gf, 'RL', 1,  
      &                     ice_snowPr_Ave, 7, myIter, myThid )  
        CALL MDSWRITEFIELD( fn, writeBinaryPrec, gf, 'RL', 1,  
      &                     ice_albedo_Ave, 8, myIter, myThid )  
        CALL MDSWRITEFIELD( fn, writeBinaryPrec, gf, 'RL', 1,  
      &                     ice_flx2oc_Ave, 9, myIter, myThid )  
        CALL MDSWRITEFIELD( fn, writeBinaryPrec, gf, 'RL', 1,  
      &                     ice_frw2oc_Ave,10, myIter, myThid )  
        kl = 11  
        CALL MDSWRITEFIELD( fn, writeBinaryPrec, gf, 'RL', 1,  
      &                     ice_salFx_Ave, kl, myIter, myThid )  
        IF ( fluidIsWater ) THEN  
         kl = kl+1  
         CALL MDSWRITEFIELD(fn, writeBinaryPrec, gf, 'RL', 1,  
      &                     ice_flxAtm_Ave,kl, myIter, myThid )  
         kl = kl+1  
         CALL MDSWRITEFIELD(fn, writeBinaryPrec, gf, 'RL', 1,  
      &                     ice_frwAtm_Ave,kl, myIter, myThid )  
231         ENDIF         ENDIF
232         IF ( stepFwd_oceMxL ) THEN  
233          kl = kl+1  #ifdef ALLOW_MNC
234          CALL MDSWRITEFIELD(fn, writeBinaryPrec, gf, 'RL', 1,         IF ( useMNC .AND. thSIce_tave_mnc ) THEN
235       &                     ice_tMxL_Ave,  kl, myIter, myThid )           DO i = 1,MAX_LEN_MBUF
236          kl = kl+1             mncf(i:i) = ' '
237          CALL MDSWRITEFIELD(fn, writeBinaryPrec, gf, 'RL', 1,           ENDDO
238       &                     ice_sMxL_Ave,  kl, myIter, myThid )  C        C             123456789 1
239             mncf(1:11) = 'thsice_tave'
240             CALL MNC_CW_SET_UDIM(mncf, -1, myThid)
241             CALL MNC_CW_RL_W_S('D',mncf,0,0,'T', myTime, myThid)
242             CALL MNC_CW_SET_UDIM(mncf, 0, myThid)
243             CALL MNC_CW_I_W_S('I',mncf,0,0,'iter', myIter, myThid)
244             CALL MNC_CW_RL_W('D',mncf,0,0,
245         &                    'fract_ave', ice_fract_Ave, myThid)
246             CALL MNC_CW_RL_W('D',mncf,0,0,
247         &                    'iceH_ave',  ice_iceH_Ave,  myThid)
248             CALL MNC_CW_RL_W('D',mncf,0,0,
249         &                    'snowH_ave', ice_snowH_Ave, myThid)
250             CALL MNC_CW_RL_W('D',mncf,0,0,
251         &                    'Tsrf_ave',  ice_Tsrf_Ave,  myThid)
252             CALL MNC_CW_RL_W('D',mncf,0,0,
253         &                    'Tice1_ave', ice_Tice1_Ave, myThid)
254             CALL MNC_CW_RL_W('D',mncf,0,0,
255         &                    'Tice2_ave', ice_Tice2_Ave, myThid)
256             CALL MNC_CW_RL_W('D',mncf,0,0,
257         &                    'snowPr_ave',ice_snowPr_Ave,myThid)
258             CALL MNC_CW_RL_W('D',mncf,0,0,
259         &                    'albedo_ave',ice_albedo_Ave,myThid)
260             CALL MNC_CW_RL_W('D',mncf,0,0,
261         &                    'flx2oc_ave',ice_flx2oc_Ave,myThid)
262             CALL MNC_CW_RL_W('D',mncf,0,0,
263         &                    'frw2oc_ave',ice_frw2oc_Ave,myThid)
264             IF ( fluidIsWater ) THEN
265               CALL MNC_CW_RL_W('D',mncf,0,0,
266         &                    'flxAtm_ave',ice_flxAtm_Ave,myThid)
267               CALL MNC_CW_RL_W('D',mncf,0,0,
268         &                    'frwAtm_ave',ice_frwAtm_Ave,myThid)
269             ENDIF
270             IF ( stepFwd_oceMxL ) THEN
271               CALL MNC_CW_RL_W('D',mncf,0,0,'tMxL_ave',ice_tMxL_Ave,myThid)
272               CALL MNC_CW_RL_W('D',mncf,0,0,'sMxL_ave',ice_sMxL_Ave,myThid)
273             ENDIF
274         ENDIF         ENDIF
275    #endif
276    
277         _END_MASTER( myThid )         _END_MASTER( myThid )
278         _BARRIER         _BARRIER
# Line 253  C--    Reset averages to zero Line 305  C--    Reset averages to zero
305    
306  C     Dump a snap-shot of main state variables:  C     Dump a snap-shot of main state variables:
307        IF (        IF (
308       &  DIFF_BASE_MULTIPLE(baseTime,thSIce_diagFreq,myTime,deltaTClock)       &  DIFFERENT_MULTIPLE(thSIce_diagFreq,myTime,deltaTClock)
309       &     .OR. myTime.EQ.startTime       &     .OR. myTime.EQ.startTime
310       &     .OR. myTime.EQ.endTime ) THEN       &     .OR. myTime.EQ.endTime ) THEN
311    
312         WRITE(suff,'(I10.10)') myIter          IF ( thSIce_snapshot_mdsio ) THEN
313              
314              WRITE(suff,'(I10.10)') myIter
315              
316              CALL WRITE_FLD_XY_RL('ice_fract.',  suff,iceMask,
317         &         myIter,myThid)
318              CALL WRITE_FLD_XY_RL('ice_iceH.',   suff,iceheight,
319         &         myIter,myThid)
320              CALL WRITE_FLD_XY_RL('ice_snowH.',  suff,snowheight,
321         &         myIter,myThid)
322              CALL WRITE_FLD_XY_RL('ice_Tsrf.',   suff,Tsrf,
323         &         myIter,myThid)
324              CALL WRITE_FLD_XY_RL('ice_Tice1.',  suff,Tice1,
325         &         myIter,myThid)
326              CALL WRITE_FLD_XY_RL('ice_Tice2.',  suff,Tice2,
327         &         myIter,myThid)
328              CALL WRITE_FLD_XY_RL('ice_Qice1.',  suff,Qice1,
329         &         myIter,myThid)
330              CALL WRITE_FLD_XY_RL('ice_Qice2.',  suff,Qice2,
331         &         myIter,myThid)
332              CALL WRITE_FLD_XY_RL('ice_snowPrc.',suff,snowPrc,
333         &         myIter,myThid)
334              CALL WRITE_FLD_XY_RL('ice_snowAge.',suff,snowAge,
335         &         myIter,myThid)
336              IF ( stepFwd_oceMxL ) THEN
337                CALL WRITE_FLD_XY_RL('ice_tOceMxL.', suff, tOceMxL,
338         &           myIter,myThid)
339                CALL WRITE_FLD_XY_RL('ice_sOceMxL.', suff, sOceMxL,
340         &     myIter,myThid)
341              ENDIF
342              
343            ENDIF
344    
345    #ifdef ALLOW_MNC
346            IF ( thSIce_snapshot_mnc ) THEN
347              DO i = 1,MAX_LEN_MBUF
348                mncf(i:i) = ' '
349              ENDDO
350    C         C             123456789 12345
351              mncf(1:15) = 'thsice_snapshot'
352              CALL MNC_CW_SET_UDIM(mncf, -1, myThid)
353              CALL MNC_CW_I_W_S('I',mncf,0,0,'iter', myIter, myThid)
354              CALL MNC_CW_SET_UDIM(mncf, 0, myThid)
355              CALL MNC_CW_RL_W_S('D',mncf,0,0,'T', myTime, myThid)
356              CALL MNC_CW_RL_W('D',mncf,0,0,'iceMask',   iceMask,   myThid)
357              CALL MNC_CW_RL_W('D',mncf,0,0,'iceHeight', iceHeight, myThid)
358              CALL MNC_CW_RL_W('D',mncf,0,0,'snowHeight',snowHeight,myThid)
359              CALL MNC_CW_RL_W('D',mncf,0,0,'Tsrf',      Tsrf,      myThid)
360              CALL MNC_CW_RL_W('D',mncf,0,0,'Tice1',     Tice1,     myThid)
361              CALL MNC_CW_RL_W('D',mncf,0,0,'Tice2',     Tice1,     myThid)
362              CALL MNC_CW_RL_W('D',mncf,0,0,'Qice1',     Qice1,     myThid)
363              CALL MNC_CW_RL_W('D',mncf,0,0,'Qice2',     Qice2,     myThid)
364              CALL MNC_CW_RL_W('D',mncf,0,0,'snowAge',   snowAge,   myThid)
365              IF ( stepFwd_oceMxL ) THEN
366                CALL MNC_CW_RL_W('D',mncf,0,0,'tOceMxL',tOceMxL,myThid)
367                CALL MNC_CW_RL_W('D',mncf,0,0,'sOceMxL',sOceMxL,myThid)
368              ENDIF
369            ENDIF
370    #endif  /* ALLOW_MNC */
371    
        CALL WRITE_FLD_XY_RL('ice_fract.',  suff,iceMask,  
      &     myIter,myThid)  
        CALL WRITE_FLD_XY_RL('ice_iceH.',   suff,iceheight,  
      &     myIter,myThid)  
        CALL WRITE_FLD_XY_RL('ice_snowH.',  suff,snowheight,  
      &     myIter,myThid)  
        CALL WRITE_FLD_XY_RL('ice_Tsrf.',   suff,Tsrf,  
      &     myIter,myThid)  
        CALL WRITE_FLD_XY_RL('ice_Tice1.',  suff,Tice1,  
      &     myIter,myThid)  
        CALL WRITE_FLD_XY_RL('ice_Tice2.',  suff,Tice2,  
      &     myIter,myThid)  
        CALL WRITE_FLD_XY_RL('ice_Qice1.',  suff,Qice1,  
      &     myIter,myThid)  
        CALL WRITE_FLD_XY_RL('ice_Qice2.',  suff,Qice2,  
      &     myIter,myThid)  
        CALL WRITE_FLD_XY_RL('ice_snowPrc.',suff,snowPrc,  
      &     myIter,myThid)  
        CALL WRITE_FLD_XY_RL('ice_snowAge.',suff,snowAge,  
      &     myIter,myThid)  
        IF ( stepFwd_oceMxL ) THEN  
         CALL WRITE_FLD_XY_RL('ice_tOceMxL.', suff, tOceMxL,  
      &     myIter,myThid)  
         CALL WRITE_FLD_XY_RL('ice_sOceMxL.', suff, sOceMxL,  
      &     myIter,myThid)  
        ENDIF  
372    
373        ENDIF        ENDIF
374                    

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.5

  ViewVC Help
Powered by ViewVC 1.1.22