3.6 Explanation of Subroutines: Upper-Level Application Routines (ULA)

Of the subroutines packages UXPACK/UYPACK/UZPACK, this subroutine group is the one the user is most likely to use. It is written using a combination of lower-level applications (LLA), and the attributes of the components of the coordinate axis can be inquired/changed using uzpget/uzpset. In the explanation below for the upper-level applications (ULA), the routine name of a lower-level application can be frequently seen. See Section 3.8 for details.



The following subroutines are included in the upper-level applications (ULA).

For drawing evenly-spaced tick marks and numerical labels, use uxaxdv/uyaxdv. When you wish to draw oddly-spaced tick marks and numerical labels, use uxaxnm/uyaxnm. The format of the numerical label can be specified by the user, so basically, these routines are enough for drawing coordinate axis with numerical labels. When a more complex coordinate axis needs to be drawn, use the routine uxaxlb/uyaxlb for specifying not only the positions of the tick marks and labels, but also the label to draw. The axis titles can be drawn using uxmttl/uymttl, uxsttl/uysttl so that the titles and labels will be drawn successively without overlapping, and the user will not have to worry about the offset of labels, etc.



The argument cside common in the descriptions below is a parameter which specifies the position to draw the axis component, and 'B', 'T', and 'U' can be specified for the x axis, and 'L', 'R', and 'U' for the y axis. (For details, see Section 3.2.)



Tick marks will be drawn no matter how cside is selected, but whether or not to draw the labels can be specified by the position-dependent  internal variables 'LABELzs'. Labels are drawn when this internal variable is .true. , and not drawn when .false.. (The initial values are .true., .false., .true., .true., .false., and .true..) This means that in the initial setting, labels are drawn for the bottom ('B') and left  ('L') axes, but not on the top  ('T') and right  ('R') axes. (The user-defined axis will be labeled.)



Of the routines below, the coordinate system will be linearly offset when the internal variable LOFFSET' is .true. for the routines uxaxlb/uyaxlb, uxaxnm/uyaxnm, uxaxdv/uyaxdv, and not offset when .false.. (The initial value is .false..) In other words, when the internal variable 'LOFFSET' is .true., the following transformation will be performed on the coordinate system, and the window will be reset. (This setting is effective only within the routine. When the routine is exited, the settings return to the original values. i.e. It is effective only when drawing the coordinate axis.)

For UXPACK, the internal variables 'XOFFSET' and 'XFACT' are inquired and the following transformation is performed.

f(x)=XFACTnx+XOFFSET

For UYPACK, the internal variables 'YOFFSET' and 'YFACT' are inquired and the following transformation is performed.

g(y)=YFACTny+YOFFSET

This is convenient when, for example, you have temperature data in units of Celsius, and you wish to draw tick marks in Fahrenheit.