SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
isba_emis_meb.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 isba_emis_meb(PPSN, PPSNA, PSIGMA_F, PSIGMA_FN, &
7  pemis_n, pemis )
8 ! ##########################################################################
9 !
10 !!**** *ISBA_EMIS_MEB*
11 !!
12 !! PURPOSE
13 !! -------
14 !
15 ! Calculates the total emissivity for a MEB patch
16 !
17 !!** METHOD
18 !! ------
19 !
20 !! EXTERNAL
21 !! --------
22 !!
23 !! none
24 !!
25 !! IMPLICIT ARGUMENTS
26 !! ------------------
27 !!
28 !!
29 !!
30 !! REFERENCE
31 !! ---------
32 !!
33 !! AUTHOR
34 !! ------
35 !!
36 !! A. Boone * Meteo-France *
37 !! P. Samuelsson * SMHI *
38 !!
39 !! MODIFICATIONS
40 !! -------------
41 !! Original 07/2014
42 !!
43 !-------------------------------------------------------------------------------
44 !
45 !* 0. DECLARATIONS
46 ! ------------
47 !
48 USE modd_isba_par, ONLY : xemissoil, xemisveg
49 !
50 USE yomhook ,ONLY : lhook, dr_hook
51 USE parkind1 ,ONLY : jprb
52 !
53 IMPLICIT NONE
54 !
55 !* 0.1 declarations of arguments
56 !
57 REAL, DIMENSION(:), INTENT(IN) :: ppsn, ppsna
58 ! PPSN = fraction of snow on ground and understory vegetation (-)
59 ! PPSNA = fraction of vegetation canopy buried by ground-based snowpack (-)
60 !
61 REAL, DIMENSION(:), INTENT(IN) :: psigma_f, psigma_fn, pemis_n
62 !
63 REAL, DIMENSION(:), INTENT(OUT) :: pemis
64 ! PEMIS = effective (aggregated) net surface emissivity (-)
65 !
66 !* 0.2 declarations of local variables
67 !
68 REAL, DIMENSION(SIZE(PPSN)) :: zpn, zemisg, zemisn, zsigma_fa
69 ! ZPN = working snow fraction (-)
70 ! ZEMISG = understory surface emissivity for computing effective value (-)
71 ! ZEMISN = snowpack surface emissivity for computing effective value (-)
72 ! ZSIGMA_FA = zworking shading factor (-)
73 !
74 REAL(KIND=JPRB) :: zhook_handle
75 !-------------------------------------------------------------------------------
76 !
77 !* 0. Initialization:
78 ! ---------------
79 !
80 IF (lhook) CALL dr_hook('ISBA_EMIS_MEB',0,zhook_handle)
81 !-------------------------------------------------------------------------------
82 !
83 !* 1. Compute effective emissivity
84 ! ----------------------------
85 ! (this is consistent with the LW flux computations in isba_lwnet_meb.f90):
86 !
87 zpn(:) = ppsn(:)*(1.-ppsna(:))
88 zsigma_fa(: ) = (1.-zpn(:))*psigma_f(:) + zpn(:)*psigma_fn(:)
89 zemisg(:) = zsigma_fa(:)*xemisveg + (1.0-zsigma_fa(:))*xemissoil
90 !
91 zpn(:) = ppsn(:) + ppsna(:)*(1.0-ppsn(:))
92 zsigma_fa(: ) = (1.-zpn(:))*psigma_f(:) + zpn(:)*psigma_fn(:)
93 zemisn(:) = zsigma_fa(:)*xemisveg + (1.0-zsigma_fa(:))*pemis_n(:)
94 !
95 pemis(:) = (1.0-ppsn(:))*zemisg(:) + ppsn(:)*zemisn(:)
96 !
97 !
98 IF (lhook) CALL dr_hook('ISBA_EMIS_MEB',1,zhook_handle)
99 !
100 END SUBROUTINE isba_emis_meb
101 
subroutine isba_emis_meb(PPSN, PPSNA, PSIGMA_F, PSIGMA_FN, PEMIS_N, PEMIS)