Air Resources Laboratory banner image
Air Resources Laboratory web site National Oceanic and Atmospheric Administration (NOAA)

Nested Grid Model (NGM) Archive Information


**********************************************************************************
31 MAY 2023

The NGM archive may be accessed by a ftp client or by a web browser:

1) If you want to use a ftp client, Windows PC users may use WinSCP, FileZilla,
   etc. that support passive mode. MacOS and Linux users may use the ftp
   command. Connect your ftp client to ftp.arl.noaa.gov using anonymous and
   your email address for the username and password, respectively and change
   directory to /archives/ngm. Note if you are using multiple ftp
   connections, limit the number of concurrent connections equal to or
   less than two. Otherwise, your access to our ftp server may be blocked off.
2) If you are using a web browser, point it to
   https://www.ready.noaa.gov/data/archives/ngm.
   It may take a few minutes or longer for the webpage to display.

**********************************************************************************
NOTE: THE NGM ARCHIVE ENDED ON APRIL 15, 1997.  USERS OF THE NGM ARCHIVE CAN NOW
ACCESS THE ETA DATA ASSIMILATION SYSTEM (EDAS) ARCHIVE AT THE FOLLOWING LOCATION:

     anonymous ftp to ftp.arl.noaa.gov and change directory to /archives/edas

**********************************************************************************


                           NGM ARCHIVE
                             TD-6140
                    January 1991 - April 1997







                           Prepared for
             the National Climatic Data Center (NCDC)





                                by

                          Glenn D. Rolph
                  NOAA Air Resources Laboratory
                         SSMCII, Rm. 3463
                      1315 East West Highway
                     Silver Spring, MD 20910
                       (301) 713-0295 x134
                     https://www.arl.noaa.gov







                             June 1997
                           NGM ARCHIVE

OVERVIEW

     The National Weather Service's National Center for
Environmental Prediction (NCEP) runs a series of computer
analyses and forecasts operationally (Petersen and Stackpole,
1989).  One of the primary operational systems is the Global Data
Assimilation System (GDAS, Kanamitsu, 1989), which uses the
spectral Medium Range Forecast model (MRF) for the forecast
(Sela, 1980).  Another primary system is the Regional Analysis
and Forecast System (RAFS), which uses the Nested Grid Model
(NGM) for the forecast (Hoke et al., 1989).  Output from the RAFS
covers North America.  In simple terms, for each run,
observations are assimilated with "first guess" data fields
(forecasts from the previous model run), and dynamic imbalances
in the data are reduced, resulting in "analyzed" data fields. 
Then the forecast is made.  The analyzed data should provide a
better representation of the real atmosphere than observations
alone because of limitations in the observations.  Some of these
limitations are due to measurement error or other instrument
problems, and nonuniform spatial and temporal distributions of
the observations.  

     At NOAA's Air Resources Laboratory (ARL), the NCEP model
data are used for air quality transport and dispersion modeling. 
ARL archives both NGM and GDAS data using an ARL packing method
and both archives contain basic fields such as the u- and v-wind
components, temperature, and humidity.  However, the archives
differ from each other in the number of surface fields and
vertical levels as provided by NCEP.  

ORIGIN OF DATA

     The enclosed 2-hourly data come from NCEP's RAFS.  The data
may be referred to as NGM data because the forecast component of
the system is the NGM model.  The RAFS was designed to provide
improved numerical guidance over the United States out to 48
hours.  Improvements over the existing limited-area fine-mesh
model (LFM; Gerrity 1977; Newell and Deaven 1981) included
improved horizontal and vertical resolution (especially in the
lower layers) and better use of observations.  Details of the
RAFS are described by Hoke, et al. (1989).  

     NCEP post-processing of the RAFS routinely provides NGM
forecast output at 6 hour intervals on approximately a 180 km
grid (a few fields such as precipitation are output on at 91 km)
to the NAS 9000 mainframe computer.  ARL archives the NGM
forecast data at 2 hour intervals on a 180 km grid (although the
data are available to ARL at 1 hour intervals on a 91 km
operationally, due to space limitations only 2 hourly, 180 km
data are archived).  The higher temporal resolution of the data
has been found to result in less transport error in an
atmospheric dispersion model (Rolph and Draxler, 1990).

ARL PROCESSING

     The ARL archiving program extracts the 2 hourly, 180 km data
