NCEPLIBS-ip  5.0.0
ip_equid_cylind_grid_mod Module Reference

Equidistant cylindrical grib decoder and grid coordinate transformations. More...

Data Types

type  ip_equid_cylind_grid
 

Functions/Subroutines

subroutine equid_cylind_grid_area (RLAT, AREA)
 Computes the grid box area for a equidistant cylindrical grid. More...
 
subroutine equid_cylind_map_jacob (XLON, XLAT, YLON, YLAT)
 Computes the map jacobians for a equidistant cylindrical grid. More...
 
subroutine equid_cylind_vect_rot (CROT, SROT)
 Computes the vector rotation sines and cosines for a equidistant cylindrical grid. More...
 
subroutine gdswzd_equid_cylind (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) for equidistant cylindrical grids. More...
 
subroutine init_grib1 (self, g1_desc)
 Initializes an equidistant cylindrical grid given a grib1_descriptor object. More...
 
subroutine init_grib2 (self, g2_desc)
 Initializes an equidistant cylindrical grid given a grib2_descriptor object. More...
 

Variables

real dlat
 Grid resolution in degrees n/s direction. More...
 
real dlon
 Grid resolution in degrees e/w direction. More...
 
real rerth
 Radius of the Earth. More...
 

Detailed Description

Equidistant cylindrical grib decoder and grid coordinate transformations.

Octet numbers refer to [GRIB2 - GRID DEFINITION TEMPLATE 3.0 Latitude/Longitude or equidistant cylindrical, or Plate Carree](https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_temp3-0.shtml).

Author
George Gayno, Mark Iredell, Kyle Gerheiser
Date
July 2021

Function/Subroutine Documentation

◆ equid_cylind_grid_area()

subroutine ip_equid_cylind_grid_mod::equid_cylind_grid_area ( real, intent(in)  RLAT,
real, intent(out)  AREA 
)
private

Computes the grid box area for a equidistant cylindrical grid.

Parameters
[in]rlatLatitude of grid point in degrees.
[out]areaArea weights in m^2.
Author
Mark Iredell, George Gayno
Date
July 2021

Definition at line 363 of file ip_equid_cylind_grid_mod.F90.

References dlat, dlon, and rerth.

Referenced by gdswzd_equid_cylind().

◆ equid_cylind_map_jacob()

subroutine ip_equid_cylind_grid_mod::equid_cylind_map_jacob ( real, intent(out)  XLON,
real, intent(out)  XLAT,
real, intent(out)  YLON,
real, intent(out)  YLAT 
)
private

Computes the map jacobians for a equidistant cylindrical grid.

Parameters
[out]xlondx/dlon in 1/degrees.
[out]xlatdx/dlat in 1/degrees.
[out]ylondy/dlon in 1/degrees.
[out]ylatdy/dlat in 1/degrees.
Author
George Gayno
Date
July 2021

Definition at line 346 of file ip_equid_cylind_grid_mod.F90.

References dlat, and dlon.

Referenced by gdswzd_equid_cylind().

◆ equid_cylind_vect_rot()

subroutine ip_equid_cylind_grid_mod::equid_cylind_vect_rot ( real, intent(out)  CROT,
real, intent(out)  SROT 
)
private

Computes the vector rotation sines and cosines for a equidistant cylindrical grid.

Parameters
[out]crotClockwise vector rotation cosines.
[out]srotClockwise vector rotation sines.
Note
  • ugrid=crot*uearth-srot*vearth;
  • vgrid=srot*uearth+crot*vearth
Author
George Gayno
Date
July 2021

Definition at line 327 of file ip_equid_cylind_grid_mod.F90.

Referenced by gdswzd_equid_cylind().

◆ gdswzd_equid_cylind()

subroutine ip_equid_cylind_grid_mod::gdswzd_equid_cylind ( class(ip_equid_cylind_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 
)
private

Calculates Earth coordinates (iopt = 1) or grid coorindates (iopt = -1) for equidistant cylindrical grids.

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, the map jacobians and the grid box areas 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.

Parameters
[in]selfThe grid object gdswzd was called on.
[in]ioptoption flag
  • +1 to compute earth coords of selected grid coords.
  • -1 o compute grid coords of selected earth coords.
[in]nptsMaximum number of coordinates.
[in]fillFill value to set invalid output data. Must be impossible value; suggested value: -9999.
[in,out]xptsGrid x point coordinates if iopt>0.
[in,out]yptsGrid y point coordinates if iopt>0.
[in,out]rlonEarth longitudes in degrees e if iopt<0 (Acceptable range: -360. to 360.)
[in,out]rlatEarth latitudes in degrees n if iopt<0 (Acceptable range: -90. to 90.)
[out]nretNumber of valid points computed.
[out]crotOptional clockwise vector rotation cosines.
[out]srotOptional clockwise vector rotation sines.
[out]xlonOptional dx/dlon in 1/degrees.
[out]xlatOptional dx/dlat in 1/degrees.
[out]ylonOptional dy/dlon in 1/degrees.
[out]ylatOptional dy/dlat in 1/degrees.
[out]areaOptional area weights in m**2.
Author
Mark Iredell, George Gayno, Kyle Gerheiser
Date
July 2021

Definition at line 203 of file ip_equid_cylind_grid_mod.F90.

References dlat, dlon, equid_cylind_grid_area(), equid_cylind_map_jacob(), equid_cylind_vect_rot(), and rerth.

◆ init_grib1()

subroutine ip_equid_cylind_grid_mod::init_grib1 ( class(ip_equid_cylind_grid), intent(inout)  self,
type(grib1_descriptor), intent(in)  g1_desc 
)
private

Initializes an equidistant cylindrical grid given a grib1_descriptor object.

Parameters
[in,out]selfThe grid to initialize
[in]g1_descA grib1_descriptor
Author
Kyle Gerheiser
Date
July 2021

Definition at line 53 of file ip_equid_cylind_grid_mod.F90.

◆ init_grib2()

subroutine ip_equid_cylind_grid_mod::init_grib2 ( class(ip_equid_cylind_grid), intent(inout)  self,
type(grib2_descriptor), intent(in)  g2_desc 
)
private

Initializes an equidistant cylindrical grid given a grib2_descriptor object.

Parameters
[in,out]selfThe grid to initialize
[in]g2_descA grib2_descriptor
Author
Kyle Gerheiser
Date
July 2021

Definition at line 109 of file ip_equid_cylind_grid_mod.F90.

Variable Documentation

◆ dlat

real ip_equid_cylind_grid_mod::dlat
private

Grid resolution in degrees n/s direction.

Definition at line 40 of file ip_equid_cylind_grid_mod.F90.

Referenced by equid_cylind_grid_area(), equid_cylind_map_jacob(), and gdswzd_equid_cylind().

◆ dlon

real ip_equid_cylind_grid_mod::dlon
private

Grid resolution in degrees e/w direction.

Definition at line 41 of file ip_equid_cylind_grid_mod.F90.

Referenced by equid_cylind_grid_area(), equid_cylind_map_jacob(), and gdswzd_equid_cylind().

◆ rerth

real ip_equid_cylind_grid_mod::rerth
private

Radius of the Earth.

Definition at line 42 of file ip_equid_cylind_grid_mod.F90.

Referenced by equid_cylind_grid_area(), and gdswzd_equid_cylind().