7 pdir_sw, psca_sw, psw_bands, ksw, &
8 palbnir, palbvis, palbuv, &
9 palbnir_veg, palbvis_veg, palbuv_veg, &
10 palbnir_soil, palbvis_soil, palbuv_soil, &
12 pglobal_sw, psnowfree_alb, &
13 psnowfree_alb_veg, psnowfree_alb_soil, &
15 palbnir_tveg, palbvis_tveg, &
16 palbnir_tsoil, palbvis_tsoil )
52 USE modi_albedo_from_nir_vis
55 USE yomhook
,ONLY : lhook, dr_hook
56 USE parkind1
,ONLY : jprb
62 CHARACTER(LEN=*) ,
INTENT(IN) :: hsnow
63 LOGICAL,
INTENT(IN) :: otr_ml
64 LOGICAL,
INTENT(IN) :: omeb
67 REAL,
DIMENSION(:,:),
INTENT(IN) :: pdir_sw
68 REAL,
DIMENSION(:,:),
INTENT(IN) :: psca_sw
69 REAL,
DIMENSION(:) ,
INTENT(IN) :: psw_bands
70 INTEGER,
INTENT(IN) :: ksw
71 REAL,
DIMENSION(:) ,
INTENT(IN) :: palbnir
72 REAL,
DIMENSION(:) ,
INTENT(IN) :: palbvis
73 REAL,
DIMENSION(:) ,
INTENT(IN) :: palbuv
74 REAL,
DIMENSION(:) ,
INTENT(IN) :: palbnir_veg
75 REAL,
DIMENSION(:) ,
INTENT(IN) :: palbvis_veg
76 REAL,
DIMENSION(:) ,
INTENT(IN) :: palbuv_veg
77 REAL,
DIMENSION(:) ,
INTENT(IN) :: palbnir_soil
78 REAL,
DIMENSION(:) ,
INTENT(IN) :: palbvis_soil
79 REAL,
DIMENSION(:) ,
INTENT(IN) :: palbuv_soil
80 REAL,
DIMENSION(:) ,
INTENT(IN) :: pfalb
81 REAL,
DIMENSION(:) ,
INTENT(IN) :: pffv
82 REAL,
DIMENSION(:) ,
INTENT(IN) :: pffg
84 REAL,
DIMENSION(:) ,
INTENT(OUT) :: pglobal_sw
85 REAL,
DIMENSION(:) ,
INTENT(OUT) :: pmeb_sca_sw
86 REAL,
DIMENSION(:) ,
INTENT(OUT) :: psnowfree_alb
87 REAL,
DIMENSION(:) ,
INTENT(OUT) :: psnowfree_alb_veg
88 REAL,
DIMENSION(:) ,
INTENT(OUT) :: psnowfree_alb_soil
89 REAL,
DIMENSION(:) ,
INTENT(OUT) :: palbnir_tveg
90 REAL,
DIMENSION(:) ,
INTENT(OUT) :: palbvis_tveg
91 REAL,
DIMENSION(:) ,
INTENT(OUT) :: palbnir_tsoil
92 REAL,
DIMENSION(:) ,
INTENT(OUT) :: palbvis_tsoil
101 REAL,
DIMENSION(SIZE(PALBNIR)) :: zsw_up
102 REAL,
DIMENSION(SIZE(PALBNIR),KSW) :: zdir_alb_without_snow
103 REAL,
DIMENSION(SIZE(PALBNIR),KSW) :: zsca_alb_without_snow
104 REAL,
DIMENSION(SIZE(PALBNIR),KSW) :: zdir_alb_veg_without_snow
105 REAL,
DIMENSION(SIZE(PALBNIR),KSW) :: zsca_alb_veg_without_snow
106 REAL,
DIMENSION(SIZE(PALBNIR),KSW) :: zdir_alb_soil_without_snow
107 REAL,
DIMENSION(SIZE(PALBNIR),KSW) :: zsca_alb_soil_without_snow
108 REAL(KIND=JPRB) :: zhook_handle
117 IF (lhook) CALL dr_hook(
'ISBA_ALBEDO',0,zhook_handle)
121 palbnir_tveg(:) = palbnir_veg(:)
122 palbnir_tsoil(:) = ( 1.-pffg(:))*palbnir_soil(:) + pffg(:)*pfalb(:)
123 palbvis_tveg(:) = palbvis_veg(:)
124 palbvis_tsoil(:) = ( 1.-pffg(:))*palbvis_soil(:) + pffg(:)*pfalb(:)
126 palbnir_tveg(:) = palbnir_veg(:)
127 palbnir_tsoil(:) = palbnir_soil(:)
128 palbvis_tveg(:) = palbvis_veg(:)
129 palbvis_tsoil(:) = palbvis_soil(:)
132 palbnir_tveg(:) = xundef
133 palbnir_tsoil(:) = xundef
134 palbvis_tveg(:) = xundef
135 palbvis_tsoil(:) = xundef
139 zdir_alb_without_snow, zsca_alb_without_snow )
146 pglobal_sw(:) = pglobal_sw(:) + (pdir_sw(:,jswb) + psca_sw(:,jswb))
147 pmeb_sca_sw(:) = pmeb_sca_sw(:) + (psca_sw(:,jswb))
154 zsw_up(:) = zsw_up(:) &
155 + zdir_alb_without_snow(:,jswb) * pdir_sw(:,jswb) &
156 + zsca_alb_without_snow(:,jswb) * psca_sw(:,jswb)
158 psnowfree_alb(:) = xundef
159 WHERE(pglobal_sw(:)>0.)
160 psnowfree_alb(:) = zsw_up(:) / pglobal_sw(:)
162 psnowfree_alb(:) = zdir_alb_without_snow(:,1)
165 IF(hsnow ==
'EBA')
THEN
167 palbnir_veg, palbvis_veg, palbuv_veg, &
168 zdir_alb_veg_without_snow, &
169 zsca_alb_veg_without_snow )
172 zsw_up(:) = zsw_up(:) &
173 + zdir_alb_veg_without_snow(:,jswb) * pdir_sw(:,jswb) &
174 + zsca_alb_veg_without_snow(:,jswb) * psca_sw(:,jswb)
176 psnowfree_alb_veg(:) = xundef
177 WHERE(pglobal_sw(:)>0.) psnowfree_alb_veg(:) = zsw_up(:) / pglobal_sw(:)
180 palbnir_soil, palbvis_soil, palbuv_soil, &
181 zdir_alb_soil_without_snow, &
182 zsca_alb_soil_without_snow )
185 zsw_up(:) = zsw_up(:) &
186 + zdir_alb_soil_without_snow(:,jswb) * pdir_sw(:,jswb) &
187 + zsca_alb_soil_without_snow(:,jswb) * psca_sw(:,jswb)
189 psnowfree_alb_soil(:) = xundef
190 WHERE(pglobal_sw(:)>0.) psnowfree_alb_soil(:) = zsw_up(:) / pglobal_sw(:)
192 IF (lhook) CALL dr_hook(
'ISBA_ALBEDO',1,zhook_handle)
subroutine albedo_from_nir_vis(PSW_BANDS, PALBNIR, PALBVIS, PALBUV, PDIR_ALB, PSCA_ALB)
subroutine isba_albedo(HSNOW, OTR_ML, OMEB, PDIR_SW, PSCA_SW, PSW_BANDS, KSW, PALBNIR, PALBVIS, PALBUV, PALBNIR_VEG, PALBVIS_VEG, PALBUV_VEG, PALBNIR_SOIL, PALBVIS_SOIL, PALBUV_SOIL, PFALB, PFFV, PFFG, PGLOBAL_SW, PSNOWFREE_ALB, PSNOWFREE_ALB_VEG, PSNOWFREE_ALB_SOIL, PMEB_SCA_SW, PALBNIR_TVEG, PALBVIS_TVEG, PALBNIR_TSOIL, PALBVIS_TSOIL)