/[MITgcm]/MITgcm/pkg/aim/phy_convmf.F
ViewVC logotype

Annotation of /MITgcm/pkg/aim/phy_convmf.F

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


Revision 1.2 - (hide annotations) (download)
Fri Feb 2 21:36:29 2001 UTC (23 years, 4 months ago) by adcroft
Branch: MAIN
CVS Tags: checkpoint35, pre38tag1, c37_adj, pre38-close, checkpoint37, checkpoint39, checkpoint38, checkpoint36
Branch point for: pre38
Changes since 1.1: +248 -0 lines
Merged changes from branch "branch-atmos-merge" into MAIN (checkpoint34)
 - substantial modifications to algorithm sequence (dynamics.F)
 - packaged OBCS, Shapiro filter, Zonal filter, Atmospheric Physics

1 adcroft 1.2 C $Header: /u/gcmpack/models/MITgcmUV/pkg/aim/Attic/phy_convmf.F,v 1.1.2.2 2001/01/26 17:53:55 adcroft Exp $
2     C $Name: branch-atmos-merge-freeze $
3    
4     cmolt SUBROUTINE CONVMF (PSA,SE,QA,QSAT,
5     SUBROUTINE CONVMF (PSA,TA,QA,QSAT,
6     * IDEPTH,CBMF,PRECNV,DFSE,DFQA)
7     C--
8     C-- SUBROUTINE CONVMF (PSA,SE,QA,QSAT,
9     C-- * IDEPTH,CBMF,PRECNV,DFSE,DFQA)
10     C--
11     C-- Purpose: Compute convective fluxes of dry static energy and moisture
12     C-- using a simplified mass-flux scheme
13     C-- Input: PSA = norm. surface pressure [p/p0] (2-dim)
14     C-- SE = dry static energy (3-dim)
15     C-- QA = specific humidity [g/kg] (3-dim)
16     C-- QSAT = saturation spec. hum. [g/kg] (3-dim)
17     C-- Output: IDEPTH = convection depth in layers (2-dim)
18     C-- CBMF = cloud-base mass flux (2-dim)
19     C-- PRECNV = convective precipitation [g/(m^2 s)] (2-dim)
20     C-- DFSE = net flux of d.s.en. into each atm. layer (3-dim)
21     C-- DFQA = net flux of sp.hum. into each atm. layer (3-dim)
22     C--
23    
24     IMPLICIT rEAL*8 ( A-H,O-Z)
25    
26     C Resolution parameters
27     C
28     #include "atparam.h"
29     #include "atparam1.h"
30     #include "Lev_def.h"
31     C
32     PARAMETER ( NLON=IX, NLAT=IL, NLEV=KX, NGP=NLON*NLAT )
33     C
34     C Physical constants + functions of sigma and latitude
35     C
36     #include "com_physcon.h"
37     C
38     C Convection constants
39     C
40     #include "com_cnvcon.h"
41     C
42     REAL PSA(NGP), SE(NGP,NLEV), QA(NGP,NLEV), QSAT(NGP,NLEV)
43     C
44     INTEGER IDEPTH(NGP)
45     REAL CBMF(NGP), PRECNV(NGP), DFSE(NGP,NLEV), DFQA(NGP,NLEV)
46     C
47     INTEGER ITOP(NGP)
48     REAL SM(NGP,NLEV), ENTR(NGP,2:NLEV-1)
49     REAL FM0(NGP), DENTR(NGP)
50     C
51     REAL Th(NGP,NLEV), Ta(NGP,NLEV)
52     REAL dThdp(NGP,NLEV), dThdpHat(NGP,NLEV)
53     REAL stab(NGP,NLEV)
54     REAL Prefw(NLEV), Prefs(NLEV)
55     DATA Prefs / 75., 250., 500., 775., 950./
56     DATA Prefw / 0., 150., 350., 650., 900./
57     REAL Pground
58     DATA pground /1000./
59     REAL FDMUS
60     C
61     C 1. Initialization of output and workspace arrays
62     C
63     DO J=1,NGP
64     FM0(J)=0.
65     IF ( NLEVxy(J) .NE. 0 ) THEN
66     FM0(J)=P0*DSIG(NLEVxy(J))/(GG*TRCNV*3600)
67     ENDIF
68     DENTR(J)=ENTMAX/(SIG(NLEV-1)-0.5)
69     ENDDO
70     C
71     DO K=1,NLEV
72     DO J=1,NGP
73     DFSE(J,K)=0.0
74     DFQA(J,K)=0.0
75     ENDDO
76     ENDDO
77     C
78     C
79     DO J=1,NGP
80     ITOP(J) =NLEVxy(J)
81     CBMF(J) =0.0
82     PRECNV(J)=0.0
83     ENDDO
84     C
85     C Saturation moist static energy
86     cmolt DO J=1,NGP
87     cmolt DO K=1,NLEVxy(J)
88     cmolt SM(J,K)=SE(J,K)+ALHC*QSAT(J,K)
89     cmolt ENDDO
90     cmolt ENDDO
91     C
92     C Entrainment profile (up to sigma = 0.5)
93     DO J=1,NGP
94     DO K=2,NLEVxy(J)-1
95     ENTR(J,K)=MAX(0.,SIG(K)-0.5)*DENTR(J)
96     ENDDO
97     ENDDO
98     C
99     C-- 2. Check of conditions for convection
100     C
101     C 2.1 Conditional instability
102     C
103     cmolt DO J=1,NGP
104     cmolt DO K=NLEVxy(J)-2,2,-1
105     cmolt SMB=SM(J,K)+WVI(K,2)*(SM(J,K+1)-SM(J,K))
106     cmolt IF (SM(J,NLEVxy(J)).GT.SMB) ITOP(J)=K
107     cmolt ENDDO
108     cmolt ENDDO
109     C
110     C New writing of the Conditional stability
111     C ----------------------------------------
112     DO J=1,NGP
113     DO k=1,NLEVxy(J)
114     Th(J,K)=Ta(J,K)*(Pground/Prefs(k))**(RD/CP)
115     ENDDO
116     ENDDO
117     C
118     DO J=1,NGP
119     dThdp(J,1)=0.
120     IF ( NLEVxy(J) .NE. 0 ) THEN
121     dThdp(J,NLEVxy(J))=0.
122     ENDIF
123     DO k=2,NLEVxy(J)
124     dThdp(J,K-1)=(Th(J,K-1)-Th(J,K))
125     & *((Prefw(k)/Pground)**(RD/CP))*CP
126     ENDDO
127     ENDDO
128     C
129     DO J=1,NGP
130     IF ( NLEVxy(J) .NE. 0 ) THEN
131     dThdpHat(J,NLEVxy(J))=dThdp(J,NLEVxy(J))
132     ENDIF
133     ENDDO
134     C
135     DO J=1,NGP
136     DO k=NLEVxy(J)-1,2,-1
137     dThdpHat(J,K)=dThdpHat(J,K+1)+dThdp(J,k)
138     ENDDO
139     ENDDO
140     C
141     DO J=1,NGP
142     DO k=2,NLEVxy(J)-1
143     stab(J,K)=dThdpHat(J,K)+ALHC*(QSAT(J,K)-QSAT(J,NLEVxy(J)))
144     & -WVI(K,2)*(dThdp(J,K) +ALHC*(QSAT(J,K) -QSAT(J,K+1)) )
145     ENDDO
146     ENDDO
147     C
148     DO J=1,NGP
149     DO K=NLEVxy(J)-2,2,-1
150     if(stab(J,K).lt.0.) ITOP(J)=K
151     ENDDO
152     ENDDO
153     C
154     C 2.2 Humidity exceeding prescribed threshold
155     C
156     DO J=1,NGP
157     IF ( NLEVxy(J) .NE. 0 ) THEN
158     IF (QA(J,NLEVxy(J)).LT.RHBL*QSAT(J,NLEVxy(J)))
159     & ITOP(J)=NLEVxy(J)
160     ENDIF
161     IDEPTH(J)=NLEVxy(J)-ITOP(J)
162     ENDDO
163     C
164     C-- 3. Convection over selected grid-points
165     C
166     DO 300 J=1,NGP
167     IF (ITOP(J).EQ.NLEVxy(J)) GO TO 300
168     C
169     C 3.1 Boundary layer (cloud base)
170     C
171     K =NLEVxy(J)
172     K1=K-1
173     C
174     C Dry static energy and moisture at upper boundary
175     cch SB=SE(J,K1)+WVI(K1,2)*(SE(J,K)-SE(J,K1))
176     QB=QA(J,K1)+WVI(K1,2)*(QA(J,K)-QA(J,K1))
177     cch QB=QA(J,K1)
178     C
179     C Cloud-base mass flux
180     DQSAT=MAX(QSAT(J,K)-QB,0.05*QSAT(J,K))
181     FMASS=FM0(J)*PSA(J)*(QA(J,K)-RHBL*QSAT(J,K))/DQSAT
182     CBMF(J)=FMASS
183     C
184     C Upward fluxes at upper boundary
185     cch FUS=FMASS*SE(J,K)
186     FUQ=FMASS*QSAT(J,K)
187     C
188     C Downward fluxes at upper boundary
189     cch FDS=FMASS*SB
190     FDQ=FMASS*QB
191     C
192     C Net flux of dry static energy and moisture
193     cch DFSE(J,K)=FDS-FUS
194     DFSE(J,K)=FMASS*dThdp(J,K1)*(1-WVI(K1,2))
195     FDMUS=FMASS*dThdp(J,K1)*(1-WVI(K1,2))
196     DFQA(J,K)=FDQ-FUQ
197     C
198     C 3.2 Intermediate layers (entrainment)
199     C
200     DO K=NLEVxy(J)-1,ITOP(J)+1,-1
201     K1=K-1
202     C
203     C Fluxes at lower boundary
204     cch DFSE(J,K)=FUS-FDS
205     DFQA(J,K)=FUQ-FDQ
206     C
207     C Mass entrainment
208     ENMASS=ENTR(J,K)*PSA(J)*FMASS
209     FMASS=FMASS+ENMASS
210     C
211     C Upward fluxes at upper boundary
212     cch FUS=FUS+ENMASS*SE(J,K)
213     FUQ=FUQ+ENMASS*QA(J,K)
214     C
215     C Downward fluxes at upper boundary
216     cch SB=SE(J,K1)+WVI(K1,2)*(SE(J,K)-SE(J,K1))
217     QB=QA(J,K1)+WVI(K1,2)*(QA(J,K)-QA(J,K1))
218     cch QB=QA(J,K1)
219     cch FDS=FMASS*SB
220     FDQ=FMASS*QB
221     C
222     C Net flux of dry static energy and moisture
223     cch DFSE(J,K)=DFSE(J,K)+FDS-FUS
224     DFSE(J,K)=FMASS*(1-WVI(K1,2))*dThdp(J,K1)+
225     & (FMASS-ENMASS)*WVI(K,2)*dThdp(J,K)
226     FDMUS=FDMUS+ FMASS*(1-WVI(K1,2))*dThdp(J,K1)+
227     & (FMASS-ENMASS)*WVI(K,2)*dThdp(J,K)
228     DFQA(J,K)=DFQA(J,K)+FDQ-FUQ
229     C
230     ENDDO
231     c
232     C 3.3 Top layer (condensation and detrainment)
233     C
234     K=ITOP(J)
235     C
236     C Flux of convective precipitation
237     QSATB=QSAT(J,K)+WVI(K,2)*(QSAT(J,K+1)-QSAT(J,K))
238     PRECNV(J)=MAX(FUQ-FMASS*QSATB,0.0)
239     C
240     C Net flux of dry static energy and moisture
241     cch DFSE(J,K)=FUS-FDS+ALHC*PRECNV(J)
242     DFSE(J,K)=-FDMUS+ALHC*PRECNV(J)
243     DFQA(J,K)=FUQ-FDQ-PRECNV(J)
244     C
245     300 CONTINUE
246     C
247     RETURN
248     END

  ViewVC Help
Powered by ViewVC 1.1.22