CSVOROD(3NCARG)
π CSVOROD β it's giving Voronoi-on-a-sphere, bestie π
NCAR GRAPHICS Β· the Fortran-callable one Β· yes she's from the Cssgrid fam π«Ά
β¨ NAME β¨
CSVOROD β calculate Voronoi polygons for data on a sphere. no cap, that's literally the whole job description π
πΈ SYNOPSIS πΈ
CALL CSVOROD (NPTS, RLATI, RLONI, NI, NF, IWK, RWK,
NC, RLATO, RLONO, RC,
NCA, NUMV, NV, IER)
π DESCRIPTION π
okay so here's the whole cast of characters, one by one, and yes you need to know all of them π§
NPTSβ (integer, input) the number of input data points. and it has to beNPTS > 3, so don't come in here with three points and expect a polygon, bestie πRLATIβ (double precision, input) array holding the latitudes of the input data, in degrees. β οΈ heads up: the first three points must not be collinear β meaning they cannot all lie on a common great circle. if they do, that's a you problem, not a CSVOROD problem.RLONIβ (double precision, input) array holding the longitudes of the input data, in degrees. the matching half of the glow-up duo β¨NIβ (integer, input) the index of the input coordinate you want the Voronoi polygon for. range check:1 .LE. NI .LE. NPTS. pick your main character wisely πNFβ (integer, input) the flag that says whether this is the first call toCSVORODfor this dataset or not (1=yes,0=no). and listen β calls after the first one for a given dataset are much faster than the first call. that's the tea. set it right and you get speed; set it wrong and, well. πIWKβ (integer, input) integer work space, dimensioned for27*NPTS. that's not a typo, that's27*NPTS. it's hungry, feed it πRWKβ (double precision, input) a work space dimensioned for9*NPTS. note thatRWKmust be typed DOUBLE PRECISION. like, actually. don't try to sneak a single-precision array in here, it will not slay πNCβ (integer, input) the maximum size of the output arraysRLATO,RLONO, andRC. andNCshould be2*NPTS. just do it, trust.RLATOβ (double precision, output) the latitudes for the vertices of the Voronoi polygons. these are circumcenters of circles passing through the Delaunay triangles. and if a coordinate is a boundary point, then the circle may pass through certain "pseudo points" that have been added to the original dataset in order to complete the Voronoi polygon. yes, pseudo points. they're doing side quests to finish the polygon π¦RLONOβ (double precision, output) the longitudes for the vertices of the Voronoi polygons. the other coordinate of the same little vertex squad πRCβ (double precision, output) array containing circumradii (arc lengths in degrees of the angle between a circumcenter and its associated triangle vertices). that's the vibe. radius-adjacent. iconic βNCAβ (integer, output) the actual number of circumcenters returned inRLATOandRLONO. and ngl, this number may be larger thanNPTSif the input dataset has boundary points β because, again, certain "pseudo points" may have been added to the original dataset in order to complete the Voronoi polygon set. those little extras are doing unpaid labor πNUMVβ (integer, output) the number of vertices in the Voronoi polygon enclosing the coordinate(RLATI(NI),RLONI(NI)). the headcount. the guest list πNVβ (integer, output) an array (dimensioned forNPTS) containingNUMVindices for the Voronoi polygon enclosing the coordinate(RLATI(NI),RLONI(NI)). the indices returned in this array refer to the coordinates returned inRLATO,RLONO, andRC. for example, if the integer"J"is an element of theNVarray, then(RLATO(J),RLONO(J))is a vertex of the Voronoi polygon enclosing(RLATI(NI),RLONI(NI)). and β very important β the indices inNVlist out the vertices of the Voronoi polygon in counter-clockwise order. counter-clockwise. that's the direction, bestie, don't fight it π₯IERβ (integer, output) an error return value. ifIERcomes back as0, then no errors were detected β she ate and left no crumbs β¨. ifIERis non-zero, then refer to the man page forcssgrid_errorsfor details. that's where the receipts live π§Ύ
π« USAGE π«
call CSVOROD if you want to determine the Voronoi polygons for data randomly positioned on a sphere. each call to CSVOROD calculates the vertices for the Voronoi polygon surrounding a specified input point. one point per call, one polygon per point. very "one at a time, deliberately" of her π«Ά
also: CSVOROD is a double precision version of CSVORO. so if you ever meet CSVORO, you know the lore πΈ
π ACCESS π
to use CSVOROD, load the NCAR Graphics library ngmath. that's it. that's the access. go off π
π SEE ALSO π
css_overviewcsstridcssgridd
complete documentation for Cssgrid is available at URL http://ngwww.ucar.edu/ngdoc/ng/ngmath/cssgrid/csshome.html β go read it, iykyk π
Β©οΈ COPYRIGHT Β©οΈ
Copyright (C) 2000
University Corporation for Atmospheric Research
The use of this Software is governed by a License Agreement.
fr fr, that's real β use of this Software is governed by a License Agreement. don't skip the paperwork bestie, it's giving legally binding π
and that's the whole page!! this was CSVOROD(3NCARG) from the NCAR GRAPHICS manual, in its UNIX flavor, dated May 2000 π
mwah π take care of your work spaces, set your NF correctly, and may all your IERs be zero πβ¨π¦
π¦ where this page comes from
- debian bookworm: libncarg-dev 6.6.2.dfsg.1-1
- debian trixie: libncarg-dev 6.6.2.dfsg.1-10+b2
- ubuntu jammy: libncarg-dev 6.6.2-10build2
- ubuntu questing: libncarg-dev 6.6.2.dfsg.1-10build2
- ubuntu resolute: libncarg-dev 6.6.2.dfsg.1-12
- ubuntu stonking: libncarg-dev 6.6.2.dfsg.1-12build2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms