SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE CH_DEP_TOWN ( PRESA_TOWN, PUSTAR_TOWN,PTA, PTRAD, PWALL_O_HOR, & 00003 PSV, HSV, PDEP) 00004 !########################################################### 00005 ! 00006 !! 00007 !! 00008 !! 00009 !! PURPOSE 00010 !! ------- 00011 !! 00012 !! Compute dry deposition velocity for chemical species 00013 !! 00014 !! AUTHOR 00015 !! ------ 00016 !! P.Tulet * Laboratoire d'Aerologie* 00017 !! 00018 !! MODIFICATIONS 00019 !! ------------- 00020 !! Original 20/02/97 00021 !! Modification 21/07/00 (Guenais/Tulet) add deposition on town 00022 !! Modification 18/07/03 (Tulet) surface externalization 00023 !! 00024 !------------------------------------------------------------------------------- 00025 ! 00026 !* 0. DECLARATIONS 00027 ! ------------ 00028 ! 00029 USE MODD_CH_SURF 00030 USE MODD_CSTS 00031 ! 00032 ! 00033 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00034 USE PARKIND1 ,ONLY : JPRB 00035 ! 00036 IMPLICIT NONE 00037 ! 00038 !* 0.1 Declarations of dummy arguments : 00039 ! 00040 REAL, DIMENSION(:), INTENT(IN) :: PRESA_TOWN ! aerodynamic resistances 00041 REAL, DIMENSION(:), INTENT(IN) :: PUSTAR_TOWN ! frition velocities 00042 REAL, DIMENSION(:), INTENT(IN) :: PTA ! air temperature forcing (K) 00043 REAL, DIMENSION(:), INTENT(IN) :: PTRAD ! radiative temperature (K) 00044 REAL, DIMENSION(:), INTENT(IN) :: PWALL_O_HOR ! normalized wall surface 00045 REAL, DIMENSION(:,:), INTENT(OUT) :: PDEP ! deposition dry velocity (m/s) 00046 REAL, DIMENSION(:,:), INTENT(IN) :: PSV 00047 CHARACTER(LEN=6), DIMENSION(:),INTENT(IN) :: HSV 00048 ! 00049 ! 00050 ! 00051 !* 0.2 Declarations of local variables : 00052 ! 00053 ! 00054 REAL :: ZSTOWNRC_SO2 00055 ! donnees pour Rcsoil au SO2 Wesely (89) 00056 ! Hemisphere nord latitudes temperees 00057 REAL :: ZSTOWNRC_O3 00058 ! donnees pour Rcsoil au O3 Wesely (89) 00059 ! Hemisphere nord latitudes temperees 00060 REAL , DIMENSION(SIZE(PTRAD,1),SIZE(HSV,1)) :: ZSCMDT 00061 ! Sc(:)hmidt number 00062 REAL , DIMENSION(SIZE(PTRAD,1),SIZE(HSV,1)) :: ZDIFFMOLVAL 00063 ! Molecular diffusivity 00064 REAL , DIMENSION(SIZE(PTRAD,1),SIZE(HSV,1)) :: ZTOWNRB 00065 ! snow quasi-laminar resistance 00066 REAL , DIMENSION(SIZE(PTRAD,1),SIZE(HSV,1)) :: ZTOWNRC 00067 ! towm surface resistance 00068 00069 REAL , DIMENSION(SIZE(PTRAD,1),SIZE(HSV,1)) :: ZRESTOWN 00070 ! final town resistance 00071 REAL, DIMENSION(SIZE(PTRAD,1)) :: ZTOWN_MAX 00072 REAL, DIMENSION(SIZE(PTRAD,1)) :: ZTCOR 00073 REAL,DIMENSION(SIZE(PUSTAR_TOWN,1)) ::ZUSTAR_TOWN 00074 INTEGER :: JSV 00075 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00076 ! 00077 !============================================================================ 00078 ! Primilary 00079 ! --------- 00080 00081 !Default values 00082 !-------------- 00083 IF (LHOOK) CALL DR_HOOK('CH_DEP_TOWN',0,ZHOOK_HANDLE) 00084 ZTOWNRC(:,:) = 9999. 00085 ZRESTOWN(:,:)= 9999.0 00086 ZTOWNRB(:,:) = 9999. 00087 ! 00088 ! INDEX OF VEGTYPE 00089 ! **************** 00090 ZSTOWNRC_SO2 = 400. ! Town 00091 ZSTOWNRC_O3 = 300. ! Town 00092 00093 ZUSTAR_TOWN(:) = MAX(PUSTAR_TOWN(:), 1E-9) 00094 ! 00095 ! 1.0 Aerodynamic resistance for the differents COVER TYPE 00096 ! ---------------------------------------------------- 00097 ! PRESA_TOWN(:) ! Aerodynamic resistance for TOWN 00098 ! 00099 ! 2.0 Quasi-laminar resistance (Hicks, 1987) 00100 ! ------------------------ 00101 ! 00102 ! 00103 ! compute molecular diffusivity for each species (Langevin, 1905) 00104 ! ---------------------------------------------- 00105 DO JSV=1,SIZE(HSV,1) 00106 ZDIFFMOLVAL(:,JSV) = 2.22E-05 + 1.46E-07 * (PTRAD(:) - 273.0) * & 00107 SQRT(18. / XSREALMASSMOLVAL(JSV)) 00108 ZSCMDT(:,JSV)=0.15E-4 / ZDIFFMOLVAL(:,JSV) 00109 ENDDO 00110 ! 00111 ! 00112 ! For town 00113 ! -------- 00114 DO JSV=1,SIZE(HSV,1) 00115 ZTOWNRB(:,JSV) = ((ZSCMDT(:,JSV)/0.72)**(2./3.)) & 00116 / (XKARMAN*ZUSTAR_TOWN(:)) 00117 ENDDO 00118 ! 00119 ! 3. Surface resistance 00120 ! ------------------ 00121 ! 3.3.4 Surface temperature correction 00122 ! ------------------------------ 00123 ZTCOR(:) = 0. 00124 WHERE(PTRAD(:) < 271.) 00125 ZTCOR(:) = 1000 * EXP(-PTRAD(:) + 269.) 00126 ZTCOR(:) = MIN(2.5E3, ZTCOR(:)) 00127 END WHERE 00128 00129 00130 DO JSV=1,SIZE(HSV,1) 00131 ZTOWNRC(:,JSV) = ZTCOR(:) + (1.E5*ZSTOWNRC_SO2)/ (XSREALHENRYVAL(JSV,1) * & 00132 EXP(XSREALHENRYVAL(JSV,2)* (1./298. - 1./PTA(:)))) 00133 ENDDO 00134 00135 ! 00136 ! 6.0 Compute town resistance 00137 ! ----------------------- 00138 ! 00139 DO JSV=1,SIZE(HSV,1) 00140 ZRESTOWN(:,JSV) = PRESA_TOWN(:) + & 00141 ZTOWNRB(:,JSV) + ZTOWNRC(:,JSV) 00142 ENDDO 00143 ! 00144 ! Town fraction increased to consider the vertical surfaces of buildings 00145 ZTOWN_MAX(:) = 1. + PWALL_O_HOR(:) 00146 00147 00148 ! 7.0 Compute final dry deposition velocity on urban area 00149 ! --------------------------------------------------- 00150 ! 00151 DO JSV=1,SIZE(HSV,1) 00152 PDEP(:,JSV) = ZTOWN_MAX(:) / ZRESTOWN(:,JSV) 00153 ENDDO 00154 IF (LHOOK) CALL DR_HOOK('CH_DEP_TOWN',1,ZHOOK_HANDLE) 00155 00156 00157 ! 00158 END SUBROUTINE CH_DEP_TOWN