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

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

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

revision 1.1 by cnh, Fri Jan 26 00:14:32 2001 UTC revision 1.2 by adcroft, Fri Feb 2 21:36:29 2001 UTC
# Line 0  Line 1 
1    C $Header$
2    C $Name$
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

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

  ViewVC Help
Powered by ViewVC 1.1.22