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

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

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


Revision 1.12 - (show 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 C $Header: /u/gcmpack/MITgcm/pkg/layers/layers_output.F,v 1.11 2012/10/18 19:51:14 jmc Exp $
2 C $Name: $
3
4 #include "LAYERS_OPTIONS.h"
5
6 CBOP 0
7 C !ROUTINE: LAYERS_OUTPUT
8
9 C !INTERFACE:
10 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 #ifdef ALLOW_TIMEAVE
43 C !LOCAL VARIABLES:
44 C == Local variables ==
45 LOGICAL DIFFERENT_MULTIPLE
46 EXTERNAL DIFFERENT_MULTIPLE
47 CHARACTER*(MAX_LEN_MBUF) suff
48 INTEGER iLa
49 INTEGER bi, bj
50
51 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
52
53 IF ( layers_taveFreq.GT.0. ) THEN
54 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
59 c set arrays to zero if first timestep
60 IF ( myIter.EQ.nIter0 ) THEN
61 DO bj = myByLo(myThid), myByHi(myThid)
62 DO bi = myBxLo(myThid), myBxHi(myThid)
63 layers_TimeAve(bi,bj) = 0.
64 #ifdef LAYERS_UFLUX
65 CALL TIMEAVE_RESET(layers_UH_T, Nlayers,bi,bj,myThid)
66 #ifdef LAYERS_THICKNESS
67 CALL TIMEAVE_RESET(layers_Hw_T, Nlayers,bi,bj,myThid)
68 #endif /* LAYERS_THICKNESS */
69 #endif /* LAYERS_UFLUX */
70
71 #ifdef LAYERS_VFLUX
72 CALL TIMEAVE_RESET(layers_VH_T, Nlayers,bi,bj,myThid)
73 #ifdef LAYERS_THICKNESS
74 CALL TIMEAVE_RESET(layers_Hs_T, Nlayers,bi,bj,myThid)
75 #endif /* LAYERS_THICKNESS */
76 #endif /* LAYERS_VFLUX */
77
78 #ifdef LAYERS_PRHO_REF
79 CALL TIMEAVE_RESET(prho_tave,Nr,bi,bj,myThid)
80 #endif /* LAYERS_PRHO_REF */
81 ENDDO
82 ENDDO
83
84 C Dump files and restart average computation if needed
85 ELSEIF (
86 & DIFFERENT_MULTIPLE(layers_taveFreq,myTime,deltaTClock)
87 & ) THEN
88
89 C Normalize by integrated time
90 DO bj = myByLo(myThid), myByHi(myThid)
91 DO bi = myBxLo(myThid), myBxHi(myThid)
92
93 #ifdef LAYERS_UFLUX
94 CALL TIMEAVE_NORMALIZE( layers_UH_T, layers_TimeAve,
95 & Nlayers, bi, bj, myThid )
96 #ifdef LAYERS_THICKNESS
97 CALL TIMEAVE_NORMALIZE( layers_Hw_T, layers_TimeAve,
98 & Nlayers, bi, bj, myThid )
99 #endif /* LAYERS_THICKNESS */
100 #endif /* LAYERS_UFLUX */
101
102 #ifdef LAYERS_VFLUX
103 CALL TIMEAVE_NORMALIZE( layers_VH_T, layers_TimeAve,
104 & Nlayers, bi, bj, myThid )
105 #ifdef LAYERS_THICKNESS
106 CALL TIMEAVE_NORMALIZE( layers_Hs_T, layers_TimeAve,
107 & Nlayers, bi, bj, myThid )
108 #endif /* LAYERS_THICKNESS */
109 #endif /* LAYERS_VFLUX */
110
111 #ifdef LAYERS_PRHO_REF
112 IF ( layers_num(1).EQ.3 )
113 & CALL TIMEAVE_NORMALIZE( prho_tave, layers_TimeAve,
114 & Nr, bi, bj, myThid )
115 #endif /* LAYERS_PRHO_REF */
116
117 ENDDO
118 ENDDO
119
120 IF ( layers_MDSIO ) THEN
121 WRITE(suff,'(I10.10)') myIter
122 #ifdef LAYERS_UFLUX
123 CALL WRITE_FLD_3D_RL( 'layers_UH-tave.', suff, Nlayers,
124 & layers_UH_T, myIter, myThid )
125 #ifdef LAYERS_THICKNESS
126 CALL WRITE_FLD_3D_RL( 'layers_Hw-tave.', suff, Nlayers,
127 & layers_Hw_T, myIter, myThid )
128 #endif /* LAYERS_THICKNESS */
129 #endif /* LAYERS_UFLUX */
130 #ifdef LAYERS_VFLUX
131 CALL WRITE_FLD_3D_RL( 'layers_VH-tave.', suff, Nlayers,
132 & layers_VH_T, myIter, myThid )
133 #ifdef LAYERS_THICKNESS
134 CALL WRITE_FLD_3D_RL( 'layers_Hs-tave.', suff, Nlayers,
135 & layers_Hs_T, myIter, myThid )
136 #endif /* LAYERS_THICKNESS */
137 #endif /* LAYERS_VFLUX */
138
139 #ifdef LAYERS_PRHO_REF
140 IF ( layers_num(1).EQ.3 )
141 & CALL WRITE_FLD_3D_RL( 'layers_prho-tave.', suff, Nr,
142 & prho_tave, myIter, myThid )
143 #endif /* LAYERS_PRHO_REF */
144
145 ENDIF
146
147 c#ifdef ALLOW_MNC
148 C Do MNC output.
149 c#endif
150
151 C Reset averages to zero
152 DO bj = myByLo(myThid), myByHi(myThid)
153 DO bi = myBxLo(myThid), myBxHi(myThid)
154 layers_TimeAve(bi,bj) = 0.
155 #ifdef LAYERS_UFLUX
156 CALL TIMEAVE_RESET(layers_UH_T, Nlayers,bi,bj,myThid)
157 #ifdef LAYERS_THICKNESS
158 CALL TIMEAVE_RESET(layers_Hw_T, Nlayers,bi,bj,myThid)
159 #endif /* LAYERS_THICKNESS */
160 #endif /* LAYERS_UFLUX */
161
162 #ifdef LAYERS_VFLUX
163 CALL TIMEAVE_RESET(layers_VH_T, Nlayers,bi,bj,myThid)
164 #ifdef LAYERS_THICKNESS
165 CALL TIMEAVE_RESET(layers_Hs_T, Nlayers,bi,bj,myThid)
166 #endif /* LAYERS_THICKNESS */
167 #endif /* LAYERS_VFLUX */
168
169 #ifdef LAYERS_PRHO_REF
170 IF ( layers_num(1).EQ.3 )
171 & CALL TIMEAVE_RESET(prho_tave,Nr,bi,bj,myThid)
172 #endif /* LAYERS_PRHO_REF */
173 ENDDO
174 ENDDO
175
176 C-- end of bloc: if time is a multiple of layers_taveFreq
177 ENDIF
178
179 ENDIF
180 #endif /* ALLOW_TIMEAVE */
181 #endif /* ALLOW_LAYERS */
182
183 RETURN
184 END

  ViewVC Help
Powered by ViewVC 1.1.22