SURFEX v7.3
General documentation of Surfex
|
00001 ! ######################### 00002 MODULE MODI_DRY_WET_SOIL_ALBEDOS 00003 ! ######################### 00004 ! 00005 INTERFACE DRY_WET_SOIL_ALBEDOS 00006 ! 00007 ! 00008 SUBROUTINE DRY_WET_SOIL_ALBEDOS_1D(PSAND,PCLAY, & 00009 PVEGTYPE, & 00010 PALBNIR_DRY,PALBVIS_DRY,PALBUV_DRY, & 00011 PALBNIR_WET,PALBVIS_WET,PALBUV_WET ) 00012 ! 00013 ! 00014 !* 0.1 declarations of arguments 00015 ! ------------------------- 00016 ! 00017 ! 00018 REAL, DIMENSION(:), INTENT(IN) :: PSAND ! sand fraction 00019 REAL, DIMENSION(:), INTENT(IN) :: PCLAY ! clay fraction 00020 REAL, DIMENSION(:,:), INTENT(IN):: PVEGTYPE ! vegetation type 00021 ! 00022 REAL, DIMENSION(:), INTENT(OUT) :: PALBVIS_DRY ! visible, near infra-red and UV 00023 REAL, DIMENSION(:), INTENT(OUT) :: PALBNIR_DRY ! dry bare soil albedo 00024 REAL, DIMENSION(:), INTENT(OUT) :: PALBUV_DRY ! 00025 REAL, DIMENSION(:), INTENT(OUT) :: PALBVIS_WET ! visible, near infra-red and UV 00026 REAL, DIMENSION(:), INTENT(OUT) :: PALBNIR_WET ! wet bare soil albedo 00027 REAL, DIMENSION(:), INTENT(OUT) :: PALBUV_WET ! 00028 ! 00029 END SUBROUTINE DRY_WET_SOIL_ALBEDOS_1D 00030 ! 00031 ! 00032 SUBROUTINE DRY_WET_SOIL_ALBEDOS_2D(PSAND,PCLAY, & 00033 PVEGTYPE, & 00034 PALBNIR_DRY,PALBVIS_DRY,PALBUV_DRY, & 00035 PALBNIR_WET,PALBVIS_WET,PALBUV_WET ) 00036 ! 00037 ! 00038 !* 0.1 declarations of arguments 00039 ! ------------------------- 00040 ! 00041 ! 00042 REAL, DIMENSION(:,:), INTENT(IN) :: PSAND ! sand fraction 00043 REAL, DIMENSION(:,:), INTENT(IN) :: PCLAY ! clay fraction 00044 REAL, DIMENSION(:,:,:), INTENT(IN):: PVEGTYPE ! vegetation type 00045 ! 00046 REAL, DIMENSION(:,:), INTENT(OUT) :: PALBVIS_DRY ! visible, near infra-red and UV 00047 REAL, DIMENSION(:,:), INTENT(OUT) :: PALBNIR_DRY ! dry bare soil albedo 00048 REAL, DIMENSION(:,:), INTENT(OUT) :: PALBUV_DRY ! 00049 REAL, DIMENSION(:,:), INTENT(OUT) :: PALBVIS_WET ! visible, near infra-red and UV 00050 REAL, DIMENSION(:,:), INTENT(OUT) :: PALBNIR_WET ! wet bare soil albedo 00051 REAL, DIMENSION(:,:), INTENT(OUT) :: PALBUV_WET ! 00052 ! 00053 END SUBROUTINE DRY_WET_SOIL_ALBEDOS_2D 00054 ! 00055 END INTERFACE 00056 ! 00057 END MODULE MODI_DRY_WET_SOIL_ALBEDOS 00058 ! 00059 ! ################################################################## 00060 SUBROUTINE DRY_WET_SOIL_ALBEDOS_1D(PSAND,PCLAY, & 00061 PVEGTYPE, & 00062 PALBNIR_DRY,PALBVIS_DRY,PALBUV_DRY, & 00063 PALBNIR_WET,PALBVIS_WET,PALBUV_WET ) 00064 ! ################################################################## 00065 ! 00066 !!**** *DRY_WET_SOIL_ALBEDOS* 00067 !! 00068 !! PURPOSE 00069 !! ------- 00070 ! computes the albedo of bare soil, for dry or wet conditions 00071 ! 00072 ! 00073 !!** METHOD 00074 !! ------ 00075 ! 00076 !! EXTERNAL 00077 !! -------- 00078 !! 00079 !! IMPLICIT ARGUMENTS 00080 !! ------------------ 00081 !! 00082 !! 00083 !! REFERENCE 00084 !! --------- 00085 !! 00086 !! 00087 !! AUTHOR 00088 !! ------ 00089 !! V. Masson * Meteo-France * 00090 !! 00091 !! MODIFICATIONS 00092 !! ------------- 00093 !! Original 17/12/99 00094 ! 00095 ! (V. Masson) 16/02/01 Better fit with ISLSCP2; 00096 ! Ba et al 2001; 00097 ! Pinty et al 2000 00098 ! (V. Masson) 01/2004 Add UV albedo 00099 !------------------------------------------------------------------------------- 00100 ! 00101 !* 0. DECLARATIONS 00102 ! ------------ 00103 ! 00104 USE MODD_DATA_COVER_PAR, ONLY : NVT_C3, NVT_C4, NVT_IRR, NVT_GRAS, NVT_TROG, & 00105 NVT_PARK, NVT_EVER, NVT_CONI, NVT_TREE 00106 ! 00107 ! 00108 ! 00109 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00110 USE PARKIND1 ,ONLY : JPRB 00111 ! 00112 IMPLICIT NONE 00113 ! 00114 !* 0.1 declarations of arguments 00115 ! ------------------------- 00116 ! 00117 REAL, DIMENSION(:), INTENT(IN) :: PSAND ! sand fraction 00118 REAL, DIMENSION(:), INTENT(IN) :: PCLAY ! clay fraction 00119 REAL, DIMENSION(:,:), INTENT(IN):: PVEGTYPE ! vegetation type 00120 ! 00121 REAL, DIMENSION(:), INTENT(OUT) :: PALBVIS_DRY ! visible, near infra-red and UV 00122 REAL, DIMENSION(:), INTENT(OUT) :: PALBNIR_DRY ! dry bare soil albedo 00123 REAL, DIMENSION(:), INTENT(OUT) :: PALBUV_DRY ! 00124 REAL, DIMENSION(:), INTENT(OUT) :: PALBVIS_WET ! visible, near infra-red and UV 00125 REAL, DIMENSION(:), INTENT(OUT) :: PALBNIR_WET ! wet bare soil albedo 00126 REAL, DIMENSION(:), INTENT(OUT) :: PALBUV_WET ! 00127 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00128 ! 00129 !------------------------------------------------------------------------------- 00130 ! 00131 IF (LHOOK) CALL DR_HOOK('MODI_DRY_WET_SOIL_ALBEDOS:DRY_WET_SOIL_ALBEDOS_1D',0,ZHOOK_HANDLE) 00132 PALBVIS_DRY(:) = 0.05 + ( 0.05 + MAX(0.30 * PSAND(:), 0.10) ) & 00133 * ( 1. - 0.9 * ( PVEGTYPE(:,NVT_C3) & 00134 + PVEGTYPE(:,NVT_C4) & 00135 + PVEGTYPE(:,NVT_IRR) & 00136 + PVEGTYPE(:,NVT_GRAS) & 00137 + PVEGTYPE(:,NVT_TROG) & 00138 + PVEGTYPE(:,NVT_PARK) & 00139 + PVEGTYPE(:,NVT_EVER) & 00140 + PVEGTYPE(:,NVT_CONI) & 00141 + PVEGTYPE(:,NVT_TREE) )**2 ) 00142 ! 00143 PALBNIR_DRY(:) = PALBVIS_DRY(:) + 0.10 00144 ! 00145 PALBUV_DRY (:) = 0.06 + 0.14 * PSAND(:) 00146 ! 00147 PALBVIS_WET(:) = PALBVIS_DRY(:) / 2. 00148 PALBNIR_WET(:) = PALBNIR_DRY(:) / 2. 00149 PALBUV_WET (:) = PALBUV_DRY (:) / 2. 00150 IF (LHOOK) CALL DR_HOOK('MODI_DRY_WET_SOIL_ALBEDOS:DRY_WET_SOIL_ALBEDOS_1D',1,ZHOOK_HANDLE) 00151 ! 00152 !------------------------------------------------------------------------------- 00153 ! 00154 END SUBROUTINE DRY_WET_SOIL_ALBEDOS_1D 00155 ! 00156 ! ################################################################## 00157 SUBROUTINE DRY_WET_SOIL_ALBEDOS_2D(PSAND,PCLAY, & 00158 PVEGTYPE, & 00159 PALBNIR_DRY,PALBVIS_DRY,PALBUV_DRY, & 00160 PALBNIR_WET,PALBVIS_WET,PALBUV_WET ) 00161 ! ################################################################## 00162 ! 00163 !!**** *DRY_WET_SOIL_ALBEDOS* 00164 !! 00165 !! PURPOSE 00166 !! ------- 00167 ! computes the albedo of bare soil, for dry or wet conditions 00168 ! 00169 ! 00170 !!** METHOD 00171 !! ------ 00172 ! 00173 !! EXTERNAL 00174 !! -------- 00175 !! 00176 !! IMPLICIT ARGUMENTS 00177 !! ------------------ 00178 !! 00179 !! 00180 !! REFERENCE 00181 !! --------- 00182 !! 00183 !! 00184 !! AUTHOR 00185 !! ------ 00186 !! V. Masson * Meteo-France * 00187 !! 00188 !! MODIFICATIONS 00189 !! ------------- 00190 !! Original 17/12/99 00191 ! (V. Masson) 16/02/01 Better fit with ISLSCP2; 00192 ! Ba et al 2001; 00193 ! Pinty et al 2000 00194 ! (V. Masson) Add UV albedo 00195 !------------------------------------------------------------------------------- 00196 ! 00197 !* 0. DECLARATIONS 00198 ! ------------ 00199 ! 00200 USE MODD_SURF_PAR, ONLY : XUNDEF 00201 USE MODD_DATA_COVER_PAR, ONLY : NVT_C3, NVT_C4, NVT_IRR, NVT_GRAS, NVT_TROG, & 00202 NVT_PARK, NVT_EVER, NVT_CONI, NVT_TREE 00203 ! 00204 ! 00205 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00206 USE PARKIND1 ,ONLY : JPRB 00207 ! 00208 IMPLICIT NONE 00209 ! 00210 !* 0.1 declarations of arguments 00211 ! ------------------------- 00212 ! 00213 REAL, DIMENSION(:,:), INTENT(IN) :: PSAND ! sand fraction 00214 REAL, DIMENSION(:,:), INTENT(IN) :: PCLAY ! clay fraction 00215 REAL, DIMENSION(:,:,:), INTENT(IN):: PVEGTYPE ! vegetation type 00216 ! 00217 REAL, DIMENSION(:,:), INTENT(OUT) :: PALBVIS_DRY ! visible, near infra-red and UV 00218 REAL, DIMENSION(:,:), INTENT(OUT) :: PALBNIR_DRY ! dry bare soil albedo 00219 REAL, DIMENSION(:,:), INTENT(OUT) :: PALBUV_DRY ! 00220 REAL, DIMENSION(:,:), INTENT(OUT) :: PALBVIS_WET ! visible, near infra-red and UV 00221 REAL, DIMENSION(:,:), INTENT(OUT) :: PALBNIR_WET ! wet bare soil albedo 00222 REAL, DIMENSION(:,:), INTENT(OUT) :: PALBUV_WET ! 00223 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00224 !------------------------------------------------------------------------------- 00225 ! 00226 IF (LHOOK) CALL DR_HOOK('MODI_DRY_WET_SOIL_ALBEDOS:DRY_WET_SOIL_ALBEDOS_2D',0,ZHOOK_HANDLE) 00227 PALBVIS_DRY(:,:) = XUNDEF 00228 PALBNIR_DRY(:,:) = XUNDEF 00229 PALBUV_DRY (:,:) = XUNDEF 00230 PALBVIS_WET(:,:) = XUNDEF 00231 PALBNIR_WET(:,:) = XUNDEF 00232 PALBUV_WET (:,:) = XUNDEF 00233 ! 00234 WHERE (PSAND(:,:)/=XUNDEF) 00235 PALBVIS_DRY(:,:) = 0.05 + ( 0.05 + MAX( 0.30 * PSAND(:,:), 0.10) ) & 00236 * ( 1. - 0.9 * ( PVEGTYPE(:,:,NVT_C3) & 00237 + PVEGTYPE(:,:,NVT_C4) & 00238 + PVEGTYPE(:,:,NVT_IRR) & 00239 + PVEGTYPE(:,:,NVT_GRAS) & 00240 + PVEGTYPE(:,:,NVT_TROG) & 00241 + PVEGTYPE(:,:,NVT_PARK) & 00242 + PVEGTYPE(:,:,NVT_EVER) & 00243 + PVEGTYPE(:,:,NVT_CONI) & 00244 + PVEGTYPE(:,:,NVT_TREE) )**2 ) 00245 ! 00246 PALBNIR_DRY(:,:) = PALBVIS_DRY(:,:) + 0.10 00247 ! 00248 PALBUV_DRY (:,:) = 0.06 + 0.14 * PSAND(:,:) 00249 ! 00250 PALBVIS_WET(:,:) = PALBVIS_DRY(:,:) / 2. 00251 PALBNIR_WET(:,:) = PALBNIR_DRY(:,:) / 2. 00252 PALBUV_WET (:,:) = PALBUV_DRY (:,:) / 2. 00253 END WHERE 00254 IF (LHOOK) CALL DR_HOOK('MODI_DRY_WET_SOIL_ALBEDOS:DRY_WET_SOIL_ALBEDOS_2D',1,ZHOOK_HANDLE) 00255 ! 00256 !------------------------------------------------------------------------------- 00257 ! 00258 END SUBROUTINE DRY_WET_SOIL_ALBEDOS_2D 00259