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

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

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


Revision 1.1 - (hide annotations) (download)
Fri Nov 22 17:17:03 2002 UTC (22 years, 7 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint47a_post, checkpoint47b_post
new aim pkg: adapted from Franco Molteni SPEEDY code, ver23

1 jmc 1.1 C $Header: $
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_DIAGS.h"
22     #include "com_physvar.h"
23    
24     LOGICAL DIFFERENT_MULTIPLE
25     EXTERNAL DIFFERENT_MULTIPLE
26    
27     C == Routine arguments ==
28     C bi,bj - Tile index
29     C myTime - Current time of simulation ( s )
30     C myIter - Current iteration number in simulation
31     C myThid - Number of this instance of the routine
32     INTEGER bi, bj, myIter, myThid
33     _RL myTime
34     CEndOfInterface
35    
36     #ifdef ALLOW_AIM
37    
38     C == Local variables ==
39     INTEGER I,J,I2,K
40     _RL DDTT
41     _RL aim_tendFreq, aim_diagFreq
42     CHARACTER*(MAX_LEN_MBUF) suff
43    
44     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
45    
46     aim_diagFreq = dumpFreq
47     aim_tendFreq = 0.
48    
49     c aim_diagFreq = 0.
50     c aim_diagFreq = deltaTClock
51     c aim_tendFreq = deltaTClock
52    
53     IF (
54     & DIFFERENT_MULTIPLE(aim_tendFreq,myTime+deltaTClock,myTime)
55     & ) THEN
56     WRITE(suff,'(I10.10)') myIter+1
57    
58     C-- Write Tendencies to files :
59     CALL AIM_WRITE_LOCAL('aim_dT_RSW.',suff,Nr,TT_RSW(1,1,myThid),
60     & bi,bj,1,myIter,myThid)
61     CALL AIM_WRITE_LOCAL('aim_dT_RLW.',suff,Nr,TT_RLW(1,1,myThid),
62     & bi,bj,1,myIter,myThid)
63     CALL AIM_WRITE_LOCAL('aim_dT_CNV.',suff,Nr,TT_CNV(1,1,myThid),
64     & bi,bj,1,myIter,myThid)
65     CALL AIM_WRITE_LOCAL('aim_dT_PBL.',suff,Nr,TT_PBL(1,1,myThid),
66     & bi,bj,1,myIter,myThid)
67     CALL AIM_WRITE_LOCAL('aim_dT_LSC.',suff,Nr,TT_LSC(1,1,myThid),
68     & bi,bj,1,myIter,myThid)
69     CALL AIM_WRITE_LOCAL('aim_dQ_CNV.',suff,Nr,QT_CNV(1,1,myThid),
70     & bi,bj,1,myIter,myThid)
71     CALL AIM_WRITE_LOCAL('aim_dQ_PBL.',suff,Nr,QT_PBL(1,1,myThid),
72     & bi,bj,1,myIter,myThid)
73     CALL AIM_WRITE_LOCAL('aim_dQ_LSC.',suff,Nr,QT_LSC(1,1,myThid),
74     & bi,bj,1,myIter,myThid)
75     ENDIF
76    
77     IF (
78     & DIFFERENT_MULTIPLE(aim_diagFreq,myTime+deltaTClock,myTime)
79     & ) THEN
80     WRITE(suff,'(I10.10)') myIter+1
81    
82     C-- Write Relative Humidity :
83     CALL AIM_WRITE_LOCAL('aim_RelHum.',suff,Nr,RH(1,1,myThid),
84     & bi,bj,1,myIter,myThid)
85    
86     C-- Write AIM Physics diagnostics (2D, all in 1 file) :
87     CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,DRAG(1,3,myThid),
88     & bi,bj, 1,myIter,myThid)
89     CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,SPEED0(1,myThid),
90     & bi,bj, 2,myIter,myThid)
91     CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,TSR(1,myThid),
92     & bi,bj, 3,myIter,myThid)
93     CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,OLR(1,myThid),
94     & bi,bj, 4,myIter,myThid)
95     CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,SSR(1,myThid),
96     & bi,bj, 5,myIter,myThid)
97     CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,SLR(1,myThid),
98     & bi,bj, 6,myIter,myThid)
99     CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,SHF(1,3,myThid),
100     & bi,bj, 7,myIter,myThid)
101     CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,EVAP(1,3,myThid),
102     & bi,bj, 8,myIter,myThid)
103     CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,PRECNV(1,myThid),
104     & bi,bj, 9,myIter,myThid)
105     CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,PRECLS(1,myThid),
106     & bi,bj,10,myIter,myThid)
107     CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,CLOUDC(1,myThid),
108     & bi,bj,11,myIter,myThid)
109     CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,CLTOP(1,myThid),
110     & bi,bj,12,myIter,myThid)
111     CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,CBMF(1,myThid),
112     & bi,bj,13,myIter,myThid)
113     CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,T0(1,myThid),
114     & bi,bj,14,myIter,myThid)
115     CALL AIM_WRITE_LOCAL('aimPhyDiag.',suff,1,Q0(1,myThid),
116     & bi,bj,15,myIter,myThid)
117     C--
118     ENDIF
119    
120     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
121    
122     #ifdef ALLOW_TIMEAVE
123    
124     IF (taveFreq.GT.0.) THEN
125    
126     DDTT = deltaTclock
127    
128     DO J=1,sNy
129     DO I=1,sNx
130     I2 = I+(J-1)*sNx
131     TSRtave(i,j,bi,bj) = TSRtave(i,j,bi,bj)
132     & + TSR(I2,myThid)*DDTT
133     OLRtave(i,j,bi,bj) = OLRtave(i,j,bi,bj)
134     & + OLR(I2,myThid)*DDTT
135     SSRtave(i,j,bi,bj) = SSRtave(i,j,bi,bj)
136     & + SSR(I2,myThid)*DDTT
137     SLRtave(i,j,bi,bj) = SLRtave(i,j,bi,bj)
138     & + SLR(I2,myThid)*DDTT
139     SHFtave(i,j,bi,bj) = SHFtave(i,j,bi,bj)
140     & + SHF(I2,3,myThid)*DDTT
141     EVAPtave(i,j,bi,bj) = EVAPtave(i,j,bi,bj)
142     & + EVAP(I2,3,myThid)*DDTT
143     PRECNVtave(i,j,bi,bj) = PRECNVtave(i,j,bi,bj)
144     & + PRECNV(I2,myThid)*DDTT
145     PRECLStave(i,j,bi,bj) = PRECLStave(i,j,bi,bj)
146     & + PRECLS(I2,myThid)*DDTT
147     CLOUDCtave(i,j,bi,bj) = CLOUDCtave(i,j,bi,bj)
148     & + CLOUDC(I2,myThid)*DDTT
149     ENDDO
150     ENDDO
151    
152     C- Keep record of how much time has been integrated over
153     DO K=1,Nr
154     AIM_TimeAve(k,bi,bj)=AIM_TimeAve(k,bi,bj)+DDTT
155     ENDDO
156    
157     ENDIF
158    
159     #endif /* ALLOW_TIMEAVE */
160    
161     #endif /* ALLOW_AIM */
162    
163     RETURN
164     END

  ViewVC Help
Powered by ViewVC 1.1.22