SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
ch_dep_water.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! #########
6  SUBROUTINE ch_dep_water (PRESA,PUSTAR,PTA,PTRAD,PSV, HSV, PDEP)
7  !###########################################################
8  !
9  !!
10  !!
11  !!
12  !! PURPOSE
13  !! -------
14  !!
15  !! Compute dry deposition velocity for chemical species
16  !!
17  !! AUTHOR
18  !! ------
19  !! P.Tulet * Laboratoire d'Aerologie*
20  !!
21  !! MODIFICATIONS
22  !! -------------
23  !! Original 20/02/97
24  !! Modification 18/07/03 (Tulet) surface externalization
25  !!
26  !-------------------------------------------------------------------------------
27  !
28  !* 0. DECLARATIONS
29  ! ------------
30  !
31  USE modd_csts
32  USE modd_ch_surf
33  !
34 !
35  USE yomhook ,ONLY : lhook, dr_hook
36  USE parkind1 ,ONLY : jprb
37 !
38  IMPLICIT NONE
39  !
40  !* 0.1 Declarations of dummy arguments :
41  !
42  REAL, DIMENSION(:), INTENT(IN) :: presa ! aerodynamic resistances
43  REAL, DIMENSION(:), INTENT(IN) :: pustar ! frition velocities
44  REAL, DIMENSION(:), INTENT(IN) :: pta ! air temperature forcing (K)
45  REAL, DIMENSION(:), INTENT(IN) :: ptrad ! radiative temperature (K)
46  REAL, DIMENSION(:,:), INTENT(IN) :: psv
47  CHARACTER(LEN=6), DIMENSION(:),INTENT(IN) :: hsv
48  REAL, DIMENSION(:,:), INTENT(INOUT):: pdep ! deposition dry velocity (m/s)
49  !
50  !
51  !
52  !* 0.2 Declarations of local variables :
53  !
54  !
55  REAL , DIMENSION(SIZE(PTRAD,1),SIZE(HSV,1)) :: zscmdt
56  ! Schmidt number
57  REAL , DIMENSION(SIZE(PTRAD,1),SIZE(HSV,1)) :: zdiffmolval
58  ! Molecular diffusivity
59  REAL , DIMENSION(SIZE(PTRAD,1),SIZE(HSV,1)) :: zwatrb
60  ! water quasi-laminar resistance
61  REAL , DIMENSION(SIZE(PTRAD,1),SIZE(HSV,1)) :: zwatrc
62  ! water surface resistance
63  REAL , DIMENSION(SIZE(PTRAD,1),SIZE(HSV,1)) :: zreswat
64  ! final water resistance
65  REAL, DIMENSION(SIZE(PTRAD,1)) :: ztcor
66  REAL,DIMENSION(SIZE(PUSTAR,1)) ::zustar
67  INTEGER :: jsv
68  REAL(KIND=JPRB) :: zhook_handle
69  !
70  !============================================================================
71  ! Primilary
72  ! ---------
73 
74 
75  !Default values
76  !--------------
77  IF (lhook) CALL dr_hook('CH_DEP_WATER',0,zhook_handle)
78  zwatrc(:,:) = 9999.
79  zreswat(:,:)= 9999.0
80  zwatrb(:,:) = 9999.
81  zustar(:) = max(pustar(:), 1e-9)
82  !
83  !
84  ! 2.0 Quasi-laminar resistance (for WATER) (Hicks, 1987)
85  ! ------------------------
86  !
87  !
88  ! compute molecular diffusivity for each species (Langevin, 1905)
89  ! ----------------------------------------------
90  DO jsv=1,SIZE(hsv,1)
91  zdiffmolval(:,jsv) = 2.22e-05 + 1.46e-07 * (ptrad(:) - 273.0) * &
92  sqrt(18. / xsrealmassmolval(jsv))
93  zscmdt(:,jsv)=0.15e-4 / zdiffmolval(:,jsv)
94  ENDDO
95  !
96  !
97  ! For water
98  ! ---------
99  DO jsv=1,SIZE(hsv,1)
100  zwatrb(:,jsv) = ((zscmdt(:,jsv)/0.72)**(2./3.)) &
101  / (xkarman*zustar(:))
102  ENDDO
103  !
104  !
105  ! 3. Surface resistance
106  ! ------------------
107  !
108  ! 3.1 Surface resistance on water
109  ! ----------------------------
110  !
111  ! 3.1.1 Compute surface resistance on inland water
112  ! --------------------------------------------
113  !
114  DO jsv=1,SIZE(hsv,1)
115  zwatrc(:,jsv) = 2.54e4 / ( xsrealhenryval(jsv,1) *&
116  exp(xsrealhenryval(jsv,2)* (1./298. - 1./pta(:))) *&
117  ptrad(:) * zustar(:))
118  ENDDO
119  !
120  ! 3.1.2 Surface temperature correction
121  ! ------------------------------
122  ztcor(:) = 0.
123  WHERE( ptrad(:) < 271. )
124  ztcor(:) = 1000. * exp(-ptrad(:) + 269.)
125  ztcor(:) = min(2.5e3, ztcor(:))
126  END WHERE
127  DO jsv=1,SIZE(hsv,1)
128  zwatrc(:,jsv) = zwatrc(:,jsv)+ztcor(:)
129  ENDDO
130  !
131  !
132  ! 5.0 Compute water resistance (in land water and sea)
133  ! -------------------------------------------------
134  !
135  DO jsv=1,SIZE(hsv,1)
136  zreswat(:,jsv) = presa(:) + zwatrb(:,jsv) + zwatrc(:,jsv)
137  ENDDO
138  !
139  ! 7.0 Compute dry deposition velocity for inland water
140  ! ------------------------------------------------
141  !
142  pdep(:,:) = 1. / zreswat(:,:)
143 IF (lhook) CALL dr_hook('CH_DEP_WATER',1,zhook_handle)
144  !
145 END SUBROUTINE ch_dep_water
subroutine ch_dep_water(PRESA, PUSTAR, PTA, PTRAD, PSV, HSV, PDEP)
Definition: ch_dep_water.F90:6