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

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

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


Revision 1.12 - (hide annotations) (download)
Fri Oct 19 18:01:45 2012 UTC (11 years, 7 months ago) by rpa
Branch: MAIN
CVS Tags: checkpoint64y, checkpoint64x, checkpoint64z, checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64w, checkpoint64v, checkpoint64i, checkpoint64h, checkpoint64k, checkpoint64j, checkpoint64m, checkpoint64l, checkpoint64o, checkpoint64n, checkpoint64a, checkpoint64c, checkpoint64b, checkpoint64e, checkpoint64d, checkpoint64g, checkpoint64f, checkpoint65, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint65z, checkpoint65x, checkpoint65y, checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65n, checkpoint65o, checkpoint65l, checkpoint65m, checkpoint65b, checkpoint65c, checkpoint65a, checkpoint65f, checkpoint65g, checkpoint65d, checkpoint65e
Changes since 1.11: +1 -9 lines
removed unnecessary tave variables

1 rpa 1.12 C $Header: /u/gcmpack/MITgcm/pkg/layers/layers_output.F,v 1.11 2012/10/18 19:51:14 jmc Exp $
2 rpa 1.1 C $Name: $
3    
4     #include "LAYERS_OPTIONS.h"
5    
6 jmc 1.4 CBOP 0
7     C !ROUTINE: LAYERS_OUTPUT
8    
9     C !INTERFACE:
10 rpa 1.1 SUBROUTINE LAYERS_OUTPUT( myTime, myIter, myThid )
11    
12     C !DESCRIPTION: \bv
13     C *==========================================================*
14     C | SUBROUTINE LAYERS_OUTPUT
15     C | o general routine for LAYERS output
16     C *==========================================================*
17     C | write time-average & snap-shot output
18     C *==========================================================*
19     C \ev
20    
21     C !USES:
22     IMPLICIT NONE
23    
24     C === Global variables ===
25     #include "SIZE.h"
26     #include "EEPARAMS.h"
27     #include "PARAMS.h"
28     #include "LAYERS_SIZE.h"
29     #include "LAYERS.h"
30    
31     C !INPUT PARAMETERS:
32     C == Routine arguments ==
33     C myTime :: Current time of simulation ( s )
34     C myIter :: Iteration number
35     C myThid :: my Thread Id number
36     _RL myTime
37     INTEGER myIter
38     INTEGER myThid
39     CEOP
40    
41     #ifdef ALLOW_LAYERS
42 jmc 1.11 #ifdef ALLOW_TIMEAVE
43 rpa 1.1 C !LOCAL VARIABLES:
44     C == Local variables ==
45     LOGICAL DIFFERENT_MULTIPLE
46     EXTERNAL DIFFERENT_MULTIPLE
47     CHARACTER*(MAX_LEN_MBUF) suff
48 gforget 1.8 INTEGER iLa
49 jmc 1.4 INTEGER bi, bj
50    
51     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
52 rpa 1.1
53 jmc 1.4 IF ( layers_taveFreq.GT.0. ) THEN
54 jmc 1.10 cgf layers_maxNum loop and dimension would be needed for
55     cgf the following and tave output to work beyond iLa=1
56     c DO iLa=1,layers_maxNum
57     iLa=1
58 rpa 1.1
59 dfer 1.3 c set arrays to zero if first timestep
60 jmc 1.4 IF ( myIter.EQ.nIter0 ) THEN
61     DO bj = myByLo(myThid), myByHi(myThid)
62     DO bi = myBxLo(myThid), myBxHi(myThid)
63 jmc 1.11 layers_TimeAve(bi,bj) = 0.
64 dfer 1.3 #ifdef LAYERS_UFLUX
65 jmc 1.11 CALL TIMEAVE_RESET(layers_UH_T, Nlayers,bi,bj,myThid)
66 dfer 1.3 #ifdef LAYERS_THICKNESS
67 jmc 1.11 CALL TIMEAVE_RESET(layers_Hw_T, Nlayers,bi,bj,myThid)
68 dfer 1.3 #endif /* LAYERS_THICKNESS */
69     #endif /* LAYERS_UFLUX */
70    
71     #ifdef LAYERS_VFLUX
72 jmc 1.11 CALL TIMEAVE_RESET(layers_VH_T, Nlayers,bi,bj,myThid)
73 dfer 1.3 #ifdef LAYERS_THICKNESS
74 jmc 1.11 CALL TIMEAVE_RESET(layers_Hs_T, Nlayers,bi,bj,myThid)
75 dfer 1.3 #endif /* LAYERS_THICKNESS */
76     #endif /* LAYERS_VFLUX */
77 jmc 1.11
78     #ifdef LAYERS_PRHO_REF
79     CALL TIMEAVE_RESET(prho_tave,Nr,bi,bj,myThid)
80     #endif /* LAYERS_PRHO_REF */
81 dfer 1.3 ENDDO
82     ENDDO
83    
84 rpa 1.1 C Dump files and restart average computation if needed
85 jmc 1.4 ELSEIF (
86 dfer 1.3 & DIFFERENT_MULTIPLE(layers_taveFreq,myTime,deltaTClock)
87 jmc 1.4 & ) THEN
88 rpa 1.1
89     C Normalize by integrated time
90 jmc 1.4 DO bj = myByLo(myThid), myByHi(myThid)
91     DO bi = myBxLo(myThid), myBxHi(myThid)
92 rpa 1.1
93     #ifdef LAYERS_UFLUX
94 jmc 1.11 CALL TIMEAVE_NORMALIZE( layers_UH_T, layers_TimeAve,
95 jmc 1.4 & Nlayers, bi, bj, myThid )
96 rpa 1.1 #ifdef LAYERS_THICKNESS
97 jmc 1.11 CALL TIMEAVE_NORMALIZE( layers_Hw_T, layers_TimeAve,
98 jmc 1.4 & Nlayers, bi, bj, myThid )
99 rpa 1.1 #endif /* LAYERS_THICKNESS */
100     #endif /* LAYERS_UFLUX */
101    
102     #ifdef LAYERS_VFLUX
103 jmc 1.11 CALL TIMEAVE_NORMALIZE( layers_VH_T, layers_TimeAve,
104 jmc 1.4 & Nlayers, bi, bj, myThid )
105 rpa 1.1 #ifdef LAYERS_THICKNESS
106 jmc 1.11 CALL TIMEAVE_NORMALIZE( layers_Hs_T, layers_TimeAve,
107 jmc 1.4 & Nlayers, bi, bj, myThid )
108 rpa 1.1 #endif /* LAYERS_THICKNESS */
109     #endif /* LAYERS_VFLUX */
110    
111 dfer 1.5 #ifdef LAYERS_PRHO_REF
112 jmc 1.10 IF ( layers_num(1).EQ.3 )
113 jmc 1.11 & CALL TIMEAVE_NORMALIZE( prho_tave, layers_TimeAve,
114 dfer 1.5 & Nr, bi, bj, myThid )
115     #endif /* LAYERS_PRHO_REF */
116    
117 jmc 1.4 ENDDO
118 rpa 1.1 ENDDO
119    
120 jmc 1.4 IF ( layers_MDSIO ) THEN
121 rpa 1.1 WRITE(suff,'(I10.10)') myIter
122     #ifdef LAYERS_UFLUX
123 rpa 1.9 CALL WRITE_FLD_3D_RL( 'layers_UH-tave.', suff, Nlayers,
124     & layers_UH_T, myIter, myThid )
125 rpa 1.1 #ifdef LAYERS_THICKNESS
126 rpa 1.9 CALL WRITE_FLD_3D_RL( 'layers_Hw-tave.', suff, Nlayers,
127     & layers_Hw_T, myIter, myThid )
128 rpa 1.1 #endif /* LAYERS_THICKNESS */
129     #endif /* LAYERS_UFLUX */
130     #ifdef LAYERS_VFLUX
131 rpa 1.9 CALL WRITE_FLD_3D_RL( 'layers_VH-tave.', suff, Nlayers,
132     & layers_VH_T, myIter, myThid )
133 rpa 1.1 #ifdef LAYERS_THICKNESS
134 rpa 1.9 CALL WRITE_FLD_3D_RL( 'layers_Hs-tave.', suff, Nlayers,
135     & layers_Hs_T, myIter, myThid )
136 rpa 1.1 #endif /* LAYERS_THICKNESS */
137     #endif /* LAYERS_VFLUX */
138 dfer 1.5
139     #ifdef LAYERS_PRHO_REF
140 jmc 1.10 IF ( layers_num(1).EQ.3 )
141     & CALL WRITE_FLD_3D_RL( 'layers_prho-tave.', suff, Nr,
142 dfer 1.5 & prho_tave, myIter, myThid )
143     #endif /* LAYERS_PRHO_REF */
144    
145 jmc 1.4 ENDIF
146 rpa 1.1
147 jmc 1.10 c#ifdef ALLOW_MNC
148 rpa 1.1 C Do MNC output.
149 jmc 1.10 c#endif
150 rpa 1.1
151     C Reset averages to zero
152 jmc 1.4 DO bj = myByLo(myThid), myByHi(myThid)
153     DO bi = myBxLo(myThid), myBxHi(myThid)
154 jmc 1.11 layers_TimeAve(bi,bj) = 0.
155 rpa 1.1 #ifdef LAYERS_UFLUX
156 jmc 1.11 CALL TIMEAVE_RESET(layers_UH_T, Nlayers,bi,bj,myThid)
157 rpa 1.1 #ifdef LAYERS_THICKNESS
158 jmc 1.11 CALL TIMEAVE_RESET(layers_Hw_T, Nlayers,bi,bj,myThid)
159 rpa 1.1 #endif /* LAYERS_THICKNESS */
160     #endif /* LAYERS_UFLUX */
161    
162     #ifdef LAYERS_VFLUX
163 jmc 1.11 CALL TIMEAVE_RESET(layers_VH_T, Nlayers,bi,bj,myThid)
164 rpa 1.1 #ifdef LAYERS_THICKNESS
165 jmc 1.11 CALL TIMEAVE_RESET(layers_Hs_T, Nlayers,bi,bj,myThid)
166 rpa 1.1 #endif /* LAYERS_THICKNESS */
167     #endif /* LAYERS_VFLUX */
168 dfer 1.5
169     #ifdef LAYERS_PRHO_REF
170 jmc 1.11 IF ( layers_num(1).EQ.3 )
171     & CALL TIMEAVE_RESET(prho_tave,Nr,bi,bj,myThid)
172 dfer 1.5 #endif /* LAYERS_PRHO_REF */
173 rpa 1.1 ENDDO
174     ENDDO
175 jmc 1.4
176     C-- end of bloc: if time is a multiple of layers_taveFreq
177     ENDIF
178 rpa 1.1
179     ENDIF
180     #endif /* ALLOW_TIMEAVE */
181     #endif /* ALLOW_LAYERS */
182    
183     RETURN
184     END

  ViewVC Help
Powered by ViewVC 1.1.22