SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
ch_aer_velgrav1d.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! #########
6 SUBROUTINE ch_aer_velgrav1d(PSIG, PRG, PTA, PRHODREF, PRHOP, PMU, PVGK,PDPK, PVGG,PDPG)
7 !! #######################################
8 !!
9 !! PURPOSE
10 !! -------
11 !!
12 !! REFERENCE
13 !! ---------
14 !! none
15 !!
16 !! AUTHOR
17 !! ------
18 !! P. Tulet (meteo france)
19 !!
20 !! MODIFICATIONS
21 !! -------------
22 !!
23 ! Entry variables:
24 !
25 ! PM(IN) -Array of moments
26 !
27 !*************************************************************
28 ! Exit variables:
29 !
30 ! PFSED(IN) -Array of moment variation due to dry deposition
31 !
32 !*************************************************************
33 ! Variables used during the deposition velocity calculation
34 !
35 ! PDPK -Polydisperse diffusivity (m2/s)
36 ! PVGK -Polydisperse settling velocity of the kth moment (m/s)
37 !************************************************************
38 !!
39 !! IMPLICIT ARGUMENTS
41 !!
42 !
43 USE yomhook ,ONLY : lhook, dr_hook
44 USE parkind1 ,ONLY : jprb
45 !
46 IMPLICIT NONE
47 
48 !! Declarations d'arguments
49 !
50 REAL, DIMENSION(:,:), INTENT(OUT) :: pvgk,pdpk
51 REAL, DIMENSION(:), INTENT(OUT) :: pmu
52 REAL, DIMENSION(:,:), INTENT(OUT) :: pvgg
53 REAL, DIMENSION(:,:), INTENT(OUT) :: pdpg
54 REAL, DIMENSION(:,:), INTENT(IN) :: prhop
55 REAL, DIMENSION(:,:), INTENT(IN) :: psig, prg
56 REAL, DIMENSION(:), INTENT(IN) :: pta, prhodref
57 !
58 !!!! Declarations de variables internes
59 !
60 REAL, DIMENSION(size(PSIG,1)) :: zlambda
61 
62 REAL, DIMENSION(size(PSIG,1)) :: zrg,zln2s
63 
64 REAL, DIMENSION(size(PSIG,1)) :: zkng
65 
66 REAL, PARAMETER :: gasmw=28.9644d0
67 REAL :: zk, zrd, zavogadro, zboltz, zmd, zpi, zg
68 
69 INTEGER :: ii,ij
70 REAL(KIND=JPRB) :: zhook_handle
71 
72 IF (lhook) CALL dr_hook('CH_AER_VELGRAV1D',0,zhook_handle)
73 zpi = 2.*asin(1.)
74 zavogadro = 6.0221367e+23
75 zboltz = 1.380658e-23
76 zmd = 28.9644e-3
77 zrd = zavogadro * zboltz / zmd
78 zg = 9.80665
79 
80 
81 ! Sutherland's equation for viscosity
82 pmu(:)=1.8325d-5*416.16/(pta(:)+120)*(pta(:)/296.16)*sqrt(pta(:)/296.16)
83 
84 ! Mean free path (Seinfeld and Pandis p455)
85 zlambda(:)=pmu(:)/prhodref(:)*sqrt(1.89d-4*gasmw/pta(:))*1.e6
86 
87 do ii=1,jpmode
88 
89  zrg(:)=prg(:,ii) * 1e-6
90  zln2s(:)=log(psig(:,ii))**2
91  !
92  zkng(:)=zlambda(:) / prg(:,ii)
93  !
94  pvgg(:,ii)= 2.*zg*prhop(:,ii)*zrg(:)**2 /(9.*pmu(:))
95  pdpg(:,ii)=zboltz*pta(:)/ (6.*zpi* zrg(:)*pmu(:))
96 
97 
98 
99  do ij=0,2
100 !
101  zk=real(3*ij)
102  pdpk(:,3*ii+ij-2)=pdpg(:,ii)*(exp((-2.*zk+1.)/2.*zln2s(:))+1.246*zkng(:)*&
103  exp((-4.*zk+4)/2.*zln2s(:)))
104 
105  pvgk(:,3*ii+ij-2)=pvgg(:,ii)*&
106  (exp((4.*zk+4.)/2.*zln2s(:)) + 1.246*zkng(:)* exp((2.*zk+1.)/2.*zln2s(:)))
107 
108  enddo
109 
110 enddo
111 IF (lhook) CALL dr_hook('CH_AER_VELGRAV1D',1,zhook_handle)
112 
113 END SUBROUTINE ch_aer_velgrav1d
subroutine ch_aer_velgrav1d(PSIG, PRG, PTA, PRHODREF, PRHOP, PMU, PVGK, PDPK, PVGG, PDPG)