SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE DIAG_MISC_TEB_n(PTSTEP, PDQS_TOWN,PQF_BLD,PQF_TOWN, PFLX_BLD, & 00003 PRN_ROAD, PH_ROAD, PLE_ROAD, PGFLUX_ROAD, & 00004 PRN_WALL_A, PH_WALL_A, PGFLUX_WALL_A, & 00005 PRN_WALL_B, PH_WALL_B, PGFLUX_WALL_B, & 00006 PRN_ROOF, PH_ROOF, PLE_ROOF, PGFLUX_ROOF, & 00007 PRUNOFF, & 00008 PRN_STRLROOF, PH_STRLROOF, & 00009 PLE_STRLROOF, PGFLUX_STRLROOF, & 00010 PRN_GREENROOF, PH_GREENROOF, & 00011 PLE_GREENROOF, PGFLUX_GREENROOF, PG_GREENROOF_ROOF, & 00012 PRUNOFF_GREENROOF, PDRAIN_GREENROOF, & 00013 PRN_GARDEN,PH_GARDEN,PLE_GARDEN,PGFLUX_GARDEN, & 00014 PRN_BLT,PH_BLT,PLE_BLT,PGFLUX_BLT, & 00015 PABS_SW_ROOF,PABS_LW_ROOF, & 00016 PABS_SW_SNOW_ROOF,PABS_LW_SNOW_ROOF, & 00017 PABS_SW_ROAD,PABS_LW_ROAD, & 00018 PABS_SW_SNOW_ROAD,PABS_LW_SNOW_ROAD, & 00019 PABS_SW_WALL_A, PABS_LW_WALL_A, & 00020 PABS_SW_WALL_B, PABS_LW_WALL_B, & 00021 PABS_SW_GARDEN,PABS_LW_GARDEN, & 00022 PABS_SW_GREENROOF,PABS_LW_GREENROOF, & 00023 PH_BLD_COOL, PT_BLD_COOL, & 00024 PH_BLD_HEAT, PLE_BLD_COOL, PLE_BLD_HEAT, & 00025 PH_WASTE, PLE_WASTE, PHVAC_COOL, & 00026 PHVAC_HEAT, PCAP_SYS, PM_SYS, PCOP, & 00027 PQ_SYS, PT_SYS, PTR_SW_WIN, PFAN_POWER, & 00028 PABS_SW_WIN, PABS_LW_WIN ) 00029 ! ############################################################################### 00030 ! 00031 !!**** *DIAG_MISC-TEB_n * - additional diagnostics for TEB 00032 !! 00033 !! PURPOSE 00034 !! ------- 00035 ! 00036 !!** METHOD 00037 !! ------ 00038 !! 00039 !! REFERENCE 00040 !! --------- 00041 !! 00042 !! 00043 !! AUTHOR 00044 !! ------ 00045 !! P. Le Moigne 00046 !! 00047 !! MODIFICATIONS 00048 !! ------------- 00049 !! Original 10/2005 00050 !!------------------------------------------------------------------ 00051 ! 00052 ! 00053 ! 00054 USE MODD_DIAG_MISC_TEB_n, ONLY : XQF_BLD, XQF_TOWN, XDQS_TOWN, XFLX_BLD, & 00055 LSURF_MISC_BUDGET, & 00056 XRN_ROAD, XH_ROAD, XLE_ROAD, & 00057 XGFLUX_ROAD, & 00058 XRN_WALL_A, XH_WALL_A, XGFLUX_WALL_A, & 00059 XRN_WALL_B, XH_WALL_B, XGFLUX_WALL_B, & 00060 XRN_ROOF, XH_ROOF, XLE_ROOF, & 00061 XGFLUX_ROOF, & 00062 XRN_STRLROOF, XH_STRLROOF, & 00063 XLE_STRLROOF, XGFLUX_STRLROOF, & 00064 XRN_GREENROOF, XH_GREENROOF, & 00065 XLE_GREENROOF, XGFLUX_GREENROOF, & 00066 XG_GREENROOF_ROOF, & 00067 XRN_GARDEN,XH_GARDEN,XLE_GARDEN,XGFLUX_GARDEN,& 00068 XRN_BLT,XH_BLT,XLE_BLT,XGFLUX_BLT, & 00069 XRUNOFF_GREENROOF, XDRAIN_GREENROOF, & 00070 XABS_SW_ROOF,XABS_LW_ROOF, & 00071 XABS_SW_SNOW_ROOF,XABS_LW_SNOW_ROOF, & 00072 XABS_SW_ROAD,XABS_LW_ROAD, & 00073 XABS_SW_SNOW_ROAD,XABS_LW_SNOW_ROAD, & 00074 XABS_SW_WALL_A,XABS_LW_WALL_A, & 00075 XABS_SW_WALL_B,XABS_LW_WALL_B, & 00076 XABS_SW_GARDEN,XABS_LW_GARDEN, & 00077 XABS_SW_GREENROOF,XABS_LW_GREENROOF, & 00078 XH_BLD_COOL, XT_BLD_COOL, & 00079 XH_BLD_HEAT, XLE_BLD_COOL, XLE_BLD_HEAT, & 00080 XH_WASTE, XLE_WASTE, XHVAC_COOL, & 00081 XHVAC_HEAT, XCAP_SYS, XM_SYS, XCOP, & 00082 XQ_SYS, XT_SYS, XTR_SW_WIN, XFAN_POWER, & 00083 XABS_SW_WIN, XABS_LW_WIN 00084 ! 00085 USE MODD_TEB_n, ONLY : CBEM 00086 ! 00087 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00088 USE PARKIND1 ,ONLY : JPRB 00089 ! 00090 IMPLICIT NONE 00091 ! 00092 !* 0.1 declarations of arguments 00093 ! 00094 REAL, INTENT(IN) :: PTSTEP ! time step 00095 REAL, DIMENSION(:), INTENT(IN) :: PQF_BLD ! domestic heating 00096 REAL, DIMENSION(:), INTENT(IN) :: PFLX_BLD ! heat flux from bld 00097 REAL, DIMENSION(:), INTENT(IN) :: PQF_TOWN ! total anthropogenic heat 00098 REAL, DIMENSION(:), INTENT(IN) :: PDQS_TOWN ! storage inside town mat. 00099 REAL, DIMENSION(:), INTENT(IN) :: PRN_ROAD ! net radiation for roads 00100 REAL, DIMENSION(:), INTENT(IN) :: PH_ROAD ! sensible heat flux for roads 00101 REAL, DIMENSION(:), INTENT(IN) :: PLE_ROAD ! latent heat flux for roads 00102 REAL, DIMENSION(:), INTENT(IN) :: PGFLUX_ROAD ! storage flux for roads 00103 REAL, DIMENSION(:), INTENT(IN) :: PRN_WALL_A ! net radiation for wall 00104 REAL, DIMENSION(:), INTENT(IN) :: PH_WALL_A ! sensible heat flux for walls 00105 REAL, DIMENSION(:), INTENT(IN) :: PGFLUX_WALL_A ! storage flux for walls 00106 REAL, DIMENSION(:), INTENT(IN) :: PRN_WALL_B ! net radiation for wall 00107 REAL, DIMENSION(:), INTENT(IN) :: PH_WALL_B ! sensible heat flux for walls 00108 REAL, DIMENSION(:), INTENT(IN) :: PGFLUX_WALL_B ! storage flux for walls 00109 REAL, DIMENSION(:), INTENT(IN) :: PRN_ROOF ! net radiation for roofs 00110 REAL, DIMENSION(:), INTENT(IN) :: PH_ROOF ! sensible heat flux for roofs 00111 REAL, DIMENSION(:), INTENT(IN) :: PLE_ROOF ! latent heat flux for roofs 00112 REAL, DIMENSION(:), INTENT(IN) :: PGFLUX_ROOF ! storage flux for roofs 00113 REAL, DIMENSION(:), INTENT(IN) :: PRUNOFF ! runoff for town 00114 REAL, DIMENSION(:), INTENT(IN) :: PRN_STRLROOF ! net radiation for structural roofs 00115 REAL, DIMENSION(:), INTENT(IN) :: PH_STRLROOF ! sensible heat flux for structural roofs 00116 REAL, DIMENSION(:), INTENT(IN) :: PLE_STRLROOF ! latent heat flux for structural roofs 00117 REAL, DIMENSION(:), INTENT(IN) :: PGFLUX_STRLROOF ! storage flux for structural roofs 00118 REAL, DIMENSION(:), INTENT(IN) :: PRN_GREENROOF ! net radiation for green roofs 00119 REAL, DIMENSION(:), INTENT(IN) :: PH_GREENROOF ! sensible heat flux for green roofs 00120 REAL, DIMENSION(:), INTENT(IN) :: PLE_GREENROOF ! latent heat flux for green roofs 00121 REAL, DIMENSION(:), INTENT(IN) :: PGFLUX_GREENROOF ! storage flux for green roofs 00122 REAL, DIMENSION(:), INTENT(IN) :: PG_GREENROOF_ROOF ! heat flux between green/structural roofs 00123 REAL, DIMENSION(:), INTENT(IN) :: PRUNOFF_GREENROOF ! runoff for green roofs 00124 REAL, DIMENSION(:), INTENT(IN) :: PDRAIN_GREENROOF ! total vertical drainage for green roofs 00125 REAL, DIMENSION(:), INTENT(IN) :: PRN_GARDEN ! net radiation for GARDEN areas 00126 REAL, DIMENSION(:), INTENT(IN) :: PH_GARDEN ! sensible heat flux for GARDEN areas 00127 REAL, DIMENSION(:), INTENT(IN) :: PLE_GARDEN ! latent heat flux for GARDEN areas 00128 REAL, DIMENSION(:), INTENT(IN) :: PGFLUX_GARDEN ! storage flux for GARDEN areas 00129 REAL, DIMENSION(:), INTENT(IN) :: PRN_BLT ! net radiation for built surf 00130 REAL, DIMENSION(:), INTENT(IN) :: PH_BLT ! sensible heat flux for built surf 00131 REAL, DIMENSION(:), INTENT(IN) :: PLE_BLT ! latent heat flux for built surf 00132 REAL, DIMENSION(:), INTENT(IN) :: PGFLUX_BLT ! storage flux for built surf 00133 ! 00134 REAL, DIMENSION(:), INTENT(IN) :: PABS_SW_ROOF ! Sdown absorbed by roofs 00135 REAL, DIMENSION(:), INTENT(IN) :: PABS_SW_SNOW_ROOF ! Sdown absorbed by snow on roofs 00136 REAL, DIMENSION(:), INTENT(IN) :: PABS_LW_ROOF ! Ldown absorbed by roofs 00137 REAL, DIMENSION(:), INTENT(IN) :: PABS_LW_SNOW_ROOF ! Ldown absorbed by snow on roofs 00138 REAL, DIMENSION(:), INTENT(IN) :: PABS_SW_ROAD ! Sdown absorbed by roads 00139 REAL, DIMENSION(:), INTENT(IN) :: PABS_SW_SNOW_ROAD ! Sdown absorbed by snow on roads 00140 REAL, DIMENSION(:), INTENT(IN) :: PABS_LW_ROAD ! Ldown absorbed by roads 00141 REAL, DIMENSION(:), INTENT(IN) :: PABS_LW_SNOW_ROAD ! Ldown absorbed by snow on roads 00142 REAL, DIMENSION(:), INTENT(IN) :: PABS_SW_WALL_A ! Sdown absorbed by walls 00143 REAL, DIMENSION(:), INTENT(IN) :: PABS_LW_WALL_A ! Ldown absorbed by walls 00144 REAL, DIMENSION(:), INTENT(IN) :: PABS_SW_WALL_B ! Sdown absorbed by walls 00145 REAL, DIMENSION(:), INTENT(IN) :: PABS_LW_WALL_B ! Ldown absorbed by walls 00146 REAL, DIMENSION(:), INTENT(IN) :: PABS_SW_GARDEN ! Sdown absorbed by GARDEN areas 00147 REAL, DIMENSION(:), INTENT(IN) :: PABS_LW_GARDEN ! Ldown absorbed by GARDEN areas 00148 REAL, DIMENSION(:), INTENT(IN) :: PABS_SW_GREENROOF ! Sdown absorbed by green roofs 00149 REAL, DIMENSION(:), INTENT(IN) :: PABS_LW_GREENROOF ! Ldown absorbed by green roofs 00150 ! new arguments after BEM 00151 REAL, DIMENSION(:), INTENT(IN) :: PH_BLD_COOL ! Sensible cooling energy demand 00152 ! of the building [W m-2(bld)] 00153 REAL, DIMENSION(:), INTENT(IN) :: PT_BLD_COOL ! Total cooling energy demand 00154 ! of the building [W m-2(bld)] 00155 REAL, DIMENSION(:), INTENT(IN) :: PH_BLD_HEAT ! Heating energy demand 00156 ! of the building [W m-2(bld)] 00157 REAL, DIMENSION(:), INTENT(IN) :: PLE_BLD_COOL ! Latent cooling energy demand 00158 ! of the building [W m-2(bld)] 00159 REAL, DIMENSION(:), INTENT(IN) :: PLE_BLD_HEAT ! Latent heating energy demand 00160 ! of the building [W m-2(bld)] 00161 REAL, DIMENSION(:), INTENT(IN) :: PH_WASTE ! Sensible waste heat from HVAC system 00162 ! [W m-2(bld)] 00163 REAL, DIMENSION(:), INTENT(IN) :: PLE_WASTE ! Latent waste heat from HVAC system 00164 ! [W m-2(bld)] 00165 REAL, DIMENSION(:), INTENT(IN) :: PHVAC_COOL ! Energy consumption of the cooling system 00166 ! [W m-2(bld)] 00167 REAL, DIMENSION(:), INTENT(IN) :: PHVAC_HEAT ! Energy consumption of the heating system 00168 ! [W m-2(bld)] 00169 REAL, DIMENSION(:), INTENT(IN) :: PCAP_SYS ! Actual capacity of the cooling system 00170 ! [W m-2(bld)] 00171 REAL, DIMENSION(:), INTENT(IN) :: PM_SYS ! Actual HVAC mass flow rate 00172 ! [kg s-1 m-2(bld)] 00173 REAL, DIMENSION(:), INTENT(IN) :: PCOP ! COP of the cooling system 00174 REAL, DIMENSION(:), INTENT(IN) :: PQ_SYS ! Supply air specific humidity [kg kg-1] 00175 REAL, DIMENSION(:), INTENT(IN) :: PT_SYS ! Supply air temperature [K] 00176 REAL, DIMENSION(:), INTENT(IN) :: PTR_SW_WIN ! Solar radiation transmitted throught 00177 ! windows [W m-2(bld)] 00178 REAL, DIMENSION(:), INTENT(IN) :: PFAN_POWER ! HVAC fan power 00179 REAL, DIMENSION(:), INTENT(IN) :: PABS_SW_WIN ! window absorbed shortwave radiation [W m-2] 00180 REAL, DIMENSION(:), INTENT(IN) :: PABS_LW_WIN ! absorbed infrared rad. [W m-2] 00181 ! 00182 ! 00183 ! 00184 !* 0.2 declarations of local variables 00185 ! 00186 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00187 !------------------------------------------------------------------------------------- 00188 ! 00189 IF (LHOOK) CALL DR_HOOK('DIAG_MISC_TEB_N',0,ZHOOK_HANDLE) 00190 IF (LSURF_MISC_BUDGET) THEN 00191 XQF_BLD = PQF_BLD 00192 XFLX_BLD = PFLX_BLD 00193 XQF_TOWN = PQF_TOWN 00194 XDQS_TOWN = PDQS_TOWN 00195 XRN_ROAD = PRN_ROAD 00196 XH_ROAD = PH_ROAD 00197 XLE_ROAD = PLE_ROAD 00198 XGFLUX_ROAD = PGFLUX_ROAD 00199 XRN_WALL_A = PRN_WALL_A 00200 XH_WALL_A = PH_WALL_A 00201 XGFLUX_WALL_A = PGFLUX_WALL_A 00202 XRN_WALL_B = PRN_WALL_B 00203 XH_WALL_B = PH_WALL_B 00204 XGFLUX_WALL_B = PGFLUX_WALL_B 00205 XRN_ROOF = PRN_ROOF 00206 XH_ROOF = PH_ROOF 00207 XLE_ROOF = PLE_ROOF 00208 XGFLUX_ROOF = PGFLUX_ROOF 00209 XRN_STRLROOF = PRN_STRLROOF 00210 XH_STRLROOF = PH_STRLROOF 00211 XLE_STRLROOF = PLE_STRLROOF 00212 XGFLUX_STRLROOF = PGFLUX_STRLROOF 00213 XRN_GREENROOF = PRN_GREENROOF 00214 XH_GREENROOF = PH_GREENROOF 00215 XLE_GREENROOF = PLE_GREENROOF 00216 XGFLUX_GREENROOF = PGFLUX_GREENROOF 00217 XG_GREENROOF_ROOF = PG_GREENROOF_ROOF 00218 XRUNOFF_GREENROOF = PRUNOFF_GREENROOF 00219 XDRAIN_GREENROOF = PDRAIN_GREENROOF 00220 XRN_GARDEN = PRN_GARDEN 00221 XH_GARDEN = PH_GARDEN 00222 XLE_GARDEN = PLE_GARDEN 00223 XGFLUX_GARDEN = PGFLUX_GARDEN 00224 XRN_BLT = PRN_BLT 00225 XH_BLT = PH_BLT 00226 XLE_BLT = PLE_BLT 00227 XGFLUX_BLT = PGFLUX_BLT 00228 ! 00229 XABS_SW_ROOF = PABS_SW_ROOF 00230 XABS_LW_ROOF = PABS_LW_ROOF 00231 XABS_SW_SNOW_ROOF = PABS_SW_SNOW_ROOF 00232 XABS_LW_SNOW_ROOF = PABS_LW_SNOW_ROOF 00233 XABS_SW_ROAD = PABS_SW_ROAD 00234 XABS_LW_ROAD = PABS_LW_ROAD 00235 XABS_SW_SNOW_ROAD = PABS_SW_SNOW_ROAD 00236 XABS_LW_SNOW_ROAD = PABS_LW_SNOW_ROAD 00237 XABS_SW_WALL_A = PABS_SW_WALL_A 00238 XABS_LW_WALL_A = PABS_LW_WALL_A 00239 XABS_SW_WALL_B = PABS_SW_WALL_B 00240 XABS_LW_WALL_B = PABS_LW_WALL_B 00241 XABS_SW_GARDEN = PABS_SW_GARDEN 00242 XABS_LW_GARDEN = PABS_LW_GARDEN 00243 XABS_SW_GREENROOF = PABS_SW_GREENROOF 00244 XABS_LW_GREENROOF = PABS_LW_GREENROOF 00245 ! 00246 IF (CBEM=='BEM') THEN 00247 XH_BLD_COOL = PH_BLD_COOL 00248 XT_BLD_COOL = PT_BLD_COOL 00249 XH_BLD_HEAT = PH_BLD_HEAT 00250 XLE_BLD_COOL= PLE_BLD_COOL 00251 XLE_BLD_HEAT= PLE_BLD_HEAT 00252 XH_WASTE = PH_WASTE 00253 XLE_WASTE = PLE_WASTE 00254 XHVAC_COOL = PHVAC_COOL 00255 XHVAC_HEAT = PHVAC_HEAT 00256 XCAP_SYS = PCAP_SYS 00257 XM_SYS = PM_SYS 00258 XCOP = PCOP 00259 XQ_SYS = PQ_SYS 00260 XT_SYS = PT_SYS 00261 XTR_SW_WIN = PTR_SW_WIN 00262 XFAN_POWER = PFAN_POWER 00263 ! 00264 XABS_SW_WIN = PABS_SW_WIN 00265 XABS_LW_WIN = PABS_LW_WIN 00266 ENDIF 00267 ! 00268 END IF 00269 ! 00270 IF (LHOOK) CALL DR_HOOK('DIAG_MISC_TEB_N',1,ZHOOK_HANDLE) 00271 ! 00272 !------------------------------------------------------------------------------------- 00273 ! 00274 END SUBROUTINE DIAG_MISC_TEB_n