New Program: little_r
The little_r program performs an objective analysis of first-guess,
pressure level data for input into the INTERP program. The input
data (any pressure-level data set from the MM5 system) and the output
data set (for use by INTERP) are in the MM5 V2 system format.
Motivation
The Rawins program is hardwired to access only the datasets archived
at NCAR. As the need to run this program outside NCAR environment
increases, a new program has been developed with the objective similar
to that of REGRID, that is to separate data acquisition and objective
analysis. As the REGRID program assumes that the user is familiar
with the new first-guess file that is to be introduced into the
modeling system by the user, the little_r program assumes the user
is able to meaningfully ingest the new observations for use in the
objective analysis.
Program Function
The little_r program reads observations written in a specified
ASCII format. This format is described in util/upa.f in the tar
file.
If an user wants to input a different dataset than those supported
(see the list below), all the user needs to do is to read in the
observation data into the program upa.f and upa.f will write it
out in the specified format. The reformated data can then be handled
in little_r.
The functions currently supported by little_r are:
-
single variable objective analysis
-
MQD analysis scheme or Cressman analysis scheme (with circular,
elliptical and banana-shaped influence functions)
-
analysis for multiple time periods
-
analysis for coarse and nested domains
-
handle bogus data
-
process some or all of the input first-guess times
-
suitable for historical cases (observations at all time periods)
and for real-time forecasts (observations at only the initial
time periods)
The program is written in Fortran 90 and can be run on various
workstations (SGI, DEC, HP, IBM) and Crays. Use is made of a 10-digit
integer which is not currently supported by Sun with FORTRAN90.
Input Data Format to little_r
There are 3 records for each observation site: a header that contains
information about station identifier, station location, data information,
station elevation, and whether the report is a bogus or not, etc;
a report (whether it is a sounding containing many levels, or only
a surface report), and an end-of-message line. For a surface observation,
the geopotential height (z(k)) must be set equal to the terrain
elevation (ter) field. This is the definition of a surface
observation.
The little_r program is able to handle most of the sorting duties
required for ingesting observations. The program is able to combine
multiple reports into a single message, interleaving mandatory and
significant levels. Identical, duplicate reports are removed. Upper-air
messages within 90 minutes of the valid time are accepted as within
the time window, while surface observations are accepted within
60 minutes of the valid time.
The little_r program performs an objective analysis on the horizontal
components of wind, temperature, relative humidity and sea-level
pressure. Except for sea-level pressure, each observation needs
a valid pressure or height (preference is given to the pressure
measurement if one is present).
The format for the little_r observation input is given by the
file upa.f in the util directory of the little_r.tar.gz
located on the mesouser supported portion of the NCAR anonymous
ftp. Here is a snippet of that code:
C header:
WRITE ( UNIT = iunit , ERR = 19 , FMT = rpt_format )
* xlat,xlon, string1 , string2 ,
* string3 , string4 , ter, kx*6, 0,0,iseq_num,0,
* logical1, logical2, logical3,
* -888888, -888888, date_char ,
* slp,0,-888888.,0, -888888.,0, -888888.,0, -888888.,0,
* -888888.,0,
* -888888.,0, -888888.,0, -888888.,0, -888888.,0,
* -888888.,0,
* -888888.,0, -888888.,0
C report:
do 100 k = 1 , kx
WRITE ( UNIT = iunit , ERR = 19 , FMT = meas_format )
* p(k), 0, z(k),0, t(k),0, td(k),0,
* spd(k),0, dir(k),0,
* -888888.,0, -888888.,0,-888888.,0, -888888.,0
100 continue
C end of report line:
WRITE ( UNIT = iunit , ERR = 19 , FMT = meas_format )
* -777777.,0, -777777.,0,float(kx),0,
* -888888.,0, -888888.,0, -888888.,0,
* -888888.,0, -888888.,0, -888888.,0,
* -888888.,0
C end of message line:
WRITE ( UNIT = iunit , ERR = 19 , FMT = end_format ) kx, 0, 0
where
rpt_format = ' ( 2f20.5 , 2a40 , '
* // ' 2a40 , 1f20.5 , 5i10 , 3L10 , '
* // ' 2i10 , a20 , 13( f13.5 , i7 ) ) '
meas_format = ' ( 10( f13.5 , i7 ) ) '
end_format = ' ( 3 ( i7 ) ) '
and
string1: description of station
string2: sounding source
string3: either FM-12 (surface) or FM-35 (upper-air)
string4: not used
iseq_num: sequence numbers that tell which of 2 reports is more recent
logical1: whether this is a sounding (T) or a surface report (F)
logical2: whether this is bogus data or not
logical3: filled in later by the program
data_char: character string (*20) for data (e.g. 19980901120000)
p: Pa
z: m
t: K
td: K
spd: m s{-1}
dir: degrees
The 0s after each piece of data are quality control indentifiers to be
defined in the program.
Supported Observation Datasets
Programs exist that convert the following data to that read by
little_r program:
-
NCEP upper-air observation in ADP format
-
NCEP surface observation in ADP format
-
raw, coded observations on the Unidata circuit
For ADP data, a new program tar file can be obtained from the
mesouser directory on NCAR's Cray (~mesouser/MM5V2/Fetch),
and anonymous
ftp. One may run this program on Cray to produce data accepted
by little_r. These programs are under development and should be
collectively considered works in progress.
Program Documents
There are a number of README files inside the little_r.tar file,
and a chapter (Appendix C) about little_r is now in the MM5
tutorial notes on the Web page.
Source tar file
For Version 3:
ftp://ftp.ucar.edu/mesouser/MM5V3/LITTLE_R.TAR.gz
For Version 2:
ftp://ftp.ucar.edu/mesouser/newprogs/little_r.tar.gz
You may also get a test dataset from
ftp://ftp.ucar.edu/mesouser/newprogs/little_r_data.tar.gz
|