SURFEX v7.3
General documentation of Surfex
|
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