SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/dry_wet_soil_albedos.F90
Go to the documentation of this file.
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