C***********************************************************************
C    Module:  pltlib.inc
C 
C    Copyright (C) 1996 Harold Youngren, Mark Drela 
C 
C    This library is free software; you can redistribute it and/or
C    modify it under the terms of the GNU Library General Public
C    License as published by the Free Software Foundation; either
C    version 2 of the License, or (at your option) any later version.
C
C    This library is distributed in the hope that it will be useful,
C    but WITHOUT ANY WARRANTY; without even the implied warranty of
C    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
C    Library General Public License for more details.
C
C    You should have received a copy of the GNU Library General Public
C    License along with this library; if not, write to the Free
C    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
C 
C    Report problems to:    guppy@maine.com 
C                        or drela@mit.edu  
C***********************************************************************
C
C
C*******************************
C --- Global data for Xplot11
C     Version 4.46 11/28/01
C*******************************
C
      parameter (Nstore_max=100000,Ncolors_max=256,MaxPolyLine=501)
C
      Real    DEFAULT_PAGEHEIGHT,
     &        DEFAULT_PAGEWIDTH,
     &        DEFAULT_SCREENFRACTION
C
C---Set paper size here
      parameter (DEFAULT_PAGEHEIGHT     = 11.0,   ! Letter size
     &           DEFAULT_PAGEWIDTH      =  8.5,
     &           DEFAULT_SCREENFRACTION =  0.67)
cc      parameter (DEFAULT_PAGEHEIGHT     = 11.65,  ! A4 European
cc     &           DEFAULT_PAGEWIDTH      =  8.25,
cc     &           DEFAULT_SCREENFRACTION =  0.67)
C
      Integer NPS_UNIT_DEFAULT,
     &        NPRIM_UNIT_DEFAULT
C
      parameter (NPS_UNIT_DEFAULT   = 80)
      parameter (NPRIM_UNIT_DEFAULT = 81)
C
      Integer PageCommand,
     &        PlotCommand,
     &        PenCommand, 
     &        ScaleCommand,
     &        PatternCommand,
     &        ColorCommand,
     &        PolylinePointCommand,
     &        PolylineDrawCommand,
     &        MinClipCommand,
     &        MaxClipCommand
C
      parameter (PageCommand          =  1)
      parameter (PlotCommand          =  2)
      parameter (PenCommand           =  3)
      parameter (ScaleCommand         =  4)
      parameter (PatternCommand       =  5)
      parameter (ColorCommand         =  6)
      parameter (PolylinePointCommand =  7)
      parameter (PolylineDrawCommand  =  8)
      parameter (MinClipCommand       =  9)
      parameter (MaxClipCommand       = 10)
C
      Integer Page_Portrait, 
     &        Page_Landscape
C
      parameter (Page_Portrait        = 0)
      parameter (Page_Landscape       = 1)
C
      LOGICAL   LPRIM_OPEN,
     &          LGW_GEN, LGW_OPEN, LGW_COLOR, LGW_REVVIDEO, 
     &          LGW_CHANGED, LGW_RESIZE,
     &          LPS_GEN, LPS_OPEN, LPS_COLOR, 
     &          LPS_UNSTROKED, LPS_EXTERNAL, LPS_ONEFILE
      INTEGER   GX_LOC, GY_LOC, 
     &          GX_ORG, GY_ORG, 
     &          GX_SIZ, GY_SIZ,
     &          GX_CRS, GY_CRS,
     &          G_WIDTH, G_HEIGHT, G_DEPTH,  
     &          G_COLOR_CINDEX
      INTEGER   COLOR_RGB
      CHARACTER COLOR_NAME*22
      CHARACTER PS_FILE*80
C
C...Common storing current plot primitives
      Common /PL_PRIML/
     &       LPRIM_OPEN
      Common /PL_PRIMI/ 
     &       NPRIM_UNIT, 
     &       N_PRIM, N_WRIT, N_INCORE,
     &       I_TYP(Nstore_max), 
     &       I_PRIM(Nstore_max)
      Common /PL_PRIMR/ 
     &       X_PRIM(Nstore_max),
     &       Y_PRIM(Nstore_max)
C
C...Global data for plotting, clipping, etc.
      Common /PL_PLOTI/
     &       I_DEV, I_PAGETYPE,
     &       I_PEN, LST_PEN,
     &       I_PAT, LST_PAT,
     &       I_CLR, LST_CLR
      Common /PL_PLOTR/
     &       X_SCALE, Y_SCALE,
     &       X_ORG, Y_ORG, 
     &       X_LST, Y_LST,
     &       X_PAGE, Y_PAGE,
     &       X_WIND, Y_WIND,
     &       CLP_XMIN, CLP_XMAX, CLP_YMIN, CLP_YMAX,
     &       XOFF_ZOOM,YOFF_ZOOM,
     &       XFAC_ZOOM,YFAC_ZOOM
C
C...Global data for color definition
      Common /PL_COLORI/
     &       N_COLOR, N_SPECTRUM, IFIRST_SPECTRUM,
     &       COLOR_RGB(Ncolors_max)
      Common /PL_COLORC/
     &       COLOR_NAME(Ncolors_max)
