NCEPLIBS-ip 5.2.0
Loading...
Searching...
No Matches
ip_mercator_grid_mod::ip_mercator_grid Type Reference
Inheritance diagram for ip_mercator_grid_mod::ip_mercator_grid:
ip_grid_mod::ip_grid

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) for Gaussian grids.
 
generic init init_grib1
 Init subprogram.
 
generic init init_grib2
 Init subprogram.
 
procedure init_grib1 (self, g1_desc)
 Initializes a gaussian grid given a grib1_descriptor object.
 
procedure init_grib2 (self, g2_desc)
 Initializes a gaussian grid given a grib2_descriptor object.
 

Data Fields

class(ip_grid_descriptor), allocatable descriptor
 Descriptor.
 
real dlon
 Longitudinal direction grid length.
 
real dphi
 Latitudinal direction grid length.
 
real eccen_squared
 Eccentricity of the Earth squared (e^2).
 
real hi
 Scan mode in the 'i' direction.
 
integer im
 Number of x points.
 
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 rerth
 Radius of the Earth.
 
real rlat1
 Latitude of first grid point.
 
real rlati
 Latitude at which the Mercator projection intersects the Earth.
 
real rlon1
 Longitude of first grid point.
 
real rlon2
 Longitude of last grid point.
 

Detailed Description

Definition at line 22 of file ip_mercator_grid_mod.F90.

Member Function/Subroutine Documentation

◆ field_pos()

procedure ip_grid_mod::ip_grid::field_pos ( class(ip_grid), intent(in)  self,
integer, intent(in)  i,
integer, intent(in)  j 
)
inherited

Field position for a given grid point.

Returns
Integer position in grib field to locate grid point.

Returns the field position for a given grid point.

Parameters
[in]self
[in]i
[in]j
Returns
Integer position in grib field to locate grid point.
Author
Mark Iredell, George Gayno, Kyle Gerheiser
Date
April 1996

Definition at line 91 of file ip_grid_mod.F90.

◆ gdswzd()

procedure ip_mercator_grid_mod::ip_mercator_grid::gdswzd ( class(ip_mercator_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) for Gaussian grids.

Returns
N/A GDS wizard for mercator cylindrical.

This routine decodes the grib 2 grid definition template (passed in integer form as decoded by the ncep g2 library) and returns one of the following:

  • (iopt=+1) earth coordinates of selected grid coordinates
  • (iopt=-1) grid coordinates of selected earth coordinates

Works for mercator cylindrical 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 the grid box areas may be returned. 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.

Program History Log

Date Programmer Comments
96-04-10 iredell Initial
96-10-01 iredell protected against unresolvable points
97-10-20 iredell include map options
2015-01-21 gayno merger of gdswiz01() and gdswzd01(). 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.
2018-07-20 wesley add threads.
Parameters
[in]selfgrid descriptor.
[in]ioptoption flag
  • 1 to compute earth coords of selected grid coords
  • -1 to 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]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]nretnumber of valid points computed
[out]crotoptional (npts) clockwise vector rotation cosines
[out]srotoptional (npts) clockwise vector rotation sines (ugrid=crot*uearth-srot*vearth; vgrid=srot*uearth+crot*vearth)
[out]xlonoptional (npts) dx/dlon in 1/degrees
[out]xlatoptional (npts) dx/dlat in 1/degrees
[out]ylonoptional (npts) dy/dlon in 1/degrees
[out]ylatoptional (npts) dy/dlat in 1/degrees
[out]areaoptional (npts) area weights in m**2 (proportional to the square of the map factor)
Author
Iredell
Date
96-04-10

Definition at line 40 of file ip_mercator_grid_mod.F90.

◆ init() [1/2]

generic ip_grid_mod::ip_grid::init
inherited

Init subprogram.

Returns
N/A

Definition at line 93 of file ip_grid_mod.F90.

◆ init() [2/2]

generic ip_grid_mod::ip_grid::init
inherited

Init subprogram.

Returns
N/A

Definition at line 93 of file ip_grid_mod.F90.

◆ init_grib1()

procedure ip_mercator_grid_mod::ip_mercator_grid::init_grib1 ( class(ip_mercator_grid), intent(inout)  self,
type(grib1_descriptor), intent(in)  g1_desc 
)

Initializes a gaussian grid given a grib1_descriptor object.

Returns
N/A Initializes a mercator grid given a grib1_descriptor object.
Parameters
[in,out]selfip_mercator_grid object.
[in]g1_descGRIB1 descriptor.
Author
Iredell
Date
96-04-10

