NCEPLIBS-ip 4.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_error (IOPT, FILL, RLAT, RLON, XPTS, YPTS, NPTS)
 
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
 
real dlon
 
real rerth
 

Detailed Description

Equidistant cylindrical grib decoder and grid coordinate transformations.

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

Function/Subroutine Documentation

◆ equid_cylind_error()

subroutine ip_equid_cylind_grid_mod::equid_cylind_error ( integer, intent(in)  IOPT,
real, intent(in)  FILL,
real, dimension(npts), intent(out)  RLAT,
real, dimension(npts), intent(out)  RLON,
real, dimension(npts), intent(out)  XPTS,
real, dimension(npts), intent(out)  YPTS,
integer, intent(in)  NPTS 
)
private

Definition at line 306 of file ip_equid_cylind_grid_mod.f90.

◆ 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 405 of file ip_equid_cylind_grid_mod.f90.

◆ 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
[in]yptsy-index of grid point.
[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 388 of file ip_equid_cylind_grid_mod.f90.

◆ 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 368 of file ip_equid_cylind_grid_mod.f90.

◆ 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 193 of file ip_equid_cylind_grid_mod.f90.

◆ 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 41 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 98 of file ip_equid_cylind_grid_mod.f90.

Variable Documentation

◆ dlat

real ip_equid_cylind_grid_mod::dlat
private

Definition at line 28 of file ip_equid_cylind_grid_mod.f90.

◆ dlon

real ip_equid_cylind_grid_mod::dlon
private

Definition at line 29 of file ip_equid_cylind_grid_mod.f90.

◆ rerth

real ip_equid_cylind_grid_mod::rerth
private

Definition at line 30 of file ip_equid_cylind_grid_mod.f90.