
                        Model Change Bulletin

                                MCB#7                      02/29/2012

                        AERMOD (dated 12060)

This Model Change Bulletin (MCB) documents changes made to the AERMOD
Dispersion Model. A brief description of the changes is provided
below.  Additional details are available in the Fortran source code.
Changes to the user instructions associated with this update are
documented in an updated AERMOD User's Guide Addendum.


This revised version of AERMOD (dated 12060) includes the following
modifications relative to the previous version (dated 11353):

--  Bug Fixes:

    1.  Modified subroutine MAXDCONT_LOOP to correct problems with the
        MAXDCONT option for applications that vary emissions (EMISFACT), 
        background ozone data (O3VALUES), or background concentrations 
        (BACKGRND) with a day-of-week component, e.g., SHRDOW or SHRDOW7, 
        etc. Also modified subroutine MAXDCALC to correct the MAXDCONT 
        option for applications that include hourly emissions (HOUREMIS) 
        for at least one source, but not all sources. Both of these bugs 
        associated with the MAXDCONT option may have caused significant 
        errors in the source group contributions in the MAXDCONT output 
        file. 

        Subroutine MAXDCONT_LOOP was also modified to include checks on 
        the consistency between results in the SUMVAL_MAXD and SUMHNH 
        arrays for the "target" source group under the MAXDCONT option. 
        The SUMVAL_MAXD array values are recalulated during the MAXDCONT 
        processing, whereas the SUMHNH array values are calculated during 
        normal processing. Results in these two arrays should match for 
        the "target" source group. These consistency checks will serve
        to flag any potential problems with the MAXDCONT option.

    2.  Modified subroutine O3READ to correct a problem with the OLM and
        PVMRM options under the EVENT processing mode when only the 
        CO OZONEVAL keyword is used to specify a background ozone value,
        without an hourly ozone file through the CO OZONEFIL keyword or
        varying ozone values through the CO O3VALUES keyword.  Previous
        versions effectively assumed a background ozone value of 0 (zero)
        in these cases, resulting in underestimated source contributions 
        in the EVENT output file.

    3.  Modified subroutine LTOPG to use code from CTDMPLUS (also used
        in CALPUFF) for estimating PG class from Monin-Obukhov length 
        and surface roughness based on Golder (1972). The CTDMPLUS code
        more closely matches the PG-class curves in Figure 4 of the Golder 
        (1972) paper. The LTOPG routine is only used to determine the
        stability-dependent distance for transitioning to a virtual point 
        source approximiation for area sources under the FASTAREA
        or FASTALL options.
        
--  Enhancements:

    1.  Modified subroutines PRESET, SRCSIZ, and URBANS to allow for 
        the use of URBANSRC ALL on the SO pathway to indicate that 
        all sources are to be treated as URBAN sources. This option 
        assumes that only one (1) urban area has been defined using 
        the CO URBANOPT keyword.

    2.  Modified subroutines PRESET and MECARD and added subroutine 
        NUMYR to allow the user to specify the number of years of 
        meteorological data that are being processed for a particular 
        run.  The option is exercised with the new NUMYEARS keyword on 
        the ME pathway. The value specified on the NUMYEARS keyword 
        is used to allocate storage for the arrays that are used in 
        the MAXDCONT option, and allows the user to reduce the memory 
        storage requirements under the MAXDCONT option when less than 
        five (5) years of met data are being used. The default number 
        of years used for the MAXDCONT array allocation without the 
        NUMYEARS keyword is still 5 years (formerly specified by 
        the NYEARS PARAMETER).

--  Miscellaneous:

    1.  Modified subroutine ALLRESULT to eliminate the arrays of 
        profile met data (the observed data in the PROFFILE input) 
        by hour-of-year, level, and year for use with the MAXDCONT 
        option. The profile met data arrays are not needed for the 
        MAXDCONT option and their removal reduces the memory 
        requirements for that option. Additional adjustments to the
        array allocations for the MAXDCONT option were made based
        on the options used for a specific model run in order to 
        minimize the memory requirements for the MAXDCONT option.
        Subroutine ALLRESULT was also modified to improve the 
        accuracy of the memory storage estimates included on the
        first page of the AERMOD.OUT file.

    2.  Modified subroutine OUMAXD_CONT to include checks on the use 
        of a limited range of ranks (specified on the OU RECTABLE 
        keyword) with the THRESH option on the OU MAXDCONT keyword. 
        A fatal error message will be generated if the range of ranks 
        specified is less than or equal to the design value rank for 
        the specified pollutant plus 4, i.e., a fatal error will be 
        generated if the range of ranks is less than or equal to 8 
        for 1-hr SO2, or less than or equal to 12 for 1-hr NO2 or 
        24-hr PM2.5. A non-fatal warning message is also generated 
        if the range of ranks is less than or equal to the design 
        value rank plus 20, i.e., if the range of ranks is less than 
        or equal to 24 for 1-hr SO2, or less than or equal to 28 for 
        1-hr NO2 or 24-hr PM2.5.


                        *****************
                        *   IMPORTANT   *
                        *****************

This program will henceforth be identified by its name and a Julian date,
i.e.: AERMOD (dated 12060).  Future changes to this model will be identified
by an updated Julian date found at the beginning of the model source code
and followed by a reference to a SCRAM Model Change Bulletin (MCB#n)
which will explain the nature and content of the changes.  All Model Change
Bulletins for this program will always be available for back reference on
this website.  In the future, notification of changes (MCBs) to this program
will be made in the Recent Additions section of the SCRAM website.