Definition at line 33 of file ip_mercator_grid_mod.F90.

◆ init_grib2()

procedure ip_mercator_grid_mod::ip_mercator_grid::init_grib2 ( class(ip_mercator_grid), intent(inout)  self,
type(grib2_descriptor), intent(in)  g2_desc 
)

Initializes a gaussian grid given a grib2_descriptor object.

Returns
N/A Init GRIB2.
Parameters
[in,out]selfip_mercator_grid object.
[in]g2_descGRIB2 descriptor.
Author
Iredell
Date
96-04-10

Definition at line 36 of file ip_mercator_grid_mod.F90.

Field Documentation

◆ descriptor

class(ip_grid_descriptor), allocatable ip_grid_mod::ip_grid::descriptor
inherited

Descriptor.

Definition at line 59 of file ip_grid_mod.F90.

◆ dlon

real ip_mercator_grid_mod::ip_mercator_grid::dlon

Longitudinal direction grid length.

Section 3, octets 65-68.

Definition at line 28 of file ip_mercator_grid_mod.F90.

◆ dphi

real ip_mercator_grid_mod::ip_mercator_grid::dphi

Latitudinal direction grid length.

Section 3, octets 69-72.

Definition at line 29 of file ip_mercator_grid_mod.F90.

◆ eccen_squared

real ip_grid_mod::ip_grid::eccen_squared
inherited

Eccentricity of the Earth squared (e^2).

Definition at line 78 of file ip_grid_mod.F90.

◆ hi

real ip_mercator_grid_mod::ip_mercator_grid::hi

Scan mode in the 'i' direction.

Section 3, octet 60.

Definition at line 27 of file ip_mercator_grid_mod.F90.

◆ im

integer ip_grid_mod::ip_grid::im
inherited

Number of x points.

Definition at line 61 of file ip_grid_mod.F90.

◆ iwrap

integer ip_grid_mod::ip_grid::iwrap
inherited

x wraparound increment (0 if no wraparound).

Definition at line 74 of file ip_grid_mod.F90.

◆ jm

integer ip_grid_mod::ip_grid::jm
inherited

Number of y points.

Definition at line 62 of file ip_grid_mod.F90.

◆ jwrap1

integer ip_grid_mod::ip_grid::jwrap1
inherited

y wraparound lower pivot point (0 if no wraparound).

Definition at line 75 of file ip_grid_mod.F90.

◆ jwrap2

integer ip_grid_mod::ip_grid::jwrap2
inherited

y wraparound upper pivot point (0 if no wraparound).

Definition at line 76 of file ip_grid_mod.F90.

◆ kscan

integer ip_grid_mod::ip_grid::kscan
inherited

Mass/wind flag for staggered diagonal (0 if mass; 1 if wind).

Definition at line 70 of file ip_grid_mod.F90.

◆ nm

integer ip_grid_mod::ip_grid::nm
inherited

Total number of points.

Definition at line 63 of file ip_grid_mod.F90.

◆ nscan

integer ip_grid_mod::ip_grid::nscan
inherited
Parameters
Scanningmode.
  • 0 if x first then y;
  • 1 if y first then x;
  • 3 if staggered diagonal like projection 203.

Definition at line 69 of file ip_grid_mod.F90.

◆ nscan_field_pos

integer ip_grid_mod::ip_grid::nscan_field_pos
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.

◆ rerth

real ip_grid_mod::ip_grid::rerth
inherited

Radius of the Earth.

Definition at line 77 of file ip_grid_mod.F90.

◆ rlat1

real ip_mercator_grid_mod::ip_mercator_grid::rlat1

Latitude of first grid point.

Section 3, octets 39-42.

Definition at line 23 of file ip_mercator_grid_mod.F90.

◆ rlati

real ip_mercator_grid_mod::ip_mercator_grid::rlati

Latitude at which the Mercator projection intersects the Earth.

Section 3, octets 48-51.

Definition at line 26 of file ip_mercator_grid_mod.F90.

◆ rlon1

real ip_mercator_grid_mod::ip_mercator_grid::rlon1

Longitude of first grid point.

Section 3, octets 43-46.

Definition at line 24 of file ip_mercator_grid_mod.F90.

◆ rlon2

real ip_mercator_grid_mod::ip_mercator_grid::rlon2

Longitude of last grid point.

Section 3, octets 56-59.

Definition at line 25 of file ip_mercator_grid_mod.F90.


The documentation for this type was generated from the following file: