/[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.2 - (show annotations) (download)
Wed Apr 6 18:41:03 2005 UTC (19 years, 2 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint57g_post, checkpoint57g_pre, checkpoint57f_post, checkpoint57h_pre, checkpoint57h_post
Changes since 1.1: +5 -5 lines
use baseTime as time origin ; DIFF_BASE_MULTIPLE replaces DIFFERENT_MULTIPLE

1 C $Header: /u/gcmpack/MITgcm/pkg/gmredi/gmredi_output.F,v 1.1 2005/01/04 00:14:34 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 !LOCAL VARIABLES:
43 C == Local variables ==
44 LOGICAL DIFF_BASE_MULTIPLE
45 EXTERNAL DIFF_BASE_MULTIPLE
46 INTEGER bi, bj, K
47 CHARACTER*(MAX_LEN_MBUF) suff
48
49
50 #if ( defined (GM_NON_UNITY_DIAGONAL) || defined (GM_EXTRA_DIAGONAL) )
51
52 IF ( DIFF_BASE_MULTIPLE(baseTime,diagFreq,myTime,deltaTClock)
53 & ) THEN
54 WRITE(suff,'(I10.10)') myIter
55 #ifdef GM_NON_UNITY_DIAGONAL
56 CALL WRITE_FLD_XYZ_RL( 'GM_Kux.',suff,Kux,myIter,myThid)
57 CALL WRITE_FLD_XYZ_RL( 'GM_Kvy.',suff,Kvy,myIter,myThid)
58 #endif
59 #ifdef GM_EXTRA_DIAGONAL
60 IF (GM_ExtraDiag) THEN
61 CALL WRITE_FLD_XYZ_RL( 'GM_Kuz.',suff,Kuz,myIter,myThid)
62 CALL WRITE_FLD_XYZ_RL( 'GM_Kvz.',suff,Kvz,myIter,myThid)
63 ENDIF
64 #endif
65 ENDIF
66
67 #endif /* GM_NON_UNITY_DIAGONAL || GM_EXTRA_DIAGONAL */
68
69
70 #ifdef ALLOW_TIMEAVE
71
72 C Dump files and restart average computation if needed
73 IF ( DIFF_BASE_MULTIPLE(baseTime,taveFreq,myTime,deltaTClock)
74 & ) THEN
75
76 C Normalize by integrated time
77 DO bj = myByLo(myThid), myByHi(myThid)
78 DO bi = myBxLo(myThid), myBxHi(myThid)
79 CALL TIMEAVE_NORMALIZ(GM_Kwx_T,GM_timeave, Nr,
80 & bi,bj,myThid)
81 CALL TIMEAVE_NORMALIZ(GM_Kwy_T,GM_timeave, Nr,
82 & bi,bj,myThid)
83 CALL TIMEAVE_NORMALIZ(GM_Kwz_T,GM_timeave, Nr,
84 & bi,bj,myThid)
85 #ifdef GM_VISBECK_VARIABLE_K
86 IF (GM_Visbeck_alpha.NE.0.)
87 & CALL TIMEAVE_NORMALIZ(Visbeck_K_T,GM_timeave, 1,
88 & bi,bj,myThid)
89 #endif
90 #ifdef GM_BOLUS_ADVEC
91 IF (GM_AdvForm) THEN
92 CALL TIMEAVE_NORMALIZ(GM_PsiXtave,GM_timeave, Nr,
93 & bi,bj,myThid)
94 CALL TIMEAVE_NORMALIZ(GM_PsiYtave,GM_timeave, Nr,
95 & bi,bj,myThid)
96 ENDIF
97 #endif
98 ENDDO
99 ENDDO
100
101 WRITE(suff,'(I10.10)') myIter
102
103 CALL WRITE_FLD_XYZ_RL('GM_Kwx-T.',suff,GM_Kwx_T,myIter,myThid)
104 CALL WRITE_FLD_XYZ_RL('GM_Kwy-T.',suff,GM_Kwy_T,myIter,myThid)
105 CALL WRITE_FLD_XYZ_RL('GM_Kwz-T.',suff,GM_Kwz_T,myIter,myThid)
106 #ifdef GM_VISBECK_VARIABLE_K
107 IF (GM_Visbeck_alpha.NE.0.)
108 & CALL WRITE_FLD_XY_RL('Visbeck_K-T.',suff,Visbeck_K_T,
109 & myIter,myThid)
110 #endif
111 #ifdef GM_BOLUS_ADVEC
112 IF (GM_AdvForm) THEN
113 CALL WRITE_FLD_XYZ_RL('GM_PsiXtave.',suff,GM_PsiXtave,
114 & myIter,myThid)
115 CALL WRITE_FLD_XYZ_RL('GM_PsiYtave.',suff,GM_PsiYtave,
116 & myIter,myThid)
117 ENDIF
118 #endif
119
120 C Reset averages to zero
121 DO bj = myByLo(myThid), myByHi(myThid)
122 DO bi = myBxLo(myThid), myBxHi(myThid)
123 CALL TIMEAVE_RESET(GM_Kwx_T,Nr,bi,bj,myThid)
124 CALL TIMEAVE_RESET(GM_Kwy_T,Nr,bi,bj,myThid)
125 CALL TIMEAVE_RESET(GM_Kwz_T,Nr,bi,bj,myThid)
126 #ifdef GM_VISBECK_VARIABLE_K
127 IF (GM_Visbeck_alpha.NE.0.)
128 & CALL TIMEAVE_RESET(Visbeck_K_T,1,bi,bj,myThid)
129 #endif
130 #ifdef GM_BOLUS_ADVEC
131 IF (GM_AdvForm) THEN
132 CALL TIMEAVE_RESET(GM_PsiXtave,Nr,bi,bj,myThid)
133 CALL TIMEAVE_RESET(GM_PsiYtave,Nr,bi,bj,myThid)
134 ENDIF
135 #endif
136 DO k=1,Nr
137 GM_TimeAve(k,bi,bj)=0.
138 ENDDO
139 ENDDO
140 ENDDO
141
142 ENDIF
143
144 #endif /* ALLOW_TIMEAVE */
145
146 #endif /* ALLOW_GMREDI */
147
148 RETURN
149 END

  ViewVC Help
Powered by ViewVC 1.1.22