SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
dslt_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 dslt_velgrav1d(PSIG, PRG, PTA, PRHODREF, PRHOP, &
7  pmu, pvgk, pdpk, pvgg, pdpg )
8 !! #######################################
9 !!
10 !! PURPOSE
11 !! -------
12 !!
13 !! REFERENCE
14 !! ---------
15 !! none
16 !!
17 !! AUTHOR
18 !! ------
19 !! P. Tulet (meteo france)
20 !!
21 !! MODIFICATIONS
22 !! -------------
23 !!
24 ! Entry variables:
25 !
26 ! PM(IN) -Array of moments
27 !
28 !*************************************************************
29 ! Exit variables:
30 !
31 ! PFSED(IN) -Array of moment variation due to dry deposition
32 !
33 !*************************************************************
34 ! Variables used during the deposition velocity calculation
35 !
36 ! PDPK -Polydisperse diffusivity (m2/s)
37 ! PVGK -Polydisperse settling velocity of the kth moment (m/s)
38 !************************************************************
39 !!
40 !! IMPLICIT ARGUMENTS
41 !
42 USE modd_csts ,ONLY : xpi, xg, xboltz
43 !
44 USE yomhook ,ONLY : lhook, dr_hook
45 USE parkind1 ,ONLY : jprb
46 !
47 IMPLICIT NONE
48 
49 !! Declarations d'arguments
50 !
51 REAL, DIMENSION(:,:), INTENT(IN) :: psig, prg
52 REAL, DIMENSION(:), INTENT(IN) :: pta, prhodref
53 REAL, INTENT(IN) :: prhop
54 REAL, DIMENSION(:), INTENT(OUT) :: pmu
55 REAL, DIMENSION(:,:), INTENT(OUT) :: pvgk, pdpk
56 REAL, DIMENSION(:,:), INTENT(OUT) :: pvgg, pdpg
57 !
58 !!!! Declarations de variables internes
59 !
60 REAL, DIMENSION(SIZE(PTA)) :: zlambda
61 REAL, DIMENSION(SIZE(PTA)) :: zrg, zln2s
62 REAL, DIMENSION(SIZE(PTA)) :: zkng
63 !
64 REAL, PARAMETER :: zgasmw = 28.9644d0
65 REAL :: zk
66 INTEGER :: ij, ii
67 REAL(KIND=JPRB) :: zhook_handle
68 
69 IF (lhook) CALL dr_hook('DSLT_VELGRAV1D',0,zhook_handle)
70 
71 ! Sutherland's equation for viscosity
72 pmu(:)=1.8325d-5 * 416.16/(pta(:)+120.) * (pta(:)/296.16) * sqrt(pta(:)/296.16)
73 
74 ! Mean free path (Seinfeld and Pandis p455)
75 zlambda(:)=pmu(:)/prhodref(:) * sqrt(1.89d-4*zgasmw/pta(:))*1.e6
76 
77 DO ii = 1,SIZE(prg,2)
78 
79  zrg(:) = prg(:,ii) * 1e-6
80  zln2s(:) = log(psig(:,ii))**2
81  !
82  zkng(:) = zlambda(:) / prg(:,ii)
83  !
84  pvgg(:,ii) = 2. * xg * prhop * zrg(:)**2 / (9.*pmu(:))
85  pdpg(:,ii) = xboltz * pta(:)/(6.*xpi*zrg(:)*pmu(:))
86 
87  DO ij = 0,2
88  !
89  zk = REAL(3*ij)
90 
91  pdpk(:,3*ii+ij-2) = pdpg(:,ii) * &
92  (exp((-2.*zk+1.)/2.*zln2s(:)) + &
93  1.246*zkng(:) * exp((-4.*zk+4)/2.*zln2s(:)))
94 
95  pvgk(:,3*ii+ij-2) = pvgg(:,ii) * &
96  (exp((4.*zk+4.)/2.*zln2s(:)) + &
97  1.246*zkng(:)* exp((2.*zk+1.)/2.*zln2s(:)))
98  ENDDO
99 
100 ENDDO
101 IF (lhook) CALL dr_hook('DSLT_VELGRAV1D',1,zhook_handle)
102 
103 
104 END SUBROUTINE dslt_velgrav1d
subroutine dslt_velgrav1d(PSIG, PRG, PTA, PRHODREF, PRHOP, PMU, PVGK, PDPK, PVGG, PDPG)