/[MITgcm]/MITgcm/pkg/layers/layers_output.F
ViewVC logotype

Diff of /MITgcm/pkg/layers/layers_output.F

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

revision 1.10 by jmc, Thu Oct 18 13:04:59 2012 UTC revision 1.11 by jmc, Thu Oct 18 19:51:14 2012 UTC
# Line 39  C     myThid :: my Thread Id number Line 39  C     myThid :: my Thread Id number
39  CEOP  CEOP
40    
41  #ifdef ALLOW_LAYERS  #ifdef ALLOW_LAYERS
42    #ifdef ALLOW_TIMEAVE
43  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
44  C     == Local variables ==  C     == Local variables ==
45        LOGICAL  DIFFERENT_MULTIPLE        LOGICAL  DIFFERENT_MULTIPLE
46        EXTERNAL DIFFERENT_MULTIPLE        EXTERNAL DIFFERENT_MULTIPLE
47        CHARACTER*(MAX_LEN_MBUF) suff        CHARACTER*(MAX_LEN_MBUF) suff
48        INTEGER iLa        INTEGER iLa
 #ifdef ALLOW_TIMEAVE  
49        INTEGER bi, bj        INTEGER bi, bj
 #endif  
 c#ifdef ALLOW_MNC  
 c      CHARACTER*(1) pf  
 c#endif  
50    
51  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
52    
 #ifdef ALLOW_DIAGNOSTICS  
       IF ( useDiagnostics )  
      &  CALL LAYERS_DIAGNOSTICS_FILL( myThid )  
 #endif  
   
 c#ifdef ALLOW_MNC  
 c      IF ( writeBinaryPrec .EQ. precFloat64 ) THEN  
 c        pf(1:1) = 'D'  
 c      ELSE  
 c        pf(1:1) = 'R'  
 c      ENDIF  
 c#endif /* ALLOW_MNC */  
   
       IF ( DIFFERENT_MULTIPLE(layers_diagFreq,myTime,deltaTClock)  
      &  .AND. myIter .GT. 0 ) THEN  
   
        DO iLa=1,layers_maxNum  
   
         IF ( layers_MDSIO ) THEN  
           WRITE(suff,'(I2.2,A1,I10.10)') iLa, '.', myIter  
 #ifdef LAYERS_UFLUX  
           CALL WRITE_FLD_3D_RL( 'layers_UH.', suff, Nlayers,  
      &                           layers_UH(1-OLx,1-OLy,1,1,1,iLa),  
      &                           myIter, myThid )  
 #ifdef LAYERS_THICKNESS  
           CALL WRITE_FLD_3D_RL( 'layers_Hw.', suff, Nlayers,  
      &                           layers_Hw(1-OLx,1-OLy,1,1,1,iLa),  
      &                           myIter, myThid )  
 #endif /* LAYERS_THICKNESS */  
 #endif /* LAYERS_UFLUX */  
 #ifdef LAYERS_VFLUX  
           CALL WRITE_FLD_3D_RL( 'layers_VH.', suff, Nlayers,  
      &                           layers_VH(1-OLx,1-OLy,1,1,1,iLa),  
      &                           myIter, myThid )  
 #ifdef LAYERS_THICKNESS  
           CALL WRITE_FLD_3D_RL( 'layers_Hs.', suff, Nlayers,  
      &                           layers_Hs(1-OLx,1-OLy,1,1,1,iLa),  
      &                           myIter, myThid )  
 #endif /* LAYERS_THICKNESS */  
 #endif /* LAYERS_VFLUX */  
 #ifdef LAYERS_PRHO_REF  
           IF ( layers_num(1).EQ.3 ) THEN  
            CALL WRITE_FLD_3D_RL( 'layers_prho.', suff, Nr,  
      &                           prho(1-OLx,1-OLy,1,1,1,iLa),  
      &                           myIter, myThid )  
           ENDIF  
 #endif /* LAYERS_PRHO_REF */  
         ENDIF  
   
 c#ifdef ALLOW_MNC  
 c#ifdef LAYERS_MNC  
 c        IF ( layers_MNC) THEN  
 C           Do MNC output...  
 C           But how?  
 c        ENDIF  
 c#endif /* LAYERS_MNC */  
 c#endif /* ALLOW_MNC */  
   
        ENDDO  
       ENDIF  
   
 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  
   
 #ifdef ALLOW_TIMEAVE  
