2.4.4 sgpget/sgpset(sgpstx)

1.
Function
Inquires/changes an internal variable used by GRPH1. (sgpstx permits changes to be made by a runtime option.) p takes the characters r/i/l, which stand for floating-point variables, integer variables, and logical variables, respectively.
2.
Call
ipara = NumRu::DCL.sgpget(cp)
NumRu::DCL.sgpset(cp,lpara)
NumRu::DCL.sgpstx(cp,ipara)
3.
Explanation of Parameters
cp (C*8) The name of an internal variable.
ipara (I,R,L) The value of an internal variable.



The following is a list of names that can be specified as cp.



[Parameters For General Control]

'IWS' (I) The control number that is opened (initial value:  1). This number is set by sgopn. In GRPH1, this value cannot be changed with a runtime option. (Use the grpack of grph2 to permit change with a runtime option.)
'LFULL'

(L)

Specifies whether the workstation viewport set by sgfrm (See Section 2.4.2) is enlarged to take up the maximum available draw area. Enlarged to fit the whole draw area when .true., and takes a square shape when .false.. (The initial value:  .false..)

[Parameters for Polyline Primitives]


'NBITS'  (R) Specifies how many bits from the lower order is used to set the line type by bit pattern for tpolyline primitive. (Initial value:  16)
'BITLEN' (R) Specifies how long a single bit is in VC when setting the line type by bit pattern for the polyline primitive. (Initial value:  0.003)
'MOVE' (I) Specifies the cycle of patterns after the pen-up move when a subroutine of szpack draws a dashed line. (Initial value:  1)
1 : Considered to have continued drawing the graphics during the pen-up.
0 : Maintains the condition at the last pen-down move.
-1 : After the pen-up move, a new cycle is started.
'LCHAR' (L) Specifies whether a polyline primitive is labeled. Labeled when .true.; Not labeled when .false.. (Initial value: .false.) Below are the parameters for labeled line segments.
'LROT' (L) Specifies whether a text for the label is drawn at a fixed angle or along the line segment. Drawn at a fixed angle when .true.; along the line when .false.. (Initial value: .false.)
'IROT' (I) Specifies the angle of rotation when a text for the label is drawn at a fixed angle of rotation (When 'LROT' is .true.) (Unit is degrees; Initial value: 0)
'FWC' (R) A coefficient specifying the width of the space for the text as a ratio to the total length of the text which is 1.(Initial value: 1.25)
'CWL' (R) A coefficient specifying the length of a line segment in character height. (Initial value: 30.0)
'FFCT' (R) When drawing a labeled polyline, specifies the beginning of the label when the length of the total line segment is 1. (Initial value: 0.5)
'INDEXC' (I) Specifies the line index for each text used as a label (Initial value: 0). When this value is 0, the line index will be the same as the one currently set for the line segment.
'LBUFF' (L) When a polyline terminates within the space of a text, specifies whether buffering should be made for connecting a line segment. Buffered when .true.; Not buffered when .false.. (Initial value: .true.)
'NBUFF' (I) Specifies the length of the line segment when buffering (Initial value: 20)
'RBUFF' (R) After the buffered contents have been drawn out, specifies the position in the cycle of the labeled polyline. Specified value should be between  0 and 1. (Initial value: 0.99)
'LCURV' (L) Specifies not to place the label when the angle created by the polyline is large. More precisely, the label is not drawn when the space for the text is smaller than the coefficient in the parameter 'RCURV'. Label not drawn when .true.;  drawn when .false.. (Initial value: .true.)
'RCURV' (R) When 'LCURV' is .true., and the space for the label is smaller than this coefficient, the label is not drawn. (Initial value: 1.0)



[Parameters for Polymarker Primitives]

'PMFACT' (R) A coefficient that adjusts the marker size drawn by the polymarker primitive. (Initial value: 2.0) When a polymarker primitive uses the text primitive to draw a marker, the marker is smaller than the standard character height. (See Font Tables in Sections 8.1.2 & 8.1.3). This internal variable is a expansion factor used to adjust the marker to the standard character height.
'NPMSKIP' (I) A parameter that specifies that every nth marker will be displayed. (Initial value: 1; all markers displayed.) (The maximum number buffered by sgpmzu must be less than 50.)


[Parameters for Text Primitives]


