30 CO2PointSource, EmissionsMethod, &
31 it, imin, DLS, 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 BaseT_Heating, BaseT_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) :: &
55 INTEGER,
DIMENSION(3),
INTENT(in) :: DayofWeek_id
57 REAL(KIND(1D0)),
DIMENSION(12),
INTENT(in) :: HDD_id
59 REAL(KIND(1D0)),
DIMENSION(2),
INTENT(in) :: &
71 REAL(KIND(1D0)),
DIMENSION(0:23, 2),
INTENT(in) :: AHProf_24hr
72 REAL(KIND(1D0)),
DIMENSION(0:23, 2),
INTENT(in) :: HumActivity_24hr
73 REAL(KIND(1D0)),
DIMENSION(0:23, 2),
INTENT(in) :: TraffProf_24hr
74 REAL(KIND(1D0)),
DIMENSION(0:23, 2),
INTENT(in) :: PopProf_24hr
76 REAL(KIND(1D0)),
INTENT(in) :: &
82 FrFossilFuel_NonHeat, &
91 REAL(KIND(1D0)),
INTENT(out) :: &
94 Fc_metab, Fc_traff, Fc_build, Fc_point
101 get_Prof_SpecTime_inst, &
102 get_Prof_SpecTime_mean, &
107 DP_x_RhoPop, DP_x_RhoPop_traff, &
108 QF_build, QF_metab, QF_traff, &
123 hdd_daily = hdd_id(7)
124 cdd_daily = hdd_id(8)
126 tair_avg_daily = hdd_id(10)
132 IF (popdensdaytime(1) >= 0 .AND. popdensnighttime >= 0) numcapita(1) = (popdensdaytime(1) + popdensnighttime)/2
133 IF (popdensdaytime(2) >= 0 .AND. popdensnighttime >= 0) numcapita(2) = (popdensdaytime(2) + popdensnighttime)/2
144 IF (dayofweek_id(1) == 1 .OR. dayofweek_id(1) == 7) iu = 2
154 popdornort = get_prof_spectime_inst(ih, imin, 0, popprof_24hr(:, iu))
155 actdornort = get_prof_spectime_inst(ih, imin, 0, humactivity_24hr(:, iu))
156 traffdornort = get_prof_spectime_mean(ih, imin, 0, traffprof_24hr(:, iu))
157 ahdornort = get_prof_spectime_mean(ih, imin, 0, ahprof_24hr(:, iu))
160 dp_x_rhopop = ahdornort*numcapita(iu)
162 qf_metab = (popdensnighttime*minqfmetab*((2 - actdornort) + (2 - popdornort))/2 + &
163 popdensdaytime(iu)*maxqfmetab*((actdornort - 1) + (popdornort - 1))/2)/10000
165 fc_metab = (popdensnighttime*minfcmetab*((2 - actdornort) + (2 - popdornort))/2 + &
166 popdensdaytime(iu)*maxfcmetab*((actdornort - 1) + (popdornort - 1))/2)/10000
173 IF (emissionsmethod == 1 .OR. emissionsmethod == 4 .OR. &
174 emissionsmethod == 11 .OR. emissionsmethod == 14 .OR. &
175 emissionsmethod == 21 .OR. emissionsmethod == 24 .OR. &
176 emissionsmethod == 31 .OR. emissionsmethod == 34 .OR. &
177 emissionsmethod == 41 .OR. emissionsmethod == 44)
THEN
182 IF (temp_c < baset_heating(iu))
THEN
184 qf_sahp_heating = (ah_slope_heating(iu)*(baset_heating(iu) - temp_c))*ahdornort
191 qf_sahp_base = ah_min(iu)*ahdornort
194 ELSEIF (emissionsmethod == 2 .OR. emissionsmethod == 5 .OR. &
195 emissionsmethod == 12 .OR. emissionsmethod == 15 .OR. &
196 emissionsmethod == 22 .OR. emissionsmethod == 25 .OR. &
197 emissionsmethod == 32 .OR. emissionsmethod == 35 .OR. &
198 emissionsmethod == 42 .OR. emissionsmethod == 45)
THEN
203 qf_sahp_base = (qf_a(iu))*dp_x_rhopop
204 qf_sahp_heating = (qf_c(iu)*hdd_daily)*dp_x_rhopop
205 qf_sahp_cooling = (qf_b(iu)*cdd_daily)*dp_x_rhopop
207 ELSEIF (emissionsmethod == 3 .OR. emissionsmethod == 6 .OR. &
208 emissionsmethod == 13 .OR. emissionsmethod == 16 .OR. &
209 emissionsmethod == 23 .OR. emissionsmethod == 26 .OR. &
210 emissionsmethod == 33 .OR. emissionsmethod == 36 .OR. &
211 emissionsmethod == 43 .OR. emissionsmethod == 46)
THEN
218 qf_sahp_base = ah_min(iu)*ahdornort
220 IF (tair_avg_daily < baset_heating(iu))
THEN
221 qf_sahp_heating = (ah_slope_heating(iu)*(baset_heating(iu) - tair_avg_daily))*ahdornort
224 ELSEIF (tair_avg_daily > baset_cooling(iu))
THEN
226 qf_sahp_cooling = (ah_slope_cooling(iu)*(tair_avg_daily - baset_cooling(iu)))*ahdornort
236 qf_sahp = qf_sahp_base + qf_sahp_heating + qf_sahp_cooling
238 IF (emissionsmethod >= 1 .AND. emissionsmethod <= 3 .OR. &
239 emissionsmethod >= 11 .AND. emissionsmethod <= 13 .OR. &
240 emissionsmethod >= 21 .AND. emissionsmethod <= 23 .OR. &
241 emissionsmethod >= 31 .AND. emissionsmethod <= 33 .OR. &
242 emissionsmethod >= 41 .AND. emissionsmethod <= 43)
THEN
246 IF ((qf_sahp_base - qf_metab) > 0)
THEN
247 qf_build = qf_sahp_base*qf0_beu(iu) + qf_sahp_heating + qf_sahp_cooling
250 CALL errorhint(69,
'QF metab exceeds base QF.', qf_metab, qf_sahp_base)
252 qf_build = qf_sahp_heating + qf_sahp_cooling + (qf_sahp_base - qf_metab)
258 fc_build = qf_sahp_heating*frfossilfuel_heat*ef_umolco2perj
261 IF ((qf_sahp_base - qf_metab) > 0)
THEN
262 fc_build = fc_build + qf_sahp_base*qf0_beu(iu)*frfossilfuel_nonheat*ef_umolco2perj
267 qf_traff = qf_sahp_base*(1.0 - qf0_beu(iu)) - qf_metab
270 fc_traff = qf_traff/enef_v_jkm*fcef_v_kgkm(iu)*1e3*1e6/44
273 IF (co2pointsource > 0)
THEN
274 fc_point = co2pointsource*1e3*1e6/(12*60*60*24*surfacearea)
280 fc_anthro = fc_metab + fc_traff + fc_build + fc_point
282 ELSEIF (emissionsmethod >= 4 .AND. emissionsmethod <= 6 .OR. &
283 emissionsmethod >= 14 .AND. emissionsmethod <= 16 .OR. &
284 emissionsmethod >= 24 .AND. emissionsmethod <= 26 .OR. &
285 emissionsmethod >= 34 .AND. emissionsmethod <= 36 .OR. &
286 emissionsmethod >= 44 .AND. emissionsmethod <= 46)
THEN
290 IF (trafficunits == 1)
THEN
292 qf_traff = trafficrate(iu)/(60*60*24)*enef_v_jkm*traffdornort
294 fc_traff = trafficrate(iu)/(60*60*24)*fcef_v_kgkm(iu)*1e3*1e6/44*traffdornort
296 ELSEIF (trafficunits == 2)
THEN
297 dp_x_rhopop_traff = traffdornort*numcapita(iu)/10000
299 qf_traff = trafficrate(iu)/(60*60*24)*enef_v_jkm*dp_x_rhopop_traff
301 fc_traff = trafficrate(iu)/(60*60*24)*fcef_v_kgkm(iu)*1e3*1e6/44*dp_x_rhopop_traff
304 CALL errorhint(75,
'Check TrafficUnits', trafficunits, -999d1)
310 qf_build = ((qf_sahp_base*qf0_beu(iu) + qf_sahp_heating + qf_sahp_cooling)/dp_x_rhopop)* &
311 (popdensnighttime*(2 - popdornort) + popdensdaytime(iu)*(popdornort - 1))
314 fc_build = qf_sahp_heating*frfossilfuel_heat*ef_umolco2perj
316 fc_build = fc_build + qf_sahp_base*qf0_beu(iu)*frfossilfuel_nonheat*ef_umolco2perj
319 IF (co2pointsource > 0)
THEN
320 fc_point = co2pointsource*1e3*1e6/(12*60*60*24*surfacearea)
326 qf_sahp_base = qf_sahp_base + qf_traff + qf_metab
329 qf_sahp = qf_metab + qf_traff + qf_build
332 fc_anthro = fc_metab + fc_traff + fc_build + fc_point
subroutine anthropogenicemissions(co2pointsource, emissionsmethod, it, imin, dls, 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, baset_heating, baset_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)