54 & ibi, li, gi, no, rlat, rlon, ibo, lo, go, iret)
55 class(
ip_grid),
intent(in) :: grid_in, grid_out
56 INTEGER,
INTENT(IN ) :: IP, IPOPT(20), KM, MI, MO
57 INTEGER,
INTENT(IN ) :: IBI(KM)
58 INTEGER,
INTENT(INOUT) :: NO
59 INTEGER,
INTENT( OUT) :: IRET, IBO(KM)
61 LOGICAL*1,
INTENT(IN ) :: LI(MI,KM)
62 LOGICAL*1,
INTENT( OUT) :: LO(MO,KM)
64 REAL,
INTENT(IN ) :: GI(MI,KM)
65 REAL,
INTENT(INOUT) :: RLAT(MO),RLON(MO)
66 REAL,
INTENT( OUT) :: GO(MO,KM)
71 CALL interpolate_bilinear(ipopt,grid_in,grid_out,mi,mo,km,ibi&
72 &,li,gi,no,rlat,rlon,ibo,lo,go,iret)
74 CALL interpolate_bicubic(ipopt,grid_in,grid_out,mi,mo,km,ibi&
75 &,li,gi,no,rlat,rlon,ibo,lo,go,iret)
77 CALL interpolate_neighbor(ipopt,grid_in,grid_out,mi,mo,km,ibi&
78 &,li,gi,no,rlat,rlon,ibo,lo,go,iret)
80 CALL interpolate_budget(ipopt,grid_in,grid_out,mi,mo,km,ibi,li&
81 &,gi,no,rlat,rlon,ibo,lo,go,iret)
83 CALL interpolate_spectral(ipopt,grid_in,grid_out,mi,mo,km,ibi&
84 &,gi,no,rlat,rlon,ibo,lo,go,iret)
86 CALL interpolate_neighbor_budget(ipopt,grid_in,grid_out,mi,mo&
87 &,km,ibi,li,gi,no,rlat,rlon,ibo,lo,go,iret)
98 print *,
"Unrecognized interp option: ", ip
187 subroutine ipolates_grib1(ip,ipopt,kgdsi,kgdso,mi,mo,km,ibi,li,gi, &
188 no,rlat,rlon,ibo,lo,go,iret)
bind(c)
190 INTEGER,
INTENT(IN ) :: IP, IPOPT(20), KM, MI, MO
191 INTEGER,
INTENT(IN ) :: IBI(KM), KGDSI(200), KGDSO(200)
192 INTEGER,
INTENT(INOUT) :: NO
193 INTEGER,
INTENT( OUT) :: IRET, IBO(KM)
195 LOGICAL*1,
INTENT(IN ) :: LI(MI,KM)
196 LOGICAL*1,
INTENT( OUT) :: LO(MO,KM)
198 REAL,
INTENT(IN ) :: GI(MI,KM)
199 REAL,
INTENT(INOUT) :: RLAT(MO),RLON(MO)
200 REAL,
INTENT( OUT) :: GO(MO,KM)
205 class(
ip_grid),
allocatable :: grid_in, grid_out
213 call ipolates_grid(ip, ipopt, grid_in, grid_out, mi, mo, km, ibi, li, gi, no, rlat, rlon, ibo, lo, go, iret)
467 IGDTNUMO,IGDTMPLO,IGDTLENO, &
468 MI,MO,KM,IBI,LI,GI, &
469 NO,RLAT,RLON,IBO,LO,GO,IRET)
bind(C)
470 INTEGER,
INTENT(IN ) :: IP, IPOPT(20), KM, MI, MO
471 INTEGER,
INTENT(IN ) :: IBI(KM)
472 INTEGER,
INTENT(IN ) :: IGDTNUMI, IGDTLENI
473 INTEGER,
INTENT(IN ) :: IGDTMPLI(IGDTLENI)
474 INTEGER,
INTENT(IN ) :: IGDTNUMO, IGDTLENO
475 INTEGER,
INTENT(IN ) :: IGDTMPLO(IGDTLENO)
476 INTEGER,
INTENT( OUT) :: NO
477 INTEGER,
INTENT( OUT) :: IRET, IBO(KM)
479 LOGICAL*1,
INTENT(IN ) :: LI(MI,KM)
480 LOGICAL*1,
INTENT( OUT) :: LO(MO,KM)
482 REAL,
INTENT(IN ) :: GI(MI,KM)
483 REAL,
INTENT(INOUT) :: RLAT(MO),RLON(MO)
484 REAL,
INTENT( OUT) :: GO(MO,KM)
487 class(
ip_grid),
allocatable :: grid_in, grid_out
495 CALL ipolates_grid(ip,ipopt,grid_in,grid_out,mi,mo,km,ibi,li,gi,no,rlat,rlon,ibo,lo,go,iret)
Uses derived type grid descriptor objects to abstract away the raw Grib-1 and Grib-2 grid definitions...
Routines for creating an ip_grid given a Grib descriptor.
Top-level module to export interpolation routines and constants.
integer, parameter, public neighbor_interp_id
integer, parameter, public bilinear_interp_id
integer, parameter, public budget_interp_id
integer, parameter, public spectral_interp_id
integer, parameter, public bicubic_interp_id
integer, parameter, public neighbor_budget_interp_id
Top-level driver for scalar interpolation interpolation routine ipolates.
subroutine ipolates_grid(ip, ipopt, grid_in, grid_out, mi, mo, km, ibi, li, gi, no, rlat, rlon, ibo, lo, go, iret)
Interpolates scalar fields between grids given ip_grid objects.
subroutine, public ipolates_grib2(IP, IPOPT, IGDTNUMI, IGDTMPLI, IGDTLENI, IGDTNUMO, IGDTMPLO, IGDTLENO, MI, MO, KM, IBI, LI, GI, NO, RLAT, RLON, IBO, LO, GO, IRET)
This subprogram interpolates scalar field from any grid to any grid given a grib2 descriptor.
subroutine, public ipolates_grib1(ip, ipopt, kgdsi, kgdso, mi, mo, km, ibi, li, gi, no, rlat, rlon, ibo, lo, go, iret)
This subprogram interpolates scalar field from any grid to any grid given a grib1 Grid Descriptor Sec...
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 grid that holds fields and methods common to all grids.