*IF DEF,A05_2A,OR,DEF,A05_2C AJX1F405.159
C ******************************COPYRIGHT****************************** GTS2F400.2575
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.2576
C GTS2F400.2577
C Use, duplication or disclosure of this code is subject to the GTS2F400.2578
C restrictions as set forth in the contract. GTS2F400.2579
C GTS2F400.2580
C Meteorological Office GTS2F400.2581
C London Road GTS2F400.2582
C BRACKNELL GTS2F400.2583
C Berkshire UK GTS2F400.2584
C RG12 2SZ GTS2F400.2585
C GTS2F400.2586
C If no contract has been raised with this copy of the code, the use, GTS2F400.2587
C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.2588
C to do so must first be obtained in writing from the Head of Numerical GTS2F400.2589
C Modelling at the above address. GTS2F400.2590
C ******************************COPYRIGHT****************************** GTS2F400.2591
C GTS2F400.2592
CLL SUBROUTINE EVP---------------------------------------------------- EVP2A.3
CLL EVP2A.4
CLL PURPOSE : CALCULATES THE EVAPORATION OF PRECIPITATION EVP2A.5
CLL EVP2A.6
CLL SUITABLE FOR SINGLE COLUMN MODEL USE EVP2A.7
CLL EVP2A.8
CLL CODE WRITTEN FOR CRAY Y-MP BY S.BETT AND D.GREGORY AUTUMN 1991 EVP2A.9
CLL EVP2A.10
CLL PROGRAMMING STANDARDS : UNIFIED MODEL DOCUMENTATION PAPER NO. 3 EVP2A.11
CLL VERSION NO. 4 DATED 23/7/92 EVP2A.12
CLL EVP2A.13
CLL LOGICAL COMPONENTS COVERED: EVP2A.14
CLL EVP2A.15
CLL SYSTEM TASK : P27 EVP2A.16
CLL EVP2A.17
CLL DOCUMENTATION : UNIFIED MODEL DOCUMENTATION PAPER P27 EVP2A.18
CLL EVP2A.19
CLLEND----------------------------------------------------------------- EVP2A.20
C Vn.4.2 Oct. 96 T3E migration: *DEF CRAY removed, HF functions GSS4F402.7
C replaced. GSS4F402.8
C S.J.Swarbrick GSS4F402.9
CLL 4.3 Feb. 97 T3E optimisation of powers & sqrt GSS1F403.312
CLL D.Salmond & S.J.Swarbrick GSS1F403.313
C EVP2A.21
C*L ARGUMENTS--------------------------------------------------------- EVP2A.22
C EVP2A.23
SUBROUTINE EVP(NPNTS,PRECIP,TEVP,CCA,RHO,DELQ,DELPKM1,EVAP, 8EVP2A.24
& BEVAP,IPHASE,AREA_FAC) EVP2A.25
C EVP2A.26
IMPLICIT NONE EVP2A.27
C EVP2A.28
C----------------------------------------------------------------------- EVP2A.29
C MODEL CONSTANTS USED IN THIS SUBROUTINE EVP2A.30
C----------------------------------------------------------------------- EVP2A.31
C EVP2A.32
*CALL C_G
EVP2A.33
*CALL DDEVAP
EVP2A.34
*CALL DDEVPLQ
EVP2A.35
*CALL DDEVPICE
EVP2A.36
C EVP2A.37
C----------------------------------------------------------------------- EVP2A.38
C VECTOR LENGTHS AND LOOP COUNTERS EVP2A.39
C----------------------------------------------------------------------- EVP2A.40
C EVP2A.41
INTEGER I ! LOOP COUNTER EVP2A.42
C EVP2A.43
INTEGER NPNTS ! IN VECTOR LENGTH EVP2A.44
C EVP2A.45
C----------------------------------------------------------------------- EVP2A.46
C VARIABLES WHICH ARE INPUT EVP2A.47
C----------------------------------------------------------------------- EVP2A.48
C EVP2A.49
C EVP2A.50
REAL DELQ(NPNTS) ! IN CHANGE IN HUMIDITY MIXING EVP2A.51
! RATIO ACROSS LAYER K (KG/KG) EVP2A.52
C EVP2A.53
REAL TEVP(NPNTS) ! IN TEMPERATURE OF LAYER K (K) EVP2A.54
C EVP2A.55
LOGICAL BEVAP(NPNTS) ! IN MASK FOR POINTS WHERE EVAPORATION EVP2A.56
! TAKES PLACE EVP2A.57
C EVP2A.58
REAL PRECIP(NPNTS) ! IN AMOUNT OF PRECIPITATION(KG/M**2/S) EVP2A.59
C EVP2A.60
REAL DELPKM1(NPNTS) ! IN CHANGE IN PRESSURE ACROSS EVP2A.61
! LAYER K-1 EVP2A.62
C EVP2A.63
REAL CCA(NPNTS) ! IN CONVECTIVE CLOUD AMOUNT EVP2A.64
C EVP2A.65
REAL RHO(NPNTS) ! IN DENSITY OF AIR EVP2A.66
C EVP2A.67
INTEGER IPHASE ! IN INDICATION FOR RAIN (1), OR EVP2A.68
! SNOW (2) EVP2A.69
C EVP2A.70
C----------------------------------------------------------------------- EVP2A.71
C VARIABLES WHICH ARE OUTPUT EVP2A.72
C----------------------------------------------------------------------- EVP2A.73
C EVP2A.74
REAL EVAP(NPNTS) ! OUT EVAPORATION EVP2A.75
C EVP2A.76
C----------------------------------------------------------------------- EVP2A.77
C EXTERNAL ROUTINES EVP2A.78
C----------------------------------------------------------------------- EVP2A.79
C EVP2A.80
C EVP2A.85
C----------------------------------------------------------------------- EVP2A.86
C VARIABLES WHICH ARE LOCALLY DEFINED EVP2A.87
C----------------------------------------------------------------------- EVP2A.88
C EVP2A.89
REAL ECON ! QUADRATIC TERM EVP2A.90
C EVP2A.91
REAL C1 ! CONSTANT EVP2A.92
C EVP2A.93
REAL C2 ! CONSTANT EVP2A.94
C EVP2A.95
REAL SR_RHO ! SQUARE ROOT OF DENSITY EVP2A.96
C EVP2A.97
REAL LRATE ! LOCAL RATE OF PRECIPITATION EVP2A.98
C EVP2A.99
REAL CA ! LOCAL CLOUD AREA EVP2A.100
C EVP2A.101
REAL AREA_FAC ! FRACTION OF CONVECTIVE CLOUD AMOUNT TO GIVE EVP2A.102
! LOCAL CLOUD AREA EVP2A.103
real work1(npnts),work2(npnts),work3(npnts), GSS1F403.314
1 r_work1(npnts),r_work2(npnts), GSS1F403.315
1 r_rho(npnts) GSS1F403.316
integer kk GSS1F403.317
real tl1,ti1 GSS1F403.318
C EVP2A.104
C----------------------------------------------------------------------- EVP2A.105
C START OF ROUTINE EVP2A.106
C----------------------------------------------------------------------- EVP2A.107
C EVP2A.108
tl1=0.5*P_LQ1 GSS1F403.319
ti1=0.5*P_ICE1 GSS1F403.320
GSS1F403.321
kk=0 GSS1F403.322
do i=1,npnts GSS1F403.323
IF (BEVAP(I).AND.PRECIP(I) .GT. 0.0)THEN GSS1F403.324
kk=kk+1 GSS1F403.325
CA = AREA_FAC*CCA(I) GSS1F403.326
LRATE = PRECIP(I)/CA GSS1F403.327
work1(kk)=LRATE*LRATE*RHO(I) GSS1F403.328
work2(kk)=LRATE GSS1F403.329
work3(kk)=RHO(I) GSS1F403.330
ENDIF GSS1F403.331
enddo GSS1F403.332
GSS1F403.333
IF (IPHASE.EQ.1) THEN ! RAIN EVP2A.109
C EVP2A.110
*IF DEF,VECTLIB PXVECTLB.4
call powr_v(
kk,work1,tl1,r_work1) GSS1F403.335
call powr_v(
kk,work2,P_LQ2,r_work2) GSS1F403.336
call powr_v(
kk,work3,RHO_LQP2,r_rho) GSS1F403.337
*ELSE GSS1F403.338
do i=1,kk GSS1F403.339
r_work1(i)=work1(i)**tl1 GSS1F403.340
r_work2(i)=work2(i)**P_LQ2 GSS1F403.341
r_rho (i)=work3(i)**RHO_LQP2 GSS1F403.342
end do GSS1F403.343
*ENDIF GSS1F403.344
kk=0 GSS1F403.345
DO I=1,NPNTS EVP2A.111
IF (BEVAP(I)) THEN EVP2A.112
IF (PRECIP(I) .GT. 0.0) THEN EVP2A.113
kk=kk+1 GSS1F403.346
ECON = ((LQ_A*TEVP(I)+LQ_B)*TEVP(I)+LQ_C) EVP2A.114
CA = AREA_FAC*CCA(I) EVP2A.115
LRATE = PRECIP(I)/CA EVP2A.116
C1 = RHO_LQA*CA*r_work1(kk) GSS1F403.347
C2 = RHO_LQB*CA*r_work2(kk)*r_rho(kk) GSS1F403.348
EVAP(I) = MIN(ECON*(C1+C2)*DELQ(I)*DELPKM1(I)/G,LRATE) EVP2A.127
ELSE EVP2A.128
EVAP(I) = 0.0 EVP2A.129
END IF EVP2A.130
END IF EVP2A.131
END DO EVP2A.132
C EVP2A.133
ELSE IF (IPHASE.EQ.2) THEN ! SNOW EVP2A.134
C EVP2A.135
*IF DEF,VECTLIB PXVECTLB.5
call powr_v(
kk,work1,ti1,r_work1) GSS1F403.350
call powr_v(
kk,work2,P_ICE2,r_work2) GSS1F403.351
call powr_v(
kk,work3,RHO_ICP2,r_rho) GSS1F403.352
*ELSE GSS1F403.353
do i=1,kk GSS1F403.354
r_work1(i)=work1(i)**ti1 GSS1F403.355
r_work2(i)=work2(i)**P_ICE2 GSS1F403.356
r_rho (i)=work3(i)**RHO_ICP2 GSS1F403.357
end do GSS1F403.358
*ENDIF GSS1F403.359
C GSS1F403.360
kk=0 GSS1F403.361
DO I=1,NPNTS EVP2A.136
IF (BEVAP(I)) THEN EVP2A.137
IF (PRECIP(I) .GT. 0.0) THEN EVP2A.138
kk=kk+1 GSS1F403.362
ECON = ((ICE_A*TEVP(I)+ICE_B)*TEVP(I)+ICE_C) EVP2A.139
CA = AREA_FAC*CCA(I) EVP2A.140
LRATE = PRECIP(I)/CA EVP2A.141
C1 = RHO_ICEA*CA*r_work1(kk) GSS1F403.363
C2 = RHO_ICEB*CA*r_work2(kk)*r_rho(kk) GSS1F403.364
EVAP(I) = MIN(ECON*(C1+C2)*DELQ(I)*DELPKM1(I)/G,LRATE) EVP2A.152
ELSE EVP2A.153
EVAP(I) = 0.0 EVP2A.154
END IF EVP2A.155
END IF EVP2A.156
END DO EVP2A.157
C EVP2A.158
ENDIF EVP2A.159
C EVP2A.160
RETURN EVP2A.161
END EVP2A.162
C EVP2A.163
*ENDIF EVP2A.164