STREAM(3NCARG)

✨ NAME ✨

STREAM β€” the NCAR Graphics bestie that plots a streamline representation of field flow data πŸ’¨ based on conditions established by STINIT and the current values of a set of user-modifiable internal parameters associated with the Streamlines utility. periodt.


πŸŽ€ SYNOPSIS πŸŽ€

CALL STREAM (U,V,P,IAM,STUMSL,WRK)

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

#include <ncarg/ncargC.h>

void c_stream(float *u, float *v, float *p, int *iam,
              int (*stumsl_)( float *xcs, float *ycs,
              int *ncs, int *iai, int *iag, int *nai),
              float *wrk)

πŸ’… DESCRIPTION πŸ’…

okay so here's the whole cast of characters, and yes they ALL matter:

  • U β€” (REAL 2 dimensional array, dimensioned as specified in last call to STINIT, input): by default this is assumed to contain the first dimensional axis components of the vector field. BUT πŸ‘€ if PLR is non-zero, it's treated as containing the vector magnitudes instead. plot twist.
  • V β€” (REAL 2 dimensional array, dimensioned as specified in last call to STINIT, input): by default this is assumed to contain the second dimensional axis components of the vector field. However (again πŸ‘€) if PLR is non-zero, it's treated as containing the vector angles.
  • P β€” (REAL, input, DUMMY): this argument is currently ignored. literally just assign it a dummy value and move on, bestie. 🫢
  • IAM β€” (INTEGER array, unknown dimension, input): the area map array, previously established by calls to routines in the Areas utility. It gets checked to see that the number of area groups is within the limits allowed by Streamlines, then it's simply passed through to an Areas routine for further processing. Required only if MSK is set to a non-zero value; otherwise it's ignored and you may assign it a dummy value.
  • STUMSL β€” (EXTERNAL subroutine, input): the user-definable masked drawing subroutine. Required only if MSK is set to a non-zero value; otherwise it's ignored and you may assign it a dummy value.
  • WRK β€” (REAL array, dimensioned as specified in last call to STINIT, input/output): the work array, used to store normalized values of the U and V vector components while the streamlines are calculated. It also holds bit flags indicating whether a grid location is eligible for starting a streamline or placing a directional arrowhead. she's working hard fr fr. πŸ’–

🌸 C-BINDING DESCRIPTION 🌸

The C-binding argument descriptions are the same as the FORTRAN argument descriptions. no notes, they're identical, slay. ✨


πŸ‘‘ USAGE πŸ‘‘

A call to STINIT must precede the first call to STREAM, and is again required any time the vector array data changes or any of the coordinate space control parameters are modified. that part is non-negotiable. However β€” and this is the fun part β€” you may modify certain rendering control parameters between multiple invocations of STREAM. See the streamlines_params man page for more info, iykyk. πŸ’…

Arguments to STINIT establish the sizes of the vector component arrays and the WRK array. STINIT places these values into common block variables where they become available to STREAM. Therefore no size arguments need appear in the STREAM argument list. iconic behavior honestly.

When area masking is not enabled, the third, fourth and fifth arguments to STREAM may all have dummy values and the invocation would be something like:

CALL STREAM(U,V,IDM,IDM,IDM,WRK)

where IDM is an arbitrary variable that need not have been initialized. no thoughts, head empty, still works. πŸ’€

The masking capability supported by Streamlines allows you to overlay streamlines on graphics produced by other utilities, such as Conpack contour plots, without encroaching on areas, like label boxes, that should appear in the foreground. so considerate of her. 🧚

Normally the area map should be generated and used in the normal way (as described in the Areas and Conpack documentation) before calling any routines in the Streamlines utility. When the parameter MSK has a non-zero value, masking is enabled and a previously created area map must be passed to STREAM. STREAM examines the map, returning an error if the map appears to be invalid or the number of area groups is beyond the range it can handle (currently 64). Otherwise, it only uses the map as an argument to the Areas utility subroutine, ARDRLN.

The user must also pass in a user-definable masked drawing subroutine. A simple version of this subroutine, named (like the argument) STUMSL, is supplied with the Streamlines utility, and may suffice for basic masked drawing operations. See the stumsl man page for more information. πŸ’œ

The P array argument is intended for future enhancement of the Streamlines utility and is not currently used or examined in any way. You may pass it an uninitialized dummy argument. she's just there for vibes rn.

πŸ”₯ EXAMPLES πŸ”₯

Use the ncargex command to see the following relevant examples: ffex00, ffex01, ffex03, ffex04, fstream, stex01, stex02, stex03, stex03. (yes stex03 shows up twice, that's canon, don't @ me 🫢)


⭐ ACCESS ⭐

To use STREAM or c_stream, load the NCAR Graphics libraries ncarg, ncarg_gks, and ncarg_c, preferably in that order. order matters bestie, trust. πŸŽ€


🌈 MESSAGES 🌈

See the streamlines man page for a description of all Streamlines error messages and/or informational messages. the receipts are all there.


πŸ¦‹ SEE ALSO πŸ¦‹

Online: stgetc, stgeti, stgetr, stinit, streamlines, streamlines_params, strset, stsetc, stseti, stsetr, stuixy, stumsl, 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.


and that's the whole page bestie πŸ’… this NCAR Graphics moment was brought to you by UNIX, dated April 1993, filed under STREAM(3NCARG) β€” go plot something iconic βœ¨πŸ¦‹