SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
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(PT_CAN, PQ_CAN, PTI_BLD, PQI_BLD, PU10, PPS, &
7  pref_sw_grnd, pref_sw_fac, psca_sw, pdir_sw, pzenith,&
8  pemit_lw_fac, pemit_lw_grnd, plw_rad, ptrad_in, &
9  pbld, pbld_height, pwall_o_hor, &
10  putci_in, putci_outsun, putci_outshade, &
11  ptrad_sun, ptrad_shade )
12 ! ##########################################################################
13 !
14 !!**** *UTCI_TEB*
15 !!
16 !! PURPOSE
17 !! -------
18 !
19 ! Computes the Universal Thermal and Climate Index Equivalent temperature
20 ! for 3 persons in the urban environment
21 !
22 !
23 !!** METHOD
24 ! ------
25 !
26 !! EXTERNAL
27 !! --------
28 !!
29 !! IMPLICIT ARGUMENTS
30 !! ------------------
31 !! a supplement
32 !! MODD_CST
33 !!
34 !! REFERENCE
35 !! ---------
36 !! www.utci.org
37 !!
38 !! AUTHOR
39 !! ------
40 !!
41 !! G. Pigeon * Meteo-France *
42 !!
43 !! MODIFICATIONS
44 !! -------------
45 !! Original 03/2011
46 !-------------------------------------------------------------------------------
47 !
48 !* 0. DECLARATIONS
49 ! ------------
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 REAL, DIMENSION(:), INTENT(IN) :: pt_can !Air canyon temperature (K)
62 REAL, DIMENSION(:), INTENT(IN) :: pq_can !Canyon specific humidity (kg/kg)
63 REAL, DIMENSION(:), INTENT(IN) :: pti_bld !Indoor air temperature (K)
64 REAL, DIMENSION(:), INTENT(IN) :: pqi_bld !Indoor specific humidity (kg/kg)
65 REAL, DIMENSION(:), INTENT(IN) :: pu10 !Canyon wind speed at 10m (m/s)
66 REAL, DIMENSION(:), INTENT(IN) :: pps !Atmospheric Pressure (Pa)
67 REAL, DIMENSION(:), INTENT(IN) :: pref_sw_grnd !Solar radiation reflected by ground [road + garden] (W/m2)
68 REAL, DIMENSION(:), INTENT(IN) :: pref_sw_fac !Solar radiation reflected by facade [wall + glazing] (W/m2)
69 REAL, DIMENSION(:), INTENT(IN) :: psca_sw !Diffuse solar radiation (W/m2)
70 REAL, DIMENSION(:), INTENT(IN) :: pdir_sw !Direct solar radiation (W/m2)
71 REAL, DIMENSION(:), INTENT(IN) :: pzenith !solar zenithal angle (rad from vert.)
72 REAL, DIMENSION(:), INTENT(IN) :: pemit_lw_fac !Longwave radiation emitted by the facade [wall + glazing] (W/m2)
73 REAL, DIMENSION(:), INTENT(IN) :: pemit_lw_grnd !Longwave radiation emitted by the ground [road + garden] (W/m2)
74 REAL, DIMENSION(:), INTENT(IN) :: plw_rad !Atmospheric longwave radiation (W/m2)
75 REAL, DIMENSION(:), INTENT(IN) :: ptrad_in !Indoor radiant temperature (K)
76 REAL, DIMENSION(:), INTENT(IN) :: pbld !Building surface fraction
77 REAL, DIMENSION(:), INTENT(IN) :: pbld_height !Building surface fraction
78 REAL, DIMENSION(:), INTENT(IN) :: pwall_o_hor !Building surface fraction
79 REAL, DIMENSION(:), INTENT(OUT) :: putci_in !UTCI for indoor person (C)
80 REAL, DIMENSION(:), INTENT(OUT) :: putci_outsun !UTCI for outdoor person at sun (C)
81 REAL, DIMENSION(:), INTENT(OUT) :: putci_outshade !UTCI for outdoor person in shade (C)
82 REAL, DIMENSION(:), INTENT(OUT) :: ptrad_sun !Mean radiant temperature at sun (C)
83 REAL, DIMENSION(:), INTENT(OUT) :: ptrad_shade !Mean radiant temperature in shade (C)
84 !
85 !* 0.2 declarations of local variables
86 REAL, DIMENSION(SIZE(PTI_BLD)) :: zehpa !water vapour pressure (hPa)
87 REAL, DIMENSION(SIZE(PTI_BLD)) :: zuin !indoor air wind speed (m/s)
88 REAL, DIMENSION(SIZE(PTI_BLD)) :: zdir_sw !direct solar radiation
89 REAL, DIMENSION(SIZE(PTI_BLD)) :: zzenith !zenithal angle
90 !
91 REAL(KIND=JPRB) :: zhook_handle
92 !
93 IF (lhook) CALL dr_hook('UTCI_TEB',0,zhook_handle)
94 ! 1-calculation of UTCI_IN
95 zehpa = pqi_bld * pps /(0.622 + 0.378 * pqi_bld) / 100.
96 zuin = 0.5
97 putci_in = utci_approx(pti_bld - xtt, zehpa, ptrad_in - xtt, zuin)
98 !
99 ! 2-calculation of UTCI_OUTSUN
100 zehpa = pq_can * pps / (0.622 + 0.378 * pq_can) /100.
101 ptrad_sun = trad_body(psca_sw, pref_sw_fac, pref_sw_grnd, &
102  pemit_lw_fac, pemit_lw_grnd, plw_rad,&
103  pbld, pbld_height, pwall_o_hor, pdir_sw, pzenith )
104 putci_outsun = utci_approx(pt_can - xtt, zehpa, ptrad_sun - xtt, pu10)
105 !
106 ! 3-calculation of UTCI_OUTSHADE
107 zdir_sw=0.
108 zzenith=0.
109 !!PTRAD_SHADE = TRAD_BODY(PSCA_SW,PREF_SW_FAC, PREF_SW_GRND, &
110 !! PEMIT_LW_FAC, PEMIT_LW_GRND, PLW_RAD,&
111 !! PBLD, PBLD_HEIGHT, PWALL_O_HOR, ZDIR_SW, ZZENITH)
112 ptrad_shade = trad_body(psca_sw,pref_sw_fac, pref_sw_grnd, &
113  pemit_lw_fac, pemit_lw_grnd, plw_rad,&
114  pbld, pbld_height, pwall_o_hor)
115 putci_outshade = utci_approx(pt_can - xtt, zehpa, ptrad_shade - xtt, pu10)
116 IF (lhook) CALL dr_hook('UTCI_TEB',1,zhook_handle)
117 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:27
subroutine utci_teb(PT_CAN, PQ_CAN, 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, PBLD, PBLD_HEIGHT, PWALL_O_HOR, PUTCI_IN, PUTCI_OUTSUN, PUTCI_OUTSHADE, PTRAD_SUN, PTRAD_SHADE)
Definition: utci_teb.F90:6
real function, dimension(size(pta)) utci_approx(PTA, PEHPA, PTMRT, PVA)
Definition: utci_approx.F90:6