SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/ch_aer_velgrav1d.F90
Go to the documentation of this file.
00001 !     #########
00002 SUBROUTINE CH_AER_VELGRAV1D(PSIG, PRG, PTA, PRHODREF, PRHOP, PMU, PVGK,PDPK, PVGG,PDPG)
00003 !!   #######################################
00004 !!
00005 !!   PURPOSE
00006 !!   -------
00007 !!
00008 !!   REFERENCE
00009 !!   ---------
00010 !!   none
00011 !!
00012 !!   AUTHOR
00013 !!    ------
00014 !!   P. Tulet (meteo france)
00015 !!
00016 !!   MODIFICATIONS
00017 !!    -------------
00018 !!
00019 ! Entry variables:
00020 !
00021 ! PM(IN)       -Array of moments
00022 !
00023 !*************************************************************
00024 ! Exit variables:
00025 !
00026 ! PFSED(IN)  -Array of moment variation due to dry deposition
00027 !
00028 !*************************************************************
00029 ! Variables used during the deposition velocity calculation
00030 ! 
00031 ! PDPK       -Polydisperse diffusivity (m2/s)
00032 ! PVGK       -Polydisperse settling velocity of the kth moment (m/s)
00033 !************************************************************
00034 !!
00035 !!   IMPLICIT ARGUMENTS
00036 USE MODD_CHS_AEROSOL
00037 !!
00038 !
00039 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00040 USE PARKIND1  ,ONLY : JPRB
00041 !
00042 IMPLICIT NONE
00043 
00044 !! Declarations d'arguments
00045 !
00046 REAL, DIMENSION(:,:), INTENT(OUT) :: PVGK,PDPK
00047 REAL, DIMENSION(:),   INTENT(OUT) :: PMU
00048 REAL, DIMENSION(:,:), INTENT(OUT) :: PVGG
00049 REAL, DIMENSION(:,:), INTENT(OUT) :: PDPG
00050 REAL, DIMENSION(:,:), INTENT(IN)    :: PRHOP
00051 REAL, DIMENSION(:,:), INTENT(IN)    :: PSIG, PRG
00052 REAL, DIMENSION(:),   INTENT(IN)    :: PTA, PRHODREF
00053 !
00054 !!!! Declarations de variables internes
00055 !
00056 REAL, DIMENSION(size(PSIG,1)) :: ZLAMBDA
00057 
00058 REAL, DIMENSION(size(PSIG,1)) :: ZRG,ZLN2S
00059 
00060 REAL, DIMENSION(size(PSIG,1)) :: ZKNG
00061 
00062 REAL, PARAMETER :: gasmw=28.9644d0
00063 REAL :: ZK, ZRD, ZAVOGADRO, ZBOLTZ, ZMD, ZPI, ZG
00064 
00065 INTEGER :: II,IJ
00066 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00067 
00068 IF (LHOOK) CALL DR_HOOK('CH_AER_VELGRAV1D',0,ZHOOK_HANDLE)
00069 ZPI = 2.*ASIN(1.)
00070 ZAVOGADRO =  6.0221367E+23
00071 ZBOLTZ = 1.380658E-23 
00072 ZMD   = 28.9644E-3
00073 ZRD  = ZAVOGADRO * ZBOLTZ / ZMD
00074 ZG  = 9.80665
00075 
00076 
00077 ! Sutherland's equation for viscosity
00078 PMU(:)=1.8325d-5*416.16/(PTA(:)+120)*(PTA(:)/296.16)*SQRT(PTA(:)/296.16)
00079 
00080 ! Mean free path (Seinfeld and Pandis p455)
00081 ZLAMBDA(:)=PMU(:)/PRHODREF(:)*sqrt(1.89d-4*gasmw/PTA(:))*1.e6
00082 
00083 do II=1,JPMODE
00084 
00085   ZRG(:)=PRG(:,II) * 1E-6 
00086   ZLN2S(:)=LOG(PSIG(:,II))**2 
00087   !
00088   ZKNG(:)=ZLAMBDA(:) / PRG(:,II) 
00089   !
00090   PVGG(:,II)= 2.*ZG*PRHOP(:,II)*ZRG(:)**2 /(9.*PMU(:))
00091   PDPG(:,II)=ZBOLTZ*PTA(:)/ (6.*ZPI* ZRG(:)*PMU(:))
00092 
00093 
00094  
00095   do IJ=0,2
00096 !
00097     ZK=real(3*IJ)
00098     PDPK(:,3*II+IJ-2)=PDPG(:,II)*(exp((-2.*ZK+1.)/2.*ZLN2S(:))+1.246*ZKNG(:)*&
00099                 exp((-4.*ZK+4)/2.*ZLN2S(:)))  
00100 
00101     PVGK(:,3*II+IJ-2)=PVGG(:,II)*&
00102       (exp((4.*ZK+4.)/2.*ZLN2S(:)) + 1.246*ZKNG(:)* exp((2.*ZK+1.)/2.*ZLN2S(:)))  
00103 
00104   enddo
00105  
00106 enddo
00107 IF (LHOOK) CALL DR_HOOK('CH_AER_VELGRAV1D',1,ZHOOK_HANDLE)
00108 
00109 END SUBROUTINE CH_AER_VELGRAV1D