NCEPLIBS-ip 5.2.0
|
Public Member Functions | |
procedure | field_pos (self, i, j) |
Field position for a given grid point. | |
procedure | gdswzd (self, iopt, npts, fill, xpts, ypts, rlon, rlat, nret, crot, srot, xlon, xlat, ylon, ylat, area) |
Calculates Earth coordinates (iopt = 1) or grid coorindates (iopt = -1). | |
generic | init init_grib1 |
Init subprogram. | |
generic | init init_grib2 |
Init subprogram. | |
procedure | init_grib1 (self, g1_desc) |
Initializes a grid given a grib1_descriptor object. | |
procedure | init_grib2 (self, g2_desc) |
Initializes a grid given a grib2_descriptor object. | |
Data Fields | |
class(ip_grid_descriptor), allocatable | descriptor |
Descriptor. | |
real | dxs |
'x'-direction grid length, adjusted by the scanning mode. | |
real | dys |
'y'-direction grid length, adjusted by the scanning mode. | |
real | eccen_squared |
Eccentricity of the Earth squared (e^2). | |
logical | elliptical |
When true/false, computations are based on an elliptical/spherical earth. | |
real | h |
Hemisphere flag. | |
integer | im |
Number of x points. | |
integer | irot |
Rotation flag. | |
integer | iwrap |
x wraparound increment (0 if no wraparound). | |
integer | jm |
Number of y points. | |
integer | jwrap1 |
y wraparound lower pivot point (0 if no wraparound). | |
integer | jwrap2 |
y wraparound upper pivot point (0 if no wraparound). | |
integer | kscan |
Mass/wind flag for staggered diagonal (0 if mass; 1 if wind). | |
integer | nm |
Total number of points. | |
integer | nscan |
integer | nscan_field_pos |
nscan for field_pos routine. | |
real | orient |
Orientation longitude. | |
real | rerth |
Radius of the Earth. | |
real | rlat1 |
Latitude of the first grid point. | |
real | rlon1 |
Longitude of the first grid point. | |
real | slatr |
Standard latitude of grid in radians. | |
Definition at line 23 of file ip_polar_stereo_grid_mod.F90.
|
inherited |
Field position for a given grid point.
Returns the field position for a given grid point.
[in] | self | |
[in] | i | |
[in] | j |
Definition at line 91 of file ip_grid_mod.F90.
procedure ip_polar_stereo_grid_mod::ip_polar_stereo_grid::gdswzd | ( | class(ip_polar_stereo_grid), intent(in) | self, |
integer, intent(in) | iopt, | ||
integer, intent(in) | npts, | ||
real, intent(in) | fill, | ||
real, dimension(npts), intent(inout) | xpts, | ||
real, dimension(npts), intent(inout) | ypts, | ||
real, dimension(npts), intent(inout) | rlon, | ||
real, dimension(npts), intent(inout) | rlat, | ||
integer, intent(out) | nret, | ||
real, dimension(npts), intent(out), optional | crot, | ||
real, dimension(npts), intent(out), optional | srot, | ||
real, dimension(npts), intent(out), optional | xlon, | ||
real, dimension(npts), intent(out), optional | xlat, | ||
real, dimension(npts), intent(out), optional | ylon, | ||
real, dimension(npts), intent(out), optional | ylat, | ||
real, dimension(npts), intent(out), optional | area | ||
) |
Calculates Earth coordinates (iopt = 1) or grid coorindates (iopt = -1).
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 polar stereographic azimuthal 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 may be returned as well. Routine works for both spherical and elliptical earths with the exception of the map jacobians and grid box areas, which are only computed for spherical earths.
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 |
97-10-20 | iredell | include map options |
09-05-13 | gayno | ensure area always positive |
2015-01-21 | gayno | merger of gdswiz05 and gdswzd05. 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. include option for elliptical earths. |
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 threading. |
[in] | self | grid |
[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 46 of file ip_polar_stereo_grid_mod.F90.
|
inherited |
|
inherited |
procedure ip_polar_stereo_grid_mod::ip_polar_stereo_grid::init_grib1 | ( | class(ip_polar_stereo_grid), intent(inout) | self, |
type(grib1_descriptor), intent(in) | g1_desc | ||
) |
Initializes a grid given a grib1_descriptor object.
[in,out] | self | The grid to initialize |
[in] | g1_desc | A grib1_descriptor |
Definition at line 39 of file ip_polar_stereo_grid_mod.F90.
procedure ip_polar_stereo_grid_mod::ip_polar_stereo_grid::init_grib2 | ( | class(ip_polar_stereo_grid), intent(inout) | self, |
type(grib2_descriptor), intent(in) | g2_desc | ||
) |
Initializes a grid given a grib2_descriptor object.
[in,out] | self | The grid to initialize |
[in] | g2_desc | A grib2_descriptor |
Definition at line 42 of file ip_polar_stereo_grid_mod.F90.
|
inherited |
Descriptor.
Definition at line 59 of file ip_grid_mod.F90.
real ip_polar_stereo_grid_mod::ip_polar_stereo_grid::dxs |
'x'-direction grid length, adjusted by the scanning mode.
Definition at line 29 of file ip_polar_stereo_grid_mod.F90.
real ip_polar_stereo_grid_mod::ip_polar_stereo_grid::dys |
'y'-direction grid length, adjusted by the scanning mode.
Definition at line 30 of file ip_polar_stereo_grid_mod.F90.
|
inherited |
Eccentricity of the Earth squared (e^2).
Definition at line 78 of file ip_grid_mod.F90.
logical ip_polar_stereo_grid_mod::ip_polar_stereo_grid::elliptical |
When true/false, computations are based on an elliptical/spherical earth.
Definition at line 24 of file ip_polar_stereo_grid_mod.F90.
real ip_polar_stereo_grid_mod::ip_polar_stereo_grid::h |
|
inherited |
Number of x points.
Definition at line 61 of file ip_grid_mod.F90.
integer ip_polar_stereo_grid_mod::ip_polar_stereo_grid::irot |
Rotation flag.
When '0' the u/v vector components are relative to north/east. When '1' the u/v vector components are grid relative.
Definition at line 35 of file ip_polar_stereo_grid_mod.F90.
|
inherited |
x wraparound increment (0 if no wraparound).
Definition at line 74 of file ip_grid_mod.F90.
|
inherited |
Number of y points.
Definition at line 62 of file ip_grid_mod.F90.
|
inherited |
y wraparound lower pivot point (0 if no wraparound).
Definition at line 75 of file ip_grid_mod.F90.
|
inherited |
y wraparound upper pivot point (0 if no wraparound).
Definition at line 76 of file ip_grid_mod.F90.
|
inherited |
Mass/wind flag for staggered diagonal (0 if mass; 1 if wind).
Definition at line 70 of file ip_grid_mod.F90.
|
inherited |
Total number of points.
Definition at line 63 of file ip_grid_mod.F90.
|
inherited |
Scanning | mode.
|
Definition at line 69 of file ip_grid_mod.F90.
|
inherited |
nscan for field_pos routine.
Can be different than nscan due to differences in grib/grib2.
Definition at line 72 of file ip_grid_mod.F90.
real ip_polar_stereo_grid_mod::ip_polar_stereo_grid::orient |
Orientation longitude.
Definition at line 27 of file ip_polar_stereo_grid_mod.F90.
|
inherited |
Radius of the Earth.
Definition at line 77 of file ip_grid_mod.F90.
real ip_polar_stereo_grid_mod::ip_polar_stereo_grid::rlat1 |
Latitude of the first grid point.
Definition at line 25 of file ip_polar_stereo_grid_mod.F90.
real ip_polar_stereo_grid_mod::ip_polar_stereo_grid::rlon1 |
Longitude of the first grid point.
Definition at line 26 of file ip_polar_stereo_grid_mod.F90.
real ip_polar_stereo_grid_mod::ip_polar_stereo_grid::slatr |
Standard latitude of grid in radians.
Definition at line 31 of file ip_polar_stereo_grid_mod.F90.