53        IF ( layers_taveFreq.GT.0. ) THEN        IF ( layers_taveFreq.GT.0. ) THEN
54  cgf layers_maxNum loop and dimension would be needed for  cgf layers_maxNum loop and dimension would be needed for
55  cgf the following and tave output to work beyond iLa=1  cgf the following and tave output to work beyond iLa=1
# Line 128  c set arrays to zero if first timestep Line 60  c set arrays to zero if first timestep
60         IF ( myIter.EQ.nIter0 ) THEN         IF ( myIter.EQ.nIter0 ) THEN
61          DO bj = myByLo(myThid), myByHi(myThid)          DO bj = myByLo(myThid), myByHi(myThid)
62           DO bi = myBxLo(myThid), myBxHi(myThid)           DO bi = myBxLo(myThid), myBxHi(myThid)
63              layers_TimeAve(bi,bj) = 0.
64  #ifdef LAYERS_UFLUX  #ifdef LAYERS_UFLUX
65            CALL TIMEAVE_RESET(layers_UH_T,Nlayers,bi,bj,myThid)            CALL TIMEAVE_RESET(layers_UH_T,  Nlayers,bi,bj,myThid)
66  #ifdef LAYERS_THICKNESS  #ifdef LAYERS_THICKNESS
67            CALL TIMEAVE_RESET(layers_Hw_T,Nlayers,bi,bj,myThid)            CALL TIMEAVE_RESET(layers_Hw_T, Nlayers,bi,bj,myThid)
68              CALL TIMEAVE_RESET(layers_PIw_T,Nlayers,bi,bj,myThid)
69              CALL TIMEAVE_RESET(layers_U_T,  Nlayers,bi,bj,myThid)
70  #endif /* LAYERS_THICKNESS */  #endif /* LAYERS_THICKNESS */
71  #endif /* LAYERS_UFLUX */  #endif /* LAYERS_UFLUX */
72    
73  #ifdef LAYERS_VFLUX  #ifdef LAYERS_VFLUX
74            CALL TIMEAVE_RESET(layers_VH_T,Nlayers,bi,bj,myThid)            CALL TIMEAVE_RESET(layers_VH_T, Nlayers,bi,bj,myThid)
75  #ifdef LAYERS_THICKNESS  #ifdef LAYERS_THICKNESS
76            CALL TIMEAVE_RESET(layers_Hs_T,Nlayers,bi,bj,myThid)            CALL TIMEAVE_RESET(layers_Hs_T, Nlayers,bi,bj,myThid)
77              CALL TIMEAVE_RESET(layers_PIs_T,Nlayers,bi,bj,myThid)
78              CALL TIMEAVE_RESET(layers_V_T,  Nlayers,bi,bj,myThid)
79  #endif /* LAYERS_THICKNESS */  #endif /* LAYERS_THICKNESS */
80  #endif /* LAYERS_VFLUX */  #endif /* LAYERS_VFLUX */
81            layers_TimeAve(bi,bj) = 0.  
82    #ifdef LAYERS_PRHO_REF
83              CALL TIMEAVE_RESET(prho_tave,Nr,bi,bj,myThid)
84    #endif /* LAYERS_PRHO_REF */
85           ENDDO           ENDDO
86          ENDDO          ENDDO
87    
# Line 155  C      Normalize by integrated time Line 95  C      Normalize by integrated time
95           DO bi = myBxLo(myThid), myBxHi(myThid)           DO bi = myBxLo(myThid), myBxHi(myThid)
96    
97  #ifdef LAYERS_UFLUX  #ifdef LAYERS_UFLUX
98            CALL TIMEAVE_NORMALIZE( layers_UH_T, layers_timeave,            CALL TIMEAVE_NORMALIZE( layers_UH_T, layers_TimeAve,
99       &                            Nlayers, bi, bj, myThid )       &                            Nlayers, bi, bj, myThid )
100  #ifdef LAYERS_THICKNESS  #ifdef LAYERS_THICKNESS
101            CALL TIMEAVE_NORMALIZE( layers_Hw_T, layers_timeave,            CALL TIMEAVE_NORMALIZE( layers_Hw_T, layers_TimeAve,
102       &                            Nlayers, bi, bj, myThid )       &                            Nlayers, bi, bj, myThid )
103  #endif /* LAYERS_THICKNESS */  #endif /* LAYERS_THICKNESS */
104  #endif /* LAYERS_UFLUX */  #endif /* LAYERS_UFLUX */
105    
106  #ifdef LAYERS_VFLUX  #ifdef LAYERS_VFLUX
107            CALL TIMEAVE_NORMALIZE( layers_VH_T, layers_timeave,            CALL TIMEAVE_NORMALIZE( layers_VH_T, layers_TimeAve,
108       &                            Nlayers, bi, bj, myThid )       &                            Nlayers, bi, bj, myThid )
109  #ifdef LAYERS_THICKNESS  #ifdef LAYERS_THICKNESS
110            CALL TIMEAVE_NORMALIZE( layers_Hs_T, layers_timeave,            CALL TIMEAVE_NORMALIZE( layers_Hs_T, layers_TimeAve,
111       &                            Nlayers, bi, bj, myThid )       &                            Nlayers, bi, bj, myThid )
112  #endif /* LAYERS_THICKNESS */  #endif /* LAYERS_THICKNESS */
113  #endif /* LAYERS_VFLUX */  #endif /* LAYERS_VFLUX */
114    
115  #ifdef LAYERS_PRHO_REF  #ifdef LAYERS_PRHO_REF
116            IF ( layers_num(1).EQ.3 )            IF ( layers_num(1).EQ.3 )
117       &    CALL TIMEAVE_NORMALIZE( prho_tave, layers_timeave,       &    CALL TIMEAVE_NORMALIZE( prho_tave, layers_TimeAve,
118       &                            Nr, bi, bj, myThid )       &                            Nr, bi, bj, myThid )
119  #endif /* LAYERS_PRHO_REF */  #endif /* LAYERS_PRHO_REF */
120    
# Line 215  c#endif Line 155  c#endif
155  C      Reset averages to zero  C      Reset averages to zero
156          DO bj = myByLo(myThid), myByHi(myThid)          DO bj = myByLo(myThid), myByHi(myThid)
157           DO bi = myBxLo(myThid), myBxHi(myThid)           DO bi = myBxLo(myThid), myBxHi(myThid)
158              layers_TimeAve(bi,bj) = 0.
159  #ifdef LAYERS_UFLUX  #ifdef LAYERS_UFLUX
160            CALL TIMEAVE_RESET(layers_UH_T,Nlayers,bi,bj,myThid)            CALL TIMEAVE_RESET(layers_UH_T,  Nlayers,bi,bj,myThid)
161  #ifdef LAYERS_THICKNESS  #ifdef LAYERS_THICKNESS
162            CALL TIMEAVE_RESET(layers_Hw_T,Nlayers,bi,bj,myThid)            CALL TIMEAVE_RESET(layers_Hw_T, Nlayers,bi,bj,myThid)
163              CALL TIMEAVE_RESET(layers_PIw_T,Nlayers,bi,bj,myThid)
164              CALL TIMEAVE_RESET(layers_U_T,  Nlayers,bi,bj,myThid)
165  #endif /* LAYERS_THICKNESS */  #endif /* LAYERS_THICKNESS */
166  #endif /* LAYERS_UFLUX */  #endif /* LAYERS_UFLUX */
167    
168  #ifdef LAYERS_VFLUX  #ifdef LAYERS_VFLUX
169            CALL TIMEAVE_RESET(layers_VH_T,Nlayers,bi,bj,myThid)            CALL TIMEAVE_RESET(layers_VH_T, Nlayers,bi,bj,myThid)
170  #ifdef LAYERS_THICKNESS  #ifdef LAYERS_THICKNESS
171            CALL TIMEAVE_RESET(layers_Hs_T,Nlayers,bi,bj,myThid)            CALL TIMEAVE_RESET(layers_Hs_T, Nlayers,bi,bj,myThid)
172              CALL TIMEAVE_RESET(layers_PIs_T,Nlayers,bi,bj,myThid)
173              CALL TIMEAVE_RESET(layers_V_T,  Nlayers,bi,bj,myThid)
174  #endif /* LAYERS_THICKNESS */  #endif /* LAYERS_THICKNESS */
175  #endif /* LAYERS_VFLUX */  #endif /* LAYERS_VFLUX */
176    
177  #ifdef LAYERS_PRHO_REF  #ifdef LAYERS_PRHO_REF
178            IF (layers_num(1) .EQ. 3) THEN            IF ( layers_num(1).EQ.3 )
179            CALL TIMEAVE_RESET(prho_tave,Nr,bi,bj,myThid)       &    CALL TIMEAVE_RESET(prho_tave,Nr,bi,bj,myThid)
           ENDIF  
180  #endif /* LAYERS_PRHO_REF */  #endif /* LAYERS_PRHO_REF */
   
           layers_TimeAve(bi,bj) = 0.  
181           ENDDO           ENDDO
182          ENDDO          ENDDO
183    
# Line 244  C--   end of bloc: if time is a multiple Line 186  C--   end of bloc: if time is a multiple
186    
187        ENDIF        ENDIF
188  #endif /* ALLOW_TIMEAVE */  #endif /* ALLOW_TIMEAVE */
   
189  #endif /* ALLOW_LAYERS */  #endif /* ALLOW_LAYERS */
190    
191        RETURN        RETURN

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11

  ViewVC Help
Powered by ViewVC 1.1.22