SURFEX v7.3
General documentation of Surfex
|
00001 !####################### 00002 MODULE MODI_EMIS_FROM_VEG 00003 !####################### 00004 ! 00005 INTERFACE EMIS_FROM_VEG 00006 ! 00007 FUNCTION EMIS_FROM_VEG_0D(PVEG,PVEGTYPE) RESULT(PEMIS) 00008 ! 00009 REAL, INTENT(IN) :: PVEG ! vegetatino fraction 00010 REAL, DIMENSION(:), INTENT(IN) :: PVEGTYPE ! type of vegetation 00011 ! 00012 REAL :: PEMIS ! emissivity 00013 ! 00014 END FUNCTION EMIS_FROM_VEG_0D 00015 ! 00016 ! 00017 FUNCTION EMIS_FROM_VEG_1D(PVEG,PVEGTYPE) RESULT(PEMIS) 00018 ! 00019 REAL, DIMENSION(:), INTENT(IN) :: PVEG ! vegetation fraction 00020 REAL, DIMENSION(:,:), INTENT(IN) :: PVEGTYPE ! type of vegetation 00021 ! 00022 REAL, DIMENSION(SIZE(PVEG)) :: PEMIS ! emissivity 00023 ! 00024 END FUNCTION EMIS_FROM_VEG_1D 00025 ! 00026 ! 00027 FUNCTION EMIS_FROM_VEG_2D(PVEG,PVEGTYPE) RESULT(PEMIS) 00028 ! 00029 REAL, DIMENSION(:,:), INTENT(IN) :: PVEG ! vegetation fraction 00030 REAL, DIMENSION(:,:,:), INTENT(IN) :: PVEGTYPE ! type of vegetation 00031 ! 00032 REAL, DIMENSION(SIZE(PVEG,1),SIZE(PVEG,2)) :: PEMIS! emissivity 00033 ! 00034 END FUNCTION EMIS_FROM_VEG_2D 00035 ! 00036 FUNCTION EMIS_FROM_VEG_PATCH(PVEG,PVEGTYPE) RESULT(PEMIS) 00037 ! 00038 REAL, DIMENSION(:), INTENT (IN) :: PVEG 00039 REAL, DIMENSION(:), INTENT (IN) :: PVEGTYPE 00040 ! 00041 REAL, DIMENSION(SIZE(PVEG)) :: PEMIS 00042 00043 END FUNCTION EMIS_FROM_VEG_PATCH 00044 ! 00045 END INTERFACE 00046 ! 00047 END MODULE MODI_EMIS_FROM_VEG 00048 ! 00049 ! #################################################### 00050 FUNCTION EMIS_FROM_VEG_0D(PVEG,PVEGTYPE) RESULT(PEMIS) 00051 ! #################################################### 00052 !! 00053 !! PURPOSE 00054 !! ------- 00055 ! 00056 ! Calculates averaged emissivity on natural surfaces 00057 ! 00058 !!** METHOD 00059 !! ------ 00060 !! 00061 !! EXTERNAL 00062 !! -------- 00063 !! none 00064 !! 00065 !! IMPLICIT ARGUMENTS 00066 !! ------------------ 00067 !! 00068 !! none 00069 !! 00070 !! REFERENCE 00071 !! --------- 00072 !! 00073 !! 00074 !! AUTHOR 00075 !! ------ 00076 !! 00077 !! V. Masson and A. Boone * Meteo-France * 00078 !! 00079 !! MODIFICATIONS 00080 !! ------------- 00081 !! Original 25/03/99 00082 !! 00083 !------------------------------------------------------------------------------- 00084 ! 00085 !* 0. DECLARATIONS 00086 ! ------------ 00087 ! 00088 USE MODD_DATA_COVER_PAR, ONLY : NVT_SNOW 00089 USE MODD_ISBA_PAR, ONLY : XEMISSOIL, XEMISVEG 00090 USE MODD_SNOW_PAR, ONLY : XEMISSN 00091 ! 00092 ! 00093 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00094 USE PARKIND1 ,ONLY : JPRB 00095 ! 00096 IMPLICIT NONE 00097 ! 00098 !* 0.1 declarations of arguments 00099 ! 00100 REAL, INTENT(IN) :: PVEG ! vegetation fraction 00101 REAL, DIMENSION(:), INTENT(IN) :: PVEGTYPE ! type of vegetation 00102 ! 00103 REAL :: PEMIS ! emissivity 00104 ! 00105 !* 0.2 declarations of local variables 00106 ! 00107 REAL :: ZEMISSOIL ! soil emissivity 00108 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00109 ! 00110 !----------------------------------------------------------------- 00111 ! 00112 IF (LHOOK) CALL DR_HOOK('MODI_EMIS_FROM_VEG:EMIS_FROM_VEG_0D',0,ZHOOK_HANDLE) 00113 ZEMISSOIL = XEMISSN * PVEGTYPE(NVT_SNOW) & 00114 + XEMISSOIL * (1.-PVEGTYPE(NVT_SNOW)) 00115 ! 00116 PEMIS = XEMISVEG * PVEG & 00117 + ZEMISSOIL * (1.-PVEG) 00118 IF (LHOOK) CALL DR_HOOK('MODI_EMIS_FROM_VEG:EMIS_FROM_VEG_0D',1,ZHOOK_HANDLE) 00119 ! 00120 !----------------------------------------------------------------- 00121 ! 00122 END FUNCTION EMIS_FROM_VEG_0D 00123 ! 00124 ! #################################################### 00125 FUNCTION EMIS_FROM_VEG_1D(PVEG,PVEGTYPE) RESULT(PEMIS) 00126 ! #################################################### 00127 !! 00128 !! PURPOSE 00129 !! ------- 00130 ! 00131 ! Calculates averaged emissivity on natural surfaces 00132 ! 00133 !!** METHOD 00134 !! ------ 00135 !! 00136 !! EXTERNAL 00137 !! -------- 00138 !! none 00139 !! 00140 !! IMPLICIT ARGUMENTS 00141 !! ------------------ 00142 !! 00143 !! none 00144 !! 00145 !! REFERENCE 00146 !! --------- 00147 !! 00148 !! 00149 !! AUTHOR 00150 !! ------ 00151 !! 00152 !! V. Masson and A. Boone * Meteo-France * 00153 !! 00154 !! MODIFICATIONS 00155 !! ------------- 00156 !! Original 25/03/99 00157 !! 00158 !------------------------------------------------------------------------------- 00159 ! 00160 !* 0. DECLARATIONS 00161 ! ------------ 00162 ! 00163 USE MODD_DATA_COVER_PAR, ONLY : NVT_SNOW 00164 USE MODD_ISBA_PAR, ONLY : XEMISSOIL, XEMISVEG 00165 USE MODD_SNOW_PAR, ONLY : XEMISSN 00166 ! 00167 ! 00168 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00169 USE PARKIND1 ,ONLY : JPRB 00170 ! 00171 IMPLICIT NONE 00172 ! 00173 !* 0.1 declarations of arguments 00174 ! 00175 REAL, DIMENSION(:), INTENT(IN) :: PVEG ! vegetation fraction 00176 REAL, DIMENSION(:,:), INTENT(IN) :: PVEGTYPE ! type of vegetation 00177 ! 00178 REAL, DIMENSION(SIZE(PVEG)) :: PEMIS ! emissivity 00179 ! 00180 !* 0.2 declarations of local variables 00181 ! 00182 REAL, DIMENSION(SIZE(PVEG)) :: ZEMISSOIL ! soil emissivity 00183 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00184 ! 00185 !----------------------------------------------------------------- 00186 ! 00187 IF (LHOOK) CALL DR_HOOK('MODI_EMIS_FROM_VEG:EMIS_FROM_VEG_1D',0,ZHOOK_HANDLE) 00188 ZEMISSOIL(:) = XEMISSN * PVEGTYPE(:,NVT_SNOW) & 00189 + XEMISSOIL * (1.-PVEGTYPE(:,NVT_SNOW)) 00190 ! 00191 PEMIS(:) = XEMISVEG * PVEG(:) & 00192 + ZEMISSOIL * (1.-PVEG(:)) 00193 IF (LHOOK) CALL DR_HOOK('MODI_EMIS_FROM_VEG:EMIS_FROM_VEG_1D',1,ZHOOK_HANDLE) 00194 ! 00195 !----------------------------------------------------------------- 00196 ! 00197 END FUNCTION EMIS_FROM_VEG_1D 00198 ! 00199 ! #################################################### 00200 FUNCTION EMIS_FROM_VEG_2D(PVEG,PVEGTYPE) RESULT(PEMIS) 00201 ! #################################################### 00202 !! 00203 !! PURPOSE 00204 !! ------- 00205 ! 00206 ! Calculates averaged emissivity on natural surfaces 00207 ! 00208 !!** METHOD 00209 !! ------ 00210 !! 00211 !! EXTERNAL 00212 !! -------- 00213 !! none 00214 !! 00215 !! IMPLICIT ARGUMENTS 00216 !! ------------------ 00217 !! 00218 !! none 00219 !! 00220 !! REFERENCE 00221 !! --------- 00222 !! 00223 !! 00224 !! AUTHOR 00225 !! ------ 00226 !! 00227 !! V. Masson and A. Boone * Meteo-France * 00228 !! 00229 !! MODIFICATIONS 00230 !! ------------- 00231 !! Original 25/03/99 00232 !! 00233 !------------------------------------------------------------------------------- 00234 ! 00235 !* 0. DECLARATIONS 00236 ! ------------ 00237 ! 00238 USE MODD_SURF_PAR, ONLY : XUNDEF 00239 USE MODD_DATA_COVER_PAR, ONLY : NVT_SNOW 00240 USE MODD_ISBA_PAR, ONLY : XEMISSOIL, XEMISVEG 00241 USE MODD_SNOW_PAR, ONLY : XEMISSN 00242 ! 00243 ! 00244 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00245 USE PARKIND1 ,ONLY : JPRB 00246 ! 00247 IMPLICIT NONE 00248 ! 00249 !* 0.1 declarations of arguments 00250 ! 00251 REAL, DIMENSION(:,:), INTENT(IN) :: PVEG ! vegetation fraction 00252 REAL, DIMENSION(:,:,:), INTENT(IN) :: PVEGTYPE ! type of vegetation 00253 ! 00254 REAL, DIMENSION(SIZE(PVEG,1),SIZE(PVEG,2)) :: PEMIS! emissivity 00255 ! 00256 !* 0.2 declarations of local variables 00257 ! 00258 REAL, DIMENSION(SIZE(PVEG,1),SIZE(PVEG,2)) :: ZEMISSOIL ! soil emissivity 00259 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00260 ! 00261 !----------------------------------------------------------------- 00262 ! 00263 IF (LHOOK) CALL DR_HOOK('MODI_EMIS_FROM_VEG:EMIS_FROM_VEG_2D',0,ZHOOK_HANDLE) 00264 ZEMISSOIL(:,:) = XEMISSN * PVEGTYPE(:,:,NVT_SNOW) & 00265 + XEMISSOIL * (1.-PVEGTYPE(:,:,NVT_SNOW)) 00266 ! 00267 PEMIS(:,:) = XEMISVEG * PVEG(:,:) & 00268 + ZEMISSOIL * (1.-PVEG(:,:)) 00269 ! 00270 WHERE (PVEG(:,:) == XUNDEF) 00271 PEMIS(:,:) = XUNDEF 00272 END WHERE 00273 IF (LHOOK) CALL DR_HOOK('MODI_EMIS_FROM_VEG:EMIS_FROM_VEG_2D',1,ZHOOK_HANDLE) 00274 !----------------------------------------------------------------- 00275 ! 00276 END FUNCTION EMIS_FROM_VEG_2D 00277 ! 00278 ! #################################################### 00279 FUNCTION EMIS_FROM_VEG_PATCH(PVEG,PVEGTYPE) RESULT(PEMIS) 00280 ! #################################################### 00281 !! 00282 !! PURPOSE 00283 !! ------- 00284 ! 00285 ! Calculates averaged emissivity on natural surfaces 00286 ! 00287 !!** METHOD 00288 !! ------ 00289 !! 00290 !! EXTERNAL 00291 !! -------- 00292 !! none 00293 !! 00294 !! IMPLICIT ARGUMENTS 00295 !! ------------------ 00296 !! 00297 !! none 00298 !! 00299 !! REFERENCE 00300 !! --------- 00301 !! 00302 !! 00303 !! AUTHOR 00304 !! ------ 00305 !! 00306 !! V. Masson and A. Boone * Meteo-France * 00307 !! 00308 !! MODIFICATIONS 00309 !! ------------- 00310 !! Original 25/03/99 00311 !! 00312 !------------------------------------------------------------------------------- 00313 ! 00314 !* 0. DECLARATIONS 00315 ! ------------ 00316 ! 00317 USE MODD_SURF_PAR, ONLY : XUNDEF 00318 USE MODD_DATA_COVER_PAR, ONLY : NVT_SNOW 00319 USE MODD_ISBA_PAR, ONLY : XEMISSOIL, XEMISVEG 00320 USE MODD_SNOW_PAR, ONLY : XEMISSN 00321 ! 00322 ! 00323 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00324 USE PARKIND1 ,ONLY : JPRB 00325 ! 00326 IMPLICIT NONE 00327 ! 00328 !* 0.1 declarations of arguments 00329 ! 00330 REAL, DIMENSION(:), INTENT(IN) :: PVEG ! vegetation fraction 00331 REAL, DIMENSION(:), INTENT(IN) :: PVEGTYPE ! type of vegetation 00332 ! 00333 REAL, DIMENSION(SIZE(PVEG)) :: PEMIS ! emissivity 00334 ! 00335 !* 0.2 declarations of local variables 00336 ! 00337 REAL, DIMENSION(SIZE(PVEG)) :: ZEMISSOIL ! soil emissivity 00338 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00339 ! 00340 !----------------------------------------------------------------- 00341 ! 00342 IF (LHOOK) CALL DR_HOOK('MODI_EMIS_FROM_VEG:EMIS_FROM_VEG_PATCH',0,ZHOOK_HANDLE) 00343 ZEMISSOIL(:) = XEMISSN * PVEGTYPE(NVT_SNOW) & 00344 + XEMISSOIL * (1.-PVEGTYPE(NVT_SNOW)) 00345 ! 00346 PEMIS(:) = XEMISVEG * PVEG(:) & 00347 + ZEMISSOIL * (1.-PVEG(:)) 00348 ! 00349 WHERE (PVEG(:) == XUNDEF) 00350 PEMIS(:) = XUNDEF 00351 END WHERE 00352 ! 00353 IF (LHOOK) CALL DR_HOOK('MODI_EMIS_FROM_VEG:EMIS_FROM_VEG_PATCH',1,ZHOOK_HANDLE) 00354 ! 00355 !----------------------------------------------------------------- 00356 ! 00357 END FUNCTION EMIS_FROM_VEG_PATCH