from the 1 hour, 91 km data onto a 33 by 28 polar stereographic
grid covering the United States, Southern Canada, and immediate
coastal waters.  The ARL program runs on the NAS 9000 mainframe
and outputs the data to disk, from which it is later transferred
to tape.  

DATA DESCRIPTION

     The archive data file contains the data in synoptic time
sequence (GMT), without any missing records (missing data will be
represented by negative 1 and the forecast hour by negative 1). 
Therefore it is possible to position randomly to any point within
a data file.  At each time period the surface (or single level)
data come first, followed by the data at each sigma level from
the ground up.  A sigma level (Phillips, 1957) is defined as

                         P - Pt
                sigma = --------;
                         Ps - Pt

where P is the reference pressure, Pt is the top model pressure
(0 mb for the NGM), and Ps is the model surface pressure along
the model terrain surface.  NGM data are archived at 10 sigma
levels ranging from 0.9823 to 0.43414, or approximately 980 to
434 mb.

Tape Specifications

     Data for six months are archived on a tape.  NOTE: The NGM
archive ended on April 15, 1997.

     TYPE           3480 1/2" Cartridge, ASCII*
     LABEL          Non-Labeled
     RECORD FORMAT  Fixed Block
     RECORD LENGTH  974
     BLOCK SIZE     32142

* Note that each data record is composed of a 50-character header
in ASCII, followed by the binary packed data.  Therefore, an
ASCII-EBCDIC conversion on the entire data record or tape file is
not possible. 

Beginning with July 1994 there are two files per month with the
first file containing data for days 1 through 15 and the second
file containing the rest of the month.


Data Grid

     The data are on a 33 by 28 polar stereographic grid 
(Fig. 1).  In Table 1 the data grid is identified by the model
that produced the data, a grid identification number, the number
of X and Y grid points, the grid spacing ( ) which is true at the
indicated latitude, the longitude to which the Y axis is aligned,
and the pole position in grid units.  The given pole position
results in the lowest left grid point to have a value of (1,1). 
The NGM archive grid has an ID of #6.


                Table 1. Data Grid Specifications

 Model   ID   X   Y          True   Align    X      Y
 Type    #   Max  Max  Km    Lat.   Lon.   Pole   Pole
 NGM     06  33   28  182.9  60N    105W   13.25  42.75

Meteorological Fields and Vertical Structure

     The archived data file only contains some of the fields
normally produced by the model at NCEP.  These were selected
according to what is most relevant for transport and dispersion
studies and disk space limitations.  In Table 2, the fields are
identified by a description, the units, and a unique four
character identification label that is written to the header
label (see Data Grid Unpacking procedure in a later section) at
the beginning of each record.  Data order in the file is given by
a two digit code.  The first digit indicates if it is a surface
(or single) level variable (S) or an upper level variable (U).
The second digit indicates the order in which that variable
appears in the file.  The upper level NGM data are output on the
following sigma surfaces: 0.98230, 0.94317, 0.89671, 0.84367,
0.78483, 0.72101, 0.65307, 0.58196, 0.50864, 0.43414.  Table 3
gives the level number, corresponding to each data level, which
is also written to each header label.  NOTE: on December 29,
1992, the surface level was changed from level 1 to level 0. 
This also implies that all sigma levels were reduced by one as
well.

       Table 2. Meteorological Fields for NGM Archive Data.
  
            Field                        Units  Label  Data Order

Ice Covered Water Areas (0=no, 1=yes)     ----  ICWT      S1
Snow Covered Areas (0=no, 1=yes)          ----  SNOW      S2
Terrain Height                             m    SHGT      S3
Mean Sea Level Pressure                   hpa   MSLP      S4
Convective Precipitation                   m    CPPT      S5
Total Precipitation                        m    TPPT      S6
Exchange Coefficient at surface         kg/m2/s EXCO      S7
Upward Turbulent Flux of Sensible Heat    W/m2  HFLX      S8
Upward Turbulent Flux of Water          kg/m2/s WFLX      S9
Surface Pressure                          hpa   PRSS     S10
Number of Mixed Layers next to surface   -----  MXLR     S11
U Component of Wind wrt Grid              m/s   UWND      U1
V Component of Wind wrt Grid              m/s   VWND      U2
Vertical Velocity (dp/dt)               hpa/s   WWND      U3
Specific Humidity                        kg/kg  SPHU      U4
Temperature                                K    TEMP      U5


             Table 3. Description of Vertical Levels

                         Level       Sigma
                                     ()
                          10       .43414
                           9       .50864
                           8       .58196
                           7       .65307
                           6       .72101
                           5       .78483
                           4       .84367
                           3       .89671
                           2       .94317
                           1       .98230
                           0       surface


