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