C
C...Global data for X-window output
      Common /PL_XWINL/
     &       LGW_GEN, LGW_OPEN, LGW_COLOR, LGW_REVVIDEO, 
     &       LGW_CHANGED, LGW_RESIZE
      Common /PL_XWINI/
     &       GX_LOC, GY_LOC,
     &       GX_ORG, GY_ORG,
     &       GX_SIZ, GY_SIZ,
     &       GX_CRS, GY_CRS,
     &       G_WIDTH, G_HEIGHT, G_DEPTH,
     &       G_COLOR_CINDEX(Ncolors_max)
      Common /PL_XWINR/
     &       G_SCALE, G_SCRNFRAC
C
C...Global data for PostScript output
      Common /PL_PSL/
     &       LPS_GEN, LPS_OPEN, LPS_COLOR, LPS_UNSTROKED, 
     &       LPS_EXTERNAL, LPS_ONEFILE
      Common /PL_PSI/
     &       IPS_MODE, NPS_UNIT, N_PAGES, I_PAGES, N_VECS
      Common /PL_PSR/
     &       PX_ORG,  PY_ORG, PX_SIZ, PY_SIZ, P_SCALE,
     &       BB_XMIN, BB_XMAX, BB_YMIN, BB_YMAX,
     &       PS_LSTX, PS_LSTY
      Common /PL_PSC/
     &       PS_FILE


C
C   LPRIM_OPEN         T if primitives file is open
C   NPRIM_UNIT         Fortran logical unit for primitives file (unit# 0)
C   N_PRIM             Number of accumulated primitives
C   N_WRIT             Number of primitives written to logfile
C   N_INCORE           Number of primitives in buffer array
C   I_TYP(.)           type-of-primitive index
C   I_PRIM(.)          primitive data
C   X_PRIM(.)              "
C   Y_PRIM(.)              "
C
C   I_DEV              "Device" index, specifies X-graphics, PostScript output
C   I_PAGETYPE        = Page_Landscape or Page_Portrait
C   I_PEN, LST_PEN      current and previous pen thickness
C   I_PAT, LST_PAT      current and previous pen pattern
C   I_CLR, LST_CLR      current and previous color
C
C   X_SCALE,Y_SCALE     absolute-unit/user-unit scale factors
C   X_ORG, Y_ORG        user x,y-axis origin in absolute coordinates
C   X_LST, Y_LST        last pen location  in absolute coordinates
C
C   X_PAGE, Y_PAGE      plot page size in absolute units (typ. 11.0"x8.5")
C   X_WIND, Y_WIND      X-window size in absolute units
C                         (will not exceed X_PAGE,Y_PAGE upon window resizing)
C
C   CLP_XMIN, CLP_XMAX  user-specified clipping limits
C   CLP_YMIN, CLP_YMAX  (in absolute coordinates)
C
C   XOFF_ZOOM           zoom offsets
C   YOFF_ZOOM
C   XFAC_ZOOM           zoom scaling factors
C   YFAC_ZOOM
C
C   N_COLOR             total number of defined colors        1..i..N_COLORS
C   N_SPECTRUM          number of defined colors in Spectrum  0..s..N_SPECTRUM
C   IFIRST_SPECTRUM     gives index i of first Spectrum color
C   COLOR_RGB(i)        rgb color index
C   COLOR_NAME(i)       color name string
C
C   LGW_GEN             T if X-window graphics are to be generated
C   LGW_OPEN            T is X-window is currently open
C   LGW_COLOR           T if X-window has color capability
C   LGW_RESIZE          T if X-window is to be resized 
C   LGW_REVVIDEO        T if X-window is in reverse-video (swap white,black)
C
C   GX_LOC, GY_LOC      location of upper-left window corner in screen pixels
C   GX_ORG, GY_ORG      user-specified origin in window pixels
C   GX_SIZ, GY_SIZ      window size in pixels
C   GX_CRS, GY_CRS      user-specified cursor location
C
C   G_SCALE             # pixels / user plot unit
C   G_SCRNFRAC          fraction of screen taken up by X-window on opening
C   G_WIDTH             pixel width  of root X window display
C   G_HEIGHT            pixel height of root X window display
C   G_DEPTH             color bit depth of screen
C   G_COLOR_CINDEX(i)   X-colormap index of Xplot11 color i
C
C   LPS_GEN             T if PostScript output is to be generated
C   LPS_OPEN            T is PostScript file is currently open
C   LPS_COLOR           T if color PostScript is to be generated
C   LPS_UNSTROKED       T if current PostScript page has not been stroked
C   LPS_EXTERNAL        T if postscript file opened/closed outside of Xplot11
C   LPS_ONEFILE         T if one postscript file used for each plot, otherwise
C                         separate numbered plot files will be used for each
C                         plot
C
C   IPS_MODE            0 if Portrait PostScript, 1 if Lansdcape PostScript
C
C   PX_ORG, PY_ORG      location of user-specified origin (in points)
C   PX_SIZ, PY_SIZ      size of PostScript page (in points)
C   P_SCALE             # points / user plot unit
C
C   NPS_UNIT            Fortran logical unit of PostScript file
C   N_PAGES             Cumulative count of PS pages generated 
C   I_PAGES             Number of PS pages generated for current plot file
C   N_VECS              Number of PS vectors generated so far
C
C   BB_XMIN, BB_XMAX    PostScript Bounding Box limits
C   BB_YMIN, BB_YMAX
C
C   PS_LSTX, PS_LSTY    last PostScript move-to or line-to location
C   PS_FILE             PostScript output filename







