
                        Model Change Bulletin

                               MCB#4                      12/16/2013

                        AERMET (dated 13350)

This Model Change Bulletin (MCB) documents changes made to the AERMET 
Meteorological Preprocessor for the AERMOD Dispersion Model.  A brief 
description of the changes is provided below.  Additional details are 
also available through comments embedded in the Fortran source code. 
Changes to the user instructions associated with this update are 
documented in a separate AERMET User's Guide Addendum.

This revised version of AERMET (dated 13350) includes the following
modifications relative to the previous version (dated 12345):

-- Bug Fixes:                                                           

   1.  Modified subroutine UCALST to incorporate AECOM's recommended
       corrections to theta-star under the ADJ_U* Beta option, based
       on Qian and Venkatram (2011), that was incorporated in version
       12345 of AERMET. 

       Qian, W., and A. Venkatram, 2011: "Performance of Steady-State 
            Dispersion Models Under Low Wind-Speed Conditions", 
            Boundary Layer Meteorology, 138:475-491. 

   2.  Modified subroutine MPMET to correct assignment of time-zone
       adjustment (ZONE) to be based on the upper air time-zone (UALST) 
       for cases where both upper-air data and ONSITE mixing heights
       are available.

   3.  Modified subroutine SBLHT to correct the coefficient for 
       the mechanical mixing height from 2300 to 2400 based on 
       the original Venkatram reference (BLM, 2009).

   4.  Modified subroutine MPPBL to correct the initialization of
       the NO_SKY variable for missing on-site cloud cover to use
       the OSTSKY(2) value based on the missing data code input by 
       the user, instead of a value of 99. This error could have 
       resulted in on-site cloud cover being flagged as missing 
       inappropriately in previous versions.

   5.  Modified subroutine O3NEXT to remove the conversion of
       delta-T values to lapse rate values (delta-T/delta-z) 
       before calling subroutine REALQA, which compares the value
       to upper and lower bounds based on delta-T values. This
       could have resulted in a large number of spurious QA warnings 
       for delta-T values out-of-range.

   6.  Modified subroutine RDISHD to correct the processing of ASOS 
       cloud cover data based on the GA1-GA6 codes to avoid 
       inadvertently assigning a missing code to the ASKY variable.
       Also modified subroutine RDISHD to move the check for hour
       0 (zero) later in the processing in order to avoid using
       a "special" ISHD observation that occurs on the hour instead
       of a "non-special" (i.e., preferred) observation that occurs 
       earlier.

   7.  Modified subroutine MPFIN to include additional error 
       checking and reporting regarding the completeness of the 
       surface characteristics arrays. Errors in processing user-
       specified surface characteristics (i.e., not generated by
       AERSURFACE) may have occurred in previous versions. This
       modification also includes initializing the storage arrays
       for surface characteristics in BLOCK1.INC to -9.0 instead
       of 0.0.
       
   8.  Modified several subroutines to allow the use of on-site
       mixing heights only (OSMIX), without requiring upper air 
       data.  In these cases, the LOCATION keyword on the METPREP 
       pathway should be used to specify the time zone adjustment 
       from GMT to LST, since the time zone specified on the 
       ONSITE pathway is likely to be for local time.  Otherwise,
       AERMET would assume GMT as local time and results would 
       be incorrect (unless local time actually was GMT). This
       includes a modification to subroutine MPCARD to call 
       subroutine MPPROC to obtain information on OSMIX and UADATA, 
       before the METPREP LOCATION keyword is processed, and to
       to return the new MPLST variable from the location keyword
       processed in subroutine LOCCRD to identify the local vs. 
       GMT zone adjustment for cases with only ONSITE data. The
       call to subroutine MPPROC, previously made in subroutine
       SETUP, has been removed.

       The warning message generated in subroutine LOCCRD was
       also modified to indicate that the METPREP LOCATION
       keyword is no longer considered obsolete if OSMIX and
       no UADATA are being used.

       Additional modifications were made to the initialization  
       and processing of the location IDs for the surface (SF),
       upper air (UA) and onsite (OS) locations in order to 
       select the appropriate location for determining time
       zone adjustments in Stage 3 processing. Previous
       versions used character variables of various lengths
       that were initialized as blank fields in WORK1.INC.
       However, the initializations were accomplished by an
       EQUIVALENCE statement in WORK1.INC, which may cause
       problems when checking whether a location ID was
       blank by comparing to the equivalenced variables.

   9.  Modified subroutine MPPBL to correct the error message
       associated with missing station pressure (FORMAT 1022)
       which was also used for missing sky cover data.  A new 
       FORMAT statement (1021) was added for use with missing 
       station pressure. Also removed several FORMAT statements 
       in MPPBL that were not used.

-- Enhancements:

   1.  Modified subroutine BULKRI to incorporate a modified Bulk
       Richardson Number approach under the ADJ_U* Beta option,
       based on Luhar and Raynor (2009).  As with the ADJ_U* Beta  
       option incorporated in UCALST for applications which do not
       employ the BULKRN option, this method is considered a
       non-DFAULT option requiring approval as an alternative
       model for use in regulatory applications.

       Luhar A.K. and K. N. Rayner, 2009. Methods to Estimate Surface 
            Fluxes of Momentum and Heat from Routine Weather Observations 
            for Dispersion Applications under Stable Stratification.
            Boundary-Layer Meteorology. 132:437–454.

   2.  Modified subroutines MPPBL, SUBST, VRCARD, and MPTEST to 
       include substitutions for missing cloud cover data and/or 
       missing ambient temperature by interpolating across 1 or 2-hour 
       gaps in the input data. New subroutines (GETCCVR and GETTEMP) 
       were also created to facilitate this enhancement.  The default 
       option is for AERMET to apply the substitution for both missing 
       cloud cover and temperature, unless the user has specified 
       both SURFACE and ONSITE data.  New options have been added 
       to the METHOD keyword on Stage 3 that allow the user to 
       disable the cloud cover and/or temperature substitution(s) 
       in cases where only SURFACE or ONSITE data are available, 
       or to activate the options in cases where both SURFACE and 
       ONSITE data are available. Subroutines MPMET and MPOUT 
       were also modified to include appropriate flags in the
       surface output file indicating when these options have
       been utilized.

-- Miscellaneous:

   1.  Modified several subroutines to improve error handling and
       reporting in general, in addition to the modifications in
       subroutine MPFIN described above as item 5 under Bug Fixes 
       to correct a potential bug related to processing of surface
       characteristics.

   2.  Modified subroutine MPFIN to include the temporal frequency
       of the original user input of surface characteristics, i.e.,
       MONTHLY, SEASONAL, or ANNUAL, since the summary table included 
       in the Stage 3 report file automatically lists values by month.

   3.  Modified subroutine MPFIN to eliminate a redundant message
       if the default ((Holtslag) method is used for the stable 
       boundary layer, without the non-default ADJ_U* Beta option.

   4.  Included a DATA statement in subroutine RDISHD to initialize 
       the default "window" for acceptable data records, INC = 30 
       (i.e., up to 30 minutes before the hour, including the hour) 
       instead of a standard assignment statement.


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

This program will henceforth be identified by its name and a Julian date,
i.e.: AERMET (dated 13350).  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.
