SURFEX v8.1
General documentation of Surfex
utci_teb.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 utci_teb(T, DUT, PTI_BLD, PQI_BLD, PU10, PPS, PREF_SW_GRND, PREF_SW_FAC, &
7  PSCA_SW, PDIR_SW, PZENITH, PEMIT_LW_FAC, PEMIT_LW_GRND, PLW_RAD,&
8  PTRAD_IN )
9 ! ##########################################################################
10 !
11 !!**** *UTCI_TEB*
12 !!
13 !! PURPOSE
14 !! -------
15 !
16 ! Computes the Universal Thermal and Climate Index Equivalent temperature
17 ! for 3 persons in the urban environment
18 !
19 !
20 !!** METHOD
21 ! ------
22 !
23 !! EXTERNAL
24 !! --------
25 !!
26 !! IMPLICIT ARGUMENTS
27 !! ------------------
28 !! a supplement
29 !! MODD_CST
30 !!
31 !! REFERENCE
32 !! ---------
33 !! www.utci.org
34 !!
35 !! AUTHOR
36 !! ------
37 !!
38 !! G. Pigeon * Meteo-France *
39 !!
40 !! MODIFICATIONS
41 !! -------------
42 !! Original 03/2011
43 !-------------------------------------------------------------------------------
44 !
45 !* 0. DECLARATIONS
46 ! ------------
47 !
49 USE modd_teb_n, ONLY : teb_t
50 !
51 USE modd_csts, ONLY : xtt
52 USE modi_utci_approx
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 TYPE(teb_t), INTENT(INOUT) :: T
62 TYPE(diag_utci_teb_t), INTENT(INOUT) :: DUT
63 !
64 REAL, DIMENSION(:), INTENT(IN) :: PTI_BLD !Indoor air temperature (K)
65 REAL, DIMENSION(:), INTENT(IN) :: PQI_BLD !Indoor specific humidity (kg/kg)
66 REAL, DIMENSION(:), INTENT(IN) :: PU10 !Canyon wind speed at 10m (m/s)
67 REAL, DIMENSION(:), INTENT(IN) :: PPS !Atmospheric Pressure (Pa)
68 REAL, DIMENSION(:), INTENT(IN) :: PREF_SW_GRND !Solar radiation reflected by ground [road + garden] (W/m2)
69 REAL, DIMENSION(:), INTENT(IN) :: PREF_SW_FAC !Solar radiation reflected by facade [wall + glazing] (W/m2)
70 REAL, DIMENSION(:), INTENT(IN) :: PSCA_SW !Diffuse solar radiation (W/m2)
71 REAL, DIMENSION(:), INTENT(IN) :: PDIR_SW !Direct solar radiation (W/m2)
72 REAL, DIMENSION(:), INTENT(IN) :: PZENITH !solar zenithal angle (rad from vert.)
73 REAL, DIMENSION(:), INTENT(IN) :: PEMIT_LW_FAC !Longwave radiation emitted by the facade [wall + glazing] (W/m2)
74 REAL, DIMENSION(:), INTENT(IN) :: PEMIT_LW_GRND !Longwave radiation emitted by the ground [road + garden] (W/m2)
75 REAL, DIMENSION(:), INTENT(IN) :: PLW_RAD !Atmospheric longwave radiation (W/m2)
76 REAL, DIMENSION(:), INTENT(IN) :: PTRAD_IN !Indoor radiant temperature (K)
77 !
78 !* 0.2 declarations of local variables
79 REAL, DIMENSION(SIZE(PTI_BLD)) :: ZEHPA !water vapour pressure (hPa)
80 REAL, DIMENSION(SIZE(PTI_BLD)) :: ZUIN !indoor air wind speed (m/s)
81 REAL, DIMENSION(SIZE(PTI_BLD)) :: ZDIR_SW !direct solar radiation
82 REAL, DIMENSION(SIZE(PTI_BLD)) :: ZZENITH !zenithal angle
83 !
84 REAL(KIND=JPRB) :: ZHOOK_HANDLE
85 !
86 IF (lhook) CALL dr_hook('UTCI_TEB',0,zhook_handle)
87 ! 1-calculation of UTCI_IN
88 zehpa = pqi_bld * pps /(0.622 + 0.378 * pqi_bld) / 100.
89 zuin = 0.5
90 dut%XUTCI_IN = utci_approx(pti_bld - xtt, zehpa, ptrad_in - xtt, zuin)
91 !
92 ! 2-calculation of UTCI_OUTSUN
93 zehpa = t%XQ_CANYON * pps / (0.622 + 0.378 * t%XQ_CANYON) /100.
94 dut%XTRAD_SUN = trad_body(psca_sw, pref_sw_fac, pref_sw_grnd, pemit_lw_fac, pemit_lw_grnd, plw_rad, &
95  t%XBLD, t%XBLD_HEIGHT, t%XWALL_O_HOR, pdir_sw, pzenith )
96 dut%XUTCI_OUTSUN = utci_approx(t%XT_CANYON - xtt, zehpa, dut%XTRAD_SUN - xtt, pu10)
97 !
98 ! 3-calculation of UTCI_OUTSHADE
99 zdir_sw=0.
100 zzenith=0.
101 !!DUT%XTRAD_SHADE = TRAD_BODY(PSCA_SW,PREF_SW_FAC, PREF_SW_GRND, &
102 !! PEMIT_LW_FAC, PEMIT_LW_GRND, PLW_RAD,&
103 !! T%XBLD, T%XBLD_HEIGHT, T%XWALL_O_HOR, ZDIR_SW, ZZENITH)
104 dut%XTRAD_SHADE = trad_body(psca_sw,pref_sw_fac, pref_sw_grnd, pemit_lw_fac, pemit_lw_grnd, plw_rad,&
105  t%XBLD, t%XBLD_HEIGHT, t%XWALL_O_HOR)
106 dut%XUTCI_OUTSHADE = utci_approx(t%XT_CANYON - xtt, zehpa, dut%XTRAD_SHADE - xtt, pu10)
107 IF (lhook) CALL dr_hook('UTCI_TEB',1,zhook_handle)
108 END SUBROUTINE utci_teb
real function, dimension(size(psca_sw)) trad_body(PSCA_SW, PREF_SW_FAC, PREF_SW_GRND, PEMIT_LW_FAC, PEMIT_LW_GRND, PLW_RAD, PBLD, PBLD_HEIGHT, PWALL_O_HOR, PDIR_SW, PZENITH)
Definition: trad_body.F90:29
integer, parameter jprb
Definition: parkind1.F90:32
real function, dimension(size(pta)) utci_approx(PTA, PEHPA, PTMRT, PVA)
Definition: utci_approx.F90:7
subroutine utci_teb(T, DUT, PTI_BLD, PQI_BLD, PU10, PPS, PREF_SW_GRND, PREF_SW_FAC, PSCA_SW, PDIR_SW, PZENITH, PEMIT_LW_FAC, PEMIT_LW_GRND, PLW_RAD, PTRAD_IN)
Definition: utci_teb.F90:9
logical lhook
Definition: yomhook.F90:15
real, save xtt
Definition: modd_csts.F90:66