Program: little_r
The V3 Little_r program performs an objective analysis of first-guess,
pressure level data for input into the INTERPF program. The input
data (any pressure-level data set from the MM5 system) and the output
data set (for use by INTERPF) are in the MM5 V3 system format.
Motivation
The Version 3 Little_r program is based on its Version 2 counterpart.
The purpose of the development is similar to that for 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 write a program
based on upa.f in LITTLE_R/util/ directory, to read and write
data 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)
Some advancements have been made in this version of the program.
The program is written in Fortran 90 and can be run on various
workstations (e.g. SGI, DEC, HP, IBM and Sun), Linux machines and
Crays.
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 computer (~mesouser/MM5V3/FETCH.TAR.gz),
and anonymous
ftp. One may run this program on Cray and IBM (or your own workstations)
to produce data accepted by Little_r.
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
ftp://ftp.ucar.edu/mesouser/MM5V3/LITTLE_R.TAR.gz
You may also get a test dataset from
ftp://ftp.ucar.edu/mesouser/MM5V3/TESTDATA/input2little_r.tar
|