*IF DEF,A17_1A VGRAV1A.2 C *****************************COPYRIGHT****************************** VGRAV1A.3 C (c) CROWN COPYRIGHT 1997, METEOROLOGICAL OFFICE, All Rights Reserved. VGRAV1A.4 C VGRAV1A.5 C Use, duplication or disclosure of this code is subject to the VGRAV1A.6 C restrictions as set forth in the contract. VGRAV1A.7 C VGRAV1A.8 C Meteorological Office VGRAV1A.9 C London Road VGRAV1A.10 C BRACKNELL VGRAV1A.11 C Berkshire UK VGRAV1A.12 C RG12 2SZ VGRAV1A.13 C VGRAV1A.14 C If no contract has been raised with this copy of the code, the use, VGRAV1A.15 C duplication or disclosure of it is strictly prohibited. Permission VGRAV1A.16 C to do so must first be obtained in writing from the Head of Numerical VGRAV1A.17 C Modelling at the above address. VGRAV1A.18 C ******************************COPYRIGHT****************************** VGRAV1A.19 ! Subroutine VGRAV ------------------------------------------------- VGRAV1A.20 ! VGRAV1A.21 ! Purpose: To calculate the gravitational sedimentation velocity of VGRAV1A.22 ! tracer particles according to Stoke's law, including the VGRAV1A.23 ! Cunningham correction factor. VGRAV1A.24 ! VGRAV1A.25 ! Current owners of code: S Woodward, M Woodage VGRAV1A.26 ! VGRAV1A.27 ! History: VGRAV1A.28 ! Version Date Comment VGRAV1A.29 ! ------- ---- ------- VGRAV1A.30 ! 4.4 03/10/97 Original code S Woodward, M Woodage VGRAV1A.31 ! VGRAV1A.32 ! Code description: VGRAV1A.33 ! Language: FORTRAN77 + extensions VGRAV1A.34 ! Programming standard: UMDP 3 Vn 6 VGRAV1A.35 ! VGRAV1A.36 ! System components covered: VGRAV1A.37 ! VGRAV1A.38 ! System task: VGRAV1A.39 ! VGRAV1A.40 !Documentation: Ref. Pruppacher & Klett VGRAV1A.41 ! Microphysics of clouds & ppn 1978,1980 edns. VGRAV1A.42 ! VGRAV1A.43 !----------------------------------------------------------------------- VGRAV1A.44 ! VGRAV1A.45SUBROUTINE VGRAV(PFIELD,NLEVS,DIAM,RHOP,PSTAR,AK,BK,T,VSTOKES, 1VGRAV1A.46 & CCF,ETAA,FIRST_POINT,LAST_POINT) VGRAV1A.47 ! VGRAV1A.48 implicit none VGRAV1A.49 ! VGRAV1A.50 ! VGRAV1A.51 INTEGER PFIELD !IN number of grid points VGRAV1A.52 INTEGER NLEVS !IN number of levels VGRAV1A.53 INTEGER FIRST_POINT !IN first pt for caln VGRAV1A.54 INTEGER LAST_POINT !IN last pt for calc VGRAV1A.55 ! VGRAV1A.56 REAL DIAM !IN particle diameter VGRAV1A.57 REAL RHOP !IN particles density VGRAV1A.58 REAL PSTAR(PFIELD) !IN surface pressure VGRAV1A.59 REAL AK(NLEVS) !IN A vals VGRAV1A.60 REAL BK(NLEVS) !IN B vals VGRAV1A.61 REAL T(PFIELD,NLEVS) !IN temperature VGRAV1A.62 ! VGRAV1A.63 REAL VSTOKES(PFIELD,NLEVS) !OUT sedimentation velocity VGRAV1A.64 REAL ETAA(PFIELD,NLEVS) !OUT viscosity of air VGRAV1A.65 REAL CCF(PFIELD,NLEVS) !OUT cunningham correction factor VGRAV1A.66 ! VGRAV1A.67 ! Include COMDECKS VGRAV1A.68 ! VGRAV1A.69 *IF DEF,MPP VGRAV1A.70 ! Parameters and Common blocks VGRAV1A.71 *CALL PARVARS
VGRAV1A.72 *ENDIF VGRAV1A.73 ! VGRAV1A.74 *CALL C_G
VGRAV1A.75 *CALL C_0_DG_C
VGRAV1A.76 *CALL CDUST_C2
VGRAV1A.77 ! VGRAV1A.78 ! local variables VGRAV1A.79 ! VGRAV1A.80 INTEGER ILEV !LOC loop counter for levels VGRAV1A.81 INTEGER J !LOC loop counter for points VGRAV1A.82 ! VGRAV1A.83 REAL TC(PFIELD) !LOC temperature in deg C VGRAV1A.84 REAL LAMDAA(PFIELD) !LOC mean free path of particle VGRAV1A.85 REAL ALPHACCF(PFIELD) !LOC VGRAV1A.86 ! VGRAV1A.87 ! Calculate viscosity of air (Pruppacher & Klett p.323) VGRAV1A.88 DO ILEV=1,NLEVS VGRAV1A.89 DO J=FIRST_POINT,LAST_POINT VGRAV1A.90 ! VGRAV1A.91 TC(J)=T(J,ILEV)-ZERODEGC VGRAV1A.92 IF (TC(J) .GE. 0.) THEN VGRAV1A.93 ETAA(J,ILEV)=(1.718+0.0049*TC(J))*1.E-5 VGRAV1A.94 ELSE VGRAV1A.95 ETAA(J,ILEV)=(1.718+0.0049*TC(J)-1.2E-5*TC(J)*TC(J))*1.E-5 VGRAV1A.96 ENDIF VGRAV1A.97 ! VGRAV1A.98 ENDDO VGRAV1A.99 ENDDO VGRAV1A.100 ! VGRAV1A.101 DO ILEV=1,NLEVS VGRAV1A.102 DO J = FIRST_POINT,LAST_POINT VGRAV1A.103 ! VGRAV1A.104 ! Calculate mean free path of particle (Pruppacher & Klett p.323) VGRAV1A.105 LAMDAA(J)=LAMDAA0* VGRAV1A.106 & PREFL*T(J,ILEV)/((AK(ILEV)+BK(ILEV)*PSTAR(J))*TREFL) VGRAV1A.107 ! Calculate Cunningham correction factor(Pruppacher & Klett p.361) VGRAV1A.108 ALPHACCF(J)=ACCF+BCCF*EXP(CCCF*DIAM*.5/LAMDAA(J)) VGRAV1A.109 CCF(J,ILEV)=(1.+ALPHACCF(J)*LAMDAA(J)/(.5*DIAM)) VGRAV1A.110 ! Calculate sedimentation velocity (Pruppacher & Klett p.362) VGRAV1A.111 VSTOKES(J,ILEV)=CCF(J,ILEV)*(DIAM*DIAM*G*RHOP)/ VGRAV1A.112 & (18.*ETAA(J,ILEV)) VGRAV1A.113 ! VGRAV1A.114 ENDDO VGRAV1A.115 ENDDO VGRAV1A.116 ! VGRAV1A.117 RETURN VGRAV1A.118 END VGRAV1A.119 *ENDIF VGRAV1A.120