SURFEX v8.1
General documentation of Surfex
dry_wet_soil_albedos.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 dry_wet_soil_albedos( KK )
7 ! ##################################################################
8 !
9 !!**** *DRY_WET_SOIL_ALBEDOS*
10 !!
11 !! PURPOSE
12 !! -------
13 ! computes the albedo of bare soil, for dry or wet conditions
14 !
15 !
16 !!** METHOD
17 !! ------
18 !
19 !! EXTERNAL
20 !! --------
21 !!
22 !! IMPLICIT ARGUMENTS
23 !! ------------------
24 !!
25 !!
26 !! REFERENCE
27 !! ---------
28 !!
29 !!
30 !! AUTHOR
31 !! ------
32 !! V. Masson * Meteo-France *
33 !!
34 !! MODIFICATIONS
35 !! -------------
36 !! Original 17/12/99
37 !
38 ! (V. Masson) 16/02/01 Better fit with ISLSCP2;
39 ! Ba et al 2001;
40 ! Pinty et al 2000
41 ! (V. Masson) 01/2004 Add UV albedo
42 ! (R. Alkama) 05/2012 Add 7 new vegtype (19 rather than 12)
43 !-------------------------------------------------------------------------------
44 !
45 !* 0. DECLARATIONS
46 ! ------------
47 !
48 USE modd_isba_n, ONLY : isba_k_t
49 !
50 USE modd_data_cover_par, ONLY : nvt_park, nvt_tebd, nvt_bone, nvt_trbe, nvt_trbd, &
51  nvt_tebe, nvt_tene, nvt_bobd, nvt_bond, nvt_shrb, &
52  nvt_c3, nvt_c4, nvt_irr, nvt_gras, nvt_bogr, &
53  nvt_trog, nvt_c3w, nvt_c3s, nvt_fltr, nvt_flgr
54 !
55 USE yomhook ,ONLY : lhook, dr_hook
56 USE parkind1 ,ONLY : jprb
57 !
58 IMPLICIT NONE
59 !
60 !* 0.1 declarations of arguments
61 ! -------------------------
62 !
63 TYPE(isba_k_t), INTENT(INOUT) :: KK
64 !
65 REAL :: ZSUM
66 INTEGER :: JJ
67 REAL(KIND=JPRB) :: ZHOOK_HANDLE
68 !
69 !-------------------------------------------------------------------------------
70 !
71 IF (lhook) CALL dr_hook('DRY_WET_SOIL_ALBEDOS',0,zhook_handle)
72 !
73 DO jj=1,SIZE(kk%XVEGTYPE,1)
74  !
75  zsum = kk%XVEGTYPE(jj,nvt_c4) + kk%XVEGTYPE(jj,nvt_gras) + kk%XVEGTYPE(jj,nvt_trog) &
76  + kk%XVEGTYPE(jj,nvt_trbe) + kk%XVEGTYPE(jj,nvt_bone) + kk%XVEGTYPE(jj,nvt_tebd) &
77  + kk%XVEGTYPE(jj,nvt_trbd) + kk%XVEGTYPE(jj,nvt_tebe) + kk%XVEGTYPE(jj,nvt_tene) &
78  + kk%XVEGTYPE(jj,nvt_bobd) + kk%XVEGTYPE(jj,nvt_bond) + kk%XVEGTYPE(jj,nvt_bogr) &
79  + kk%XVEGTYPE(jj,nvt_shrb)
80  !
81  IF (nvt_c3/=0 .AND. nvt_irr/=0) THEN
82  zsum = zsum + kk%XVEGTYPE(jj,nvt_c3) + kk%XVEGTYPE(jj,nvt_irr)
83  ELSEIF (nvt_c3w/=0 .AND. nvt_c3s/=0) THEN
84  zsum = zsum + kk%XVEGTYPE(jj,nvt_c3w) + kk%XVEGTYPE(jj,nvt_c3s)
85  ENDIF
86  !
87  IF (nvt_park/=0) THEN
88  zsum = zsum + kk%XVEGTYPE(jj,nvt_park)
89  ELSEIF (nvt_fltr/=0 .AND. nvt_flgr/=0) THEN
90  zsum = zsum + kk%XVEGTYPE(jj,nvt_fltr) + kk%XVEGTYPE(jj,nvt_flgr)
91  ENDIF
92  !
93  kk%XALBVIS_DRY(jj) = 0.05 + ( 0.05 + max(0.30 * kk%XSAND(jj,1), 0.10) ) &
94  * ( 1. - 0.9 * zsum**2 )
95  !
96 ENDDO
97 !
98 kk%XALBNIR_DRY(:) = kk%XALBVIS_DRY(:) + 0.10
99 !
100 kk%XALBUV_DRY (:) = 0.06 + 0.14 * kk%XSAND(:,1)
101 !
102 kk%XALBVIS_WET(:) = kk%XALBVIS_DRY(:) / 2.
103 kk%XALBNIR_WET(:) = kk%XALBNIR_DRY(:) / 2.
104 kk%XALBUV_WET (:) = kk%XALBUV_DRY (:) / 2.
105 !
106 IF (lhook) CALL dr_hook('DRY_WET_SOIL_ALBEDOS',1,zhook_handle)
107 !
108 !-------------------------------------------------------------------------------
109 !
110 END SUBROUTINE dry_wet_soil_albedos
integer, parameter jprb
Definition: parkind1.F90:32
logical lhook
Definition: yomhook.F90:15
subroutine dry_wet_soil_albedos(KK)