Missing Data

     When the NGM data are not available or there is a problem
with the ARL archiving process, missing data are written as an
array of -1.  Usually the field label is as given in Table 2, but
sometimes it is defined as "NULL."  No attempt at present is made
to fill in missing data with data from another source.

Data Grid Unpacking Procedure

     NCEP typically saves their data in NCEP Office Note 84
(ON-84) format.  However, here the data are stored differently
because the ARL format is a bit more compact and it can be
directly used on a variety of computing platforms with direct
access I/O. 

     The data array is packed and stored into one byte
characters.  To preserve as much data precision as possible the
difference between the values at grid points is saved and packed
rather than the actual values.  The grid is then reconstructed by
adding the differences between grid values starting with the
first value, which is stored in unpacked ASCII form in the header
record. To illustrate the process, assume that a grid of real
data, R, of dimensions i,j is given by the below example.


  1,j       2,j        ....    i-1,j      i,j
  1,j-1     2,j-1      ....    i-1,j-1    i,j-1
  ....      ....       ....    ....       ....
  1,2       2,2        ....    i-1,2      i,2
  1,1       2,1        ....    i-1,1      i,1

The packed value, P, is then given by 

     Pi,j = (Ri,j  - Ri-1,j) 2(7-N),

where the scaling exponent

     N = ln  Rmax / ln 2 .

The value of  Rmax is the maximum difference between any two
adjacent grid points for the entire array.  It is computed from
the differences along each i index holding j constant.  The
difference at index (1,j) is computed from index (1,j-1), and at
1,1 the difference is always zero. The packed values are one byte
unsigned integers, where values from 0 to 126 represent -127 to -
1, 127 represents zero, and values of 128 to 254 represent 1 to
127. Each record length is then equal in bytes to the number of
array elements plus 50 bytes for the label information. The 50
byte label field precedes each packed data field and contains the
following ASCII data.


Field          Format    Description

Year           I2        Greenwich date for which data valid
Month          I2                       "
Day            I2                       "
Hour           I2                       "
Forecast*      I2        Hours forecast, zero for analysis
Level          I2        Level from the surface up (see Table 3)
Grid           I2        Grid identification (see Table 1)
Variable       A4        Variable label (see Table 2)
Exponent       I4        Scaling exponent needed for unpacking
Precision      E14.7     Precision of unpacked data
Value 1,1      E14.7     Unpacked data value at grid point 1,1
                                      
*Forecast hour is -1 for missing data.  


Notes

The convective and total precipitation (convective plus grid
scale) fields are accumulated from the 2- to 12-hour forecast
time.  Therefore when looking at any particular forecast hour,
for example forecast hour 04, the precipitation is really a 4
hour accumulated total, and at forecast hour 12, the
precipitation is a 12 hour total.

Sample Program

     In the following FORTRAN program, the unpacking subroutine
is used to read the first record.  The value at grid point 1,1
from the header and the unpacked value are printed, along with
the other header values.  In the program the packed data array is
in the variable QPACK and the unpacked real data array is
returned in variable QVAR. NX and NY are the number of grid
points in the horizontal and vertical directions, respectively.
NXY is just the product of NX and NY. The variable NEXP and VAR1,
are the packing exponent and value of the field at the 1,1 grid
point.  These values are obtained from the header label
information.

     Also attached is a sample program to determine the latitude
and longitude of any grid point on the model domain.  This
program can be helpful for a user who must transform the data
into another coordinate system.

