4 |
#include "AIM_OPTIONS.h" |
#include "AIM_OPTIONS.h" |
5 |
|
|
6 |
cmolt SUBROUTINE CONVMF (PSA,SE,QA,QSAT, |
cmolt SUBROUTINE CONVMF (PSA,SE,QA,QSAT, |
7 |
SUBROUTINE CONVMF (PSA,TA,QA,QSAT, |
SUBROUTINE CONVMF (PSA,Ta,QA,QSAT, |
8 |
* IDEPTH,CBMF,PRECNV,DFSE,DFQA, |
* IDEPTH,CBMF,PRECNV,DFSE,DFQA, |
9 |
I myThid) |
I myThid) |
10 |
C-- |
C-- |
24 |
C-- DFQA = net flux of sp.hum. into each atm. layer (3-dim) |
C-- DFQA = net flux of sp.hum. into each atm. layer (3-dim) |
25 |
C-- |
C-- |
26 |
|
|
27 |
IMPLICIT rEAL*8 ( A-H,O-Z) |
IMPLICIT NONE |
|
INTEGER myThid |
|
28 |
|
|
29 |
C Resolution parameters |
C Resolution parameters |
30 |
C |
|
31 |
|
C-- size for MITgcm & Physics package : |
32 |
|
#include "AIM_SIZE.h" |
33 |
|
|
34 |
#include "EEPARAMS.h" |
#include "EEPARAMS.h" |
35 |
|
|
36 |
#include "atparam.h" |
#include "AIM_GRID.h" |
37 |
#include "atparam1.h" |
|
|
#include "Lev_def.h" |
|
|
C |
|
|
INTEGER NLON, NLAT, NLEV, NGP |
|
|
PARAMETER ( NLON=IX, NLAT=IL, NLEV=KX, NGP=NLON*NLAT ) |
|
|
C |
|
38 |
C Physical constants + functions of sigma and latitude |
C Physical constants + functions of sigma and latitude |
39 |
C |
C |
40 |
#include "com_physcon.h" |
#include "com_physcon.h" |
42 |
C Convection constants |
C Convection constants |
43 |
C |
C |
44 |
#include "com_cnvcon.h" |
#include "com_cnvcon.h" |
45 |
C |
|
46 |
REAL PSA(NGP), SE(NGP,NLEV), QA(NGP,NLEV), QSAT(NGP,NLEV) |
C-- Routine arguments: |
47 |
C |
_RL PSA(NGP), Ta(NGP,NLEV), QA(NGP,NLEV), QSAT(NGP,NLEV) |
48 |
INTEGER IDEPTH(NGP) |
INTEGER IDEPTH(NGP) |
49 |
REAL CBMF(NGP), PRECNV(NGP), DFSE(NGP,NLEV), DFQA(NGP,NLEV) |
_RL CBMF(NGP), PRECNV(NGP), DFSE(NGP,NLEV), DFQA(NGP,NLEV) |
50 |
C |
INTEGER myThid |
51 |
|
|
52 |
|
#ifdef ALLOW_AIM |
53 |
|
|
54 |
|
C-- Local variables: |
55 |
INTEGER ITOP(NGP) |
INTEGER ITOP(NGP) |
56 |
REAL SM(NGP,NLEV), ENTR(NGP,2:NLEV-1) |
c REAL SM(NGP,NLEV), SE(NGP,NLEV) |
57 |
REAL FM0(NGP), DENTR(NGP) |
_RL ENTR(NGP,2:NLEV-1) |
58 |
C |
_RL FM0(NGP), DENTR(NGP) |
59 |
REAL Th(NGP,NLEV), Ta(NGP,NLEV) |
C |
60 |
REAL dThdp(NGP,NLEV), dThdpHat(NGP,NLEV) |
_RL Th(NGP,NLEV) |
61 |
REAL stab(NGP,NLEV) |
_RL dThdp(NGP,NLEV), dThdpHat(NGP,NLEV) |
62 |
REAL Prefw(NLEV), Prefs(NLEV) |
_RL stab(NGP,NLEV) |
63 |
|
_RL Prefw(NLEV), Prefs(NLEV) |
64 |
DATA Prefs / 75., 250., 500., 775., 950./ |
DATA Prefs / 75., 250., 500., 775., 950./ |
65 |
DATA Prefw / 0., 150., 350., 650., 900./ |
DATA Prefw / 0., 150., 350., 650., 900./ |
66 |
REAL Pground |
_RL Pground |
67 |
DATA pground /1000./ |
DATA pground /1000./ |
68 |
REAL FDMUS |
_RL FDMUS |
69 |
|
|
70 |
INTEGER J, K, K1 |
INTEGER J, K, K1 |
71 |
|
|
72 |
|
C- jmc: declare all local variables: |
73 |
|
_RL QB, DQSAT, FMASS, FUQ, FDQ, ENMASS, QSATB |
74 |
|
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
75 |
|
|
76 |
C |
C |
77 |
C 1. Initialization of output and workspace arrays |
C 1. Initialization of output and workspace arrays |
78 |
C |
C |
108 |
C Entrainment profile (up to sigma = 0.5) |
C Entrainment profile (up to sigma = 0.5) |
109 |
DO J=1,NGP |
DO J=1,NGP |
110 |
DO K=2,NLEVxy(J,myThid)-1 |
DO K=2,NLEVxy(J,myThid)-1 |
111 |
ENTR(J,K)=MAX(0.,SIG(K)-0.5)*DENTR(J) |
ENTR(J,K)=MAX(0. _d 0,SIG(K)-0.5 _d 0)*DENTR(J) |
112 |
ENDDO |
ENDDO |
113 |
ENDDO |
ENDDO |
114 |
C |
C |
156 |
C |
C |
157 |
DO J=1,NGP |
DO J=1,NGP |
158 |
DO k=2,NLEVxy(J,myThid)-1 |
DO k=2,NLEVxy(J,myThid)-1 |
159 |
stab(J,K)=dThdpHat(J,K)+ALHC*(QSAT(J,K)-QSAT(J,NLEVxy(J,myThid))) |
stab(J,K)= |
160 |
|
& dThdpHat(J,K)+ALHC*(QSAT(J,K)-QSAT(J,NLEVxy(J,myThid))) |
161 |
& -WVI(K,2)*(dThdp(J,K) +ALHC*(QSAT(J,K) -QSAT(J,K+1)) ) |
& -WVI(K,2)*(dThdp(J,K) +ALHC*(QSAT(J,K) -QSAT(J,K+1)) ) |
162 |
ENDDO |
ENDDO |
163 |
ENDDO |
ENDDO |
194 |
cch QB=QA(J,K1) |
cch QB=QA(J,K1) |
195 |
C |
C |
196 |
C Cloud-base mass flux |
C Cloud-base mass flux |
197 |
DQSAT=MAX(QSAT(J,K)-QB,0.05*QSAT(J,K)) |
DQSAT=MAX(QSAT(J,K)-QB, 0.05 _d 0*QSAT(J,K)) |
198 |
FMASS=FM0(J)*PSA(J)*(QA(J,K)-RHBL*QSAT(J,K))/DQSAT |
FMASS=FM0(J)*PSA(J)*(QA(J,K)-RHBL*QSAT(J,K))/DQSAT |
199 |
CBMF(J)=FMASS |
CBMF(J)=FMASS |
200 |
C |
C |
256 |
C |
C |
257 |
C Flux of convective precipitation |
C Flux of convective precipitation |
258 |
QSATB=QSAT(J,K)+WVI(K,2)*(QSAT(J,K+1)-QSAT(J,K)) |
QSATB=QSAT(J,K)+WVI(K,2)*(QSAT(J,K+1)-QSAT(J,K)) |
259 |
PRECNV(J)=MAX(FUQ-FMASS*QSATB,0.0) |
PRECNV(J)=MAX(FUQ-FMASS*QSATB, 0. _d 0) |
260 |
C |
C |
261 |
C Net flux of dry static energy and moisture |
C Net flux of dry static energy and moisture |
262 |
cch DFSE(J,K)=FUS-FDS+ALHC*PRECNV(J) |
cch DFSE(J,K)=FUS-FDS+ALHC*PRECNV(J) |
264 |
DFQA(J,K)=FUQ-FDQ-PRECNV(J) |
DFQA(J,K)=FUQ-FDQ-PRECNV(J) |
265 |
C |
C |
266 |
300 CONTINUE |
300 CONTINUE |
267 |
C |
|
268 |
|
#endif /* ALLOW_AIM */ |
269 |
|
|
270 |
RETURN |
RETURN |
271 |
END |
END |