NCEPLIBS-ip  4.2.0
ip_grid_mod::ip_grid Type Reference

Abstract grid that holds fields and methods common to all grids. More...

Inheritance diagram for ip_grid_mod::ip_grid:
ip_equid_cylind_grid_mod::ip_equid_cylind_grid ip_gaussian_grid_mod::ip_gaussian_grid ip_lambert_conf_grid_mod::ip_lambert_conf_grid ip_mercator_grid_mod::ip_mercator_grid ip_polar_stereo_grid_mod::ip_polar_stereo_grid ip_rot_equid_cylind_egrid_mod::ip_rot_equid_cylind_egrid ip_rot_equid_cylind_grid_mod::ip_rot_equid_cylind_grid ip_station_points_grid_mod::ip_station_points_grid

Private Member Functions

procedure field_pos
 Field position for a given grid point. More...
 
procedure(gdswzd_interface), deferred gdswzd
 Coordinate transformations for the grid. More...
 
generic init => init_grib1, init_grib2
 Init subprogram. More...
 
procedure(init_grib1_interface), deferred init_grib1
 Initializer for grib1 input descriptor. More...
 
procedure(init_grib2_interface), deferred init_grib2
 Initializer for grib2 input descriptor. More...
 

Private Attributes

class(ip_grid_descriptor), allocatable descriptor
 Descriptor. More...
 
real eccen_squared
 Eccentricity of the Earth squared (e^2). More...
 
integer im
 Number of x points. More...
 
integer iwrap
 x wraparound increment (0 if no wraparound). More...
 
integer jm
 Number of y points. More...
 
integer jwrap1
 y wraparound lower pivot point (0 if no wraparound). More...
 
integer jwrap2
 y wraparound upper pivot point (0 if no wraparound). More...
 
integer kscan
 Mass/wind flag for staggered diagonal (0 if mass; 1 if wind). More...
 
integer nm
 Total number of points. More...
 
integer nscan
 
integer nscan_field_pos
 nscan for field_pos routine. More...
 
real rerth
 Radius of the Earth. More...
 

Detailed Description

Abstract grid that holds fields and methods common to all grids.

ip_grid is meant to be subclassed when implementing a new grid.

There are three methods that must be implemented:

The init methods are responsible for setting up the grid using GRIB1/GRIB2 descriptors.

gdswzd() performs transformations to and from Earth coordinates and grid coordinates.

A good reference for all the map projection equations used by NCEPLIBS-ip can be found here: https://doi.org/10.3133/pp1395.

Author
Kyle Gerheiser
Date
July 2021

Definition at line 52 of file ip_grid_mod.F90.

Member Function/Subroutine Documentation

◆ field_pos()

procedure ip_grid_mod::ip_grid::field_pos
private

Field position for a given grid point.

Returns
Integer position in grib field to locate grid point.

Definition at line 82 of file ip_grid_mod.F90.

◆ gdswzd()

procedure(gdswzd_interface), deferred ip_grid_mod::ip_grid::gdswzd
private

Coordinate transformations for the grid.

Returns
N/A

Definition at line 79 of file ip_grid_mod.F90.

◆ init()

generic ip_grid_mod::ip_grid::init
private

Init subprogram.

Returns
N/A

Definition at line 84 of file ip_grid_mod.F90.

◆ init_grib1()

procedure(init_grib1_interface), deferred ip_grid_mod::ip_grid::init_grib1
private

Initializer for grib1 input descriptor.

Returns
N/A

Definition at line 75 of file ip_grid_mod.F90.

◆ init_grib2()

procedure(init_grib2_interface), deferred ip_grid_mod::ip_grid::init_grib2
private

Initializer for grib2 input descriptor.

Returns
N/A

Definition at line 77 of file ip_grid_mod.F90.

Field Documentation

◆ descriptor

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

Descriptor.

Definition at line 53 of file ip_grid_mod.F90.

◆ eccen_squared

real ip_grid_mod::ip_grid::eccen_squared
private

Eccentricity of the Earth squared (e^2).

Definition at line 72 of file ip_grid_mod.F90.

◆ im

integer ip_grid_mod::ip_grid::im
private

Number of x points.

Definition at line 55 of file ip_grid_mod.F90.

◆ iwrap

integer ip_grid_mod::ip_grid::iwrap
private

x wraparound increment (0 if no wraparound).

Definition at line 68 of file ip_grid_mod.F90.

◆ jm

integer ip_grid_mod::ip_grid::jm
private

Number of y points.

Definition at line 56 of file ip_grid_mod.F90.

◆ jwrap1

integer ip_grid_mod::ip_grid::jwrap1
private

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

Definition at line 69 of file ip_grid_mod.F90.

◆ jwrap2

integer ip_grid_mod::ip_grid::jwrap2
private

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

Definition at line 70 of file ip_grid_mod.F90.

◆ kscan

integer ip_grid_mod::ip_grid::kscan
private

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

Definition at line 64 of file ip_grid_mod.F90.

◆ nm

integer ip_grid_mod::ip_grid::nm
private

Total number of points.

Definition at line 57 of file ip_grid_mod.F90.

◆ nscan

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

Definition at line 63 of file ip_grid_mod.F90.

◆ nscan_field_pos

integer ip_grid_mod::ip_grid::nscan_field_pos
private

nscan for field_pos routine.

Can be different than nscan due to differences in grib/grib2.

Definition at line 66 of file ip_grid_mod.F90.

◆ rerth

real ip_grid_mod::ip_grid::rerth
private

Radius of the Earth.

Definition at line 71 of file ip_grid_mod.F90.


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