****************************************************************************   
*     SAMPLE PROGRAM TO UNPACK DATA ARRAY IN FIRST RECORD 
****************************************************************************
*     QVAR  = UNPACKED REAL DATA ARRAY
*     QPACK = PACKED DATA ARRAY
*     NX    = MAXIMUM GRID DIMENSION IN X-DIRECTION
*     NY    = MAXIMUM GRID DIMENSION IN Y-DIRECTION
*     NXY   = NX * NY
*     LABEL = 50 CHARACTER ASCII HEADER, CONSISTING OF THE FOLLOWING:
*       IY    = YEAR FOR WHICH DATA ARE VALID
*       IM    = MONTH FOR WHICH DATA ARE VALID
*       ID    = DAY FOR WHICH DATA ARE VALID
*       IHR   = HOUR FOR WHICH DATA ARE VALID (GREENWICH)
*       IFHR  = HOURS AFTER INITIALIZATION
*       LVL   = LEVEL FROM THE SURFACE UP
*       IG    = GRID ID
*       VARB  = 4 CHARACTER VARIABLE LABEL
*       NEXP  = PACKING EXPONENT
*       PREC  = PRECISION OF UNPACKED DATA
*       VAR1  = UNPACKED DATA VALUE AT GRID POINT (1,1)
****************************************************************************

      PARAMETER ( NX=33, NY=28, NXY=NX*NY)

      REAL*4 QVAR(NX,NY)
      CHARACTER*1 QPACK(NXY)
      CHARACTER*4 VARB
      CHARACTER*50 LABEL

      LREC=NXY+50

      WRITE(*,*) 'ENTER NGM FILENAME'
      OPEN(10,FILE=' ',ACCESS='DIRECT',RECL=LREC,FORM='UNFORMATTED')

      READ(10,REC=1) LABEL,QPACK
      READ(LABEL,100) IY,IM,ID,IHR,IFHR,LVL,IG,VARB,NEXP,PREC,VAR1
  100 FORMAT(7I2,A4,I4,2E14.7)

      CALL UNPACK(QVAR,QPACK,NX,NY,NXY,NEXP,VAR1)

      WRITE(*,200) IY,IM,ID,IHR,IFHR,LVL,IG,VARB
  200 FORMAT(1X,'YEAR=',I2,' MONTH=',I2,' DAY=',I2,' HOUR=',I2,
     :       ' FORECAST HOUR=',I2,' LEVEL=',I2,' GRID=',I2,
     :       ' VARIABLE=',A4)

      WRITE(*,300) VAR1
  300 FORMAT(1X,'FROM HEADER, QVAR(1,1)= ',F7.1)

      WRITE(*,400) QVAR(1,1)
  400 FORMAT(1X,'FROM UNPACKED DATA, QVAR(1,1)= ',F7.1)

      STOP
      END

************************************************************************
      SUBROUTINE UNPACK(QVAR,QPACK,NX,NY,NXY,NEXP,VAR1)
************************************************************************
      CHARACTER*1 QPACK(NXY)
      REAL*4 QVAR(NX,NY)

      SCALE=2.0**(7-NEXP)
      INDX=0
      QOLD=VAR1
      DO J=1,NY
         DO I=1,NX
            INDX=INDX+1
            QVAR(I,J)=(ICHAR(QPACK(INDX))-127.)/SCALE+QOLD
            QOLD=QVAR(I,J)
         END DO
         QOLD=QVAR(1,J)
      END DO
      RETURN
      END
C****************************************************************
C        PROGRAM TO GIVE LAT/LON FOR ENTERED GRID POINTS
C****************************************************************
C          NATIONAL OCEANIC AND ATMOSPHERIC ADMINISTRATION
C                  AIR RESOURCES LABORATORY
C                       GLENN D. ROLPH
C****************************************************************
 
      CALL SETNMG(90.,105.,13.25,42.75,60.,105.,182.9)
   10 WRITE(6,*)'ENTER x y position to convert to lat lon'
      READ(5,*)X,Y
      CALL XYTOLL(X,Y,XLAT,YLON)
      WRITE(6,*)'LAT,LON',XLAT,YLON
      GO TO 10
      STOP
      END
 
      SUBROUTINE LLTOXY (XLAT,YLON,XI,YJ)
C****************************************************************
C     POLAR STEREOGRAPHIC CONVERSION OF LATITUDE AND LONGITUDE  *
C             Dr. A. D. Taylor NOAA/OAR/ARL                     *
C     REVISION: 01/14/92 to allow oblique stereographic         *
C                         projection                            *
C****************************************************************

