STUMSL(3NCARG)

πŸ“¦ version 6.6.2, in epel 9, fedora 43, fedora 44

πŸ’– STUMSL β€” the vibe

okay so bestie, this one lives in the NCAR GRAPHICS manual, section 3NCARG, and it's called STUMSL. she's not a regular function, she's the user-definable external subroutine you get to swap in when you want to draw masked streamlines. πŸ’…


✨ NAME ✨

STUMSL β€” this routine is the user-definable external subroutine used to draw masked streamlines. the default version of the routine draws any polyline all of whose area identifiers are greater than or equal to zero. periodt. πŸŽ€


✨ SYNOPSIS ✨

CALL STUMSL (XCS,YCS,NCS,IAI,IAG,NAI)

✨ DESCRIPTION ✨

here's the whole cast, no skips, we're doing all of them 🫢

  • XCS β€” (REAL array, assumed size NCS, input) β€” array of X coordinates of the points defining the polyline with the given set of area identifiers. πŸ’–
  • YCS β€” (REAL array, assumed size NCS, input) β€” array of Y coordinates of the points defining the polyline with the given set of area identifiers. πŸ¦‹
  • NCS β€” (INTEGER, input) β€” number of points; also the assumed size of the X and Y coordinate arrays, XCS and YCS. πŸ”’
  • IAI β€” (INTEGER array, assumed size NAI, input) β€” array of area identifier values. each value represents the area identifier with respect to the area group in the area group array with the same array index. πŸ‘‘
  • IAG β€” (INTEGER array, assumed size NAI, input) β€” array of area-identifier groups. 🌸
  • NAI β€” (INTEGER, input) β€” number of area identifier groups. the current version of Streamlines supports up to 64 area groups. bestie that's a hard 64, not a suggestion. πŸ’€

✨ USAGE ✨

so STUMSL is the name given to the default version of the masked streamline drawing routine, and it's also the name given to the argument through which the external subroutine is passed to STREAM. two jobs, one girl, main character energy fr fr. ✨

but lowkey you can choose any acceptable FORTRAN identifier as the name of a user-defined version of the routine. the substitute routine must have an argument list equivalent to the default version of STUMSL. also β€” and this part matters β€” whether or not the default version is used, the subroutine that calls STREAM should contain an external declaration of the routine, such as:

          EXTERNAL STUMSL

if the MSK parameter is greater than 0, signifying that masking is to be performed, Streamlines sends one or more sets of X and Y polyline coordinate arrays to the area masking routine, ARDRLN, for each streamline. ARDRLN subdivides the polyline into pieces such that each smaller polyline has a single area identifier with respect to each area identifier group, then makes a call to STUMSL for each polyline piece. 🧚

while the default version of STUMSL only checks to see that none of the area identifiers are negative, a user-defined version could perform more complicated decision processing based on knowledge of the meaning of specific area identifier groups and/or area identifier values. iykyk, that's where you get to be creative. πŸ’…

note that, before invoking STUMSL, ARDRLN modifies the user coordinate space by making the following calls:
          CALL GETSET(VPL,VPR,VPB,VPT,WDL,WDR,WDB,WDT,LLG) CALL
          SET(VPL,VPR,VPB,VPT,VPL,VPR,VPB,VPT,1)

these calls temporarily turn the user to NDC mapping into an identity, allowing the user to call any of the routines, CURVE, CURVED, or the GKS routine GPL, to render the polygon piece without worrying about a possible non-identity mapping between user and world coordinates. πŸŽ€

the current version of Streamlines supports masked drawing with up to 64 area groups. Streamlines will exit with an error message if an area map with more than 64 groups is passed to it. 🚨


✨ ACCESS ✨

to use STUMSL, load the NCAR Graphics libraries ncarg, ncarg_gks, and ncarg_c, preferably in that order. (yes, in that order. she's particular. πŸ’…)


✨ SEE ALSO ✨

Online: stgetc, stgeti, stgetr, stinit, stream, streamlines, streamlines_params, strset, stsetc, stseti, stsetr, stuixy, stumta, stumxy, ncarg_cbind. πŸ’–

Hardcopy: NCAR Graphics Fundamentals, UNIX Version


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 bestie, you ate it. 🫢 this was the UNIX version, dated April 1993, from the STUMSL(3NCARG) page β€” iconic, timeless, no cap. πŸ’œ

πŸ“¦ where this page comes from