*IF DEF,RECON,OR,DEF,SCMA AJC0F405.1
C ******************************COPYRIGHT****************************** GTS2F400.4861
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.4862
C GTS2F400.4863
C Use, duplication or disclosure of this code is subject to the GTS2F400.4864
C restrictions as set forth in the contract. GTS2F400.4865
C GTS2F400.4866
C Meteorological Office GTS2F400.4867
C London Road GTS2F400.4868
C BRACKNELL GTS2F400.4869
C Berkshire UK GTS2F400.4870
C RG12 2SZ GTS2F400.4871
C GTS2F400.4872
C If no contract has been raised with this copy of the code, the use, GTS2F400.4873
C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.4874
C to do so must first be obtained in writing from the Head of Numerical GTS2F400.4875
C Modelling at the above address. GTS2F400.4876
C ******************************COPYRIGHT****************************** GTS2F400.4877
C GTS2F400.4878
CLL SUBROUTINE INITQLCF------------------------------------------------ INITQLC1.3
CLL INITQLC1.4
CLL Purpose: Diagnose (initialise) cloud water (frozen + liquid INITQLC1.5
CLL separately) and cloud amount, from standard prognostic INITQLC1.6
CLL model variables (Q, T, P*). INITQLC1.7
CLL INITQLC1.8
CLL For initialisation of RHC see the documentation INITQLC1.9
CLL of sub-component P292 (large-scale cloud). SRHC1 and SRHC2 INITQLC1.10
CLL contain the critical relative humidity discussed in the INITQLC1.11
CLL paragraph incorporating equations P292.11 - P292.14. The INITQLC1.12
CLL values below are based on those used in the old GCM. INITQLC1.13
CLL INITQLC1.14
CLL C.Wilson <- programmer of some or all of previous code or changes INITQLC1.15
CLL INITQLC1.16
CLL Model Modification history from model version 3.0: INITQLC1.17
CLL version Date INITQLC1.18
CLL 4.5 01/05/1998 modify prototype in order to introduce SCM. AJC0F405.2
CLL (JC Thil) AJC0F405.3
CLL INITQLC1.19
CLL Programming standard : INITQLC1.20
CLL INITQLC1.21
CLL Logical components covered : P292 INITQLC1.22
CLL INITQLC1.23
CLL Project task : INITQLC1.24
CLL INITQLC1.25
CLL External documentation: INITQLC1.26
CLL INITQLC1.27
CLLEND ----------------------------------------------------------------- INITQLC1.28
CLL INITQLC1.29
C*L Arguments:--------------------------------------------------------- INITQLC1.30
SUBROUTINE INITQLCF 2,1INITQLC1.31
*IF DEF,SCMA AJC0F405.4
& (AK,BK,RHCRIT,PSTAR,Q,T,P_LEVELS,NPTS,OCF,OQCF,OQCL,NBL,JLEV) AJC0F405.5
*ELSE AJC0F405.6
+(AK,BK,PSTAR,Q,T,P_LEVELS,NPTS,OCF,OQCF,OQCL,NBL,JLEV) INITQLC1.32
*ENDIF AJC0F405.7
INITQLC1.33
IMPLICIT NONE INITQLC1.34
INITQLC1.35
INTEGER INITQLC1.36
+ NBL ! IN No of levels in b.l. INITQLC1.37
+,JLEV ! IN Model level to be processed INITQLC1.38
+,NPTS ! IN No. of gridpoints at each level. INITQLC1.39
+,P_LEVELS ! IN No. of hybrid levels in the model. INITQLC1.40
INITQLC1.41
REAL INITQLC1.42
+ AK(P_LEVELS) ! IN Hybrid co-ordinate. INITQLC1.43
+,BK(P_LEVELS) ! IN Hybrid co-ordinate. INITQLC1.44
*IF DEF,SCMA AJC0F405.8
& ,RHCRIT(P_LEVELS) ! Critical relative humidities AJC0F405.9
*ENDIF AJC0F405.10
+,PSTAR(NPTS) ! IN Surface pressure (Pa). INITQLC1.45
+,Q(NPTS) ! IN Sp humidity (kg water per kg air). INITQLC1.46
+,T(NPTS) ! IN Temperature (K). INITQLC1.47
+,OCF(NPTS) ! OUT Cloud fraction (decimal fraction). INITQLC1.48
+,OQCF(NPTS) ! OUT Cloud ice content (kg per kg air). INITQLC1.49
+,OQCL(NPTS) ! OUT Cloud liquid water (kg per kg air). INITQLC1.50
INITQLC1.51
C External subroutine called------------------------------------------- INITQLC1.52
EXTERNAL QSAT INITQLC1.53
C Workspace usage:----------------------------------------------------- INITQLC1.54
REAL ! Workspace (see later comments for usage):- INITQLC1.55
+ W(NPTS) ! WORK INITQLC1.56
+,WQSAT(NPTS) ! WORK INITQLC1.57
C*--------------------------------------------------------------------- INITQLC1.58
C Local varables:------------------------------------------------------ INITQLC1.59
REAL ! Local (see later comments for usage):- INITQLC1.60
+ WAC ! LOCAL INITQLC1.61
+,WRH ! LOCAL INITQLC1.62
+,ALPHALRCP ! LOCAL INITQLC1.63
+,QC ! LOCAL Cloud water/ice content INITQLC1.64
INITQLC1.65
*CALL C_LHEAT
INITQLC1.66
*CALL C_R_CP
INITQLC1.67
*CALL C_EPSLON
INITQLC1.68
*CALL C_0_DG_C
INITQLC1.69
*CALL C_PI
INITQLC1.70
REAL PFIDDLE,PALCON2E,PALDEP2E,PRCP, ! Derived + local constants. INITQLC1.71
+ PC1,PC2,PC3 INITQLC1.72
PARAMETER ( INITQLC1.73
+ PFIDDLE=0.25 ! Used in 8/8 cloud case. INITQLC1.74
+,PALCON2E=LC*LC*EPSILON ! INITQLC1.75
+,PALDEP2E=(LC+LF)*(LC+LF)*EPSILON ! INITQLC1.76
+,PRCP=R*CP ! INITQLC1.77
+,PC1=1.060660172 ! 3/sqrt(8). INITQLC1.78
+,PC2=2.0*PC1 ! INITQLC1.79
+,PC3=PI/3.0 ! pi/3 INITQLC1.80
+) INITQLC1.81
INITQLC1.82
REAL SRHC1,SRHC2 !critical relative humidity consts INITQLC1.83
DATA SRHC1/0.925/ !in b.l. INITQLC1.84
*,SRHC2/0.85/ !above b.l. INITQLC1.85
REAL RHC !critical relative humidity INITQLC1.86
INITQLC1.87
INTEGER I ! Do loop index INITQLC1.88
INITQLC1.89
C----------------------------------------------------------------------- INITQLC1.90
CLL 0. Initialise critical relative humidity according to level INITQLC1.91
C----------------------------------------------------------------------- INITQLC1.92
INITQLC1.93
IF(JLEV.LT.NBL)THEN INITQLC1.94
RHC=SRHC1 INITQLC1.95
ELSE INITQLC1.96
RHC=SRHC2 INITQLC1.97
ENDIF INITQLC1.98
*IF DEF,SCMA AJC0F405.11
RHC = RHCRIT(JLEV) AJC0F405.12
*ENDIF AJC0F405.13
INITQLC1.99
C----------------------------------------------------------------------- INITQLC1.100
CLL 1. Calculate pressure (in array W), hence QSAT, hence relative INITQLC1.101
CLL humidity in WRH. INITQLC1.102
C----------------------------------------------------------------------- INITQLC1.103
DO I=1,NPTS INITQLC1.104
W(I)=AK(JLEV)+PSTAR(I)*BK(JLEV) INITQLC1.105
ENDDO INITQLC1.106
INITQLC1.107
CALL QSAT
(WQSAT,T(1),W,NPTS) INITQLC1.108
INITQLC1.109
DO I=1,NPTS INITQLC1.110
WRH=Q(I)/WQSAT(I) INITQLC1.111
IF(WRH.GT.1.0)WRH=1.0 INITQLC1.112
C----------------------------------------------------------------------- INITQLC1.113
CLL 2. Calculate cloud fraction OCF. (Known as C in formulae). INITQLC1.114
C----------------------------------------------------------------------- INITQLC1.115
OCF(I)=0.0 INITQLC1.116
IF(WRH.GT.RHC .AND. WRH.LT.(5.+RHC)/6.)THEN INITQLC1.117
OCF(I)=2.*COS(PC3+ACOS( PC1*(WRH-RHC)/(1.-RHC) )/3.) INITQLC1.118
OCF(I)=OCF(I)*OCF(I) INITQLC1.119
ENDIF INITQLC1.120
IF(WRH.GE.(5.+RHC)/6.)THEN INITQLC1.121
OCF(I)=PC2*(1.-WRH)/(1.-RHC) INITQLC1.122
OCF(I)=1.-OCF(I)**(2./3.) INITQLC1.123
ENDIF INITQLC1.124
IF(OCF(I).LT.0.0)OCF(I)=0.0 INITQLC1.125
IF(OCF(I).GT.1.0)OCF(I)=1.0 INITQLC1.126
C----------------------------------------------------------------------- INITQLC1.127
CLL 3. Calculate F(C) - store in WAC. INITQLC1.128
C----------------------------------------------------------------------- INITQLC1.129
WAC=0.0 INITQLC1.130
IF(OCF(I).LE.0.5 .AND. OCF(I).GT.0.0)THEN INITQLC1.131
WAC=2.*OCF(I) INITQLC1.132
WAC=SQRT(WAC*WAC*WAC)/6. INITQLC1.133
ENDIF INITQLC1.134
IF(OCF(I).GT.0.5)THEN INITQLC1.135
WAC=2.*(1.-OCF(I)) INITQLC1.136
WAC=1.+ INITQLC1.137
+ SQRT(WAC*WAC*WAC)/6.- INITQLC1.138
+ SQRT(WAC) INITQLC1.139
ENDIF INITQLC1.140
C----------------------------------------------------------------------- INITQLC1.141
CLL 4. Calculate A(C) - store in WAC. INITQLC1.142
C----------------------------------------------------------------------- INITQLC1.143
WAC=WAC*(1.-RHC) INITQLC1.144
C----------------------------------------------------------------------- INITQLC1.145
CLL 5. Calculate total cloud water - store in QC INITQLC1.146
C----------------------------------------------------------------------- INITQLC1.147
IF(T(I).GT.TM)THEN INITQLC1.148
ALPHALRCP=PALCON2E*WQSAT(I)/(PRCP*T(I)*T(I)) INITQLC1.149
ELSE INITQLC1.150
ALPHALRCP=PALDEP2E*WQSAT(I)/(PRCP*T(I)*T(I)) INITQLC1.151
ENDIF INITQLC1.152
C Special treatment of full liquid cloud cover case. INITQLC1.153
IF(OCF(I).GE.1. .AND. T(I).GE.TM)THEN INITQLC1.154
QC=PFIDDLE/(1.+ALPHALRCP*(1.+PFIDDLE)) INITQLC1.155
ELSE INITQLC1.156
QC=WAC/(1.+ALPHALRCP*(WRH+WAC)) INITQLC1.157
ENDIF INITQLC1.158
QC=QC*WQSAT(I) INITQLC1.159
C----------------------------------------------------------------------- INITQLC1.160
CLL 6. Partition cloud water into liquid and ice, and store in output INITQLC1.161
CLL arrays OQCL, OQCF. INITQLC1.162
C----------------------------------------------------------------------- INITQLC1.163
OQCL(I)=0.0 INITQLC1.164
OQCF(I)=0.0 INITQLC1.165
IF(T(I).GT.TM)THEN INITQLC1.166
OQCL(I)=QC INITQLC1.167
ELSE INITQLC1.168
OQCF(I)=QC INITQLC1.169
ENDIF INITQLC1.170
ENDDO ! loop over points INITQLC1.171
INITQLC1.172
RETURN INITQLC1.173
END INITQLC1.174
*ENDIF INITQLC1.175