Newer
Older
!ORILAM_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
!ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence
!ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
!ORILAM_LIC for details.
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
!-----------------------------------------------------------------
!--------------- special set of characters for RCS information
!-----------------------------------------------------------------
! $Source$ $Revision$
! MASDEV4_7 chimie 2006/05/18 13:07:25
!-----------------------------------------------------------------
!! ##############################
MODULE MODI_CH_AER_VELGRAV_n
!! ##############################
!!
INTERFACE
!!
SUBROUTINE CH_AER_VELGRAV_n(PSIG, PRG, PTHT, PABST,PRHODREF, PRHOP, PMU, PVGK,PDPK, PVGG)
IMPLICIT NONE
REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PVGK,PDPK
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PMU
REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PVGG
REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRHOP
REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSIG, PRG
REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHT, PABST, PRHODREF
END SUBROUTINE CH_AER_VELGRAV_n
!!
END INTERFACE
!!
END MODULE MODI_CH_AER_VELGRAV_n
!!
!! #######################################
SUBROUTINE CH_AER_VELGRAV_n(PSIG, PRG, PTHT, PABST, PRHODREF, PRHOP, PMU, PVGK,PDPK, PVGG)
!! #######################################
!!
!! PURPOSE
!! -------
!!
!! REFERENCE
!! ---------
!! none
!!
!! AUTHOR
!! ------
!! P. Tulet (meteo france)
!!
!! MODIFICATIONS
!! -------------
!!
! Entry variables:
!
! PM(IN) -Array of moments
!
!*************************************************************
! Exit variables:
!
! PFSED(IN) -Array of moment variation due to dry deposition
!
!*************************************************************
! Variables used during the deposition velocity calculation
!
! PDPK -Polydisperse diffusivity (m2/s)
! PVGK -Polydisperse settling velocity of the kth moment (m/s)
!************************************************************
!!
!! IMPLICIT ARGUMENTS
USE MODD_CH_AEROSOL
USE MODD_CH_AERO_n
USE MODD_CST, ONLY : &
XPI & !Definition of pi
,XBOLTZ & ! Boltzman constant
,XAVOGADRO & ![molec/mol] avogadros number
,XG & ! Gravity constant
,XP00 & ! Reference pressure
,XMD & ![kg/mol] molar weight of air
,XRD & ! Gaz constant for dry air
,XCPD ! Cpd (dry air)
!!
!-------------------------------------------------------------------------------
IMPLICIT NONE
!
!* 0.1 Declarations of arguments
!
REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PVGK,PDPK
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PMU
REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PVGG
REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRHOP
REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSIG, PRG
REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHT, PABST, PRHODREF
!
!* 0.2 Declarations of local variables
!
REAL, DIMENSION(size(PSIG,1),size(PSIG,2),size(PSIG,3)) :: ZTEMP,ZLAMBDA
REAL, DIMENSION(size(PSIG,1),size(PSIG,2),size(PSIG,3)) :: ZRG,ZLN2S
REAL, DIMENSION(size(PSIG,1),size(PSIG,2),size(PSIG,3)) :: ZKNG
REAL, DIMENSION(size(PSIG,1),size(PSIG,2),size(PSIG,3),JPMODE) :: ZDPG
!
REAL, PARAMETER :: gasmw=28.9644d0
REAL :: ZK
!
INTEGER :: JI,JJ
!
!-------------------------------------------------------------------------------
!temperature
ZTEMP(:,:,:)=PTHT(:,:,:)*(PABST(:,:,:)/XP00)**(XRD/XCPD)
!
! Sutherland's equation for viscosity
PMU(:,:,:)=1.8325d-5*416.16/(ZTEMP(:,:,:)+120)*(ZTEMP(:,:,:)/296.16)*SQRT(ZTEMP(:,:,:)/296.16)
!PMU(:,:,:)=0.003661*ZTEMP(:,:,:)
!PMU(:,:,:)=.0066164*PMU(:,:,:)*sqrt(PMU(:,:,:))/(ZTEMP(:,:,:)+114.d0)
!
! Mean free path (Seinfeld and Pandis p455)
ZLAMBDA(:,:,:)=PMU(:,:,:)/PRHODREF(:,:,:)*sqrt(1.89d-4*gasmw/ZTEMP(:,:,:))*1.e6
!
DO JI=1,JPMODE
!
ZRG(:,:,:)=PRG(:,:,:,JI) * 1E-6
ZLN2S(:,:,:)=LOG(PSIG(:,:,:,JI))**2
!
ZKNG(:,:,:)=ZLAMBDA(:,:,:) / PRG(:,:,:,JI)
!
PVGG(:,:,:,JI)= 2.*XG*PRHOP(:,:,:,JI)*ZRG(:,:,:)**2 /(9.*PMU(:,:,:))
ZDPG(:,:,:,JI)=XBOLTZ*ZTEMP(:,:,:)/ (6.*XPI* ZRG(:,:,:)*PMU(:,:,:))
!
DO JJ=0,2
!
ZK=real(3*JJ)
PDPK(:,:,:,3*JI+JJ-2)=ZDPG(:,:,:,JI)*(exp((-2.*ZK+1.)/2.*ZLN2S(:,:,:))+1.246*ZKNG(:,:,:)*&
exp((-4.*ZK+4)/2.*ZLN2S(:,:,:)))
PVGK(:,:,:,3*JI+JJ-2)=PVGG(:,:,:,JI)*&
(exp((4.*ZK+4.)/2.*ZLN2S(:,:,:)) + 1.246*ZKNG(:,:,:)* exp((2.*ZK+1.)/2.*ZLN2S(:,:,:)))
!
ENDDO
!
ENDDO
!
END SUBROUTINE CH_AER_VELGRAV_n