/[MITgcm]/MITgcm/pkg/gmredi/gmredi_output.F
ViewVC logotype

Contents of /MITgcm/pkg/gmredi/gmredi_output.F

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


Revision 1.7 - (show annotations) (download)
Wed Jan 20 01:20:29 2010 UTC (14 years, 3 months ago) by jmc
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, checkpoint63p, checkpoint63q, checkpoint63r, checkpoint63s, checkpoint63l, checkpoint63m, checkpoint63n, checkpoint63o, checkpoint63h, checkpoint63i, checkpoint63j, checkpoint63k, checkpoint63d, checkpoint63e, checkpoint63f, checkpoint63g, checkpoint63a, checkpoint63b, checkpoint63c, checkpoint64, checkpoint65, checkpoint63, 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, checkpoint62c, checkpoint62b, checkpoint62g, checkpoint62f, checkpoint62e, checkpoint62d, checkpoint62k, checkpoint62j, checkpoint62i, checkpoint62h, checkpoint62o, checkpoint62n, checkpoint62m, checkpoint62l, checkpoint62s, checkpoint62r, checkpoint62q, checkpoint62p, checkpoint62w, checkpoint62v, checkpoint62u, checkpoint62t, checkpoint62z, checkpoint62y, checkpoint62x
Changes since 1.6: +4 -1 lines
avoid unused variables

