SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/ch_dep_town.F90
Go to the documentation of this file.
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