*IF DEF,A05_3B,OR,DEF,A05_3C AJX1F405.180
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.14742
C GTS2F400.14743
C Use, duplication or disclosure of this code is subject to the GTS2F400.14744
C restrictions as set forth in the contract. GTS2F400.14745
C GTS2F400.14746
C Meteorological Office GTS2F400.14747
C London Road GTS2F400.14748
C BRACKNELL GTS2F400.14749
C Berkshire UK GTS2F400.14750
C RG12 2SZ GTS2F400.14751
C GTS2F400.14752
C If no contract has been raised with this copy of the code, the use, GTS2F400.14753
C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.14754
C to do so must first be obtained in writing from the Head of Numerical GTS2F400.14755
C Modelling at the above address. GTS2F400.14756
C ******************************COPYRIGHT****************************** GTS2F400.14757
C GTS2F400.14758
CLL SUBROUTINE EVP---------------------------------------------------- EVP3A.3
CLL EVP3A.4
CLL PURPOSE : CALCULATES THE EVAPORATION OF PRECIPITATION EVP3A.5
CLL EVP3A.6
CLL SUITABLE FOR SINGLE COLUMN MODEL USE EVP3A.7
CLL EVP3A.8
CLL MODEL MODIFICATION HISTORY FROM MODEL VERSION 3.0: EVP3A.9
CLL VERSION DATE EVP3A.10
CLL 4.0 5/05/95 New deck at version 4.0 to include pressure EVP3A.11
CLL dependency into calculation of evaporation of EVP3A.12
CLL convective precipitation. EVP3A.13
CLL Pete Inness. EVP3A.14
CLL 4.2 Oct. 96 T3E migration: *DEF CRAY removed, HF functions GSS4F402.10
CLL replaced. GSS4F402.11
CLL S.J.Swarbrick GSS4F402.12
CLL 4.3 Feb. 97 T3E optimisation of powers & sqrt GSS1F403.365
CLL D.Salmond & S.J.Swarbrick GSS1F403.366
CLL EVP3A.15
CLL PROGRAMMING STANDARDS : UNIFIED MODEL DOCUMENTATION PAPER NO. 3 EVP3A.16
CLL VERSION NO. 4 DATED 23/7/92 EVP3A.17
CLL EVP3A.18
CLL LOGICAL COMPONENTS COVERED: EVP3A.19
CLL EVP3A.20
CLL SYSTEM TASK : P27 EVP3A.21
CLL EVP3A.22
CLL DOCUMENTATION : UNIFIED MODEL DOCUMENTATION PAPER P27 EVP3A.23
CLL EVP3A.24
CLLEND----------------------------------------------------------------- EVP3A.25
C EVP3A.26
C*L ARGUMENTS--------------------------------------------------------- EVP3A.27
C EVP3A.28
SUBROUTINE EVP(NPNTS,PRECIP,TEVP,CCA,RHO,DELQ,DELPKM1,EVAP, 8EVP3A.29
& BEVAP,IPHASE,AREA_FAC,PKM1) EVP3A.30
C EVP3A.31
IMPLICIT NONE EVP3A.32
C EVP3A.33
C----------------------------------------------------------------------- EVP3A.34
C MODEL CONSTANTS USED IN THIS SUBROUTINE EVP3A.35
C----------------------------------------------------------------------- EVP3A.36
C EVP3A.37
*CALL C_G
EVP3A.38
*CALL DDEVAP
EVP3A.39
*CALL DDEVPLQ
EVP3A.40
*CALL DDEVPICE
EVP3A.41
C EVP3A.42
C----------------------------------------------------------------------- EVP3A.43
C VECTOR LENGTHS AND LOOP COUNTERS EVP3A.44
C----------------------------------------------------------------------- EVP3A.45
C EVP3A.46
INTEGER I ! LOOP COUNTER EVP3A.47
C EVP3A.48
INTEGER NPNTS ! IN VECTOR LENGTH EVP3A.49
C EVP3A.50
C----------------------------------------------------------------------- EVP3A.51
C VARIABLES WHICH ARE INPUT EVP3A.52
C----------------------------------------------------------------------- EVP3A.53
C EVP3A.54
C EVP3A.55
REAL DELQ(NPNTS) ! IN CHANGE IN HUMIDITY MIXING EVP3A.56
! RATIO ACROSS LAYER K (KG/KG) EVP3A.57
C EVP3A.58
REAL TEVP(NPNTS) ! IN TEMPERATURE OF LAYER K (K) EVP3A.59
C EVP3A.60
LOGICAL BEVAP(NPNTS) ! IN MASK FOR POINTS WHERE EVAPORATION EVP3A.61
! TAKES PLACE EVP3A.62
C EVP3A.63
REAL PRECIP(NPNTS) ! IN AMOUNT OF PRECIPITATION(KG/M**2/S) EVP3A.64
C EVP3A.65
REAL DELPKM1(NPNTS) ! IN CHANGE IN PRESSURE ACROSS EVP3A.66
! LAYER K-1 EVP3A.67
C EVP3A.68
REAL CCA(NPNTS) ! IN CONVECTIVE CLOUD AMOUNT EVP3A.69
C EVP3A.70
REAL RHO(NPNTS) ! IN DENSITY OF AIR EVP3A.71
C EVP3A.72
INTEGER IPHASE ! IN INDICATION FOR RAIN (1), OR EVP3A.73
! SNOW (2) EVP3A.74
C EVP3A.75
REAL PKM1(NPNTS) ! IN PRESSURE AT LEVEL KM1 EVP3A.76
C EVP3A.77
C----------------------------------------------------------------------- EVP3A.78
C VARIABLES WHICH ARE OUTPUT EVP3A.79
C----------------------------------------------------------------------- EVP3A.80
C EVP3A.81
REAL EVAP(NPNTS) ! OUT EVAPORATION EVP3A.82
C EVP3A.83
C----------------------------------------------------------------------- EVP3A.84
C EXTERNAL ROUTINES EVP3A.85
C----------------------------------------------------------------------- EVP3A.86
C EVP3A.87
C EVP3A.92
C----------------------------------------------------------------------- EVP3A.93
C VARIABLES WHICH ARE LOCALLY DEFINED EVP3A.94
C----------------------------------------------------------------------- EVP3A.95
C EVP3A.96
REAL ECON ! QUADRATIC TERM EVP3A.97
C EVP3A.98
REAL C1 ! CONSTANT EVP3A.99
C EVP3A.100
REAL C2 ! CONSTANT EVP3A.101
C EVP3A.102
REAL SR_RHO ! SQUARE ROOT OF DENSITY EVP3A.103
C EVP3A.104
REAL LRATE ! LOCAL RATE OF PRECIPITATION EVP3A.105
C EVP3A.106
REAL CA ! LOCAL CLOUD AREA EVP3A.107
C EVP3A.108
REAL AREA_FAC ! FRACTION OF CONVECTIVE CLOUD AMOUNT TO GIVE EVP3A.109
! LOCAL CLOUD AREA EVP3A.110
real work1(npnts),work2(npnts),work3(npnts), GSS1F403.367
1 r_work1(npnts),r_work2(npnts), GSS1F403.368
1 r_rho(npnts) GSS1F403.369
integer kk GSS1F403.370
real tl1,ti1 GSS1F403.371
C EVP3A.111
C----------------------------------------------------------------------- EVP3A.112
C START OF ROUTINE EVP3A.113
C----------------------------------------------------------------------- EVP3A.114
C EVP3A.115
tl1=0.5*P_LQ1 GSS1F403.372
ti1=0.5*P_ICE1 GSS1F403.373
C GSS1F403.374
kk=0 GSS1F403.375
do i=1,npnts GSS1F403.376
IF (BEVAP(I).AND.PRECIP(I) .GT. 0.0)THEN GSS1F403.377
kk=kk+1 GSS1F403.378
CA = AREA_FAC*CCA(I) GSS1F403.379
LRATE = PRECIP(I)/CA GSS1F403.380
work1(kk)=LRATE*LRATE*RHO(I) GSS1F403.381
work2(kk)=LRATE GSS1F403.382
work3(kk)=RHO(I) GSS1F403.383
ENDIF GSS1F403.384
enddo GSS1F403.385
C GSS1F403.386
IF (IPHASE.EQ.1) THEN ! RAIN EVP3A.116
C EVP3A.117
*IF DEF,VECTLIB PXVECTLB.6
call powr_v(
kk,work1,tl1,r_work1) GSS1F403.388
call powr_v(
kk,work2,P_LQ2,r_work2) GSS1F403.389
call powr_v(
kk,work3,RHO_LQP2,r_rho) GSS1F403.390
*ELSE GSS1F403.391
do i=1,kk GSS1F403.392
r_work1(i)=work1(i)**tl1 GSS1F403.393
r_work2(i)=work2(i)**P_LQ2 GSS1F403.394
r_rho (i)=work3(i)**RHO_LQP2 GSS1F403.395
end do GSS1F403.396
*ENDIF GSS1F403.397
C GSS1F403.398
kk=0 GSS1F403.399
DO I=1,NPNTS EVP3A.118
IF (BEVAP(I)) THEN EVP3A.119
IF (PRECIP(I) .GT. 0.0) THEN EVP3A.120
kk=kk+1 GSS1F403.400
ECON = ((LQ_A*TEVP(I)+LQ_B)*TEVP(I)+LQ_C)* EVP3A.121
& (100000.0/PKM1(I)) EVP3A.122
CA = AREA_FAC*CCA(I) EVP3A.123
LRATE = PRECIP(I)/CA EVP3A.124
C1 = RHO_LQA*CA*r_work1(kk) GSS1F403.401
C2 = RHO_LQB*CA*r_work2(kk)*r_rho(kk) GSS1F403.402
EVAP(I) = MIN(ECON*(C1+C2)*DELQ(I)*DELPKM1(I)/G,LRATE) EVP3A.135
ELSE EVP3A.136
EVAP(I) = 0.0 EVP3A.137
END IF EVP3A.138
END IF EVP3A.139
END DO EVP3A.140
C EVP3A.141
ELSE IF (IPHASE.EQ.2) THEN ! SNOW EVP3A.142
C EVP3A.143
*IF DEF,VECTLIB PXVECTLB.7
call powr_v(
kk,work1,ti1,r_work1) GSS1F403.404
call powr_v(
kk,work2,P_ICE2,r_work2) GSS1F403.405
call powr_v(
kk,work3,RHO_ICP2,r_rho) GSS1F403.406
*ELSE GSS1F403.407
do i=1,kk GSS1F403.408
r_work1(i)=work1(i)**ti1 GSS1F403.409
r_work2(i)=work2(i)**P_ICE2 GSS1F403.410
r_rho (i)=work3(i)**RHO_ICP2 GSS1F403.411
end do GSS1F403.412
*ENDIF GSS1F403.413
C GSS1F403.414
kk=0 GSS1F403.415
DO I=1,NPNTS EVP3A.144
IF (BEVAP(I)) THEN EVP3A.145
IF (PRECIP(I) .GT. 0.0) THEN EVP3A.146
kk=kk+1 GSS1F403.416
IF(TEVP(I).LE.243.58) THEN EVP3A.147
ECON = 1.7405E-5*(100000.0/PKM1(I)) EVP3A.148
ELSE EVP3A.149
ECON = ((ICE_A*TEVP(I)+ICE_B)*TEVP(I)+ICE_C)* EVP3A.150
& (100000.0/PKM1(I)) EVP3A.151
END IF EVP3A.152
CA = AREA_FAC*CCA(I) EVP3A.153
LRATE = PRECIP(I)/CA EVP3A.154
C1 = RHO_ICEA*CA*r_work1(kk) GSS1F403.417
C2 = RHO_ICEB*CA*r_work2(kk)*r_rho(kk) GSS1F403.418
EVAP(I) = MIN(ECON*(C1+C2)*DELQ(I)*DELPKM1(I)/G,LRATE) EVP3A.165
ELSE EVP3A.166
EVAP(I) = 0.0 EVP3A.167
END IF EVP3A.168
END IF EVP3A.169
END DO EVP3A.170
C EVP3A.171
ENDIF EVP3A.172
C EVP3A.173
RETURN EVP3A.174
END EVP3A.175
C EVP3A.176
*ENDIF EVP3A.177