64 MI,MO,KM,IBI,LI,UI,VI, &
65 NO,RLAT,RLON,CROT,SROT,IBO,LO,UO,VO,IRET)
66 class(
ip_grid),
intent(in) :: grid_in, grid_out
67 INTEGER,
INTENT(IN ) :: IP, IPOPT(20), IBI(KM)
68 INTEGER,
INTENT(IN ) :: KM, MI, MO
69 INTEGER,
INTENT( OUT) :: IBO(KM), IRET, NO
71 LOGICAL*1,
INTENT(IN ) :: LI(MI,KM)
72 LOGICAL*1,
INTENT( OUT) :: LO(MO,KM)
74 REAL,
INTENT(IN ) :: UI(MI,KM),VI(MI,KM)
75 REAL,
INTENT(INOUT) :: CROT(MO),SROT(MO)
76 REAL,
INTENT(INOUT) :: RLAT(MO),RLON(MO)
77 REAL,
INTENT( OUT) :: UO(MO,KM),VO(MO,KM)
81 CALL interpolate_bilinear(ipopt,grid_in,grid_out, &
82 mi,mo,km,ibi,li,ui,vi,&
83 no,rlat,rlon,crot,srot,ibo,lo,uo,vo,iret)
85 CALL interpolate_bicubic(ipopt,grid_in,grid_out,mi,mo,km,ibi,li,ui,vi,&
86 no,rlat,rlon,crot,srot,ibo,lo,uo,vo,iret)
88 CALL interpolate_neighbor(ipopt,grid_in,grid_out,mi,mo,km,ibi,li,ui,vi,&
89 no,rlat,rlon,crot,srot,ibo,lo,uo,vo,iret)
91 CALL interpolate_budget(ipopt,grid_in,grid_out,mi,mo,km,ibi,li,ui,vi,&
92 no,rlat,rlon,crot,srot,ibo,lo,uo,vo,iret)
94 CALL interpolate_spectral(ipopt,grid_in,grid_out, &
96 no,rlat,rlon,crot,srot,ibo,lo,uo,vo,iret)
98 CALL interpolate_neighbor_budget(ipopt,grid_in,grid_out,mi,mo,km,ibi,li,ui,vi,&
99 no,rlat,rlon,crot,srot,ibo,lo,uo,vo,iret)
101 print *,
"unrecognized interpolation option: ", ip
380 igdtnumo,igdtmplo,igdtleno, &
381 mi,mo,km,ibi,li,ui,vi, &
382 no,rlat,rlon,crot,srot,ibo,lo,uo,vo,iret)
bind(c)
384 INTEGER,
INTENT(IN ) :: IP, IPOPT(20), IBI(KM)
385 INTEGER,
INTENT(IN ) :: KM, MI, MO
386 INTEGER,
INTENT(IN ) :: IGDTNUMI, IGDTLENI
387 INTEGER,
INTENT(IN ) :: IGDTMPLI(IGDTLENI)
388 INTEGER,
INTENT(IN ) :: IGDTNUMO, IGDTLENO
389 INTEGER,
INTENT(IN ) :: IGDTMPLO(IGDTLENO)
390 INTEGER,
INTENT( OUT) :: IBO(KM), IRET, NO
392 LOGICAL*1,
INTENT(IN ) :: LI(MI,KM)
393 LOGICAL*1,
INTENT( OUT) :: LO(MO,KM)
395 REAL,
INTENT(IN ) :: UI(MI,KM),VI(MI,KM)
396 REAL,
INTENT(INOUT) :: CROT(MO),SROT(MO)
397 REAL,
INTENT(INOUT) :: RLAT(MO),RLON(MO)
398 REAL,
INTENT( OUT) :: UO(MO,KM),VO(MO,KM)
403 class(
ip_grid),
allocatable :: grid_in, grid_out
412 mi,mo,km,ibi,li,ui,vi,&
413 no,rlat,rlon,crot,srot,ibo,lo,uo,vo,iret)
546 subroutine ipolatev_grib1(ip,ipopt,kgdsi,kgdso,mi,mo,km,ibi,li,ui,vi, &
547 no,rlat,rlon,crot,srot,ibo,lo,uo,vo,iret)
bind(c)
550 INTEGER,
INTENT(IN ):: IP, IPOPT(20), IBI(KM)
551 INTEGER,
INTENT(IN ):: KM, MI, MO
552 INTEGER,
INTENT(INOUT):: KGDSI(200), KGDSO(200)
553 INTEGER,
INTENT( OUT):: IBO(KM), IRET, NO
555 LOGICAL*1,
INTENT(IN ):: LI(MI,KM)
556 LOGICAL*1,
INTENT( OUT):: LO(MO,KM)
558 REAL,
INTENT(IN ):: UI(MI,KM),VI(MI,KM)
559 REAL,
INTENT(INOUT):: CROT(MO),SROT(MO)
560 REAL,
INTENT(INOUT):: RLAT(MO),RLON(MO)
561 REAL,
INTENT( OUT):: UO(MO,KM),VO(MO,KM)
563 INTEGER :: K, N, KGDSI11, KGDSO11
566 class(
ip_grid),
allocatable :: grid_in, grid_out
568 IF(kgdsi(1).EQ.203)
THEN
570 kgdsi(11)=ior(kgdsi(11),256)
572 IF(kgdso(1).EQ.203)
THEN
574 kgdso(11)=ior(kgdso(11),256)
584 mi,mo,km,ibi,li,ui,vi,&
585 no,rlat,rlon,crot,srot,ibo,lo,uo,vo,iret)
587 IF(kgdsi(1).EQ.203)
THEN
590 IF(kgdso(1).EQ.203)
THEN
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 vector interpolation interpolation routine ipolates.
subroutine, public ipolatev_grib2(ip, ipopt, igdtnumi, igdtmpli, igdtleni, igdtnumo, igdtmplo, igdtleno, mi, mo, km, ibi, li, ui, vi, no, rlat, rlon, crot, srot, ibo, lo, uo, vo, iret)
This subprogram interpolates vector fields from any grid to any grid given a grib2 descriptor.
subroutine ipolatev_grid(IP, IPOPT, grid_in, grid_out, MI, MO, KM, IBI, LI, UI, VI, NO, RLAT, RLON, CROT, SROT, IBO, LO, UO, VO, IRET)
Interpolates scalar fields between grids given ip_grid objects.
subroutine, public ipolatev_grib1(ip, ipopt, kgdsi, kgdso, mi, mo, km, ibi, li, ui, vi, no, rlat, rlon, crot, srot, ibo, lo, uo, vo, iret)
This subprogram interpolates vector 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.