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

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

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


Revision 1.6 - (show annotations) (download)
Sun Dec 16 18:54:49 2001 UTC (22 years, 5 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint46n_post, checkpoint43a-release1mods, checkpoint44h_pre, checkpoint46j_post, checkpoint46i_post, checkpoint44f_pre, checkpoint46f_post, checkpoint46d_pre, checkpoint46e_post, release1-branch_tutorials, checkpoint46c_post, checkpoint44g_post, checkpoint46h_pre, checkpoint44h_post, checkpoint44e_post, checkpoint46k_post, checkpoint46e_pre, checkpoint45d_post, checkpoint46j_pre, checkpoint45b_post, checkpoint46b_pre, checkpoint46l_post, chkpt44a_pre, release1-branch-end, release1_final_v1, checkpoint46, checkpoint44, checkpoint44f_post, checkpoint46l_pre, checkpoint44b_post, chkpt44c_post, chkpt44d_post, checkpoint46g_pre, checkpoint46a_post, chkpt44a_post, checkpoint44b_pre, checkpoint46m_post, checkpoint46a_pre, checkpoint45c_post, checkpoint44e_pre, checkpoint46b_post, checkpoint46d_post, checkpoint46g_post, checkpoint45a_post, checkpoint46c_pre, release1-branch_branchpoint, checkpoint45, checkpoint46h_post, chkpt44c_pre
Branch point for: release1_final, release1-branch
Changes since 1.5: +51 -7 lines
Modification to the GMREDI package :
 change units of tensor-K arrays, scale now like diffusivity
 initialise all common block arrays in S/R gmredi_init
 add option to use different isopycnal(Redi) & GM diffusivity
 add option to use the advective GM form or the skew-flux form (=default)
 bug in non_unity_diagonal part fixed.

1 C $Header: /u/gcmpack/models/MITgcmUV/pkg/gmredi/gmredi_diags.F,v 1.5 2001/03/06 18:01:07 jmc Exp $
2 C $Name: $
3
4 #include "GMREDI_OPTIONS.h"
5
6 CStartOfInterface
7 SUBROUTINE GMREDI_DIAGS( myTime, myIter, myThid )
8 C /==========================================================\
9 C | SUBROUTINE GMREDI_DIAGS |
10 C | o Do GM/Redi diagnostic output |
11 C |==========================================================|
12 C \==========================================================/
13 IMPLICIT NONE
14
15 C === Global variables ===
16 #include "SIZE.h"
17 #include "EEPARAMS.h"
18 #include "PARAMS.h"
19 #include "GMREDI.h"
20 #include "GMREDI_DIAGS.h"
21
22 C == Routine arguments ==
23 C myTime - Current time of simulation ( s )
24 C myIter - Iteration number
25 C myThid - Number of this instance of INI_FORCING
26 _RL myTime
27 INTEGER myIter
28 INTEGER myThid
29 CEndOfInterface
30
31 #ifdef ALLOW_GMREDI
32
33 C == Local variables ==
34 LOGICAL DIFFERENT_MULTIPLE
35 EXTERNAL DIFFERENT_MULTIPLE
36 INTEGER bi, bj, K
37 CHARACTER*(MAX_LEN_MBUF) suff
38
39
40 #if ( defined (GM_NON_UNITY_DIAGONAL) || defined (GM_EXTRA_DIAGONAL) )
41
42 IF ( DIFFERENT_MULTIPLE(diagFreq,myTime,myTime-deltaTClock)
43 & ) THEN
44 WRITE(suff,'(I10.10)') myIter
45 #ifdef GM_NON_UNITY_DIAGONAL
46 CALL WRITE_FLD_XYZ_RL( 'GM_Kux.',suff,Kux,myIter,myThid)
47 CALL WRITE_FLD_XYZ_RL( 'GM_Kvy.',suff,Kvy,myIter,myThid)
48 #endif
49 #ifdef GM_EXTRA_DIAGONAL
50 IF (GM_ExtraDiag) THEN
51 CALL WRITE_FLD_XYZ_RL( 'GM_Kuz.',suff,Kuz,myIter,myThid)
52 CALL WRITE_FLD_XYZ_RL( 'GM_Kvz.',suff,Kvz,myIter,myThid)
53 ENDIF
54 #endif
55 ENDIF
56
57 #endif /* GM_NON_UNITY_DIAGONAL || GM_EXTRA_DIAGONAL */
58
59
60 #ifdef ALLOW_TIMEAVE
61
62 C Dump files and restart average computation if needed
63 IF ( DIFFERENT_MULTIPLE(taveFreq,myTime,myTime-deltaTClock)
64 & ) THEN
65
66 C Normalize by integrated time
67 DO bj = myByLo(myThid), myByHi(myThid)
68 DO bi = myBxLo(myThid), myBxHi(myThid)
69 CALL TIMEAVE_NORMALIZ(GM_Kwx_T,GM_timeave, Nr,
70 & bi,bj,myThid)
71 CALL TIMEAVE_NORMALIZ(GM_Kwy_T,GM_timeave, Nr,
72 & bi,bj,myThid)
73 CALL TIMEAVE_NORMALIZ(GM_Kwz_T,GM_timeave, Nr,
74 & bi,bj,myThid)
75 #ifdef GM_VISBECK_VARIABLE_K
76 IF (GM_Visbeck_alpha.NE.0.)
77 & CALL TIMEAVE_NORMALIZ(Visbeck_K_T,GM_timeave, 1,
78 & bi,bj,myThid)
79 #endif
80 #ifdef GM_BOLUS_ADVEC
81 IF (GM_AdvForm) THEN
82 CALL TIMEAVE_NORMALIZ(GM_PsiXtave,GM_timeave, Nr,
83 & bi,bj,myThid)
84 CALL TIMEAVE_NORMALIZ(GM_PsiYtave,GM_timeave, Nr,
85 & bi,bj,myThid)
86 ENDIF
87 #endif
88 ENDDO
89 ENDDO
90
91 WRITE(suff,'(I10.10)') myIter
92
93 CALL WRITE_FLD_XYZ_RL('GM_Kwx-T.',suff,GM_Kwx_T,myIter,myThid)
94 CALL WRITE_FLD_XYZ_RL('GM_Kwy-T.',suff,GM_Kwy_T,myIter,myThid)
95 CALL WRITE_FLD_XYZ_RL('GM_Kwz-T.',suff,GM_Kwz_T,myIter,myThid)
96 #ifdef GM_VISBECK_VARIABLE_K
97 IF (GM_Visbeck_alpha.NE.0.)
98 & CALL WRITE_FLD_XY_RL('Visbeck_K-T.',suff,Visbeck_K_T,
99 & myIter,myThid)
100 #endif
101 #ifdef GM_BOLUS_ADVEC
102 IF (GM_AdvForm) THEN
103 CALL WRITE_FLD_XYZ_RL('GM_PsiXtave.',suff,GM_PsiXtave,
104 & myIter,myThid)
105 CALL WRITE_FLD_XYZ_RL('GM_PsiYtave.',suff,GM_PsiYtave,
106 & myIter,myThid)
107 ENDIF
108 #endif
109
110 C Reset averages to zero
111 DO bj = myByLo(myThid), myByHi(myThid)
112 DO bi = myBxLo(myThid), myBxHi(myThid)
113 CALL TIMEAVE_RESET(GM_Kwx_T,Nr,bi,bj,myThid)
114 CALL TIMEAVE_RESET(GM_Kwy_T,Nr,bi,bj,myThid)
115 CALL TIMEAVE_RESET(GM_Kwz_T,Nr,bi,bj,myThid)
116 #ifdef GM_VISBECK_VARIABLE_K
117 IF (GM_Visbeck_alpha.NE.0.)
118 & CALL TIMEAVE_RESET(Visbeck_K_T,1,bi,bj,myThid)
119 #endif
120 #ifdef GM_BOLUS_ADVEC
121 IF (GM_AdvForm) THEN
122 CALL TIMEAVE_RESET(GM_PsiXtave,Nr,bi,bj,myThid)
123 CALL TIMEAVE_RESET(GM_PsiYtave,Nr,bi,bj,myThid)
124 ENDIF
125 #endif
126 DO k=1,Nr
127 GM_TimeAve(k,bi,bj)=0.
128 ENDDO
129 ENDDO
130 ENDDO
131
132 ENDIF
133
134 #endif /* ALLOW_TIMEAVE */
135
136 #endif /* ALLOW_GMREDI */
137
138 RETURN
139 END

  ViewVC Help
Powered by ViewVC 1.1.22