5.5 Interp
The V3 INTERP program will be divided into three separate
programs according to its functions.
Front-end Interp (interpf)
The V3 INTERP program is a f90 source code that handles only
the standard front-end tasks on a single domain for model input
generation. The code has been modified by NOAA/FSL, AFWA and
by NCAR. The direct access files have been replaced by dynamically
allocated memory, which implies that INTERP uses significantly
more memory than previous versions. Because the INTERP program
dynamically allocates the required memory, there is no need
to re-compile the code for different sized horizontal configurations,
input vertical levels or output vertical levels.
The MM5 v3 code expects three types of input files: initial
condition of the meteorological fields, lateral boundary conditions
of the meteorological fields and the lower boundary condition
(just the reservoir temperature currently). These files are
named MMINPUT_DOMAINx, BDYOUT_DOMAINx and LOWBDY_DOMAINx, where
"x" is the grid identifier bhi(13,1). The INTERP code
must be run multiple times to generate more than a single domain
of input for the model.
The files from the INTERP program are all in the v3 format,
including the BDYOUT_DOMAINx file. The MMINPUT_DOMAINx file
does not have coupled output, but for convenience inside the
model, the BDYOUT_DOMAINx file is coupled with p* (kPa). The
boundary file no longer has p* or p* tendencies in the data
set.
There is no hydrostatic option in INTERP, consistent with
removing this capability from the model in the v3 release. The
user may have the output for the initial condition MMINPUT_DOMAINx
contain only a specified number of time slices to permit analysis
nudging in the model. An option for diagnosing mixing ratio
with respect to water only or water and ice is available. The
choice of using surface data in the vertical interpolation is
now located in the namelist. Users may also spread the surface
data through several sigma layers in the vertical interpolation.
All of the date computations are Y2K compliant. The date information
input to the program through the namelist is split into multiple
integers (year, month, day, hour). The only input file other
than the namelist is the first-guess file that is specified
in the namelist.
The code is built with a 2-level Makefile. In the top directory,
the user types # make XXX, where "XXX" is cray, dec,
hp, ibm or sgi. The code does not currently work on the Sun
architecture.
The INTERP namelist file is named "namelist.input"
and must be in the user's current working directory. The namelist
has comments (anything after a "!" on a line). This
is part of the f95 standard. SGI and Cray machines do not yet
support this capability, so the comments need to be removed
when running on one of those platforms. IBM and Compaq support
comments.
The namelist is broken into several records. All of the user
defined information to run the INTERP program is provided by
namelist options.
The new INTERP program accepts only a single input file and
does no horizontal interpolation. Only a first-guess pressure-level
data set may be input to INTERP. In the MM5 system, this file
is either from regridder or from RAWINS/little_r. The file name
may contain directory information.
&record0
input_file = `/mmmtmp/mesouser/v3/rawins.out.v3' / ! Input file name
The dates are specified as components: a 4-digit year, 2-digit
month, 2-digit day and 2-digit hour. Both the starting and ending
time of the INTERP processing are required. The time interval
is specified in seconds.
&record1
start_year = 1993 ! The starting and
start_month = 03 ! ending dates to
start_day = 13 ! process
start_hour = 00 !
end_year = 1993 !
end_month = 03 !
end_day = 14 !
end_hour = 00 !
interval = 43200 / ! time difference (s)
The next record deals loosely with vertical information. The
sigma data are to be filled in as full levels, in the bottom-up
orientation. The user must have 1.0 as the first value, 0.0
as the last value, and a monotonically decreasing distribution
between these two anchoring points.
The pressure at the model lid is given in Pa. The switch "isfc"
allows the user to adjust how many layers are required to use
the surface data from the input. Isfc=0 forces the traditional
technique where the two surrounding pressure levels are interpolated
to the sigma surface. Isfc=1 directly injects the surface data
as the lowest sigma level. Isfc=N, where N > 1, uses the
surface data for all interpolations to the N sigma layers closest
to the ground.
&record2
sigma_f_bu = 1.00,0.99,0.98,0.96,0.93,0.89, ! full sigma, bottom-up,
0.85,0.80,0.75,0.70,0.65,0.60, ! start with 1.0, end
0.55,0.50,0.45,0.40,0.35,0.30, ! with 0.0
0.25,0.20,0.15,0.10,0.05,0.00 !
ptop = 10000 ! in Pa
isfc = 0 / ! # sigma levels to spread
! surface information
The MM5 base state is built in INTERP. The user supplies the
reference sea-level pressure (1.e5 Pa), the temperature lapse
rate (50 d(T)/d(ln P)), and the reference sea-level temperature
(K).
&record3 p0 = 1.e5 ! base state sea-level pres (Pa)
tlp = 50 ! base state lapse rate d(T)/d(ln P)
ts0 = 275 / ! base state sea-level temp (K)
tiso = 0 / ! base state isothermal stratospheric temp (K)
To turn off the isothermal part of the base state, leave tiso=0.
This option is useful if the trapopause is low and your model
top is well within statosphere.
Several user options are available. Options exists to remove
the integrated mean divergience, to force the interpolation
scheme to use the meteorological surface field (u, v, T, RH),
and the choice of computing specific humidty with respect to
water (T) or ice (F).
&record4 removediv = .TRUE. ! T/F remove integrated mean divergence
usesfc = .TRUE. ! T/F use surface data
wrth2o = .TRUE. / ! T/F specific humidity wrt H2O
For users not doing any grid point nudging, the option is
available to simply output a single time for the initial condition.
Ifdatim=N says to output N time periods of initital condition
data. This option does not effect the period through which the
lateral boundary file or the lower boundary file are valid.
This option simply reduces the amount of data that is written
to the initial condition file. Without analysis FDDA, ifdatim=1
is adeqate for the model.
&record5 ifdatim = 3 / ! # of IC time periods to output
One-Way Interp (nestdown)
This is a backend option in V2 Interp. This is rewritten in
Fortran 90, and the program will create one-way nest input files
for MM5.
Back-end Interp II: (interpb)
This is another backend option in V2 Interp. This will be
rewritten in Fortran 90, and the program will do simple one-domain
vertical interpolation from sigma level to pressure level, including
generating data in the format of Regrid output (the `First-guess'
option).
This backend program will be available at a later time