;Create SVOC and IVOC emissions for VBS-SOA ; ; "As suggested by Jathar et al. [2014, Table 1], these precursor ;species were emitted as 0.6 x POA emissions for the IVOC fraction ;considered as lost by evaporation, and as 0.2 x NMVOC emissions for ;the unspeciated IVOC fraction of organic carbon mass. The ;corresponding SOA yields (Table 2) are derived from the GECKO-A model ;(Generator of Explicit Chemistry and Kinetics of Organics in the ;Atmosphere, [Aumont et al., 2005]) for low and high NOx conditions ;considering a mixture of n-alkane species shown in Table 3." ; ; IVOC and SVOC emissions ;IVOC mass emissions = ;0.2 * sum of mass emissions of following HCs ;C3H6, C3H8, C2H6, C2H4, BIGENE, BIGALK ;CH3COCH3, MEK, CH3CHO, CH2O ;BENZENE, TOLUENE, XYLENES ;SVOC mass emissions = ;0.6 * sum of mass of emissions of hydrophilic and hydrophobic POA ;You need to be careful to convert OC if emissions are in OC to OA (we used 1.4 factor). pro make_emis_finn_svocivoc_camse_rhs today = bin_date(systime()) todaystr = String(today[0:2],format='(i4,"/",i2.2,"/",i2.2)') sdate_today = String(today[0:2],format='(i4,i2.2,i2.2)') creation_date = '20170322' thisfile = Routine_filepath() ;path_emis = '/Volumes/DATA_RAID/emissions/FINNv15/2002_2017/' ;syear = '2002-2017' ;path_emis = '/Volumes/DATA_RAID/emissions/FINNv16/cesm_2017/' ;syear = '2017' ;path_emis = '/Volumes/DATA_RAID/emissions/FINNv15/cam_2015_2018/' ;syear = '2015-2018' path_emis = '/data16a/rschwant/Emissions/FINN15_ne0CONUSne30x8/input_to_model/2013/' syear = '2013' ;resol = '0.9x1.25' ;resol = '1.9x2.5' resol = 'ne0CONUSne30x8' specs_ivoc = ['C3H6', 'C3H8', 'C2H6', 'C2H4', 'BIGENE', 'BIGALK', $ 'CH3COCH3', 'MEK', 'CH3CHO', 'CH2O', 'BENZENE', 'TOLUENE', 'XYLENES'] mws_ivoc = [42, 44, 30, 28, 56, 72, 58, 72, 44, 30, 78, 92, 126] ;get dims file0 = path_emis+'emissions-finn1.5_BIGALK_bb_surface_'+syear+'_'+resol+'.nc' ;file0 = path_emis+'emissions-finn1.6_BIGALK_bb_surface_'+syear+'_'+resol+'.nc' ncid = ncdf_open(file0) ncdf_varget,ncid,'lon',lon ncdf_varget,ncid,'lat',lat ncdf_varget,ncid,'time',time ncdf_attget,ncid,'time','calendar',time_calendar time_calendar = String(time_calendar) ncdf_attget,ncid,'time','units',time_units time_units = String(time_units) ncdf_varget,ncid,'date',date ncdf_close,ncid ncol = n_elements(lon) ntim = n_elements(date) mw_ivoc = 184. mw_svoc = 310. ;IVOC = 0.2*(HCs) bb_ivoc = fltarr(ncol,ntim) for ispec = 0,n_elements(specs_ivoc)-1 do begin spec_hc = specs_ivoc[ispec] file_hc = File_search(path_emis+'emissions-finn1.5_'+spec_hc+'_bb_surface_'+syear+'_'+resol+'.nc') ;file_hc = File_search(path_emis+'emissions-finn1.6_'+spec_hc+'_bb_surface_'+syear+'_'+resol+'.nc') file_hc = file_hc[0] ncid = ncdf_open(file_hc) ncdf_varget,ncid,'fire',emis_hc1_bb ;ncdf_attget,ncid,/global,'molecular_weight',mw_hc ncdf_close,ncid mw_hc = mws_ivoc[ispec] ;anthro_ivoc = anthro_ivoc + 0.2*emis_hc1_an*mw_hc/mw_ivoc bb_ivoc = bb_ivoc + 0.2*emis_hc1_bb*mw_hc/mw_ivoc endfor hist = 'IVOC=0.2*('+strjoin(specs_ivoc,"+")+')' spec = 'IVOC' ; write new file newfile = path_emis+'emissions-finn1.5_'+spec+'_bb_surface_'+syear+'_'+resol+'.nc' ;newfile = path_emis+'emissions-finn1.6_'+spec+'_bb_surface_'+syear+'_'+resol+'.nc' print,newfile ncid = ncdf_create(newfile,/clobber) ncolid = ncdf_dimdef(ncid,'ncol',ncol) tid = ncdf_dimdef(ncid,'time',/unlimited) ; Define variables with attributes xvarid = ncdf_vardef(ncid,'lon',[ncolid],/float) ncdf_attput, ncid, xvarid,/char, 'units', 'degrees_east' ncdf_attput, ncid, xvarid,/char, 'long_name', 'Longitude' yvarid = ncdf_vardef(ncid,'lat',[ncolid],/float) ncdf_attput, ncid, yvarid,/char, 'units', 'degrees_north' ncdf_attput, ncid, yvarid,/char, 'long_name', 'Latitude' tvarid = ncdf_vardef(ncid,'time',[tid],/float) ncdf_attput, ncid, tvarid,/char, 'long_name', 'time' ncdf_attput, ncid, tvarid,/char, 'units', time_units ncdf_attput, ncid, tvarid,/char, 'calendar', time_calendar tvarid = ncdf_vardef(ncid,'date',[tid],/long) ncdf_attput, ncid, tvarid,/char, 'units', 'YYYYMMDD' ncdf_attput, ncid, tvarid,/char, 'long_name', 'Date' ;varid = ncdf_vardef(ncid,'anthro',[xid,yid,tid],/float) ;ncdf_attput,ncid,/char,varid,'units','molecules/cm2/s' ;ncdf_attput,ncid,/char,varid,'long_name','anthro emissions' ;ncdf_attput,ncid,/float,varid,'molecular_weight',mw_ivoc ;ncdf_attput,ncid,/char,varid,'history',hist varid = ncdf_vardef(ncid,'fire',[ncolid,tid],/float) ncdf_attput,ncid,/char,varid,'units','molecules/cm2/s' ncdf_attput,ncid,/char,varid,'long_name','fire emissions' ncdf_attput,ncid,/float,varid,'molecular_weight',mw_ivoc ncdf_attput,ncid,/char,varid,'history',hist ;Define global attributes ncdf_attput,ncid,/GLOBAL,/char,'data_title','Emissions of '+spec+' from FINNv1.5' ncdf_attput,ncid,/GLOBAL,/float,'molecular_weight',mw_ivoc ncdf_attput,ncid,/GLOBAL,/char,'data_creator','Rebecca Schwantes (rschwant@ucar.edu) with revised Louisa Emmons scripts' ncdf_attput,ncid,/GLOBAL,/char,'data_summary','Lumped HCs precursor of SOA for VBS scheme, based on fractions of various HCs.' ncdf_attput,ncid,/GLOBAL,/char,'cesm_contact','Rebecca Schwantes, Louisa Emmons' ncdf_attput,ncid,/GLOBAL,/char,'creation_date',creation_date ncdf_attput,ncid,/GLOBAL,/char,'update_date',sdate_today ncdf_attput,ncid,/GLOBAL,/char,'history',' ' ncdf_attput,ncid,/GLOBAL,/char,'data_script',thisfile ncdf_attput,ncid,/GLOBAL,/char,'data_source_url',' ' ncdf_attput,ncid,/GLOBAL,/char,'data_reference',' ' ncdf_control,ncid,/ENDEF ncdf_varput,ncid,'lon',lon ncdf_varput,ncid,'lat',lat ncdf_varput,ncid,'time',time ncdf_varput,ncid,'date',date ;ncdf_varput,ncid,'anthro',anthro_ivoc ncdf_varput,ncid,'fire',bb_ivoc ncdf_close,ncid ;SVOC = 0.6*pom_a4 file_pom = path_emis+'emissions-finn1.5_pom_a4_bb_surface_'+syear+'_'+resol+'.nc' ;file_pom = path_emis+'emissions-finn1.6_pom_a4_bb_surface_'+syear+'_'+resol+'.nc' ncid = ncdf_open(file_pom) ;ncdf_varget,ncid,'anthro',anthro_pom1 ncdf_varget,ncid,'fire',bb_pom1 ;ncdf_attget,ncid,/global,'molecular_weight',mw_pom ncdf_close,ncid mw_pom = 12. ;anthro_svoc = anthro_pom1 * 0.6 *mw_pom/mw_svoc bb_svoc = bb_pom1 * 0.6 *mw_pom/mw_svoc spec = 'SVOC' ; write new file newfile = path_emis+'emissions-finn1.5_'+spec+'_bb_surface_'+syear+'_'+resol+'.nc' ;newfile = path_emis+'emissions-finn1.6_'+spec+'_bb_surface_'+syear+'_'+resol+'.nc' print,newfile ncid = ncdf_create(newfile,/clobber) ncolid = ncdf_dimdef(ncid,'ncol',ncol) tid = ncdf_dimdef(ncid,'time',/unlimited) ; Define variables with attributes xvarid = ncdf_vardef(ncid,'lon',[ncolid],/float) ncdf_attput, ncid, xvarid,/char, 'units', 'degrees_east' ncdf_attput, ncid, xvarid,/char, 'long_name', 'Longitude' yvarid = ncdf_vardef(ncid,'lat',[ncolid],/float) ncdf_attput, ncid, yvarid,/char, 'units', 'degrees_north' ncdf_attput, ncid, yvarid,/char, 'long_name', 'Latitude' tvarid = ncdf_vardef(ncid,'time',[tid],/float) ncdf_attput, ncid, tvarid,/char, 'long_name', 'time' ncdf_attput, ncid, tvarid,/char, 'units', time_units ncdf_attput, ncid, tvarid,/char, 'calendar', time_calendar tvarid = ncdf_vardef(ncid,'date',[tid],/long) ncdf_attput, ncid, tvarid,/char, 'units', 'YYYYMMDD' ncdf_attput, ncid, tvarid,/char, 'long_name', 'Date' ;varid = ncdf_vardef(ncid,'anthro',[xid,yid,tid],/float) ;ncdf_attput,ncid,/char,varid,'units','molecules/cm2/s' ;ncdf_attput,ncid,/char,varid,'long_name','anthro emissions' ;ncdf_attput,ncid,/float,varid,'molecular_weight',mw_svoc ;ncdf_attput,ncid,/char,varid,'history','0.6*pom_a4' varid = ncdf_vardef(ncid,'fire',[ncolid,tid],/float) ncdf_attput,ncid,/char,varid,'units','molecules/cm2/s' ncdf_attput,ncid,/char,varid,'long_name','fire emissions' ncdf_attput,ncid,/float,varid,'molecular_weight',mw_svoc ncdf_attput,ncid,/char,varid,'history','0.6*pom_a4' ;Define global attributes ncdf_attput,ncid,/GLOBAL,/char,'data_title','Emissions of '+spec+' from FINNv1.5' ncdf_attput,ncid,/GLOBAL,/float,'molecular_weight',mw_svoc ncdf_attput,ncid,/GLOBAL,/char,'data_creator','Rebecca Schwantes (rschwant@ucar.edu) with revised Louisa Emmons scripts' ncdf_attput,ncid,/GLOBAL,/char,'data_summary','Lumped HCs precursor of SOA for VBS scheme, based on fractions of various HCs.' ncdf_attput,ncid,/GLOBAL,/char,'cesm_contact','Rebecca Schwantes, Louisa Emmons' ncdf_attput,ncid,/GLOBAL,/char,'creation_date',creation_date ncdf_attput,ncid,/GLOBAL,/char,'update_date',sdate_today ncdf_attput,ncid,/GLOBAL,/char,'history',' ' ncdf_attput,ncid,/GLOBAL,/char,'data_script',thisfile ncdf_attput,ncid,/GLOBAL,/char,'data_source_url',' ' ncdf_attput,ncid,/GLOBAL,/char,'data_reference',' ' ncdf_control,ncid,/ENDEF ncdf_varput,ncid,'lon',lon ncdf_varput,ncid,'lat',lat ncdf_varput,ncid,'time',time ncdf_varput,ncid,'date',date ;ncdf_varput,ncid,'anthro',anthro_svoc ncdf_varput,ncid,'fire',bb_svoc ncdf_close,ncid end