7 SUBROUTINE gdswzd_c(IGDTNUM,IGDTMPL,IGDTLEN,IOPT,NPTS,FILL, &
8 XPTS,YPTS,RLON,RLAT,NRET,CROT,SROT, &
9 XLON,XLAT,YLON,YLAT,AREA) bind(C, NAME='gdswzd')
205 use,
INTRINSIC :: iso_c_binding
212 INTEGER(KIND=C_LONG),
INTENT(IN) :: IGDTMPL(IGDTLEN)
213 INTEGER(KIND=C_LONG),
VALUE,
INTENT(IN) :: IGDTNUM, IGDTLEN
214 INTEGER(KIND=C_LONG),
VALUE,
INTENT(IN) :: IOPT, NPTS
215 INTEGER(KIND=C_LONG),
INTENT(OUT) :: NRET
217 INTEGER(KIND=C_INT),
INTENT(IN) :: IGDTMPL(IGDTLEN)
218 INTEGER(KIND=C_INT),
VALUE,
INTENT(IN) :: IGDTNUM, IGDTLEN
219 INTEGER(KIND=C_INT),
VALUE,
INTENT(IN) :: IOPT, NPTS
220 INTEGER(KIND=C_INT),
INTENT(OUT) :: NRET
223#if (LSIZE==8 || LSIZE==D)
224 REAL(KIND=c_double),
VALUE,
INTENT(IN) :: fill
225 REAL(KIND=c_double),
INTENT(INOUT) :: xpts(npts),ypts(npts),rlon(npts),rlat(npts)
226 REAL(KIND=c_double),
INTENT(OUT) :: crot(npts),srot(npts),xlon(npts),xlat(npts)
227 REAL(KIND=c_double),
INTENT(OUT) :: ylon(npts),ylat(npts),area(npts)
229 REAL(KIND=c_float),
VALUE,
INTENT(IN) :: fill
230 REAL(KIND=c_float),
INTENT(INOUT) :: xpts(npts),ypts(npts),rlon(npts),rlat(npts)
231 REAL(KIND=c_float),
INTENT(OUT) :: crot(npts),srot(npts),xlon(npts),xlat(npts)
232 REAL(KIND=c_float),
INTENT(OUT) :: ylon(npts),ylat(npts),area(npts)
235 CALL gdswzd(igdtnum,igdtmpl,igdtlen,iopt,npts,fill, &
236 xpts,ypts,rlon,rlat,nret, &
237 crot,srot,xlon,xlat,ylon,ylat,area)
239 END SUBROUTINE gdswzd_c
295 SUBROUTINE gdswzd_c_grib1(KGDS,IOPT,NPTS,FILL,XPTS,YPTS,RLON,RLAT,NRET, &
296 CROT,SROT,XLON,XLAT,YLON,YLAT,AREA) bind(C, NAME='gdswzd_grib1')
297 use,
INTRINSIC :: iso_c_binding
304 INTEGER(KIND=C_LONG),
INTENT(IN) :: KGDS(200)
305 INTEGER(KIND=C_LONG),
VALUE,
INTENT(IN) :: IOPT
306 INTEGER(KIND=C_LONG),
VALUE,
INTENT(IN) :: NPTS
307 INTEGER(KIND=C_LONG),
INTENT(OUT) :: NRET
309 INTEGER(KIND=C_INT),
INTENT(IN) :: KGDS(200)
310 INTEGER(KIND=C_INT),
VALUE,
INTENT(IN) :: IOPT
311 INTEGER(KIND=C_INT),
VALUE,
INTENT(IN) :: NPTS
312 INTEGER(KIND=C_INT),
INTENT(OUT) :: NRET
315#if (LSIZE==8 || LSIZE==D)
316 REAL(KIND=c_double),
VALUE,
INTENT(IN) :: fill
317 REAL(KIND=c_double),
INTENT(INOUT) :: xpts(npts),ypts(npts),rlon(npts),rlat(npts)
318 REAL(KIND=c_double),
INTENT(OUT) :: crot(npts),srot(npts),xlon(npts),xlat(npts)
319 REAL(KIND=c_double),
INTENT(OUT) :: ylon(npts),ylat(npts),area(npts)
321 REAL(KIND=c_float),
VALUE,
INTENT(IN) :: fill
322 REAL(KIND=c_float),
INTENT(INOUT) :: xpts(npts),ypts(npts),rlon(npts),rlat(npts)
323 REAL(KIND=c_float),
INTENT(OUT) :: crot(npts),srot(npts),xlon(npts),xlat(npts)
324 REAL(KIND=c_float),
INTENT(OUT) :: ylon(npts),ylat(npts),area(npts)
327 CALL gdswzd(kgds,iopt,npts,fill,xpts,ypts,rlon,rlat,nret, &
328 crot,srot,xlon,xlat,ylon,ylat,area)
330 END SUBROUTINE gdswzd_c_grib1
332end module gdswzd_c_mod
Driver module for gdswzd routines.