30 CO2PointSource, EmissionsMethod, &
31 id, it, imin, DLS, nsh, DayofWeek_id, &
32 EF_umolCO2perJ, FcEF_v_kgkm, EnEF_v_Jkm, TrafficUnits, &
33 FrFossilFuel_Heat, FrFossilFuel_NonHeat, &
34 MinFCMetab, MaxFCMetab, MinQFMetab, MaxQFMetab, &
35 PopDensDaytime, PopDensNighttime, &
36 Temp_C, HDD_id, Qf_A, Qf_B, Qf_C, &
37 AH_MIN, AH_SLOPE_Heating, AH_SLOPE_Cooling, &
38 T_CRITIC_Heating, T_CRITIC_Cooling, &
41 Fc_anthro, Fc_metab, Fc_traff, Fc_build, Fc_point, &
42 AHProf_24hr, HumActivity_24hr, TraffProf_24hr, PopProf_24hr, SurfaceArea)
49 INTEGER,
INTENT(in):: &
57 INTEGER,
DIMENSION(3),
INTENT(in)::DayofWeek_id
59 REAL(KIND(1d0)),
DIMENSION(12),
INTENT(in):: HDD_id
61 REAL(KIND(1d0)),
DIMENSION(2),
INTENT(in):: &
73 REAL(KIND(1d0)),
DIMENSION(0:23, 2),
INTENT(in):: AHProf_24hr
74 REAL(KIND(1d0)),
DIMENSION(0:23, 2),
INTENT(in):: HumActivity_24hr
75 REAL(KIND(1d0)),
DIMENSION(0:23, 2),
INTENT(in):: TraffProf_24hr
76 REAL(KIND(1d0)),
DIMENSION(0:23, 2),
INTENT(in):: PopProf_24hr
78 REAL(KIND(1D0)),
INTENT(in):: &
84 FrFossilFuel_NonHeat, &
93 REAL(KIND(1D0)),
INTENT(out):: &
96 Fc_metab, Fc_traff, Fc_build, Fc_point
103 get_Prof_SpecTime_inst, &
104 get_Prof_SpecTime_mean, &
109 DP_x_RhoPop, DP_x_RhoPop_traff, &
110 QF_build, QF_metab, QF_traff, &
125 hdd_daily = hdd_id(7)
126 cdd_daily = hdd_id(8)
128 tair_avg_daily = hdd_id(10)
134 IF (popdensdaytime(1) >= 0 .AND. popdensnighttime >= 0) numcapita(1) = (popdensdaytime(1) + popdensnighttime)/2
135 IF (popdensdaytime(2) >= 0 .AND. popdensnighttime >= 0) numcapita(2) = (popdensdaytime(2) + popdensnighttime)/2
146 IF (dayofweek_id(1) == 1 .OR. dayofweek_id(1) == 7) iu = 2
156 popdornort = get_prof_spectime_inst(ih, imin, 0, popprof_24hr(:, iu))
157 actdornort = get_prof_spectime_inst(ih, imin, 0, humactivity_24hr(:, iu))
158 traffdornort = get_prof_spectime_mean(ih, imin, 0, traffprof_24hr(:, iu))
159 ahdornort = get_prof_spectime_mean(ih, imin, 0, ahprof_24hr(:, iu))
162 dp_x_rhopop = ahdornort*numcapita(iu)
164 qf_metab = (popdensnighttime*minqfmetab*((2 - actdornort) + (2 - popdornort))/2 + &
165 popdensdaytime(iu)*maxqfmetab*((actdornort - 1) + (popdornort - 1))/2)/10000
167 fc_metab = (popdensnighttime*minfcmetab*((2 - actdornort) + (2 - popdornort))/2 + &
168 popdensdaytime(iu)*maxfcmetab*((actdornort - 1) + (popdornort - 1))/2)/10000
175 IF (emissionsmethod == 1 .OR. emissionsmethod == 4 .OR. emissionsmethod == 11 .OR. emissionsmethod == 14 .OR. &
176 emissionsmethod == 21 .OR. emissionsmethod == 24 .OR. emissionsmethod == 31 .OR. emissionsmethod == 34 .OR. &
177 emissionsmethod == 41 .OR. emissionsmethod == 44)
THEN 182 IF (temp_c < t_critic_heating(iu))
THEN 183 qf_sahp = (ah_min(iu) + ah_slope_heating(iu)*(t_critic_heating(iu) - temp_c))*ahdornort
185 qf_sahp = ah_min(iu)*ahdornort
190 qf_sahp_base = ah_min(iu)*ahdornort
191 qf_sahp_heat = qf_sahp - qf_sahp_base
194 ELSEIF (emissionsmethod == 2 .OR. emissionsmethod == 5 .OR. emissionsmethod == 12 .OR. emissionsmethod == 15 .OR. &
195 emissionsmethod == 22 .OR. emissionsmethod == 25 .OR. emissionsmethod == 32 .OR. emissionsmethod == 35 .OR. &
196 emissionsmethod == 42 .OR. emissionsmethod == 45)
THEN 200 qf_sahp = (qf_a(iu) + qf_b(iu)*cdd_daily + qf_c(iu)*hdd_daily)*dp_x_rhopop
201 qf_sahp_base = (qf_a(iu))*dp_x_rhopop
202 qf_sahp_heat = (qf_c(iu)*hdd_daily)*dp_x_rhopop
203 qf_sahp_ac = (qf_b(iu)*cdd_daily)*dp_x_rhopop
205 ELSEIF (emissionsmethod == 3 .OR. emissionsmethod == 6 .OR. emissionsmethod == 13 .OR. emissionsmethod == 16 .OR. &
206 emissionsmethod == 23 .OR. emissionsmethod == 26 .OR. emissionsmethod == 33 .OR. emissionsmethod == 36 .OR. &
207 emissionsmethod == 43 .OR. emissionsmethod == 46)
THEN 215 qf_sahp_base = ah_min(iu)*ahdornort
217 IF (tair_avg_daily < t_critic_heating(iu))
THEN 218 qf_sahp = (ah_min(iu) + ah_slope_heating(iu)*(t_critic_heating(iu) - tair_avg_daily))*ahdornort
219 qf_sahp_heat = qf_sahp - qf_sahp_base
222 ELSEIF (tair_avg_daily > t_critic_cooling(iu))
THEN 223 qf_sahp = (ah_min(iu) + ah_slope_cooling(iu)*(tair_avg_daily - t_critic_cooling(iu)))*ahdornort
225 qf_sahp_ac = qf_sahp - qf_sahp_base
228 qf_sahp = ah_min(iu)*ahdornort
233 IF (emissionsmethod >= 1 .AND. emissionsmethod <= 3 .OR. emissionsmethod >= 11 .AND. emissionsmethod <= 13 .OR. &
234 emissionsmethod >= 21 .AND. emissionsmethod <= 23 .OR. emissionsmethod >= 31 .AND. emissionsmethod <= 33 .OR. &
235 emissionsmethod >= 41 .AND. emissionsmethod <= 43)
THEN 238 IF ((qf_sahp_base - qf_metab) > 0)
THEN 239 qf_build = qf_sahp_base*qf0_beu(iu) + qf_sahp_heat + qf_sahp_ac
243 CALL errorhint(69,
'QF metab exceeds base QF.', qf_metab, qf_sahp_base)
245 qf_build = qf_sahp_heat + qf_sahp_ac + (qf_sahp_base - qf_metab)
251 fc_build = qf_sahp_heat*frfossilfuel_heat*ef_umolco2perj
254 IF ((qf_sahp_base - qf_metab) > 0)
THEN 255 fc_build = fc_build + qf_sahp_base*qf0_beu(iu)*frfossilfuel_nonheat*ef_umolco2perj
260 qf_traff = qf_sahp_base*(1.0 - qf0_beu(iu)) - qf_metab
263 fc_traff = qf_traff/enef_v_jkm*fcef_v_kgkm(iu)*1e3*1e6/44
266 IF (co2pointsource > 0)
THEN 267 fc_point = co2pointsource*1e3*1e6/(12*60*60*24*surfacearea)
273 fc_anthro = fc_metab + fc_traff + fc_build + fc_point
275 ELSEIF (emissionsmethod >= 4 .AND. emissionsmethod <= 6 .OR. emissionsmethod >= 14 .AND. emissionsmethod <= 16 .OR. &
276 emissionsmethod >= 24 .AND. emissionsmethod <= 26 .OR. emissionsmethod >= 34 .AND. emissionsmethod <= 36 .OR. &
277 emissionsmethod >= 44 .AND. emissionsmethod <= 46)
THEN 281 IF (trafficunits == 1)
THEN 283 qf_traff = trafficrate(iu)/(60*60*24)*enef_v_jkm*traffdornort
285 fc_traff = trafficrate(iu)/(60*60*24)*fcef_v_kgkm(iu)*1e3*1e6/44*traffdornort
287 ELSEIF (trafficunits == 2)
THEN 288 dp_x_rhopop_traff = traffdornort*numcapita(iu)/10000
290 qf_traff = trafficrate(iu)/(60*60*24)*enef_v_jkm*dp_x_rhopop_traff
292 fc_traff = trafficrate(iu)/(60*60*24)*fcef_v_kgkm(iu)*1e3*1e6/44*dp_x_rhopop_traff
295 CALL errorhint(75,
'Check TrafficUnits', trafficunits)
301 qf_build = ((qf_sahp_base*qf0_beu(iu) + qf_sahp_heat + qf_sahp_ac)/dp_x_rhopop)* &
302 (popdensnighttime*(2 - popdornort) + popdensdaytime(iu)*(popdornort - 1))
305 fc_build = qf_sahp_heat*frfossilfuel_heat*ef_umolco2perj
307 fc_build = fc_build + qf_sahp_base*qf0_beu(iu)*frfossilfuel_nonheat*ef_umolco2perj
310 IF (co2pointsource > 0)
THEN 311 fc_point = co2pointsource*1e3*1e6/(12*60*60*24*surfacearea)
317 qf_sahp_base = qf_sahp_base + qf_traff + qf_metab
320 qf_sahp = qf_metab + qf_traff + qf_build
323 fc_anthro = fc_metab + fc_traff + fc_build + fc_point
subroutine errorhint(errh, ProblemFile, VALUE, value2, valueI)
subroutine anthropogenicemissions(CO2PointSource, EmissionsMethod, id, it, imin, DLS, nsh, DayofWeek_id, EF_umolCO2perJ, FcEF_v_kgkm, EnEF_v_Jkm, TrafficUnits, FrFossilFuel_Heat, FrFossilFuel_NonHeat, MinFCMetab, MaxFCMetab, MinQFMetab, MaxQFMetab, PopDensDaytime, PopDensNighttime, Temp_C, HDD_id, Qf_A, Qf_B, Qf_C, AH_MIN, AH_SLOPE_Heating, AH_SLOPE_Cooling, T_CRITIC_Heating, T_CRITIC_Cooling, TrafficRate, QF0_BEU, QF_SAHP, Fc_anthro, Fc_metab, Fc_traff, Fc_build, Fc_point, AHProf_24hr, HumActivity_24hr, TraffProf_24hr, PopProf_24hr, SurfaceArea)