NCEPLIBS-ip
4.2.0
|
Lambert conformal grib decoder and grid coordinate transformations. More...
Data Types | |
type | ip_lambert_conf_grid |
Functions/Subroutines | |
subroutine | gdswzd_lambert_conf (self, IOPT, NPTS, FILL, XPTS, YPTS, RLON, RLAT, NRET, CROT, SROT, XLON, XLAT, YLON, YLAT, AREA) |
GDS wizard for lambert conformal conical. More... | |
subroutine | init_grib1 (self, g1_desc) |
Initializes a Lambert Conformal grid given a grib1_descriptor object. More... | |
subroutine | init_grib2 (self, g2_desc) |
Initializes a Lambert Conformal grid given a grib2_descriptor object. More... | |
subroutine | lambert_conf_grid_area (RLAT, FILL, DR, AREA) |
Grid box area for lambert conformal conical. More... | |
subroutine | lambert_conf_map_jacob (RLAT, FILL, DLON, DR, XLON, XLAT, YLON, YLAT) |
Map jacobians for lambert conformal conical. More... | |
subroutine | lambert_conf_vect_rot (DLON, CROT, SROT) |
Vector rotation fields for lambert conformal conical. More... | |
Variables | |
real | an |
Cone factor. More... | |
real | dxs |
x-direction grid length adjusted for scan mode. More... | |
real | dys |
y-direction grid length adjusted for scan model. More... | |
real | h |
Hemisphere flag. More... | |
integer | irot |
vector rotation flag. More... | |
real | rerth |
Radius of the earth. More... | |
Lambert conformal grib decoder and grid coordinate transformations.
Octet numbers refer to [GRIB2 - GRID DEFINITION TEMPLATE 3.30 Lambert conformal](https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_temp3-30.shtml).
|
private |
GDS wizard for lambert conformal conical.
This subprogram decodes the grib 2 grid definition template (passed in integer form as decoded by the ncep g2 library) and returns one of the following:
Works for lambert conformal conical projections.
If the selected coordinates are more than one gridpoint beyond the the edges of the grid domain, then the relevant output elements are set to fill values.
The actual number of valid points computed is returned too.
Optionally, the vector rotations, map jacobians and grid box areas for this grid may be returned as well.
To compute the vector rotations, the optional arguments 'srot' and 'crot' must be present. To compute the map jacobians, the optional arguments 'xlon', 'xlat', 'ylon', 'ylat' must be present. To compute the grid box areas the optional argument 'area' must be present.
Date | Programmer | Comments |
---|---|---|
96-04-10 | iredell | Initial. |
96-10-01 | iredell | protected against unresolvable points |
97-10-20 | iredell | include map options |
1999-04-27 | gilbert | corrected minor error calculating variable an for the secant projection case (rlati1.ne.rlati2). |
2012-08-14 | gayno | fix problem with sh grids. Ensure grid box area always positive. |
2015-01-21 | gayno | merger of gdswiz03() and gdswzd03(). Make crot,sort,xlon,xlat,ylon,ylat and area optional arguments. Make part of a module. Move vector rotation, map jacobian and grid box area computations to separate subroutines. |
2015-07-13 | gayno | Convert to grib 2. Replace grib 1 kgds array with grib 2 grid definition template array. Rename routine. |
2018-07-20 | wesley | add threads. |
[in] | self | ip_lambert_conf_grid object. |
[in] | iopt | option flag
|
[in] | npts | maximum number of coordinates |
[in] | fill | fill value to set invalid output data (must be impossible value; suggested value: -9999.) |
[in,out] | xpts | (npts) grid x point coordinates if iopt>0 |
[in,out] | ypts | (npts) grid y point coordinates if iopt>0 |
[in,out] | rlon | (npts) earth longitudes in degrees e if iopt<0 (acceptable range: -360. to 360.) |
[in,out] | rlat | (npts) earth latitudes in degrees n if iopt<0 (acceptable range: -90. to 90.) |
[out] | nret | number of valid points computed |
[out] | crot | optional (npts) clockwise vector rotation cosines |
[out] | srot | optional (npts) clockwise vector rotation sines (ugrid=crot*uearth-srot*vearth; vgrid=srot*uearth+crot*vearth) |
[out] | xlon | optional (npts) dx/dlon in 1/degrees |
[out] | xlat | optional (npts) dx/dlat in 1/degrees |
[out] | ylon | optional (npts) dy/dlon in 1/degrees |
[out] | ylat | optional (npts) dy/dlat in 1/degrees |
[out] | area | optional (npts) area weights in m**2 (proportional to the square of the map factor) |
Definition at line 219 of file ip_lambert_conf_grid_mod.F90.
References an, dxs, dys, h, irot, lambert_conf_grid_area(), lambert_conf_map_jacob(), lambert_conf_vect_rot(), and rerth.
|
private |
Initializes a Lambert Conformal grid given a grib1_descriptor object.
[in,out] | self | The grid to initialize |
[in] | g1_desc | A grib1_descriptor |
Definition at line 60 of file ip_lambert_conf_grid_mod.F90.
|
private |
Initializes a Lambert Conformal grid given a grib2_descriptor object.
[in,out] | self | The grid to initialize |
[in] | g2_desc | A grib2_descriptor |
Definition at line 112 of file ip_lambert_conf_grid_mod.F90.
|
private |
Grid box area for lambert conformal conical.
This subprogram computes the grid box area for a lambert conformal conical grid.
Date | Programmer | Comments |
---|---|---|
2015-01-21 | Gayno | initial version |
2015-09-17 | Gayno | rename as "lambert_conf_grid_area" |
2018-07-20 | Wesley | pass in dr for threading. |
[in] | rlat | latitude of grid point in degrees (real) |
[in] | fill | fill value for undefined points (real) |
[in] | dr | distance from pole point (real) |
[out] | area | area weights in m**2 (real) |
Definition at line 468 of file ip_lambert_conf_grid_mod.F90.
References an, dxs, dys, and rerth.
Referenced by gdswzd_lambert_conf().
|
private |
Map jacobians for lambert conformal conical.
This subprogram computes the map jacobians for a lambert conformal conical grid.
Date | Programmer | Comments |
---|---|---|
2015-01-21 | Gayno | initial version |
2015-09-17 | Gayno | rename as "lambert_conf_map_jacob" |
2018-07-20 | Wesley | pass dlon and dr for threading. |
[in] | rlat | grid point latitude in degrees (real) |
[in] | fill | fill value for undefined points (real) |
[in] | dlon | distance from orientation longitude (real) |
[in] | dr | distance from pole point (real) |
[out] | xlon | dx/dlon in 1/degrees (real) |
[out] | xlat | dx/dlat in 1/degrees (real) |
[out] | ylon | dy/dlon in 1/degrees (real) |
[out] | ylat | dy/dlat in 1/degrees (real) |
Definition at line 427 of file ip_lambert_conf_grid_mod.F90.
References an, dxs, dys, and h.
Referenced by gdswzd_lambert_conf().
|
private |
Vector rotation fields for lambert conformal conical.
This subprogram computes the vector rotation sines and cosines for a lambert conformal conical grid.
Date | Programmer | Comments |
---|---|---|
2015-01-21 | gayno | initial version |
2015-09-17 | gayno | rename as "lambert_conf_vect_rot" |
2018-07-20 | wesley | pass in dlon for threading. |
[in] | dlon | from orientation longitude (real) |
[out] | crot | vector rotation cosines (real) |
[out] | srot | vector rotation sines (real) (ugrid=crot*uearth-srot*vearth; vgrid=srot*uearth+crot*vearth) |
Definition at line 390 of file ip_lambert_conf_grid_mod.F90.
Referenced by gdswzd_lambert_conf().
|
private |
Cone factor.
Definition at line 45 of file ip_lambert_conf_grid_mod.F90.
Referenced by gdswzd_lambert_conf(), lambert_conf_grid_area(), lambert_conf_map_jacob(), and lambert_conf_vect_rot().
|
private |
x-direction grid length adjusted for scan mode.
GRIB2, Section 3, octets 56-59.
Definition at line 46 of file ip_lambert_conf_grid_mod.F90.
Referenced by gdswzd_lambert_conf(), lambert_conf_grid_area(), and lambert_conf_map_jacob().
|
private |
y-direction grid length adjusted for scan model.
GRIB2, Section 3, octets 60-63.
Definition at line 47 of file ip_lambert_conf_grid_mod.F90.
Referenced by gdswzd_lambert_conf(), lambert_conf_grid_area(), and lambert_conf_map_jacob().
|
private |
Hemisphere flag.
1-NH, minus 1-SH.
Definition at line 48 of file ip_lambert_conf_grid_mod.F90.
Referenced by gdswzd_lambert_conf(), and lambert_conf_map_jacob().
|
private |
vector rotation flag.
When "1", vectors are grid relative. When "0", vectors are earth relative. GRIB2, Section 3, octet 55.
Definition at line 44 of file ip_lambert_conf_grid_mod.F90.
Referenced by gdswzd_lambert_conf(), and lambert_conf_vect_rot().
|
private |
Radius of the earth.
GRIB2, Section 3, octets 15-30.
Definition at line 49 of file ip_lambert_conf_grid_mod.F90.
Referenced by gdswzd_lambert_conf(), and lambert_conf_grid_area().