SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/ch_dep_water.F90
Go to the documentation of this file.
00001 !     #########
00002      SUBROUTINE CH_DEP_WATER  (PRESA,PUSTAR,PTA,PTRAD,PSV, HSV, PDEP)
00003   !###########################################################
00004   !
00005   !!                   
00006   !!                       
00007   !!
00008   !!    PURPOSE
00009   !!    -------
00010   !!      
00011   !!    Compute dry deposition velocity for chemical species    
00012   !!
00013   !!    AUTHOR
00014   !!    ------
00015   !!      P.Tulet      * Laboratoire d'Aerologie*
00016   !!
00017   !!    MODIFICATIONS
00018   !!    -------------
00019   !!      Original      20/02/97 
00020   !!    Modification  18/07/03  (Tulet) surface externalization
00021   !!
00022   !-------------------------------------------------------------------------------
00023   !
00024   !*       0.    DECLARATIONS
00025   !              ------------
00026   !
00027   USE MODD_CSTS
00028   USE MODD_CH_SURF
00029   !
00030 !
00031   USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00032   USE PARKIND1  ,ONLY : JPRB
00033 !
00034   IMPLICIT NONE
00035   !
00036   !*       0.1   Declarations of dummy arguments :
00037   !
00038        REAL, DIMENSION(:),     INTENT(IN)  :: PRESA        ! aerodynamic resistances
00039        REAL, DIMENSION(:),     INTENT(IN)  :: PUSTAR       ! frition velocities
00040        REAL, DIMENSION(:),     INTENT(IN)  :: PTA          ! air temperature forcing (K)
00041        REAL, DIMENSION(:),     INTENT(IN)  :: PTRAD        ! radiative temperature   (K)
00042        REAL, DIMENSION(:,:),   INTENT(IN)  :: PSV
00043        CHARACTER(LEN=6), DIMENSION(:),INTENT(IN) :: HSV
00044        REAL, DIMENSION(:,:),   INTENT(INOUT):: PDEP      ! deposition dry velocity (m/s)
00045   !
00046   !
00047   !
00048   !*       0.2   Declarations of local variables :
00049   !
00050   !
00051   REAL             , DIMENSION(SIZE(PTRAD,1),SIZE(HSV,1)) :: ZSCMDT 
00052   ! Schmidt number
00053   REAL             , DIMENSION(SIZE(PTRAD,1),SIZE(HSV,1)) :: ZDIFFMOLVAL
00054   ! Molecular diffusivity
00055   REAL             , DIMENSION(SIZE(PTRAD,1),SIZE(HSV,1)) :: ZWATRB  
00056   ! water quasi-laminar  resistance
00057   REAL             , DIMENSION(SIZE(PTRAD,1),SIZE(HSV,1)) :: ZWATRC 
00058   ! water surface  resistance
00059   REAL             , DIMENSION(SIZE(PTRAD,1),SIZE(HSV,1)) :: ZRESWAT  
00060   !  final water resistance
00061   REAL, DIMENSION(SIZE(PTRAD,1))      :: ZTCOR
00062   REAL,DIMENSION(SIZE(PUSTAR,1))      ::ZUSTAR
00063   INTEGER :: JSV
00064   REAL(KIND=JPRB) :: ZHOOK_HANDLE
00065   !
00066   !============================================================================
00067   !            Primilary
00068   !            ---------
00069 
00070 
00071   !Default values
00072   !--------------
00073   IF (LHOOK) CALL DR_HOOK('CH_DEP_WATER',0,ZHOOK_HANDLE)
00074   ZWATRC(:,:) = 9999.
00075   ZRESWAT(:,:)= 9999.0
00076   ZWATRB(:,:) = 9999.
00077   ZUSTAR(:) = MAX(PUSTAR(:), 1E-9)
00078   !
00079   !
00080   !       2.0  Quasi-laminar resistance (for WATER) (Hicks, 1987)
00081   !            ------------------------      
00082   !
00083   !  
00084   !         compute molecular diffusivity for each species (Langevin, 1905)
00085   !         ----------------------------------------------
00086   DO JSV=1,SIZE(HSV,1)
00087     ZDIFFMOLVAL(:,JSV) = 2.22E-05 + 1.46E-07 * (PTRAD(:) - 273.0) * &
00088                                  SQRT(18. / XSREALMASSMOLVAL(JSV))  
00089     ZSCMDT(:,JSV)=0.15E-4 / ZDIFFMOLVAL(:,JSV)
00090   ENDDO
00091   !
00092   !
00093   !         For water
00094   !         ---------
00095   DO JSV=1,SIZE(HSV,1)
00096     ZWATRB(:,JSV) =  ((ZSCMDT(:,JSV)/0.72)**(2./3.)) &
00097                                      / (XKARMAN*ZUSTAR(:))  
00098   ENDDO
00099   !
00100   !
00101   !       3.  Surface resistance
00102   !            ------------------
00103   ! 
00104   !       3.1  Surface  resistance on water
00105   !            ----------------------------
00106   !
00107   !         3.1.1  Compute surface  resistance on inland water
00108   !                --------------------------------------------
00109   !  
00110   DO JSV=1,SIZE(HSV,1)
00111     ZWATRC(:,JSV) = 2.54E4 / ( XSREALHENRYVAL(JSV,1) *&
00112                        EXP(XSREALHENRYVAL(JSV,2)* (1./298. - 1./PTA(:))) *&
00113                        PTRAD(:) * ZUSTAR(:))  
00114   ENDDO
00115   ! 
00116   !          3.1.2 Surface temperature correction 
00117   !                ------------------------------
00118   ZTCOR(:) = 0.
00119   WHERE( PTRAD(:) < 271. )
00120     ZTCOR(:) = 1000. * EXP(-PTRAD(:) + 269.)
00121     ZTCOR(:) = MIN (2.5E3, ZTCOR(:))
00122   END WHERE
00123   DO JSV=1,SIZE(HSV,1)
00124     ZWATRC(:,JSV) = ZWATRC(:,JSV)+ZTCOR(:)   
00125   ENDDO
00126   !
00127   !                                                                    
00128   !       5.0  Compute  water resistance (in land water and sea)
00129   !            -------------------------------------------------
00130   !
00131   DO JSV=1,SIZE(HSV,1) 
00132     ZRESWAT(:,JSV)  = PRESA(:) + ZWATRB(:,JSV) + ZWATRC(:,JSV)
00133   ENDDO
00134   !
00135   !        7.0  Compute dry deposition velocity for inland water 
00136   !             ------------------------------------------------
00137   !
00138   PDEP(:,:) = 1. / ZRESWAT(:,:)
00139 IF (LHOOK) CALL DR_HOOK('CH_DEP_WATER',1,ZHOOK_HANDLE)
00140   !
00141 END SUBROUTINE CH_DEP_WATER