Vectors_params(3NCARG)

โœจ Vectors_params โ€” the NCAR Graphics glow-up guide โœจ

okay bestie, welcome to Vectors_params from the NCAR GRAPHICS manual (3NCARG, if you're keeping score ๐Ÿ’…). This doc is literally just a rundown of every single internal parameter that the Vectors system has. All of them. No skips. Let's get into it ๐Ÿฆ‹


๐ŸŒธ DESCRIPTION ๐ŸŒธ

So here's the vibe: every parameter gets its own little description, and they're listed in alphabetical order (iconic, organized, we love that for us ๐Ÿ’–). And every description starts with a lil intro line that tells you three things:

  • the three-character mnemonic name of the parameter (that's the short code you'll actually type)
  • the phrase the mnemonic stands for (what the letters mean, iykyk)
  • the intrinsic type of the parameter, plus whether or not it's an array

periodt. now let's meet the parameters ๐ŸŒˆ


๐ŸŽ€ ACM - Arrow Color Mode - Integer

ACM controls how color gets applied to filled vector arrows. It only does anything when AST has the value 1. Its whole behavior also depends on the setting of the parameter CTV. Assuming CTV is set to a non-zero value (meaning multi-colored vectors are what we're going for), ACM has these settings:

Value   Effect
-----   ------
-2      Multi-colored fill; outline off
-1      Fill off; multi-colored outline
0       Multi-colored fill; mono-colored outline
1       Mono-colored fill; multi-colored outline
2       Multi-colored fill; multi-colored outline

Mono-colored outlines use the current GKS polyline color index. Mono-colored fill uses the current GKS fill color index. And when CTV is set to 0, both the fill and the outlines go mono-colored โ€” which means only modes -2, -1, and 0 stay distinguishable from each other. The default value is 0.

๐Ÿฆ‹ AFO - Arrow Fill Over Arrow Lines - Integer

If AFO is set to 1, the perimeter outline of a filled vector arrow is drawn first, underneath the fill. In that case you gotta set the line thickness parameter (LWD) to a value greater than unity or the line won't show up completely. The whole point of drawing the line underneath is that the fill gets to show its full extent โ€” which gives you a crisper, more sharply defined arrow. (When the line is drawn on top of the fill using a different color index, the fill color can get partially or completely obscured, especially for small vector arrows. ๐Ÿ˜ญ) AFO only has an effect when AST is set to 1. The default value of AFO is 1.

๐Ÿ’– AIR - Arrow Interior Reference Fraction - Real

AIR specifies the distance from the point of the arrowhead of a filled vector arrow (drawn at the reference length) to the point where the arrowhead joins with the line extending to the tail of the arrow. Its value represents a fraction of the reference length. This distance gets adjusted proportionally to the X component of the arrowhead size for vector arrows whose length differs from the reference length. Peep VRL for an explanation of how the reference length is determined. AIR only has an effect when AST is set to 1. AIR is allowed to vary between 0.0 and 1.0, and its default value is 0.33.

๐ŸŒธ AMN - Arrow Head Minimum Size - Real

Specifies a minimum length for the two lines representing the point of the vector arrow head, as a fraction of the viewport width. AMN only has an effect for line-drawn vector arrows (parameter AST set to 0). Normally the arrow head size is scaled proportionally to the length of the vector, but this parameter lets you make sure the arrow head stays recognizable even for super short vectors ๐Ÿซถ. Note that you can make all the arrowheads in the plot draw at the same size if you set AMN and AMX to the same value. And if you set both AMN and AMX to 0.0, the arrowheads won't be drawn at all ๐Ÿ’€. The default value is 0.005.

๐ŸŽ€ AMX - Arrow Head Maximum Size - Real

Specifies a maximum length for the two lines representing the point of the vector arrow head, as a fraction of the viewport width. AMX only has an effect for line-drawn vector arrows (parameter AST set to 0). Normally the arrow head is scaled proportionally to the length of the vector, but this parameter lets you keep the arrow heads from getting excessively large for high magnitude vectors. Note that you can make all the arrowheads in the plot draw at the same size if you set AMN and AMX to the same value. And if you set both AMN and AMX to 0.0, the arrowheads won't be drawn at all. The default value is 0.05.

๐Ÿ‘‘ AST - Arrow Style - Integer

Okay this one's the main character. Here's the tea:

  • If AST is set to 0, the vector arrows are drawn using lines only.
  • When AST is set to 1, the vectors are plotted using variable width filled arrows, with an optional outline.
  • If AST is set to 2, wind barb glyphs are used to represent the vectors.

There are parameters for controlling the appearance of each style, and each of those only has an effect for one value of AST. That said, certain parameters apply to all arrow styles. Here's the table of parameters that affect the appearance of vectors, and how their behavior is affected by the setting of AST:

Parameter   Line-Drawn Arrows   Filled Arrows   Wind Barbs
---------   -----------------   -------------   ----------
ACM                             x
AFO                             x
AIR                             x
AMN         x
AMX         x
AWF                             x
AWR                             x
AXF                             x
AXR                             x
AYF                             x
AYR                             x
CLR         x                   x               x
CTV         x                   x               x
LWD         x                   x               x
NLV         x                   x               x
PAI         x                   x               x
TVL         x                   x               x
WBA                                             x
WBC                                             x
WBD                                             x
WBS                                             x
WBT                                             x

When filled arrows are used, colors associated with the threshold levels may be applied to either or both the fill or the outline of the arrow. When fill is drawn over the outline (AFO set to 1), LWD should be set to a value greater than 1.0 so the outline is fully visible. The default value of AST is 0.

๐Ÿ’… AWF - Arrow Width Fractional Minimum - Real

AWF specifies the width of a filled arrow drawn at the minimum length, as a fraction of the width of an arrow drawn at the reference length. If AWF has the value 0.0, then the ratio of the arrow width to the arrow length will be constant for all arrows in the plot. If given the value 1.0, the width will itself be constant for all arrows in the plot, regardless of length. See VFR for a discussion of how the minimum length is determined. AWF only has an effect when AST is set to 1. AWF is allowed to vary between 0.0 and 1.0, and its default value is 0.0.

๐Ÿงš AWR - Arrow Width Reference Fraction - Real

AWR specifies the width of a filled vector arrow drawn at the reference length, as a fraction of the reference length. See VRL for an explanation of how the reference length is determined. AWR only has an effect when AST is set to 1. AWR is allowed to vary between 0.0 and 1.0, and its default value is 0.03.

โญ AXF - Arrow X-Coord Fractional Minimum - Real

AXF specifies the X component of the head of a filled vector arrow drawn at the minimum length, as a fraction of the X component of the head of an arrow drawn at the reference length. The X component of the arrowhead is the distance from the point of the arrowhead to a point along the centerline of the arrow perpendicular the arrowheadยดs rear tips. If AXF has the value 0.0, then the ratio of the X component of the arrowhead size to the arrow length will be constant for all vectors in the plot. If given the value 1.0, the arrowhead X component will itself be constant for all arrows in the plot, regardless of their length. See VRL for an explanation of how the reference length is determined. AXF only has an effect when AST is set to 1. AXF is allowed to vary between 0.0 and 1.0, and its default value is 0.0.

๐ŸŒˆ AXR - Arrow X-Coord Reference Fraction - Real

AXR specifies the X component of the head of a filled vector arrow drawn at the reference length, as a fraction of reference length. The X component of the arrowhead is the distance from the point of the arrowhead to a point along the centerline of the arrow perpendicular the arrowheadยดs rear tips. See VRL for an explanation of how the reference length is determined. AXR only has an effect when AST is set to 1. AXR is allowed to vary between 0.0 and 2.0, and its default value is 0.36.

๐Ÿ“ AYF - Arrow Y-Coord Fractional Minimum - Real

The value of this parameter, when added to the minimum width value, specifies the Y component length of the arrowhead size for a filled arrow drawn at the minimum length, as a fraction of the length specified by AYF. If given the value 1.0, the arrowhead Y component will extend the same distance perpendicularly from the edge of all arrows in the plot, regardless of their length and width. This can be a useful resource to adjust to make sure the points of even very short vector arrows stay visible ๐Ÿ‘€. See VFR for a discussion of how the minimum length is determined. AYF only has an effect when AST is set to 1. AYF is allowed to vary between 0.0 and 1.0, and its default value is 0.25.

๐Ÿ’œ AYR - Arrow Y-Coord Reference Fraction - Real

AYR specifies the perpendicular distance from one side of a filled vector arrow drawn at the reference length to one of the back tips of the arrowhead. The value represents a fraction of the value of the reference length and, when added to half the arrow width, determines the Y component of the arrowhead size. See VRL for an explanation of how the reference length is determined. AYR only has an effect when AST is set to 1. AYR is allowed to vary between 0.0 and 1.0, and its default value is 0.12.

๐Ÿ’– CLR โ€” Array of GKS Color Indices โ€” Integer Array ๐ŸŽจ

Okay bestie, this one's the glow-up of your vectors. CLR is an array holding the GKS color index you wanna use to color a vector when the scalar quantity is less than or equal to the threshold value sitting at the same index in the TVL threshold value array. Depending on how AST and ACM are set, it might be handing you a set of fill color indexes, a set of line color indexes, or honestly both. No cap.

To grab one specific element of the CLR array, you gotta first set PAI โ€” that's the parameter array index parameter โ€” to the index of the array element you want. All the elements start out set to one initially, cute.

Heads up fr: the Vectors utility makes no calls to set the GKS color representation (GSCR), and it never modifies the contents of the CLR array. So you are responsible for building a suitably graduated color palette and stuffing those color index values into CLR before you call VVECTR. It's giving DIY energy, iykyk.

Typically โ€” assuming your desired RGB values are already chilling in a 2-dimensional 3 x n array called RGB โ€” you loop through the calls that set up the color representation and color index, like this little example for a fourteen color palette:

     DO 100 I=1,14,1
         CALL GSCR (1,I,RGB(1,I),RGB(2,I),RGB(3,I))
         CALL VVSETI(ยดPAI -- Parameter Array Indexยด, I)
         CALL VVSETI(ยดCLR -- GKS Color Indexยด, I)
 100 CONTINUE

Peep the descriptions of CTV, NLV, and TVL for the deets on configuring your vector coloring scheme. ๐Ÿ’…


๐Ÿงฉ CPM โ€” Compatibility Mode โ€” Integer

This one controls how much compatibility you want between the pre-Version 3.2 capabilities of the Vectors utility and the later versions. You get to independently control three behaviors using the nine settings provided:

  • use of VELVCT and VELVEC input parameters
  • use of variables initialized in the VELDAT block data statement
  • use of the old mapping routines, FX, FY, MXF, and MYF.

Note though, bestie: when you're using the Version 3.2 entry points VVINIT and VVECTR, only that third behavior option has any meaning at all. The other two are just standing there ๐Ÿ’€.

When CPM is set to 0, its default value, the Vectors utility's behavior varies depending on whether you access it through one of the pre-Version 3.2 entry points (VELVCT, VELVEC, and EZVEC), or through the VVINIT/VVECTR interface. Otherwise:

  • Positive values โ†’ invocation of the pre-Version 3.2 mapping routines (FX, FY, MXF, and MYF) for the conversion from data to user coordinates.
  • Negative values โ†’ VVMPXY or perhaps VVUMXY gets used instead.

When using the pre-Version 3.2 interface, odd values of CPM cause the data values in the VELDAT block data subroutine to override corresponding values initialized in the Version 3.2 VVDATA block data subroutine, or set by the user calling VVSETx routines. And values of CPM with absolute value greater than two cause some of the input arguments to VELVEC and VELVCT to be ignored. These include FLO, HI, NSET, ISPV, SPV and (for VELVCT only) LENGTH.

Here's the tea on all nine settings of CPM and how they affect the operation of the Vectors utility:

  • -4 โ€” Use FX, FY, etc.: no. Use VELDAT data: no. Use input args: no.
  • -3 โ€” Use FX, FY, etc.: no. Use VELDAT data: yes. Use input args: no.
  • -2 โ€” Use FX, FY, etc.: no. Use VELDAT data: no. Use input args: yes.
  • -1 โ€” Use FX, FY, etc.: no. Use VELDAT data: yes. Use input args: yes.
  • 0 โ€” Use FX, FY, etc.: old - yes; new - no (*). Use VELDAT data: yes. Use input args: yes.
  • 1 โ€” Use FX, FY, etc.: yes. Use VELDAT data: yes. Use input args: yes.
  • 2 โ€” Use FX, FY, etc.: yes. Use VELDAT data: no. Use input args: yes.
  • 3 โ€” Use FX, FY, etc.: yes. Use VELDAT data: yes. Use input args: no.
  • 4 โ€” Use FX, FY, etc.: yes. Use VELDAT data: no. Use input args: no.

(*) Old means EZVEC, VELVEC, VELVCT entry point; new means VVINIT/VVECTR. Only the first column applies to the VVINIT/VVECTR interface. See the velvct man page for more detailed emulation information. ๐Ÿ“–


๐ŸŒˆ CTV โ€” Color Threshold Value Control โ€” Integer

Working together with NLV, this parameter controls vector coloring and the setting of threshold values. Your vectors can be colored based on the vector magnitude, or on the contents of a scalar array (that's the VVINIT/VVECTR input argument, P). Here's the full table of supported options, bestie:

  • -2 โ€” Color vector arrows based on scalar array data values; the user is responsible for setting up threshold level array, TVL.
  • -1 โ€” Color vector arrows based on vector magnitude; the user is responsible for setting up values of threshold level array.
  • 0 (default) โ€” Color all vectors according to the current GKS polyline color index value. Threshold level array, TVL and GKS color index array, CLR are not used.
  • 1 โ€” Color vector arrows based on vector magnitude; VVINIT assigns values to the first NLV elements of the threshold level array, TVL.
  • 2 โ€” Color vector arrows based on scalar array data values; VVINIT assigns values to the first NLV elements of the threshold level array, TVL.
If you make CTV positive, you must initialize Vectors with a call to VVINIT after the modification. No skipping this step, periodt. ๐Ÿซถ

๐Ÿ“ DMN โ€” NDC Minimum Vector Size โ€” Real, Read-Only

This one's read-only and it only has a useful value following a call to VVECTR (directly, or through the compatibility version VELVCT). You may retrieve it to figure out the length in NDC space</c yan> of the smallest vector actually drawn โ€” in other words, the smallest vector within the boundary of the user coordinate space that is greater than or equal in magnitude to the value of the VLC parameter. It's initially set to a value of 0.0.


๐Ÿ“ DMX โ€” NDC Maximum Vector Size โ€” Real, Read-Only

Unlike DMN, this read-only parameter actually has a potentially useful value between calls to VVINIT and VVECTR. But plot twist: the value it reports may be different before and after the call to VVECTR.

  • Before the VVECTR call โ€” it contains the length in NDC space that would be used to render the maximum size vector, assuming the user-settable parameter VRL is set to its default value of 0.0.
  • After the VVECTR call โ€” it contains the NDC length used to render the largest vector actually drawn โ€” in other words, the largest vector within the boundary of the user coordinate space that is less than or equal in magnitude to the value of the VHC parameter.

See the section on the VRL parameter for info on using the value of DMX after the VVINIT call in order to adjust proportionally the lengths of all the vectors in the plot. It's initially set to a value of 0.0. โœจ


๐Ÿ”ข DPF โ€” Vector Label Decimal Point Control Flag โ€” Integer

If DPF is set to a non-zero value, and the optional vector magnitude labels are enabled, the magnitude values get scaled to fit in the range 1 to 999. Those labels will contain 1 to 3 digits and no decimal point. Otherwise, the labels will consist of a number up to six characters long, including a decimal point. By default DPF is set to the value 1.


๐ŸŽ€ LBC โ€” Vector Label Color โ€” Integer

This parameter specifies the color to use for the optional vector magnitude labels, like so:

  • < -1 โ€” Draw labels using the current GKS text color index.
  • -1 (default) โ€” Draw labels using the same color as the corresponding vector arrow.
  • >=0 โ€” Draw labels using the LBC value as the GKS text color index.

๐Ÿท๏ธ LBL โ€” Vector Label Flag โ€” Integer

If set non-zero, Vectors draws labels representing the vector magnitude next to each arrow in the field plot. Now ngl, the vector labels are primarily intended as a debugging aid โ€” because in order to avoid excessive overlap, you must typically set the label text size too small to be readable without magnification. ๐Ÿ™ˆ

For this reason, as well as for efficiency, unlike the other graphical text elements supported by the Vectors utility, the vector labels are rendered using low quality text. It's giving budget chic.


๐Ÿ”ค LBS โ€” Vector Label Character Size โ€” Real

This parameter specifies the size of the characters used for the vector magnitude labels as a fraction of the viewport width. The default value is 0.007. Tiny but mighty ๐Ÿงš


โœ๏ธ LWD โ€” Vector Linewidth โ€” Real

LWD controls the linewidth used to draw the lines that form vector arrows and wind barbs. Let's break it down by vibe:

  • When the arrows are filled (AST is set to 1), LWD controls the width of the arrow's outline.
  • If the fill is drawn over the outline (AFO set to 1), then LWD must be set to a value greater than 1.0 in order for the outline to appear properly. Don't skip this, bestie.
  • When AST has the value 2, LWD controls the width of the line elements of wind barbs.
  • When AST is set to 0, specifying line-drawn vector arrows, the linewidth applies equally to the body of the vector and the arrowhead. Overly thick lines may cause the arrow heads to appear smudged. ๐Ÿ’€ This was part of the motivation for developing the option of filled vector arrows.
Note that since linewidth in NCAR Graphics is always calculated relative to a unit linewidth that is dependent on the output device, you may need to adjust the linewidth value depending on the intended output device to obtain a pleasing plot.

The default is 1.0, specifying a device-dependent minimum linewidth. ๐Ÿ‘‘


๐Ÿ—บ๏ธ MAP โ€” Map Transformation Code โ€” Integer

MAP defines the transformation between the data and user coordinate space. Three MAP parameter codes are reserved for pre-defined transformations. First up:

  • 0 (default) โ€” Identity transformation between data and user coordinates: array indices of U, V, and P are linearly related to data coordinates.
  • 1 โ€” Ezmap transformation: first dimension indices of U, V, and P are linearly related to longitude; second dimension indices are linearly related to latitude. ๐ŸŒโœจ
  • 2 โ€” Polar to rectangular transformation: first dimension indices of U, V, and P are linearly related to the radius; second dimension indices are linearly related to the angle in degrees. ๐ŸŒ€๐Ÿ’…

If MAP has any other value, Vectors invokes the user-modifiable subroutine, VVUMXY, to perform the mapping. The default version of VVUMXY simply performs an identity transformation. Note that, while the Vectors utility does not actually prohibit the practice, the user is advised not to use negative integers for user-defined mappings, since other utilities in the NCAR Graphics toolkit attach a special meaning to negative mapping codes. ๐Ÿšซ๐Ÿ”ข No cap, bestie, that's a whole warning.

For all the predefined mappings, the linear relationship between the grid array indices and the data coordinate system is established using the four parameters, XC1, XCM, YC1, and YCN. The X parameters define a mapping for the first and last indices of the first dimension of the data arrays, and the Y parameters do the same for the second dimension. If MAP is set to a value of one, be careful to ensure that the SET parameter is given a value of zero, since the Ezmap routines require a specific user coordinate space for each projection type, and internally call the SET routine to define the user to NDC mapping. Otherwise, you may choose whether or not to issue a SET call prior to calling VVINIT, modifying the value of SET as required. See the description of the parameter, TRT, and the vvumxy man page for more information. ๐Ÿ“๐Ÿ’–


  • MNC โ€” Minimum Vector Text Block Color โ€” Integer. MNC specifies the color of the minimum vector graphical text output block as follows:
    • <-2 โ€” Both the vector arrow and the text are colored using the current text color index. ๐ŸŽจ
    • -2 โ€” If the vectors are colored by magnitude, both the vector arrow and the text use the GKS color index associated with the minimum vector magnitude. Otherwise, the vector arrow uses the current polyline color index and the text uses the current text color index. ๐ŸŒˆ
    • -1 (default) โ€” If the vectors are colored by magnitude, the vector arrow uses the GKS color index associated with the minimum vector magnitude. Otherwise the vector arrow uses the current polyline color index. The text is colored using the current text color index in either case. ๐Ÿ’–
    • >= 0 โ€” The value of MNC is used as the color index for both the text and the vector arrow. ๐Ÿ’…

See the description of MNT for more information about the minimum vector text block. ๐Ÿ‘‘


  • MNP โ€” Minimum Vector Text Block Positioning Mode โ€” Integer. This parameter allows you to justify the minimum vector text block, taken as a single unit, relative to the text block position established by the parameters, MNX and MNY. Nine positioning modes are available, as follows:
    • -4 โ€” The lower left corner of the text block is positioned at MNX, MNY. ๐Ÿ‘ˆ
    • -3 โ€” The center of the bottom edge is positioned at MNX, MNY. ๐Ÿ‘‡
    • -2 โ€” The lower right corner is positioned at MNX, MNY. ๐Ÿ‘‰
    • -1 โ€” The center of the left edge is positioned at MNX, MNY. ๐Ÿ‘ˆ
    • 0 โ€” The text block is centered along both axes at MNX, MNY. ๐ŸŽฏ
    • 1 โ€” The center of the right edge is positioned at MNX, MNY. ๐Ÿ‘‰
    • 2 โ€” The top left corner is positioned at MNX, MNY. ๐Ÿ‘†
    • 3 โ€” The center of the top edge is positioned at MNX, MNY. ๐Ÿ‘†
    • 4 (default) โ€” The top right corner is positioned at MNX, MNY. ๐Ÿ‘†

See the description of MNT for more information about the minimum vector text block. ๐ŸŽฏ


  • MNS โ€” Minimum Vector Text Block Character Size โ€” Real. MNS specifies the size of the characters used in the minimum vector graphics text block as a fraction of the viewport width. See the description of MNT for more information about the minimum vector text block. The default value of MNS is 0.0075. ๐Ÿ”ค

  • MNT โ€” Minimum Vector Text String โ€” Character* 36. The minimum vector graphics text block consists of a user-definable text string centered underneath a horizontal arrow. If the parameter VLC is set negative the arrow is rendered at the size of the reference minimum magnitude vector (which may be smaller than any vector that actually appears in the plot). Otherwise, the arrow is the size of the smallest vector in the plot. Directly above the arrow is a numeric string in exponential format that represents the vector's magnitude. ๐Ÿ“Š

Use MNT to modify the text appearing below the vector in the minimum vector graphics text block. Currently the string length is limited to 36 characters. Set MNT to a single space (ยด ยด) to remove the text block, including the vector arrow and the numeric magnitude string, from the plot. The default value is ยดMinimum Vectorยด. โœจ


  • MNX โ€” Minimum Vector Text Block X Coordinate โ€” Real. MNX establishes the X coordinate of the minimum vector graphics text block as a fraction of the viewport width. Values less than 0.0 or greater than 1.0 are permissible and respectively represent regions to the left or right of the viewport. The actual position of the block relative to MNX depends on the value assigned to MNP. See the descriptions of MNT and MNP for more information about the minimum vector text block. The default value of MNX is 0.475. ๐Ÿ“

  • MNY โ€” Minimum Vector Text Block Y Coordinate โ€” Real. MNY establishes the Y coordinate of the minimum vector graphics text block as a fraction of the viewport height. Values less than 0.0 or greater than 1.0 are permissible and respectively represent regions below or above the viewport. The actual position of the block relative to MNY depends on the value assigned to MNP. See the descriptions of MNT and MNP for more information about the minimum vector text block. The default value of MNY is -0.01. ๐Ÿ“

  • MSK โ€” Mask To Area Map Flag โ€” Integer. Use this parameter to control masking of vectors to an existing area map created by routines in the Areas utility. When MSK is greater than 0, masking is enabled and an the area map must be set up prior to the call to VVECTR. The area map array and, in addition, the name of a user-definable masked drawing routine, must be passed as input parameters to VVECTR. Various values of the MSK parameter have the following effects:
    • <= 0 (default) โ€” No masking of vectors.
    • 1 โ€” The subroutine ARDRLN is called internally to decompose the vectors into segments contained entirely within a single area. ARDRLN calls the user-definable masked drawing subroutine.
    • >1 โ€” Low precision masking. ARGTAI is called internally to get the area identifiers for the vector base position point. Then the user-definable masked drawing subroutine is called to draw the vector. Vectors with nearby base points may encroach into the intended mask area.

See the man page vvudmv for further explanation of masked drawing of vectors. ๐ŸŽญ


  • MXC โ€” Maximum Vector Text Block Color โ€” Integer. MXC specifies the color of the maximum vector graphical text output block as follows:
    • <-2 โ€” Both the vector arrow and the text are colored using the current text color index. ๐ŸŽจ
    • -2 โ€” If the vectors are colored by magnitude, both the vector arrow and the text use the GKS color index associated with the minimum vector magnitude. Otherwise, the vector arrow uses the current polyline color index and the text uses the current text color index. ๐ŸŒˆ
    • -1 (default) โ€” If the vectors are colored by magnitude, the vector arrow uses the GKS color index associated with the minimum vector magnitude. Otherwise the vector arrow uses the current polyline color index. The text is colored using the current text color index in either case. ๐Ÿ’–
    • >= 0 โ€” The value of MXC is used as the color index for both the text and the vector arrow. ๐Ÿ’…

See the description of MXT for more information about the maximum vector text block. ๐Ÿ‘‘


  • MXP โ€” Maximum Vector Text Block Positioning Mode โ€” Integer. This parameter allows you to justify the maximum vector text block, taken as a single unit, relative to the text block position established by the parameters, MXX and MXY. Nine positioning modes are available, as follows:
    • -4 โ€” The lower left corner of the text block is positioned at MXX, MXY.
    • -3 โ€” The center of the bottom edge is positioned at MXX, MXY.
    • -2 โ€” The lower right corner is positioned at MXX, MXY.
    • -1 โ€” The center of the left edge is positioned at MXX, MXY.
    • 0 โ€” The text block is centered along both axes at MXX, MXY.
    • 1 โ€” The center of the right edge is positioned at MXX, MXY.
    • 2 โ€” The top left corner is positioned at MXX, MXY.
    • 3 โ€” The center of the top edge is positioned at MXX, MXY.
  • 4 โ€” The top right corner is positioned at MXX, MXY. โœจ

See the description of MXT for more information about the maximum vector text block.

  • MXS โ€” Maximum Vector Text Block Character Size โ€” Real

Okay bestie, MXS specifies the size of the characters used in the maximum vector graphics text block as a fraction of the viewport width. See the description of MXT for more info about the maximum vector text block. The default value is 0.0075. ๐ŸŽ€

  • MXT โ€” Maximum Vector Text String โ€” Character 36

The maximum vector graphics text block consists of a user-definable text string centered underneath a horizontal arrow. If the parameter VHC is set negative the arrow is rendered at the size of the reference maximum magnitude vector (which may be larger than any vector that actually appears in the plot). Otherwise, the arrow is the size of the largest vector in the plot. Directly above the arrow is a numeric string in exponential format that represents the magnitude of this vector.

Use MXT to modify the text appearing below the vector in the maximum vector graphics text block. Currently the string length is limited to 36 characters. Set MXT to a single space (ยด ยด) to completely remove the text block, including the vector arrow and the numeric magnitude string, from the plot. Note that the name "Maximum Vector Text Block" is no longer accurate, since using the parameter VRM it is now possible to establish a reference magnitude that is smaller than the maximum magnitude in the data set. A more accurate name would be "Reference Vector Text Block". The default value of MXT is ยดMaximum Vectorยด. ๐Ÿ’…

  • MXX โ€” Maximum Vector Text Block X Coordinate โ€” Real

MXX establishes the X coordinate of the maximum vector graphics text block as a fraction of the viewport width. Values less than 0.0 or greater than 1.0 are permissible and respectively represent regions below or above of the viewport. The actual position of the block relative to MXX depends on the value assigned to MXP. See the descriptions of MXT and MXP for more information about the maximum vector text block. The default value is 0.525. ๐ŸŒธ

  • MXY โ€” Maximum Vector Text Block Y Coordinate โ€” Real

MXY establishes the Y coordinate of the maximum vector graphics text block as a fraction of the viewport width. Values less than 0.0 or greater than 1.0 are permissible and respectively represent regions below or above the viewport. The actual position of the block relative to MXY depends on the value assigned to MXP. See the descriptions of MXT and MXP for more information about the maximum vector text block. The default value is -0.01. ๐Ÿฆ‹

  • NLV โ€” Number of Colors Levels โ€” Integer

NLV specifies the number of color levels to use when coloring the vectors according to data in a scalar array or by vector magnitude. Anytime CTV has a non-zero value, you must set up the first NLV elements of the color index array CLR. Give each element the value of a GKS color index that must be defined by a call to the GKS subroutine, GSCR, prior to calling VVECTR. If CTV is less than 0, in addition to setting up the CLR array, you are also responsible for setting the first NLV elements of the threshold values array, TVL to appropriate values. NLV is constrained to a maximum value of 255. The default value of NLV is 0, specifying that vectors are colored according to the value of the GKS polyline color index currently in effect, regardless of the value of CTV. If CTV is greater than 0, you must initialize Vectors with a call to VVINIT after modifying this parameter. ๐Ÿ”ฅ

  • PAI โ€” Parameter Array Index โ€” Integer

The value of PAI must be set before calling VVGETC, VVGETI, VVGETR, VVSETC, VVSETI, or VVSETR to access any parameter which is an array; it acts as a subscript to identify the intended array element. For example, to set the 10th color threshold array element to 7, use code like this:

CALL VVSETI (ยดPAI - PARAMETER ARRAY INDEXยด,10)
CALL VVSETI (ยดCLR - Color Indexยด,7)

The default value of PAI is one. ๐Ÿ“

  • PLR โ€” Polar Input Mode โ€” Integer

When PLR is greater than zero, the vector component arrays are considered to contain the field data in polar coordinate form: the U array is treated as containing the vector magnitude and the V array as containing the vector angle. Be careful not to confuse the PLR parameter with the MAP parameter set to polar coordinate mode (2). The MAP parameter relates to the location of the vector, not its value. Here is a table of values for PLR:

  • 0 (default) โ€” U and V arrays contain data in cartesian component form.
  • 1 โ€” U array contains vector magnitudes; V array contains vector angles in degrees.
  • 2 โ€” U array contains vector magnitudes; V array contains vector angles in radians.

You must initialize Vectors with a call to VVINIT after modifying this parameter. ๐ŸŒˆ

  • PMN โ€” Minimum Scalar Array Value โ€” Real, Read-Only

You may retrieve the value specified by PMN at any time after a call to VVINIT. It will contain a copy of the minimum value encountered in the scalar data array. If no scalar data array has been passed into VVINIT it will have a value of 0.0. ๐Ÿ’œ

  • PMX โ€” Maximum Scalar Array Value โ€” Real

You may retrieve the value specified by PMX at any time after a call to VVINIT. It contains a copy of the maximum value encountered in the scalar data array. If no scalar data array has been passed into VVINIT it will have a value of 0.0. โญ

  • PSV โ€” P Array Special Value โ€” Real

Use PSV to indicate the special value that flags an unknown data value in the P scalar data array. This value will not be considered in the determination of the data set maximum and minimum values. Also, depending on the setting of the SPC parameter, the vector may be specially colored to flag the unknown data point, or even eliminated from the plot. You must initialize Vectors with a call to VVINIT after modifying this parameter. ๐Ÿงš

  • SET โ€” SET Call Flag โ€” Integer

Give SET the value 0 to inhibit the SET call VVINIT performs by default. Arguments 5-8 of a SET call made by the user must be consistent with the ranges of the user coordinates expected by Vectors. This is determined by the mapping from grid to data coordinates as specified by the values of the parameters XC1, XCM, YC1, YCN, and also by the mapping from data to user coordinates established by the MAP parameter. You must initialize Vectors with a call to VVINIT after modifying this parameter. The default value of SET is 1. ๐Ÿ’–

  • SPC โ€” Special Color โ€” Integer

SPC controls special value processing for the optional scalar data array used to color the vectors, as follows:

  • < 0 (default) โ€” The P scalar data array is not examined for special values.
  • 0 โ€” Vectors at P scalar array special value locations are not drawn.
  • > 0 โ€” Vectors at P scalar array special value locations are drawn using color index SPC.

You must initialize Vectors with a call to VVINIT after modifying this parameter. ๐ŸŽ€

  • SVF โ€” Special Value Flag โ€” Integer

The special value flag controls special value processing for the U and V vector component data arrays. Special values may appear in either the U or V array or in both of them. Five different options are available (although the usefulness of some of the choices is debatable):

  • 0 (default) โ€” Neither the U nor the V array is examined for special values
  • 1 โ€” Vectors with special values in the U array are not drawn
  • 2 โ€” Vectors with special values in the V array are not drawn
  • 3 โ€” Vectors with special values in either the U or V array are not drawn
  • 4 โ€” Vectors with special values in both the U and V arrays are not drawn

The U and V special values are defined by setting parameters USV and VSV. You must initialize Vectors with a call to VVINIT after modifying this parameter. โœจ

  • TRT โ€” Transformation Type โ€” Integer

As currently implemented, TRT further qualifies the mapping transformation specified by the MAP parameter, as follows:

  • -1 โ€” Direction, magnitude, and location are all transformed. This option is not currently supported by any of the pre-defined coordinate system mappings.
  • 0 โ€” Only location is transformed
  • 1 (default) โ€” Direction and location are transformed

This parameter allows you to distinguish between a system that provides a mapping of location only into an essentially cartesian space, and one in which the space itself mapped. To understand the difference, using polar coordinates as an example, imagine a set of wind speed monitoring units located on a radial grid around some central point such as an airport control tower. Each unitยดs position is defined in terms of its distance from the tower and its angular direction from due east. However, the data collected by each monitoring unit is represented as conventional eastward and northward wind components. Assuming the towersยดs location is at a moderate latitude, and the monitoring units are reasonably ยดlocalยด, this is an example of mapping a radially defined location into a nearly cartesian space (i.e. the eastward components taken alone all point in a single direction on the plot, outlining a series of parallel straight lines). One would set MAP to two (for the polar transformation) and TRT to zero to model this data on a plot generated by the Vectors utility. ๐Ÿ‘‘

okay so flip the script: imagine wind data again, eastward and northward components, but this time the polar map's center is the actual south pole. ๐Ÿ’€ In that case, the eastward components don't all point one wayโ€”they literally trace circles around the pole. That's a space mapping transformation, bestie. You'd set MAP to two again, but TRT goes to one so it transforms both direction and location. slay.

Changing this parameter only changes the final result when a non-uniform non-linear mapping happens somewhere in the transformation pipeline. For this convo, a uniform linear transformation is defined as one that satisfies these equations:

 x_out = x_offset + scale_constant * x_in
 y_out = y_offset + scale_constant * y_in

If scale_constant isn't the same for both the X and Y axes, then the mapping is non-uniform. periodt.

This option is currently implemented only for the pre-defined MAP parameter codes 0 and 2 โ€” the identity mapping and the polar coordinate mapping. But it operates on a different stage of the transformation pipeline in each case. The polar mapping is non-linear from data to user coordinates. The identity mapping, even though it's necessarily linear over the data-to-user-space mapping, can have a non-uniform mapping from user to NDC space, depending on the values you give to the input parameters of the SET call. This happens whenever the LL input parameter is anything other than one, or when LL equals one but the viewport and the user coordinate boundaries don't have the same aspect ratio. So for a MAP value of 2, TRT affects the mapping between data and user space, whereas for MAP set to 0, TRT influences the mapping between user and NDC space. iykyk.


๐Ÿ’– TVL - Array of Threshold Values - Real Array ๐Ÿ’–

TVL is an array of threshold values used to determine each vector's color, when CTV and NLV are both non-zero. For every vector, the TVL array gets searched for the smallest value greater than or equal to the scalar value associated with that vector. The array subscript of that element becomes an index into the CLR array. Vectors uses the GKS color index found at that element of the CLR array to set the vector's color. Note that Vectors assumes the threshold values are monotonically increasing. no cap.

When CTV is less than 0, you're responsible for assigning values to the elements of TVL yourself. To do that, first set the PAI parameter to the index of the threshold level element you want to define, then call VVSETR to set TVL to the appropriate threshold value for that element. Assuming the desired values are already stored in an array named TVALS, you could assign the threshold values for a fourteen-level color palette using this loop:

DO 100 I=1,14,1
    CALL VVSETI(PAI -- Parameter Array Index, I)
    CALL VVSETR(TVL -- Threshold Value, TVALS(I))
100 CONTINUE

When CTV is greater than 0, Vectors assigns values into TVL itself. Each succeeding element value is greater than the preceding value by the value of this expression:

(maximum_data_value - minimum_data_value) / NLV

where the data values are either from the scalar data array or are the magnitudes of the vectors in the vector component arrays. The first value is equal to the minimum value plus the expression; the final value (indexed by the value of NLV) is equal to the maximum value. If Vectors encounters a value greater than the maximum value in the TVL array while processing the field data, it gives the affected vector the color associated with the maximum TVL value.


๐Ÿฆ‹ USV - U Array Special Value - Real ๐Ÿฆ‹

USV is the special value for the U vector component array. It's a value outside the normal data range, used to say "hey, there's no valid data for this grid location". When SVF is set to 1 or 3, Vectors won't draw a vector whose U component has this special value. You must re-initialize Vectors with a call to VVINIT after modifying this parameter. Default is 1.0 E12.


๐ŸŒธ VFR - Minimum Vector Fractional Length - Real ๐ŸŒธ

Use this to adjust the realized size of the reference minimum magnitude vector relative to the reference maximum magnitude vector, so you can improve the plot's appearance or maybe its info content. Specify VFR as a value between 0.0 and 1.0. Here's the tea: 0.0 means unmodified linear scaling of the realized vector length in proportion to magnitude. 1.0 means the smallest vector gets represented at 1.0 times the length of the largest vector, so all vectorsโ€”no matter the magnitudeโ€”have the same length on the plot. A value of 0.5 means the smallest magnitude vector appears half as long as the largest magnitude vector; intermediate sizes are proportionally scaled to lengths between these extremes. When there's a huge variation in magnitude within the vector field, you can use this parameter to bump up the smallest vectors to a usefully visible level. When the variation is small, you can use it to exaggerate the differences that do exist. See also the descriptions of VRL, VLC, VHC, and VRM. Default is 0.0.


๐Ÿ’… VHC - Vector High Cutoff Value - Real ๐Ÿ’…

If the parameter VRM is set to a value greater than 0.0, it supercedes the use of VHC to specify the reference magnitude. VRM allows greater flexibility in that it can be used to specify an arbitrary reference magnitude that need not be the maximum magnitude contained in the data set. VHC can still be used to set a high cutoff value โ€” no vectors with magnitude greater than the cutoff value will be displayed in the plot.

If VRM has its default value, 0.0, VHC specifies the reference maximum magnitude represented by an arrow of length VRL (as a fraction of the viewport width). The realized length of each individual vector in the plot is based on its magnitude relative to the reference maximum magnitude and, if VFR is non-zero, the reference minimum magnitude (as specified by VLC). Note that the reference maximum magnitude may be greater than the magnitude of any vector in the dataset. The effect of this parameter varies depending on its value, as follows:

  • < 0.0 โ€” The absolute value of VHC unconditionally determines the reference maximum magnitude. Vectors in the dataset with magnitude greater than VHC are not displayed.
  • 0.0 (default) โ€” The vector with the greatest magnitude in the dataset determines the reference maximum magnitude.
  • > 0.0 โ€” The minimum of VHC and the vector with the greatest magnitude in the data set determines the reference maximum magnitude. Vectors in the dataset with magnitude greater than VHC are not displayed.

Typically, for direct comparison of the output of a series of plots, you would set VHC to a negative number, the absolute value of which is greater than any expected vector magnitude in the series. You can turn on Vectors statistics reporting using the parameter VST in order to see if any vectors in the datasets do exceed the maximum magnitude you have specified. See also the descriptions of the parameters VRM, VRL, DMX, VLC, and VFR.


๐ŸŽ€ VLC - Vector Low Cutoff Value - Real ๐ŸŽ€

Use this parameter to prevent vectors smaller than the specified magnitude from appearing in the output plot. VLC also specifies the reference minimum magnitude that is rendered at the size specified by the product of VRL and VFR (as a fraction of the viewport width), when VFR is greater than 0.0. Note that the reference minimum magnitude may be smaller than the magnitude of any vector in the dataset. The effect of this parameter varies depending on its value, as follows:

  • < 0.0 โ€” The absolute value of VLC unconditionally determines the reference minimum magnitude. Vectors in the dataset with magnitude less than VLC do not appear.
  • 0.0 (default) โ€” The vector with the minimum magnitude in the dataset determines the reference minimum magnitude.
  • > 0.0 โ€” The maximum of VLC and the vector with the least magnitude in the data set determines the reference minimum magnitude. Vectors in the dataset with magnitude less than VLC do not appear.

The initialization subroutine, VVINIT, calculates the magnitude of all the vectors in the vector field, and stores the maximum and minimum values. You may access these values by retrieving the read-only parameters, VMX and VMN. Thus it is possible to remove the small vectors without prior knowledge of the data domain. The following code fragment illustrates how the smallest 10% of the vectors could be removed:

CALL VVINIT(...
CALL VVGETR(ยดVMX - Vector Maximum Magnitudeยด, VMX)
CALL VVGETR(ยดVMN - Vector Minimum Magnitudeยด, VMN)
CALL VVSETR(ยดVLC - Vector Low Cutoff Valueยด,
+     VMN+0.1*(VMX-VMN))
CALL VVECTR(...

okay so bestie, plot number two in your little comparison lineup: if you're using VFR to set a minimum realized size for the vectors, you can make sure every vector of a particular length means the same magnitude on every single plot โ€” just set both VHC and VLC to negative values. ๐Ÿซถ

And if you're not actually trying to yeet any vectors off the plot? Make VLC smaller in absolute value than any magnitude you're expecting. Easy. โœจ

Wanna peek at whether anything in your datasets is dipping below that minimum magnitude you specified? Turn on Vectors statistics reporting with the parameter VST and it'll tell you. ๐Ÿ‘€

Also go read the descriptions of VFR, VRL, VHC, DMN, and VRM. They're all in the same friend group.

๐Ÿ’… VMD โ€” Vector Minimum Distance โ€” Real

Set VMD to anything greater than 0.0 and it means: this is the minimum distance between adjacent vector arrows in the plot, expressed as a fraction of the viewport width. The distribution of vectors gets analyzed, and then vectors are selectively removed so that whatever's left is separated by at least that distance.

The thinning algorithm needs a work array โ€” and not a small one, bestie. It needs one twice the size of the VVINIT arguments N and M multiplied together. So if you call VVINIT with N and M, you need 2 * N * M. ๐Ÿ˜ญ Using this capability also adds some processing time to the execution of Vectors.

If VMD is set to a value greater than 0.0 and no work array is provided, an error condition results. No work array, no service. Periodt.

If your data grid gets transformed such that adjacent grid cells end up very close together in NDC space โ€” think lots of map projections up near the poles โ€” this parameter is your girl. It tones down the otherwise cluttered appearance of those regions of the plot. ๐ŸŒˆ

The default value of VMD is 0.0.


โญ VMN โ€” Minimum Vector Magnitude โ€” Real, Read-Only

After a call to VVINIT, VMN holds the value of the minimum vector magnitude in the U and V vector component arrays.

Later, after VVECTR is called, it gets modified to contain the magnitude of the smallest vector actually displayed in the plot. That's the vector with the smallest magnitude greater than or equal to the value specified by VLC (the vector low cutoff parameter โ€” 0.0 if VLC has its default value) that falls within the user coordinate window boundaries. ๐Ÿ‘‘

What's in VMN is the same thing reported as the 'Minimum plotted vector magnitude' when Vectors statistics reporting is enabled. It may be larger than the reference minimum magnitude reported by the minimum vector text block if you specify the VLC parameter as a negative value. VMN is initially set to a value of 0.0.


๐Ÿ”ฅ VMX โ€” Maximum Vector Magnitude โ€” Real, Read-Only

After a call to VVINIT, VMX holds the value of the maximum vector magnitude in the U and V vector component arrays.

Later, after VVECTR is called, it gets modified to contain the magnitude of the largest vector actually displayed in the plot. That's the vector with the largest magnitude less than or equal to the value specified by VHC (the vector high cutoff parameter โ€” the largest floating point value available on the machine if VHC has its default value, 0.0) that falls within the user coordinate window boundaries.

What's in VMX is the same thing reported as the 'Maximum plotted vector magnitude' when Vectors statistics reporting is enabled. It may be smaller than the reference maximum magnitude reported by the maximum vector text block if you specify the VHC parameter as a negative value. VMX is initially set to a value of 0.0.


๐ŸŽ€ VPB โ€” Viewport Bottom โ€” Real

VPB only does anything when SET is non-zero โ€” that's the flag saying Vectors should do the call to SET itself. It specifies a minimum boundary value for the bottom edge of the viewport in NDC space, and it's constrained to a value between 0.0 and 1.0. It must be less than the value of the Viewport Top parameter, VPT. ๐Ÿ“

The actual value of the viewport bottom edge used in the plot may be greater than the value of VPB, depending on the setting of the Viewport Shape parameter, VPS.

You must initialize Vectors with a call to VVINIT after modifying this parameter.

The default value of VPB is 0.05.


๐Ÿฆ‹ VPL โ€” Viewport Left โ€” Real

VPL only does anything when SET is non-zero โ€” i.e. Vectors is doing the call to SET. It specifies a minimum boundary value for the left edge of the viewport in NDC space, constrained to a value between 0.0 and 1.0. It must be less than the value of the Viewport Right parameter, VPR. ๐Ÿ“

The actual value of the viewport left edge used in the plot may be greater than the value of VPL, depending on the setting of the Viewport Shape parameter, VPS.

You must initialize Vectors with a call to VVINIT after modifying this parameter.

The default value of VPL is 0.05.


๐Ÿ‘‘ VPO โ€” Vector Positioning Mode โ€” Integer

VPO decides where the vector arrow sits relative to the grid point location of the vector component data. Three settings, and here's the whole vibe check:

  • <0 โ€” the head of the vector arrow is placed at the grid point location
  • 0 (default) โ€” the center of the vector arrow is placed at the grid point location
  • >0 โ€” the tail of the vector arrow is placed at the grid point location

๐ŸŒธ VPR โ€” Viewport Right โ€” Real

VPR only does anything when SET is non-zero โ€” Vectors doing the call to SET. It specifies a maximum boundary value for the right edge of the viewport in NDC space, constrained to a value between 0.0 and 1.0. It must be greater than the value of the Viewport Left parameter, VPL. ๐Ÿ“

The actual value of the viewport right edge used in the plot may be less than the value of VPR, depending on the setting of the Viewport Shape parameter, VPS.

You must initialize Vectors with a call to VVINIT after modifying this parameter.

The default value of VPR is 0.95.


โœจ VPS โ€” Viewport Shape โ€” Real

VPS only does anything when SET is non-zero โ€” Vectors doing the call to SET. It specifies the desired viewport shape, like so:

  • <0.0 โ€” the absolute value of VPS specifies the shape to use for the viewport., as the ratio of the viewport width to its height,
  • 0.0 โ€” the viewport completely fills the area defined by the boundaries specifiers, VPL, VPR, VPB, VPT
  • >0.0,<1.0 (0.25, default) โ€” use R = (XCM-XC1)/(YCN-YC1) as the viewport shape if MIN(R, 1.0/R) is greater than VPS. Otherwise determine the shape as when VPS is equal to 0.0.
  • >= 1.0 โ€” use R = (XCM-XC1)/(YCN-YC1) as the viewport shape if MAX(R, 1.0/R) is less than VPS. Otherwise make the viewport a square.

Whatever shape it ends up being, the viewport is centered in, and made as large as possible in, the area specified by the parameters VPB, VPL, VPR, and VPT. ๐Ÿ’–

You must initialize Vectors with a call to VVINIT after modifying this parameter.

The default value of VPS is 25.


๐Ÿงš VPT โ€” Viewport Top โ€” Real

VPT only does anything when SET is non-zero โ€” Vectors doing the call to SET. It specifies a maximum boundary value for the top edge of the viewport in NDC space, constrained to a value between 0.0 and 1.0. It must be greater than the value of the Viewport Bottom parameter, VPB. ๐Ÿ“

The actual value of the viewport top edge used in the plot may be less than the value of VPT, depending on the setting of the Viewport Shape parameter, VPS.

You must initialize Vectors with a call to VVINIT after modifying this parameter.

The default value of VPT is 0.95.


๐Ÿ’œ VRL โ€” Vector Reference Length โ€” Real

Use this one to specify the realized length of the reference magnitude vector as a fraction of the viewport width. Based on that value, a reference length in NDC units gets established, and from that, the length of all vectors in the plot is derived. โœจ

The relationship between magnitude and length also depends on the setting of the minimum vector magnitude fraction parameter, VFR โ€” but given the default value of VFR (0.0), the length of each vector is simply proportional to its relative magnitude. Note that the arrow size parameters, AMN and AMX, give you independent control over the minimum and maximum size of the vector arrowheads. ๐ŸŽ€

Given a reference length, Vectors calculates a maximum length based on the ratio of the reference magnitude to the larger of the maximum magnitude in the data set and the reference magnitude itself. That length is accessible in units of NDC via the read-only parameter, DMX. ๐Ÿ‘‘

If VRL is set less than or equal to 0.0, VVINIT calculates a default value for DMX, based on the size of a grid box assuming a linear mapping from grid coordinates to NDC space. The value chosen is one half the diagonal length of a grid box.

And here's the cute part: by retrieving the value of DMX and calling GETSET to retrieve the viewport boundaries after the call to VVINIT, you can make relative adjustments to the vector length. Like this, where the maximum vector length is set to 1.5 times its default value:

CALL VVINIT(...
CALL VVGETR(ยดDMX - NDC Maximum Vector Sizeยด, DMX)
CALL GETSET(VL,VR,VB,VT,UL,UR,UB,UT,LL)
VRL = 1.5 * DMX / (VR - VL)
CALL VVSETR(ยดVRL - Vector Realized Lengthยด, VRL)
CALL VVECTR(...

When VVECTR sees that VRL is greater than 0.0, it will calculate a new value for DMX. If VRL is never set, the initially calculated value of DMX is used as the reference length. Do not rely on the internal parameters used for setting the viewport, VPL, VPR, VPB and VPT to retrieve information about viewport in lieu of using the GETSET call. These values are ignored entirely if the SET parameter is zero, and even if used, the viewport may be adjusted from the specified values depending on the setting of the viewport shape parameter, VPS. See also the descriptions of VFR, VRM, and VHC. The default value of VRL is 0.0.

VRM โ€” Vector Reference Magnitude โ€” Real ๐Ÿ’–

The introduction of the parameter VRM means that it is now possible to specify an arbitrary vector magnitude as the reference magnitude appearing in the "Maximum Vector Text Block" annotation. The reference magnitude no longer needs to be greater or equal to the largest magnitude in the data set. When VRM has a value greater than 0.0, it specifies the magnitude of the vector arrow drawn at the reference length. See VRL for an explanation of how the reference length is determined. If VRM is less than or equal to 0.0, the reference magnitude is determined by the value of VHC, the vector high cutoff value. If, in turn, VHC is equal to 0.0 the maximum magnitude in the vector field data set becomes the reference magnitude. The default value of VRM is 0.0.

VST โ€” Vector Statistics Output Flag โ€” Integer ๐Ÿ“Š

If VST is set to one, VVECTR writes a summary of its operation to the default logical output unit, including the number of vectors plotted, number of vectors rejected, minimum and maximum vector magnitudes, and if coloring the vectors according to data in the scalar array, the maximum and minimum scalar array values encountered. Here is a sample of the output:

               VVECTR Statistics
                                   Vectors plotted:  906
               Vectors rejected by mapping routine:  0
                   Vectors under minimum magnitude:  121
                    Vectors over maximum magnitude:  0
                         Other zero length vectors:  0
                           Rejected special values:  62
                  Minimum plotted vector magnitude:  9.94109E-02
                  Maximum plotted vector magnitude:      1.96367
                              Minimum scalar value:     -1.00000
                              Maximum scalar value:      1.00000

VSV โ€” V Array Special Value โ€” Real ๐Ÿšซ

VSV is the V vector component array special value. It is a value outside the range of the normal data used to indicate that there is no valid data for this grid location. When SVF is set to 2 or 3, Vectors will not draw a vector whose V component has the special value. You must initialize Vectors with a call to VVINIT after modifying this parameter. It has a default value of 1.0 E12.

WBA โ€” Wind Barb Angle โ€” Real ๐Ÿงญ

WBA sets the angle of the wind barb ticks in degrees as measured clockwise from the vector direction. It also sets the angle between the hypotenuse of the triangle defining the pennant polygon and the vector direction. You can render southern hemisphere wind barbs, which by convention, have their ticks and pennants on the other side of the shaft, by setting WBA to a negative value. WBA has an effect only when AST has the value 2.

WBC โ€” Wind Barb Calm Circle Size โ€” Real โญ•

WBC sets the diameter of the circle used to represent small vector magnitudes (less than 2.5) as a fraction of the overall wind barb length (the value of the VRL parameter). WBC has an effect only when AST has the value 2.

WBD โ€” Wind Barb Distance Between Ticks โ€” Real ๐Ÿ“

WBD sets the distance between adjacent wind barbs ticks along the wind barb shaft as a fraction of the overall wind barb length (the value of the VRL parameter). Half this distance is used as the spacing between adjacent wind barb pennants. Note that there is nothing to to prevent ticks and/or pennants from continuing off the end of the shaft if a vector of high enough magnitude is encountered. You are responsible for adjusting the parameters appropriately for the range of magnitudes you need to handle. WBD has an effect only when AST has the value 2.

WBS โ€” Wind Barb Scale Factor โ€” Real โš–๏ธ

WBS specifies a factor by which magnitudes passed to the wind barb drawing routines are to be scaled. It can be used to convert vector data given in other units into the conventional units used with wind barbs, which is knots. For instance, if the data are in meters per second, you could set WBS to 1.8974 to create a plot with conventional knot-based wind barbs. Note that setting WBS does not currently have any effect on the magnitude values written into the maximum or minimum vector legends. WBS has an effect only when AST has the value 2.

WBT โ€” Wind Barb Tick Size โ€” Real ๐Ÿ“

WBT is the length of the wind barb ticks as a fraction of the overall length of a wind barb (the value of the VRL parameter). The wind barb length is defined as the length of the wind barb shaft plus the projection of a full wind barb tick along the axis of the shaft. Therefore, increasing the value of WBT, for a given value of VRL has the effect of reducing the length of the shaft itself somewhat. You may need to increase VRL itself to compensate. WBT also sets the hypotenuse length of the triangle defining the pennant polygon. WBT has an effect only when AST has the value 2.

WDB โ€” Window Bottom โ€” Real ๐Ÿ”ป

When VVINIT does the call to SET, the parameter WDB is used to determine argument number 7, the user Y coordinate at the bottom of the window. If WDB is not equal to WDT, WDB is used. If WDB is equal to WDT, but YC1 is not equal to YCN, then YC1 is used. Otherwise, the value 1.0 is used. You must initialize Vectors with a call to VVINIT after modifying this parameter. The default value of WDB is 0.0.

WDL โ€” Window Left โ€” Real โฌ…๏ธ

When VVINIT does the call to SET, the parameter WDL is used to determine argument number 5, the user X coordinate at the left edge of the window. If WDL is not equal to WDR, WDL is used. If WDL is equal to WDR, but XC1 is not equal to XCM, then XC1 is used. Otherwise, the value 1.0 is used. You must initialize Vectors with a call to VVINIT after modifying this parameter. The default value of WDL is 0.0.

WDR โ€” Window Right โ€” Real โžก๏ธ

When VVINIT does the call to SET, the parameter WDR is used to determine argument number 6, the user X coordinate at the right edge of the window. If WDR is not equal to WDL, WDR is used. If WDR is equal to WDL, but XCM is not equal to XC1, then XCM is used. Otherwise, the value of the VVINIT input parameter, M, converted to a real, is used. You must initialize Vectors with a call to VVINIT after modifying this parameter. The default value of WDR is 0.0.

WDT โ€” Window Top โ€” Real ๐Ÿ”บ

When VVINIT does the call to SET, the parameter WDB is used to determine argument number 8, the user Y coordinate at the top of the window. If WDT is not equal to WDB, WDT is used. If WDT is equal to WDB, but YCN is not equal to YC1 then YCN is used. Otherwise, the value of the VVINIT input parameter, N, converted to a real, is used. You must initialize Vectors with a call to VVINIT after modifying this parameter. The default value of WDT is 0.0.

XC1 โ€” X Coordinate at Index 1 โ€” Real ๐Ÿงฎ

The parameter XC1 specifies the X coordinate value that corresponds to a value of 1 for the first subscript of the U, V, vector component arrays as well as for the P scalar data array, if used. Together with XCM, YC1, and YCN it establishes the mapping from grid coordinate space to data coordinate space. If XC1 is equal to XCM, 1.0 will be used. You must initialize Vectors with a call to VVINIT after modifying this parameter. The default value of XC1 is 0.0.

XCM โ€” X Coordinate at Index M โ€” Real ๐Ÿงฎ

The parameter XCM specifies the X coordinate value that corresponds to the value of the VVINIT input parameter, M, for the first subscript of the U and V vector component arrays as well as for the P scalar data array, if used. Together with XC1, YC1, and YCN it establishes the mapping from grid coordinate space to data coordinate space. If XC1 is equal to XCM, the value of M, converted to a real, will be used. You must initialize Vectors with a call to VVINIT after modifying this parameter. The default value of XCM is 0.0.

XIN โ€” X Axis Array Increment (Grid) โ€” Integer ๐Ÿ”ข

XIN controls the step size through first dimensional subscripts of the U,V vector component arrays and also through the P scalar data array if it is used. For dense arrays plotted at a small scale, you could set this parameter to a value greater than one to reduce the crowding of the vectors and hopefully improve the intelligibility of the plot. The grid point with subscripts (1,1) is always included in the plot, so if XIN has a value of three, for example, only grid points with first dimension subscripts 1, 4, 7... (and so on) will be plotted. See also YIN. You must initialize Vectors with a call to VVINIT after modifying this parameter. The default value of XIN is 1.

YC1 โ€” Y Coordinate at Index 1 โ€” Real ๐Ÿงฎ

The parameter YC1 specifies the Y coordinate value that corresponds to a value of 1 for the first subscript of the U, V, vector component arrays as well as for the P scalar data array, if used. Together with YCN, XC1, and XCM it establishes the mapping from grid coordinate space to data coordinate space. If YC1 is equal to YCN, 1.0 will be used. You must initialize Vectors with a call to VVINIT after modifying this parameter. The default value of YC1 is 0.0.

  • YCN โ€” Y Coordinate at Index N โ€” Real

okay so YCN is the Y coordinate value that lines up with the value of the VVINIT input parameter, N, for the second subscript of the U and V vector component arrays โ€” and also for the P scalar data array, if you're using it ๐Ÿซถ. Together with YC1, XC1, and XCM it builds the mapping from grid coordinate space to data coordinate space. If YC1 equals YCN, then the value of N, converted to a real, gets used instead. You must re-initialize Vectors with a call to VVINIT after changing this parameter. Default? 0.0 โœจ

  • YIN โ€” Y Axis Array Increment (Grid) โ€” Integer

YIN controls the step size through the second dimension subscripts of the U and V vector component arrays, and through the P scalar data array too if it's in play. For dense arrays plotted at a small scale, you could set this to something bigger than one to reduce the crowding of the vectors and hopefully make the plot more intelligible ๐Ÿ‘‘. The grid point with subscripts (1,1) is always included in the plot, so if YIN is three, for example, only grid points with second dimension subscripts 1, 4, 7โ€ฆ and so on get plotted. Peep XIN too. You must initialize Vectors with a call to VVINIT after modifying this parameter. Default is 1.

  • ZFC โ€” Zero Field Text Block Color โ€” Integer

If ZFC is greater than or equal to zero, it's the GKS color index used to color the Zero Field text block ๐Ÿ’…. Otherwise, the Zero Field text block gets colored with the current GKS text color index. Default is -1.

  • ZFP โ€” Zero Field Text Block Positioning Mode โ€” Integer

ZFP lets you justify the Zero Field text block unit with respect to the position set by ZFX and ZFY, using any of the 9 standard justification modes ๐ŸŒˆ. The modes go like this:

  • -4 โ€” the lower left corner of the text block is positioned at ZFX, ZFY.
  • -3 โ€” the center of the bottom edge is positioned at ZFX, ZFY.
  • -2 โ€” the lower right corner is positioned at ZFX, ZFY.
  • -1 โ€” the center of the left edge is positioned at ZFX, ZFY.
  • 0 (default) โ€” the text block is centered along both axes at ZFX, ZFY.
  • 1 โ€” the center of the right edge is positioned at ZFX, ZFY.
  • 2 โ€” the top left corner is positioned at ZFX, ZFY.
  • 3 โ€” the center of the top edge is positioned at ZFX, ZFY.
  • 4 โ€” the top right corner is positioned at ZFX, ZFY.
  • ZFS โ€” Zero Field Text Block Character Size โ€” Real

ZFS is the size of the characters used in the Zero Field graphics text block, expressed as a fraction of the viewport width. Default is 0.033 ๐ŸŽ€.

  • ZFT โ€” Zero Field Text String โ€” Character* 36

Use ZFT to change the text of the Zero Field text block. That block may show up whenever the U and V vector component arrays contain data such that all the grid points otherwise eligible for plotting contain zero magnitude vectors ๐Ÿ’€. Currently the string length is capped at 36 characters. Set ZFT to a single space (ยด ยด) to stop the text from being displayed. Default text is ยดZero Fieldยด.

  • ZFX โ€” Zero Field Text Block X Coordinate โ€” Real

ZFX sets the X coordinate of the Zero Field graphics text block as a fraction of the viewport width. Values less than 0.0 or greater than 1.0 are totally permissible, and they represent regions to the left or right of the viewport respectively ๐ŸŒธ. Where the block actually lands relative to ZFX depends on what you gave the Zero Field Positioning Mode parameter, ZFP. Default is 0.5.

  • ZFY โ€” Zero Field Text Block Y Coordinate โ€” Real

ZFY sets the Y coordinate of the minimum vector graphics text block as a fraction of the viewport height. Values less than 0.0 or greater than 1.0 are permissible too, and they represent regions below and above the viewport respectively ๐Ÿฆ‹. Where the block actually lands relative to ZFY depends on what you assigned to the Zero Field Positioning Mode parameter, ZFP. Default is 0.5.


๐Ÿ‘€ SEE ALSO

Online: vectors, vvectr, vvgetc, vvgeti, vvgetr, vvinit, vvrset, vvsetc, vvseti, vvsetr. vvudmv, vvumxy, 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 a wrap on Vectors_params(3NCARG) bestie!! ๐ŸŽ€โœจ this page came from the UNIX manual, dated April 1993, and it's filed under Vectors_params(3NCARG) โ€” go plot something iconic, ily, mwah ๐Ÿ’…๐Ÿซถ