Skip to content

Instantly share code, notes, and snippets.

@everdaniel
Created July 28, 2021 00:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save everdaniel/0f9072fdfe515b8387f584c6ce632f39 to your computer and use it in GitHub Desktop.
Save everdaniel/0f9072fdfe515b8387f584c6ce632f39 to your computer and use it in GitHub Desktop.
#LIST GRID
#SCC,InvPollName,EDGAR_VarName,Month,FileName
#DESC Sample test case for TRANSPORT EDGAR sector based on HTAP version 2.0
#BIOGENIC,CO,c2h6sfire,8,/home/everdaniel/4.8.1/data/inventory/biogenicas/DMS0+1SEPTEMBER_.nc
BIOGENIC,CO,ene,0,/home/everdaniel/DatosECCAD/Energia/Generacion-Energia/2019-07/Energia_0JulyCO_.nc
#/bin/csh -fx
#
## HEADER ##################################################################
#
# SMOKE ASSIGNS file (sets up for area, biogenic, mobile, nonroad, and point sources)
#
# Version @(#)$Id$
# Path $Source$
# Date $Date$
#
# Scenario Description:
# This assigns file sets up the environment variables for use of
# SMOKE Version 2.1 outside of the Models-3 system.
#
# Usage:
# source <Assign>
# Note: First set the SMK_HOME env variable to the base SMOKE installation
#
## END HEADER ##############################################################
## Determine operating system for compiling SMOKE
# Set executable format, makeing allownces for 64-bit archtecnture
# example: Linux2_x86_64ifort (Intel), Linux2_x86_64pg (Portland group), Linux2_x86_64gfort (gfortran)...
#
setenv BIN Linux2_x86_64ifort # Intel Fortran 64-bit compiler
## I/O Naming roots
#
setenv INVID BIOGENICA # Inventory input identifier
setenv INVOP BIOGENICA # Base year inventory output name
setenv INVEN BIOGENICA # Base year inventory name with version
setenv ABASE BIOGENICA # Area base case output name
setenv BBASE BIOGENICA # Biogenics base case output name
setenv MBASE BIOGENICA # Mobile base case output name
setenv PBASE BIOGENICA # Point base case output name
setenv EBASE BIOGENICA # Output merged base case name
setenv METSCEN Asu1K # Met scenario name
setenv GRID Asu1K # Gridding root for naming
setenv IOAPI_GRIDNAME_1 Asu1K # Grid selected from GRIDDESC file
setenv IOAPI_ISPH 20 # Specifies spheroid type associated with grid
setenv SPC cmaq_cb05_soa # Speciation type
## Mobile episode variables
setenv EPI_STDATE 2019182 # Julian start date
setenv EPI_STTIME 000000 # start time (HHMMSS)
setenv EPI_RUNLEN 7440000 # run length (HHHMMSS)
setenv EPI_NDAY 31 # number of full run days
## Per-period environment variables
setenv G_STDATE 2019182 # Julian start date
setenv G_STTIME 000000 # start time (HHMMSS)
setenv G_TSTEP 10000 # time step (HHMMSS)
setenv G_RUNLEN 7440000 # run length (HHMMSS)
setenv ESDATE 20190701 # Start date of emis time-based files/dirs
setenv MSDATE 20190701 # Start date of met time-based files
setenv NDAYS 31 # Duration in days of each emissions file
setenv MDAYS 31 # Duration in days of met time-based files
setenv YEAR 2019 # Base year for year-specific files
## Reset days if overrides are available
if ( $?G_STDATE_ADVANCE ) then
set date = $G_STDATE
@ date = $date + $G_STDATE_ADVANCE
setenv G_STDATE $date
# org setenv ESDATE `$IOAPIDIR/datshift $G_STDATE 0`
setenv ESDATE `$IOAPIDIR/jul2greg $G_STDATE`
endif
## User-defined I/O directory settings
setenv SMK_SUBSYS $SMK_HOME/subsys # SMOKE subsystem dir
setenv SMKROOT $SMK_SUBSYS/smoke # System root dir
# usar ruta a carpeta del storage aquí
setenv SMKDAT $SMK_HOME/data # Data root dir
setenv ASSIGNS $SMKROOT/assigns # smoke assigns files
setenv IOAPIDIR $SMK_SUBSYS/ioapi/$BIN # IOAPI directory
#
## Override speciation setting, if override variable is set
if ( $?SPC_OVERRIDE ) then
if ( $SPC != " " ) then
setenv SPC $SPC_OVERRIDE
endif
endif
#
## Override year setting, if override variable is set
if ( $?YEAR_OVERRIDE ) then
setenv YEAR $YEAR_OVERRIDE
endif
#
## Make changes to names for future year and/or control strategy
set outstat = 0
source $ASSIGNS/set_case.scr
if ( $status > 0 ) then
set outstat = 1
endif
## Set dependent directory names
#
source $ASSIGNS/set_dirs.scr
## Check script settings
source $ASSIGNS/check_settings.scr
########## SMOKE formatted raw inputs #############
#
## Area-source input files
if ( $SMK_SOURCE == 'A' ) then
#setenv ARINV /home/everdaniel/4.8.1/data/inventory/biogenicas/arinv.EMERGENTE.lst # Stationary area emission inventory
setenv ARINV /home/everdaniel/4.8.1/data/inventory/biogenicas/arinv.CO.201907.lst # Stationary area emission inventory
setenv REPCONFIG /home/everdaniel/4.8.1/data/inventory/biogenicas/repconfig.area.inv.txt # Default report configurations
setenv GSPRO /home/everdaniel/4.8.1/data/inventory/biogenicas/gspro.cmaq_cb05_EMERGENTE.txt # Speciation profiles
setenv GSREF /home/everdaniel/4.8.1/data/inventory/biogenicas/gsref.EMERGENTE.txt # Speciation x-ref
setenv ATREF /home/everdaniel/4.8.1/data/inventory/biogenicas/atref_EMERGENTE.txt # Temporal x-ref
setenv ATPRO_MONTHLY /home/everdaniel/4.8.1/data/inventory/biogenicas/atpro_EMERGENTE_monthly.txt # Monthly Temporal profiles
setenv ATPRO_WEEKLY /home/everdaniel/4.8.1/data/inventory/biogenicas/atpro_EMERGENTE_weekly.txt # Weekly Temporal profiles
setenv ATPRO_HOURLY /home/everdaniel/4.8.1/data/inventory/biogenicas/atpro_EMERGENTE_hourly.txt # Hourly Temporal profiles
endif
#
## Shared input files
setenv GEOCODE_LEVEL1 $GE_DAT/EDGAR/geocode1_edgar.txt # Geographical level 1 (country code)
setenv GEOCODE_LEVEL2 $GE_DAT/EDGAR/geocode2_edgar.txt # Geographical level 2 (state code)
setenv GEOCODE_LEVEL3 $GE_DAT/EDGAR/geocode3_edgar.txt # Geographical level 3 (county code)
setenv GEOCODE_LEVEL4 $GE_DAT/EDGAR/geocode4_edgar.txt # Geographical level 4 (tribal code)
setenv GRIDMASK $GE_DAT/EDGAR/GRIDMASK_EDGAR.ncf # GRIDMASK for EDGAR inv processing
setenv GRID_CRO_2D $GE_DAT/ASU1K-201907/GRIDCRO2D_ASU.nc # GRIDMASK for EDGAR inv processing
setenv GRIDDESC $GE_DAT/ASU1K-201907/GRIDDESC # Grid descriptions.
setenv COSTCY $GE_DAT/costcy.txt # country/state/county info
setenv HOLIDAYS $GE_DAT/holidays.txt # holidays for day change
setenv SCCDESC $GE_DAT/scc_desc.txt # SCC descriptions
setenv GSCNV $GE_DAT/gscnv.$SPC.txt # ROG to TOG conversion facs
setenv GCNTL $GE_DAT/EDGAR/gcntl.HEMI_108k.txt # control/growth factors
setenv INVTABLE /home/everdaniel/4.8.1/data/inventory/biogenicas/invtable_hapcap_cb05soa.txt # Inventory table
#
## Override shared inputs
if ( $?INVTABLE_OVERRIDE ) then
if ( $INVTABLE_OVERRIDE != " " ) then
setenv INVTABLE $INVDIR/other/$INVTABLE_OVERRIDE
endif
endif
#
## Miscellaeous input files
if ( $RUN_MRGGRID == Y ) then
setenv FILELIST $INVDIR/other/filelist.mrggrid.txt
endif
if ( $RUN_GEOFAC == Y ) then
setenv AGTS $OUTPUT/no_file_set
setenv GEOMASK $INVDIR/other/no_file_set
setenv SPECFACS $INVDIR/other/no_file_set
setenv AGTSFAC $INVDIR/other/no_file_set
endif
if ( $RUN_PKTREDUC == Y ) then
setenv GCNTL_OUT $INVDIR/no_file_set #
endif
if ( $RUN_SMK2EMIS == Y ) then
setenv VNAMMAP $GE_DAT/VNAMMAP.dat
setenv UAM_AGTS $OUTPUT/uam_agts_l.$ESDATE.$NDAYS.$GRID.$ASCEN.ncf
setenv UAM_BGTS $OUTPUT/uam_bgts_l.$ESDATE.$NDAYS.$GRID.$BSCEN.ncf
setenv UAM_MGTS $OUTPUT/uam_mgts_l.$ESDATE.$NDAYS.$GRID.$MSCEN.ncf
setenv UAM_PGTS $OUTPUT/uam_pgts_l.$ESDATE.$NDAYS.$GRID.$PSCEN.ncf
setenv UAM_EGTS $OUTPUT/uam_egts_l.$ESDATE.$NDAYS.$GRID.$ESCEN.ncf
endif
if( $RUN_UAMEMIS == Y ) then
setenv UAMEMIS $OUTPUT/no_file_set
setenv E2DNCF $OUTPUT/e2dncf.ncf
endif
## Meteorology IO/API input files (MCIP output files)
#
setenv METDAT /home/everdaniel/4.8.1/data/ge_dat/ASU1K-201907
setenv GRID_CRO_2D $METDAT/GRIDCRO2D_ASU.nc
setenv MET_CRO_2D $METDAT/METCRO2D_ASU.nc
setenv MET_DOT_3D $METDAT/METDOT3D_ASU.nc
setenv MET_FILE1 $MET_CRO_2D
setenv MET_FILE2 $MET_CRO_2D
# setenv GRID_CRO_3D # no longer needed due to inline option in CMAQ
# setenv MET_CRO_3D # no longer needed due to inline option in CMAQ
#
##########################################################################
#
## Output and Intermediate files
#
## Area source intermediate and output files
#
if ( $SMK_SOURCE == 'A' ) then
setenv ADAY $INVOPD/aday.$SRCABBR.$INVOP.ncf # Area NetCDF day-specific
setenv ASCC $INVOPD/ASCC.$SRCABBR.$FYIOP.txt
setenv REPINVEN $REPSTAT/repinven.$SRCABBR.$INVOP.txt
setenv ATSUPNAME $SMKDAT/run_${ASCEN}/scenario/atsup.$SRCABBR.$ASCEN.
setenv ATSUP $ATSUPNAME$G_STDATE.txt
setenv ASSUP $SMKDAT/run_$ABASE/static/assup.$SRCABBR.$SPC.$ABASE.txt
setenv AGSUP $SMKDAT/run_$ABASE/static/agsup.$SRCABBR.$GRID.$ABASE.txt
setenv ACREP $REPSTAT/acrep.$SRCABBR.$ASCEN.rpt
setenv APROJREP $REPSTAT/aprojrep.$SRCABBR.$ASCEN.rpt
setenv AREACREP $REPSTAT/areacrep.$SRCABBR.$ASCEN.rpt
setenv ACSUMREP $REPSTAT/acsumrep.$SRCABBR.$ASCEN.rpt
setenv ACTLWARN $REPSTAT/actlwarn.$SRCABBR.$ASCEN.txt
setenv AREA_O $INVOPD/area.$SRCABBR.map.$FYINV.txt
setenv ARINV_O $ARDAT/arinv_o.$SRCABBR.$FYINV.orl.txt
endif
if ( $SMK_SOURCE == A || $RUN_SMKMERGE == Y && $MRG_AREA == Y ) then
setenv AREA $INVOPD/area.map.$SRCABBR.$FYIOP.txt # Area inventory map
setenv ATMPNAME $SMKDAT/run_$ASCEN/scenario/atmp.$SRCABBR.$ASCEN.
setenv ATMP $ATMPNAME$G_STDATE.ncf
setenv ASMAT_S $SMKDAT/run_$ABASE/static/asmat_s.$SRCABBR.$SPC.$ABASE.ncf
setenv ASMAT_L $SMKDAT/run_$ABASE/static/asmat_l.$SRCABBR.$SPC.$ABASE.ncf
setenv ARMAT_L $SMKDAT/run_$ASCEN/static/armat_l.$SRCABBR.$SPC.$ASCEN.ncf
setenv ARMAT_S $SMKDAT/run_$ASCEN/static/armat_s.$SRCABBR.$SPC.$ASCEN.ncf
setenv ARSUP $SMKDAT/run_$ASCEN/static/arsup.$SRCABBR.$ASCEN.txt
setenv ACMAT $SMKDAT/run_$ASCEN/static/acmat.$SRCABBR.$ASCEN.ncf
setenv AGMAT $SMKDAT/run_$ABASE/static/agmat.$SRCABBR.$GRID.$ABASE.ncf
setenv APMAT $SMKDAT/run_$ASCEN/static/apmat.$SRCABBR.$ASCEN.ncf
setenv SRCGROUPS_OUT $OUTPUT/source_groups_out.$SRCABBR.$GRID.$ASCEN.ncf
setenv SRCGRP_REPORT $REPSTAT/srcgroups.$SRCABBR.$ASCEN.txt
endif
## Biogenic source intermediate and output files
#
if ( $SMK_SOURCE == 'B' ) then
setenv BGRD $INVOPD/bgrd.summer.$GRID.$BSCEN.ncf # Summer/default normalized bio emis
setenv BGRDW $INVOPD/bgrd.winter.$GRID.$BSCEN.ncf # Winter grd normalized bio emis
setenv BIOSEASON $GE_DAT/bioseason.$YEAR.us36.ncf
setenv B3GRD $INVOPD/b3grd.$GRID.$BSCEN.ncf
setenv SOILOUT $STATIC/soil.beis312.$GRID.$SPC.ncf # NO soil output file
endif
if ( $SMK_SOURCE == 'B' || $MRG_BIOG == 'Y' ) then
setenv BGTS_L $B_OUT/b3gts_l.$ESDATE.$NDAYS.$GRID.$BSCEN.ncf
setenv BGTS_S $B_OUT/b3gts_s.$ESDATE.$NDAYS.$GRID.$BSCEN.ncf
setenv B3GTS_L $B_OUT/b3gts_l.$ESDATE.$NDAYS.$GRID.$BSCEN.ncf
setenv B3GTS_S $B_OUT/b3gts_s.$ESDATE.$NDAYS.$GRID.$BSCEN.ncf
setenv BGTS_L_O $B_OUT/bgts_l_o.$ESDATE.$NDAYS.$GRID.$BSCEN.ncf
setenv BGTS_S_O $B_OUT/bgts_s_o.$ESDATE.$NDAYS.$GRID.$BSCEN.ncf
setenv B3GTS_L_O $B_OUT/b3gts_l_o.$ESDATE.$NDAYS.$GRID.$BSCEN.ncf
setenv B3GTS_S_O $B_OUT/b3gts_s_o.$ESDATE.$NDAYS.$GRID.$BSCEN.ncf
setenv SRCGROUPS_OUT $OUTPUT/source_groups_out.$SRCABBR.$GRID.$BSCEN.ncf
setenv SRCGRP_REPORT $REPSTAT/srcgroups.$SRCABBR.$BSCEN.txt
endif
# Mobile source intermediate and output files
#
if ( $SMK_SOURCE == 'M' ) then
setenv MSCC $INVOPD/MSCC.$SRCABBR.$FYIOP.txt
setenv REPINVEN $REPSTAT/repinven.$SRCABBR.$INVOP.txt
setenv MTSUPNAME $SMKDAT/run_${MSCEN}/scenario/mtsup.$SRCABBR.$MSCEN.
setenv MTSUP $MTSUPNAME$G_STDATE.txt
setenv MSSUP $SMKDAT/run_${MBASE}/static/mssup.$SRCABBR.$SPC.$MBASE.txt
setenv MGSUP $SMKDAT/run_$MBASE/static/mgsup.$SRCABBR.$GRID.$MBASE.txt
setenv MCREP $REPSTAT/mcrep.$SRCABBR.$MSCEN.rpt
setenv MPROJREP $REPSTAT/mprojrep.$SRCABBR.$MSCEN.rpt
setenv MREACREP $REPSTAT/mreacrep.$SRCABBR.$MSCEN.rpt
setenv MCSUMREP $REPSTAT/mcsumrep.$SRCABBR.$MSCEN.rpt
setenv MCTLWARN $REPSTAT/mctlwarn.$SRCABBR.$MSCEN.txt
# HOURLYT automaticall set and created by emisfac_run.scr script
# MEFLIST automatically set and created by smk_run.scr script
setenv SPDSUM $STATIC/spdsum.$SRCABBR.$MSCEN.txt # Speed summary file
setenv MOBL_O $INVOPD/mobl.map.$SRCABBR.$FYINV.txt
setenv MBINV_O $MBDAT/mbinv_o.$SRCABBR.$FYINV.emis.txt
setenv MBINV_AO $MBDAT/mbinv_o.$SRCABBR.$FYINV.actv.txt
endif
if ( $SMK_SOURCE == M || $RUN_SMKMERGE == Y && $MRG_MOBILE == Y ) then
setenv MOBL $INVOPD/mobl.map.$SRCABBR.$FYIOP.txt # Mobile inventory map
setenv MTMPNAME $SMKDAT/run_$MSCEN/scenario/mtmp.$SRCABBR.$MSCEN.
setenv MTMP $MTMPNAME$G_STDATE.ncf
setenv MSMAT_L $SMKDAT/run_$MBASE/static/msmat_l.$SRCABBR.$SPC.$MBASE.ncf
setenv MSMAT_S $SMKDAT/run_$MBASE/static/msmat_s.$SRCABBR.$SPC.$MBASE.ncf
setenv MRMAT_L $SMKDAT/run_$MSCEN/static/mrmat_l.$SRCABBR.$SPC.$MSCEN.ncf
setenv MRMAT_S $SMKDAT/run_$MSCEN/static/mrmat_s.$SRCABBR.$SPC.$MSCEN.ncf
setenv MRSUP $SMKDAT/run_$MSCEN/static/mrsup.$SRCABBR.$MSCEN.txt
setenv MCMAT $SMKDAT/run_$MSCEN/static/mcmat.$SRCABBR.$MSCEN.ncf
setenv MUMAT $SMKDAT/run_$MBASE/static/mumat.$SRCABBR.$GRID.$MBASE.ncf
setenv MGMAT $SMKDAT/run_$MBASE/static/mgmat.$SRCABBR.$GRID.$MBASE.ncf
setenv MPMAT $SMKDAT/run_$MSCEN/static/mpmat.$SRCABBR.$MSCEN.ncf
setenv SRCGROUPS_OUT $OUTPUT/source_groups_out.$SRCABBR.$GRID.$MSCEN.ncf
setenv SRCGRP_REPORT $REPSTAT/srcgroups.$SRCABBR.$MSCEN.txt
endif
## Point source intermediate and output files
#
if ( $SMK_SOURCE == 'P' ) then
setenv PDAY $INVOPD/pday.$SRCABBR.$INVOP.ncf # Point NetCDF day-specific
setenv PHOUR $INVOPD/phour.$SRCABBR.$INVOP.ncf # Point NetCDF hour-specific
setenv PHOURPRO $INVOPD/phourpro.$SRCABBR.$INVOP.ncf # Pt NetCDF src-spec dnl profs
setenv REPINVEN $REPSTAT/repinven.$SRCABBR.$INVOP.txt
setenv PTREF_ALT $INVOPD/ptref.$SRCABBR.smkout.txt # Point temporal x-ref
setenv PTSUPNAME $SMKDAT/run_${PSCEN}/scenario/ptsup.$SRCABBR.$PSCEN.
setenv PTSUP $PTSUPNAME$G_STDATE.txt
setenv PSSUP $SMKDAT/run_${PBASE}/static/pssup.$SRCABBR.$SPC.$PBASE.txt
setenv PCREP $REPSTAT/pcrep.$SRCABBR.$PSCEN.rpt
setenv PPROJREP $REPSTAT/pprojrep.$SRCABBR.$PSCEN.rpt
setenv PREACREP $REPSTAT/preacrep.$SRCABBR.$PSCEN.rpt
setenv PCSUMREP $REPSTAT/pcsumrep.$SRCABBR.$PSCEN.rpt
setenv PCTLWARN $REPSTAT/pctlwarn.$SRCABBR.$PSCEN.txt
setenv PNTS_O $INVOPD/pnts.map.$SRCABBR.$FYINV.txt
setenv PTINV_O $PTDAT/ptinv_o.$SRCABBR.$FYINV.orl.txt
setenv REPPELV $REPSTAT/reppelv.$SRCABBR.$PSCEN.rpt
endif
if ( $SMK_SOURCE == P || $RUN_SMKMERGE == Y && $MRG_POINT == Y ) then
setenv PNTS $INVOPD/pnts.map.$SRCABBR.$FYIOP.txt # Point inventory map
setenv PSCC $INVOPD/PSCC.$SRCABBR.$FYIOP.txt # Point unique SCC list
setenv PTMPNAME $SMKDAT/run_$PSCEN/scenario/ptmp.$SRCABBR.$PSCEN.
setenv PTMP $PTMPNAME$G_STDATE.ncf
setenv PSMAT_L $SMKDAT/run_$PBASE/static/psmat_l.$SRCABBR.$SPC.$PBASE.ncf
setenv PSMAT_S $SMKDAT/run_$PBASE/static/psmat_s.$SRCABBR.$SPC.$PBASE.ncf
setenv PRMAT_L $SMKDAT/run_$PSCEN/static/prmat_l.$SRCABBR.$SPC.$PSCEN.ncf
setenv PRMAT_S $SMKDAT/run_$PSCEN/static/prmat_s.$SRCABBR.$SPC.$PSCEN.ncf
setenv PRSUP $SMKDAT/run_$PSCEN/static/prsup.$SRCABBR.$PSCEN.txt
setenv PCMAT $SMKDAT/run_$PSCEN/static/pcmat.$SRCABBR.$PSCEN.ncf
setenv PGMAT $SMKDAT/run_$PBASE/static/pgmat.$SRCABBR.$GRID.$PBASE.ncf
setenv PPMAT $SMKDAT/run_$PSCEN/static/ppmat.$SRCABBR.$PSCEN.ncf
setenv STACK_GROUPS $OUTPUT/stack_groups.$SRCABBR.$GRID.$PBASE.ncf
setenv SRCGROUPS_OUT $OUTPUT/source_groups_out.$SRCABBR.$GRID.$PSCEN.ncf
setenv SRCGRP_REPORT $REPSTAT/srcgroups.$SRCABBR.$PSCEN.txt
setenv INLNTS_L $OUTPUT/inlnts_l.$SRCABBR.$ESDATE.$NDAYS.$GRID.$PSCEN.ncf
setenv PLAY $SMKDAT/run_$PBASE/scenario/play.$SRCABBR.$ESDATE.$NDAYS.$GRID.$MSPBAS.ncf
setenv PLAY_EX $SMKDAT/run_$PBASE/scenario/play_ex.$SRCABBR.$ESDATE.$NDAYS.$GRID.$MSPBAS.ncf
setenv PELV $STATIC/PELV.$SRCABBR.$PBASE.txt # Elev/PinG pt source list
endif
# Cumstomized Smkmerge output file names when merging all souce sectors
# If using Smkmerge to merge all sectors
if ( $SMKMERGE_CUSTOM_OUTPUT == Y && $RUN_SMKMERGE == Y || $MOVESMRG_CUSTOM_OUTPUT == Y && $RUN_MOVESMRG == Y ) then
setenv EOUT $OUTPUT/egts_l.$SRCABBR.$ESDATE.$NDAYS.$SPC.$GRID.$ESCEN.ncf
setenv AOUT $A_OUT/agts_l.$SRCABBR.$ESDATE.$NDAYS.$GRID.$ASCEN.ncf
setenv BOUT $B_OUT/bgts_l_o.$SRCABBR.$ESDATE.$NDAYS.$GRID.$BSCEN.ncf
setenv POUT $P_OUT/pgts_l.$SRCABBR.$ESDATE.$NDAYS.$GRID.$PSCEN.ncf
setenv MOUT $M_OUT/mgts_l.$SRCABBR.$ESDATE.$NDAYS.$GRID.$MSCEN.ncf
setenv PING $OUTPUT/pingts_l.$SRCABBR.$ESDATE.$NDAYS.$GRID.$PSCEN.ncf
setenv ELEV $OUTPUT/elevts_l.$SRCABBR.$ESDATE.$NDAYS.$GRID.$PSCEN.txt
setenv REPEG $REPSCEN/rep_${MM}_all_${ESDATE}_${GRID}_${SPC}.txt
setenv REPAG $REPSCEN/rep_${MM}_${SRCABBR}_${ESDATE}_${GRID}_${SPC}.txt
setenv REPBG $REPSCEN/rep_${MM}_${SRCABBR}_${ESDATE}_${GRID}_${SPC}.txt
setenv REPPG $REPSCEN/rep_${MM}_${SRCABBR}_${ESDATE}_${GRID}_${SPC}.txt
setenv REPMG $REPSCEN/rep_${MM}_${SRCABBR}_${ESDATE}_${GRID}_${SPC}.txt
setenv AGTS_L $AOUT
setenv PGTS_L $POUT
setenv PGTS3D_L $POUT
setenv EGTS_L $EOUT
setenv REPB3GTS_L $REPSCEN/repb3gts_l.$SRCABBR.$ESDATE.$NDAYS.$GRID.$BSCEN.rpt
setenv REPB3GTS_S $REPSCEN/repb3gts_s.$SRCABBR.$ESDATE.$NDAYS.$GRID.$BSCEN.rpt
else
source $ASSIGNS/setmerge_files.scr # Define merging output file names
endif
# Make directory for executables
setenv SMK_BIN "$SMKROOT/$BIN"
if( ! -e $SMK_BIN ) mkdir -p $SMK_BIN
# Create and change permissions for output directories
$ASSIGNS/smk_mkdir
if ( $status > 0 ) then
set outstat = 1
endif
#
# Delete appropriate NetCDF files for the programs that are being run
if ( -e $ASSIGNS/smk_rmfiles.scr ) then
$ASSIGNS/smk_rmfiles.scr
else
echo "NOTE: missing smk_rmfiles.scr in ASSIGNS directory for"
echo " automatic removal of SMOKE I/O API intermediate and"
echo " output files"
endif
#
# Unset temporary environment variables
source $ASSIGNS/unset.scr
if ( $outstat == 1 ) then
echo "ERROR: Problem found while setting up SMOKE."
echo " See messages above."
exit( 1 )
endif
#profileID,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24
ENERGY,0.032916667,0.03,0.03,0.029583333,0.030833333,0.033333333,0.038333333,0.045,0.049583333,0.050833333,0.050416667,0.050416667,0.04875,0.047916667,0.0475,0.047083333,0.045833333,0.044583333,0.043333333,0.0425,0.0425,0.042083333,0.04,0.036666667
POINT,0.03125,0.03125,0.0325,0.034166667,0.036666667,0.039583333,0.0425,0.045416667,0.048333333,0.050833333,0.053333333,0.054166667,0.050833333,0.051666667,0.052083333,0.048333333,0.045,0.042083333,0.039583333,0.0375,0.035416667,0.03375,0.0325,0.03125
AREA,0.016393443,0.016393443,0.016393443,0.016393443,0.016393443,0.020491803,0.049180328,0.06147541,0.06557377,0.06557377,0.057377049,0.049180328,0.045081967,0.045081967,0.040983607,0.040983607,0.040983607,0.045081967,0.057377049,0.06147541,0.057377049,0.057377049,0.040983607,0.016393443
MOBILE,0.007916667,0.00375,0.0025,0.002083333,0.00375,0.009166667,0.035833333,0.076666667,0.0775,0.05875,0.051666667,0.05,0.055,0.06,0.060416667,0.06625,0.084583333,0.086666667,0.062916667,0.044166667,0.030833333,0.025833333,0.025416667,0.018333333
SHIPS,0.024948025,0.024948025,0.024948025,0.024948025,0.024948025,0.027027027,0.031185031,0.037422037,0.045738046,0.051975052,0.06029106,0.066528067,0.074844075,0.072765073,0.070686071,0.064449064,0.056133056,0.045738046,0.037422037,0.031185031,0.027027027,0.024948025,0.024948025,0.024948025
FIRE,0.04167,0.04167,0.04167,0.04167,0.04167,0.04167,0.04167,0.04167,0.04167,0.04167,0.04167,0.04167,0.04167,0.04167,0.04167,0.04167,0.04166,0.04166,0.04166,0.04166,0.04166,0.04166,0.04166,0.04166
BIOGENIC,0.021632126,0.020012453,0.018569009,0.017399009,0.016908449,0.015638883,0.015309532,0.015117717,0.014277079,0.014102827,0.013907465,0.013955697,0.0149743,0.025634005,0.050128673,0.075822032,0.09305218,0.105651113,0.108987669,0.107436505,0.096132177,0.078718087,0.024339379,0.022293634
#profileID,jan,feb,mar,apr,may,jun,jul,aug sep,oct,nov,dec,total
BIOGENIC,0,0,0,0,0,0,1.0,0,0,0,0,0,1.0
#profileID,Monday,Tuesday,Wednesday,Thursday,Friday Saturday,Sunday
ENERGY,0.151428571,0.151428571,0.151428571,0.151428571,0.151428571,0.121428571,0.121428571
POINT,0.154285714,0.154285714,0.154285714,0.154285714,0.154285714,0.114285714,0.114285714
AREA,0.154285714,0.154285714,0.154285714,0.154285714,0.154285714,0.114285714,0.114285714
MOBILE,0.145714286,0.151428571,0.154285714,0.157142857,0.162857143,0.115714286,0.112857143
SHIPS,0.142857143,0.142857143,0.142857143,0.142857143,0.142857143,0.142857143,0.142857143
FIRE,0.142857143,0.142857143,0.142857143,0.142857143,0.142857143,0.142857143,0.142857143
BIOGENIC,0.142857143,0.142857143,0.142857143,0.142857143,0.142857143,0.142857143,0.142857143
#!/bin/csh -f
#
# Version @(#)$Id$
# Path $Source$
# Date $Date$
#
# This script sets up needed environment variables for processing area source
# emissions in SMOKE and calls the scripts that run the SMOKE programs.
#
# Script created by : M. Houyoux, CEP Environmental Modeling Center
#
#*********************************************************************
## Set optional customized SMKMERGE output file names
## setenv SMKMERGE_CUSTOM_OUTPUT N # Y define your own output file names from SMKMERGE
setenv SMK_HOME /home/everdaniel/4.8.1/
setenv SMKROOT /home/everdaniel/4.8.1/subsys/smoke
## Set Assigns file name
setenv ASSIGNS_FILE $SMKROOT/assigns/ASSIGNS.biogenicas.201907
## Set source category
setenv SMK_SOURCE A # source category to process
setenv MRG_SOURCE A # source category to merge
## Set programs to run...
## Time-independent programs
#setenv RUN_CNTLMAT N # run control and growth matrix program
setenv RUN_SMKINVEN Y # run inventory import program
setenv RUN_SPCMAT Y # run speciation matrix program
setenv RUN_GRDMAT Y # run gridding matrix program
## Time-dependent programs
setenv RUN_TEMPORAL Y # run temporal allocation program
setenv RUN_SMKMERGE N # run merge program
## Quality assurance
setenv RUN_SMKREPORT N # run emissions reporting program
## Program-specific controls...
## For Smkinven
setenv IMPORT_GRDNETCDF_YN Y # Y import EDGAR gridded inventories
setenv NETCDF_POL_UNIT 'kg m-2 s-1' # define the unit of EDGAR variables
setenv NETCDF_INV_YEAR 2019 # define the year of EDGAR inventories
setenv FILL_ANNUAL N # Y fills annual data with average-day data
setenv IMPORT_GRDIOAPI_YN N # Y imports gridded I/O API NetCDF inventory data
setenv RAW_DUP_CHECK N # Y checks for duplicate records
setenv SMK_BASEYR_OVERRIDE 0 # year to override the base year of the inventory
setenv SMK_DEFAULT_TZONE 4 # default time zone for sources not in the COSTCY file
setenv SMK_NHAPEXCLUDE_YN N # Y uses NHAPEXCLUDE file when integrating toxic sources
#setenv SMKINVEN_FORMULA "PMC=PM10-PM2_5" # formula for computing emissions value
setenv SMKINVEN_FORMULA "" # formula for computing emissions value
setenv WEST_HSPHERE Y # Y converts longitudes to negative values
setenv WKDAY_NORMALIZE Y # Y treats average-day emissions as weekday only
setenv WRITE_ANN_ZERO N # Y writes zero emission values to intermediate inventory
setenv ALLOW_NEGATIVE N # Y allow negative output emission data
# INVNAME1 set by make_invdir.csh script
# INVNAME2 set by make_invdir.csh scripts
# OUTZONE see "Multiple-program controls" below
# SMK_MAXERROR see "Multiple-program controls" below
# SMK_MAXWARNING see "Multiple-program controls" below
# SMK_TMPDIR set by assigns/set_dirs.scr script
## For Grdmat
# IOAPI_ISPH set by Assigns file
# REPORT_DEFAULTS see "Multiple-program controls" below
## For Spcmat
setenv POLLUTANT_CONVERSION Y # Y uses the GSCNV pollutant conversion file
# REPORT_DEFAULTS see "Multiple-program controls" below
## For Temporal
setenv RENORM_TPROF Y # Y normalizes the temporal profiles
setenv UNIFORM_TPROF_YN N # Y uses uniform temporal profiles for all sources
setenv ZONE4WM Y # Y applies temporal profiles using time zones
# OUTZONE see "Multiple-program controls" below
# REPORT_DEFAULTS see "Multiple-program controls" below
# SMK_AVEDAY_YN see "Multiple-program controls" below
# SMK_MAXERROR see "Multiple-program controls" below
# SMK_MAXWARNING see "Multiple-program controls" below
## For Smkmerge
setenv MRG_SPCMAT_YN Y # Y produces speciated output
setenv MRG_TEMPORAL_YN Y # Y produces temporally allocated output
setenv MRG_GRDOUT_YN Y # Y produces a gridded output file
setenv MRG_REPCNY_YN Y # Y produces a report of emission totals by county
setenv MRG_REPSTA_YN Y # Y produces a report of emission totals by state
setenv MRG_GRDOUT_UNIT moles/s # units for the gridded output file
setenv MRG_TOTOUT_UNIT moles/day # units for the state and county reports
setenv SMK_REPORT_TIME 230000 # hour for reporting daily emissions
# SMK_AVEDAY_YN see "Multiple-program controls" below
## For Smkreport
setenv REPORT_ZERO_VALUES N # Y outputs entries with all zero values
## Multiple-program controls
setenv USE_EXP_GEO_CODES Y # use geographical code instead of COSTCY file
setenv DAY_SPECIFIC_YN N # process daily invenotry
setenv HOUR_SPECIFIC_YN N # process daily invenotry
setenv OUTZONE 0 # time zone of output emissions
setenv REPORT_DEFAULTS N # Y reports sources that use default cross-reference
setenv SMK_AVEDAY_YN N # Y uses average-day emissions instead of annual emissions
setenv SMK_MAXERROR 100 # maximum number of error messages in log file
setenv SMK_MAXWARNING 100 # maximum number of warning messages in log file
## Script settings
setenv SRCABBR edgar # abbreviation for naming log files
setenv QA_TYPE all # all # type of QA to perform [none, all, part1, part2, or custom]
setenv PROMPTFLAG N # Y prompts for user input
setenv AUTO_DELETE Y # Y automatically deletes I/O API NetCDF output files
setenv AUTO_DELETE_LOG Y # Y automatically deletes log files
setenv DEBUGMODE N # Y runs program in debugger
setenv DEBUG_EXE pgdbg # debugger to use when DEBUGMODE = Y
## Assigns file override settings
# setenv SPC_OVERRIDE cmaq.cb4p25 # chemical mechanism override
# setenv YEAR_OVERRIDE # base year override
# setenv INVTABLE_OVERRIDE # inventory table override
##############################################################################
## Run Smkinven, Spcmat, and Grdmat
#
setenv RUN_PART1 Y
source $ASSIGNS_FILE # Invoke Assigns file
# Reset NHAPEXCLUDE file to exclude all sources
# This is needed for now because the stationary area criteria and non-point
# toxics inventories are not consistent and should not be integrated.
setenv NHAPEXCLUDE $INVDIR/other/nhapexclude.all.txt
source smk_run.csh # Run programs
source qa_run.csh # Run QA for part 1
setenv RUN_PART1 N
## Loop through days to run Temporal and Smkmerge
#
setenv RUN_PART2 Y
setenv RUN_PART4 Y
set cnt = 0
set g_stdate_sav = $G_STDATE
while ( $cnt < $EPI_NDAY )
@ cnt = $cnt + $NDAYS
source $ASSIGNS_FILE # Invoke Assigns file to set new dates
source smk_run.csh # Run programs
source qa_run.csh # Run QA for part 2
setenv G_STDATE_ADVANCE $cnt
end
setenv RUN_PART2 N
setenv RUN_PART4 N
unsetenv G_STDATE_ADVANCE
#
## Ending of script
#
exit( 0 )
This program uses the EPA-AREAL/MCNC-EnvPgms/BAMS Models-3
I/O Applications Programming Interface, [I/O API] which is
built on top of the netCDF I/O library (Copyright 1993, 1996
University Corporation for Atmospheric Research/Unidata
Program) and the PVM parallel-programming library (from
Oak Ridge National Laboratory).
Copyright (C) 1992-2002 MCNC,
(C) 1992-2018 Carlie J. Coats, Jr.,
(C) 2003-2012 Baron Advanced Meteorological Systems, LLC, and
(C) 2014-2020 UNC Institute for the Environment.
Released under the GNU LGPL License, version 2.1. See URL
https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
for conditions of use.
ioapi-3.2: $Id: init3.F90 185 2020-08-28 16:49:45Z coats $
Version with PARMS3.EXT/PARAMETER::MXVARS3= 2048
netCDF version 4.4.1.1 of Apr 13 2017 12:41:52 $
Missing environment variable EXECUTION_ID
SMOKE ---------------
Copyright (c)2004 Environmental Modeling for Policy Development
All rights reserved
Program TEMPORAL, Version SMOKEv4.8.1_Jan2021
Online documentation
http://www.cep.unc.edu/empd/products/smoke
Program TEMPORAL to take a SMOKE area, mobile, or point
source inventory file, a temporal profiles file, a temporal
cross-reference file, an optional SMOKE day-specific file,
and an optional SMOKE hour-specific point source file, and
produce hourly low-level and optionally hourly elevated point
source emissions for the requested episode.
You will need to enter the logical names for the input and
output files (and to have set them prior to program start,
using "setenv <logicalname> <pathname>").
You may use END_OF-FILE (control-D) to quit the program
during logical-name entry. Default responses are given in
brackets [LIKE THIS] and can be accepted by hitting the
<RETURN> key.
Value for PROMPTFLAG: N returning FALSE
Returning default value TRUE for query:
"Continue with program?"
Value for OUTZONE: 0
Value for OUTPUT_LOCAL_TIME not defined;returning default: FALSE
Value for UNIFORM_TPROF_YN: N returning FALSE
Value for SMK_SOURCE: 'A'
Value for SMK_SOURCE: 'A'
Value for DAY_SPECIFIC_YN: N returning FALSE
Value for HOUR_SPECIFIC_YN: N returning FALSE
Value for SMK_AVEDAY_YN: N returning FALSE
Value for PROMPTFLAG: N returning FALSE
File "AREA" opened for input on unit: 98
/home/everdaniel/4.8.1//data/inventory/BIOGENICA/area.map.edgar.BIOGENICA.txt
Value for AREA: '/home/everdaniel/4.8.1//data/inventory/BIOGENICA/area.map.edgar.BIOGENICA.txt'
Value for AREA: '/home/everdaniel/4.8.1//data/inventory/BIOGENICA/area.map.edgar.BIOGENICA.txt'
File "ASRC" opened for input on unit: 97
/home/everdaniel/4.8.1//data/inventory/BIOGENICA/edgarsrc.BIOGENICA.txt
Value for IOAPI_CHECK_HEADERS not defined;returning default: FALSE
"AREA" opened as OLD:READ-ONLY
File name "/home/everdaniel/4.8.1//data/inventory/BIOGENICA/edgar.BIOGENICA.ncf"
File type GRDDED3
Execution ID "????????????????"
Grid name ""
Dimensions: 6480000 rows, 1 cols, 1 lays, 4 vbles
NetCDF ID: 65536 opened as READONLY
Time-independent data.
"TMP_POL_FILE" opened as OLD:READ-ONLY
File name "/home/everdaniel/4.8.1//data/inventory/BIOGENICA/edgar.BIOGENICA_dat/CO.ncf"
File type GRDDED3
Execution ID "????????????????"
Grid name ""
Dimensions: 15908 rows, 1 cols, 1 lays, 7 vbles
NetCDF ID: 131072 opened as READONLY
Time-independent data.
Closing file TMP_POL_FILE
Value for PROCDATES not defined; returning defaultval ': ' '
Value for PROCDATES not defined; returning defaultval ': ' '
"TMP_POL_FILE" opened as OLD:READ-ONLY
File name "/home/everdaniel/4.8.1//data/inventory/BIOGENICA/edgar.BIOGENICA_dat/CO.ncf"
File type GRDDED3
Execution ID "????????????????"
Grid name ""
Dimensions: 15908 rows, 1 cols, 1 lays, 7 vbles
NetCDF ID: 131072 opened as READONLY
Time-independent data.
Closing file TMP_POL_FILE
Value for USE_EXP_GEO_CODES: Y returning TRUE
File "HOLIDAYS" opened for input on unit: 96
/home/everdaniel/4.8.1//data/ge_dat/holidays.txt
Reading source data from inventory file...
Generating unique lists from inventory data...
Value for SMK_DEFAULT_TZONE: 4
Reading geographic region names and time zones...
File "GEOCODE_LEVEL1" opened for input on unit: 95
/home/everdaniel/4.8.1//data/ge_dat/EDGAR/geocode1_edgar.txt
File "GEOCODE_LEVEL2" opened for input on unit: 95
/home/everdaniel/4.8.1//data/ge_dat/EDGAR/geocode2_edgar.txt
File "GEOCODE_LEVEL3" opened for input on unit: 95
/home/everdaniel/4.8.1//data/ge_dat/EDGAR/geocode3_edgar.txt
File "GEOCODE_LEVEL4" opened for input on unit: 95
/home/everdaniel/4.8.1//data/ge_dat/EDGAR/geocode4_edgar.txt
Value for G_STDATE: 2019182
Value for G_STTIME: 0
Value for G_TSTEP: 10000
Value for G_RUNLEN: 7440000
Value for PROMPTFLAG: N returning FALSE
Using default 2019182
Using date 2019182
Using default 0
Using default 744
Output Time Zone: 00
Start Date: July 1, 2019
Start Time: 000000 HHMMSS
Time Step: 001 hour
Duration: 744 hours
Processing temporal XREFS and PROFs for AREA
Value for SMK_MAXWARNING: 100
Reading temporal cross-reference file...
File "ATREF" opened for input on unit: 95
/home/everdaniel/4.8.1/data/inventory/biogenicas/atref_EMERGENTE.txt
PROCTPRO: TREF type "MONTH-of-YEAR " active reference count= 1
PROCTPRO: TREF type "DAY-of-WEEK " active reference count= 1
PROCTPRO: TREF type "DAY-of-MONTH " active reference count= 0
PROCTPRO: TREF type "MONDAY " active reference count= 1
PROCTPRO: TREF type "TUESDAY " active reference count= 1
PROCTPRO: TREF type "WEDNESDAY " active reference count= 1
PROCTPRO: TREF type "THURSDAY " active reference count= 1
PROCTPRO: TREF type "FRIDAY " active reference count= 1
PROCTPRO: TREF type "SATURDAY " active reference count= 1
PROCTPRO: TREF type "SUNDAY " active reference count= 1
PROCTPRO: TREF type "MET-BASED " active reference count= 0
File "ATPRO_MONTHLY" opened for input on unit: 94
/home/everdaniel/4.8.1/data/inventory/biogenicas/atpro_EMERGENTE_monthly.txt
PROCTPRO/CSVPROF : file "ATPRO_MONTHLY" processed: 1 active data-rows 12 fields
File "ATPRO_WEEKLY" opened for input on unit: 94
/home/everdaniel/4.8.1/data/inventory/biogenicas/atpro_EMERGENTE_weekly.txt
PROCTPRO/CSVPROF : file "ATPRO_WEEKLY" processed: 1 active data-rows 7 fields
File "ATPRO_HOURLY" opened for input on unit: 94
/home/everdaniel/4.8.1/data/inventory/biogenicas/atpro_EMERGENTE_hourly.txt
PROCTPRO/CSVPROF : file "ATPRO_HOURLY" processed: 1 active data-rows 24 fields
Value for RENORM_TPROF: Y returning TRUE
Value for FULLSCC_ONLY not defined;returning default: FALSE
Value for SMK_MAXERROR: 100
Assigning temporal profiles to sources...
Processing 1 pollutant groups of size 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment