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

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

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


Revision 1.1 - (hide annotations) (download)
Tue Jan 4 00:14:34 2005 UTC (19 years, 5 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint57d_post, checkpoint57c_pre, checkpoint57e_post, checkpoint57f_pre, eckpoint57e_pre, checkpoint57c_post
rename gmredi_diags.F -> gmredi_output.F (like ptracers_output.F) to
 be less confusing with diagnostics pkg stuff.

1 jmc 1.1 C $Header: /u/gcmpack/MITgcm/pkg/gmredi/gmredi_diags.F,v 1.7 2002/11/14 22:43:49 heimbach 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 DIFFERENT_MULTIPLE
45     EXTERNAL DIFFERENT_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 ( DIFFERENT_MULTIPLE(diagFreq,myTime,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 ( DIFFERENT_MULTIPLE(taveFreq,myTime,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