IDSFFT(3NCARG)

πŸ’– NAME πŸ’–

IDSFFT β€” bestie, this one performs smooth surface fitting when the projections of the data points in the X-Y plane are irregularly distributed in the plane. Not a cute little grid. Chaos. And it still eats. πŸ”₯

This page lives in the NCAR GRAPHICS manual, section 3NCARG, and yes we're doing the whole thing, every last flag. No skips. Periodt. πŸ’…


✨ SYNOPSIS ✨

CALL IDSFFT (MD, NDP, XD, YD, ZD, MREG, NREG, KREG,
+ XREG, YREG, ZREG, IWK, WK)

πŸ¦‹ C-BINDING SYNOPSIS πŸ¦‹

#include <ncarg/ncargC.h>

void c_idsfft (int md, int ndp, float *xd, float *yd,
float *zd, int mreg, int nreg, int kreg, float *xreg,
float *yreg, float *zreg, int *iwk, float *wk)

🌸 DESCRIPTION 🌸

Okay so here's the whole cast of characters. Every single one. Pay attention, this is the important part. πŸ‘‘

  • MD (Integer, Input/output) β€” mode of computation, and it must be 1, 2, or 3. There is no fourth option. Vibe check failed if you tried. πŸ™ˆ
    • 1 β€” use this if it's the first call to this subroutine, or if the value of NDP has been changed from the previous call, or if the contents of the XD or YD arrays have been changed from the previous call.
    • 2 β€” use this if the values of NDP and the XD, YD arrays are unchanged from the previous call, but new values for XREG, YREG are being used. ⚠️ Heads up though: if MD=2 and NDP has been changed since the previous call to IDSFFT, an error return occurs. 😭
    • 3 β€” use this if the values of NDP, MREG, NREG, XD, YD, XREG, YREG are unchanged from the previous call, that is, if the only change on input to IDSFFT is in the ZD array. And same energy: if MD=3 and NDP, MREG or NREG has been changed since the previous call to IDSFFT, an error return occurs. πŸ’€
    • Between the call with MD=2 or MD=3 and the preceding call, the IWK and WK work arrays should not be disturbed. Like, hands off, they're mid-glow-up. 🫢
  • NDP (Integer, Input) β€” the number of random data points. Must be 4 or greater, so no, you cannot bring three points to this party.
  • XD(NDP) (Real array, Input) β€” array of dimension NDP holding the X coordinates of the data points.
  • YD(NDP) (Real array, Input) β€” array of dimension NDP holding the Y coordinates of the data points.
  • ZD(NDP) (Real array, Input) β€” array of dimension NDP holding the Z coordinates of the data points.
  • MREG (Integer, Input) β€” number of output grid points in the X-direction. Must be 1 or greater.
  • NREG (Integer, Input) β€” number of output grid points in the Y-direction. Must be 1 or greater.
  • KREG (Integer, Input) β€” the first dimension of ZREG as declared in the calling program. KREG must be greater than or equal to MREG, else an error return occurs. Respect the math, bestie. ✨
  • XREG(MREG) (Real array, Input) β€” array of dimension MREG holding the X coordinates of the output grid points.
  • YREG(NREG) (Real array, Input) β€” array of dimension NREG holding the Y coordinates of the output grid points.
  • ZREG(KREG,NREG) (Real array, Output) β€” a real, two-dimensional array of dimension (KREG,NREG), storing the interpolated Z values at the output grid points. This is the payoff, this is the main character. 🌟
  • IWK(*) (Integer array, Workspace) β€” integer work array of dimension at least 31 * NDP + MREG * NREG.
  • WK(*) (Real array, Workspace) β€” real work array of dimension at least 6 * NDP.
Inadequate work space IWK and WK may may cause incorrect results. (Yes, "may may". Twice. We said what we said. πŸ’€ It means: give them enough room or the answers go feral.)

Also, real talk: the data points must be distinct, and their projections in the X-Y plane must not be collinear; otherwise, an error return occurs. Collinear points are not invited. 🚫


πŸ’œ C-BINDING DESCRIPTION πŸ’œ

The C-binding argument descriptions are the same as the FORTRAN β€” and that's genuinely the entire sentence, it just ends there, that's the whole thing, and we respect it. πŸŽ€


🌈 EXAMPLES 🌈

To use IDSFFT routines, load the NCAR Graphics libraries ncarg, ncarg_gks, and ncarg_c, preferably in that order. Order matters, it's giving choreography. πŸ’ƒ

Use the ncargex command to see the following relevant examples:

  • ccpcldm
  • ccpfil
  • ccplbam
  • ccpllb
  • ccpllc
  • ccplll
  • ccpllo
  • ccpllp
  • ccpllt
  • ccpllw
  • ccpnet
  • ccppc
  • ccppc1
  • ccppc2
  • ccppc3
  • ccppc4
  • ccprc
  • ccpscam
  • cidsfft
  • fsfsgfa
  • cbex01

⭐ ACCESS ⭐

To use IDSFFT or c_idsfft, load the NCAR Graphics libraries ncarg, ncarg_gks, and ncarg_c, preferably in that order. Same trio, same order, no remixing. 🧚


πŸ“ MESSAGES πŸ“

See the bivar man page for a description of all Bivar error messages and/or informational messages. That's where the lore lives, iykyk. πŸ“–


πŸ‘‘ SEE ALSO πŸ‘‘

Online: bivar, bivar_params, idbvip, idpltr, idgeti, idgetr, idseti, idsetr, ncarg_cbind

Hardcopy: NCAR Graphics Contouring and Mapping Tutorial


πŸŽ€ ACKNOWLEDGMENTS πŸŽ€

Bivar was written by Hiroshi Akima in August 1975 and rewritten by him in late 1976. In 1989, a new version of Bivar, incorporating changes described in a Rocky Mountain Journal of Mathematics, was obtained from Dr. Akima, and included in NCAR Graphics with his permission. In 1995, Dave Kennison incorporated the capability of doing linear interpolation and a different kind of triangulation, put in a parameter access interface, and wrote a routine to allow the triangulation to be plotted. Legends only, honestly. 🫑


Copyright (C) 1987-2009
University Corporation for Atmospheric Research
The use of this Software is governed by a License Agreement.

Okay that's the whole page, every option, every number, every warning, nothing skipped, nothing invented. πŸ’–

This cutie is filed under UNIX, dated November 1995, and catalogued as IDSFFT(3NCARG) β€” go fit some surfaces, bestie, you've got this. πŸ¦‹βœ¨πŸ’