!copyright (C) 2001 MSC-RPN COMM %%%RPNPHY%%%
*** S/P CLSGS2
*
#include "phy_macros_f.h"
SUBROUTINE CLSGS2 (THL, TVE, QW, QC, FRAC, FNN, C1, 1,3
1 ZN, ZE, S, PS, A, B, C, N, NK)
*
#include "impnone.cdk"
*
*
INTEGER N, NK
REAL THL(N,NK), TVE(N,NK), QW(N,NK), QC(N,NK)
REAL FRAC(N,NK), FNN(N,NK)
REAL C1(N,NK), ZN(N,NK), ZE(N,NK), S(N,NK)
REAL A(N,NK), B(N,NK), C(N,NK)
REAL PS(N)
*
*Author
* J. Mailhot (Jun 2002)
*
*Revision
* 001 J. Mailhot (Feb 2003) Clipping at upper levels
* 002 S. Belair (Apr 2003) Minimum values of 50 m for ZE and ZN
* in calculation of sigmase.
* 002 A-M. Leduc (Jun 2003) Pass ps to blweight ---> blweight2
*
*Object
* Calculate the boundary layer sub-grid-scale cloud properties
*
*Arguments
*
* - Input -
* THL cloud water potential temperature
* TVE virtual temperature on 'E' levels
* QW total water content
*
* - Output -
* QC cloud water content
* FRAC cloud fraction
* FNN flux enhancement factor (fn) times cloud fraction (N)
*
* - Input -
* C1 constant C1 in second-order moment closure
* ZN length scale for turbulent mixing (on 'E' levels)
* ZE length scale for turbulent dissipationa (on 'E' levels)
* S sigma levels
* PS surface pressure (in Pa)
* A thermodynamic coefficient
* B thermodynamic coefficient
* C thermodynamic coefficient
* N horizontal dimension
* NK vertical dimension
*
*
*Notes
* Implicit (i.e. subgrid-scale) cloudiness scheme for unified
* description of stratiform and shallow, nonprecipitating
* cumulus convection appropriate for a low-order turbulence
* model based on Bechtold et al.:
* - Bechtold and Siebesma 1998, JAS 55, 888-895
* - Cuijpers and Bechtold 1995, JAS 52, 2486-2490
* - Bechtold et al. 1995, JAS 52, 455-463
* - Bechtold et al. 1992, JAS 49, 1723-1744
*
*
*IMPLICITS
*
#include "consphy.cdk"
*
**
*
INTEGER J, K, ITOTAL
*
*
REAL EPSILON
REAL QCMIN, QCMAX
*
*
*
***********************************************************
* AUTOMATIC ARRAYS
**********************************************************
*
AUTOMATIC ( DZ , REAL , (N,NK) )
AUTOMATIC ( DQWDZ , REAL , (N,NK) )
AUTOMATIC ( DTHLDZ , REAL , (N,NK) )
AUTOMATIC ( SIGMAS , REAL , (N,NK) )
AUTOMATIC ( SIGMASE , REAL , (N,NK) )
AUTOMATIC ( Q1 , REAL , (N,NK) )
AUTOMATIC ( WEIGHT , REAL , (N,NK) )
*
***********************************************************
*
*
*MODULES
*
EXTERNAL DVRTDF, BLWEIGHT
*
*------------------------------------------------------------------------
*
EPSILON = 1.0E-10
QCMIN = 1.0E-6
QCMAX = 1.0E-3
*
*
*
* 1. Vertical derivative of THL and QW
* ----------------------------------------
*
DO K=1,NK-1
DO J=1,N
DZ(J,K) = -RGASD*TVE(J,K)*ALOG( S(J,K+1)/S(J,K) ) / GRAV
END DO
END DO
*
DO J=1,N
DZ(J,NK) = 0.0
END DO
*
CALL DVRTDF
( DTHLDZ, THL, DZ, N, N, N, NK)
CALL DVRTDF
( DQWDZ, QW, DZ, N, N, N, NK)
*
*
* 2. Standard deviation of s and normalized saturation deficit Q1
* -------------------------------------------------------------------
*
DO K=1,NK-1
DO J=1,N
* sigmas (cf. BCMT 1995 eq. 10)
* (computation on 'E' levels stored in SIGMASE)
SIGMASE(J,K) =
1 SQRT( C1(J,K)*MAX(ZN(J,K),50.)*MAX(ZE(J,K),50.) ) *
1 ABS( 0.5*(A(J,K)+A(J,K+1))*DQWDZ(J,K)
1 - 0.5*(B(J,K)+B(J,K+1))*DTHLDZ(J,K) )
END DO
END DO
*
DO K=2,NK-1
DO J=1,N
* (back to full levels)
SIGMAS(J,K) = 0.5*( SIGMASE(J,K) + SIGMASE(J,K-1) )
* normalized saturation deficit
Q1(J,K) = C(J,K) / ( SIGMAS(J,K) + EPSILON )
Q1(J,K) = MAX ( -6. , MIN ( 4. , Q1(J,K) ) )
END DO
END DO
*
DO J=1,N
SIGMAS(J,1) = 0.0
SIGMAS(J,NK) = 0.0
Q1(J,1) = 0.0
Q1(J,NK) = 0.0
END DO
*
*
* 3. Cloud properties
* -----------------------
* cloud fraction, cloud water content
* and flux enhancement factor
* (cf. BS 1998 Appendix B)
DO K=2,NK-1
DO J=1,N
*
IF( Q1(J,K) .GT. -1.2 ) THEN
FRAC(J,K) = MAX ( 0. , MIN ( 1. ,
1 0.5 + 0.36*ATAN(1.55*Q1(J,K)) ) )
ELSEIF( Q1(J,K) .GE. -6.0 ) THEN
FRAC(J,K) = EXP ( Q1(J,K)-1.0 )
ELSE
FRAC(J,K) = 0.0
ENDIF
*
IF( Q1(J,K) .GE. 0.0 ) THEN
QC(J,K) = EXP( -1.0 ) + 0.66*Q1(J,K) + 0.086*Q1(J,K)**2
ELSEIF( Q1(J,K) .GE. -6.0 ) THEN
QC(J,K) = EXP( 1.2*Q1(J,K)-1.0 )
ELSE
QC(J,K) = 0.0
ENDIF
*
QC(J,K) = MIN ( QC(J,K)*( SIGMAS(J,K) + EPSILON )
1 , QCMAX )
*
FNN(J,K) = 1.0
IF( Q1(J,K).LT.1.0 .AND. Q1(J,K).GE.-1.68 ) THEN
FNN(J,K) = EXP( -0.3*(Q1(J,K)-1.0) )
ELSEIF( Q1(J,K).LT.-1.68 .AND. Q1(J,K).GE.-2.5 ) THEN
FNN(J,K) = EXP( -2.9*(Q1(J,K)+1.4) )
ELSEIF( Q1(J,K).LT.-2.5 ) THEN
FNN(J,K) = 23.9 + EXP( -1.6*(Q1(J,K)+2.5) )
ENDIF
* flux enhancement factor * cloud fraction
* (parameterization formulation)
FNN(J,K) = FNN(J,K)*FRAC(J,K)
IF( Q1(J,K).LE.-2.39 .AND. Q1(J,K).GE.-4.0 ) THEN
FNN(J,K) = 0.60
ELSEIF( Q1(J,K).LT.-4.0 .AND. Q1(J,K).GE.-6.0 ) THEN
FNN(J,K) = 0.30*( Q1(J,K)+6.0 )
ELSEIF( Q1(J,K).LT.-6.0 ) THEN
FNN(J,K) = 0.0
ENDIF
*
*
END DO
END DO
*
DO J=1,N
FRAC(J,1) = 0.
FRAC(J,NK) = 0.
FNN(J,1) = 0.
FNN(J,NK) = 0.
QC(J,1) = 0.
QC(J,NK) = 0.
END DO
*
*
CALL BLWEIGHT2
( WEIGHT, S, PS, N, NK)
*
DO K=1,NK
DO J=1,N
FRAC(J,K) = FRAC(J,K)*WEIGHT(J,K)
FNN(J,K) = FNN(J,K)*WEIGHT(J,K)
QC(J,K) = QC(J,K)*WEIGHT(J,K)
END DO
END DO
*
*
RETURN
END