/[MITgcm]/MITgcm/pkg/aim_v23/aim_diagnostics.F
ViewVC logotype

Contents of /MITgcm/pkg/aim_v23/aim_diagnostics.F

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


Revision 1.3 - (show annotations) (download)
Fri Jan 3 03:51:27 2003 UTC (21 years, 5 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint51k_post, checkpoint52l_pre, hrcube4, hrcube5, checkpoint50c_post, checkpoint52d_pre, checkpoint48e_post, checkpoint50c_pre, checkpoint52j_pre, checkpoint51o_pre, checkpoint51l_post, checkpoint48i_post, checkpoint50d_pre, checkpoint52k_post, checkpoint51, checkpoint50, checkpoint52, checkpoint50d_post, checkpoint52f_post, checkpoint50b_pre, checkpoint51f_post, checkpoint48b_post, checkpoint51d_post, checkpoint48c_pre, checkpoint51t_post, checkpoint51n_post, checkpoint52i_pre, hrcube_1, hrcube_2, hrcube_3, checkpoint51s_post, checkpoint48d_pre, checkpoint51j_post, checkpoint47i_post, checkpoint52e_pre, checkpoint52e_post, checkpoint51n_pre, checkpoint48d_post, checkpoint48f_post, checkpoint52b_pre, checkpoint51l_pre, checkpoint48h_post, checkpoint51q_post, checkpoint51b_pre, checkpoint47g_post, checkpoint52b_post, checkpoint52c_post, checkpoint51h_pre, checkpoint48a_post, checkpoint50f_post, checkpoint50a_post, checkpoint50f_pre, checkpoint52f_pre, checkpoint47j_post, branchpoint-genmake2, checkpoint51r_post, checkpoint48c_post, checkpoint51i_post, checkpoint51b_post, checkpoint51c_post, checkpoint52d_post, checkpoint50g_post, checkpoint52a_pre, checkpoint50h_post, checkpoint52i_post, checkpoint50e_pre, checkpoint50i_post, checkpoint51i_pre, checkpoint52h_pre, checkpoint52j_post, checkpoint50e_post, branch-netcdf, checkpoint51e_post, checkpoint48, checkpoint49, checkpoint51o_post, checkpoint51f_pre, checkpoint47h_post, checkpoint52a_post, checkpoint51g_post, ecco_c52_e35, checkpoint50b_post, checkpoint51m_post, checkpoint51a_post, checkpoint51p_post, checkpoint48g_post, checkpoint51u_post
Branch point for: branch-genmake2, branch-nonh, tg2-branch, netcdf-sm0, checkpoint51n_branch
Changes since 1.2: +30 -6 lines
 time-average AIM output: become independent from statvars time-average
  (can be used with #undef ALLOW_TIMEAVE) ; add new variables (e.g., RH)

1 C $Header: /u/gcmpack/MITgcm/pkg/aim_v23/aim_diagnostics.F,v 1.2 2002/12/10 02:35:27 jmc Exp $
2 C $Name: $
3
4 #include "AIM_OPTIONS.h"
5
6 CStartOfInterFace
7 SUBROUTINE AIM_DIAGNOSTICS( bi,bj, myTime, myIter, myThid )
8 C *==========================================================*
9 C | SUBROUTINE AIM_DIAGNOSTICS
10 C | o Calculate AIM diagnostics
11 C *==========================================================*
12 IMPLICIT NONE
13
14 C === Global variables ===
15 C-- size for MITgcm & Physics package :
16 #include "AIM_SIZE.h"
17
18 #include "EEPARAMS.h"
19 #include "PARAMS.h"
20
21 #include "AIM_PARAMS.h"
22 #include "AIM_DIAGS.h"
23 #include "com_physvar.h"
24
25 LOGICAL DIFFERENT_MULTIPLE
26 EXTERNAL DIFFERENT_MULTIPLE
27
28 C == Routine arguments ==
29 C bi,bj - Tile index
30 C myTime - Current time of simulation ( s )
31 C myIter - Current iteration number in simulation
32 C myThid - Number of this instance of the routine
33 INTEGER bi, bj, myIter, myThid
34 _RL myTime
35 CEndOfInterface
36
37 #ifdef ALLOW_AIM
38
39 C == Local variables ==
40 INTEGER I,J,K, I2,Katm
41 _RL DDTT
42 CHARACTER*(MAX_LEN_MBUF) suff
43
44 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
45
46 IF (
47 & DIFFERENT_MULTIPLE(aim_tendFreq,myTime+deltaTClock,myTime)
48 & ) THEN
49 WRITE(suff,'(I10.10)') myIter+1
50
51 C-- Write Tendencies to files :
52 CALL AIM_WRITE_LOCAL('aim_dT_RSW.',suff,Nr,TT_RSW(1,1,myThid),
53 & bi,bj,1,myIter,myThid)
54 CALL AIM_WRITE_LOCAL('aim_dT_RLW.',suff,Nr,TT_RLW(1,1,myThid),
55 & bi,bj,1,myIter,myThid)
56 CALL AIM_WRITE_LOCAL('aim_dT_CNV.',suff,Nr,TT_CNV(1,1,myThid),
57 & bi,bj,1,myIter,myThid)
58 CALL AIM_WRITE_LOCAL('aim_dT_PBL.',suff,Nr,TT_PBL(1,1,myThid),
59 & bi,bj,1,myIter,myThid)
60 CALL AIM_WRITE_LOCAL('aim_dT_LSC.',suff,Nr,TT_LSC(1,1,myThid),
61 & bi,bj,1,myIter,myThid)
62 CALL AIM_WRITE_LOCAL('aim_dQ_CNV.',suff,Nr,QT_CNV(1,1,myThid),
63 & bi,bj,1,myIter,myThid)
64 CALL AIM_WRITE_LOCAL('aim_dQ_PBL.',suff,Nr,QT_PBL(1,1,myThid),
65 & bi,bj,1,myIter,myThid)
66 CALL AIM_WRITE_LOCAL('aim_dQ_LSC.',suff,Nr,QT_LSC(1,1,myThid),
67 & bi,bj,1,myIter,myThid)
68 ENDIF
69
70 IF (
71 & DIFFERENT_MULTIPLE(aim_diagFreq,myTime+deltaTClock,myTime)
72 & ) THEN
73 WRITE(suff,'(I10.10)') myIter+1
74
75 C-- Write Relative Humidity :
76 CALL AIM_WRITE_LOCAL('aim_RelHum.',suff,Nr,RH(1,1,myThid),
77 & bi,bj,1,myIter,myThid)
78
79 C-- Write AIM Physics diagnostics (2D, all in 1 file) :
80 CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,DRAG(1,3,myThid),
81 & bi,bj, 1,myIter,myThid)
82 CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,SPEED0(1,myThid),
83 & bi,bj, 2,myIter,myThid)
84 CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,TSR(1,myThid),
85 & bi,bj, 3,myIter,myThid)
86 CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,OLR(1,myThid),
87 & bi,bj, 4,myIter,myThid)
88 CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,SSR(1,myThid),
89 & bi,bj, 5,myIter,myThid)
90 CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,SLR(1,myThid),
91 & bi,bj, 6,myIter,myThid)
92 CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,SHF(1,3,myThid),
93 & bi,bj, 7,myIter,myThid)
94 CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,EVAP(1,3,myThid),
95 & bi,bj, 8,myIter,myThid)
96 CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,PRECNV(1,myThid),
97 & bi,bj, 9,myIter,myThid)
98 CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,PRECLS(1,myThid),
99 & bi,bj,10,myIter,myThid)
100 CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,CLOUDC(1,myThid),
101 & bi,bj,11,myIter,myThid)
102 CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,CLTOP(1,myThid),
103 & bi,bj,12,myIter,myThid)
104 CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,CBMF(1,myThid),
105 & bi,bj,13,myIter,myThid)
106 CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,T0(1,myThid),
107 & bi,bj,14,myIter,myThid)
108 CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,Q0(1,myThid),
109 & bi,bj,15,myIter,myThid)
110 C--
111 ENDIF
112
113 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
114
115 #ifdef ALLOW_AIM_TAVE
116
117 IF (aim_taveFreq.GT.0.) THEN
118
119 DDTT = deltaTclock
120
121 DO J=1,sNy
122 DO I=1,sNx
123 I2 = I+(J-1)*sNx
124 TSRtave(i,j,bi,bj) = TSRtave(i,j,bi,bj)
125 & + TSR(I2,myThid)*DDTT
126 OLRtave(i,j,bi,bj) = OLRtave(i,j,bi,bj)
127 & + OLR(I2,myThid)*DDTT
128 SSRtave(i,j,bi,bj) = SSRtave(i,j,bi,bj)
129 & + SSR(I2,myThid)*DDTT
130 SLRtave(i,j,bi,bj) = SLRtave(i,j,bi,bj)
131 & + SLR(I2,myThid)*DDTT
132 SHFtave(i,j,bi,bj) = SHFtave(i,j,bi,bj)
133 & + SHF(I2,3,myThid)*DDTT
134 EVAPtave(i,j,bi,bj) = EVAPtave(i,j,bi,bj)
135 & + EVAP(I2,3,myThid)*DDTT
136 PRECNVtave(i,j,bi,bj) = PRECNVtave(i,j,bi,bj)
137 & + PRECNV(I2,myThid)*DDTT
138 PRECLStave(i,j,bi,bj) = PRECLStave(i,j,bi,bj)
139 & + PRECLS(I2,myThid)*DDTT
140 CLOUDCtave(i,j,bi,bj) = CLOUDCtave(i,j,bi,bj)
141 & + CLOUDC(I2,myThid)*DDTT
142 CLTOPtave(i,j,bi,bj) = CLTOPtave(i,j,bi,bj)
143 & + CLTOP(I2,myThid)*DDTT
144 CBMFtave(i,j,bi,bj) = CBMFtave(i,j,bi,bj)
145 & + CBMF(I2,myThid)*DDTT
146 DRAGtave(i,j,bi,bj) = DRAGtave(i,j,bi,bj)
147 & + DRAG(I2,3,myThid)*DDTT
148 aimV0tave(i,j,bi,bj) = aimV0tave(i,j,bi,bj)
149 & + SPEED0(I2,myThid)*DDTT
150 aimT0tave(i,j,bi,bj) = aimT0tave(i,j,bi,bj)
151 & + T0(I2,myThid)*DDTT
152 aimQ0tave(i,j,bi,bj) = aimQ0tave(i,j,bi,bj)
153 & + Q0(I2,myThid)*DDTT
154 ENDDO
155 ENDDO
156
157 C- Relative Humidity :
158 DO k=1,Nr
159 Katm = _KD2KA( k )
160 DO j=1,sNy
161 DO i=1,sNx
162 I2 = i+(j-1)*sNx
163 aimRHtave(i,j,k,bi,bj) = aimRHtave(i,j,k,bi,bj)
164 & + RH(I2,Katm,myThid)*DDTT
165 ENDDO
166 ENDDO
167 ENDDO
168
169 C- Keep record of how much time has been integrated over
170 DO K=1,Nr
171 aim_timeAve(k,bi,bj)=aim_timeAve(k,bi,bj)+DDTT
172 ENDDO
173
174 ENDIF
175
176 #endif /* ALLOW_AIM_TAVE */
177
178 #endif /* ALLOW_AIM */
179
180 RETURN
181 END

  ViewVC Help
Powered by ViewVC 1.1.22