'IFONT' (I) Font number (Initial value: 1)
'LCNTL' (L) Specifies whether control characters (see 'ISUP','ISUB','IRST') will be in effect when writing characters with text primitives. Effective when .true.; Not effective when .false.. (Initial value: .false.)
'SMALL' (R) The ratio of the height of the superscript and subscript to the standard character height. (Initial value: 0.7). 
'SHIFT' (R) The offset from the center of the standard character to the center of the superscript or subscript, specified by the ratio to the standard character height. (Initial value: 0.3). 
'ISUP' (I) The character number of the control character indicating the beginning of a superscript mode. (.Initial value: 124; this corresponds to '|').
'ISUB' (I) The character number of the control character indicating the beginning of the subscript mode. (Initial value: 95; this corresponds to '_'.)
'IRST' (I) The character number of the control character indicating the end of the superscript or subscript mode. (Initial value: 34; this corresponds to '"'.)


[Parameters for Tone Primitives]


'LSOFTF' (L) Specifies whether soft fill or hard fill will be used for filling by the tone primitive. Soft fill when .true.,; Hard fill when .false.. (Initial value: .false.).
However, when hard fill is not supported, soft fill will be performed.
'LCL2TN' (L) When performing solid fills, specifies whether the color index will be converted into pattern index for  dot patterns. Converted when .true.; Not converted when .false.. (Initial value: .false.). However, even when set as .false., the color index will be converted to pattern index for devices which do not support color fill patterns.
'TNBLEN' (R) When performing soft fill using dot patterns for tone primitives, the pattern will be expressed as a group of dotted lines using a subroutine of the fill-area subprimitive. The line type of this dotted line will be set by bit pattern, and this will specify the length of 1 bit in RC. (Initial value: 0.001).
'IRMODE' (I) The parameter which specifies the direction of the boundary line when a closed area specified by the tone primitive overlaps with the clipping boundary. Counter-clockwise when .0; Clockwise when 1. See Section 1.7.5 (Initial value: 0).



[Parameters Related to Arrow Primitives]

'LPROP' (L) Specifies whether the lines in the arrowhead is drawn proportional to the length of the arrow axis. When .true., the lines are proportional; when .false., the lines are drawn at the constant value specified by the internal variable 'CONST', in a map projection, the lines are drawn at the constant specified by the internal variable 'CONSTM'. (Initial value: .true.).
'LUARW' (L) In a map projection, specifies whether the arrowhead is drawn fixed to the map. When .true., the arrowhead is fixed to the map; when .false., it is drawn in VC. (Initial value: .true.)
'AFACT' (R) The proportionality factor used when 'LPROP' is .true. (drawn proportionately) (Initial value: 0.33)
'CONST' (R) The constant value used when 'LPROP' is .false. (drawn at a fixed value) (Unit is vc; Initial value: 0.01)
'CONSTM' (R) The constant value used in a map projection when 'LPROP' is .FALSE. (drawn at a fixed value) (Unit is radians ;Initial value: 5.0)
'ANGLE' (R) The angle between the arrowhead and the arrow axis. (Unit is degrees; Initial value: 20.0)
'LATONE' (L) Specifies whether the triangular area of the arrowhead is filled solid. Filled when .true.; Not filled when .false.. (Initial value: .false.)
'IATONE' (L) The tone pattern for filling the triangular area of the arrowhead. (Initial value: 999) When the value is smaller than a 3-digit number, the color index specified for the axis will be used.



[Parameters Related to Transformation Functions] - For the definitions of these parameters, see Sections 1.4 & 1.6.
'ITR' (I) The transformation function number (Initial value: 1.)
'VXMIN','VXMAX','VYMIN','VYMAX' (R) The viewport (Initial values: 0.0, 1.0, 0.0,1.0.)
'UXMIN','UXMAX','UYMIN','UYMAX' (R) The window (Initial values: 0.0, 1.0, 0.0,1.0.)
'SIMFAC','VXOFF','VYOFF' (R) Parameters for similar transformation (Initial values: 1.0, 0.0, 0.0..)
'PLX','PLY','PLROT' (R) Parameters for rotation of map coordinates (Initial values: 0.0, 90.0, 0.0)
'STLAT1','STLAT2' (R) Standard latitudes (Initial values: 0.0, 0.0)
'RSAT' (R) The radius of satellite orbit (Initial value: 0.0.)
'LDEG' (L) The specification of unit. When 'LDEG' is .true., then the unit is degrees, and when .false., radians. (Initial value: .true.)
'ITR3' (I) The number of transformation function (Initial value: 1.)
'VXMIN3','VXMAX3','VYMIN3','VYMAX3'

