SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
modd_bemn.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  MODULE modd_bem_n
7 ! ################
8 !
9 !!**** *MODD_BEM_n - declaration of parameters and option for BEM
10 !!
11 !! PURPOSE
12 !! -------
13 ! Declaration of surface parameters
14 !
15 !!
16 !!** IMPLICIT ARGUMENTS
17 !! ------------------
18 !! None
19 !!
20 !! REFERENCE
21 !! ---------
22 !!
23 !! AUTHOR
24 !! ------
25 !! B. Bueno *Meteo France*
26 !!
27 !! MODIFICATIONS
28 !! -------------
29 !! Original 10/2010
30 !! G. Pigeon 06/2011 add LSHAD_DAY
31 !! G. Pigeon 07/2011 add LNATVENT_NIGHT
32 !! G. Pigeon 08/2011 change from MODD_BLD -> MODD_BEM
33 !! G. Pigeon 10/2011 add indoor relative surf. and view factors
34 !! G. Pigeon 09/2012 add TRAN_WIN
35 !! G. Pigeon 10/2012 add XF_WIN_WIN
36 !! V. Masson 06/2013 splits module in two
37 !
38 !* 0. DECLARATIONS
39 ! ------------
40 !
41 USE yomhook ,ONLY : lhook, dr_hook
42 USE parkind1 ,ONLY : jprb
43 !
44 IMPLICIT NONE
45 !
46 !--------------------------------------------------------------------------
47 !
49 !
50 ! Floor parameters
51 !
52  REAL, POINTER, DIMENSION(:,:) :: XHC_FLOOR ! floor layers heat capacity (J/K/m3)
53  REAL, POINTER, DIMENSION(:,:) :: XTC_FLOOR ! floor layers thermal conductivity (W/K/m)
54  REAL, POINTER, DIMENSION(:,:) :: XD_FLOOR ! depth of floor layers (m)
55 !
56 ! HVAC parameters
57 !
58  REAL, POINTER, DIMENSION(:) :: XTCOOL_TARGET ! cooling setpoint of indoor air
59  REAL, POINTER, DIMENSION(:) :: XTHEAT_TARGET ! heating setpoint of indoor air
60  REAL, POINTER, DIMENSION(:) :: XF_WASTE_CAN ! fraction of waste heat released into the canyon
61  REAL, POINTER, DIMENSION(:) :: XEFF_HEAT ! efficiency of the heating system
62 !
63 ! Indoor parameters
64 !
65  REAL, POINTER, DIMENSION(:) :: XTI_BLD ! building interior temperature (K)
66  REAL, POINTER, DIMENSION(:,:) :: XT_FLOOR ! floor layer temperatures (K)
67  REAL, POINTER, DIMENSION(:,:) :: XT_MASS ! Air cooled building internal th. mass temperature (K)
68 !
69  REAL, POINTER, DIMENSION(:) :: XQIN ! internal heat gains [W m-2(floor)]
70  REAL, POINTER, DIMENSION(:) :: XQIN_FRAD ! radiant fraction of internal heat gains
71  REAL, POINTER, DIMENSION(:) :: XSHGC ! solar heat gain coef. of windows
72  REAL, POINTER, DIMENSION(:) :: XSHGC_SH ! solar heat gain coef. of windows + shading
73  REAL, POINTER, DIMENSION(:) :: XU_WIN ! window U-factor [K m W-2]
74  REAL, POINTER, DIMENSION(:) :: XTRAN_WIN ! window transmittance (-)
75  REAL, POINTER, DIMENSION(:) :: XGR ! glazing ratio
76  REAL, POINTER, DIMENSION(:) :: XFLOOR_HEIGHT ! building floor height [m]
77  REAL, POINTER, DIMENSION(:) :: XINF ! infiltration/ventilation flow rate [AC/H]
78 !
79 ! New parameters
80 !
81  REAL, POINTER, DIMENSION(:) :: XF_WATER_COND ! fraction of evaporation for condensers (cooling system)
82  REAL, POINTER, DIMENSION(:) :: XAUX_MAX ! Auxiliar variable for autosize calcs
83  REAL, POINTER, DIMENSION(:) :: XQIN_FLAT ! Latent franction of internal heat gains
84  REAL, POINTER, DIMENSION(:) :: XHR_TARGET ! Relative humidity setpoint
85  REAL, POINTER, DIMENSION(:) :: XT_WIN2 ! Indoor window temperature [K]
86  REAL, POINTER, DIMENSION(:) :: XQI_BLD ! Indoor air specific humidity [kg kg-1]
87  REAL, POINTER, DIMENSION(:) :: XV_VENT ! Ventilation flow rate [AC/H]
88  REAL, POINTER, DIMENSION(:) :: XCAP_SYS_HEAT ! Capacity of the heating system
89  ! [W m-2(bld)]
90  REAL, POINTER, DIMENSION(:) :: XCAP_SYS_RAT ! Rated capacity of the cooling system
91  ! [W m-2(bld)]
92  REAL, POINTER, DIMENSION(:) :: XT_ADP ! Apparatus dewpoint temperature of the
93  ! cooling coil [K]
94  REAL, POINTER, DIMENSION(:) :: XM_SYS_RAT ! Rated HVAC mass flow rate
95  ! [kg s-1 m-2(bld)]
96  REAL, POINTER, DIMENSION(:) :: XCOP_RAT ! Rated COP of the cooling system
97  REAL, POINTER, DIMENSION(:) :: XT_WIN1 ! outdoor window temperature [K]
98  REAL, POINTER, DIMENSION(:) :: XALB_WIN ! window albedo
99  REAL, POINTER, DIMENSION(:) :: XABS_WIN ! window absortance
100  REAL, POINTER, DIMENSION(:) :: XT_SIZE_MAX ! Maximum outdoor air temperature for
101  ! HVAC sizing [K]
102  REAL, POINTER, DIMENSION(:) :: XT_SIZE_MIN ! Minimum outdoor air temperature for
103  ! HVAC sizing [K]
104  REAL, POINTER, DIMENSION(:) :: XUGG_WIN ! Window glass-to-glass U-factor [K m W-2]
105  LOGICAL, POINTER, DIMENSION(:):: LSHADE ! flag to activate shading devices -> LOGICAL in the code
106  REAL, POINTER, DIMENSION(:):: XSHADE ! flag to activate shading devices -> REAL for i/o 0. or 1.
107  CHARACTER(LEN=4), POINTER, DIMENSION(:) :: CNATVENT ! flag to activate natural ventilation 'NONE', 'MANU', 'AUTO'
108  REAL, POINTER, DIMENSION(:):: XNATVENT ! flag to describe surventilation system for i/o
109  ! 0 for NONE, 1 for MANU and 2 for AUTO
110  LOGICAL, POINTER, DIMENSION(:):: LSHAD_DAY !Has shading been necessary this day ?
111  LOGICAL, POINTER, DIMENSION(:):: LNATVENT_NIGHT !Has nocturnal surventilation been necessary and possible this night ?
112  !
113  !indoor relative surfaces and view factors
114  REAL, POINTER, DIMENSION(:) :: XN_FLOOR ! Number of floors
115  REAL, POINTER, DIMENSION(:) :: XGLAZ_O_BLD ! Window area [m2_win/m2_bld]
116  REAL, POINTER, DIMENSION(:) :: XMASS_O_BLD ! Mass area [m2_mass/m2_bld]
117  REAL, POINTER, DIMENSION(:) :: XFLOOR_HW_RATIO ! H/W ratio of 1 floor level
118  REAL, POINTER, DIMENSION(:) :: XF_FLOOR_MASS ! View factor floor-mass
119  REAL, POINTER, DIMENSION(:) :: XF_FLOOR_WALL ! View factor floor-wall
120  REAL, POINTER, DIMENSION(:) :: XF_FLOOR_WIN ! View factor floor-window
121  REAL, POINTER, DIMENSION(:) :: XF_FLOOR_ROOF ! View factor floor-roof
122  REAL, POINTER, DIMENSION(:) :: XF_WALL_FLOOR ! View factor wall-floor
123  REAL, POINTER, DIMENSION(:) :: XF_WALL_MASS ! View factor wall-mass
124  REAL, POINTER, DIMENSION(:) :: XF_WALL_WIN ! View factor wall-win
125  REAL, POINTER, DIMENSION(:) :: XF_WIN_FLOOR ! View factor win-floor
126  REAL, POINTER, DIMENSION(:) :: XF_WIN_MASS ! View factor win-mass
127  REAL, POINTER, DIMENSION(:) :: XF_WIN_WALL ! View factor win-wall
128  REAL, POINTER, DIMENSION(:) :: XF_WIN_WIN ! indoor View factor win-win
129  REAL, POINTER, DIMENSION(:) :: XF_MASS_FLOOR ! View factor mass-floor
130  REAL, POINTER, DIMENSION(:) :: XF_MASS_WALL ! View factor mass-wall
131  REAL, POINTER, DIMENSION(:) :: XF_MASS_WIN ! View factor mass-window
132 
133 
134 !
135 END TYPE bem_1p_t
136 !
137 TYPE bem_t
138  !
139  TYPE(bem_1p_t), POINTER :: ALP(:) => NULL()
140  TYPE(bem_1p_t), POINTER :: CUR => NULL()
141  !
142 END TYPE bem_t
143 !
144  CONTAINS
145 
146 !----------------------------------------------------------------------------
147 !
148 !
149 SUBROUTINE bem_goto_patch(YBEM,KTO_PATCH)
150 TYPE(bem_t), INTENT(INOUT) :: ybem
151 INTEGER, INTENT(IN) :: kto_patch
152 REAL(KIND=JPRB) :: zhook_handle
153 !
154 ! Current patch is set to patch KTO_PATCH
155 IF (lhook) CALL dr_hook('MODD_BEM_N:BEM_GOTO_PATCH',0,zhook_handle)
156 
157 ybem%CUR => ybem%ALP(kto_patch)
158 
159 IF (lhook) CALL dr_hook('MODD_BEM_N:BEM_GOTO_PATCH',1,zhook_handle)
160 
161 END SUBROUTINE bem_goto_patch
162 !
163 !
164 SUBROUTINE bem_init(YBEM,KPATCH)
165 TYPE(bem_t), INTENT(INOUT) :: ybem
166 INTEGER, INTENT(IN) :: kpatch
167 INTEGER :: jp
168 REAL(KIND=JPRB) :: zhook_handle
169 IF (lhook) CALL dr_hook("MODD_BEM_N:BEM_INIT",0,zhook_handle)
170  ALLOCATE(ybem%ALP(kpatch))
171  ybem%CUR => ybem%ALP(1)
172 DO jp=1,kpatch
173  nullify(ybem%ALP(jp)%XF_WATER_COND)
174  nullify(ybem%ALP(jp)%XHC_FLOOR)
175  nullify(ybem%ALP(jp)%XTC_FLOOR)
176  nullify(ybem%ALP(jp)%XD_FLOOR)
177  nullify(ybem%ALP(jp)%XTCOOL_TARGET)
178  nullify(ybem%ALP(jp)%XTHEAT_TARGET)
179  nullify(ybem%ALP(jp)%XTI_BLD)
180  nullify(ybem%ALP(jp)%XT_FLOOR)
181  nullify(ybem%ALP(jp)%XT_MASS)
182  nullify(ybem%ALP(jp)%XQIN)
183  nullify(ybem%ALP(jp)%XQIN_FRAD)
184  nullify(ybem%ALP(jp)%XSHGC)
185  nullify(ybem%ALP(jp)%XSHGC_SH)
186  nullify(ybem%ALP(jp)%XU_WIN)
187  nullify(ybem%ALP(jp)%XTRAN_WIN)
188  nullify(ybem%ALP(jp)%XGR)
189  nullify(ybem%ALP(jp)%XFLOOR_HEIGHT)
190  nullify(ybem%ALP(jp)%XEFF_HEAT)
191  nullify(ybem%ALP(jp)%XINF)
192  nullify(ybem%ALP(jp)%XF_WASTE_CAN)
193  nullify(ybem%ALP(jp)%XAUX_MAX)
194  nullify(ybem%ALP(jp)%XQIN_FLAT)
195  nullify(ybem%ALP(jp)%XHR_TARGET)
196  nullify(ybem%ALP(jp)%XT_WIN2)
197  nullify(ybem%ALP(jp)%XQI_BLD)
198  nullify(ybem%ALP(jp)%XV_VENT)
199  nullify(ybem%ALP(jp)%XCAP_SYS_HEAT)
200  nullify(ybem%ALP(jp)%XCAP_SYS_RAT)
201  nullify(ybem%ALP(jp)%XT_ADP)
202  nullify(ybem%ALP(jp)%XM_SYS_RAT)
203  nullify(ybem%ALP(jp)%XCOP_RAT)
204  nullify(ybem%ALP(jp)%XT_WIN1)
205  nullify(ybem%ALP(jp)%XALB_WIN)
206  nullify(ybem%ALP(jp)%XABS_WIN)
207  nullify(ybem%ALP(jp)%XT_SIZE_MAX)
208  nullify(ybem%ALP(jp)%XT_SIZE_MIN)
209  nullify(ybem%ALP(jp)%XUGG_WIN)
210  nullify(ybem%ALP(jp)%LSHAD_DAY)
211  nullify(ybem%ALP(jp)%LNATVENT_NIGHT)
212  nullify(ybem%ALP(jp)%LSHADE)
213  nullify(ybem%ALP(jp)%XSHADE)
214  nullify(ybem%ALP(jp)%CNATVENT)
215  nullify(ybem%ALP(jp)%XNATVENT)
216  nullify(ybem%ALP(jp)%XN_FLOOR)
217  nullify(ybem%ALP(jp)%XGLAZ_O_BLD)
218  nullify(ybem%ALP(jp)%XMASS_O_BLD)
219  nullify(ybem%ALP(jp)%XFLOOR_HW_RATIO)
220  nullify(ybem%ALP(jp)%XF_FLOOR_MASS)
221  nullify(ybem%ALP(jp)%XF_FLOOR_WALL)
222  nullify(ybem%ALP(jp)%XF_FLOOR_WIN)
223  nullify(ybem%ALP(jp)%XF_FLOOR_ROOF)
224  nullify(ybem%ALP(jp)%XF_WALL_FLOOR)
225  nullify(ybem%ALP(jp)%XF_WALL_MASS)
226  nullify(ybem%ALP(jp)%XF_WALL_WIN)
227  nullify(ybem%ALP(jp)%XF_WIN_FLOOR)
228  nullify(ybem%ALP(jp)%XF_WIN_MASS)
229  nullify(ybem%ALP(jp)%XF_WIN_WALL)
230  nullify(ybem%ALP(jp)%XF_WIN_WIN)
231  nullify(ybem%ALP(jp)%XF_MASS_FLOOR)
232  nullify(ybem%ALP(jp)%XF_MASS_WALL)
233  nullify(ybem%ALP(jp)%XF_MASS_WIN)
234 ENDDO
235 IF (lhook) CALL dr_hook("MODD_BEM_N:BEM_INIT",1,zhook_handle)
236 END SUBROUTINE bem_init
237 !
238 !
239 END MODULE modd_bem_n
subroutine bem_init(YBEM, KPATCH)
Definition: modd_bemn.F90:164
subroutine bem_goto_patch(YBEM, KTO_PATCH)
Definition: modd_bemn.F90:149