Doesn't exist but name is used Doesn't exist but name is used Doesn't exist but name is used. Will be calculated
subroutine uEMEP_set_constants use uEMEP_definitions implicit none integer i,j integer count character(256) deposition_str !Initialise some array flags replace_EMEP_local_with_subgrid_local=.false. calculate_source=.false. calculate_EMEP_source=.false. !Initialise the number of variables read in EMEP num_lc_var_nc=num_lc_var_nc_start frac_nc_index=num_var_nc_start+1 local_nc_index=num_var_nc_start+2 num_var_nc=num_var_nc_start+2 frac_nc_loop_index=frac_nc_index local_nc_loop_index=local_nc_index lc_frac_nc_loop_index=lc_frac_nc_index lc_local_nc_loop_index=lc_local_nc_index min_frac_nc_loop_index=minval(frac_nc_loop_index) max_frac_nc_loop_index=maxval(frac_nc_loop_index) min_lc_frac_nc_loop_index=minval(lc_frac_nc_loop_index) max_lc_frac_nc_loop_index=maxval(lc_frac_nc_loop_index) !convert_local_to_fraction_loop_index(lc_local_nc_loop_index)=lc_frac_nc_loop_index dim_name_nc(x_dim_nc_index)='lon' dim_name_nc(y_dim_nc_index)='lat' dim_name_nc(z_dim_nc_index)='lev' dim_name_nc(time_dim_nc_index)='time' dim_name_nc(xdist_dim_nc_index)='x_dist' dim_name_nc(ydist_dim_nc_index)='y_dist' !Sectors. Default are SNAP sectors before reading config files uEMEP_to_EMEP_sector=0 uEMEP_to_EMEP_sector(traffic_index)=7 uEMEP_to_EMEP_sector(shipping_index)=8 uEMEP_to_EMEP_sector(agriculture_index)=10 uEMEP_to_EMEP_sector(heating_index)=2 uEMEP_to_EMEP_sector(industry_index)=3 !Used to be 4??? Changed when including the rest !Set replace value to -1 as flag uEMEP_to_EMEP_replace_sector=-1 uEMEP_to_EMEP_sector(publicpower_index)=1 uEMEP_to_EMEP_sector(fugitive_index)=4 uEMEP_to_EMEP_sector(solvents_index)=6 uEMEP_to_EMEP_sector(aviation_index)=8 uEMEP_to_EMEP_sector(offroad_index)=8 uEMEP_to_EMEP_sector(waste_index)=9 uEMEP_to_EMEP_sector(livestock_index)=10 uEMEP_to_EMEP_sector(other_index)=5 uEMEP_to_EMEP_sector_str(traffic_index)='07' uEMEP_to_EMEP_sector_str(shipping_index)='08' uEMEP_to_EMEP_sector_str(agriculture_index)='10' uEMEP_to_EMEP_sector_str(heating_index)='02' uEMEP_to_EMEP_sector_str(industry_index)='03' uEMEP_to_EMEP_sector_str(publicpower_nc_index)='01' uEMEP_to_EMEP_sector_str(fugitive_nc_index)='04' uEMEP_to_EMEP_sector_str(solvents_nc_index)='06' uEMEP_to_EMEP_sector_str(aviation_nc_index)='08' uEMEP_to_EMEP_sector_str(offroad_nc_index)='08' uEMEP_to_EMEP_sector_str(waste_nc_index)='09' uEMEP_to_EMEP_sector_str(livestock_nc_index)='10' uEMEP_to_EMEP_sector_str(other_nc_index)='05' !Concentrations var_name_nc='' var_name_nc(conc_nc_index,o3_nc_index,allsource_nc_index)='o3' var_name_nc(conc_nc_index,no2_nc_index,allsource_nc_index)='no2' var_name_nc(conc_nc_index,nox_nc_index,allsource_nc_index)='nox' var_name_nc(conc_nc_index,nh3_nc_index,allsource_nc_index)='nh3' var_name_nc(conc_nc_index,nh4_nc_index,allsource_nc_index)='nh4' var_name_nc(conc_nc_index,pm25_nc_index,allsource_nc_index)='pm25' var_name_nc(conc_nc_index,pm10_nc_index,allsource_nc_index)='pm10' var_name_nc(conc_nc_index,pmco_nc_index,allsource_nc_index)='pmco' var_name_nc(conc_nc_index,pmex_nc_index,allsource_nc_index)='pmex' var_name_nc(conc_nc_index,so2_nc_index,allsource_nc_index)='so2' var_name_nc(conc_nc_index,pm_nc_index,allsource_nc_index)='pm' var_name_nc(conc_nc_index,all_nc_index,allsource_nc_index)='all' var_name_nc(conc_nc_index,all_sand_nc_index,allsource_nc_index)='all_sand' var_name_nc(conc_nc_index,all_sand_salt_nc_index,allsource_nc_index)='all_sand_salt' var_name_nc(conc_nc_index,all_salt_nc_index,allsource_nc_index)='all_salt' var_name_nc(conc_nc_index,all_totals_nc_index,allsource_nc_index)='all_totals' var_name_nc(conc_nc_index,aaqd_totals_nc_index,allsource_nc_index)='aaqd_totals' var_name_nc(conc_nc_index,gp_totals_nc_index,allsource_nc_index)='gp_totals' var_name_nc(conc_nc_index,op_totals_nc_index,allsource_nc_index)='op_totals' var_name_nc(conc_nc_index,pm25_sand_nc_index,allsource_nc_index)='pm25_sand' var_name_nc(conc_nc_index,pm10_sand_nc_index,allsource_nc_index)='pm10_sand' var_name_nc(conc_nc_index,pm25_salt_nc_index,allsource_nc_index)='pm25_salt' var_name_nc(conc_nc_index,pm10_salt_nc_index,allsource_nc_index)='pm10_salt' var_name_nc(conc_nc_index,bap_nc_index,allsource_nc_index)='bap' var_name_nc(conc_nc_index,co_nc_index,allsource_nc_index)='co' var_name_nc(conc_nc_index,c6h6_nc_index,allsource_nc_index)='benzene' var_name_nc(conc_nc_index,somo35_nc_index,allsource_nc_index)='somo35' var_name_nc(conc_nc_index,comax_nc_index,allsource_nc_index)='maxco' var_name_nc(conc_nc_index,o3max_nc_index,allsource_nc_index)='maxo3' var_name_nc(conc_nc_index,o3_26th_nc_index,allsource_nc_index)='26th_o3' !Special extrasource file. Will be used if called with. use_alternative_ppm_variable_for_lf var_name_nc(conc_nc_index,pm25_nc_index,extrasource_nc_index)='D3_ug_PPM25' var_name_nc(conc_nc_index,pmco_nc_index,extrasource_nc_index)='D3_ug_PPM_C' !Local fractions var_name_nc(frac_nc_index,nox_nc_index,traffic_nc_index)='nox_sec07_local_fraction' var_name_nc(frac_nc_index,pmco_nc_index,traffic_nc_index)='pmco_sec07_local_fraction' var_name_nc(frac_nc_index,pm25_nc_index,traffic_nc_index)='pm25_sec07_local_fraction' var_name_nc(frac_nc_index,nox_nc_index,shipping_nc_index)='nox_sec08_local_fraction' var_name_nc(frac_nc_index,pm25_nc_index,shipping_nc_index)='pm25_sec08_local_fraction' var_name_nc(frac_nc_index,pmco_nc_index,shipping_nc_index)='pmco_sec08_local_fraction' var_name_nc(frac_nc_index,nh3_nc_index,agriculture_nc_index)='nh3_sec10_local_fraction' var_name_nc(frac_nc_index,nox_nc_index,heating_nc_index)='nox_sec02_local_fraction' var_name_nc(frac_nc_index,pm25_nc_index,heating_nc_index)='pm25_sec02_local_fraction' var_name_nc(frac_nc_index,pmco_nc_index,heating_nc_index)='pmco_sec02_local_fraction' !SNAP 1 is energy, SNAP 3 is combustion in manufacturing and SNAP 4 is process, all should be used but in Norway it is mostly process??? var_name_nc(frac_nc_index,nox_nc_index,industry_nc_index)='nox_sec04_local_fraction' var_name_nc(frac_nc_index,pm25_nc_index,industry_nc_index)='pm25_sec04_local_fraction' var_name_nc(frac_nc_index,pmco_nc_index,industry_nc_index)='pmco_sec04_local_fraction' !Total emissions. These arer reset later var_name_nc(emis_nc_index,nh3_nc_index,allsource_nc_index)='Emis_mgm2_nh3' var_name_nc(emis_nc_index,nox_nc_index,allsource_nc_index)='Emis_mgm2_nox' var_name_nc(emis_nc_index,pmco_nc_index,allsource_nc_index)='Emis_mgm2_pmco' var_name_nc(emis_nc_index,pm25_nc_index,allsource_nc_index)='Emis_mgm2_pm25' !Sector emissions var_name_nc(emis_nc_index,nh3_nc_index,agriculture_nc_index)='Emis_mgm2_nh3' var_name_nc(emis_nc_index,nox_nc_index,traffic_nc_index)='Emis_mgm2_sec7nox' var_name_nc(emis_nc_index,pm25_nc_index,traffic_nc_index)='Emis_mgm2_sec7pm25' var_name_nc(emis_nc_index,pmco_nc_index,traffic_nc_index)='Emis_mgm2_sec7pmco' var_name_nc(emis_nc_index,nox_nc_index,shipping_nc_index)='Emis_mgm2_sec8nox' var_name_nc(emis_nc_index,pm25_nc_index,shipping_nc_index)='Emis_mgm2_sec8pm25' var_name_nc(emis_nc_index,pmco_nc_index,shipping_nc_index)='Emis_mgm2_sec8pmco' var_name_nc(emis_nc_index,nox_nc_index,heating_nc_index)='Emis_mgm2_sec2nox' var_name_nc(emis_nc_index,pm25_nc_index,heating_nc_index)='Emis_mgm2_sec2pm25' var_name_nc(emis_nc_index,pmco_nc_index,heating_nc_index)='Emis_mgm2_sec2pmco' var_name_nc(emis_nc_index,nox_nc_index,industry_nc_index)='Emis_mgm2_sec4nox' var_name_nc(emis_nc_index,pm25_nc_index,industry_nc_index)='Emis_mgm2_sec4pm25' var_name_nc(emis_nc_index,pmco_nc_index,industry_nc_index)='Emis_mgm2_sec4pmco' !Meteorology var_name_nc(ugrid_nc_index,all_nc_index,allsource_nc_index)='u_wind' var_name_nc(vgrid_nc_index,all_nc_index,allsource_nc_index)='v_wind' var_name_nc(u10_nc_index,all_nc_index,allsource_nc_index)='met2d_u10' var_name_nc(v10_nc_index,all_nc_index,allsource_nc_index)='met2d_v10' var_name_nc(FFgrid_nc_index,all_nc_index,allsource_nc_index)='wind_speed' var_name_nc(FF10_nc_index,all_nc_index,allsource_nc_index)='ws10m' var_name_nc(inv_FFgrid_nc_index,all_nc_index,allsource_nc_index)='inv_wind_speed' var_name_nc(inv_FF10_nc_index,all_nc_index,allsource_nc_index)='inv_ws10m' var_name_nc(hmix_nc_index,all_nc_index,allsource_nc_index)='HMIX' var_name_nc(kz_nc_index,all_nc_index,allsource_nc_index)='Kz' var_name_nc(ustar_nc_index,all_nc_index,allsource_nc_index)='met2d_ustar_nwp' var_name_nc(logz0_nc_index,all_nc_index,allsource_nc_index)='av_logz0' var_name_nc(invL_nc_index,all_nc_index,allsource_nc_index)='inv_L' var_name_nc(J_nc_index,all_nc_index,allsource_nc_index)='J(NO2)' var_name_nc(ZTOP_nc_index,all_nc_index,allsource_nc_index)='Z_TOP' var_name_nc(t2m_nc_index,all_nc_index,allsource_nc_index)='met2d_t2m' var_name_nc(precip_nc_index,all_nc_index,allsource_nc_index)='WDEP_PREC'!'precipitations' var_name_nc(phi_nc_index,all_nc_index,allsource_nc_index)='phi_nwp' surface_level_nc=7 !Will be reset as length of 'lev' dimension !Alternative meteorology. dim_name_meteo_nc(x_dim_nc_index)='x' dim_name_meteo_nc(y_dim_nc_index)='y' dim_name_meteo_nc(z_dim_nc_index)='height3' dim_name_meteo_nc(time_dim_nc_index)='time' !Landuse dim_name_landuse_nc(x_dim_nc_index)='lon' dim_name_landuse_nc(y_dim_nc_index)='lat' var_name_landuse_nc='Band1' var_name_meteo_nc='' !Depends which file you read unfortunately. My files lat, MEPS latitude WHY? !Put these in the config file !var_name_meteo_nc(lon_nc_index)='lon' !var_name_meteo_nc(lat_nc_index)='lat' var_name_meteo_nc(lon_nc_index)='longitude' var_name_meteo_nc(lat_nc_index)='latitude' var_name_meteo_nc(ugrid_nc_index)='u_wind' !!Doesn't exist but name is used var_name_meteo_nc(vgrid_nc_index)='v_wind' !!Doesn't exist but name is used var_name_meteo_nc(FFgrid_nc_index)='FF_wind' !Doesn't exist but name is used var_name_meteo_nc(FF10_nc_index)='wind_speed' var_name_meteo_nc(inv_FFgrid_nc_index)='' var_name_meteo_nc(inv_FF10_nc_index)='' var_name_meteo_nc(hmix_nc_index)='atmosphere_boundary_layer_thickness' var_name_meteo_nc(kz_nc_index)='' var_name_meteo_nc(ustar_nc_index)='ustar' !Doesn't exist but name is used var_name_meteo_nc(logz0_nc_index)='Z0' !Needs to be converted to log(Z0) var_name_meteo_nc(invL_nc_index)='invL' !!Doesn't exist but name is used. Will be calculated var_name_meteo_nc(J_nc_index)='' var_name_meteo_nc(ZTOP_nc_index)='' var_name_meteo_nc(t2m_nc_index)='air_temperature_2m' var_name_meteo_nc(precip_nc_index)='precipitation_amount_acc' var_name_meteo_nc(phi_nc_index)='phi_nwp' !Additional parameter (u10_nc_subgrid_index=22,v10_nc_subgrid_index=23,uw_nc_subgrid_index=24,vw_nc_subgrid_index=25,Hflux_nc_subgrid_index=26) var_name_meteo_nc(u10_nc_index)='x_wind_10m' !10 m wind not grid. Replaces ugrid. Used for direction var_name_meteo_nc(v10_nc_index)='y_wind_10m' !10 m wind not grid. Replaces vgrid. Used for direction var_name_meteo_nc(uw_nc_index)='downward_eastward_momentum_flux_in_air' !Will be used to determine ustar var_name_meteo_nc(vw_nc_index)='downward_northward_momentum_flux_in_air' !Will be used to determine ustar var_name_meteo_nc(Hflux_nc_index)='integral_of_surface_downward_sensible_heat_flux_wrt_time' !var_name_meteo_nc(rh2m_nc_index)='relative_humidity_2m' !var_name_meteo_nc(t0m_nc_index)='air_temperature_0m' !var_name_meteo_nc(t12m_nc_index)='air_temperature_ml' !This is at level 0 !var_name_meteo_nc(t100m_nc_index)='air_temperature_ml' !This is at model level 4 (0-4) !var_name_meteo_nc(SWflux_nc_index)='integral_of_surface_downwelling_shortwave_flux_in_air_wrt_time' !var_name_meteo_nc(LWflux_nc_index)='integral_of_surface_downwelling_longwave_flux_in_air_wrt_time' !var_name_meteo_nc(cloudcover_nc_index)='cloud_area_fraction' !var_name_meteo_nc(rain_nc_index)='precipitation_amount_acc' !var_name_meteo_nc(snow_nc_index)='snowfall_amount_acc' !var_name_meteo_nc(pressure_nc_index)='surface_air_pressure' !dim_name_population_nc(x_dim_nc_index)='x' !dim_name_population_nc(y_dim_nc_index)='y' dim_name_population_nc(x_dim_nc_index)='lon' dim_name_population_nc(y_dim_nc_index)='lat' !var_name_population_nc(lon_nc_index)='lon' !var_name_population_nc(lat_nc_index)='lat' var_name_population_nc(population_nc_index)='Band1' var_name_population_nc(dwelling_nc_index)='Band1' dim_name_shipping_nc(x_dim_nc_index)='lon' dim_name_shipping_nc(y_dim_nc_index)='lat' var_name_shipping_nc(population_nc_index)='nox' !Additional compounds for chemistry and totals comp_name_nc='' comp_name_nc(o3_nc_index)='D3_ug_O3' comp_name_nc(no2_nc_index)='D3_ug_NO2' comp_name_nc(nox_nc_index)='D3_ugN_NOX' comp_name_nc(nh3_nc_index)='D3_ug_NH3' !comp_name_nc(nh3_nc_index)='nh3' comp_name_nc(nh4_nc_index)='D3_ug_NH4_F' !comp_name_nc(pm25_nc_index)='pm25' !comp_name_nc(pmco_nc_index)='D3_ug_PMCO' comp_name_nc(pm10_nc_index)='D3_ug_PM10' comp_name_nc(pm25_nc_index)='D3_ug_PM25' comp_name_nc(pmex_nc_index)='Exhaust' !comp_name_nc(pm25_nc_index)='SURF_ug_PM25_rh50' comp_name_nc(co_nc_index)='D3_ug_CO' comp_name_nc(bap_nc_index)='D3_ug_BAP' comp_name_nc(c6h6_nc_index)='D3_ug_BENZENE' comp_name_nc(somo35_nc_index)='SOMO35' comp_name_nc(comax_nc_index)='MaxD8M_CO' comp_name_nc(o3max_nc_index)='MaxD8M_O3' comp_name_nc(o3_26th_nc_index)='MaxD8M_O3_26th' comp_name_nc(so2_nc_index)='D3_ug_SO2' comp_name_nc(pm25_sand_nc_index)='PM25_sand' comp_name_nc(pm10_sand_nc_index)='PM10_sand' comp_name_nc(pm25_salt_nc_index)='PM25_salt' comp_name_nc(pm10_salt_nc_index)='PM10_salt' !Additional speciation of PM from EMEP species_name_nc='' species_name_nc(pm10_sp_index,sp_soa_index)='pm10_EMEP_soa' species_name_nc(pm25_sp_index,sp_soa_index)='pm25_EMEP_soa' species_name_nc(pm10_sp_index,sp_asoa_index)='pm10_EMEP_asoa' species_name_nc(pm25_sp_index,sp_asoa_index)='pm25_EMEP_asoa' species_name_nc(pm10_sp_index,sp_bsoa_index)='pm10_EMEP_bsoa' species_name_nc(pm25_sp_index,sp_bsoa_index)='pm25_EMEP_bsoa' !species_name_nc(pm25_sp_index,sp_asoa_in_index)='SURF_ug_ASOA' !species_name_nc(pm25_sp_index,sp_bsoa_in_index)='SURF_ug_BSOA' species_name_nc(pm25_sp_index,sp_asoa_in_index)='SURF_ug_PM_ASOA' species_name_nc(pm25_sp_index,sp_bsoa_in_index)='SURF_ug_PM_BSOA' species_name_nc(pm10_sp_index,sp_sia_index)='pm10_EMEP_sia' species_name_nc(pm25_sp_index,sp_sia_index)='pm25_EMEP_sia' species_name_nc(pm10_sp_index,sp_sia_in_index)='SURF_ug_SIA' species_name_nc(pm25_sp_index,sp_no3_index)='SURF_ug_NO3_F' species_name_nc(pm25_sp_index,sp_so4_index)='SURF_ug_SO4' species_name_nc(pm25_sp_index,sp_nh4_index)='SURF_ug_NH4_F' species_name_nc(pmco_sp_index,sp_no3_index)='SURF_ug_NO3_C' species_name_nc(pm10_sp_index,sp_dust_index)='pm10_EMEP_dust' species_name_nc(pm25_sp_index,sp_dust_index)='pm25_EMEP_dust' species_name_nc(pmco_sp_index,sp_dust_index)='pmco_EMEP_dust' species_name_nc(pmco_sp_index,sp_dust_sah_index)='SURF_ug_DUST_SAH_C' species_name_nc(pm25_sp_index,sp_dust_sah_index)='SURF_ug_DUST_SAH_F' species_name_nc(pmco_sp_index,sp_dust_wb_index)='SURF_ug_DUST_WB_C' species_name_nc(pm25_sp_index,sp_dust_wb_index)='SURF_ug_DUST_WB_F' species_name_nc(pm25_sp_index,sp_seasalt_index)='pm25_EMEP_seasalt' species_name_nc(pm10_sp_index,sp_seasalt_index)='pm10_EMEP_seasalt' species_name_nc(pm25_sp_index,sp_seasalt_in_index)='SURF_ug_SEASALT_F' species_name_nc(pmco_sp_index,sp_seasalt_in_index)='SURF_ug_SEASALT_C' species_name_nc(pm10_sp_index,sp_ffire_index)='pm10_EMEP_fire' species_name_nc(pm25_sp_index,sp_ffire_index)='pm25_EMEP_fire' species_name_nc(pm25_sp_index,sp_ffire_bc_index)='SURF_ug_FFIRE_BC' species_name_nc(pm25_sp_index,sp_ffire_rem_index)='SURF_ug_FFIRE_REMPPM25' species_name_nc(pm10_sp_index,sp_ppm_index)='pm10_EMEP_ppm' species_name_nc(pm25_sp_index,sp_ppm_index)='pm25_EMEP_ppm' species_name_nc(pm10_sp_index,sp_ppm_in_index)='SURF_ug_PPM10' species_name_nc(pm25_sp_index,sp_ppm_in_index)='SURF_ug_PPM25' species_name_nc(pmco_sp_index,sp_ppm_in_index)='SURF_ug_PPM_C' species_name_nc(pm10_sp_index,sp_pm_index)='pm10_EMEP_total' species_name_nc(pm25_sp_index,sp_pm_index)='pm25_EMEP_total' species_name_nc(pm10_sp_index,sp_pm_in_index)='SURF_ug_PM10' species_name_nc(pm25_sp_index,sp_pm_in_index)='SURF_ug_PMFINE' !This must be set to FINE if SOA is to be derived by subtracting the other species !species_name_nc(pm25_sp_index,sp_pm_in_index)='SURF_ug_PM25' species_name_nc(pmco_sp_index,sp_pm_in_index)='SURF_ug_PMCO' species_name_nc(pm10_sp_index,sp_water_index)='pm10_EMEP_water' species_name_nc(pm25_sp_index,sp_water_index)='pm25_EMEP_water' species_name_nc(pm10_sp_index,sp_water_in_index)='' !species_name_nc(pm25_sp_index,sp_pm_in_index)='SURF_ug_PMFINE' species_name_nc(pm25_sp_index,sp_water_in_index)='SURF_PM25water' !Additional compounds for OP calculations. From Willem !aSOA = ['SURF_ug_PM_ASOA'] !bSOA = ['SURF_ug_PM_BSOA'] !# BBOA: the POA from biomass burning (and other residential heating sources such as coal) !BBOA_f = ['SURF_ug_POM_F_RES', ! 'SURF_ug_EC_F_RES_NEW', ! 'SURF_ug_EC_F_RES_AGE', ! 'SURF_ug_REMPPM25_RES', ! 'SURF_ug_FFIRE_OM', ! 'SURF_ug_FFIRE_BC', ! 'SURF_ug_FFIRE_REMPPM25'] species_name_nc(pm10_sp_index,sp_BBOA_index)='pm10_EMEP_BBOA' species_name_nc(pm25_sp_index,sp_BBOA_index)='pm25_EMEP_BBOA' species_name_nc(pmco_sp_index,sp_BBOA_index)='pmco_EMEP_BBOA' species_name_nc(pm10_sp_index,sp_BBOA_RES_index)='pm10_EMEP_BBOA_RES' species_name_nc(pm25_sp_index,sp_BBOA_RES_index)='pm25_EMEP_BBOA_RES' species_name_nc(pmco_sp_index,sp_BBOA_RES_index)='pmco_EMEP_BBOA_RES' species_name_nc(pm25_sp_index,sp_POM_RES_in_index)='SURF_ug_POM_F_RES' species_name_nc(pm25_sp_index,sp_EC_RES_NEW_in_index)='SURF_ug_EC_F_RES_NEW' species_name_nc(pm25_sp_index,sp_EC_RES_AGE_in_index)='SURF_ug_EC_F_RES_AGE' species_name_nc(pm25_sp_index,sp_REM_RES_in_index)='SURF_ug_REMPPM25_RES' species_name_nc(pm25_sp_index,sp_FFIRE_OM_in_index)='SURF_ug_FFIRE_OM' species_name_nc(pm25_sp_index,sp_FFIRE_BC_in_index)='SURF_ug_FFIRE_BC' species_name_nc(pm25_sp_index,sp_FFIRE_REM_in_index)='SURF_ug_FFIRE_REMPPM25' !BBOA_c = ['SURF_ug_EC_C_RES', ! 'SURF_ug_POM_C_RES', ! 'SURF_ug_REMPPM_C_RES', ! 'SURF_ug_FFIRE_C'] species_name_nc(pmco_sp_index,sp_EC_RES_in_index)='SURF_ug_EC_C_RES' species_name_nc(pmco_sp_index,sp_POM_RES_in_index)='SURF_ug_POM_C_RES' species_name_nc(pmco_sp_index,sp_REM_RES_in_index)='SURF_ug_REMPPM_C_RES' species_name_nc(pmco_sp_index,sp_FFIRE_in_index)='SURF_ug_FFIRE_C' !OP_aSOA = 0.44 # nmol min-1 ug-1; multiply with the ug/m3 concs to get OP !OP_bSOA = 0.15 !OP_BBOA = 0.08 !----------------------------------------------------------- !And then for the non-exhaust and exhaust (HOA) contributions I combine the LFs with the LF pm25 and pmco fields, and multiply by: !OP_HOA = 0.94 # nmol min-1 ug-1 !OP_nonexh = 3.51 !Deposition names deposition_name_nc='' i=nh3_nc_index if (i.eq.nh3_nc_index) deposition_str='NH3' deposition_name_nc(temp_conif_index,i)='MSC_VG_'//trim(deposition_str)//'_CF' deposition_name_nc(temp_decid_index,i)='MSC_VG_'//trim(deposition_str)//'_DF' deposition_name_nc(med_needle_index,i)='MSC_VG_'//trim(deposition_str)//'_NF' deposition_name_nc(med_broadleaf_index,i)='MSC_VG_'//trim(deposition_str)//'_BF' deposition_name_nc(temp_crop_index,i)='MSC_VG_'//trim(deposition_str)//'_TC' deposition_name_nc(med_crop_index,i)='MSC_VG_'//trim(deposition_str)//'_MC' deposition_name_nc(root_crop_index,i)='MSC_VG_'//trim(deposition_str)//'_RC' deposition_name_nc(moorland_index,i)='MSC_VG_'//trim(deposition_str)//'_SNL' deposition_name_nc(grass_index,i)='MSC_VG_'//trim(deposition_str)//'_GR' deposition_name_nc(medscrub_index,i)='MSC_VG_'//trim(deposition_str)//'_MS' deposition_name_nc(wetlands_index,i)='MSC_VG_'//trim(deposition_str)//'_WE' deposition_name_nc(tundra_index,i)='MSC_VG_'//trim(deposition_str)//'_TU' deposition_name_nc(desert_index,i)='MSC_VG_'//trim(deposition_str)//'_DE' deposition_name_nc(water_index,i)='MSC_VG_'//trim(deposition_str)//'_W' deposition_name_nc(ice_index,i)='MSC_VG_'//trim(deposition_str)//'_ICE' deposition_name_nc(urban_index,i)='MSC_VG_'//trim(deposition_str)//'_U' deposition_name_nc(grid_index,i)='MSC_VG_'//trim(deposition_str)//'_Grid' var_name_nc(wetdepo_nc_index,i,allsource_nc_index)='WDEP_'//trim(deposition_str) var_name_nc(drydepo_nc_index,i,allsource_nc_index)='DDEP_'//trim(deposition_str)//'_m2Grid' comp_scale_nc(:)=1. comp_scale_nc(nox_nc_index)=(14.+2.*16.)/14. !Value read in is in ugN converted to nh3 depo_scale_nc(:)=1. depo_scale_nc(nh3_nc_index)=(14.+3.*1.)/14. !Value read in is in ugN converted to nh3 !Names for the OP calculations !Allocate the indexes for specifying compound and sources together. Never used and not correct either!!! count=0 do i=1,size(compound_source_index,1) do j=1,size(compound_source_index,2) count=count+1 compound_source_index(i,j)=count enddo enddo !Allocate source strings for writing to files source_file_str(allsource_index)='allsources' source_file_str(traffic_index)='traffic' source_file_str(shipping_index)='shipping' source_file_str(agriculture_index)='agriculture' source_file_str(heating_index)='heating' source_file_str(industry_index)='industry' source_file_str(publicpower_index)='publicpower' source_file_str(fugitive_index)='fugitive' source_file_str(solvents_index)='solvents' source_file_str(aviation_index)='aviation' source_file_str(offroad_index)='offroad' source_file_str(waste_index)='waste' source_file_str(livestock_index)='livestock' source_file_str(other_index)='other' source_file_str(traffic_exhaust_index)='traffic_exhaust' source_file_str(traffic_nonexhaust_index)='traffic_nonexhaust' do i=1,n_pollutant_nc_index pollutant_file_str(i)=var_name_nc(conc_nc_index,i,allsource_nc_index) enddo !do i=1,n_possible_subsource ! write(str_temp,'(i1)') i ! subsource_str(i)='_'//trim(str_temp) !enddo !Set filename indexes for grids generated by uEMEP j=0 do i=1,n_source_index j=j+1;proxy_emission_file_index(i)=j j=j+1;emission_file_index(i)=j j=j+1;proxy_file_index(i)=j j=j+1;proxy_integral_file_index(i)=j j=j+1;emep_subgrid_file_index(i)=j j=j+1;emep_subgrid_nonlocal_file_index(i)=j j=j+1;emep_subgrid_local_file_index(i)=j j=j+1;emep_additional_subgrid_nonlocal_file_index(i)=j j=j+1;emep_additional_subgrid_local_file_index(i)=j j=j+1;emep_subgrid_semilocal_file_index(i)=j j=j+1;subgrid_sourcetotal_inregion_file_index(i)=j j=j+1;subgrid_sourcetotal_file_index(i)=j j=j+1;emep_subgrid_frac_file_index(i)=j j=j+1;subgrid_local_file_index(i)=j j=j+1;subgrid_total_file_index(i)=j j=j+1;use_subgrid_file_index(i)=j j=j+1;emep_emission_subgrid_file_index(i)=j enddo do i=1,n_population_index j=j+1;population_file_index(i)=j enddo j=j+1;subgrid_ugrid_file_index=j j=j+1;subgrid_vgrid_file_index=j j=j+1;subgrid_u10_file_index=j j=j+1;subgrid_v10_file_index=j j=j+1;subgrid_hmix_file_index=j j=j+1;subgrid_kz_file_index=j j=j+1;subgrid_logz0_file_index=j j=j+1;subgrid_invL_file_index=j j=j+1;subgrid_FFgrid_file_index=j j=j+1;subgrid_FF10_file_index=j j=j+1;subgrid_DDgrid_file_index=j j=j+1;subgrid_DD10_file_index=j j=j+1;subgrid_invFFgrid_file_index=j j=j+1;subgrid_invFF10_file_index=j j=j+1;subgrid_ustar_file_index=j j=j+1;subgrid_t2m_file_index=j j=j+1;subgrid_J_file_index=j j=j+1;subgrid_meteo_file_index=j !Set initial values for the dispersion parameters sig_y_00=10. sig_z_00=10. h_emis=15. z_rec=2. h_emis(traffic_index,:)=2. h_emis(shipping_index,:)=70. h_emis(heating_index,:)=15. h_emis(agriculture_index,:)=1. h_emis(industry_index,:)=100. h_emis(aviation_index,:)=10. h_emis(fugitive_index,:)=5. h_emis(livestock_index,:)=5. h_emis(solvents_index,:)=15. h_emis(offroad_index,:)=5. h_emis(waste_index,:)=15. sig_y_00(shipping_index,:)=5. sig_y_00(traffic_index,:)=1. sig_y_00(heating_index,:)=5. sig_y_00(agriculture_index,:)=5. sig_y_00(industry_index,:)=5. sig_y_00(aviation_index,:)=25. sig_z_00(shipping_index,:)=5. sig_z_00(traffic_index,:)=1. sig_z_00(heating_index,:)=10. sig_z_00(agriculture_index,:)=10. sig_z_00(industry_index,:)=10. sig_z_00(aviation_index,:)=10. !Set all emission factors to unity emission_factor=1. !Set all no2, relative to nox, to 0.1. emission_factor(no2_index,:,:)=0.1 !Preset all initial emission factors emission_factor(nox_index,traffic_index,:)=0.4 !(g/km/veh) emission_factor(nox_index,shipping_index,:)=1. !Shipping data is in emissions [tonne/month] emission_factor(nox_index,heating_index,:)=3./15. !(kg/dwelling/year) Estimate only emission_factor(nox_index,industry_index,:)=1. !Industry data is in emissions [tonne/year] emission_factor(no2_index,traffic_index,:)=0.15*emission_factor(nox_index,traffic_index,:) emission_factor(no2_index,shipping_index,:)=0.10*emission_factor(nox_index,shipping_index,:) emission_factor(no2_index,heating_index,:)=0.1*emission_factor(nox_index,heating_index,:)!(kg/dwelling/year) Estimate only emission_factor(no2_index,industry_index,:)=0.10*emission_factor(nox_index,shipping_index,:) emission_factor(pm25_index,traffic_index,:)=0.01 !(g/km/veh) emission_factor(pm25_index,shipping_index,:)=1. !Shipping data is in emissions [tonne/month] emission_factor(pm25_index,heating_index,:)=3. !(kg/dwelling/year) SSB number is 6 emission_factor(pm25_index,industry_index,:)=1. emission_factor(pm10_index,traffic_index,:)=0.01 !(g/km/veh) emission_factor(pm10_index,shipping_index,:)=1. !Shipping data is in emissions [tonne/month] emission_factor(pm10_index,heating_index,:)=3. !(kg/dwelling/year) SSB number is 6 emission_factor(pm10_index,industry_index,:)=1. emission_factor(pmex_index,traffic_index,:)=0.01 !(g/km/veh) emission_factor(nh3_index,agriculture_index,:)=1. !Agriculture data is in emissions [kg/yr] emission_factor(nh4_index,agriculture_index,:)=1. !Agriculture data is in emissions [kg/yr] ratio_truck_car_emission(nox_index)=12.5 !4.86/.318 !From excel sheet for NOx. 12.5 matches the values used in NORTRIP ratio_truck_car_emission(no2_index)=12.5 !4.86/.318 !Should perhaps be different but ratio_truck_car_emission(pm25_index)=10. ratio_truck_car_emission(pm10_index)=10. ratio_truck_car_emission(pmex_index)=10. !Set AQI thresholds aqi_hourly_limits(no2_index,1)=100.;aqi_hourly_limits(no2_index,2)=200.;aqi_hourly_limits(no2_index,3)=400.; !aqi_hourly_limits(pm10_index,1)=50.;aqi_hourly_limits(pm10_index,2)=80.;aqi_hourly_limits(pm10_index,3)=400.; !aqi_hourly_limits(pm25_index,1)=25.;aqi_hourly_limits(pm25_index,2)=40.;aqi_hourly_limits(pm25_index,3)=150.; aqi_hourly_limits(pm10_index,1)=60.;aqi_hourly_limits(pm10_index,2)=120.;aqi_hourly_limits(pm10_index,3)=400.; aqi_hourly_limits(pm25_index,1)=30.;aqi_hourly_limits(pm25_index,2)=50.;aqi_hourly_limits(pm25_index,3)=150.; aqi_hourly_limits(o3_index,1)=100.;aqi_hourly_limits(o3_index,2)=180.;aqi_hourly_limits(o3_index,3)=240.; aqi_daily_limits(pm10_index,1)=30.;aqi_daily_limits(pm10_index,2)=50.;aqi_daily_limits(pm10_index,3)=150.; aqi_daily_limits(pm25_index,1)=15.;aqi_daily_limits(pm25_index,2)=25.;aqi_daily_limits(pm25_index,3)=75.; !Not properly defined aqi_annual_limits(no2_index,1)=0.;aqi_annual_limits(no2_index,2)=40.;aqi_annual_limits(no2_index,3)=40.; aqi_annual_limits(pm10_index,1)=0.;aqi_annual_limits(pm10_index,2)=25.;aqi_annual_limits(pm10_index,3)=35.; aqi_annual_limits(pm25_index,1)=0.;aqi_annual_limits(pm25_index,2)=15.;aqi_annual_limits(pm25_index,3)=25.; !For temperature scaling traffic_nox_emission_temperature_ref_temperature(1)=-15. traffic_nox_emission_temperature_ref_temperature(2)=5. traffic_nox_emission_temperature_ref_scaling(1)=3. traffic_nox_emission_temperature_ref_scaling(2)=1. !EMEP projection default (LCC) !Pre feb 2020 values EMEP_projection_type=LCC_projection_index EMEP_projection_attributes(1) = 63.0 !Standard parallel 1 EMEP_projection_attributes(2) = 63.0 !Standard parallel 2 EMEP_projection_attributes(3) = 15.0 !lon0 EMEP_projection_attributes(4) = 63.0 !lat0 EMEP_projection_attributes(5) = 6371000.0 !earth_radius EMEP_projection_attributes(6) = 1.e12 !flattening spherical earth. Never used? !uEMEP projection default (UTM) projection_type=UTM_projection_index projection_attributes(1) = utm_zone projection_attributes(2) = utm_lon0 !uEMEP projection alternative (LAEA) for European modelling. Can copy to config file if it is to be used !projection_type=LAEA_projection_index !projection_attributes(1) = 10. !lon0 !projection_attributes(2) = 52. !lat0 !projection_attributes(3) = 4321000. !false_easting !projection_attributes(4) = 3210000. !false_northing !projection_attributes(5) = 6370000.0 !earth_radius !These are used for landuse sector conversion only. They are already specified in uEMEP_to_EMEP_sector convert_GNFR_to_uEMEP_sector_index(1)=publicpower_nc_index convert_GNFR_to_uEMEP_sector_index(2)=industry_nc_index convert_GNFR_to_uEMEP_sector_index(3)=heating_nc_index convert_GNFR_to_uEMEP_sector_index(4)=fugitive_nc_index convert_GNFR_to_uEMEP_sector_index(5)=solvents_nc_index convert_GNFR_to_uEMEP_sector_index(6)=traffic_nc_index convert_GNFR_to_uEMEP_sector_index(7)=shipping_nc_index convert_GNFR_to_uEMEP_sector_index(8)=aviation_nc_index convert_GNFR_to_uEMEP_sector_index(9)=offroad_nc_index convert_GNFR_to_uEMEP_sector_index(10)=waste_nc_index convert_GNFR_to_uEMEP_sector_index(11)=livestock_nc_index convert_GNFR_to_uEMEP_sector_index(12)=agriculture_nc_index convert_GNFR_to_uEMEP_sector_index(13)=other_nc_index convert_uEMEP_to_GNFR_sector_index(publicpower_nc_index)=1 convert_uEMEP_to_GNFR_sector_index(industry_nc_index)=2 convert_uEMEP_to_GNFR_sector_index(heating_nc_index)=3 convert_uEMEP_to_GNFR_sector_index(fugitive_nc_index)=4 convert_uEMEP_to_GNFR_sector_index(solvents_nc_index)=5 convert_uEMEP_to_GNFR_sector_index(traffic_nc_index)=6 convert_uEMEP_to_GNFR_sector_index(shipping_nc_index)=7 convert_uEMEP_to_GNFR_sector_index(aviation_nc_index)=8 convert_uEMEP_to_GNFR_sector_index(offroad_nc_index)=9 convert_uEMEP_to_GNFR_sector_index(waste_nc_index)=10 convert_uEMEP_to_GNFR_sector_index(livestock_nc_index)=11 convert_uEMEP_to_GNFR_sector_index(agriculture_nc_index)=12 convert_uEMEP_to_GNFR_sector_index(other_nc_index)=13 end subroutine uEMEP_set_constants