'VZMIN3','VZMAX3'
(R) The 3-D viewport (Initial values: 0., 1., 0., 1., 0.,1.)
'UXMIN3','UXMAX3','UYMIN3','UYMAX3'

'UZMIN3','UZMAX3'
(R) The 3-D window (Initial values: 0., 1., 0., 1., 0.,1.)
'SIMFAC3' (R) The scaling factor for cylindrical and spherical coordinates. (Initial value: 1.)
'XORG3', 'YORG3', 'ZORG3' (R) The origins for cylindrical and spherical coordinates. (Initial values: 0., 0., 0.)
'XEYE3','YEYE3','ZEYE3' (R) The eye point (Initial values: -0.8, -1.5, 1.5.)
'XOBJ3','YOBJ3','ZOBJ3' (R) The center of focus (Initial values: 0.5, 0.5, 0.0.)
'ANGLE3' (R) The angle of view (Initial value: 30.0.)
'TILT3' (R) The inclination (Initial value: 0.0).
'XOFF3','YOFF3' (R) The offset (Initial values: 0.0, 0.0).
'IXC3','IYC3','SEC3' (I,R) The position of the 2-D plane (Initial values: 1, 2, 0.0).
'L2TO3' (L) Specification of the 2-D perspective transformation. When 'L2TO3' is .true., the 2-D plane is allotted to a 3-D space; when .false., it is treated identical to VC or RC (Initial value: .false.).



[Parameters For Interpolation and Clipping] - For the definitions of these parameters, see Section 1.7

'LLNINT','LGCINT' (L) The flag for linear interpolation and great circle interpolation. (Initial value is .false.)
'RDX','RDY' (R) The intervals for interpolation (Initial values are 5.0, 5.0; in degrees.)
'LCLIP' (L) The flag for viewport clipping (Initial value .false.)
'TXMIN','TXMAX','TYMIN','TYMAX' (R) The clipping boundaries in the T-coordinate system. (Initial values are -180.0, 180.0, -90.0, 90.0; in degrees)

          


[Parameters For Layout] - parameters handled by slpget/slpset up to dcl- ver.4 -.


'INDEX' (I) The line index for the text and corner mark in the level-1margin. (Initial value: 1)
'LCORNER' (L) Specifies whether a corner mark should be drawn. Drawn when .true. and not drawn when .false.. (Initial value: .true.)
'CORNER' (R) The length of the corner mark. (Initial value: 0.01) Unit length is the length of the longer side of level 1 margin.
'LWIDE' (L) Defines the level-1 margin for drawing the text (title). When .true., the width of the margin is the full length of the level-1 frame; When .false., the margin width is the remainder after the horizontal margin is taken. (Initial value: .false.)
'XPAD' (R) The sum of the space taken on right and left sides of the text drawn in the level-1 margin, specified in units of character height. (Initial value: 1.0)
'YPAD' (R) The sum of the space taken above and below the text drawn in the level-1 margin, specified in units of character height. (Initial value: 1.0)

    

4.
Notes
(a)
The following are the subroutines for managing the internal variables.
ncp = NumRu::DCL.sgpqnp() Counts the total number (NCP) of internal variables.
idx = NumRu::DCL.sgpqid(cp) Determines the position (IDX) of the internal variable cp.
cp = NumRu::DCL.sgpqcp(idx) Inquires the name (CP) of the internal variable at position idx.
ipara = NumRu::DCL.sgpqvl(idx) Inquires the value (IPARA) of the internal variable at position idx.
NumRu::DCL.sgpsvl(idx,ipara) Changes the value (IPARA) of the internal variable at position idx
(b)
SGpGET calls the above-mentioned SGPQID to determine the position of an internal variable, and inquires the value by sgpqvl; sgpset calls sgpqid to determine the position of an internal variable and changes the value by sgpsvl. Therefore, when the specified internal variable is not found, an error message will be printed by sgpqid.
(c) An appropriate type of constant or variable should be specified for
ipara.
(d)
Besides these internal variables, there is an internal variable named 'RFAROT', which specifies the minute value to be added to the rotation of the diagonal lines used for soft fill, and the internal variables such as 'NFRAME, 'NPAGE', 'NLEVEL', 'FACTOR' involved in the layout. However, these are not to be specified by the user.