!=====================================================================
! NGSP: SPPS, An NCAR System Plot Package Simulator
!=====================================================================
!
! A. Frame
!
! B. Coordinates
!
! C. Colors
!
! D. Line and Fill
!
! E. GTX, GPL, GPM, and GFA of GKS (not recommended to use)
!
!---------------------------------------------------------------------
!
! A. Frame
!
! SUBROUTINE NG_FRSET ! Set NG frame size, title, and perimeter
!
! SUBROUTINE NG_FRBGC ! Fill NG frame with background color
!
! SUBROUTINE NG_FRGRD ! Draw NG frame with NDC grid lines
!
! SUBROUTINE NG_FRAME ! Flush, wait-to-dump, and advance NG frame
!
! ----------
!
! SUBROUTINE NG_SPRSET ! Reset color indices (-1), line width (1.0),
! Clipping off (0), and all attributes of GKS
! GTX/GPL/GPM/GFA to its default
!
!---------------------------------------
!
! B. Coordinates
!
! SUBROUTINE NG_SET ! Set Viewport (Fractional) and Window (User) coordinates
! SUBROUTINE NG_GETSET ! Get Current Viewport and Window coordinates
!
! ----------
!
! SUBROUTINE NG_GSCLIP ! Set clipping indicator
! SUBROUTINE NG_GQCLIP ! Inquire current clipping indicator
!
! ----------
!
! REAL ELEMENTAL FUNCTION NG_CUFX ! X - NG-user to NG-fractional
! REAL ELEMENTAL FUNCTION NG_CUFY ! Y - NG-user to NG-fractional
!
! REAL ELEMENTAL FUNCTION NG_CFUX ! X - NG-fractional to NG-user
! REAL ELEMENTAL FUNCTION NG_CFUY ! Y - NG-fractional to NG-user
!
!---------------------------------------
!
! C. Colors
!
! SUBROUTINE NG_MAPRGB ! Get RGB data from ColorMap
!
! ----------
!
! SUBROUTINE NG_GSCR ! Set color representation.
! SUBROUTINE NG_GQCR ! Get color representation.
!
! ----------
!
! SUBROUTINE NG_GSPLCI ! Set polyline color index
! SUBROUTINE NG_GSFACI ! Set fill area color index
!
! SUBROUTINE NG_GQPLCI ! Inquire polyline color index
! SUBROUTINE NG_GQFACI ! Inquire fill area color index
!
!---------------------------------------
!
! D. Line and Fill
!
! SUBROUTINE NG_GSLWSC ! Set linewidth scale factor
! SUBROUTINE NG_GQLWSC ! Inquire linewidth scale factor
!
! ----------
!
! SUBROUTINE NG_PLOTIF ! Pen-Up/Down move (fractional)
!
! ----------
!
! SUBROUTINE NG_FRSTPT ! Pen-up move (user/fractional)
! SUBROUTINE NG_VECTOR ! Pen-down move (user/fractional)
! SUBROUTINE NG_LINE ! Draw line (user/fractional)
! SUBROUTINE NG_CURVE ! Draw polyline (user/fractional)
!
! SUBROUTINE NG_GPL ! Draw polyline (user/fractional)
!
! SUBROUTINE NG_GFA ! Fill polygon (user/fractional)
!
! SUBROUTINE NG_GCA ! Cell Array Fill (user/fractional)
!
!---------------------------------------
!
! E. GTX, GPL, GPM, and GFA of GKS (not recommended to use)
!
! SUBROUTINE NG_GTX ! Text Output
!
! SUBROUTINE NG_GSTXCI ! Set Text color index
! SUBROUTINE NG_GSTXP ! Set Text path
! SUBROUTINE NG_GSTXAL ! Set Text alignment
! SUBROUTINE NG_GSTXFP ! Set Text font and precision
! SUBROUTINE NG_GSCHH ! Set Character height
! SUBROUTINE NG_GSCHUP ! Set Character up vector
! SUBROUTINE NG_GSCHSP ! Set Character spacing
! SUBROUTINE NG_GSCHXP ! Set Character expansion factor
!
! SUBROUTINE NG_GQTXCI ! Inquire Text color index
! SUBROUTINE NG_GQTXP ! Inquire Text path
! SUBROUTINE NG_GQTXAL ! Inquire Text alignment
! SUBROUTINE NG_GQTXFP ! Inquire Text font and precision
! SUBROUTINE NG_GQCHH ! Inquire Character height
! SUBROUTINE NG_GQCHUP ! Inquire Character up vector
! SUBROUTINE NG_GQCHSP ! Inquire Character spacing
! SUBROUTINE NG_GQCHXP ! Inquire Character expansion factor
!
! ----------
!
! SUBROUTINE NG_GPL ! Polyline Output
!
! SUBROUTINE NG_GSPLCI ! Set polyline color index
! SUBROUTINE NG_GSLN ! Set Line type
! SUBROUTINE NG_GSLWSC ! Set Linewidth scale factor
!
! SUBROUTINE NG_GQPLCI ! Inquire polyline color index
! SUBROUTINE NG_GQLN ! Inquire Line type
! SUBROUTINE NG_GQLWSC ! Inquire Linewidth scale factor
!
! ----------
!
! SUBROUTINE NG_GPM ! Polymarker Output
!
! SUBROUTINE NG_GSPMCI ! Set polymarker color index
! SUBROUTINE NG_GSMK ! Set Polymarker type
! SUBROUTINE NG_GSMKSC ! Set Polymarker size scale factor
!
! SUBROUTINE NG_GQPMCI ! Inquire polymarker color index
! SUBROUTINE NG_GQMK ! Inquire Polymarker type
! SUBROUTINE NG_GQMKSC ! Inquire Polymarker size scale factor
!
! ----------
!
! SUBROUTINE NG_GFA ! Filled Area Output
!
! SUBROUTINE NG_GSFACI ! Set Fill Area color index
! SUBROUTINE NG_GSFAIS ! Set Fill Area interior style
! SUBROUTINE NG_GSFASI ! Set Fill Area style index
!
! SUBROUTINE NG_GQFACI ! Inquire Fill Area color index
! SUBROUTINE NG_GQFAIS ! Inquire Fill Area interior style
! SUBROUTINE NG_GQFASI ! Inquire Fill Area style index
!
!=====================================================================
! A. Frame
!=====================================================================
!
! SUBROUTINE NG_FRSET ! Set NG frame size, title, and perimeter
!
! SUBROUTINE NG_FRBGC ! Fill NG frame with background color
!
! SUBROUTINE NG_FRGRD ! Draw NG frame with NDC grid lines
!
! SUBROUTINE NG_FRAME ! Wait, Dump and advance NG frame
!
! ----------
!
! SUBROUTINE NG_SPRSET ! Reset color indices (-1), line width (1.0),
! Clipping off (0), and all attributes of GKS
! GTX/GPL/GPM/GFA to its default
!
!---------------------------------------------------------------------
!
! SUBROUTINE NG_FRSET( NGVP, TITLE, PERIM, GB_Encoding )
!
! REAL, INTENT(IN), OPTIONAL :: NGVP(4)
! CHARACTER(*), INTENT(IN), OPTIONAL :: TITLE
! LOGICAL, INTENT(IN), OPTIONAL :: PERIM
! CHARACTER(*), INTENT(IN), OPTIONAL :: GB_Encoding
!
! Routine to set NG frame size (effective NG viewport), title, and perimeter
!
! Variables:
!
! NGVP - Frame size (Effective NG Viewport) in fractional coordinates
! Array elements ordered as (/xvpl, xvpr, yvpb, yvpt/)
! Window/Poscript output display this area of graphics mainly
!
! Default is full NG viewport, i.e., (/0.0, 1.0, 0.0, 1.0/),
! if argument not present or present but values invalid
!
! "invalid" means xvpl>=xvpr, 0.0<xvpl, or, xvpr>1.0, ...
!
! TITLE : Character string of frame title to be ploted
!
! Default is not plot, if argument not present or present
! but zero length
!
! PERIM - Whether draw frame perineter or not
!
! Default is not draw, if argument not present
!
! GB_Encoding - Encoding scheme of string characters in "TITLE"
!
! = 'U', for UTF-8
! = 'G', for GB2312
!
! Default value is 'U', if argument not present or invalid
!
! Note: If this routine not invoked, default NG frame is size of full
! NG viewport (/0.0, 1.0, 0.0, 1.0/) without dwawing title/perimeter.
!
!---------------------------------------
!
! SUBROUTINE NG_FRBGC( BGCI )
!
! INTEGER, INTENT(IN) :: CI
!
! Routine to fill NG frame with background color.
!
! Variables:
!
! BGCI - Specified color index for background color
!
!---------------------------------------
!
! SUBROUTINE NG_FRGRD( color )
!
! INTEGER, INTENT(IN) :: color
!
! Routine to draw NG Frame with NDC grid lines at 0.1 or 0.05 NDC
! coordinate intervals and labels them.
!
! Variables:
!
! color - drawing/labelling color index
!
!---------------------------------------
!
! SUBROUTINE NG_FRAME( WAIT, ADVANCE, NOMES )
!
! INTEGER, INTENT(IN), OPTIONAL :: WAIT
! LOGICAL, INTENT(IN), OPTIONAL :: ADVANCE
! LOGICAL, INTENT(IN), OPTIONAL :: NOMES
!
! Routine to flush display buffer unconditionally, wait-to-dump, and advance NG frame.
!
! Variables:
!
! WAIT - The time delay after bufferred graphics send to display
!
! = 0 Wait-to-Dump (dump image to GIF file)
! Message "Press <Enter> to Continue" and
! Message "Hit [Q] to dump screen before leaving"
! are displayed at screen bottom
!
! > 0 Delay time (no dump image to GIF), measured in number
! of 1/1000 seconds, After this time segment,
! program executed again automatically
!
! < 0 No waiting
!
! Default is 0, if argument not present
!
! ADVANCE - Whether or not advancing a new frame finally
! Default value is .TRUE., if argument not present
!
! NOMES - Not draw frame/dump size message
! Default value is .FALSE., if argument not present
!
! Examples:
!
! ! Flush display buffer, Wait to dump and then advancing frame
! CALL NG_FRAME( ) ! "WAIT=0" and "ADVANCE=.TRUE." are default
!
! ! Flush display buffer, delay 3 seconds and then advancing frame
! CALL NG_FRAME( WAIT=3000 )
!
! ! Flush display buffer, wait-to-dump, not advancing frame
! CALL NG_FRAME( WAIT=0, ADVANCE=.FALSE. )
!
! ! Flush display buffer, waiting 5 secdonds, not advancing frame
! CALL NG_FRAME( WAIT=5000, ADVANCE=.FALSE.)
!
! ! Flush display buffer only (no waiting, not advancing frame)
! CALL NG_FRAME( WAIT=-1, ADVANCE=.FALSE. )
!
! Note: While current NG frame advanced
!
! 0. Routine NG_SPRSET invoked to reset color indices (-1),
! line width (1.0), clipping off (0), and attributes of
! GKS GTX/GPL/GPM/GFA to its default.
!
! 1. Next frame (if exist) will be reset to default: size of
! full NG viewport without drawing title/perimeter.
!
! 2. NG_CLSPS() will be called automatiocally, user should
! CALL NG_OPNPS(...) again manually for next (if exist) NG
! frame postscript output
!
! 3. Graphics window (screen) will be cleared only (not closed),
! user should CALL NG_CLSWIN() manually for the case of no
! next NG frame
!
!---------------------------------------
!
! SUBROUTINE NG_SPRSET()
!
! Routine to reset color indices (-1), line width (1.0), Clipping off (0),
! and all attributes of GKS GTX/GPL/GPM/GFA to its default
!=====================================================================
! B. Coordinates
!=====================================================================
!
! SUBROUTINE NG_SET ! Set Viewport (Fractional) and Window (User) coordinates
! SUBROUTINE NG_GETSET ! Get Current Viewport and Window coordinates
!
! ----------
!
! SUBROUTINE NG_GSCLIP ! Set clipping indicator
! SUBROUTINE NG_GQCLIP ! Inquire current clipping indicator
!
! ----------
!
! REAL ELEMENTAL FUNCTION NG_CUFX ! X - NG-user to NG-fractional
! REAL ELEMENTAL FUNCTION NG_CUFY ! Y - NG-user to NG-fractional
!
! REAL ELEMENTAL FUNCTION NG_CFUX ! X - NG-fractional to NG-user
! REAL ELEMENTAL FUNCTION NG_CFUY ! Y - NG-fractional to NG-user
!
!---------------------------------------------------------------------
!
! SUBROUTINE NG_SET( XVPL, XVPR, YVPB, YVPT, &
! XWDL, XWDR, YWDB, YWDT, LILS )
! or
! SUBROUTINE NG_SET( XYVP, XYWD, LILS )
!
! REAL, INTENT(IN) :: XVPL, XVPR, YVPB, YVPT
! REAL, INTENT(IN) :: XWDL, XWDR, YWDB, YWDT
! REAL, INTENT(IN) :: XYVP(4), XYWD(4)
! INTEGER, INTENT(IN) :: LILS
!
! Routine to completely define the mapping from viewport (fractional,
! normalized) coordinates to window (user, world) coordinates,
! including the specification of axis scaling reversal and whether
! axes are to have linear or logarithmic scaling.
!
! Variables:
!
! XYVP = (/XVPL, XVPR, YVPB, YVPT/) are the four numbers defining the
! desired viewport; each of the values is between 0 and 1, inclusive;
! the suffixes "L", "R", "B", and "T" refer to the left, right, bottom,
! and top edges of the viewport, respectively. It must be the case that
! XVPL is less than XVPR and that YVPB is less than YVPT. (the clipping
! rectangle, if clipping is "on")
!
! XYWD = (/XWDL, XWDR, YWDB, YWDT/) define the desired window in the
! user coordinate system. Note that XWDL and XWDR specify a range of
! values of X coordinates prior to the taking of logarithms, if any,
! specified by LILS; similarly, YWDB and YWDT specify a range of
! values of Y coordinates prior to the taking of logarithms, if any,
! specified by LILS. Axis reversal (also called mirror-imaging of an
! axis) is controlled by the order of these values. If XWDL is greater
! than XWDR, the X coordinates are mirror-imaged. Similarly, if YWDB
! is greater than YWDT, the Y coordinates are mirror-imaged.
!
! LILS is the desired combination of linear or logarithmic axis scaling.
! =1 means Linear X, Linear Y;
! =2 means Linear X, Log Y;
! =3 means Log X, Linear Y; and,
! =4 means Log X, Log Y
!
!-------------------
!
! SUBROUTINE NG_GETSET( XVPL, XVPR, YVPB, YVPT, &
! XWDL, XWDR, YWDB, YWDT, LILS )
! or
! SUBROUTINE NG_GETSET( XYVP, XYWD, LILS )
!
! REAL, INTENT(OUT) :: XVPL, XVPR, YVPB, YVPT
! REAL, INTENT(OUT) :: XWDL, XWDR, YWDB, YWDT
! REAL, INTENT(OUT) :: XYVP(4), XYWD(4)
! INTEGER, INTENT(OUT) :: LILS
!
! Routine to get current mapping informations.
!
!-------------------
!
! Note: CNCARG NOT sopport following GKS routines
!
! GQMNTN - Get the Number of Supported Normalization Transformations
!
! GSELNT - Select a Predefined Normalization Transformation
!
! GSVP - Set the Viewport Coordeinates
!
! GSWN - Set the Window Coordinates
!
! GQNT - Get the Window and Viewport Coordinates
!
! GQCNTN - Get Current Normalization Transformation Number
!
!---------------------------------------
!
! SUBROUTINE NG_GSCLIP( ICLIP )
!
! INTEGER, INTENT(IN) :: ICLIP
!
! Routine to set clipping indicator. The clipping indicator controls
! whether or not data are displayed outside the boundaries of your
! defined viewport. If the clipping indicator is on, the data will be
! clipped to fit your window.
!
! Variables:
!
! ICLIP - An indicator specifying whether clipping is on or off:
! 0 - Clipping is off. Data outside of the window will be
! plotted.
! 1 - Clipping is on. Data outside of the window will not
! be plotted.
! By default, clipping is off.
!
!-------------------
!
! SUBROUTINE NG_GQCLIP( IER, ICLIP, CLRECT )
! or
! SUBROUTINE NG_GQCLIP( ICLIP, CLRECT )
!
! INTEGER, INTENT(OUT) :: IER
! INTEGER, INTENT(OUT) :: ICLIP
! REAL, INTENT(OUT), OPTIONAL :: CLRECT(4)
!
! Routine to inquire the clipping rectangle and clipping indicator.
!
! Variables:
!
! IER - Error flag. Always 0, means no erroroccurred
!
! ICLIP - The value of clipping indicator as set by GSCLIP
!
! CLRECT - The four coordinates of the clipping rectangle in the order
! XVPL, XVPR, YVPB, YVPT. The clipping rectangle is in
! normalized device coordinates.
!
!---------------------------------------
! Routines (all are FUNCTION) to do the
! coordinate transformations
!---------------------------------------
!
! REAL ELEMENTAL FUNCTION NG_CFUX( X )
! Function to get NG user X-coordinate(s) from NG fractional X-coordinate(s).
! Argument X: REAL, INTENT(IN), can be scalar or array
!
! REAL ELEMENTAL FUNCTION NG_CFUY( Y )
! Function to get NG user Y-coordinate(s) from NG fractional Y-coordinate(s).
! Argument Y: REAL, INTENT(IN), can be scalar or array
!
!-------------------
!
! REAL ELEMENTAL FUNCTION NG_CUFX( X )
! Function to get NG fractional X-coordinate(s) from NG user X-coordinate(s).
! Argument X: REAL, INTENT(IN), can be scalar or array
!
! REAL ELEMENTAL FUNCTION NG_CUFY( Y )
! to get NG fractional Y-coordinate(s) from NG user Y-coordinate(s).
! Argument Y: REAL, INTENT(IN), can be scalar or array
!
!=====================================================================
! C. Colors
!=====================================================================
!
! SUBROUTINE NG_MAPRGB ! Get RGB data from ColorMap
!
! ----------
!
! SUBROUTINE NG_GSCR ! Set color representation.
! SUBROUTINE NG_GQCR ! Get color representation.
!
! ----------
!
! SUBROUTINE NG_GSPLCI ! Set polyline color index
! SUBROUTINE NG_GSFACI ! Set fill area color index
!
! SUBROUTINE NG_GQPLCI ! Inquire polyline color index
! SUBROUTINE NG_GQFACI ! Inquire fill area color index
!
!---------------------------------------------------------------------
!
! SUBROUTINE NG_MAPRGB( MAP, RGB, NC ) ! REAL type RGB
! or
! SUBROUTINE NG_MAPRGB( MAP, iRGB, NC ) ! INTEGER type RGB
!
! CHARACTER(*), INTENT(IN ) :: colormap
! REAL, INTENT( OUT) :: rgb(3,256)
! INTEGER, INTENT( OUT) :: irgb(3,256)
! INTEGER, INTENT( OUT) :: ncolors
!
! Routine to get RGB data from the specified colormap
!
! Variables:
!
! MAP - Name of the colormap
!
! RGB - (R,G,B) data of colormap, values between 0.0 and 1.0
! iRGB - (R,G,B) data of colormap, values between 0 and 255
!
! NC - Number of colors
!
! Note: CNCARG support following 241 NCL colormaps
!
! 3gauss 3saw amwg amwg256
! amwg_blueyellowred BkBlAqGrYeOrReViWh200 BlAqGrWh2YeOrReVi22 BlAqGrYeOrRe
! BlAqGrYeOrReVi200 BlGrYeOrReVi200 BlRe BlueDarkOrange18
! BlueDarkRed18 BlueGreen14 BlueRed BlueRedGray
! BlueWhiteOrangeRed BlueYellowRed BlWhRe BrownBlue12
! Cat12 CBR_coldhot CBR_drywet CBR_set3
! CBR_wet cb_9step cb_rainbow cb_rainbow_inv
! circular_0 circular_1 circular_2 cmp_b2r
! cmp_flux cmp_haxby cosam cosam12
! cyclic default detail example
! extrema GHRSST_anomaly GMT_cool GMT_copper
! GMT_drywet GMT_gebco GMT_globe GMT_gray
! GMT_haxby GMT_hot GMT_jet GMT_nighttime
! GMT_no_green GMT_ocean GMT_paired GMT_panoply
! GMT_polar GMT_red2green GMT_relief GMT_relief_oceanonly
! GMT_seis GMT_split GMT_topo GMT_wysiwyg
! GMT_wysiwygcont grads_default grads_rainbow GrayWhiteGray
! GreenMagenta16 GreenYellow gscyclic gsdtol
! gsltod gui_default helix helix1
! hlu_default hotcold_18lev hotcolr_19lev hotres
! lithology matlab_hot matlab_hsv matlab_jet
! matlab_lines mch_default MPL_Accent MPL_afmhot
! MPL_autumn MPL_Blues MPL_bone MPL_BrBG
! MPL_brg MPL_BuGn MPL_BuPu MPL_bwr
! MPL_cool MPL_coolwarm MPL_copper MPL_cubehelix
! MPL_Dark2 MPL_flag MPL_gist_earth MPL_gist_gray
! MPL_gist_heat MPL_gist_ncar MPL_gist_rainbow MPL_gist_stern
! MPL_gist_yarg MPL_GnBu MPL_gnuplot MPL_gnuplot2
! MPL_Greens MPL_Greys MPL_hot MPL_hsv
! MPL_jet MPL_ocean MPL_Oranges MPL_OrRd
! MPL_Paired MPL_Pastel1 MPL_Pastel2 MPL_pink
! MPL_PiYG MPL_PRGn MPL_prism MPL_PuBu
! MPL_PuBuGn MPL_PuOr MPL_PuRd MPL_Purples
! MPL_rainbow MPL_RdBu MPL_RdGy MPL_RdPu
! MPL_RdYlBu MPL_RdYlGn MPL_Reds MPL_s3pcpn
! MPL_s3pcpn_l MPL_seismic MPL_Set1 MPL_Set2
! MPL_Set3 MPL_Spectral MPL_spring MPL_sstanom
! MPL_StepSeq MPL_summer MPL_terrain MPL_viridis
! MPL_winter MPL_YlGn MPL_YlGnBu MPL_YlOrBr
! MPL_YlOrRd ncl_default ncview_default NCV_banded
! NCV_blue_red NCV_blu_red NCV_bright NCV_gebco
! NCV_jaisnd NCV_jet NCV_manga NCV_rainbow2
! NCV_roullet nice_gfdl nrl_sirkes nrl_sirkes_nowhite
! OceanLakeLandSnow perc2_9lev percent_11lev posneg_1
! posneg_2 prcp_1 prcp_2 prcp_3
! precip2_15lev precip2_17lev precip3_16lev precip4_11lev
! precip4_diff_19lev precip_11lev precip_diff_12lev precip_diff_1lev
! psgcap radar radar_1 rainbow+gray
! rainbow+white+gray rainbow+white rainbow rh_19lev
! seaice_1 seaice_2 so4_21 so4_23
! spread_15lev srip_reanalysis StepSeq25 sunshine_9lev
! sunshine_diff_12lev SVG_bhw3_22 SVG_es_landscape_79 SVG_feb_sunrise
! SVG_foggy_sunrise SVG_fs2006 SVG_Gallet13 SVG_Lindaa06
! SVG_Lindaa07 t2m_29lev tbrAvg1 tbrStd1
! tbrVar1 tbr_240-300 tbr_stdev_0-30 tbr_var_0-500
! temp1 temp_19lev temp_diff_18lev temp_diff_1lev
! testcmap thelix topo_15lev uniform
! ViBlGrWhYeOrRe wgne15 wh-bl-gr-ye-re WhBlGrYeRe
! WhBlReWh WhiteBlue WhiteBlueGreenYellowRed WhiteGreen
! WhiteYellowOrangeRed WhViBlGrYeOrRe WhViBlGrYeOrReWh wind_17lev
! wxpEnIR
!
!---------------------------------------
!
! SUBROUTINE NG_GSCR( CI, CR, CG, CB, warn ) ! REAL (r,g,b)
! SUBROUTINE NG_GSCR( CI, IR, IG, IB, warn ) ! INTEGER(r,g,b)
! or
! SUBROUTINE NG_GSCR( CI, CN, warn ) ! Color name
!
! INTEGER, INTENT(IN) :: CI
! REAL, INTENT(IN) :: CR, CG, CB
! INTEGER, INTENT(IN) :: IR, IG, IB
! CHARACTER(*), INTENT(IN) :: CN
! LOGICAL, INTENT(IN), OPTIONAL :: warn
!
! Routine to set, by RGB values or color name, color representation of
! color index in the current color table
!
! Variables:
!
! CI - A color index to be assigned a color of CR, CG, and CB.
! Value of CI should be in the range from 0 to 255 (0<=CI<=255)
!
! Note: color indices 253-255 are preserved for system
! win-background, ngframe-title, and viewport-border colors use.
!
! It is recommended "NOT" to define/set color indices 253-255
! for the user use.
!
! CR - An intensity of red between a minimum of 0.0 and a maximum of
! 1.0 inclusive.
! CG - A green intensity between 0.0 and 1.0
! CB - A blue intensity between 0.0 and 1.0
!
! IR - An intensity of red between a minimum of 0 and a maximum of
! 255 inclusive.
! IG - A green intensity between 0 and 255
! IB - A blue intensity between 0 and 255
!
! CN - The name of predefinedcolor. CNCARG support NCL named colors
!
! warn - Warn flag
! =.TRUE., runtime warn while cI=253/254/255
! = .FALSE., not warn
! default is .TRUE.
!
! Note: CNCARG support following 657 NCL named colors
! (http://www.ncl.ucar.edu/Document/Graphics/named_colors.shtml)
!
! aliceblue antiquewhite antiquewhite1 antiquewhite2 antiquewhite3
! antiquewhite4 aquamarine aquamarine1 aquamarine2 aquamarine3
! aquamarine4 azure azure1 azure2 azure3
! azure4 beige bisque bisque1 bisque2
! bisque3 bisque4 black blanchedalmond blue
! blue1 blue2 blue3 blue4 blueviolet
! brown brown1 brown2 brown3 brown4
! burlywood burlywood1 burlywood2 burlywood3 burlywood4
! cadetblue cadetblue1 cadetblue2 cadetblue3 cadetblue4
! chartreuse chartreuse1 chartreuse2 chartreuse3 chartreuse4
! chocolate chocolate1 chocolate2 chocolate3 chocolate4
! coral coral1 coral2 coral3 coral4
! cornflowerblue cornsilk cornsilk1 cornsilk2 cornsilk3
! cornsilk4 cyan cyan1 cyan2 cyan3
! cyan4 darkblue darkcyan darkgoldenrod darkgoldenrod1
! darkgoldenrod2 darkgoldenrod3 darkgoldenrod4 darkgray darkgreen
! darkgrey darkkhaki darkmagenta darkolivegreen darkolivegreen1
! darkolivegreen2 darkolivegreen3 darkolivegreen4 darkorange darkorange1
! darkorange2 darkorange3 darkorange4 darkorchid darkorchid1
! darkorchid2 darkorchid3 darkorchid4 darkred darksalmon
! darkseagreen darkseagreen1 darkseagreen2 darkseagreen3 darkseagreen4
! darkslateblue darkslategray darkslategray1 darkslategray2 darkslategray3
! darkslategray4 darkslategrey darkturquoise darkviolet deeppink
! deeppink1 deeppink2 deeppink3 deeppink4 deepskyblue
! deepskyblue1 deepskyblue2 deepskyblue3 deepskyblue4 dimgray
! dimgrey dodgerblue dodgerblue1 dodgerblue2 dodgerblue3
! dodgerblue4 firebrick firebrick1 firebrick2 firebrick3
! firebrick4 floralwhite forestgreen gainsboro ghostwhite
! gold gold1 gold2 gold3 gold4
! goldenrod goldenrod1 goldenrod2 goldenrod3 goldenrod4
! gray gray0 gray1 gray2 gray3
! gray4 gray5 gray6 gray7 gray8
! gray9 gray10 gray11 gray12 gray13
! gray14 gray15 gray16 gray17 gray18
! gray19 gray20 gray21 gray22 gray23
! gray24 gray25 gray26 gray27 gray28
! gray29 gray30 gray31 gray32 gray33
! gray34 gray35 gray36 gray37 gray38
! gray39 gray40 gray41 gray42 gray43
! gray44 gray45 gray46 gray47 gray48
! gray49 gray50 gray51 gray52 gray53
! gray54 gray55 gray56 gray57 gray58
! gray59 gray60 gray61 gray62 gray63
! gray64 gray65 gray66 gray67 gray68
! gray69 gray70 gray71 gray72 gray73
! gray74 gray75 gray76 gray77 gray78
! gray79 gray80 gray81 gray82 gray83
! gray84 gray85 gray86 gray87 gray88
! gray89 gray90 gray91 gray92 gray93
! gray94 gray95 gray96 gray97 gray98
! gray99 gray100 green green1 green2
! green3 green4 greenyellow grey grey0
! grey1 grey2 grey3 grey4 grey5
! grey6 grey7 grey8 grey9 grey10
! grey11 grey12 grey13 grey14 grey15
! grey16 grey17 grey18 grey19 grey20
! grey21 grey22 grey23 grey24 grey25
! grey26 grey27 grey28 grey29 grey30
! grey31 grey32 grey33 grey34 grey35
! grey36 grey37 grey38 grey39 grey40
! grey41 grey42 grey43 grey44 grey45
! grey46 grey47 grey48 grey49 grey50
! grey51 grey52 grey53 grey54 grey55
! grey56 grey57 grey58 grey59 grey60
! grey61 grey62 grey63 grey64 grey65
! grey66 grey67 grey68 grey69 grey70
! grey71 grey72 grey73 grey74 grey75
! grey76 grey77 grey78 grey79 grey80
! grey81 grey82 grey83 grey84 grey85
! grey86 grey87 grey88 grey89 grey90
! grey91 grey92 grey93 grey94 grey95
! grey96 grey97 grey98 grey99 grey100
! honeydew honeydew1 honeydew2 honeydew3 honeydew4
! hotpink hotpink1 hotpink2 hotpink3 hotpink4
! indianred indianred1 indianred2 indianred3 indianred4
! ivory ivory1 ivory2 ivory3 ivory4
! khaki khaki1 khaki2 khaki3 khaki4
! lavender lavenderblush lavenderblush1 lavenderblush2 lavenderblush3
! lavenderblush4 lawngreen lemonchiffon lemonchiffon1 lemonchiffon2
! lemonchiffon3 lemonchiffon4 lightblue lightblue1 lightblue2
! lightblue3 lightblue4 lightcoral lightcyan lightcyan1
! lightcyan2 lightcyan3 lightcyan4 lightgoldenrod lightgoldenrod1
! lightgoldenrod2 lightgoldenrod3 lightgoldenrod4 lightgoldenrodyellow lightgray
! lightgreen lightgrey lightpink lightpink1 lightpink2
! lightpink3 lightpink4 lightsalmon lightsalmon1 lightsalmon2
! lightsalmon3 lightsalmon4 lightseagreen lightskyblue lightskyblue1
! lightskyblue2 lightskyblue3 lightskyblue4 lightslateblue lightslategray
! lightslategrey lightsteelblue lightsteelblue1 lightsteelblue2 lightsteelblue3
! lightsteelblue4 lightyellow lightyellow1 lightyellow2 lightyellow3
! lightyellow4 limegreen linen magenta magenta1
! magenta2 magenta3 magenta4 maroon maroon1
! maroon2 maroon3 maroon4 mediumaquamarine mediumblue
! mediumorchid mediumorchid1 mediumorchid2 mediumorchid3 mediumorchid4
! mediumpurple mediumpurple1 mediumpurple2 mediumpurple3 mediumpurple4
! mediumseagreen mediumslateblue mediumspringgreen mediumturquoise mediumvioletred
! midnightblue mintcream mistyrose mistyrose1 mistyrose2
! mistyrose3 mistyrose4 moccasin navajowhite navajowhite1
! navajowhite2 navajowhite3 navajowhite4 navy navyblue
! oldlace olivedrab olivedrab1 olivedrab2 olivedrab3
! olivedrab4 orange orange1 orange2 orange3
! orange4 orangered orangered1 orangered2 orangered3
! orangered4 orchid orchid1 orchid2 orchid3
! orchid4 palegoldenrod palegreen palegreen1 palegreen2
! palegreen3 palegreen4 paleturquoise paleturquoise1 paleturquoise2
! paleturquoise3 paleturquoise4 palevioletred palevioletred1 palevioletred2
! palevioletred3 palevioletred4 papayawhip peachpuff peachpuff1
! peachpuff2 peachpuff3 peachpuff4 peru pink
! pink1 pink2 pink3 pink4 plum
! plum1 plum2 plum3 plum4 powderblue
! purple purple1 purple2 purple3 purple4
! red red1 red2 red3 red4
! rosybrown rosybrown1 rosybrown2 rosybrown3 rosybrown4
! royalblue royalblue1 royalblue2 royalblue3 royalblue4
! saddlebrown salmon salmon1 salmon2 salmon3
! salmon4 sandybrown seagreen seagreen1 seagreen2
! seagreen3 seagreen4 seashell seashell1 seashell2
! seashell3 seashell4 sienna sienna1 sienna2
! sienna3 sienna4 skyblue skyblue1 skyblue2
! skyblue3 skyblue4 slateblue slateblue1 slateblue2
! slateblue3 slateblue4 slategray slategray1 slategray2
! slategray3 slategray4 slategrey snow snow1
! snow2 snow3 snow4 springgreen springgreen1
! springgreen2 springgreen3 springgreen4 steelblue steelblue1
! steelblue2 steelblue3 steelblue4 tan tan1
! tan2 tan3 tan4 thistle thistle1
! thistle2 thistle3 thistle4 tomato tomato1
! tomato2 tomato3 tomato4 turquoise turquoise1
! turquoise2 turquoise3 turquoise4 violet violetred
! violetred1 violetred2 violetred3 violetred4 wheat
! wheat1 wheat2 wheat3 wheat4 white
! whitesmoke yellow yellow1 yellow2 yellow3
! yellow4 yellowgreen
!
!---------------------------------------
!
! SUBROUTINE NG_GQCR( CI, ER, CR, CG, CB ) ! REAL(r,g,b)
! SUBROUTINE NG_GQCR( CI, ER, IR, IG, IB ) ! INTEGER(r,g,b)
! or
! SUBROUTINE NG_GQCR( CI, CR, CG, CB ) ! REAL(r,g,b)
! SUBROUTINE NG_GQCR( CI, IR, IG, IB ) ! INTEGER(r,g,b)
! or
! SUBROUTINE NG_GQCR( CN, ER, CR, CG, CB ) ! REAL(r,g,b)
! SUBROUTINE NG_GQCR( CN, ER, IR, IG, IB ) ! INTEGER(r,g,b)
! or
! SUBROUTINE NG_GQCR( CN, CR, CG, CB ) ! REAL(r,g,b)
! SUBROUTINE NG_GQCR( CN, IR, IG, IB ) ! INTEGER(r,g,b)
!
! INTEGER, INTENT(IN ) :: CI
! CHARACTER(*), INTENT(IN ) :: CN
! INTEGER, INTENT( OUT) :: ER
! REAL, INTENT( OUT) :: CR, CG, CB
! INTEGER, INTENT( OUT) :: IR, IG, IB
!
! Routine to get, by color index or color name, color representation
!
! Variables:
!
! CI - The color index, 0<=CI<=255, set by NG_GSCR call.
!
! CN - The name of predefined color.
! CNCARG support NCL 650 (657) named colors
! (http://www.ncl.ucar.edu/Document/Graphics/named_colors.shtml)
!
! ER - An error return value.
! =0, no errors were detected.
! =1, color index "CI" out of valid range [0,255]
! =2, color index "CI" undefined for CI=253/254/255
! =3, color name "CN" not predefined
!
! CR - An intensity of red between a minimum of 0.0 and a maximum of 1.0 inclusive.
! (returns -1.0 for the case of non-zero ER)
!
! CG - A green intensity between 0.0 and 1.0
! (returns -1.0 for the case of non-zero ER)
!
! CB - A blue intensity between 0.0 and 1.0
! (returns -1.0 for the case of non-zero ER)
!
! IR - An intensity of red between a minimum of 0 and a maximum of
! 255 inclusive.
! (returns -255 for the case of non-zero ER)
!
! IG - A green intensity between 0 and 255
! (returns -255 for the case of non-zero ER)
!
! IB - A blue intensity between 0 and 255
! (returns -255 for the case of non-zero ER)
!
!---------------------------------------------------------------------
! Routines to Set and Get PLCI/FACI Color Indices
!---------------------------------------------------------------------
!
! SUBROUTINE NG_GSPLCI( PLCI )
!
! INTEGER, INTENT(IN) :: PLCI
!
! Routine to set polyline color index
!
! Variables:
!
! PLCI - A color index used for for line drawing
!
!-------------------
!
! SUBROUTINE NG_GQPLCI( IER, PLCI )
! or
! SUBROUTINE NG_GQPLCI( PLCI )
!
! INTEGER, INTENT(OUT) :: IER
! INTEGER, INTENT(OUT) :: PLCI
!
! Routine to inquire current polyline color index
!
! Variables:
!
! IER - Error flag, always 0, means no error
!
! PLCI - The polyline color index as set by NG_GSPLCI
!
!---------------------------------------
!
! SUBROUTINE NG_GSFACI( FACI )
!
! INTEGER, INTENT(IN) :: FACI
!
! Routine to set fill area color index
!
! Variables:
!
! FACI - A color index used for for area filling
!
!-------------------
!
! SUBROUTINE NG_GQFACI( IER, FACI )
! or
! SUBROUTINE NG_GQFACI( FACI )
!
! INTEGER, INTENT(OUT) :: IER
! INTEGER, INTENT(OUT) :: FACI
!
! Routine to inquire current fill area color index
!
! Variables:
!
! IER - Error flag, always 0, means no error
!
! FACI - The fill area color index as set by NG_GSFACI
!
!=====================================================================
! D. Line and Fill
!=====================================================================
!
! SUBROUTINE NG_GSLWSC ! Set linewidth scale factor
! SUBROUTINE NG_GQLWSC ! Inquire linewidth scale factor
!
! ----------
!
! SUBROUTINE NG_PLOTIF ! Pen-Up/Down move (fractional)
!
! ----------
!
! SUBROUTINE NG_FRSTPT ! Pen-up move (user/fractional)
! SUBROUTINE NG_VECTOR ! Pen-down move (user/fractional)
! SUBROUTINE NG_LINE ! Draw line (user/fractional)
! SUBROUTINE NG_CURVE ! Draw polyline (user/fractional)
!
! SUBROUTINE NG_GPL ! Draw polyline (user/fractional)
!
! SUBROUTINE NG_GFA ! Fill polygon (user/fractional)
!
! SUBROUTINE NG_GCA ! Cell Array Fill (user/fractional)
!
!---------------------------------------------------------------------
!
! SUBROUTINE NG_GSLWSC( LWSC )
!
! REAL, INTENT(IN) :: LWSC
!
! Routine to set the linewidth scale factor.
!
! Variables:
!
! LWSC - A scale factor to control the linewidth of the polyline
! to be drawn. It must be greater than or equal to 0.0.
! The default value is 1.0
!
!---------------------------------------
!
! SUBROUTINE NG_GQLWSC( IER, LWSC )
! or
! SUBROUTINE NG_GQLWSC( LWSC )
!
! INTEGER, INTENT(OUT) :: IER
! REAL, INTENT(OUT) :: LWSC
!
! Routine to inquire the linewidth scale factor.
!
! Variables:
!
! IER - Error flag, always 0, means no error
!
! LWSC - The linewidth scale factor as set by NG_GSLWSC
!
!---------------------------------------------------------------------
!
! SUBROUTINE NG_PLOTIF( X, Y, IP )
!
! REAL, INTENT(IN) :: X, Y
! INTEGER, INTENT(IN) :: IP
!
! Routine to move the pen to the position (X,Y), in the fractional
! (normalized) coordinate system, with the pen up if IP equals zero
! and with the pen down if IP equals one (otherwise, nothing to do).
!
!---------------------------------------
!
! SUBROUTINE NG_FRSTPT( X, Y, NDC )
!
! REAL, INTENT(IN) :: X, Y
! LOGICAL, INTENT(IN), OPTIONAL :: NDC !---> added by CNCARG
!
! Routine to generate a pen-up move to the point (X,Y), in the user
! (world) coordinate system.
!
! Variables:
!
! X - The X coordinate
!
! Y - The Y coordinate
!
! NDC - Flag to determine the type of coordinates.
! =.TRUE. , X and Y are fractional/normalized device coordinates
! =.FALSE., X and Y are world/user coordinates
!
! Default is .FALSE. (user coordinates), if argument not present
!
!---------------------------------------
!
! SUBROUTINE NG_VECTOR( X, Y, NDC )
!
! REAL, INTENT(IN) :: X, Y
! LOGICAL, INTENT(IN), OPTIONAL :: NDC !---> added by CNCARG
!
! Routine to generate a pen-down move to the point (X,Y), in the user
! (world) coordinate system.
!
! Variables:
!
! X - The X coordinate
!
! Y - The Y coordinate
!
! NDC - Flag to determine the type of coordinates.
! =.TRUE. , X and Y are fractional/normalized device coordinates
! =.FALSE., X and Y are world/user coordinates
!
! Default is .FALSE. (user coordinates), if argument not present
!
!---------------------------------------
!
! SUBROUTINE NG_LINE( X1, Y1, X2, Y2, NDC )
!
! REAL, INTENT(IN) :: X1, Y1
! REAL, INTENT(IN) :: X2, Y2
! LOGICAL, INTENT(IN), OPTIONAL :: NDC !---> added by CNCARG
!
! Routine to draw a line from the point (X1,Y1) to the point (X2,Y2),
! in the user (world) coordinate system.
!
! Variables:
!
! X1, Y1 - The X and Y coordinates of the starting point of the line segment
!
! X2, Y2 - The X and Y coordinates of the endpoint of the line segment
!
! NDC - Flag to determine the type of coordinates.
! =.TRUE. , X1, X2, Y1, and Y2 are fractional/normalized
! device coordinates
! =.FALSE., X1, X2, Y1, and Y2 are world/user coordinates
!
! Default is .FALSE. (user coordinates), if argument not present
!
!---------------------------------------
!
! SUBROUTINE NG_CURVE( PX, PY, NP, NDC )
!
! INTEGER, INTENT(IN) :: N
! REAL, INTENT(IN) :: X(N), Y(N)
! LOGICAL, INTENT(IN), OPTIONAL :: NDC !---> added by CNCARG
!
! Routine to draw the curve defined by the points ((PX(I),PY(I)),I=1,NP),
! in the user (world) coordinate system.
!
! Variables:
!
! PX - The X coordibates of the points that define the curve to be drawn
!
! PY - The X coordibates of the points that define the curve to be drawn
!
! NP - The number of points defining the curve (Size of arrays PX and PY)
!
! NDC - Flag to determine the type of coordinates.
! =.TRUE. , PX and PY are fractional/normalized device coordinates
! =.FALSE., PX and PY are world/user coordinates
!
! Default is .FALSE. (user coordinates), if argument not present
!
!---------------------------------------------------------------------
!
! SUBROUTINE NG_GPL( N, X, Y, XSPV, YSPV, NDC )
!
! INTEGER, INTENT(IN) :: N
! REAL, INTENT(IN) :: X(N), Y(N)
! REAL, INTENT(IN), OPTIONAL :: XSPV, YSPV !---> added by CNCARG
! LOGICAL, INTENT(IN), OPTIONAL :: NDC !---> added by CNCARG
!
! Routine to draw the polylines defined by the points (X(I),Y(I)),I=1,N).
!
! Variables:
!
! N - The number of points in the polygon. (N > 1)
!
! X - The X coordinates array of the polygon.
!
! Y - The Y coordinates array of the polygon.
!
! XSPV - Special value of X and Y coordinates.
! YSPV The line segments with ending points (X==XSPV .OR. Y=YSPV)
! will be skipped.
!
! NDC - Flag to determine the type of coordinates.
! =.TRUE. , X and Y are fractional/normalized device coordinates
! =.FALSE., X and Y are world/user coordinates
! Default is .FALSE. (user coordinates), if argument not present
!
! Note: Default is solid-line
!
!---------------------------------------
!
! SUBROUTINE NG_GFA( N, X, Y, NDC )
!
! INTEGER, INTENT(IN) :: N
! REAL, INTENT(IN) :: X(N), Y(N)
! LOGICAL, INTENT(IN), OPTIONAL :: NDC !---> added by CNCARG
!
! Routine to fill the polygon defined by the points ((X(I),Y(I)),I=1,N).
! The last point in the polygon is connected to the first point with a
! straight line segment in the case that coordinate (X(N),Y(N)) is not
! equal to coordinate (X(1),Y(1)).
!
! Variables:
!
! N - The number of points in the polygon. (N > 2)
!
! X - The X coordinates array of the polygon.
!
! Y - The Y coordinates array of the polygon.
!
! NDC - Flag to determine the type of coordinates
! =.TRUE. , X and Y are fractional/normalized device coordinates
! =.FALSE., X and Y are world/user coordinates
! Default is .FALSE. (user coordinates), if argument not present
!
! Note: Default is solid-fill
!
!---------------------------------------
!
! SUBROUTINE NG_GCA( XMIN, XMAX, YMIN, YMAX, CA, NX, NY, NDC )
!
! REAL, INTENT(IN) :: XMIN, XMAX, YMIN, YMAX
! INTEGER, INTENT(IN) :: NX, NY
! INTEGER, INTENT(IN) :: CA(NX,NY)
! LOGICAL, INTENT(IN), OPTIONAL :: NDC !---> added by CNCARG
!
! Routine to fill rectangle, defined by XMIN, XMAX, YMIN, and YMAX,
! using specified cell array CA(NX,NY). This rectangle is subdivided
! into NX and NY subrectangles in the X and Y directions, each
! subrectangle (or cell) is assigned a color and drawn with that color.
!
! YMAX +--------+--------+-----+---------+
! | (1,NY) | (2,NY) | ... | (NX,NY) |
! +--------+--------+-----+---------+
! | ... | ... | ... | ... |
! +--------+--------+-----+---------+
! | (1,2) | (2,2) | ... | (NX,2) |
! +--------+--------+-----+---------+
! | (1,1) | (2,1) | ... | (NX,1) |
! YMIN +--------+--------+-----+---------+
! XMIN XMAX
!
! Variables :
!
! XMIN - Lower-left X coordinates of rectangle
!
! YMIN - Lower-left Y coordinates of rectangle
!
! XMAX - Upper-reght X coordinates of rectangle
!
! XMAX - Upper-reght Y coordinates of rectangle
!
! NX - X dimension of the color index array CARRAY
!
! NY - Y dimension of the color index array CARRAY
!
! CA - An array of color indices used to determine the color of
! each cell drawn.
!
! NDC - Flag to determine the type of coordinates
! =.TRUE. , X and Y are fractional/normalized device coordinates
! =.FALSE., X and Y are world/user coordinates
! Default is .FALSE. (user coordinates), if argument not present
!
!=====================================================================
! E. GTX, GPL, GPM, and GFA of GKS (not recommended to use)
!=====================================================================
!
! SUBROUTINE NG_GTX ! Text Output
!
! SUBROUTINE NG_GSTXCI ! Set Text color index
! SUBROUTINE NG_GSTXP ! Set Text path
! SUBROUTINE NG_GSTXAL ! Set Text alignment
! SUBROUTINE NG_GSTXFP ! Set Text font and precision
! SUBROUTINE NG_GSCHH ! Set Character height
! SUBROUTINE NG_GSCHUP ! Set Character up vector
! SUBROUTINE NG_GSCHSP ! Set Character spacing
! SUBROUTINE NG_GSCHXP ! Set Character expansion factor
!
! SUBROUTINE NG_GQTXCI ! Inquire Text color index
! SUBROUTINE NG_GQTXP ! Inquire Text path
! SUBROUTINE NG_GQTXAL ! Inquire Text alignment
! SUBROUTINE NG_GQTXFP ! Inquire Text font and precision
! SUBROUTINE NG_GQCHH ! Inquire Character height
! SUBROUTINE NG_GQCHUP ! Inquire Character up vector
! SUBROUTINE NG_GQCHSP ! Inquire Character spacing
! SUBROUTINE NG_GQCHXP ! Inquire Character expansion factor
!
! ----------
!
! SUBROUTINE NG_GPL ! Polyline Output
!
! SUBROUTINE NG_GSPLCI ! Set polyline color index
! SUBROUTINE NG_GSLN ! Set Line type
! SUBROUTINE NG_GSLWSC ! Set Linewidth scale factor
!
! SUBROUTINE NG_GQPLCI ! Inquire polyline color index
! SUBROUTINE NG_GQLN ! Inquire Line type
! SUBROUTINE NG_GQLWSC ! Inquire Linewidth scale factor
!
! ----------
!
! SUBROUTINE NG_GPM ! Polymarker Output
!
! SUBROUTINE NG_GSPMCI ! Set polymarker color index
! SUBROUTINE NG_GSMK ! Set Polymarker type
! SUBROUTINE NG_GSMKSC ! Set Polymarker size scale factor
!
! SUBROUTINE NG_GQPMCI ! Inquire polymarker color index
! SUBROUTINE NG_GQMK ! Inquire Polymarker type
! SUBROUTINE NG_GQMKSC ! Inquire Polymarker size scale factor
!
! ----------
!
! SUBROUTINE NG_GFA ! Filled Area Output
!
! SUBROUTINE NG_GSFACI ! Set Fill Area color index
! SUBROUTINE NG_GSFAIS ! Set Fill Area interior style
! SUBROUTINE NG_GSFASI ! Set Fill Area style index
!
! SUBROUTINE NG_GQFACI ! Inquire Fill Area color index
! SUBROUTINE NG_GQFAIS ! Inquire Fill Area interior style
! SUBROUTINE NG_GQFASI ! Inquire Fill Area style index
!
!---------------------------------------------------------------------
! GKS-GTX Text Output
!---------------------------------------------------------------------
!
! ~~~~~~~~~~~~~~~~~~~~~
! Text Output Primitive
! ~~~~~~~~~~~~~~~~~~~~~
!
! The text output primitive causes a specified text string to be drawn.
! A number of attribute setting routines are available for selecting
! the size, font, precision, and orientation of the text.
!
! -----------------------------------------------------
! Argument | Type | Mode | Dimension
! -----------------------------------------------------
! CALL GTX (X, | Real | Input |
! Y, | Real | Input |
! STRING) | Character | Input |
! -----------------------------------------------------
!
! X: The X coordinate for the position point for the text string. X is
! a world coordinate value. See GSTXAL for how a text string is
! positioned with respect to its position point.
!
! Y: The Y coordinate for the position point for the text string. Y is
! a world coordinate value. See GSTXAL for how a text string is
! positioned with respect to its position point.
!
! STRING: The string of characters to be drawn. Defaults: none
!
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Setting Text Output Attributes
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!
! The appearance of text on a workstation is controlled by a number
! of attributes including:
!
! Text color index (see GSTXCI and GQTXCI)
!
! Text path (see GSTXP and GQTXP)
!
! Text alignment (see GSTXAL and GQTXAL)
!
! Text font and precision (see GSTXFP and GQTXFP)
!
! Text color index (see GSTXCI and GQTXCI)
!
! Character height (see GSCHH and GQCHH)
!
! Character spacing (see GSCHSP and GQCHSP)
!
! Character up vector (see GSCHUP and GQCHUP)
!
! Character expansion factor (see GSCHXP and GQCHXP)
!
!=======================================
!
! ~~~~~~~~~~~~~~~~~~~~
! Set Text Color Index
! ~~~~~~~~~~~~~~~~~~~~
!
! ---------------------------------------------------
! Argument | Type | Mode | Dimension
! ---------------------------------------------------
! CALL GSTXCI (COLI) | Integer | Input |
! ---------------------------------------------------
!
! COLI: An index assigned an RGB (red, green, blue) color in a previous
! call to the GSCR routine, or a workstation-dependent default. Allowed
! indices are non-negative integers. Index 0 is the background color.
! Index 1 is the foreground color.
!
! All text drawn with calls to the GTX output primitive will be drawn
! with the color described by index COLI until GSTXCI is called again
! and a new index is assigned.
!
! Default: The default text color index is 1 (foreground color).
!
! ~~~~~~~~~~~~~
! Set Text Path
! ~~~~~~~~~~~~~
!
! --------------------------------------------------
! Argument | Type | Mode | Dimension
! --------------------------------------------------
! CALL GSTXP (TXP) | Integer | Input |
! --------------------------------------------------
!
! TXP: Gives the direction in which a character string is to be drawn.
!
! Options are:
! 0 - draw character n+l to the right of character n
! 1 - draw character n+1 to the left of character n
! 2 - draw character n+1 above character n
! 3 - draw character n+1 below character n
!
! The above, below, left, and right directions are relative to the
! character up vector (see routine GSCHUP). The text path direction
! "right" is perpendicular to the up vector direction. To draw a text
! string at a 45 degree angle, an appropriate character up vector
! would be (-1.,1.), and the text path would be right.
!
! Normal text writing (horizontal direction moving toward the right)
! defaults are a character up vector of (0.,1.) and text path of right.
!
! Default: The default text path is to the right.
!
! ~~~~~~~~~~~~~~~~~~
! Set Text Alignment
! ~~~~~~~~~~~~~~~~~~
!
! ---------------------------------------------------
! Argument | Type | Mode | Dimension
! ---------------------------------------------------
! CALL GSTXAL (TXALH, | Integer | Input |
! TXALV) | Integer | Input |
! ---------------------------------------------------
!
! TXALH: Determines the horizontal alignment of the text to be drawn.
!
! Options are:
! 0 - normal
! 1 - left
! 2 - center
! 3 - right
!
! TXALV: Determines the vertical alignment of the text to be drawn.
!
! Options are:
! 0 - normal
! 1 - top
! 2 - cap
! 3 - half
! 4 - base
! 5 - bottom
!
! Text alignment is used to indicate a position on the text extent
! rectangle that will be identified with the positioning point
! specified in a call to GTX. The angle of rotation at which the
! text is written is determined by the character up vector (see GSCHUP).
!
! Defaults: The default horizontal alignment is 0; the default vertical
! alignment is 0.
!
! Normal Text Alignments Relative to Text Path
! ------------------------------------------------
! Text Path | Normal Horizontal | Normal Vertical
! ------------------------------------------------
! RIGHT | LEFT | BASE
! LEFT | RIGHT | BASE
! UP | CENTER | BASE
! DOWN | CENTER | TOP
! ------------------------------------------------
!
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Set Text Font and Precision
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!
! ---------------------------------------------------
! Argument | Type | Mode | Dimension
! ---------------------------------------------------
! CALL GSTXFP (FONT, | Integer | Input |
! PREC) | Integer | Input |
! ---------------------------------------------------
!
! FONT: Specifies the text font to be used in subsequent calls to the
! GTX output primitive.
!
! Options are:
! 1 - Default ASCII font
! -2 - Hershey cartographic Roman
! -3 - Hershey cartographic Greek
! -4 - Hershey simplex Roman
! -5 - Hershey simplex Greek
! -6 - Hershey simplex script
! -7 - Hershey complex Roman
! -8 - Hershey complex Greek
! -9 - Hershey complex script
! -10 - Hershey complex italic
! -11 - Hershey complex Cyrillic
! -12 - Hershey duplex Roman
! -13 - Hershey triplex Roman
! -14 - Hershey triplex italic
! -15 - Hershey Gothic German
! -16 - Hershey Gothic English
! -17 - Hershey Gothic Italian
! -18 - Hershey math symbols
! -19 - Hershey symbol set 1
! -20 - Hershey symbol set 2
!
! The Hershey fonts are not standardized by GKS but are locally
! implemented in NCAR GKS. The Hershey font description files were
! originally written by A.V. Hershey in the late 1960s and are now
! made available from the National Institute of Standards and
! Technology (NIST). All of the Hershey fonts are stroked fonts,
! that is, the characters are defined by a sequence of line draws.
! GKS requires that locally implemented fonts be assigned negative
! font numbers.
!
! When plotting to a PostScript workstation all GKS fonts are mapped
! onto an equivalent PostScript font if possible.
!
! PREC: Gives an indication as to how faithfully text should be
! represented when it is plotted with GTX using the font specified by
! FONT.
!
! Options are:
! 0 - string precision (good)
! 1 - character precision (better)
! 2 - stroke precision (best)
!
! Defaults: FONT=1 and PREC=2 (All text output from NCAR GKS is at
! stroke precision.)
!
! ~~~~~~~~~~~~~~~~~~~~
! Set Character Height
! ~~~~~~~~~~~~~~~~~~~~
!
! ------------------------------------------------
! Argument | Type | Mode | Dimension
! ------------------------------------------------
! CALL GSCHH (CHH) | Real | Input |
! ------------------------------------------------
!
! CHH: Gives the height in world coordinates at which a character is
! drawn using the GTX output primitive. CHH must be > 0.
!
! Default: The default character height is 0.01
!
! ~~~~~~~~~~~~~~~~~~~~~~~
! Set Character Up Vector
! ~~~~~~~~~~~~~~~~~~~~~~~
!
! -------------------------------------------------
! Argument | Type | Mode | Dimension
! -------------------------------------------------
! CALL GSCHUP (CHUX, | Real | Input |
! CHUY) | Real | Input |
! -------------------------------------------------
!
! CHUX: Gives the X (horizontal) world coordinate of a vector tip.
!
! CHUY: Gives the Y (vertical) world coordinate of a vector tip.
!
! The vector tail is at (0,0). (CHUX, CHUY) cannot be (0,0).
! The coordinate (CHUX, CHUY), relative to (0,0), establishes a
! vector direction which will be perpendicular to the horizontal
! centerline of the character string to be drawn. Thus, (CHUX, CHUY)
! equals (0., 1.) implies normal character positioning in which the
! character centerline is horizontal and the top of the character is up.
!
! Defaults: The default character up vector is (0.,1.)
!
! ~~~~~~~~~~~~~~~~~~~~~
! Set Character Spacing
! ~~~~~~~~~~~~~~~~~~~~~
!
! -------------------------------------------------
! Argument | Type | Mode | Dimension
! -------------------------------------------------
! CALL GSCHSP (CHSP) | Real | Input |
! -------------------------------------------------
!
! CHSP: Specifies how much additional white space should be inserted
! between characters drawn using the GTX output primitive. CHSP is
! specified as a fraction of the character height.
!
! A character spacing of zero concatenates character bodies contiguously.
! A positive value leaves space between the successive characters.
! A negative value causes successive characters to overlap.
!
! Default: The default character spacing is 0.0
!
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Set Character Expansion Factor
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!
! -------------------------------------------------
! Argument | Type | Mode | Dimension
! -------------------------------------------------
! CALL GSCHXP (CHXP) | Real | Input |
! -------------------------------------------------
!
! CHXP: Specifies a deviation of the width to height ratio for characters
! drawn using the GTX output primitive. CHXP of 10.0 would request a
! character that is 10 times as wide as normal. CHXP of 0.1 would
! request characters that are 1/10th as wide as normal. The character
! height remains unchanged. CHXP must be greater than 0.
!
! Default: The default character expansion factor is 1.0 .
!
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Inquire Text/Character Attributes
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!
! SUBROUTINE NG_GQTXCI( ERRIND, COLI ) ! Text Color Index
!
! SUBROUTINE NG_GQTXP ( ERRIND, TXP ) ! Text Path
!
! SUBROUTINE NG_GQTXAL( ERRIND, TXALH, TXALV ) ! Text Alignment
!
! SUBROUTINE NG_GQTXFP( ERRIND, FONT, PREC ) ! Text Font and Precision
!
! SUBROUTINE NG_GQCHH ( ERRIND, CHH ) ! Character Height
!
! SUBROUTINE NG_GQCHUP( ERRIND, CHUX, CHUY ) ! Character Up Vector
!
! SUBROUTINE NG_GQCHSP( ERRIND, CHSP ) ! Character Spacing
!
! SUBROUTINE NG_GQCHXP( ERRIND, CHXP ) ! Character Expansion Factor
!
!---------------------------------------------------------------------
! GKS-GPL: Polyline Output
!---------------------------------------------------------------------
!
! ~~~~~~~~~~~~~~~~~~~~~~~~~
! Polyline Output Primitive
! ~~~~~~~~~~~~~~~~~~~~~~~~~
!
! The polyline output primitive GPL causes a series of N-1 straight
! line segments to be drawn connecting successive points specified by
! the coordinate pairs (X(I),Y(I)) for I=1,N.
!
! ------------------------------------------------
! Argument | Type | Mode | Dimension
! ------------------------------------------------
! CALL GPL (N, | Integer | Input |
! X, | Real | Input | N
! Y) | Real | Input | N
! ------------------------------------------------
!
! N: The number of points in the line to be drawn. (N > 1)
!
! X: An array of dimension N containing the X coordinates of N points
! to be connected by line segments. These values are in world coordinates.
!
! Y: An array of dimension N containing the Y coordinates of N points to
! be connected by line segments. These values are in world coordinates.
!
! Defaults: none
!
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Setting Polyline Output Attributes
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!
! The appearance of polyline on a workstation is controlled by a number
! of attributes including:
!
! Polyline Color IOndex (see GSPLCI and GQPLCI)
!
! Line Type (see GSLN and GQLN)
!
! Linewidth Scale Factor (see GSLWSC and GQLWSC)
!
!=======================================
!
! ~~~~~~~~~~~~~~~~~~~~~~~~
! Set Polyline Color Index
! ~~~~~~~~~~~~~~~~~~~~~~~~
!
! ---------------------------------------------------
! Argument | Type | Mode | Dimension
! ---------------------------------------------------
! CALL GSPLCI (COLI) | Integer | Input |
! ---------------------------------------------------
!
! COLI: An index assigned an RGB (red, green, blue) color in a previous
! call to the GSCR routine or a workstation dependent default. Allowed
! indices are non-negative integers. Index 0 is the background color.
! Index 1 is the foreground color. All lines drawn with calls to the
! GPL output primitive will be drawn with the color described by index
! COLI until GSPLCI is called again and a new index is assigned.
!
! Default: The default polyline color index is 1 (foreground color).
!
! ~~~~~~~~~~~~~
! Set Line Type
! ~~~~~~~~~~~~~
!
! -------------------------------------------------
! Argument | Type | Mode | Dimension
! -------------------------------------------------
! CALL GSLN (LTYPE) | Integer | Input |
! -------------------------------------------------
!
! LTYPE: The type of polyline to be drawn. Options are:
!
! < 0 - implementation dependent (not used in NCAR GKS)
! 1 - solid line
! 2 - dashed line
! 3 - dotted line
! 4 - dashed dotted line
! >= 5 - reserved for future standardization (not used in NCAR GKS)
!
! Default: The default linetype is 1 (solid line).
!
! ~~~~~~~~~~~~~~~~~~~~~~~~~~
! Set Linewidth Scale Factor
! ~~~~~~~~~~~~~~~~~~~~~~~~~~
!
! -------------------------------------------------
! Argument | Type | Mode | Dimension
! -------------------------------------------------
! CALL GSLWSC (LWIDTH) | Real | Input |
! -------------------------------------------------
!
! LWIDTH: A scale factor to control the linewidth of the polyline
! to be drawn. It must be greater than or equal to 0.
!
! Default: The default linewidth scale factor is 1.0.
!
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Inquire Polyline Attributes
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~
!
! SUBROUTINE NG_GQPLCI( ERRIND, COLI )
!
! SUBROUTINE NG_GQLN ( ERRIND, LTYPE )
!
! SUBROUTINE NG_GQLWSC( ERRIND, LWIDTH )
!
!---------------------------------------------------------------------
! GKS-GPM: Polymarker Output
!---------------------------------------------------------------------
!
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Polymarker Output Primitive
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~
!
! The polymarker output primitive GPM causes N markers to be drawn at
! the locations specified by the coordinate pairs (X(I),Y(I)) for I=1,N.
! The markers can be either a dot, a plus sign, an asterisk (the default),
! a circle, or a cross.
!
! -------------------------------------------------
! Argument | Type | Mode | Dimension
! -------------------------------------------------
! CALL GPM (N, | Integer | Input |
! X, | Real | Input | N
! Y) | Real | Input | N
! -------------------------------------------------
!
! N: The number of markers to be drawn. (N > 0)
!
! X: An array of dimension N containing the X coordinates of the N
! markers to be drawn, in world coordinates.
!
! Y: An array of dimension N. The Y coordinates of the N markers
! to be drawn, in world coordinates.
!
! Defaults: none
!
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Setting Polymarker Output Attributes
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!
! The appearance of polymark on a workstation is controlled by a number
! of attributes including:
!
! Polymarker Color Index (see GSPMCI and GQPMCI)
!
! Polymarker Type (see GSMK and GQMK)
!
! Polymarker Size Scale Factor (see GSMKSC and GQMKSC)
!
!=======================================
!
! ~~~~~~~~~~~~~~~~~~~~~~~~~~
! Set Polymarker Color Index
! ~~~~~~~~~~~~~~~~~~~~~~~~~~
!
! ----------------------------------------------------
! Argument | Type | Mode | Dimension
! ----------------------------------------------------
! CALL GSPMCI (COLI) | Integer | Input |
! ----------------------------------------------------
!
! COLI: An index assigned an RGB (red, green, blue) color in a previous
! call to the GSCR routine, or a workstation-dependent default. Allowed
! indices are non-negative integers. Index 0 is the background color.
! Index 1 is the foreground color. All markers drawn with calls to the
! GPM output primitive will be drawn with the color described by index
! COLI until GSPMCI is called again and a new index is assigned.
!
! Default: The default polymarker color index is 1 (foreground color).
!
! ~~~~~~~~~~~~~~~~~~~
! Set Polymarker Type
! ~~~~~~~~~~~~~~~~~~~
!
! -------------------------------------------------
! Argument | Type | Mode | Dimension
! -------------------------------------------------
! CALL GSMK (MTYPE) | Integer | Input |
! -------------------------------------------------
!
! MTYPE: Selects the type of marker to be drawn. Options are:
! < 0 - implementation dependent (not used in NCAR GKS)
! 1 - . (dot)
! 2 - + (plus)
! 3 - * (asterisk)
! 4 - o (circle)
! 5 - X (cross)
! >= 6 - reserved for registration or future standardization
!
! Default: The default polymarker is an asterisk.
!
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Set Polymarker Size Scale Factor
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!
! -------------------------------------------------
! Argument | Type | Mode | Dimension
! -------------------------------------------------
! CALL GSMKSC (MSZSF) | Real | Input |
! -------------------------------------------------
!
! MSZSF: A scale factor to control the size of the marker.
! It must be greater than or equal to 0.0
!
! Default: 1.0
!
! Note: The GKS standard requires that marker type 1 always be
! displayed as the smallest possible dot. For this reason a dot
! marker will not be scaled, regardless of the value of MSZSF.
!
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Inquire Polymarker Attributes
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!
! SUBROUTINE NG_GQPMCI( ERRIND, COLI )
!
! SUBROUTINE NG_GQMK ( ERRIND, MTYPE )
!
! SUBROUTINE NG_GQMKSC( ERRIND, MSZSF )
!
!---------------------------------------------------------------------
! GKS-GFA: Filled Area Output
!---------------------------------------------------------------------
!
! ~~~~~~~~~~~~~~~~~~~
! Fill Area Primitive
! ~~~~~~~~~~~~~~~~~~~
!
! The fill area output primitive takes a polygon as input and fills
! it with a solid color or cross hatching. The GKS standard sets hollow
! fill as the default. However, due to numerous complaints over many
! years, the default fill in the NCAR GKS implementation has been set
! to solid fill.
!
! ------------------------------------------------
! Argument | Type | Mode | Dimension
! ------------------------------------------------
! CALL GFA (N, | Integer | Input |
! X, | Real | Input | N
! Y) | Real | Input | N
! ------------------------------------------------
!
! N: The number of points in the polygon to be filled. (N > 2)
!
! X: An array of dimension N containing the X world coordinates
! of the polygon.
!
! Y: An array of dimension N containing the Y world coordinates
! of the polygon.
!
! The area to be filled is delimited by a series of straight line
! segments connecting the successive points represented by
! (X(1), Y(1)), (X(2), Y(2)),..., (X(N), Y(N)). The last point in
! the polygon is connected to the first point with a straight line
! segment in the case that coordinate (X(N), Y(N)) is not equal to
! coordinate (X(1), Y(1)).
!
! Defaults: none
!
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Setting Fill Area Output Attributes
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!
! The appearance of fill area on a workstation is controlled by a number
! of attributes including:
!
! Fill Area Color Index (see GSFACI and GQFACI)
!
! Fill Area Interior Style (see GSFAIS and GQFAIS)
!
! Fill Area Style Index (see GSFASI and GQFASI)
!
!=======================================
!
! ~~~~~~~~~~~~~~~~~~~~~~~~~
! Set Fill Area Color Index
! ~~~~~~~~~~~~~~~~~~~~~~~~~
!
! ---------------------------------------------------
! Argument | Type | Mode | Dimension
! ---------------------------------------------------
! CALL GSFACI (COLI) | Integer | Input |
! ---------------------------------------------------
!
! COLI: An index assigned an RGB (red, green, blue) color in a previous
! call to the GSCR routine, or a workstation dependent default. Allowed
! indices are non-negative integers. Index 0 is the background color.
! Index 1 is the foreground color.
!
! All filled areas drawn with calls to the GFA output primitive will be
! drawn with the color described by index COLI until GSFACI is called
! again and a new index is assigned.
!
! Default: The default fill area color index is 1 (foreground color).
!
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Set Fill Area Interior Style
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!
! ---------------------------------------------------
! Argument | Type | Mode | Dimension
! ---------------------------------------------------
! CALL GSFAIS (INTS) | Integer | Input |
! ---------------------------------------------------
!
! INTS: Gives the style of fill to be used in subsequent calls to GFA.
! Options are:
!
! 0 - hollow fill
! 1 - solid fill
! 2 - pattern fill
! 3 - hatch fill
!
! GKS subroutine GSFASI can then be used to set the particular workstation
! dependent hatch and pattern options which may be provided.
!
! Default: The default interior style in NCAR GKS is solid fill. This is
! in exception to the default specified in the GKS Standard (which is
! hollow fill).
!
! ~~~~~~~~~~~~~~~~~~~~~~~~~
! Set Fill Area Style Index
! ~~~~~~~~~~~~~~~~~~~~~~~~~
!
! ---------------------------------------------------
! Argument | Type | Mode | Dimension
! ---------------------------------------------------
! CALL GSFASI (STYLI) | Integer | Input |
! ---------------------------------------------------
!
! STYLI: Allows for the selection of workstation-dependent options for
! hatch or pattern fills. Pattern fill options are not supported in
! NCAR Graphics. Hatch fill options are:
!
! 1 - horizontal lines
! 2 - vertical lines
! 3 - lines of positive slope
! 4 - lines of negative slope
! 5 - horizontal and vertical lines
! 6 - lines of positive and negative slope
!
! Default: The default hatch fill is horizontal lines.
!
! Note : using CALL NG_SFSETR('SP - Spacing of fill lines', SP)
! to set the hatch spacing "SP"
!
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Inquire Fill Area Attributes
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!
! SUBROUTINE NG_GQFACI( ERRIND, COLI )
!
! SUBROUTINE NG_GQFAIS( ERRIND, INTS )
!
! SUBROUTINE NG_GQFASI( ERRIND, STYLE )
!
!=====================================================================
! Refer "NCAR menu" for interfacing SPPS in detail
!=====================================================================