NCEPLIBS-ip 4.0.0
ip_gaussian_grid_mod Module Reference

Gaussian grid coordinate transformations. More...

Data Types

type  ip_gaussian_grid
 

Functions/Subroutines

subroutine gaussian_error (IOPT, FILL, RLAT, RLON, XPTS, YPTS, NPTS)
 
subroutine gaussian_grid_area (YPTS, AREA)
 Computes the grid box area for a gaussian cylindrical grid. More...
 
subroutine gaussian_map_jacob (YPTS, XLON, XLAT, YLON, YLAT)
 Computes the map jacobians for a gaussian cylindrical grid. More...
 
subroutine gaussian_vect_rot (CROT, SROT)
 Computes the vector rotation sines and cosines for a gaussian cylindrical grid. More...
 
subroutine gdswzd_gaussian (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 Gaussian grids. More...
 
subroutine init_grib1 (self, g1_desc)
 Initializes a gaussian grid given a grib1_descriptor object. More...
 
subroutine init_grib2 (self, g2_desc)
 Initializes a gaussian grid given a grib2_descriptor object. More...
 

Variables

real, dimension(:), allocatable blat
 
real dlon
 
integer j1
 
integer jh
 
real rerth
 
real, dimension(:), allocatable ylat_row
 

Detailed Description

Gaussian grid coordinate transformations.

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

Function/Subroutine Documentation

◆ gaussian_error()

subroutine ip_gaussian_grid_mod::gaussian_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 351 of file ip_gaussian_grid_mod.f90.

◆ gaussian_grid_area()

subroutine ip_gaussian_grid_mod::gaussian_grid_area ( real, intent(in)  YPTS,
real, intent(out)  AREA 
)
private

Computes the grid box area for a gaussian cylindrical grid.

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

Definition at line 454 of file ip_gaussian_grid_mod.f90.

◆ gaussian_map_jacob()

subroutine ip_gaussian_grid_mod::gaussian_map_jacob ( real, intent(in)  YPTS,
real, intent(out)  XLON,
real, intent(out)  XLAT,
real, intent(out)  YLON,
real, intent(out)  YLAT 
)
private

Computes the map jacobians for a gaussian 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 434 of file ip_gaussian_grid_mod.f90.

◆ gaussian_vect_rot()

subroutine ip_gaussian_grid_mod::gaussian_vect_rot ( real, intent(out)  CROT,
real, intent(out)  SROT 
)
private

Computes the vector rotation sines and cosines for a gaussian 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 413 of file ip_gaussian_grid_mod.f90.

◆ gdswzd_gaussian()

subroutine ip_gaussian_grid_mod::gdswzd_gaussian ( class(ip_gaussian_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 Gaussian 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 179 of file ip_gaussian_grid_mod.f90.

◆ init_grib1()

subroutine ip_gaussian_grid_mod::init_grib1 ( class(ip_gaussian_grid), intent(inout)  self,
type(grib1_descriptor), intent(in)  g1_desc 
)
private

Initializes a gaussian 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 44 of file ip_gaussian_grid_mod.f90.

◆ init_grib2()

subroutine ip_gaussian_grid_mod::init_grib2 ( class(ip_gaussian_grid), intent(inout)  self,
type(grib2_descriptor), intent(in)  g2_desc 
)
private

Initializes a gaussian 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 93 of file ip_gaussian_grid_mod.f90.

Variable Documentation

◆ blat

real, dimension(:), allocatable ip_gaussian_grid_mod::blat
private

Definition at line 31 of file ip_gaussian_grid_mod.f90.

◆ dlon

real ip_gaussian_grid_mod::dlon
private

Definition at line 32 of file ip_gaussian_grid_mod.f90.

◆ j1

integer ip_gaussian_grid_mod::j1
private

Definition at line 30 of file ip_gaussian_grid_mod.f90.

◆ jh

integer ip_gaussian_grid_mod::jh
private

Definition at line 30 of file ip_gaussian_grid_mod.f90.

◆ rerth

real ip_gaussian_grid_mod::rerth
private

Definition at line 32 of file ip_gaussian_grid_mod.f90.

◆ ylat_row

real, dimension(:), allocatable ip_gaussian_grid_mod::ylat_row
private

Definition at line 33 of file ip_gaussian_grid_mod.f90.