C     CONSTANTS BASED ON ASSUMPTION THAT RADIUS OF SPHERICAL
C     EARTH IS 6371.2 KILOMETERS, AS USED BY NCEP IN ITS GRID
C     MODELS.
      real * 4 radpdg,drthnm,drthkm,DEARTH,POLLON,XP,YP,sclfct
      real*4 cpolat,spolat,clat,slat,clon,slon,phi
      real*4 x1,y1,z1,rho0,y2,r3,cosmu,sinmu

      DATA RADPDG/1.745 3293E-2/ ,DRTHNM/ 6 880.35/
      DATA DRTHKM/12 742.4/
      DATA DEARTH,POLLON,XP,YP,SCLFCT/31.2043,260.,33.,
     :33.,4.53527E-3/
      data cpolat, spolat / 0.0, 1.0 /

      clat = cos(radpdg * xlat)
      slat = sin(radpdg * xlat)
      phi = (ylon-pollon)*radpdg
      clon = cos(phi)
      slon = sin(phi)
      x1 = clat * slon
      y1 = cpolat * slat + spolat * clat * clon
      z1 = spolat * slat - cpolat * clat * clon
      if (1.+z1 .gt. .5e-6) then
        rho0 = 1. / (1. + z1)
        xi = xp + dearth * rho0 * x1
        yj = yp + dearth * rho0 * y1
        scale = 2. * sclfct * rho0
      else
        write(*,*)'LLTOXY Error:',xlat,',',ylon,' represents',
     C   ' point at infinity.'
        stop
      end if
      RETURN

      ENTRY XYTOLL (XI,YJ,XLAT,YLON)
      x1 = (xi - xp) / dearth
      y1 = (yj - yp) / dearth
      rho0 = .5 * (1. + x1 * x1 + y1 * y1 )
      z1 = 1. - rho0
      SCALE = 2. * SCLFCT * rho0
      slat = cpolat * y1 + spolat * z1
      y2 = cpolat * z1 - spolat * y1
      clat = sqrt( x1 * x1 + y2 * y2)
      xlat = atan2( slat , clat ) /radpdg
      if (clat.ge..5e-6) then
      clon = -y2/clat
      slon = x1/clat
      YLON = AMOD(POLLON+180.+ATAN2(slon,clon)/RADPDG,360.)-180.
      else
        clon = 1.
        slon = 0.
        ylon = 0.
      end if
      RETURN

      ENTRY UVG2N(UG,VG,UE,VN)
C****************************************************************
C Converts grid wind components (ug,vg) into North-South        *
C components (vn,ue) for the location of the last point         *
C transformed by lltoxy or xytoll.                              *
C****************************************************************
      if (abs(xlat).le.89.) then
        r3 = sqrt(clat*clat+slat*slat)
        cosmu = - clon * (r3 + slat * spolat) + clat * cpolat
        sinmu = - slon * (r3 * spolat + slat)
        r3 = sqrt (cosmu*cosmu + sinmu*sinmu)
        vn = (vg*cosmu + ug*sinmu)/r3
        ue = (ug*cosmu - vg*sinmu)/r3
      else
C****************************************************************
C     In the regions around the North or South Pole, component  *
C     winds have to be redefined.  The standard adopted here for*
C     sites within one degree of the poles is that winds are    *
C     assigned directions according to the meridian from which  *
C     they are blowing; 0 or 360 (North) for winds from the     *
C     Greenwich meridian, 90 (East) for winds from the 90W      *
C     meridian, etc.  Thus, VN is the component in the direction*
C     of Greenwich and UE is the component in the direction of  *
C     90W.  For the South polar region, replace 90W in the above*
C     with 90E.                                                 *
C****************************************************************
        cosmu = cos(radpdg * pollon)        
        sinmu = sin(radpdg * pollon)
        if (slat.lt.0.) then
          cosmu = - cosmu
          sinmu = - sinmu
        end if
        ue = ug * cosmu + vg * sinmu
        vn = vg * cosmu - ug * sinmu
      end if
      RETURN

      ENTRY UVN2G(UE,VN,UG,VG)
C****************************************************************
C     Converts North-South wind components (vn,ue) into grid    *
C     components (ug,vg) for the location of the last point     *
C     transformed by lltoxy or xytoll.                          *
C****************************************************************
      if (abs(xlat).le.89.) then
        r3 = sqrt(clat*clat+slat*slat)
        cosmu = - clon * (r3 + slat * spolat) + clat * cpolat
        sinmu = - slon * (r3 * spolat + slat)
        r3 = sqrt (cosmu*cosmu + sinmu*sinmu)
        vg = (vn*cosmu - ue*sinmu)/r3
        ug = (ue*cosmu + vn*sinmu)/r3
      else
