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