The graphics in the GKS documentation modules were originally created using workstation type 23. The output PostScript was then converted to GIF for inclusion in the on-line modules.
----------------------------------------------------------------------------- Figure Description ncargex example name ----------------------------------------------------------------------------- Figure 1 A typical GKS code layout ....................... pgkex01 Figure 2 GKS output primitives ........................... pgkex02 Figure 3 Using inquiry functions ......................... pgkex03 Figure 4 GKS normalization transformation ................ pgkex04 Figure 5 Clipping ........................................ pgkex05 Figure 6 Polylines ....................................... pgkex06 Figure 7 Polymarkers ..................................... pgkex07 Figure 8 Font Coordinate system .......................... pgkex08 Figure 9 Text extent rectangle ........................... pgkex09 Figure 10 Text path ....................................... pgkex10 Figure 11 Text alignment .................................. pgkex11 Figure 12 Text fonts available ............................ pgkex12 Figure 13 Character spacing and expansion factor .......... pgkex13 Figure 14 Character height and up vector .................. pgkex14 Figure 15 Filled areas .................................... pgkex15 Figure 16 Fill area algorithm ............................. pgkex16 Figure 17 Fill area interior styles ....................... pgkex17 Figure 18 Cell arrays ..................................... pgkex18 Figure 19 PostScript portrait mode ........................ pgkex19 Figure 20 PostScript full page output ..................... pgkex20 Figure 21 PostScript line styles .......................... pgkex21 Figure 22 PostScript nominal linewidth .................... pgkex22 Figure 23 PostScript spacing between hatch lines .......... pgkex23 Figure 24 Log scaling with SPPS ........................... pgkex24 Figure 25 Axis reversal with SPPS ......................... pgkex25 (none) Writing to multiple metafiles (no plot included). pgkex26 (none) Reopening NCGMs (no plot included)............... pgkex27 Diagram 1 A typical GKS normalization transformation ...... (none) Diagram 2 Mirror imaging and log scaling .................. (none) -------------------------------------------------------------------------------
---------------------------------------------------------------------------
Subroutine Function
---------------------------------------------------------------------------
GACWK (WKID) ......................... Activate workstation
GCA (XP1,YP1,XP2,YP2,NXCLR,NYCLR,
IXCLR,IYCLR,NXDO,NYDO,CLRIA) .... Cell array output
GCLKS ................................ Close GKS
GCLRWK (WKID,COFL) ................... Clear workstation
GCLWK (WKID) ......................... Close workstation
GDAWK (WKID) ......................... Deactivate workstation
GESC (FCTID,LIDR,IDR,MXODR,LODR,ODR) . Escape
GFA (N,X,Y) .......................... Fill area output
GOPKS (ERFILE,BUFA) .................. Open GKS
GOPWK (WKID,CONID,WKTYPE) ............ Open workstation
GPL (N,X,Y) .......................... Polyline output
GPM (N,X,Y) .......................... Polymarker output
GQASF (LASF) ......................... Get aspect source flags
GQCHH (CHH) .......................... Set Character Height
GQCHSP (ERRIND,CHSP) ................. Get character spacing
GQCHUP (ERRIND,CHUX,CHUY) ............ Get character up vector
GQCHXP (ERRIND,CHXP) ................. Get character expansion factor
GQCLIP (ERRIND,ICLIP,CLRECT) ......... Get clipping indicator
GQCNTN (ERRIND,CTNR) ................. Id of current transformation
GQCR (WKID,CI,TYPE,ERRIND,CR,CG,CB) .. Get color representation
GQFACI (ERRIND,COLI) ................. Get fill area color index
GQFAIS (ERRIND,INTS) ................. Get fill area interior style
GQFASI (ERRIND,STYLI) ................ Get fill area style index
GQLN (ERRIND,LTYPE) .................. Get linetype
GQLWSC (ERRIND,LWIDTH) ............... Get linewidth
GQMK (ERRIND,MTYPE) .................. Get marker type
GQMKSC (ERRIND,MSZSF) ................ Get the marker size scale factor
GQMNTN (ERRIND,MAXTRN) ............... Get no. of supported transformations
GQNT (NTNR,ERRIND,WINDOW,VIEWPT) ..... Get window and viewport info
GQOPS (OPSTA) ........................ Get open status of GKS
GQPLCI (ERRIND,COLI) ................. Get polyline color index
GQPMCI (ERRIND,COLI) ................. Get polymarker color index
GQTXAL (ERRIND,TXALH,TXALV) .......... Get text alignment
GQTXCI (ERRIND,COLI) ................. Get text color index
GQTXFP (ERRIND,FONT, PREC) ........... Get text font and precision
GQTXP (ERRIND,TXP) ................... Get text path
GSASF (LASF) ......................... Set aspect source flags
GSCHH (CHH) .......................... Set character height
GSCHUP (CHUX,CHUY) ................... Set character up vector
GSCHXP (CHXP) ........................ Set character expansion factor
GSCHSP (CHSP) ........................ Set character spacing
GSCLIP (ICLIP) ....................... Set clipping indicator
GSCR (WKID,CI,CR,CG,CB)............... Set color representation
GSELNT (TRNUM) ....................... Select normalization transformation
GSFACI (COLI) ........................ Set fill area color index
GSFAIS (INTS) ........................ Set fill area interior style
GSFASI (STYLI) ....................... Set fill area style index
GSLN (LTYPE) ......................... Set linetype
GSLWSC (LWIDTH) ...................... Set linewidth
GSMK (MTYPE) ......................... Set marker type
GSMKSC (MSZSF) ....................... Set the marker size scale factor
GSPLCI (COLI) ........................ Set polyline color index
GSPMCI (COLI) ........................ Set polymarker color index
GSTXAL (TXALH,TXALV) ................. Set text alignment
GSTXCI (COLI) ........................ Set text color index
GSTXFP (FONT, PREC) .................. Set text font and precision
GSTXP (TXP) .......................... Set text path
GSVP (TRNUM,XMIN,XMAX,YMIN,YMAX) ..... Set viewport
GSWN (TRNUM,XMIN,XMAX,YMIN,YMAX) ..... Set window
GTX (X,Y,STRING) ..................... Text output
GUWK (WKID,REGFL) .................... Update workstation
---------------------------------------------------------------------------
---------------------------------------------------------------------------
C function (all C functions return void)
---------------------------------------------------------------------------
gactivate_ws(Gint ws_id)
gcell_array(const Grect *rect, const Gpat_rep *colr_array)
gclear_ws(Gint ws_id, Gctrl_flag ctrl_flag)
gclose_gks(void)
gclose_ws(Gint ws_id)
gdeactivate_ws(Gint ws_id)
gescape(Gint fid, const Gescape_in_data *in, Gstore *store,
Gescape_out_data **out)
gfill_area(const Gpoint_list *point_list)
ginq_asfs(Gint *err_ind, Gasfs *list_asf)
ginq_char_expan(Gint *err_ind, Gdouble *char_expan)
ginq_char_ht(Gint *err_ind, Gdouble *char_ht)
ginq_char_space(Gint *err_ind, Gdouble *char_space)
ginq_char_up_vec(Gint *err_ind, Gvec *char_up_vec)
ginq_clip(Gint *err_ind, Gclip *clip_ind_rect)
ginq_colr_rep(Gint ws_id, Gint ind, Ginq_type type, Gint *err_ind,
Gcolr_rep *colr_rep)
ginq_cur_norm_tran_num(Gint *err_ind, Gint *tran_num)
ginq_fill_colr_ind(Gint *err_ind, Gint *fill_colr_ind)
gset_fill_int_style(Gfill_int_style fill_int_style)
gset_fill_style_ind(Gint fill_style_ind)
ginq_line_colr_ind(Gint *err_ind, Gint *line_colr_ind)
ginq_linetype(Gint *err_ind, Gint *linetype)
ginq_linewidth(Gint *err_ind, Gdouble *linewidth)
ginq_marker_colr_ind(Gint *err_ind, Gint *marker_colr_ind)
ginq_marker_size(Gint *err_ind, Gdouble *marker_size)
ginq_marker_type(Gint *err_ind, Gint *marker_type)
ginq_max_norm_tran_num(Gint *err_ind, Gint *max_num)
ginq_norm_tran(Gint num, Gint *err_ind, Gtran *norm_tran)
ginq_op_st(Gop_st *op_st)
ginq_text_align(Gint *err_ind, Gtext_align *text_align)
ginq_text_color_ind(Gint *err_ind, Gint *text_colr_ind)
ginq_text_font_prec(Gint *err_ind, Gtext_font_prec *prec)
ginq_text_path(Gint *err_ind, Gtext_path *text_path)
gopen_gks(const char *err_file, size_t mem_unit)
gopen_ws(Gint ws_id, const char *conn_id, Gint ws_type)
gpolyline(const Gpoint_list *point_list)
gpolymarker(const Gpoint_list *point_list)
gsel_norm_tran(Gint tran_num)
gset_asfs(const Gasfs *list_asf)
gset_char_expan(Gdouble char_expan)
gset_char_ht(Gdouble char_ht)
gset_char_space(Gdouble char_space)
gset_char_up_vec(const Gvec *char_up_vec)
gset_clip_ind(Gclip_ind clip_ind)
gset_colr_rep(Gint ws_id, Gint ind, const Gcolr_rep *crep)
gset_fill_colr_ind(Gint fill_colr_ind)
gset_fill_int_style(Gfill_int_style fill_int_style)
gset_fill_style_ind(Gint fill_style_ind)
gset_line_colr_ind(Gint line_colr_ind)
gset_linetype(Gint linetype)
gset_linewidth(Gdouble linewidth)
gset_marker_colr_ind(Gint marker_colr_ind)
gset_marker_size(Gdouble marker_size)
gset_marker_type(Gint marker_type)
gset_text_align(const Gtext_align *text_align)
gset_text_colr_ind(Gint text_colr_ind)
gset_text_font_prec(const Gtext_font_prec *text_font_prec)
gset_text_path(Gtext_path text_path)
gset_vp(Gint tran_num, const Glimit *vp_limits)
gset_win(Gint tran_num, const Glimit *win_limits)
gtext(const Gpoint *text_pos, const char *char_string)
gupd_ws(Gint ws_id, Gupd_regen_flag upd_regen_flag)
---------------------------------------------------------------------------
typedef double Gdouble;Gfloat - floating point number
typedef float Gfloat;Gint - integer
typedef int Gint;
typedef enum {
GASF_BUNDLED,
GASF_INDIV
} Gasf;
Gasfs - aspect source flags
typedef struct {
Gasf linetype;
Gasf linewidth;
Gasf line_colr_ind;
Gasf marker_type;
Gasf marker_size;
Gasf marker_colr_ind;
Gasf text_font_prec;
Gasf char_expan;
Gasf char_space;
Gasf text_colr_ind;
Gasf fill_int_style;
Gasf fill_style_ind;
Gasf fill_colr_ind;
} Gasfs;
Gclip - clipping
typedef struct {
Gclip_ind clip_ind; /* clipping indicator */
Glimit clip_rect; /* clipping rectangle */
} Gclip;
Gclip_ind - clipping indicator
typedef enum {
GIND_NO_CLIP,
GIND_CLIP
} Gclip_ind;
Gcolr_rep - color representation
typedef union {
Grgb rgb; /* Red Green Blue colour specification */
} Gcolr_rep;
Gctrl_flag - control flag
typedef enum {
GFLAG_COND,
GFLAG_ALWAYS
} Gctrl_flag;
Gdata - data
typedef struct {
size_t size; /* size of data */
void *data; /* pointer to data */
} Gdata;
Gescape_in_data - escape input data record
typedef union {
Gdata escape_u1390;
Gdata escape_u1391;
Gdata escape_u1392;
Gdata escape_u1393;
Gdata escape_u1394;
Gdata escape_u1395;
Gdata escape_u1396;
Gdata escape_u1397;
Gdata escape_u1398;
Gdata escape_u1399;
Gdata escape_u1400;
Gdata escape_u1401;
Gdata escape_u1510;
Gdata escape_u1511;
Gdata escape_u1512;
Gdata escape_u1513;
Gdata escape_u1514;
Gdata escape_u1515;
Gdata escape_u1516;
Gdata escape_u1517;
Gdata escape_u1518;
Gdata escape_u1519;
Gdata escape_u1520;
Gdata escape_u1521;
Gdata escape_u1522;
} Gescape_in_data;
Gescape_out_data
- escape output data record
typedef union {
Gdata escape_u1390;
} Gescape_out_data;
Gfill_int_style - fill area interior style
typedef enum {
GSTYLE_HOLLOW,
GSTYLE_SOLID,
GSTYLE_PAT,
GSTYLE_HATCH
} Gfill_int_style;
Ghor_text_align - horizontal text alignment
typedef enum {
GHOR_NORM,
GHOR_LEFT,
GHOR_CTR,
GHOR_RIGHT
} Ghor_text_align;
Ginq_type - inquire type
typedef enum {
GINQ_SET,
GINQ_REALIZED
} Ginq_type;
Glimit - limit
typedef struct {
Gfloat x_min; /* x min */
Gfloat x_max; /* x max */
Gfloat y_min; /* y min */
Gfloat y_max; /* y min */
} Glimit;
Gop_st - operating state
typedef enum {
GST_GKCL,
GST_GKOP,
GST_WSOP,
GST_WSAC,
GST_SGOP
} Gop_st;
Gpat_rep - pattern representation
typedef struct {
Gint_size dims; /* pattern's dimensions */
Gint *colr_array; /* colour array */
} Gpat_rep;
Gpoint - point
typedef struct {
Gfloat x; /* x coordinate */
Gfloat y; /* y coordinate */
} Gpoint;
Gpoint_list - point list
typedef struct {
Gint num_points; /* num. of points in the list */
Gpoint *points; /* list of points */
} Gpoint_list;
Grect - rectangle
typedef struct {
Gpoint p; /* point p */
Gpoint q; /* point q */
} Grect;
Grgb - Red Green Blue [color specification]
typedef struct {
Gfloat red; /* red intensity */
Gfloat green; /* green intensity */
Gfloat blue; /* blue intensity */
} Grgb;
Gstore - store
typedef void *Gstore;Gtext_align - text alignment
typedef struct {
Ghor_text_align hor; /* horizontal component */
Gvert_text_align vert; /* vertical component */
} Gtext_align;
Gtext_font_prec - text font [and] precision
typedef struct {
Gint font; /* text font */
Gtext_prec prec; /* text precision */
} Gtext_font_prec;
Gtext_path - text path
typedef enum {
GPATH_RIGHT,
GPATH_LEFT,
GPATH_UP,
GPATH_DOWN
} Gtext_path;
Gtext_prec - text precision
typedef enum {
GPREC_STRING,
GPREC_CHAR,
GPREC_STROKE
} Gtext_prec;
Gtran - transformation
typedef struct {
Glimit win; /* window */
Glimit vp; /* viewport */
} Gtran;
Gupd_regen_flag - update regeneration flag
typedef enum {
GFLAG_POSTPONE,
GFLAG_PERFORM
} Gupd_regen_flag;
Gvec - vector
typedef struct {
Gfloat delta_x; /* x coordinate */
Gfloat delta_y; /* y coordinate */
} Gvec;
Gvert_text_align - vertical text alignment
typedef enum {
GVERT_NORM,
GVERT_TOP,
GVERT_CAP,
GVERT_HALF,
GVERT_BASE,
GVERT_BOTTOM
} Gvert_text_align;
----------------------------------------------------------------------------
Error
No. Message
----------------------------------------------------------------------------
1 GKS NOT IN PROPER STATE: GKS SHALL BE IN STATE GKCL
2 GKS NOT IN PROPER STATE: GKS SHALL BE IN STATE GKOP
3 GKS NOT IN PROPER STATE: GKS SHALL BE IN STATE WSAC
4 GKS NOT IN PROPER STATE: GKS SHALL BE IN STATE SGOP
5 GKS NOT IN PROPER STATE: GKS SHALL BE EITHER IN THE STATE WSAC OR
IN THE STATE SGOP
6 GKS NOT IN PROPER STATE: GKS SHALL BE EITHER IN THE STATE WSOP OR
IN THE STATE WSAC
7 GKS NOT IN PROPER STATE: GKS SHALL BE IN ONE OF THE STATES WSOP,
WSAC, OR SGOP
8 GKS NOT IN PROPER STATE: GKS SHALL BE IN ONE OF THE STATES GKOP,
WSOP, WSAC, OR SGOP
20 SPECIFIED WORKSTATION IDENTIFIER IS INVALID
21 SPECIFIED CONNECTION IDENTIFIER IS INVALID
22 SPECIFIED WORKSTATION TYPE IS INVALID
23 SPECIFIED WORKSTATION TYPE DOES NOT EXIST
24 SPECIFIED WORKSTATION IS OPEN
25 SPECIFIED WORKSTATION IS NOT OPEN
26 SPECIFIED WORKSTATION CANNOT BE OPENED
27 WORKSTATION INDEPENDENT SEGMENT STORAGE IS NOT OPEN
28 WORKSTATION INDEPENDENT SEGMENT STORAGE IS ALREADY OPEN
29 SPECIFIED WORKSTATION IS ACTIVE
30 SPECIFIED WORKSTATION IS NOT ACTIVE
32 SPECIFIED WORKSTATION IS NOT OF CATEGORY MO
33 SPECIFIED WORKSTATION IS OF CATEGORY MI
34 SPECIFIED WORKSTATION IS NOT OF CATEGORY MI
35 SPECIFIED WORKSTATION IS OF CATEGORY INPUT
36 SPECIFIED WORKSTATION IS WORKSTATION INDEPENDENT SEGMENT STORAGE
38 SPECIFIED WORKSTATION IS NEITHER OF CATEGORY INPUT NOR OF
CATEGORY OUTIN
50 TRANSFORMATION NUMBER IS INVALID
51 RECTANGLE DEFINITION IS INVALID
52 VIEWPORT IS NOT WITHIN THE NORMALIZED DEVICE COORDINATE UNIT SQUARE
53 WORKSTATION WINDOW IS NOT WITHIN THE NORMALIZED DEVICE COORDINATE
UNIT SQUARE
54 WORKSTATION VIEWPORT IS NOT WITHIN THE DISPLAY SPACE
60 POLYLINE INDEX IS INVALID
63 LINETYPE IS LESS THAN OR EQUAL TO ZERO
65 LINEWIDTH SCALE FACTOR LESS THAN ZERO
66 POLYMARKER INDEX IS INVALID
69 MARKER TYPE IS LESS THAN OR EQUAL TO ZERO
72 TEXT INDEX IS INVALID
75 TEXT FONT IS EQUAL TO ZERO
77 CHARACTER EXPANSION FACTOR IS LESS THAN OR EQUAL TO ZERO
78 CHARACTER HEIGHT IS LESS THAN OR EQUAL TO ZERO
79 LENGTH OF CHARACTER UP VECTOR IS ZERO
80 FILL AREA INDEX IS INVALID
84 STYLE (PATTERN OR HATCH) INDEX IS LESS THAN OR EQUAL TO ZERO
87 PATTERN SIZE VALUE IS NOT POSITIVE
91 DIMENSIONS OF COLOR ARRAY ARE INVALID
92 COLOR INDEX IS LESS THAN ZERO
93 COLOR INDEX IS INVALID
96 COLOR IS OUTSIDE RANGE ZERO TO ONE INCLUSIVE
100 NUMBER OF POINTS IS INVALID
101 INVALID CODE IN STRING
102 GENERALIZED DRAWING PRIMITIVE IDENTIFIER IS INVALID
103 CONTENT OF GENERALIZED DRAWING PRIMITIVE DATA RECORD IS INVALID
104 AT LEAST ONE ACTIVE WORKSTATION IS NOT ABLE TO GENERATE THE
SPECIFIED GENERALIZED DRAWING PRIMITIVE
120 SPECIFIED SEGMENT NAME IS INVALID
121 SPECIFIED SEGMENT NAME IS ALREADY IN USE
122 SPECIFIED SEGMENT DOES NOT EXIST
124 SPECIFIED SEGMENT DOES NOT EXIST ON WORKSTATION INDEPENDENT
SEGMENT STORAGE
160 ITEM TYPE IS NOT ALLOWED FOR USER ITEMS
161 ITEM LENGTH IS INVALID
162 NO ITEM IS LEFT IN GKS METAFILE INPUT
163 METAFILE ITEM IS INVALID
165 CONTENT OF ITEM DATA RECORD IS INVALID FOR THE SPECIFIED ITEM TYPE
166 MAXIMUM ITEM DATA RECORD LENGTH IS INVALID
167 USER ITEM CANNOT BE INTERPRETED
168 SPECIFIED FUNCTION IS NOT SUPPORTED IN THIS LEVEL OF GKS
180 SPECIFIED FUNCTION IS NOT SUPPORTED
182 CONTENTS OF ESCAPE DATA RECORD ARE INVALID
300 STORAGE OVERFLOW HAS OCCURRED IN GKS
302 INPUT/OUTPUT ERROR HAS OCCURRED WHILE READING
303 INPUT/OUTPUT ERROR HAS OCCURRED WHILE WRITING
304 INPUT/OUTPUT ERROR HAS OCCURRED WHILE SENDING DATA TO A WORKSTATION
305 INPUT/OUTPUT ERROR HAS OCCURRED WHILE RECEIVING DATA FROM A
WORKSTATION
306 INPUT/OUTPUT ERROR HAS OCCURRED DURING PROGRAM LIBRARY MANAGEMENT
307 INPUT/OUTPUT ERROR HAS OCCURRED WHILE READING WORKSTATION
DESCRIPTION TABLE
308 ARITHMETIC ERROR HAS OCCURRED
-100 UNKNOWN ERROR CODE
-101 NO ADDITIONAL WORKSTATIONS MAY BE ACTIVATED
-102 GKS SYSTEM ERROR--IMPROPER CONTINUATION SEQUENCE
-103 THE NCAR GKS IMPLEMENTATION REQUIRES THAT WISS BE ACTIVE BEFORE
A SEGMENT IS CREATED
-105 ERROR OPENING DISK FILE
-106 LOGICAL UNIT NUMBER FOR SEGMENT STORAGE CANNOT BE THE SAME AS THAT
FOR METAFILE OUTPUT
-107 MAXIMUM NUMBER OF ERROR MESSAGES EXCEEDED
-108 ILLEGAL PLACEMENT OF A CALL TO ASSIGN A PICTURE NAME
-109 THIS FUNCTION NOT YET IMPLEMENTED FOR WORKSTATIONS OF CATEGORY
OUTPUT
-110 CHARACTER STRING TOO LARGE
-111 SYSTEM ERROR
-112 ONLY ONE METAFILE WORKSTATION CAN BE OPEN AT A TIME
-200 X driver error: memory allocation in processing a character from
a fontcap
-201 X driver error: error opening fontcap
-202 X driver error: error reading fontcap
-203 X driver warning: invalid font index, using the default font
-204 X driver error: memory allocation error in creating device table
-205 X driver error: too many open devices
-206 X driver error: error in internal memory management
-207 X driver error: error in allocating memory for device dependent
table
-208 X driver error: DISPLAY environment variable not set
-209 X driver error: error opening display
-210 X driver error: error getting window attributes
-211 X driver error: error creating pixmap
-212 X driver error: cell array has zero width or height
-213 X driver error: memory allocation error in processing cell array
-214 X driver error: error creating X image
-215 X driver error: memory allocation error in creating X image
-216 X driver error: pixel size must be byte multiple
-217 X driver error: error in retrieving fontcap name
-218 X driver error: invalid index into GKS workstation identifiers
-219 X driver error: color index exceeds maximum allowed
-220 X driver warning: color allocated is different from the color requested
-221 X driver error: unable to change color model
-300 PostScript error: Encapsulated PostScript can have only one page
-301 PostScript error: error in allocating memory for device dependent
table
-302 PostScript error: error opening output file
-303 PostScript warning: requested character not available, asterisk
plotted, use Plotchar
2000 ENUMERATION TYPE OUT OF RANGE
2001 OUTPUT PARAMETER SIZE INSUFFICIENT
2002 LIST OR SET ELEMENT NOT AVAILABLE
2003 INVALID DATA RECORD