HAZARDOUS_AIR_POLLUTANTS - 15 Sep 2005 Four mechanisms for gas chemistry have been added to simulate the atmospheric fate and transport of several Hazardous Air Pollutants (HAPs). They modify either the CB-IV (Gery et. al. 1989, and Gipson and Young 1999) or the SAPRC-99 (Carter 2000a) mechanisms. New mechanisms have the base names, CB4TX1P and SAPRC99TX2P. Mechanisms with the same base name differ by including aerosols or not including aerosols. All new mechanisms include aqueous chemistry. These four mechanisms have twenty-four or twenty-five new species (see Tables 1 and 2). A maximum of seven reactions were added to the original mechanism shown in the mech.def file. For CB4TX1P mechanisms, two species separate original species representing formaldehyde-like and acetaldehyde-like compounds into explicit and surrogate representations. Surrogates lump Volatile Organic Compounds that are heavier aldehydes or have aldehyde-like properties. For SAPRC99TX2P mechanisms, this change was made only for acetaldehyde because the original SAPRC-99 explicitly represents formaldehyde. Two other species represent 1,3-butadiene and acrolein. They add reactions for the loss of 1,3-butadiene and the loss and production of acrolein. These reactions were based on Liu et. al (1999) and Grosjean et. al (1994) for CB4TX1P and based on Carter (2000b) for SAPRCTX2P. Three of the seven species are reactive tracers for formaldehyde, acetaldehyde, and acrolein emissions. Remaining new species do not add reactions to the mechanism and cannot affect radical, ozone and aerosol concentrations but do undergo losses from atmospheric chemistry. Their losses are exponential based on photochemical rate constants and concentrations determined after integrating over time the reactions shown in the mech.def file. Solvers for gas chemistry include SMV Gear, Rosenbrach and EBI. Separate EBI solvers exist for the CB4TX1P and SAPRC99TX2P mechanisms. Within each solver, four subroutines and a FORTRAN90 module (Table 3) accomplish the exponential losses mentioned above. The rate constants were obtained from the NIST and IUPAC databases. Rate constants can describe several types of reactions: unimolecular, bimolecular, termolecular and photolysis. In addition to their photochemistry, new species undergo transport and deposition. All are removed through wet deposition based on the precipitation rate and their Henry's Law constant. All representations of formaldehyde and acetaldehyde undergo dry deposition. Remaining new species have zero dry deposition velocities based on analogies to similar hydrocarbon species and their volatilities. Building CCTM with the new mechanisms uses different build script options than standard versions of CCTM. Attachment "A" shows a build script that can construct versions of CCTM with the new mechanism with approriate EBI solvers. The smvgear and ros3 options for the chem module work with all of the CB4TX1P and SAPRCTX2P mechanisms. NOTE THAT THE SAPRC99TX2P_AE3_AQ MECHANISM HAS MORE THAN 120 SPECIES AND EXCEEDS THE STANDARD MAXIMUM NUMBER OF FILE VARIABLES FOR THE IOAPI AND PARIO LIBRARIES. THE LIBRARIES MUST BE RECOMPILED WITH THE MXVARS3 PARAMETER SET TO AT LEAST 131. To run these CCTM versions, the user should consider the following. Emissions files must contain rates that are listed in the GC_EMIS.EXT, NR_EMIS.EXT and AE_EMIS.EXT files. The files contain emissions not identical to the original CB4 and SAPRC99 mechanisms. A user must complete SMOKE processing with correct ancillary files and the merged NEI/Toxics database. To obtain these items contact the CMAS Help desk at www.cmascenter.org/html/help.html. Initial and boundary condition files should be produced by ICON and BCON processors with the same mechanism as the CCTM. This point is especially valid when ICON and BCON use m3conc for the ModInpt option. If the simulation uses initial and boundary conditions based on profile files, building BCON and ICON need the ModMech option set to radm2_to_cb4 or radm2_to_saprc99 based on whether the original mechanism is CB-IV or SAPRC-99. Note that profile files do not contain data for the new species except for formaldehyde and acetaldehyde. JTABLE files need to be compatible to the original mechanism, .i.e., CB-IV or SAPRC-99. References Carter, W.P.L., 2000a. "Implementation of the SAPRC-99 Chemical Mechanism into the Models-3 Framework," Report to the United States Environmental Protection Agency, January 29. Available at http://www.cert.ucr.edu/~carter/absts.htm#s99mod3. Carter, W.P.L., 2000b. Documentation of the SAPRC 99 Chemical Mechanism for VOC Reactivity Assessment. Final Report to California Air Resources Board Contract No. 92 329, and 95 308. May, 2000. Available at http://pah.cert.ucr.edu/~carter/absts.htm#saprc99 Gery, M. W., G. Z. Whitten, J. P. Killus and M. C. Dodge (1989). A photochemical kinetics mechanism for urban and regional scale computer modeling. J. Geophys. Res. 94, 12,925-12,956. Gipson, G. L., and J. O. Young (1999). Science Algorithms in Models-3 Community Multi-scale Air Quality Modeling System (CMAQ), Byun, D. W and J. K. S. Ching (eds). EPA-600/R-99/030, US EPA, Research Triangle Park, 8- 1 to 8-99. Grosjean, E., E. L. Williams, D. Grosjean (1994) Atmospheric chemistry of acrolein. Sci. Tot. Environ., Vol. 153 (3), 195-202. Liu, X., H. E. Jeffries, K. G. Sexton (1999). Hydroxyl radical and ozone initiated photochemical reactions of 1,3-butadiene. Atmos. Environ., Vol. 33 (18), 3005-3022 Table 1 CB4TX1P New Species ============================================================================= Species Name Compound CAS# In mech.def file ============================================================================= FORM FORMALDEHYDE 50-00-0 Yes ALD2 ACETALDEHYDE 75-07-0 Yes ACROLEIN ACROLEIN 107-02-8 Yes BUTADIENE13 1,3-BUTADIENE 106-99-0 Yes FORM_PRIMARY FORMALDEHYDE emissions 50-00-0 Yes ALD2_PRIMARY ACETALDEHYDE emissions 75-07-0 Yes ACROLEIN_PRIMARY ACROLEIN emissions 107-02-8 Yes FORM_SUR Formaldehyde like Compounds None Yes ALD2_SUR Acetaldehyde like Compounds None Yes ACRYLONITRILE ACRYLONITRILE 107-13-1 No CARBONTET CARBON TETRACHLORIDE 56-23-5 No PROPDICHLORIDE PROPYLENE DICHLORIDE 78-87-5 No DICHLOROPROPENE 1,3-DICHLOROPROPENE 542-75-6 No CL4_ETHANE1122 1,1,2,2TETRACHLOROETHANE 79-34-5 No BENZENE BENZENE 71-43-2 No CHCL3 CHLOROFORM 67-66-3 No BR2_C2_12 1,2DIBROMOETHANE 106-93-4 No CL2_C2_12 1,2DICHLOROETHANE 107-06-2 No ETOX ETHYLENE OXIDE 75-21-8 No CL2_ME METHYLENE CHLORIDE 75-09-2 No CL4_ETHE PERCHLOROETHYLENE 127-18-4 No CL3_ETHE TRICHLOROETHYLENE 79-01-6 No CL_ETHE VINYL CHLORIDE 7501-4 No NAPHTHALENE NAPHTHALENE 91-20-3 No QUINOLINE QUINOLINE 91-22-5 No ============================================================================= Table 2 SAPRC99TX2P New Species ============================================================================= Species Name Compound CAS# In mech.def file ============================================================================= HCHO*see below FORMALDEHYDE 50-00-0 Yes CCHO ACETALDEHYDE 75-07-0 Yes ACROLEIN ACROLEIN 107-02-8 Yes BUTADIENE13 1,3-BUTADIENE 106-99-0 Yes FORM_PRIMARY FORMALDEHYDE emissions 50-00-0 Yes ALD2_PRIMARY ACETALDEHYDE emissions 75-07-0 Yes ACROLEIN_PRIMARY ACROLEIN emissions 107-02-8 Yes CCHO_SUR Glycoaldehyde 141-46-8 Yes ACRYLONITRILE ACRYLONITRILE 107-13-1 No CARBONTET CARBON TETRACHLORIDE 56-23-5 No PROPDICHLORIDE PROPYLENE DICHLORIDE 78-87-5 No DICHLOROPROPENE 1,3-DICHLOROPROPENE 542-75-6 No CL4_ETHANE1122 1,1,2,2TETRACHLOROETHANE 79-34-5 No BENZENE BENZENE 71-43-2 No CHCL3 CHLOROFORM 67-66-3 No BR2_C2_12 1,2DIBROMOETHANE 106-93-4 No CL2_C2_12 1,2DICHLOROETHANE 107-06-2 No ETOX ETHYLENE OXIDE 75-21-8 No CL2_ME METHYLENE CHLORIDE 75-09-2 No CL4_ETHE PERCHLOROETHYLENE 127-18-4 No CL3_ETHE TRICHLOROETHYLENE 79-01-6 No CL_ETHE VINYL CHLORIDE 7501-4 No NAPHTHALENE NAPHTHALENE 91-20-3 No QUINOLINE QUINOLINE 91-22-5 No ============================================================================= *Note that HCHO is an explicit species in the original SAPRC-99 and may not be considered a new species in SAPRCTX2P. Table 3 Files added to CHEM for exponential Decay =============================================================================== File Name Content Function =============================================================================== DEGRADE_TX_SETUP.F Module and Subroutine Defines and maps arrays degrade_data.F Subroutine Lists species and loss processes init_degrade.F Subroutine Calculates rates constants degrade.F Subroutine Computing changes from decay final_degrade.F Subroutine Returns results to CHEM driver =============================================================================== Attachment A. Example CCTM build script _______________________________________________________________________________________________ #! /bin/csh -f #> RCS file, release, date & time of last delta, author, state, [and locker] #> $Header: /project/work/rep/SCRIPTS/src/cctm/bldit.cctm.pgf,v 1.3 2005/09/09 13:53:15 sjr Exp $ #> what(1) key, module and SID; SCCS file; date and time of last delta: #> %W% %P% %G% %U% #setenv M3MODEL /project/air5/sjr/CMAS4.5/rel/models # code archive setenv M3LIB /project/air5/sjr/CMAS4.5/rel/lib # libraries setenv M3MODEL /project/work/rep if ( ! -e $M3MODEL || ! -e $M3LIB ) then echo " $M3MODEL or $M3LIB directory not found" exit 1 endif echo " Model archive path: $M3MODEL" echo " library path: $M3LIB" set BLD_OS = `uname -s` if ($BLD_OS != 'Linux') then echo " $BLD_OS -> wrong makit script for host!" exit 1 endif set echo #:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:# #> user choices: cvs archives set Project = $M3MODEL/CCTM set GlobInc = $M3MODEL/include/release #> user choices: base directory #set Base = /your_dir/you/working_dir set Base = $cwd set APPL = tx_ae_ebi set CFG = cfg.$APPL set MODEL = CCTM_$APPL #> user choices: m3bld command #set Opt = compile_all # force compile, even if object files are current #set Opt = clean_up # remove all source files upon successful completion #set Opt = no_compile # do everything except compile #set Opt = no_link # do everything except link #set Opt = one_step # compile and link in one step #set Opt = parse_only # checks config file syntax #set Opt = show_only # show requested commands but doesn't execute them set Opt = verbose # show requested commands as they are executed set MakeOpt # builds a Makefile to make the model #> user choices: single or multiple processors #set ParOpt # multiple PE's #> user choices: various modules set Revision = release # release = latest CVS revision #set Revision = '"CMAQv4_5"' #> NOTE: m3bld will try to compile with existing code; it will not retrieve #> new (different release) code. So if your "BLD" directory contains #> code from a release different than the one you have specified above, #> m3bld will tell you, but will merrily compile the original code. #> The workaround is to remove your "BLD" directory and start fresh. #set ModDriver = ( module ctm $Revision; ) set ModDriver = ( module ctm_yamo $Revision; ) if ( $?ParOpt ) then set ModPar = ( module par $Revision; ) else set ModPar = ( module par_noop $Revision; ) endif #set ModInit = ( module init $Revision; ) set ModInit = ( module init_yamo $Revision; ) #set ModAdjc = ( module adjcon_noop $Revision; ) #set ModAdjc = ( module denrate $Revision; ) set ModAdjc = ( // yamo option does not need denrate ) set ModCpl = ( module gencoor $Revision; ) #set ModHadv = ( module hadv_noop $Revision; ) #set ModHadv = ( module hppm $Revision; ) set ModHadv = ( module hyamo $Revision; ) #set ModVadv = ( module vadv_noop $Revision; ) #set ModVadv = ( module vppm $Revision; ) set ModVadv = ( module vyamo $Revision; ) #set ModHdiff = ( module hdiff_noop $Revision; ) set ModHdiff = ( module multiscale $Revision; ) #set ModVdiff = ( module vdiff_noop $Revision; ) set ModVdiff = ( module eddy $Revision; ) #set ModVdiff = ( module acm $Revision; ) #set ModPhot = ( module phot_noop $Revision; ) set ModPhot = ( module phot $Revision; ) set ModPing = ( module ping_noop $Revision; ) #set ModPing = ( module ping_smvgear $Revision; ) #set ModChem = ( module chem_noop $Revision; ) # set ModChem = ( module smvgear $Revision; ) #set ModChem = ( module ros3 $Revision; ) #set ModChem = ( module ebi_cb4 $Revision; ) #set ModChem = ( module ebi_saprc99 $Revision; ) # EBI solvers for TX mechanisms #set ModChem = ( module ebi_cb4tx1p $Revision; ) set ModChem = ( module ebi_saprc99tx2p $Revision; ) #set ModAero = ( module aero_noop $Revision; ) set ModAero = ( module aero3 $Revision; ) # no aero4 versions of TX mechanisms #set ModAero = ( module aero4 $Revision; ) #set ModAdepv = ( module aero_depv_noop $Revision; ) set ModAdepv = ( module aero_depv2 $Revision; ) #set ModCloud = ( module cloud_noop $Revision; ) #set ModCloud = ( module cloud_radm $Revision; ) set ModCloud = ( module cloud_acm $Revision; ) set ModPa = ( module pa $Revision; ) set ModUtil = ( module util $Revision; ) #set ModMisc = ( misc; \ # $Base/file1.F \ # $Base/file2.F \ # $Base/file3.F ) #> user choices: emissions processing in chem or vdiff (default) ... #set Cemis #> user choices: mechanism #set Mechanism = cb4_ae3_aq #set Mechanism = cb4_ae4_aq #set Mechanism = saprc99_ae3_aq #set Mechanism = saprc99_ae4_aq # possible TX mechanisms #set Mechanism = cb4tx1p_ae3_aq # aerosols and aqueous chemistry #set Mechanism = cb4tx1p_aq # aqueous chemistry only set Mechanism = saprc99tx2p_ae3_aq # aerosols and aqueous chemistry #set Mechanism = saprc99tx2p_aq # aqueous chemistry only set Tracer = trac0 # default: no tracer species #> user choices: set process analysis linkages set PABase = $GlobInc set PAOpt = pa_noop #set PABase = /project/cmaq/yoj/saprc #set PAOpt = #> other user choices set below are: #> name of the "BLD" directory #> compiler/link flags #> library paths #:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:# set Bld = $Base/BLD_${APPL} #unset echo if ( ! -e "$Bld" ) then mkdir $Bld else if ( ! -d "$Bld" ) then echo " *** target exists, but not a directory ***" exit 1 endif endif #set echo cd $Bld #:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:#:# set STENEX = ${M3LIB}/stenex/${BLD_OS} set MODLOC = ${Base}/MOD_DIR if ( ! -d "$MODLOC" ) mkdir -p $MODLOC if ( $?ParOpt ) then # set Mpich = /usr/local/mpich-1.2.4 # compiled for ch_shmem set Mpich = /share/linux/bin/mpich-ch_p4 # compiled for ch_p4 set seL = se_snl cp -p ${STENEX}/*.mod $MODLOC # set LIB2 = "-L${M3LIB}/pario/${BLD_OS} -lpario" # change PARIO to work with all TX mechanisms set LIB2 = "-L/home/hutzellb/cmaq_toxics/tools/pario_v4.5/Linux -lpario" set LIB3 = set LIB4 = "-L${Mpich}/lib -lmpich" set Str1 = (// Parallel / Include message passing definitions) set Str2 = (include SUBST_MPICH ${Mpich}/include/mpif.h;) else set Mpich = set seL = sef90_noop cp -p ${STENEX}/noop_*.mod $MODLOC set LIB2 = set LIB3 = set LIB4 = set Str1 = set Str2 = endif set LIB1 = "-L${STENEX} -l${seL}" #set LIB5 = "-L${M3LIB}/ioapi_3/${BLD_OS}2_x86pg -lioapi" # change IOAPI to work with all TX mechanisms set LIB5 = "-L/home/hutzellb/cmaq_toxics/tools/ioapi-3.0/ioapi_540_vars/pg -lioapi" set LIB6 = "-L${M3LIB}/netCDF/${BLD_OS} -lnetcdf" set LIBS = "$LIB1 $LIB2 $LIB3 $LIB4 $LIB5 $LIB6" #set FC = /usr/pgi/linux86/bin/pgf90 set FC = /share/linux/pgi/linux86/5.0/bin/pgf90 set FP = $FC set FSTD = "-Mfixed -Mextend" set F_FLAGS = "${FSTD} -O2 -module ${MODLOC} -I." set CPP_FLAGS = "" set C_FLAGS = "-v -O2 -I${Mpich}/include" set LINK_FLAGS = "-Bstatic" set Blder = $M3LIB/build/$BLD_OS/m3bld set ICL_PAR = $GlobInc set ICL_CONST = $GlobInc set ICL_FILES = $GlobInc set ICL_EMCTL = $GlobInc # set ICL_IOAPI = ${M3LIB}/ioapi_3/fixed_src # change IOAPI include files to work with all TX mechanisms set ICL_IOAPI = /home/hutzellb/cmaq_toxics/tools/ioapi-3.0/ioapi_540_vars/fixed_src set ICL_MECH = $GlobInc/$Mechanism set ICL_TRAC = $GlobInc/$Tracer set ICL_PA = $PABase/$PAOpt if ( $?Cemis ) then set CV = -Demis_chem else set CV = endif #> NOTE: To run parallel in a Scyld Beowulf cluster, e.g., remove the #> "-Dcluster\" below. if ( $?ParOpt ) then # split to avoid line > 256 char set PAR = ( -Dparallel\ -Dcluster\ -DINTERPB=PINTERPB\ -DM3ERR=PM3ERR\ -DM3EXIT=PM3EXIT\ -DM3WARN=PM3WARN\ -DSHUT3=PSHUT3\ -DWRITE3=PWRITE3 ) set Popt = SE else echo " Not Parallel; set Serial (no-op) flags" set PAR = "-DINTERPB=INTERP3" set Popt = NOOP endif set STX1 = ( -DSUBST_MODULES=${Popt}_MODULES\ -DSUBST_BARRIER=${Popt}_BARRIER ) set STX2 = ( -DSUBST_GLOBAL_MAX=${Popt}_GLOBAL_MAX\ -DSUBST_GLOBAL_MIN=${Popt}_GLOBAL_MIN\ -DSUBST_GLOBAL_MIN_DATA=${Popt}_GLOBAL_MIN_DATA\ -DSUBST_GLOBAL_TO_LOCAL_COORD=${Popt}_GLOBAL_TO_LOCAL_COORD\ -DSUBST_GLOBAL_SUM=${Popt}_GLOBAL_SUM\ -DSUBST_GLOBAL_LOGICAL=${Popt}_GLOBAL_LOGICAL\ -DSUBST_LOOP_INDEX=${Popt}_LOOP_INDEX\ -DSUBST_SUBGRID_INDEX=${Popt}_SUBGRID_INDEX ) set STX3 = ( -DSUBST_HI_LO_BND_PE=${Popt}_HI_LO_BND_PE\ -DSUBST_SUM_CHK=${Popt}_SUM_CHK\ -DSUBST_INIT_ARRAY=${Popt}_INIT_ARRAY\ -DSUBST_COMM=${Popt}_COMM\ -DSUBST_MY_REGION=${Popt}_MY_REGION\ -DSUBST_SLICE=${Popt}_SLICE\ -DSUBST_GATHER=${Popt}_GATHER\ -DSUBST_DATA_COPY=${Popt}_DATA_COPY\ -DSUBST_IN_SYN=${Popt}_IN_SYN ) setenv CVSROOT $Project #> make the config file set Cfile = ${CFG}.bld set quote = '"' echo > $Cfile echo "model $MODEL;" >> $Cfile echo >> $Cfile echo "FPP $FP;" >> $Cfile echo >> $Cfile set text = "$quote$CPP_FLAGS $CV $PAR $STX1 $STX2 $STX3$quote;" echo "cpp_flags $text" >> $Cfile echo >> $Cfile echo "f_compiler $FC;" >> $Cfile echo >> $Cfile echo "f_flags $quote$F_FLAGS$quote;" >> $Cfile echo >> $Cfile echo "c_flags $quote$C_FLAGS$quote;" >> $Cfile echo >> $Cfile echo "link_flags $quote$LINK_FLAGS$quote;" >> $Cfile echo >> $Cfile echo "libraries $quote$LIBS$quote;" >> $Cfile echo >> $Cfile echo "global $Opt;" >> $Cfile echo >> $Cfile set text="// mechanism and tracer:" echo "$text ${Mechanism}, ${Tracer}" >> $Cfile echo "// project archive: ${Project}" >> $Cfile echo >> $Cfile echo "include SUBST_PE_COMM $ICL_PAR/PE_COMM.EXT;" >> $Cfile echo "include SUBST_CONST $ICL_CONST/CONST.EXT;" >> $Cfile echo "include SUBST_FILES_ID $ICL_FILES/FILES_CTM.EXT;" >> $Cfile echo "include SUBST_EMPR_VD $ICL_EMCTL/EMISPRM.vdif.EXT;" >> $Cfile echo "include SUBST_EMPR_CH $ICL_EMCTL/EMISPRM.chem.EXT;" >> $Cfile echo "include SUBST_IOPARMS $ICL_IOAPI/PARMS3.EXT;" >> $Cfile echo "include SUBST_IOFDESC $ICL_IOAPI/FDESC3.EXT;" >> $Cfile echo "include SUBST_IODECL $ICL_IOAPI/IODECL3.EXT;" >> $Cfile echo "include SUBST_RXCMMN $ICL_MECH/RXCM.EXT;" >> $Cfile echo "include SUBST_RXDATA $ICL_MECH/RXDT.EXT;" >> $Cfile echo "include SUBST_GC_SPC $ICL_MECH/GC_SPC.EXT;" >> $Cfile echo "include SUBST_GC_EMIS $ICL_MECH/GC_EMIS.EXT;" >> $Cfile echo "include SUBST_GC_ICBC $ICL_MECH/GC_ICBC.EXT;" >> $Cfile echo "include SUBST_GC_DIFF $ICL_MECH/GC_DIFF.EXT;" >> $Cfile echo "include SUBST_GC_DDEP $ICL_MECH/GC_DDEP.EXT;" >> $Cfile echo "include SUBST_GC_DEPV $ICL_MECH/GC_DEPV.EXT;" >> $Cfile echo "include SUBST_GC_ADV $ICL_MECH/GC_ADV.EXT;" >> $Cfile echo "include SUBST_GC_CONC $ICL_MECH/GC_CONC.EXT;" >> $Cfile echo "include SUBST_GC_G2AE $ICL_MECH/GC_G2AE.EXT;" >> $Cfile echo "include SUBST_GC_G2AQ $ICL_MECH/GC_G2AQ.EXT;" >> $Cfile echo "include SUBST_GC_SCAV $ICL_MECH/GC_SCAV.EXT;" >> $Cfile echo "include SUBST_GC_WDEP $ICL_MECH/GC_WDEP.EXT;" >> $Cfile echo "include SUBST_AE_SPC $ICL_MECH/AE_SPC.EXT;" >> $Cfile echo "include SUBST_AE_EMIS $ICL_MECH/AE_EMIS.EXT;" >> $Cfile echo "include SUBST_AE_ICBC $ICL_MECH/AE_ICBC.EXT;" >> $Cfile echo "include SUBST_AE_DIFF $ICL_MECH/AE_DIFF.EXT;" >> $Cfile echo "include SUBST_AE_DDEP $ICL_MECH/AE_DDEP.EXT;" >> $Cfile echo "include SUBST_AE_DEPV $ICL_MECH/AE_DEPV.EXT;" >> $Cfile echo "include SUBST_AE_ADV $ICL_MECH/AE_ADV.EXT;" >> $Cfile echo "include SUBST_AE_CONC $ICL_MECH/AE_CONC.EXT;" >> $Cfile echo "include SUBST_AE_A2AQ $ICL_MECH/AE_A2AQ.EXT;" >> $Cfile echo "include SUBST_AE_SCAV $ICL_MECH/AE_SCAV.EXT;" >> $Cfile echo "include SUBST_AE_WDEP $ICL_MECH/AE_WDEP.EXT;" >> $Cfile echo "include SUBST_NR_SPC $ICL_MECH/NR_SPC.EXT;" >> $Cfile echo "include SUBST_NR_EMIS $ICL_MECH/NR_EMIS.EXT;" >> $Cfile echo "include SUBST_NR_ICBC $ICL_MECH/NR_ICBC.EXT;" >> $Cfile echo "include SUBST_NR_DIFF $ICL_MECH/NR_DIFF.EXT;" >> $Cfile echo "include SUBST_NR_DDEP $ICL_MECH/NR_DDEP.EXT;" >> $Cfile echo "include SUBST_NR_DEPV $ICL_MECH/NR_DEPV.EXT;" >> $Cfile echo "include SUBST_NR_ADV $ICL_MECH/NR_ADV.EXT;" >> $Cfile echo "include SUBST_NR_N2AE $ICL_MECH/NR_N2AE.EXT;" >> $Cfile echo "include SUBST_NR_N2AQ $ICL_MECH/NR_N2AQ.EXT;" >> $Cfile echo "include SUBST_NR_SCAV $ICL_MECH/NR_SCAV.EXT;" >> $Cfile echo "include SUBST_NR_WDEP $ICL_MECH/NR_WDEP.EXT;" >> $Cfile echo "include SUBST_TR_SPC $ICL_TRAC/TR_SPC.EXT;" >> $Cfile echo "include SUBST_TR_EMIS $ICL_TRAC/TR_EMIS.EXT;" >> $Cfile echo "include SUBST_TR_ICBC $ICL_TRAC/TR_ICBC.EXT;" >> $Cfile echo "include SUBST_TR_DIFF $ICL_TRAC/TR_DIFF.EXT;" >> $Cfile echo "include SUBST_TR_DDEP $ICL_TRAC/TR_DDEP.EXT;" >> $Cfile echo "include SUBST_TR_DEPV $ICL_TRAC/TR_DEPV.EXT;" >> $Cfile echo "include SUBST_TR_ADV $ICL_TRAC/TR_ADV.EXT;" >> $Cfile echo "include SUBST_TR_T2AQ $ICL_TRAC/TR_T2AQ.EXT;" >> $Cfile echo "include SUBST_TR_SCAV $ICL_TRAC/TR_SCAV.EXT;" >> $Cfile echo "include SUBST_TR_WDEP $ICL_TRAC/TR_WDEP.EXT;" >> $Cfile echo >> $Cfile set text = "// Process Analysis / Integrated Reaction Rates processing" echo $text >> $Cfile #echo "include SUBST_PACTL_ID $ICL_PA/PA_CTL_no_irr.EXT;" >> $Cfile echo "include SUBST_PACTL_ID $ICL_PA/PA_CTL.EXT;" >> $Cfile echo "include SUBST_PACMN_ID $ICL_PA/PA_CMN.EXT;" >> $Cfile echo "include SUBST_PADAT_ID $ICL_PA/PA_DAT.EXT;" >> $Cfile echo >> $Cfile echo "$Str1" >> $Cfile echo "$Str2" >> $Cfile echo >> $Cfile echo "$ModDriver" >> $Cfile echo >> $Cfile echo "$ModPar" >> $Cfile echo >> $Cfile echo "$ModInit" >> $Cfile echo >> $Cfile set text = "denrate and adjcon_noop" echo "// options are" $text >> $Cfile echo "$ModAdjc" >> $Cfile echo >> $Cfile echo "$ModCpl" >> $Cfile echo >> $Cfile set text = "hbot, hppm and hadv_noop" echo "// options are" $text >> $Cfile echo "$ModHadv" >> $Cfile echo >> $Cfile set text = "vbot, vppm and vadv_noop" echo "// options are" $text >> $Cfile echo "$ModVadv" >> $Cfile echo >> $Cfile set text = "unif, multi_scale and hdiff_noop" echo "// options are" $text >> $Cfile echo "$ModHdiff" >> $Cfile echo >> $Cfile set text = "eddy and vdiff_noop" echo "// options are" $text >> $Cfile echo "$ModVdiff" >> $Cfile echo >> $Cfile set text = "phot and phot_noop" echo "// options are" $text >> $Cfile echo "$ModPhot" >> $Cfile echo >> $Cfile set text = "ping_qssa, ping_smvgear, ping_mebi_cb4_1 and ping_noop" echo "// options are" $text >> $Cfile echo "$ModPing" >> $Cfile echo >> $Cfile set text = "qssa, smvgear, mebi_cb4_1 and chem_noop" echo "// options are" $text >> $Cfile echo "$ModChem" >> $Cfile echo >> $Cfile set text = "aero1, aero2 and aero_noop" echo "// options are" $text >> $Cfile echo "$ModAero" >> $Cfile echo >> $Cfile set text = "aero_depv1, aero_depv2 and aero_depv_noop" echo "// options are" $text >> $Cfile echo "$ModAdepv" >> $Cfile echo >> $Cfile set text = "cloud_radm and cloud_noop" echo "// options are" $text >> $Cfile echo "$ModCloud" >> $Cfile echo >> $Cfile set text = "pa and pa_noop, which requires the" echo "// options are" $text "replacement of the three" >> $Cfile set text = "// global include files with their pa_noop counterparts" echo $text >> $Cfile echo "$ModPa" >> $Cfile echo >> $Cfile echo "$ModUtil" >> $Cfile echo >> $Cfile if ( $?ModMisc ) then echo "$ModMisc" >> $Cfile echo >> $Cfile endif #> make the makefile or the model executable if ( $?MakeOpt ) then $Blder -make $Cfile # $Cfile = ${CFG}.bld else set NoMake $Blder $Cfile endif if ( $status != 0 ) then echo " *** failure in $Blder ***" exit 1 endif if ( -e "$Base/${CFG}" ) then echo " >>> previous ${CFG} exists, re-naming to ${CFG}.old <<<" unalias mv mv $Base/${CFG} $Base/${CFG}.old endif cp ${CFG}.bld $Base/${CFG} if ( ( $Opt != no_compile ) && \ ( $Opt != no_link ) && \ ( $Opt != parse_only ) && \ ( $Opt != show_only ) && \ $?NoMake ) then mv $MODEL $Base endif exit ________________________________________________________________________________