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