36 public ::
operator(==)
72 integer :: nscan_field_pos
90 generic :: init => init_grib1, init_grib2
125 subroutine gdswzd_interface(self, iopt, npts, fill, xpts, ypts, rlon, rlat, nret, crot, srot, &
126 xlon, xlat, ylon, ylat, area)
128 class(
ip_grid),
intent(in) :: self
129 INTEGER,
INTENT(IN ) :: IOPT, NPTS
130 INTEGER,
INTENT( OUT) :: NRET
132 REAL,
INTENT(IN ) :: FILL
133 REAL,
INTENT(INOUT) :: RLON(NPTS),RLAT(NPTS)
134 REAL,
INTENT(INOUT) :: XPTS(NPTS),YPTS(NPTS)
135 REAL,
OPTIONAL,
INTENT( OUT) :: CROT(NPTS),SROT(NPTS)
136 REAL,
OPTIONAL,
INTENT( OUT) :: XLON(NPTS),XLAT(NPTS)
137 REAL,
OPTIONAL,
INTENT( OUT) :: YLON(NPTS),YLAT(NPTS),AREA(NPTS)
150 class(
ip_grid),
intent(inout) :: self
164 class(
ip_grid),
intent(inout) :: self
172 interface operator (==)
174 end interface operator (==)
209 class(
ip_grid),
intent(in) :: grid1, grid2
224 class(
ip_grid),
intent(in) :: self
225 integer,
intent(in) :: i, j
228 integer :: ii, jj, im, jm
229 integer :: iif, jjf, is1, iwrap
230 integer :: jwrap1, jwrap2, kscan, nscan
238 nscan=self%nscan_field_pos
245 ii=mod(i-1+iwrap,iwrap)+1
246 if(j.lt.1.and.jwrap1.gt.0)
then
248 ii=mod(ii-1+iwrap/2,iwrap)+1
249 elseif(j.gt.jm.and.jwrap2.gt.0)
then
251 ii=mod(ii-1+iwrap/2,iwrap)+1
258 if(ii.ge.1.and.ii.le.im.and.jj.ge.1.and.jj.le.jm)
field_pos=ii+(jj-1)*im
259 elseif(nscan.eq.1)
then
260 if(ii.ge.1.and.ii.le.im.and.jj.ge.1.and.jj.le.jm)
field_pos=jj+(ii-1)*jm
261 elseif(nscan.eq.2)
then
264 jjf=jj-(ii-is1)+kscan
265 if(iif.ge.1.and.iif.le.2*im-1.and.jjf.ge.1.and.jjf.le.jm) &
266 field_pos=(iif+(jjf-1)*(2*im-1)+1-kscan)/2
267 elseif(nscan.eq.3)
then
270 jjf=jj-(ii-is1)+kscan
271 if(iif.ge.1.and.iif.le.2*im-1.and.jjf.ge.1.and.jjf.le.jm)
field_pos=(iif+1)/2+(jjf-1)*im
void gdswzd(int igdtnum, int *igdtmpl, int igdtlen, int iopt, int npts, float fill, float *xpts, float *ypts, float *rlon, float *rlat, int *nret, float *crot, float *srot, float *xlon, float *xlat, float *ylon, float *ylat, float *area)
gdswzd() interface for C for _4 build of library.
Users derived type grid descriptor objects to abstract away the raw GRIB1 and GRIB2 grid definitions.
logical function is_same_grid(grid1, grid2)
Test whether two grid descriptors are the same.
subroutine, public use_ncep_post_arakawa()
Enables ncep_post/wgrib2-compatible non-E Arakawa grib2 grids by setting 'ncep_post_arakawa=....
integer, parameter, public rot_equid_cylind_e_grid_id_grib2
Integer grid number for rotated equidistant cylindrical E-stagger grid (grib2)
integer, parameter, public lambert_conf_grid_id_grib2
Integer grid number for Lambert conformal grid in grib2.
integer, parameter, public gaussian_grid_id_grib2
Integer grid number for Gaussian grid in grib2.
integer, parameter, public equid_cylind_grid_id_grib2
Integer grid number for equidistant cylindrical grid in grib2.
integer, parameter, public gaussian_grid_id_grib1
Integer grid number for Gaussian grid in grib1.
integer, parameter, public rot_equid_cylind_e_grid_id_grib1
Integer grid number for rotated equidistant cylindrical E-stagger grid.
integer, parameter, public polar_stereo_grid_id_grib2
Integer grid number for polar stereo grid in grib2.
integer function field_pos(self, i, j)
Returns the field position for a given grid point.
logical, save, public ncep_post_arakawa
Use ncep_post/wgrib2-compatible version of init_grib2() for non-E Arakawa grids (enable with use_ncep...
integer, parameter, public lambert_conf_grid_id_grib1
Integer grid number for Lambert Conformal grid in grib1.
integer, parameter, public mercator_grid_id_grib1
Integer grid number for Mercator grid in grib1.
subroutine, public unuse_ncep_post_arakawa()
Disables ncep_post/wgrib2-compatible non-E Arakawa grib2 grids by setting 'ncep_post_arakawa=....
integer, parameter, public equid_cylind_grid_id_grib1
Integer grid number for equidistant cylindrical grid in grib1.
integer, parameter, public rot_equid_cylind_b_grid_id_grib1
Integer grid number for rotated equidistant cylindrical B-stagger grid.
integer, parameter, public rot_equid_cylind_b_grid_id_grib2
Integer grid number for rotated equidistant cylindrical B-stagger grid (grib2)
integer, parameter, public rot_equid_cylind_grid_id_grib2
Integer grid number for rotated equidistant cylindrical grid in grib2.
integer, parameter, public mercator_grid_id_grib2
Integer grid number for Mercator grid in grib2.
integer, parameter, public polar_stereo_grid_id_grib1
Integer grid number for polar stereo grid in grib1.
Descriptor representing a grib1 grib descriptor section (GDS) with an integer array.
Grib-2 descriptor containing a grib2 GDT represented by an integer array.
Abstract descriptor object which represents a grib1 or grib2 descriptor.
Abstract grid that holds fields and methods common to all grids.