C****************************************************************
C     In the regions around the North or South Pole, component  *
C     winds have to be redefined.  The standard adopted here for*
C     sites within one degree of the poles is that winds are    *
C     assigned directions according to the meridian from which  *
C     they are blowing; 0 or 360 (North) for winds from the     *
C     Greenwich meridian, 90 (East) for winds from the 90W      *
C     meridian, etc.  Thus, VN is the component in the direction*
C     of Greenwich and UE is the component in the direction of  *
C     90W.  For the South polar region, replace 90W in the above*
C     with 90E.                                                 *
C****************************************************************
        cosmu = cos(radpdg * pollon)        
        sinmu = sin(radpdg * pollon)
        if (slat.lt.0.) then
          cosmu = - cosmu
          sinmu = - sinmu
        end if
        ug = ue * cosmu - vn * sinmu
        vg = vn * cosmu + ue * sinmu
      end if
      RETURN

      ENTRY SCALER(SIZENM)
C****************************************************************
C returns the size of a grid cell in nautical miles at the point*
C last referenced                                               *
C****************************************************************
      SIZENM=SCALE
      RETURN

      ENTRY SETNMC
C****************************************************************
C restores grid settings to standard NMC grid: North Polar      *
C Stereographic, oriented with 80W longitude vertical in the    *
C sense of North up, tangent point (North Pole) sited at 33,33, *
C and scaled 281km at 60N.                                      *
C****************************************************************
      DEARTH=31.2043
      POLLON=260.
      XP=33.
      YP=33.
      SCLFCT=4.53527E-3
      cpolat = 0.0
      spolat = 1.0
      RETURN

      ENTRY SETNMG(tnplat,tnplon,tnpx,tnpy,reflat,reflon,GRIDSZ)
C***************************************************************
C Sets grid settings to specification.  Tnp is the "tangent    *
C point" for the oblique stereographic projection; tnplat and  *
C tnplon specify the latitude and longitude, resp, of the      *
C tangent point, while tnpx and tnpy specify the grid          *
C coordinates x and y of the tangent point.  Reflat and reflon *
C specify the latitude and longitude of the scale reference    *
C point, while gridsz is the size in kilometers of a grid cell *
C at that point.  The meridian through the tangent point is    *
C assumed vertical in the sense of North up, unless the tangent*
C point is the North or South pole, in which case the trulon   *
C longitude is vertical in the sense of North up.              *
C setnmc is equivalent to setnmg(90.,80.,33.,33.,60.,0.,281.)  *
C****************************************************************
      xp = tnpx
      yp = tnpy
      cpolat = cos(radpdg * tnplat)
      spolat = sin(radpdg * tnplat)
      POLLON=AMOD( AMOD(tnplon,360.) + 540. , 360.)
      z1 = spolat * sin(radpdg * reflat) -
     1 cpolat*cos(radpdg*reflat)*cos(radpdg*(reflon-pollon))
      dearth = drthkm * .5 * (1. + z1) / gridsz
      SCLFCT = DEARTH / DRTHNM
      RETURN
      end
 

REFERENCES

Gerrity, J., 1977: The LFM model - 1976: A documentation. NOAA
Tech. Memo. NWS NMC 60, 68 pp.

Hoke, J.E., N. A. Phillips, G.J. DiMego, J.J. Tuccillo, and J.G.
Sela, 1989: The Regional Analysis and Forecast System of the
National Meteorological Center, Weather and Forecasting, 4 (323-
334).

Kanamitsu, M., 1989: Description of the NMC Global Data
Assimilation and Forecast System, Weather and Forecasting, 4(335-342).  

Newell, J.E. and D.G. Deaven, 1981: The LFM-II Model - 1980. NOAA
Tech. Memo. NWS NMC 66, U.S. Department of Commerce, Washington,
D.C., 20 pp.

Petersen, R.A. and J.D. Stackpole, 1989: Overview of the NMC
Production Suite, Weather and Forecasting, 4 (313-322).

Phillips, N.A., 1957: A Coordinate System Having Some Special
Advantages for Numerical Forecasting. J. Meteor., 14 (184-185).

Rolph, G.D. and R.R. Draxler, 1990: Sensitivity of Three-
Dimensional Trajectories to the Spatial and Temporal Densities of
the Wind Field, Journal of Applied Meteorology, 29 (1043-1054).

Sela, J.G., 1980: Spectral modeling at the National
Meteorological Center, Mon. Wea. Rev., 108 (1279-1292).

******************************************************************
DATA AVAILABILITY -- January - April 15, 1997

NOTE: THIS IS THE END OF THE NGM ARL ARCHIVE.

Month/Year   Date  Time  Missing data         

     JAN 97              None

     FEB 97              None

     MAR 97    09   00Z  initialization*
               12   12Z  initialization*

     APR 97    04 02-12Z Missing
               16-30     Missing
