!copyright (C) 2001 MSC-RPN COMM %%%RPNPHY%%%
*** S/P EXMOIS
#include "phy_macros_f.h"
SUBROUTINE EXMOIS ( TP1,QP1, 1,6
1 ZTE,ZQE,PS,S,CDT,VT,
1 QCTPHY,QRTPHY,ZSRR,ZSSR,QC,QR,SIGD,
1 NI,NK)
*
#include "impnone.cdk"
*
INTEGER NI,NK,NKM1
REAL TP1(NI,NK),QP1(NI,NK)
REAL ZTE(NI,NK),ZQE(NI,NK),VT(NI,NK)
REAL PS(NI),S(NI,NK),CDT
REAL QCTPHY(NI,NK),QRTPHY(NI,NK)
REAL ZSRR(NI), ZSSR(NI)
REAL QC(NI,NK),QR(NI,NK),SIGD(NI,NK)
*
*Author
* Stephane Belair July 1991
*
*Revision
* 001 S. Belair (Sept. 1998)
* Output solid precipitation rate (variable ZSSR)
* 002 B. Bilodeau (Jan 2001)
* Automatic arrays
*
*Object
* to calculate the temperature, humidity, cloud
* water/ice and rainwater/snow tendencies due to
* explicit condensation and evaporation of
* water vapour, cloud water/cloud ice and
* rainwater/snow.
*
*Arguments
*
* - Input -
* TP1 temperature at time (T+1)
* QP1 specific humidity at time (T+1)
*
* - Input/Output -
* ZTE convective tendencies for temperature
* ZQE convective tendencies for specific humidity
*
* - Input -
* PS surface pressure at time (T+1)
* S sigma levels of the RFE model
* CDT model timestep (s) times a factor (1 or 2)
* for time integration scheme (see s/r param)
*
* - Output -
* VT terminal velocity of rainwater/snow
* QCTPHY tendency of cloud water/cloud ice due to
* explicit condensation/evaporation(kg/kg/s)
* QRTPHY tendency of rainwater/snow due to
* explicit condensation/evaporation(kg/kg/s)
* ZSRR explicit liquid precipitation rate (kg/M**2/s)
* ZSSR explicit solid precipitation rate (kg/M**2/s)
*
* - Input -
*
* QC cloud water mixing ratio at time T
* QR rain water mixing ratio at time T
* SIGD D(sigma)/DT at time (T+1)
* NI X dimension of the model grid
* NK Z dimension of the model grid
* J west-east slab number
* KOUNT current timestep in the model
*
*Notes
*
* Features
* ========
*
* - Virtual temperature formulation
* - Hydrostatic water loading
* - condensation and evaporation
* - freezing and melting
* - sublimation and deposition
* - phase demarcation between cloud water and
* cloud ice / between rainwater and snow is
* at the 0 degree isotherm
* - explicit predictive equations for:
* QC: cloud water/cloud ice
* QR: rainwater/snow
*
* Interface
* =========
*
* SUBROUTINE EXMOIS IS CALLED FROM VKUOCON
*
* Steps
* =====
*
* A) Definition of all the parameters
*
* preliminary calculations
*
* B) calculation of the production terms
* ( PGCI,PCED,PAUT,PACR,PRED )
* using values of T,Q at the current time (T+1)
*
* D) calculations of the terminal velocity
* and freezing terms ( TVTEND and FRTEND )
*
* E) calculation of temperature and specific
* humidity tendencies (DTEX and DQEX)
*
* F) calculation of cloud water/cloud ice and
* rainwater/snow tendencies ( QCTPHY and QRTPHY )
*
* G) calculation of explicit precipitation rate
* (liquid: ZSRR, and solid: ZSSR )
*
*
* References
* ==========
*
* The main reference:
*
* ZHANG,D.-L., 1989: The effect of parameterized
* ice microphysics on the simulation of
* vortex circulation with a mesoscale
* hydrostatic model, TELLUS, 41A, 132-147
*
* Other references:
*
* ZHANG,D.-L. ET AL, 1988: A Comparison of
* explicit and implicit predictions of
* convective and stratiform precipitating
* systems with a meso-beta scale numerical
* model, Q.J.R.MET.SOC., 114, 31-60
*
* RUTLEDGE, S.A., AND P.V. HOBBS, 1983:
* J.OF ATMOS. SCI., 40, 1185-1206
*
* LIN, Y.-L., ET AL, 1983: Bulk parameterization
* of the snow field in a cloud model
* J.OF CLIMATE AND APP. MET., 22, 1065-1092
**
*
INTEGER I,K,ITOTAL,KM1,KP1,IFLAG
*
REAL AS,AWW,BETA,BS,BS4,BWW,BW4
REAL CP,DELQV
REAL DUMMY,ESI,EW
REAL G,GAMBS2,GAMBW2,GAMMA2
REAL GAM3BS,GAM3BW,GAM4BS,GAM4BW
REAL K1,LF,LS,LV
REAL MI0,M0,NS,NU,NW,N0
REAL PACRS,PACRW
REAL QC0
REAL R,RHOL,RHOS,RV
REAL SUPICE,TCEL,T0,T0COND
REAL VTW,VTS,WATER
*
LOGICAL ICE
*
*
EXTERNAL GAMMA2
*
*
*
************************************************************************
* AUTOMATIC ARRAYS
************************************************************************
*
AUTOMATIC ( QVS , REAL , (NI,NK) )
AUTOMATIC ( CPM , REAL , (NI,NK) )
AUTOMATIC ( RHO , REAL , (NI,NK) )
AUTOMATIC ( LAMM1 , REAL , (NI,NK) )
AUTOMATIC ( P , REAL , (NI,NK) )
AUTOMATIC ( TV , REAL , (NI,NK) )
AUTOMATIC ( ES , REAL , (NI,NK) )
AUTOMATIC ( NC , REAL , (NI,NK) )
AUTOMATIC ( QI0 , REAL , (NI,NK) )
AUTOMATIC ( RH , REAL , (NI,NK) )
AUTOMATIC ( PGCI , REAL , (NI,NK) )
AUTOMATIC ( PAUT , REAL , (NI,NK) )
AUTOMATIC ( PCED , REAL , (NI,NK) )
AUTOMATIC ( PRED , REAL , (NI,NK) )
AUTOMATIC ( PACR , REAL , (NI,NK) )
AUTOMATIC ( PREDW , REAL , (NI,NK) )
AUTOMATIC ( PREDS , REAL , (NI,NK) )
AUTOMATIC ( TVTEND , REAL , (NI,NK) )
AUTOMATIC ( FRTEND , REAL , (NI,NK) )
AUTOMATIC ( DTEX , REAL , (NI,NK) )
AUTOMATIC ( DQEX , REAL , (NI,NK) )
AUTOMATIC ( AJUS , REAL , (NI,NK) )
AUTOMATIC ( DENOM , REAL , (NI,NK) )
AUTOMATIC ( QVNEW , REAL , (NI,NK) )
AUTOMATIC ( QCNEW , REAL , (NI,NK) )
AUTOMATIC ( TNEW , REAL , (NI,NK) )
AUTOMATIC ( QRNEW , REAL , (NI,NK) )
AUTOMATIC ( QRFIN , REAL , (NI,NK) )
AUTOMATIC ( KA , REAL , (NI,NK) )
AUTOMATIC ( DF , REAL , (NI,NK) )
AUTOMATIC ( SC , REAL , (NI,NK) )
AUTOMATIC ( Q , REAL , (NI,NK) )
AUTOMATIC ( T , REAL , (NI,NK) )
AUTOMATIC ( WF , REAL , (NI,NK) )
*
************************************************************************
*
#include "consphy.cdk"
#include "dintern.cdk"
#include "fintern.cdk"
*
*
*
*
* SWITCH PARAMETERS:
* ================
*
* T0COND = 273.16
* ICE = .TRUE. => ICE MICROPHYSICS IS TREATED
*
* T0COND = 0.0
* ICE = .FALSE => NO ICE MICROPHYSICS
*
T0COND = 273.16
DATA ICE /.TRUE./
*
*
* A) DEFINITION OF ALL THE PARAMETERS
* ================================
*
*
LV = 2.50E6
* = LATENT HEAT OF VAPORIZATION (J/KG)
*
CP = 1.005E3
* = SPECIFIC HEAT OF AIR AT CONSTANT PRESSURE (J/KG K)
*
RV = 461.
* = GAS CONSTANT FOR WATER VAPOR (J/KG K)
*
M0 = 6.26E-13
* = INITIAL MASS OF CLOUD ICE CRYSTAL (KG)
*
N0 = 1.0 E-2
* = CONSTANT IN ICE CRYSTAL CONCENTRATION (/M**3)
*
BETA = 0.6
* = CONSTANT IN ICE CRYSTAL CONCENTRATION (/K)
*
T0 = 273.16
* = REFERENCE TEMPERATURE (K)
*
R = 287.05
* = GAS CONSTANT FOR AIR
*
K1 = 0.001
* = RATE COEFFICIENT OF AUTOCONVERSION OF CLOUD
* WATER INTO RAINWATER (/S)
*
MI0 = 9.4E-10
* = MAXIMUM MASS OF CLOUD ICE CRYSTAL (KG)
*
QC0 = 5.0E-4
* = MASS TRESHOLD CLOUD WATER FOR
* AUTOCONVERSION (KG/KG)
*
LS = 2.8336E6
* = LATENT HEAT OF SUBLIMATION OF WATER SUBSTANCE
*
NW = 8.0E6
* = INTERCEPT VALUE IN RAINDROP SIZE DISTRIBUTION
* ( /M**4 )
*
AWW = 842.
* = CONSTANT FOR EVAPORATION OF RAINWATER (M**(1-BWW)/S)
*
NU = 1.718E-5
* = KINETIC VISCOSITY OF AIR ( KG/M/S )
*
BWW = 0.8
* = CONSTANT FOR EVAPORATION OF RAINWATER
*
RHOL = 1.0E3
* = DENSITY OF LIQUID WATER (KG/M**3)
*
NS = 3.0E6
* = INTERCEPT VALUE OF SNOWFLAKE SIZE
* DISTRIBUTION (/M**4)
*
AS = 27.2
* = CONSTANT IN DEPOSITIONAL GROWTH OF SNOW
* ( M**(1-BS)/S )
*
BS = 0.25
* = CONSTANT IN DEPOSITIONAL GROWTH OF SNOW
*
RHOS = 100.0
* = DENSITY OF SNOW (KG/M**3)
*
EW = 0.8
* = RAIN/CLOUD WATER COLLECTION EFFICIENCY
*
ESI = 0.6
* = SNOW/ICE CRYSTAL COLLECTION EFFICIENCY
*
G = 9.80616
* = GRAVITATIONAL CONSTANT
*
LF = 3.34E5
* = LATENT HEAT OF FUSION FOR WATER
* = LS - LV
*
* PRELIMINARY CALCULATIONS
* ========================
*
*
DO 10 K=1,NK
DO 10 I=1,NI
* =====================
*
*...THE VALUES OF T AND Q ARE TAKEN AT TIME LEVEL T+1
*
T(I,K) = TP1(I,K)
Q(I,K) = QP1(I,K)
*
*...NO NEGATIVE VALUES OF Q ARE POSSIBLE...
*
Q(I,K) = AMAX1( Q(I,K), 1.0E-10 )
*
* SPECIFIC HEAT AT CONSTANT
* PRESSURE FOR MOIST AIR
*
CPM(I,K) = CP*( 1.0+ 0.81*Q(I,K) )
*
* THE PRESSURE
* ======== ===
*
P(I,K) = S(I,K)*PS(I)
*
* THE VIRTUAL TEMPERATURE
* ===================
*
TV(I,K) = FOTVT( T(I,K),Q(I,K) )
*
*
*
* THE AIR DENSITY
* ============
*
RHO(I,K) = P(I,K)/(R*TV(I,K))
*
*
10 CONTINUE
*
*
* CALCULATION OF THE WEIGHTING FUNCTION APPEARING
* IN THE CALCULATION OF THE TERMINAL VELOCITY
*
*
DO 15 K=1,NK
DO 15 I=1,NI
*
WF(I,K) = ( 1.0/S(I,K) )**.25
*
15 CONTINUE
*
*
DO 20 K=1,NK
DO 20 I=1,NI
*
TCEL = T(I,K)-T0
*
*...CALCULATE THE THERMAL CONDUCTIVITY OF AIR (KA IN J/M/S/K)
* PRUPPACHER AND KLETT... PAGE 418
*
KA(I,K) = 0.023818 + 7.12E-5*TCEL
*
*...CALCULATE THE DIFFUSITIVITY OF WATER VAPOR IN AIR
* ( DK IN M*M/S); PRUPPACHER AND KLETT... PAGE 413
*
DF(I,K) = 2.11E-5 *( T(I,K)/T0 )**1.94 *
1 ( 101325.0/P(I,K) )
*
*...CALCULATE THE SCHMIDT NUMBER...
*
SC(I,K) = NU / DF(I,K)
*
20 CONTINUE
*
*
*
GAM4BS= GAMMA2
(4.0+BS)
GAM4BW= GAMMA2
(4.0+BWW)
GAM3BS= GAMMA2
(3.0+BS)
GAM3BW= GAMMA2
(3.0+BWW)
GAMBS2= GAMMA2
(BS/2.0+2.5)
GAMBW2= GAMMA2
(BWW/2.0+2.5)
*
BW4 = BWW/4.0
BS4 = BS/4.0
*
VTW = 0.50*AWW*GAM4BW / 6.0
VTS = 0.50*AS*GAM4BS / 6.0
*
DO 22 K=1,NK
DO 22 I=1,NI
PREDW(I,K) = 0.32*SC(I,K)**.333*GAMBW2*(AWW/NU)**0.5
PREDS(I,K) = 0.32*SC(I,K)**.333*GAMBS2*(AS/NU)**0.5
22 CONTINUE
*
PACRW = 0.25*PI*EW*NW*AWW*GAM3BW
PACRS = 0.25*PI*ESI*NS*AS*GAM3BS
*
NKM1 = NK - 1
*
*
* THIS FORMULATION IS CONSISTENT WITH THE FORMULATION
* IN THE FRITSCH-CHAPPELL SCHEME
*
DO 300 K=1,NK
DO 300 I=1,NI
* ====================
*
*
IF (T(I,K).GT.T0COND) THEN
*
ELSE
*
* NUMBER CONCENTRATION OF CLOUD ICE CRYSTALS
*
*
NC(I,K)=N0*EXP( BETA*( T0-T(I,K) ) )
*
* QIO: CONVERSION OF CLOUD
* ICE TO SNOW TRESHOLD
*
QI0(I,K) = MI0*NC(I,K)/RHO(I,K)
*
*
ENDIF
*
* SATURATION SPECIFIC HUMIDITY AND RELATIVE HUMIDITY
*
IF (ICE) THEN
*
QVS(I,K) = FOQST( T(I,K),P(I,K) )
RH(I,K) = FOHR ( Q(I,K),T(I,K),P(I,K) )
*
ELSE
*
QVS(I,K) = FOQSA( T(I,K),P(I,K) )
RH(I,K) = FOHRA( Q(I,K),T(I,K),P(I,K) )
*
ENDIF
*
300 CONTINUE
*
*
*
*
DO 320 K=1,NK
DO 320 I=1,NI
* ==================
*
* INVERSE SLOPE OF RAINDROP AND
* SNOWFLAKE SIZE DISTRIBUTION
*
IF (T(I,K).GT.T0COND) THEN
*
* SLOPE OF RAINDROP SIZE DISTRIBUTION
* ===================================
*
*
LAMM1(I,K) = ( (RHO(I,K)*QR(I,K)) /
1 ( PI*RHOL*NW ) )
*
*
* THE TERMINAL VELOCITY
* =================
*
*
VT(I,K) = VTW*0.4*
1 LAMM1(I,K)**(BW4) * WF(I,K)
*
*
*
DENOM(I,K) = RHO(I,K) * ( LV*LV/(KA(I,K)
1 *RV*T(I,K)*T(I,K))
1 + 1.0/(RHO(I,K)*QVS(I,K)*DF(I,K)) )
*
*
*
ELSE
*
* SLOPE OF SNOWFLAKE SIZE DISTRIBUTION
* ====================================
*...WE DO NOT ALLOW LAMM1 TO BE ZERO...USE DUMMY
*
LAMM1(I,K) = ( ( RHO(I,K)*QR(I,K) ) /
1 ( PI*RHOS*NS ) )
*
VT(I,K) = VTS*0.4*
1 LAMM1(I,K)**(BS4)* WF(I,K)
*
DENOM(I,K) = RHO(I,K) * ( LS*LS/(KA(I,K)
1 *RV*T(I,K)*T(I,K))
1 + 1.0/(RHO(I,K)*QVS(I,K)*DF(I,K)) )
*
ENDIF
*
320 CONTINUE
*
* CALCULATION OF THE PRODUCTION TERMS
* FOR EACH TERM, WE USE THE VALUES AT T+1
* ============================================
*
* A DETAILED DESCRIPTION OF ALL THESE TERMS IS GIVEN IN
* ZHANG 1989, WHICH IS THE MAIN REFERENCE FOR THE EXPLICIT
* MOISTURE SCHEME.
*
* IN THE SUBROUTINE, OTHER REFERENCES ARE GIVEN TO COMPLETE THE
* MAIN REFERENCE.
*
*
DO 350 K=1,NK
DO 350 I=1,NI
* ===================
*
* PGCI = GENERATION OF CLOUD WATER OR CLOUD ICE
*
IF (T(I,K).GT.T0COND) THEN
*
* BASED ON EQUATION A6 OF RUTLEDGE ET AL
*
PGCI(I,K) = (Q(I,K)-QVS(I,K)) /CDT/
1 (1.0 + LV*LV*QVS(I,K)/(CPM(I,K)*RV*T(I,K)*T(I,K) ) )
PCED(I,K) = -PGCI(I,K)
*
ELSE
*
* FOR THE CASE OF CLOUD ICE
* BASED ON EQ (A15) OF RUTLEDGE ET AL
*
PGCI(I,K) = M0*NC(I,K) /(CDT*RHO(I,K))
*
PGCI(I,K) = AMIN1 ( PGCI(I,K) ,
1 (Q(I,K)-QVS(I,K))/CDT )
*
ENDIF
*
PGCI(I,K) = AMAX1 ( PGCI(I,K) , 0.0 )
*
350 CONTINUE
*
DO 360 K=1,NK
DO 360 I=1,NI
* ====================
*
IF (T(I,K).GT.T0COND) THEN
*
* AUTOCONVERSION OF CLOUD WATER
* TO RAINWATER
* EQUATION (A7) OF RUTLEDGE ET AL
*
PAUT(I,K) = AMAX1 (0.0,
1 K1*(QC(I,K)-QC0) )
*
ELSE
*
* AUTOCONVERSION OF CLOUD ICE
* TO SNOW
* EQ (A19) OF RUTLEDGE ET AL
*
PAUT(I,K) = AMAX1 ( 0.0 ,
1 (QC(I,K)-QI0(I,K))/
1 CDT )
*
ENDIF
*
360 CONTINUE
*
*
DO 370 K=1,NK
DO 370 I=1,NI
* ====================
*
IF (T(I,K).GT.T0COND) THEN
*
* PCED: EVAPORATION OF CLOUD WATER
* EQ (A6) OF RUTLEDGE ET AL
*
* THIS PART IS ALREADY CALCULATED IN LOOP 350
*
PCED(I,K) = AMAX1( PCED(I,K) , 0.0 )
*
ELSE
*
* PCED: DEPOSITIONAL GROWTH/SUBLIMATION OF CLOUD ICE
* EQ (A18) OF RUTLEDGE ET AL
* EQ (31) OF LIN AND ORVILLE
*
PCED(I,K) =
1 ( 65.2*(1.0-RH(I,K))*( RHO(I,K)*QC(I,K)
1 *NC(I,K) )**0.5 ) / DENOM(I,K)
*
ENDIF
*
370 CONTINUE
*
DO 380 K=1,NK
DO 380 I=1,NI
* ====================
*
IF (T(I,K).GT.T0COND) THEN
*
* PRED
* ====
* EVAPORATION OF RAINWATER
*
* EQ (A12) OF RUTLEDGE ET AL
* EQ 52 OF LIN AND ORVILLE
*
PRED(I,K) = ( 2.0*PI*( 1.0-RH(I,K) )*NW*
1 ( 0.78*LAMM1(I,K)**0.5 + PREDW(I,K)*
1 LAMM1(I,K)**(BW4/2.+5./8.) ) )/DENOM(I,K)
*
PRED(I,K) = AMAX1( PRED(I,K) , 0.0 )
*
ELSE
*
* PRED
* ====
* DEPOSITIONAL GROWTH/SUBLIMATION OF SNOW
*
* EQ (A26) OF RUTLEDGE ET AL
* EQ (32) OF LIN AND ORVILLE
*
PRED(I,K) =
1 ( 2.0*PI*( 1.0-RH(I,K) )*NS*
1 ( 0.78*LAMM1(I,K)**0.5 + PREDS(I,K)*
1 LAMM1(I,K)**(BS4/2.+5./8.) ) )/ DENOM(I,K)
*
ENDIF
*
380 CONTINUE
*
DO 385 K=1,NK
DO 385 I=1,NI
*
IF ( RH(I,K).LT.1.0 ) THEN
*
* FOR THE UNSATURATED CASE:
* THE EVAPORATION OF CLOUD WATER/ICE AND
* RAINWATER CANNOT EXCEED QC AND QR AVAILABLE
*
PCED(I,K) = AMIN1 ( PCED(I,K),
1 QC(I,K)/CDT )
*
PRED(I,K) = AMIN1 ( PRED(I,K) ,
1 QR(I,K)/CDT )
*
ELSE
*
IF ( T(I,K).LT.T0COND ) THEN
*
* FOR THE SUPERSATURATED CASE, THE REMOVAL OF WATER VAPOR
* FOR THE GROWTH OF ICE CRYSTALS AND SNOW CANNOT EXCEED
* THE AVAILABLE MOISTURE:
*
* ( QV - QVS ) / CDT
*
SUPICE = ( QVS(I,K)-Q(I,K) ) /CDT + PGCI(I,K)
*
PCED(I,K) = AMAX1( PCED(I,K),SUPICE )
PRED(I,K) = AMAX1( PRED(I,K),SUPICE-PCED(I,K) )
*
*
PCED(I,K) = AMIN1( PCED(I,K), 0.0 )
PRED(I,K) = AMIN1( PRED(I,K), 0.0 )
*
ENDIF
*
ENDIF
*
385 CONTINUE
*
DO 390 K=1,NK
DO 390 I=1,NI
* ====================
* PACR
* ====
* ACCRETION OF CLOUD WATER BY RAINDROPS OR
* ACCRETION OF CLOUD ICE BY SNOW...
*
* EQ (A9) OF RUTLEDGE ET AL
* EQ (51) OF LIN AND ORVILLE
*
IF (QR(I,K).GT.1.0E-10) THEN
*
IF (T(I,K).GT.T0COND) THEN
*
PACR(I,K) =
1 PACRW*QC(I,K)*
1 LAMM1(I,K)**(3.0/4.0+BW4)
*
ELSE
*
PACR(I,K) =
1 PACRS*QC(I,K)*
1 LAMM1(I,K)**(3.0/4.0+BS4)
*
ENDIF
*
ELSE
*
PACR(I,K) = 0.0
*
ENDIF
*
390 CONTINUE
*
* MAKE SURE THAT ALL SINK TERMS DO NOT EXCEED
* AVAILABLE CLOUD ICE/WATER
*
DO 52 K=1,NK
DO 52 I=1,NI
* ====================
*
DUMMY = (PACR(I,K)+PAUT(I,K)+PCED(I,K)-PGCI(I,K))*CDT
*
IF ( DUMMY.GT.QC(I,K) ) THEN
*
PACR(I,K) = PACR(I,K)*QC(I,K)/DUMMY
PAUT(I,K) = PAUT(I,K)*QC(I,K)/DUMMY
PCED(I,K) = PCED(I,K)*QC(I,K)/DUMMY
PGCI(I,K) = PGCI(I,K)*QC(I,K)/DUMMY
*
ENDIF
*
52 CONTINUE
*
* NOTE
* ====
* THIS SPECIAL ADJUSTMENT ONLY OCCURS FOR THE CLOUD WATER/
* ICE. FOR THE OTHER TERMS, IT IS ALREADY TAKEN CARE OF
* IN THE FORMULATION OF THE PRODUCTION TERMS
*
* E) CALCULATION OF THE TEMPERATURE AND SPECIFIC
* HUMIDITY TENDENCIES
*
* 1) TEMPERATURE TENDENCY
* ====================
* DT/DT = ADVECTION + L/CP ( GENERATION OF CLOUD
* WATER/ICE - EVAPORATION OF CLOUD WATER/ICE
* - EVAPORATION OF RAINWATER/SNOW ) + FREEZING/MELTING
* OF RAINWATER/SNOW AND CLOUD WATER/ICE
*
DO 60 K=1,NK
DO 60 I=1,NI
* ====================
*
IF (T(I,K).GT.T0COND) THEN
*
DTEX (I,K) =
1 LV/CPM(I,K) *
1 ( PGCI(I,K)-PCED(I,K)-PRED(I,K) )
*
ELSE
*
DTEX (I,K) =
1 LS/CPM(I,K) *
1 ( PGCI(I,K)-PCED(I,K)-PRED(I,K) )
*
ENDIF
*
60 CONTINUE
*
* 2) SPECIFIC HUMIDITY TENDENCY
* ==========================
*
* DQ/DT = ADVECTION + EVAPORATION OF CLOUD WATER/ICE +
* EVAPORATION OF RAINWATER/SNOW - GENERATION OF
* CLOUD WATER/ICE
*
DO 70 K=1,NK
DO 70 I=1,NI
* ====================
*
DQEX(I,K) =
1 PCED(I,K) + PRED(I,K)
1 -PGCI(I,K)
*
70 CONTINUE
*
* E) CALCULATION OF CLOUD WATER/ICE AND RAINWATER/SNOW
* TENDENCIES
*
* 1) CLOUD WATER/ICE TENDENCY
* ===============
*
* DQC/DT = ADVECTION + GENERATION OF CLOUD WATER/ICE
* - EVAPORATION OF CLOUD WATER/ICE
* - AUTOCONVERSION OF CLOUD WATER/ICE TO RAINWATER/SNOW
* - ACCRETION OF CLOUD WATER/ICE BY RAINWATER/SNOW
*
DO 80 K=1,NK
DO 80 I=1,NI
* ====================
*
QCTPHY(I,K) = PGCI(I,K) - PCED(I,K) - PAUT(I,K)
1 - PACR(I,K)
*
80 CONTINUE
*
* RAINWATER/SNOW TENDENCY
* ==============
*
* DQR/DT = ADVECTION
* + AUTOCONVERSION OF CLOUD WATER/ICE TO RAINWATER/SNOW
* + ACCRETION OF CLOUD WATER/ICE BY RAINWATER/SNOW
* - EVAPORATION OF RAINWATER/SNOW
* + TERMINAL VELOCITY TERM
DO 90 K=1,NK
DO 90 I=1,NI
* ====================
*
QRTPHY(I,K) =
1 PAUT(I,K) + PACR(I,K) - PRED(I,K)
*
90 CONTINUE
*
*
* AFTER ALL THE TENDENCY TERMS ARE CALCULATED,
* WE PREVENT OVERSHOOTING FOR THE WATER VAPOR OR
* THE CLOUD WATER/ICE...
*
* THE INTERMEDIATE VALUES ARE:
*
* QCNEW: CLOUD WATER/ICE
* QVNEW: WATER VAPOR
* TNEW : TEMPERATURE
* QRNEW: RAINWATER/SNOW
* QRFIN: FINAL VALUE OF RAINWATER/SNOW AFTER THE FALLOUT
*
DO 410 K=1,NK
DO 410 I=1,NI
*
QVNEW(I,K) = QP1(I,K) + CDT* DQEX(I,K)
QCNEW(I,K) = QC(I,K) + CDT*QCTPHY(I,K)
QCNEW(I,K) = AMAX1( QCNEW(I,K),0.0 )
TNEW(I,K) = TP1(I,K) + CDT* DTEX(I,K)
QRNEW(I,K) = QR(I,K) + CDT*QRTPHY(I,K)
QRNEW(I,K) = AMAX1( QRNEW(I,K),0.0 )
*
410 CONTINUE
*
* THE NEW SATURATION SPECIFIC HUMIDITY...
*
DO 420 K=1,NK
DO 420 I=1,NI
*
IF (ICE) THEN
QVS(I,K) = FOQST( TNEW(I,K),P(I,K) )
ELSE
QVS(I,K) = FOQSA( TNEW(I,K),P(I,K) )
ENDIF
*
420 CONTINUE
*
* ADJUSTMENT OF THE CLOUD WATER/ICE OR THE WATER VAPOR...
*
DO 430 K=1,NK
DO 430 I=1,NI
*
DELQV = ( QVNEW(I,K)-QVS(I,K) )/
1 ( 1.0 + LV*LV*QVS(I,K) /
2 ( CPM(I,K)*RV*TNEW(I,K)*TNEW(I,K) ) )
*
WATER = QCNEW(I,K) + DELQV
*
IF ( WATER.GT.0.0) THEN
*
DUMMY = DELQV/CDT
*
ELSE
*
DUMMY = -QCNEW(I,K)/CDT
*
ENDIF
*
DQEX(I,K) = DQEX(I,K) - DUMMY
*
QCTPHY(I,K) = QCTPHY(I,K) + DUMMY
*
DTEX(I,K) = DTEX(I,K) + LV*DUMMY/CPM(I,K)
*
430 CONTINUE
*
*...SAME PROCEDURE IS APPLIED FOR THE RAINWATER/SNOW
*
DO 415 K=1,NK
DO 415 I=1,NI
*
QVNEW(I,K) = QP1(I,K) + CDT* DQEX(I,K)
QCNEW(I,K) = QC(I,K) + CDT*QCTPHY(I,K)
QCNEW(I,K) = AMAX1( QCNEW(I,K),0.0 )
TNEW(I,K) = TP1(I,K) + CDT* DTEX(I,K)
QRNEW(I,K) = QR(I,K) + CDT*QRTPHY(I,K)
QRNEW(I,K) = AMAX1( QRNEW(I,K),0.0 )
*
415 CONTINUE
*
* THE NEW SATURATION SPECIFIC HUMIDITY...
*
DO 425 K=1,NK
DO 425 I=1,NI
*
IF (ICE) THEN
QVS(I,K) = FOQST( TNEW(I,K),P(I,K) )
ELSE
QVS(I,K) = FOQSA( TNEW(I,K),P(I,K) )
ENDIF
*
425 CONTINUE
*
* ADJUSTMENT OF THE RAINWATER/SNOW OR THE WATER VAPOR...
*
DO 435 K=1,NK
DO 435 I=1,NI
*
DELQV = ( QVNEW(I,K)-QVS(I,K) )/
1 ( 1.0 + LV*LV*QVS(I,K) /
2 ( CPM(I,K)*RV*TNEW(I,K)*TNEW(I,K) ) )
*
WATER = QRNEW(I,K) + DELQV
*
IF ( WATER.GT.0.0) THEN
*
DUMMY = DELQV/CDT
*
ELSE
*
DUMMY = -QRNEW(I,K)/CDT
*
ENDIF
*
DQEX(I,K) = DQEX(I,K) - DUMMY
*
QRTPHY(I,K) = QRTPHY(I,K) + DUMMY
*
DTEX(I,K) = DTEX(I,K) + LV*DUMMY/CPM(I,K)
*
435 CONTINUE
*
* CALCULATION OF THE FREEZING/MELTING TERM
* ================
DO 50 I=1,NI
IFLAG = 0
DO 53 K=1,NK
FRTEND(I,K) = 0.0
53 CONTINUE
DO 54 K=1,NK
IF ( T(I,K).GT.T0COND ) THEN
IFLAG = 1
GOTO 56
ENDIF
54 CONTINUE
56 CONTINUE
KP1 = MIN0 ( K+1,NK )
KM1 = MAX0 ( 1,K-1 )
IF (SIGD(I,K).LT.0.0.AND.IFLAG.EQ.1) THEN
*
FRTEND (I,KM1) =
1 -LF*( SIGD(I,K)*( QC(I,K) +
1 QR(I,K) ) + RHO(I,K)*G*QR(I,K)*VT(I,K)
1 / PS(I) )
1 / ( CPM(I,K)*0.5*( S(I,KP1)-S(I,KM1) ) )
*
ENDIF
*
IF (SIGD(I,K).GE.0.0.AND.IFLAG.EQ.1) THEN
*
FRTEND (I,K) =
1 -LF*( SIGD(I,K)*( QC(I,K) +
1 QR(I,K) ) + RHO(I,K)*G*QR(I,K)*VT(I,K)
1 / PS(I) )
1 / ( CPM(I,K)*0.5*( S(I,KP1)-S(I,KM1) ) )
*
ENDIF
*
50 CONTINUE
*
DO 440 K=1,NK
DO 440 I=1,NI
DTEX(I,K) = DTEX(I,K) + FRTEND(I,K)
440 CONTINUE
*
* G) CALCULATION OF THE STRATIFORM (EXPLICIT) PRECIPITATION
* ZSRR IS IN THE FLUX FORM (KG/M**2/S)
* THE QUANTITY OF WATER PRECIPITATING IS GIVEN BY THE
* THE FALLOUT TERM (TVTEND) AT THE LOWEST LEVEL (NK)
*
DO 100 I=1,NI
* ====================
*
* Temperature above 0. C, then
* precipitation reaching the ground
* is liquid.
ZSSR(I) = 0.0
*
ZSRR(I) = RHO(I,NK)*QRNEW(I,NK)*VT(I,NK)
ZSRR(I) = AMAX1( ZSRR(I) , 0.0 )
*
*
* Temperature less then 0.C, then
* precipitation reaching the ground
* is solid.
*
IF (T(I,NK).LT.T0COND) THEN
ZSSR(I) = ZSRR(I)
ZSRR(I) = 0.0
END IF
*
100 CONTINUE
*
DO 102 K=1,NK
DO 102 I=1,NI
*
ZTE(I,K) = DTEX(I,K)
ZQE(I,K) = DQEX(I,K)
*
102 CONTINUE
*
*
*
RETURN
END