Emoslib is now deprecated

Parameter types

 

NameTypeUsage
HPARNCHARACTER*(*)Keyword
INTVINTEGERInteger value(s)
REALVREALReal value(s)
CHARVCHARACTER*(*)Character value(s)

Parameters INTV, REALV and CHARV must be given in every call, although only one of them at a time contains information about the keyword.

Depending on the parameter in HPARN, the arrays INTV or REALV may contain none, one or several values.

A 'grid' request generates a regular grid which is assumed to start at longitude 0 deg West and to contain a line of latitude at the equator. For example, if a 6x6 degree grid is requested, latitudes will be generated at 90, 84, ... , 0, -6, ... , -90. If 'area' is used to specify a sub-area, the area definitions are compared with the underlying global grid and adjusted to encompass the specified area. In the example of the 6x6 degree grid, a request for a sub-area of (87,-3,-81,15) would produce an expanded area of (90,-6,-84,18).

Using 'gaussian' requests that the output field will be regular or quasi-regular Gaussian according as the input field is regular or quasi-regular Gaussian.

The 'packing' specified is only applied to output fields if an interpolation has taken place. The complex packing technique is only applied to spectral fields; second-order packing is only applied to grid point fields. Simple packing can be applied to either spectral or grid point.

Using 'regular' (or 'reduced') forces the output field to be regular (or quasi-regular) Gaussian.

If the 'user_reduced_gaussian' option is taken, both 'g_pnts' and 'g_lats' must be used subsequently, and in that order, to provide values defining the quasi-regular grid.

If the 'user_regular_gaussian' is employed, 'g_lats' must be used subsequently to provide values defining the quasi-regular grid.

Rotation

A 'rotation' can be applied to spectral or Gaussian fields.

If the input is a spectral field and the output is a rotated spectral field, a file of rotation coefficients is generated and used in the processing. The convergence of the algorithm for rotating the spectral fields is sensitive to the spectral truncation. For some high resolutions and some large angles of rotation, it is necessary to split the rotation into three steps (two forwards and one backwards!). The size of the rotation coefficient files can be very large.

If the input is a spectral field and the output is a rotated grid point field, the spectral field is interpolated to a non-rotated Gaussian grid which is then transformed to the required rotated grid point field using a 12-point interpolation based on the FULL-POS scheme used in the ECMWF forecast model.

A rotated grid-point field is created from an input grid-point field by finding for each rotated grid-point its nearest four neighbours in the unrotated field and carrying out a bilinear interpolation.

 

Parameter values

HPARNParameterCommentsDefault
'accuracy'INTV(1) = nn is the number of bits to be used for each packed value.
As input.
16 if input is array.
'area'
REALV(1) = North
REALV(2) = West
REALV(3) = South
REALV(4) = East
Negative values:
west of Greenwich and south of the Equator.

0/0/0/0 signifies the whole globe.
0/0/0/0
'bitmap'CHARV = filename'filename' is a unix file containing a bitmap definition.None
'form'
CHARV(1) = 'grib'
CHARV(2) = 'unpacked'
Input fields are in GRIB.
Input fields are in a REAL array.
'grib'
'frame'INTV(1) = nn is the width of the frame in grid points.None
'gaussian'INTV(1) = nn is the gaussian grid number.None
'gauss_from_file'CHARV = filename
'filename' is a unix file defining a (reduced)
gaussian grid. It contains 32-bit integers:
- the gaussian grid number, N say
- the number of points at latitude 1
  (the northern latitude)
- the number of points at latitude 2
    ...
- the number of points at latitude N
The grid is assumed symmetric about the Equator,
only Northern Hemisphere latitudes are defined.
None
'g_lats'
REALV(1) = 1_lat
REALV(2) = 2_lat
:               
REALV(n) = n_lat
n_lat is the row latitude.

n is the number of latitude rows between a Pole
and the Equator (the gaussian grid number).
*
'g_pnts'
INTV(1) = 1_lat
INTV(2) = 2_lat
:
INTV(n) = n_lat
n_lat is the number of grid points along the latitude.

n is the number of latitude rows between a Pole and
the Equator (the gaussian grid number).
*
'grid'
REALV(1) = WE
REALV(2) = NS
WE is the grid spacing west to east.
NS is the grid spacing north to south.
None
None
'level'INTV(1) = nn is the field level (code table 3).None
'levtype'INTV(1) = nn is the type of level (code table 3).None
'packing'
CHARV = 'simple'
CHARV = 'complex'
CHARV = 'second order'
CHARV = 'archived value'
simple:         simple packing for spectral or grid point.
complex:        complex packing for spectral data.
second order:   second-order packing for grid-point data.
archived value: packing corresponding to that of the input.
'archived value'
'reduced'INTV(1) = n
n is the number of latitude rows between a Pole and the Equator 
(the Gaussian grid number).
As input if GRIB, 
otherwise none.
'regular'INTV(1) = n
n is the number of latitude rows between a Pole and the Equator 
(the Gaussian grid number).
As input if GRIB, 
otherwise none.
'rotation'
REALV(1) =lat
REALV(2) =long
lat/long gives the latitude/longitude of the point which
becomes the new south pole of the rotated field.
None
'scan'INTV(1) = n
scanning mode (code table 8).
0 = data values scanned west to east within lines, lines
    scanned from north to south.
0
'specification'INTV(1) = 12
Specification of reduced Gaussian grid to use.Can only be used with
N80 or N160 reduced grids to force an old grid definition to be used
(Research Department designated _12) which has 12 points in the
northernmost and southernmost latitudes.
12 = RD definition _12

Operational reduced
Gaussian specification

'style'CHARV(1) = 'dissemination'

A latitude/longitude grid point field is generated at resolution 0.5x0.5. Points for the desired
output resolution are selected from the 0.5x0.5 grid.

-
'table'INTV(1) = n
n is the version number of the parameter code table.
1   = WMO
128 = ECMWF local table
128
'truncation'INTV(1) = nn is the spectral truncation.None
'user_reduced_gaussian'INTV(1) = n
n is the number of latitude rows between a pole and
the equator (the Gaussian grid number).
None
'user_regular_gaussian'INTV(1) = n
n is the number of latitude rows between a pole and
the equator (the Gaussian grid number).
None