_______________________________________________________________

* Initialization means that the 0 hour data were written instead
of the 12 hour forecast data.  In these cases, a few of the
surface (or single) level fields may be filled with 0's.  The NGM
does not compute these fields at the initialization hour, which
is why the 02- to 12-hour forecast fields are normally archived.
DATA AVAILABILITY -- July - December, 1996

Month/Year   Date  Time  Missing data         

     JUL 96              None

     AUG 96              None

     SEP 96    06 14-22Z All data missing
               07   00Z  initialization*

     OCT96     10   12Z  initialization*

     NOV 96              None

     DEC 96              None
_________________________________________________________________

* Initialization means that the 0 hour data were written instead
of the 12 hour forecast data.  In these cases, a few of the
surface (or single) level fields may be filled with 0's.  The NGM
does not compute these fields at the initialization hour, which
is why the 02- to 12-hour forecast fields are normally archived.

DATA AVAILABILITY -- January - June, 1996

Month/Year   Date  Time  Missing data         

     JAN 96              None

     FEB 96              None                                     

     MAR 96              None

     APR 96              None

     MAY 96              None

     JUN 96     4   00Z  initialization*
_________________________________________________________________

* Initialization means that the 0 hour data were written instead
of the 12 hour forecast data.  In these cases, a few of the
surface (or single) level fields may be filled with 0's.  The NGM
does not compute these fields at the initialization hour, which
is why the 02- to 12-hour forecast fields are normally archived.

DATA AVAILABILITY -- July - December, 1995

Month/Year   Date  Time  Missing data         

     JUL 95              None

     AUG 95    11   12Z  Initialization*

     SEP 95              None

     OCT 95              None

     NOV 95              None

     DEC 95              None
_________________________________________________________________

* Initialization means that the 0 hour data were written instead
of the 12 hour forecast data.  In these cases, a few of the
surface (or single) level fields may be filled with 0's.  The NGM
does not compute these fields at the initialization hour, which
is why the 02- to 12-hour forecast fields are normally archived.

DATA AVAILABILITY -- January - June, 1995

Month/Year   Date  Time  Missing data         

     JAN 95    26 14-22Z All data missing
               27   00Z  initialization*

     FEB 95              None                                     

     MAR 95              None

     APR 95              None

     MAY 95    27   00Z  initialization*

     JUN 95    24   00Z  initialization*
_________________________________________________________________

* Initialization means that the 0 hour data were written instead
of the 12 hour forecast data.  In these cases, a few of the
surface (or single) level fields may be filled with 0's.  The NGM
does not compute these fields at the initialization hour, which
is why the 02- to 12-hour forecast fields are normally archived.

DATA AVAILABILITY -- July - December, 1994

Month/Year   Date  Time  Missing data         

     JUL 94    28   00Z  Initialization*

     AUG 94              None                                     

     SEP 94              None

     OCT 94              None

     NOV 94    16   00Z  Initialization*

     DEC 94    21   12Z  Initialization*
_________________________________________________________________

* Initialization means that the 0 hour data were written instead
of the 12 hour forecast data.  In these cases, a few of the
surface (or single) level fields may be filled with 0's.  The NGM
does not compute these fields at the initialization hour, which
is why the 02- to 12-hour forecast fields are normally archived.

DATA AVAILABILITY -- January - June, 1994

Month/Year   Date  Time  Missing data         

     JAN 94    17 14-22Z All data missing
               18   00Z  initialization*

     FEB 94              None                                     

     MAR 94              None

     APR 94              None

     MAY 94              None

     JUN 94              None
_________________________________________________________________

* Initialization means that the 0 hour data were written instead
of the 12 hour forecast data.  In these cases, a few of the
surface (or single) level fields may be filled with 0's.  The NGM
does not compute these fields at the initialization hour, which
is why the 02- to 12-hour forecast fields are normally archived.

DATA AVAILABILITY -- July - December, 1993

Month/Year   Date  Time  Missing data         

     JUL 93              None

     AUG 93              None                                     

     SEP 93              None

     OCT 93              None

     NOV 93              None

     DEC 93              None
_________________________________________________________________

* Initialization means that the 0 hour data were written instead
of the 12 hour forecast data.  In these cases, a few of the
surface (or single) level fields may be filled with 0's.  The NGM
does not compute these fields at the initialization hour, which
is why the 02- to 12-hour forecast fields are normally archived.

DATA AVAILABILITY -- January - June, 1993

