/[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.2 - (hide annotations) (download)
Tue Dec 10 02:35:27 2002 UTC (21 years, 6 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint47e_post, checkpoint47d_pre, checkpoint47d_post, branch-exfmods-tag, checkpoint47f_post
Branch point for: branch-exfmods-curt
Changes since 1.1: +2 -9 lines
allow to use AIM physics with SPEEDY input files (from Franco Molteni):
 surface Boundary-Conditions are computed in (new) S/R aim_surf_bc.F.
can still use monthly mean (NCEP) surface forcing (with surface
 Temperature or surface Pot.Temp)

1 jmc 1.2 C $Header: /u/gcmpack/MITgcm/pkg/aim_v23/aim_diagnostics.F,v 1.1 2002/11/22 17:17:03 jmc Exp $
2 jmc 1.1 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 jmc 1.2 #include "AIM_PARAMS.h"
22 jmc 1.1 #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,I2,K
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_TIMEAVE
116    
117     IF (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     ENDDO
143     ENDDO
144    
145     C- Keep record of how much time has been integrated over
146     DO K=1,Nr
147     AIM_TimeAve(k,bi,bj)=AIM_TimeAve(k,bi,bj)+DDTT
148     ENDDO
149    
150     ENDIF
151    
152     #endif /* ALLOW_TIMEAVE */
153    
154     #endif /* ALLOW_AIM */
155    
156     RETURN
157     END

  ViewVC Help
Powered by ViewVC 1.1.22