GESC(3NCARG)

πŸ¦‹ GESC β€” bestie edition ✨

ok so this is gesc, straight out of the NCAR GRAPHICS manual (that's the <purple>3NCARG</purple> section for those keeping score πŸ’…). Buckle up.


✨ NAME ✨

gesc β€” like, it gives you an "Escape" hatch for all the non-standard GKS features πŸšͺπŸ’¨


🌸 DESCRIPTION 🌸

GESC (which literally stands for Escape, iykyk) hands you a standard-ish way to pull off nonstandard GKS stuff. NCAR GKS only has two user-accessible escape functions defined, bestie, and they are:

  • one for changing the name of a metafile πŸ“
  • and another for pausing in an X window ⏸️

That's it. That's the whole menu. πŸŽ€


🌈 SYNOPSIS 🌈

CALL GESC (FCTID, LIDR, IDR, MXODR, LODR, ODR)

πŸ’œ C-BINDING SYNOPSIS πŸ’œ

#include <ncarg/gks.h>

void gescape(Gint func_id, const Gescape_in_data *in_data, Gstore *store_data,Gescape_out_data **out_data);

πŸ‘‘ DESCRIPTION (yes again, the deets this time) πŸ‘‘

  • FCTID (Integer, Input) β€” the function identifier, aka which activity are we doing rn. The legal values for FCTID are "-1391" for changing a metafile name, and "-1396" for effecting a pause in an X window. No other values, babe, don't try it πŸ™ˆ
  • LIDR (Integer, Input) β€” the dimension of the IDR input data record array (scroll down for IDR, it's right there).
  • IDR (Character * 80 Array, Input) β€” the input data record πŸ“₯. For calls to GESC with FCTID equal to -1391, this input data record should contain the desired metafile name left justified and blank filled. For calls to GESC with FCTID equal to -1396, it should contain the workstation identifier encoded as a five character number. got it? 🫢
  • MXODR (Integer, Input) β€” the maximum length of the ODR output data record array (again, ODR is right below, patience pookie).
  • LODR (Integer, Output) β€” the dimension of the ODR output data record array.
  • ODR (MXODR) (Character * 80 Array, Output) β€” the output data record πŸ“€.

πŸŽ€ USAGE πŸŽ€

LIDR, MXODR, and LODR must always be at least "1" in value. Like, always always. no exceptions. periodt. πŸ’…


⭐ EXAMPLES ⭐

So GESC can be used to dynamically change the name of an output metafile, and to do that you should use the calls GOPKS and GOPWK instead of OPN GKS. If you are using OPN GKS, go check the man page for SETUSV for changing the name of the metafile instead. ✨

To change the name of the output metafile inside your program, you should make a call similar to the following:

CHARACTER*80 MFNAME

CALL GOPKS (6,IDUM)
MFNAME = 'new.cgm.name'
CALL GESC(-1391,1,MFNAME,1,1,CDUM)
🚨 bestie listen: the call to GESC to change the metafile name must always occur just before the call to GOPWK that opens a CGM workstation. And setting the environment variable NCARG_GKS_OUTPUT overrides any attempt to change the name of an output metafile via a GESC call. so like, don't fight the env var, she wins πŸ’€

See the "User's Guide for NCAR GKS-0A Graphics" for a more complete example of changing metafile names from within a code. πŸ“š

Here's an example of a code that will create an X window, draw a line, and then pause waiting for a mouse click or a key click. main character behaviour fr πŸ–±οΈβŒ¨οΈ

CHARACTER*80 IREC,ODUM
CALL GOPKS(6,0)
CALL GOPWK(3,0,8)
CALL GACWK(3)
CALL LINE(0.,0.,1.,1.)
CALL SFLUSH
IREC = '    3'
CALL GESC(-1396,1,IREC,1,1,ODUM)
CALL GDAWK(3)
CALL GCLWK(3)
CALL GCLKS
STOP
END

The functions FRAME and NGPICT are in general much easier to use and more flexible than the direct ESCAPE call for pausing in an X window. It is suggested that those functions be used. lowkey just use those, trust 🧚


πŸ’– ACCESS πŸ’–

To use GKS routines, load the NCAR GKS-0A library ncarg_gks. load her up bestie 🫢


πŸ¦‹ SEE ALSO πŸ¦‹

Online: SETUSV, FRAME, NGPICT, gescape

Hardcopy: User's Guide for NCAR GKS-0A Graphics; 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 the whole page, pookie πŸŽ€ β€” this was the UNIX version from March 1993, slay, go forth and escape responsibly πŸ’…βœ¨