Month/Year   Date  Time  Missing data         

     JAN 93    08   00Z  Initialization*

     FEB 93    17   00Z  Data missing only this hour              
                       
     MAR 93    08   12Z  Initialization*

     APR 93              None

     MAY 93              None

     JUN 93              None
_________________________________________________________________

* Initialization means that the 0 hour data were written instead
of the 12 hour forecast data.  In these cases, a few of the
surface (or single) level fields may be filled with 0's.  The NGM
does not compute these fields at the initialization hour, which
is why the 02- to 12-hour forecast fields are normally archived.

DATA AVAILABILITY -- July - December, 1992

Month/Year   Date  Time  Missing data         

     JUL 92              None

     AUG 92              None                                     

     SEP 92              None

     OCT 92              None

     NOV 92    01 14-22Z All data missing
               02   00Z  initialization*

     DEC 92              None
_________________________________________________________________

* Initialization means that the 0 hour data were written instead
of the 12 hour forecast data.  In these cases, a few of the
surface (or single) level fields may be filled with 0's.  The NGM
does not compute these fields at the initialization hour, which
is why the 02- to 12-hour forecast fields are normally archived.

NOTE: on December 29, 1992, the surface level was changed from
level 1 to level 0.  This also implies that all sigma levels were
reduced by one as well.

DATA AVAILABILITY -- January - June, 1992

Month/Year       Date/Time         Missing data or comments     

     JAN 92    01/01Z - 17/11Z     Odd hours written instead of 
                                   even hours (1,3,5...)
                  17/12Z           Initialization*

     FEB 92                        None

     MAR 92    04/02Z - 04/12Z     Missing data
               26/14Z - 27/22Z     Missing data
                    28/00Z         Initialization*
               28/14Z - 28/22Z     Missing data
                    29/00Z         Initialization*
               29/14Z - 29/22Z     Missing data
                    30/00Z         Initialization*

     APR 92                        None

     MAY 92                        None

     JUN 92                        None
_________________________________________________________________

* Initialization means that the 0 hour data were written instead
of the 12 hour forecast data.  In these cases, a few of the
surface (or single) level fields may be filled with 0's.  The NGM
does not compute these fields at the initialization hour, which
is why the 02- to 12-hour forecast fields are normally archived.

DATA AVAILABILITY -- July - December, 1991

Month/Year   Date  Time  Missing data         

     JUL 91    03   12Z  initialization*
               04   12Z  initialization*
               06   12Z  initialization*
               07   12Z  initialization*

     AUG 91    17   00Z  initialization*
               18   00Z  initialization*
                                      
     SEP 91              None

     OCT 91    25   12Z  all data 
               29   00Z  all data

     NOV 91    26   12Z  initialization*

     DEC 91    02   12Z  initialization*
               04   12Z  initialization*
_________________________________________________________________

* Initialization means that the 0 hour data were written instead
of the 12 hour forecast data.  In these cases, a few of the
surface (or single) level fields may be filled with 0's.  The NGM
does not compute these fields at the initialization hour, which
is why the 02- to 12-hour forecast fields are normally archived.

Note: During 1991 the odd hour (01,03,...11) convective and total
precipitation fields were inadvertently added to the even hour
(02,04,...12) precipitation fields.  Therefore, to estimate the
correct accumulated precipitation one should divide the
convective and total precipitation by 2.  This error was
corrected on January 1, 1992.

DATA AVAILABILITY -- January - June, 1991

Month/Year   Date  Time  Missing data         

     JAN 91              None

     FEB 91              None

     MAR 91              None     

     APR 91    04   12Z  initialization*
               05   00Z  initialization* 
               22   12Z  all data 
               23   00Z  initialization*
               24   00Z  initialization*

     MAY 91    07   12Z  all data
               08   00Z  initialization*
               23   12Z  all data

     JUN 91              None
_________________________________________________________________

* Initialization means that the 0 hour data were written instead
of the 12 hour forecast data.  In these cases, a few of the
surface (or single) level fields may be filled with 0's.  The NGM
does not compute these fields at the initialization hour, which
is why the 02- to 12-hour forecast fields are normally archived.

Note: During 1991 the odd hour (01,03,...11) convective and total
precipitation fields were inadvertently added to the even hour
(02,04,...12) precipitation fields.  Therefore, to estimate the
correct accumulated precipitation one should divide the
convective and total precipitation by 2.  This error was
corrected on January 1, 1992.