1 C $Header: /u/gcmpack/MITgcm/pkg/gmredi/gmredi_output.F,v 1.6 2010/01/02 23:10:47 jmc Exp $
2 C $Name: $
3
4 #include "GMREDI_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: GMREDI_OUTPUT
8
9 C !INTERFACE:
10 SUBROUTINE GMREDI_OUTPUT( myTime, myIter, myThid )
11
12 C !DESCRIPTION: \bv
13 C *==========================================================*
14 C | SUBROUTINE GMREDI_OUTPUT
15 C | o general routine for GM/Redi 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 "GMREDI.h"
29 #include "GMREDI_TAVE.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_GMREDI
42 C !FUNCTIONS:
43 LOGICAL DIFFERENT_MULTIPLE
44 EXTERNAL DIFFERENT_MULTIPLE
45
46 C !LOCAL VARIABLES:
47 C == Local variables ==
48 #if ( defined (ALLOW_TIMEAVE) || \
49 defined (GM_NON_UNITY_DIAGONAL) || defined (GM_EXTRA_DIAGONAL) )
50 CHARACTER*(MAX_LEN_MBUF) suff
51 #endif
52 #ifdef ALLOW_TIMEAVE
53 INTEGER bi, bj
54 #endif
55 #ifdef ALLOW_MNC
56 CHARACTER*(1) pf
57 #endif
58
59 #if ( defined (GM_NON_UNITY_DIAGONAL) || defined (GM_EXTRA_DIAGONAL) )
60
61 IF ( DIFFERENT_MULTIPLE(diagFreq,myTime,deltaTClock)
62 & ) THEN
63
64 IF ( GM_MDSIO ) THEN
65 WRITE(suff,'(I10.10)') myIter
66 #ifdef GM_NON_UNITY_DIAGONAL
67 CALL WRITE_FLD_XYZ_RL( 'GM_Kux.',suff,Kux,myIter,myThid)
68 CALL WRITE_FLD_XYZ_RL( 'GM_Kvy.',suff,Kvy,myIter,myThid)
69 #endif
70 #ifdef GM_EXTRA_DIAGONAL
71 IF (GM_ExtraDiag) THEN
72 CALL WRITE_FLD_XYZ_RL( 'GM_Kuz.',suff,Kuz,myIter,myThid)
73 CALL WRITE_FLD_XYZ_RL( 'GM_Kvz.',suff,Kvz,myIter,myThid)
74 ENDIF
75 #endif
76 ENDIF
77
78 #ifdef ALLOW_MNC
79 IF ( GM_MNC ) THEN
80 IF ( writeBinaryPrec .EQ. precFloat64 ) THEN
81 pf(1:1) = 'D'
82 ELSE
83 pf(1:1) = 'R'
84 ENDIF
85 CALL MNC_CW_SET_UDIM('gm_inst', -1, myThid)
86 CALL MNC_CW_RL_W_S('D','gm_inst',0,0,'T',myTime,myThid)
87 CALL MNC_CW_SET_UDIM('gm_inst', 0, myThid)
88 CALL MNC_CW_I_W_S('I','gm_inst',0,0,'iter',myIter,myThid)
89 #ifdef GM_NON_UNITY_DIAGONAL
90 CALL MNC_CW_RL_W(pf,'gm_inst',0,0,'Kux',Kux,myThid)
91 CALL MNC_CW_RL_W(pf,'gm_inst',0,0,'Kvy',Kvy,myThid)
92 #endif
93 #ifdef GM_EXTRA_DIAGONAL
94 IF (GM_ExtraDiag) THEN
95 CALL MNC_CW_RL_W(pf,'gm_inst',0,0,'Kuz',Kuz,myThid)
96 CALL MNC_CW_RL_W(pf,'gm_inst',0,0,'Kvz',Kvz,myThid)
97 ENDIF
98 #endif
99 ENDIF
100 #endif
101
102 ENDIF
103
104 #endif /* GM_NON_UNITY_DIAGONAL || GM_EXTRA_DIAGONAL */
105
106
107 #ifdef ALLOW_TIMEAVE
108 C Dump files and restart average computation if needed
109 IF ( DIFFERENT_MULTIPLE( taveFreq, myTime, deltaTClock )
110 & ) THEN
111
112 C Normalize by integrated time
113 DO bj = myByLo(myThid), myByHi(myThid)
114 DO bi = myBxLo(myThid), myBxHi(myThid)
115 CALL TIMEAVE_NORMALIZE( GM_Kwx_T, GM_timeAve,
116 & Nr, bi, bj, myThid )
117 CALL TIMEAVE_NORMALIZE( GM_Kwy_T, GM_timeAve,
118 & Nr, bi, bj, myThid )
119 CALL TIMEAVE_NORMALIZE( GM_Kwz_T, GM_timeAve,
120 & Nr, bi, bj, myThid )
121 #ifdef GM_VISBECK_VARIABLE_K
122 IF (GM_Visbeck_alpha.NE.0.)
123 & CALL TIMEAVE_NORMALIZE( Visbeck_K_T, GM_timeAve,
124 & 1 , bi, bj, myThid )
125 #endif
126 #ifdef GM_BOLUS_ADVEC
127 IF (GM_AdvForm) THEN
128 CALL TIMEAVE_NORMALIZE( GM_PsiXtave, GM_timeAve,
129 & Nr, bi, bj, myThid )
130 CALL TIMEAVE_NORMALIZE( GM_PsiYtave, GM_timeAve,
131 & Nr, bi, bj, myThid )
132 ENDIF
133 #endif
134 ENDDO
135 ENDDO
136
137 IF ( GM_MDSIO ) THEN
138 WRITE(suff,'(I10.10)') myIter
139 CALL WRITE_FLD_XYZ_RL('GM_Kwx-T.',suff,GM_Kwx_T,myIter,myThid)
140 CALL WRITE_FLD_XYZ_RL('GM_Kwy-T.',suff,GM_Kwy_T,myIter,myThid)
141 CALL WRITE_FLD_XYZ_RL('GM_Kwz-T.',suff,GM_Kwz_T,myIter,myThid)
142 #ifdef GM_VISBECK_VARIABLE_K
143 IF (GM_Visbeck_alpha.NE.0.)
144 & CALL WRITE_FLD_XY_RL('Visbeck_K-T.',suff,Visbeck_K_T,
145 & myIter,myThid)
146 #endif
147 #ifdef GM_BOLUS_ADVEC
148 IF (GM_AdvForm) THEN
149 CALL WRITE_FLD_XYZ_RL('GM_PsiXtave.',suff,GM_PsiXtave,
150 & myIter,myThid)
151 CALL WRITE_FLD_XYZ_RL('GM_PsiYtave.',suff,GM_PsiYtave,
152 & myIter,myThid)
153 ENDIF
154 #endif
155 ENDIF
156
157 #ifdef ALLOW_MNC
158 IF ( GM_MNC ) THEN
159 IF ( writeBinaryPrec .EQ. precFloat64 ) THEN
160 pf(1:1) = 'D'
161 ELSE
162 pf(1:1) = 'R'
163 ENDIF
164 CALL MNC_CW_SET_UDIM('gm_tave', -1, myThid)
165 CALL MNC_CW_RL_W_S('D','gm_tave',0,0,'T',myTime,myThid)
166 CALL MNC_CW_SET_UDIM('gm_tave', 0, myThid)
167 CALL MNC_CW_I_W_S('I','gm_tave',0,0,'iter',myIter,myThid)
168 CALL MNC_CW_RL_W(pf,'gm_tave',0,0,'Kwx',GM_Kwx_T,myThid)
169 CALL MNC_CW_RL_W(pf,'gm_tave',0,0,'Kwy',GM_Kwy_T,myThid)
170 CALL MNC_CW_RL_W(pf,'gm_tave',0,0,'Kwz',GM_Kwz_T,myThid)
171 #ifdef GM_VISBECK_VARIABLE_K
172 IF (GM_Visbeck_alpha.NE.0.) THEN
173 CALL MNC_CW_RL_W(pf,'gm_tave',0,0,'VisbK',
174 & Visbeck_K_T, myThid)
175 ENDIF
176 #endif
177 #ifdef GM_BOLUS_ADVEC
178 IF (GM_AdvForm) THEN
179 CALL MNC_CW_RL_W(
180 & pf,'gm_tave',0,0,'PsiX', GM_PsiXtave, myThid)
181 CALL MNC_CW_RL_W(
182 & pf,'gm_tave',0,0,'PsiY', GM_PsiYtave, myThid)
183 ENDIF
184 #endif
185 ENDIF
186 #endif
187
188 C Reset averages to zero
189 DO bj = myByLo(myThid), myByHi(myThid)
190 DO bi = myBxLo(myThid), myBxHi(myThid)
191 CALL TIMEAVE_RESET( GM_Kwx_T, Nr, bi, bj, myThid )
192 CALL TIMEAVE_RESET( GM_Kwy_T, Nr, bi, bj, myThid )
193 CALL TIMEAVE_RESET( GM_Kwz_T, Nr, bi, bj, myThid )
194 #ifdef GM_VISBECK_VARIABLE_K
195 IF (GM_Visbeck_alpha.NE.0.)
196 & CALL TIMEAVE_RESET( Visbeck_K_T, 1, bi, bj, myThid )
197 #endif
198 #ifdef GM_BOLUS_ADVEC
199 IF (GM_AdvForm) THEN
200 CALL TIMEAVE_RESET( GM_PsiXtave, Nr, bi, bj, myThid )
201 CALL TIMEAVE_RESET( GM_PsiYtave, Nr, bi, bj, myThid )
202 ENDIF
203 #endif
204 GM_timeAve(bi,bj) = 0.
205 ENDDO
206 ENDDO
207
208 ENDIF
209 #endif /* ALLOW_TIMEAVE */
210
211 #endif /* ALLOW_GMREDI */
212
213 RETURN
214 END

  ViewVC Help
Powered by ViewVC 1.1.22