--*********************************************************************** --* PGPLOT Fortran Graphics Subroutine Library * --* Version 5.2.2 * --*********************************************************************** -- --*********************************************************************** --* * --* Copyright (c) 1983-2001 by the California Institute of Technology. * --* All rights reserved. * --* * --* For further information, contact: * --* Dr. T. J. Pearson * --* 105-24 California Institute of Technology, * --* Pasadena, California 91125, USA * --* * --* tjp@astro.caltech.edu * --* * --* The PGPLOT library, both binary and source, and the PGPLOT manual * --* `PGPLOT Graphics Subroutine Library' are copyrighted, but available * --* without fee for education, academic research and non-commercial * --* purposes. Ownership of the software remains with the California * --* Institute of Technology. Users may distribute the binary and * --* source code to third parties provided that the copyright notice and * --* this statement appears on all copies and that no charge is made for * --* such copies. Any entity wishing to integrate all or part of the * --* source code into a product for commercial use or resale should * --* contact the author at the above address. * --* * --* THE CALIFORNIA INSTITUTE OF TECHNOLOGY MAKES NO REPRESENTATIONS * --* ABOUT THE SUITABILITY OF THE SOFTWARE FOR ANY PURPOSE. IT IS * --* PROVIDED `AS IS' WITHOUT EXPRESS OR IMPLIED WARRANTY. THE * --* CALIFORNIA INSTITUTE OF TECHNOLOGY SHALL NOT BE LIABLE FOR ANY * --* DAMAGES SUFFERED BY THE USER OF THIS SOFTWARE. * --* * --* The software may have been developed under agreements between the * --* California Institute of Technology and the Federal Government which * --* entitle the Government to certain rights. * --* * --*********************************************************************** -- -- Interface written 1997-2017 by -- Martin J. Stift -- Associate Professor (retired) -- e-mail: stift@ada2012.eu -- -- This interface is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2 of the License, or -- (at your option) any later version. -- -- This interface is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ------------------------------------------------------------------------ WITH Interfaces.Fortran; USE Interfaces.Fortran; PACKAGE Pg_interface IS -- specify directory where libpghelp.a and libpgplot.a are located -- to be replaced by the actual location PRAGMA Linker_Options ("-L/aengus/stift/latest/pg_plot"); PRAGMA Linker_Options ("-lpghelp"); PRAGMA Linker_Options ("-lpgplot"); -- version for Ubuntu 12.04 LTS 64bit -- -- specify directory for libg2c.a -- libXm.a or libXm.so -- libX11.a or libX11.so -- libm.a or libm.so PRAGMA Linker_Options ("-L/usr/lib"); PRAGMA Linker_Options ("-lf2c"); PRAGMA Linker_Options ("-L/usr/lib/x86_64-linux-gnu"); PRAGMA Linker_Options ("-lX11"); PRAGMA Linker_Options ("-lm"); TYPE Pg_integer_arr_type IS ARRAY (Integer RANGE <>) OF Integer; TYPE Pg_real_arr_type IS ARRAY (Integer RANGE <>) OF Real; TYPE Pg_Integer_Matrix_Type IS ARRAY (Integer RANGE <>, Integer RANGE <>) OF Integer; PRAGMA Convention (Fortran, Pg_Integer_Matrix_Type); TYPE Pg_Real_Matrix_Type IS ARRAY (Integer RANGE <>, Integer RANGE <>) OF Real; PRAGMA Convention (Fortran, Pg_Real_Matrix_Type); TYPE Plot_access_type IS ACCESS PROCEDURE (Visible : IN Integer; X : IN Real; Y : IN Real; Z : IN Real ); TYPE One_param_function_access IS ACCESS FUNCTION (T : Real) RETURN Real; -- PGSAVE -- save PGPLOT attributes PROCEDURE Pg_Save; PRAGMA Import (FORTRAN, Pg_Save, "pgsave_"); -- PGUNSA -- restore PGPLOT attributes PROCEDURE Pg_Unsave; PRAGMA Import (FORTRAN, Pg_Unsave, "pgsave_"); -- PGPAGE -- advance to new page -- PGADVANCE -- non-standard alias for PGPAGE PROCEDURE Pg_Advance_To_New_Page; PRAGMA Import (FORTRAN, Pg_Advance_To_New_Page, "pgpage_"); -- PGARRO -- draw an arrow PROCEDURE Pg_Draw_Arrow (X1 : IN Real; Y1 : IN Real; X2 : IN Real; Y2 : IN Real); PRAGMA Import (FORTRAN, Pg_Draw_Arrow, "pgarro_"); -- PGASK -- control new page prompting PROCEDURE Pg_Control_Page_Prompting (Flag : IN Boolean); PRAGMA Import (FORTRAN, Pg_Control_Page_Prompting, "pgask_"); -- PGBAND -- read cursor position, with anchor PROCEDURE Pg_Read_Cursor_Position_Anchor (Istat : OUT Integer; Mode : IN Integer; Posn : IN Integer; Xref : IN Real; Yref : IN Real; X : IN OUT Real; Y : IN OUT Real; Ch : OUT CHARACTER_set); PRAGMA Import (FORTRAN, Pg_Read_Cursor_Position_Anchor, "pgband_h__"); -- PGBBUF -- begin batch of output (buffer) PROCEDURE Pg_Begin_Buffer; PRAGMA Import (FORTRAN, Pg_Begin_Buffer, "pgbbuf_"); -- PGBEG -- begin PGPLOT, open output device FUNCTION Pg_Begin (Unit : Integer; File : Fortran_Character; Nxsub : Integer; Nysub : Integer ) RETURN Integer; FUNCTION Pg_Begin_h (Unit : Integer; File : Fortran_Character; L : Integer; Nxsub : Integer; Nysub : Integer ) RETURN Integer; PRAGMA Import (FORTRAN, Pg_Begin_h, "pgbeg_h__"); -- PGBEG -- begin PGPLOT, open output device PROCEDURE Pg_Begin (Status : OUT Integer; Unit : IN Integer; File : IN Fortran_Character; Nxsub : IN Integer; Nysub : IN Integer ); -- PGBIN -- histogram of binned data PROCEDURE Pg_Draw_Histogram_Binned (Nbin : IN Integer; X : IN Real; Data : IN Real; Center : IN Boolean); PRAGMA Import (FORTRAN, Pg_Draw_Histogram_Binned, "pgbin_"); -- PGBOX -- draw labeled frame around viewport PROCEDURE Pg_Draw_Box (XOPT : IN Fortran_character; XTICK : IN Real; NXSUB : IN Integer; YOPT : IN Fortran_character; YTICK : IN Real; NYSUB : IN Integer ); PROCEDURE Pg_Draw_Box_h (XOPT : IN Fortran_character; LX : IN Integer; XTICK : IN Real; NXSUB : IN Integer; YOPT : IN Fortran_character; LY : IN Integer; YTICK : IN Real; NYSUB : IN Integer ); PRAGMA Import (FORTRAN, Pg_Draw_Box_h, "pgbox_h__"); -- PGCIRC -- draw a filled or outline circle PROCEDURE Pg_Draw_Circle (Xcent : IN Real; Ycent : IN Real; Radius : IN Real); PRAGMA Import (FORTRAN, Pg_Draw_Circle, "pgcirc_"); -- PGCLOS -- close the selected graphics device PROCEDURE Pg_Close; PRAGMA Import (FORTRAN, Pg_Close, "pgclos_"); -- PGCONB -- contour map of a 2D data array, with blanking PROCEDURE Pg_Contour_b (A : IN Pg_Real_Matrix_Type; Idim : IN Integer; Jdim : IN Integer; I1 : IN Integer; I2 : IN Integer; J1 : IN Integer; J2 : IN Integer; C : IN Pg_real_arr_type; Nc : IN Integer; Tr : IN Pg_real_arr_type; Blank : IN Real ); PRAGMA Import (FORTRAN, Pg_Contour_b, "pgconb_"); -- PGCONL -- label contour map of a 2D data array PROCEDURE Pg_Contour_l (A : IN Pg_Real_Matrix_Type; Idim : IN Integer; Jdim : IN Integer; I1 : IN Integer; I2 : IN Integer; J1 : IN Integer; J2 : IN Integer; C : IN Pg_real_arr_type; Tr : IN Pg_real_arr_type; Label : IN Fortran_character; Intval : IN Integer; Minint : IN Integer ); PROCEDURE Pg_Contour_l_h (A : IN Pg_Real_Matrix_Type; Idim : IN Integer; Jdim : IN Integer; I1 : IN Integer; I2 : IN Integer; J1 : IN Integer; J2 : IN Integer; C : IN Pg_real_arr_type; Tr : IN Pg_real_arr_type; Label : IN Fortran_character; L : IN Integer; Intval : IN Integer; Minint : IN Integer ); PRAGMA Import (FORTRAN, Pg_Contour_l_h, "pgconl_h__"); -- PGCONS -- contour map of a 2D data array (fast algorithm) PROCEDURE Pg_Contour_s (A : IN Pg_Real_Matrix_Type; IDIM : IN Integer; JDIM : IN Integer; I1 : IN Integer; I2 : IN Integer; J1 : IN Integer; J2 : IN Integer; C : IN Pg_real_arr_type; NC : IN Integer; TR : IN Pg_real_arr_type ); PRAGMA Import (FORTRAN, Pg_Contour_s, "pgcons_"); -- PGCONT -- contour map of a 2D data array (contour-following) PROCEDURE Pg_Contour (A : IN Pg_Real_Matrix_Type; IDIM : IN Integer; JDIM : IN Integer; I1 : IN Integer; I2 : IN Integer; J1 : IN Integer; J2 : IN Integer; C : IN Pg_real_arr_type; NC : IN Integer; TR : IN Pg_real_arr_type ); PRAGMA Import (FORTRAN, Pg_Contour, "pgcont_"); -- PGCONX -- contour map of a 2D data array (non rectangular) PROCEDURE Pg_Contour_x (A : IN Pg_Real_Matrix_Type; Idim : IN Integer; Jdim : IN Integer; I1 : IN Integer; I2 : IN Integer; J1 : IN Integer; J2 : IN Integer; C : IN Pg_real_arr_type; NC : IN Integer; PLOT : IN Plot_access_type ); PRAGMA Import (FORTRAN, Pg_Contour_x, "pgconx_"); -- PGCTAB -- install the color table to be used by PGIMAG PROCEDURE Pg_Install_Color_Table (L : IN Pg_real_arr_type; R : IN Pg_real_arr_type; G : IN Pg_real_arr_type; B : IN Pg_real_arr_type; Nc : IN Integer; Contra : IN Real; Bright : IN Real ); PRAGMA Import (FORTRAN, Pg_Install_Color_Table, "pgctab_"); -- PGCURS -- read cursor position PROCEDURE Pg_Read_Cursor_Position (X : IN OUT Real; Y : IN OUT Real; Ch : OUT CHARACTER_set); PRAGMA Import (FORTRAN, Pg_Read_Cursor_Position, "pgcurs_"); -- PGDRAW -- draw a line from the current pen position to a point PROCEDURE Pg_Draw_Line (X : IN Real; Y : IN Real); PRAGMA Import (FORTRAN, Pg_Draw_Line, "pgdraw_"); -- PGEBUF -- end batch of output (buffer) PROCEDURE Pg_End_Buffer; PRAGMA Import (FORTRAN, Pg_End_Buffer, "pgebuf_"); -- PGEND -- terminate PGPLOT PROCEDURE Pg_End; PRAGMA Import (FORTRAN, Pg_End, "pgend_"); -- PGENV -- set window and viewport and draw labeled frame PROCEDURE Pg_Set_Environment (Xmin : IN Real; Xmax : IN Real; Ymin : IN Real; Ymax : IN Real; Just : IN Integer; Axis : IN Integer); PRAGMA Import (FORTRAN, Pg_Set_Environment, "pgenv_"); -- PGERAS -- erase all graphics from current page PROCEDURE Pg_Erase; PRAGMA Import (FORTRAN, Pg_Erase, "pgeras_"); -- PGERR1 -- horizontal or vertical error bar PROCEDURE Pg_Draw_Error_Bar_Single (DIR : IN Integer; X : IN Real; Y : IN Real; E : IN Real; T : IN Real ); PRAGMA Import (FORTRAN, Pg_Draw_Error_Bar_Single, "pgerr1_"); -- PGERRB -- horizontal error bar PROCEDURE Pg_Draw_Error_Bar (DIR : IN Integer; N : IN Integer; X : IN Pg_real_arr_type; Y : IN Pg_real_arr_type; E : IN Pg_real_arr_type; T : IN Real ); PRAGMA Import (FORTRAN, Pg_Draw_Error_Bar, "pgerrb_"); -- PGERRX -- horizontal error bar PROCEDURE Pg_Draw_Error_Bar_Horizontal (N : IN Integer; X1 : IN Pg_real_arr_type; X2 : IN Pg_real_arr_type; Y : IN Pg_real_arr_type; T : IN Real ); PRAGMA Import (FORTRAN, Pg_Draw_Error_Bar_Horizontal, "pgerrx_"); -- PGERRY -- vertical error bar PROCEDURE Pg_Draw_Error_Bar_Vertical (N : IN Integer; X : IN Pg_real_arr_type; Y1 : IN Pg_real_arr_type; Y2 : IN Pg_real_arr_type; T : IN Real ); PRAGMA Import (FORTRAN, Pg_Draw_Error_Bar_Vertical, "pgerry_"); -- PGETXT -- erase text from graphics display PROCEDURE Pg_Erase_Text; PRAGMA Import (FORTRAN, Pg_Erase_Text, "pgetxt_"); -- GRWARN -- PROCEDURE Gr_warn (TEXT : IN String); -- PGFUNT -- function defined by X = F(T), Y = G(T) PROCEDURE Pg_Draw_Function_xy (FX : IN One_param_function_access; FY : IN One_param_function_access; N : IN Integer; TMIN : IN Real; TMAX : IN Real; PGFLAG : IN Integer ); -- PGFUNX -- function defined by Y = F(X) PROCEDURE Pg_Draw_Function_x (FY : IN One_param_function_access; N : IN Integer; XMIN : IN Real; XMAX : IN Real; PGFLAG : IN Integer ); -- PGFUNY -- function defined by X = F(Y) PROCEDURE Pg_Draw_Function_y (FX : IN One_param_function_access; N : IN Integer; YMIN : IN Real; YMAX : IN Real; PGFLAG : IN Integer ); -- PGGRAY -- gray-scale map of a 2D data array PROCEDURE Pg_Gray_Scale_Map (A : IN Pg_Real_Matrix_Type; Idim : IN Integer; Jdim : IN Integer; I1 : IN Integer; I2 : IN Integer; J1 : IN Integer; J2 : IN Integer; Fg : IN Real; Bg : IN Real; Tr : IN Pg_real_arr_type ); PRAGMA Import (FORTRAN, Pg_Gray_Scale_Map, "pggray_"); -- PGHI2D -- cross-sections through a 2D data array PROCEDURE Pg_Cross_Section_2D (DATA : IN Pg_Real_Matrix_Type; NXV : IN Integer; NYV : IN Integer; IX1 : IN Integer; IX2 : IN Integer; IY1 : IN Integer; IY2 : IN Integer; X : IN Pg_real_arr_type; IOFF : IN Integer; BIAS : IN Real; CENTER : IN Boolean; YLIMS : IN Pg_real_arr_type ); PRAGMA Import (FORTRAN, Pg_Cross_Section_2D, "pghi2d_"); -- PGHIST -- histogram of unbinned data PROCEDURE Pg_Draw_Histogram (N : IN Integer; DATA : IN Pg_real_arr_type; DATMIN : IN Real; DATMAX : IN Real; NBIN : IN Integer; PGFLAG : IN Integer ); PRAGMA Import (FORTRAN, Pg_Draw_Histogram, "pghist_"); -- PGIDEN -- write username, date, and time at bottom of plot PROCEDURE Pg_Identify; PRAGMA Import (FORTRAN, Pg_Identify, "pgiden_"); -- PGIMAG -- color image from a 2D data array PROCEDURE Pg_Color_Image_2D (A : IN Pg_Real_Matrix_Type; IDIM : IN Integer; JDIM : IN Integer; I1 : IN Integer; I2 : IN Integer; J1 : IN Integer; J2 : IN Integer; A1 : IN Real; A2 : IN Real; TR : IN Pg_real_arr_type ); PRAGMA Import (FORTRAN, Pg_Color_Image_2D, "pgimag_"); -- PGLAB -- write labels for x-axis, y-axis, and top of plot PROCEDURE Pg_Write_Label (XLBL : IN Fortran_character; YLBL : IN Fortran_character; TOPLBL : IN Fortran_character); PROCEDURE Pg_Write_Label_h (XLBL : IN Fortran_character; LX : Integer; YLBL : IN Fortran_character; LY : Integer; TOPLBL : IN Fortran_character; LT : Integer ); PRAGMA Import (FORTRAN, Pg_Write_Label_h, "pglab_h__"); -- PGLCUR -- draw a line using the cursor PROCEDURE Pg_Draw_Line_Cursor (MAXPT : IN Integer; NPT : IN OUT Integer; X : IN OUT Pg_real_arr_type; Y : IN OUT Pg_real_arr_type); PRAGMA Import (FORTRAN, Pg_Draw_Line_Cursor, "pglcur_"); -- PGLDEV -- list available device types PROCEDURE Pg_List_device; PRAGMA Import (FORTRAN, Pg_List_device, "pgldev_"); -- PGLEN -- Find length of a string in a variety of units PROCEDURE Pg_Find_String_Length (UNITS : IN Integer; STR : IN Fortran_character; XL : OUT Real; YL : OUT Real ); PROCEDURE Pg_Find_String_Length_h (UNITS : IN Integer; STR : IN Fortran_character; LX : IN Integer; XL : OUT Real; YL : OUT Real ); PRAGMA Import (FORTRAN, Pg_Find_String_Length_h, "pglen_h__"); -- PGLINE -- draw a polyline (curve defined by line-segments) PROCEDURE Pg_Draw_Polyline (N : IN Integer; XPTS : IN Pg_real_arr_type; YPTS : IN Pg_real_arr_type); PRAGMA Import (FORTRAN, Pg_Draw_Polyline, "pgline_"); -- PGMOVE -- move pen (change current pen position) PROCEDURE Pg_Move (X : IN Real; Y : IN Real); PRAGMA Import (FORTRAN, Pg_Move, "pgmove_"); -- PGMTXT -- write text at position relative to viewport PROCEDURE Pg_Write_Text_Relative (SIDE : IN Fortran_Character; DISP : IN Real; COORD : IN Real; FJUST : IN Real; TEXT : IN Fortran_Character); PROCEDURE Pg_Write_Text_Relative_h (SIDE : IN Fortran_Character; LS : IN Integer; DISP : IN Real; COORD : IN Real; FJUST : IN Real; TEXT : IN Fortran_Character; LT : IN Integer ); PRAGMA Import (FORTRAN, Pg_Write_Text_Relative_h, "pgmtxt_h__"); -- PGNCUR -- mark a set of points using the cursor (increasing order in x) PROCEDURE Pg_Mark_Points (MAXPT : IN Integer; NPT : IN OUT Integer; X : IN OUT Pg_real_arr_type; Y : IN OUT Pg_real_arr_type; SYMBOL : IN Integer ); PRAGMA Import (FORTRAN, Pg_Mark_Points, "pgncur_"); -- PGNUMB -- convert a number into a plottable character PROCEDURE Pg_Convert_Number (MM : IN Integer; PP : IN Integer; FORM : IN Integer; String : OUT Fortran_Character; NC : OUT Integer ); PRAGMA Import (FORTRAN, Pg_Convert_Number, "pgnumb_"); -- PGOLIN -- mark a set of points using the cursor (original order in x) PROCEDURE Pg_Mark_Points_Ordered (MAXPT : IN Integer; NPT : IN OUT Integer; X : IN OUT Pg_real_arr_type; Y : IN OUT Pg_real_arr_type; SYMBOL : IN Integer ); PRAGMA Import (FORTRAN, Pg_Mark_Points_ordered, "pgolin_"); -- PGOPEN -- open a graphics device FUNCTION Pg_Open (Device : Fortran_Character) RETURN Integer; FUNCTION Pg_Open_h (Device : Fortran_Character; L : Integer ) RETURN Integer; PRAGMA Import (FORTRAN, Pg_Open_h, "pgopen_h__"); -- PGOPEN -- open a graphics device PROCEDURE Pg_Open (Status : OUT Integer; Device : IN Fortran_Character); -- PGPANL -- switch to a different panel on the view surface PROCEDURE Pg_Switch_Panel (IX : IN Integer; IY : IN Integer); PRAGMA Import (FORTRAN, Pg_Switch_Panel, "pgpanl_"); -- PGPAP -- change the size of the view surface ("paper size") -- PGPAPER -- non-standard alias for PGPAP PROCEDURE Pg_Change_View_Surface_Size (WIDTH : IN Real; ASPECT : IN Real); PRAGMA Import (FORTRAN, Pg_Change_View_Surface_Size, "pgpap_"); -- PGPIXL -- draw pixels PROCEDURE Pg_Draw_Pixel (IA : IN Pg_Integer_Matrix_Type; IDIM : IN Integer; JDIM : IN Integer; I1 : IN Integer; I2 : IN Integer; J1 : IN Integer; J2 : IN Integer; X1 : IN Real; X2 : IN Real; Y1 : IN Real; Y2 : IN Real ); PRAGMA Import (FORTRAN, Pg_Draw_Pixel, "pgpixl_"); -- PGPNTS -- draw one or more graph markers, not all the same PROCEDURE Pg_Draw_Points_Various (N : IN Integer; XPTS : IN Pg_real_arr_type; YPTS : IN Pg_real_arr_type; SYMBOL : IN Integer; NS : IN Pg_integer_arr_type); PRAGMA Import (FORTRAN, Pg_Draw_Points_Various, "pgpnts_"); -- PGPPOLY -- fill a polygonal area with shading PROCEDURE Pg_Fill_Polygon (N : IN Integer; XPTS : IN Pg_real_arr_type; YPTS : IN Pg_real_arr_type); PRAGMA Import (FORTRAN, Pg_Fill_Polygon, "pgpoly_"); -- PGPT -- draw several graph markers PROCEDURE Pg_Draw_Points (N : IN Integer; XPTS : IN Pg_real_arr_type; YPTS : IN Pg_real_arr_type; SYMBOL : IN Integer ); PRAGMA Import (FORTRAN, Pg_Draw_Points, "pgpt_"); -- PGPT1 -- draw one graph marker PROCEDURE Pg_Draw_Marker (XPTS : IN Real; YPTS : IN Real; SYMBOL : IN Integer); PRAGMA Import (FORTRAN, Pg_Draw_Marker, "pgpt1_"); -- PGPTXT -- write text at arbitrary position and angle PROCEDURE Pg_Write_Text_Arbitrary (X : IN Real; Y : IN Real; ANGLE : IN Real; FJUST : IN Real; TEXT : IN Fortran_Character); PROCEDURE Pg_Write_Text_Arbitrary_h (X : IN Real; Y : IN Real; ANGLE : IN Real; FJUST : IN Real; TEXT : IN Fortran_Character; LT : IN Integer ); PRAGMA Import (FORTRAN, Pg_Write_Text_Arbitrary_h, "pgptxt_h__"); -- PGQAH -- inquire arrow-head style PROCEDURE Pg_Inquire_Arrow_Head_Style (FS : OUT Integer; ANGLE : OUT Real; VENT : OUT Real ); PRAGMA Import (FORTRAN, Pg_Inquire_Arrow_Head_Style, "pgqah_"); -- PGQCF -- inquire character font PROCEDURE Pg_Inquire_Character_Font (FONT : OUT Integer); PRAGMA Import (FORTRAN, Pg_Inquire_Character_Font, "pgqcf_"); -- PGQCH -- inquire character height PROCEDURE Pg_Inquire_Character_Height (SIZE : OUT Real); PRAGMA Import (FORTRAN, Pg_Inquire_Character_Height, "pgqch_"); -- PGQCI -- inquire color index PROCEDURE Pg_Inquire_Color_Index (CI : OUT Integer); PRAGMA Import (FORTRAN, Pg_Inquire_Color_Index, "pgqci_"); -- PGQCIR -- inquire color index range PROCEDURE Pg_Inquire_Color_Index_Range (ICILO : OUT Integer; ICIHI : OUT Integer); PRAGMA Import (FORTRAN, Pg_Inquire_Color_Index_Range, "pgqcir_"); -- PGQCLP -- inquire clipping status PROCEDURE Pg_Inquire_Clipping_Status (STATE : OUT Integer); PRAGMA Import (FORTRAN, Pg_Inquire_Clipping_Status, "pgqclp_"); -- PGQCOL -- inquire color capability PROCEDURE Pg_Inquire_Color_Capability (CI1 : OUT Integer; CI2 : OUT Integer); PRAGMA Import (FORTRAN, Pg_Inquire_Color_Capability, "pgqcol_"); -- PGQCR -- inquire color representation PROCEDURE Pg_Inquire_Color_Representation (CI : IN Integer; CR : OUT Integer; CG : OUT Integer; CB : OUT Integer); PRAGMA Import (FORTRAN, Pg_Inquire_Color_Representation, "pgqcr_"); -- PGQCS -- inquire character height in a variety of units PROCEDURE Pg_Inquire_Character_Height_Various (UNITS : IN Integer; XCH : OUT Real; YCH : OUT Real ); PRAGMA Import (FORTRAN, Pg_Inquire_Character_Height_Various, "pgqcs_"); -- PGQFS -- inquire fill-area style PROCEDURE Pg_Inquire_Fill_Area_Style (FS : OUT Integer); PRAGMA Import (FORTRAN, Pg_Inquire_Fill_Area_Style, "pgqfs_"); -- PGQHS -- inquire hatching style PROCEDURE Pg_Inquire_Hatching_Style (ANGLE : OUT Real; SEPN : OUT Real; PHASE : OUT Real); PRAGMA Import (FORTRAN, Pg_Inquire_Hatching_Style, "pgqhs_"); -- PGQID -- inquire current device identifier PROCEDURE Pg_Inquire_Current_Device_Identifier (ID : OUT Integer); PRAGMA Import (FORTRAN, Pg_Inquire_Current_Device_Identifier, "pgqid_"); -- PGQITF -- inquire image transfer function PROCEDURE Pg_Inquire_Image_Transfer_Function (ITF : OUT Integer); PRAGMA Import (FORTRAN, Pg_Inquire_Image_Transfer_Function, "pgqitf_"); -- PGQLS -- inquire line style PROCEDURE Pg_Inquire_Line_Style (LS : OUT Integer); PRAGMA Import (FORTRAN, Pg_Inquire_Line_Style, "pgqls_"); -- PGQLW -- inquire line width PROCEDURE Pg_Inquire_Line_Width (LW : OUT Integer); PRAGMA Import (FORTRAN, Pg_Inquire_Line_Width, "pgqlw_"); -- PGQNDT -- inquire number of available device types PROCEDURE Pg_Inquire_Number_of_Device_Types (N : OUT Integer); PRAGMA Import (FORTRAN, Pg_Inquire_Number_of_Device_Types, "pgqndt_"); -- PGQPOS -- inquire current pen position PROCEDURE Pg_Inquire_Pen_Position (X : OUT Real; Y : OUT Real); PRAGMA Import (FORTRAN, Pg_Inquire_Pen_Position, "pgqpos_"); -- PGQTBG -- inquire text background color index PROCEDURE Pg_Inquire_Text_Background_Color_Index (TBCI : OUT Integer); PRAGMA Import (FORTRAN, Pg_Inquire_Text_Background_Color_Index, "pgqtbg_"); -- PGQVP -- inquire viewport size and position PROCEDURE Inquire_Viewport_Size_and_Position (UNITS : OUT Integer; X1 : OUT Real; X2 : OUT Real; Y1 : OUT Real; Y2 : OUT Real ); PRAGMA Import (FORTRAN, Inquire_Viewport_Size_and_Position, "pgqvp_"); -- PGSCF -- set character font PROCEDURE Pg_Set_Character_Font (JF : IN Integer); PRAGMA Import (FORTRAN, Pg_Set_Character_Font, "pgscf_"); -- PGSCH -- set character height PROCEDURE Pg_Set_Character_Height (SIZE : IN Real); PRAGMA Import (FORTRAN, Pg_Set_Character_Height, "pgsch_"); -- PGSCI -- set color index PROCEDURE Pg_Set_Color_Index (CI: IN Integer); PRAGMA Import (FORTRAN, Pg_Set_Color_Index, "pgsci_"); -- PGSCIR -- set color index range PROCEDURE Pg_Set_Color_Index_Range (ICILO : IN Integer; ICIHI : IN Integer); PRAGMA Import (FORTRAN, Pg_Set_Color_Index_Range, "pgscir_"); -- PGSCR -- set color representation PROCEDURE Pg_Set_Color_Representation (CI : IN Integer; CR : IN Real; CG : IN Real; CB : IN Real ); PRAGMA Import (FORTRAN, Pg_Set_Color_Representation, "pgscr_"); -- PGSFS -- set fill-area style PROCEDURE Pg_Set_Fill_Area_Style (FS : IN Integer); PRAGMA Import (FORTRAN, Pg_Set_Fill_Area_Style, "pgsfs_"); -- PGSLS -- set line style PROCEDURE Pg_Set_Line_Style (LS : IN Integer); PRAGMA Import (FORTRAN, Pg_Set_Line_Style, "pgsls_"); -- PGSLW -- set line width PROCEDURE Pg_Set_Line_Width (LW : IN Integer); PRAGMA Import (FORTRAN, Pg_Set_Line_Width, "pgslw_"); -- PGSTBG -- set text background color index PROCEDURE Pg_Set_Text_Background_Color_Index (TBCI : IN Integer); PRAGMA Import (FORTRAN, Pg_Set_Text_Background_Color_Index, "pgstbg_"); -- PGSWIN -- set window PROCEDURE Pg_Set_Window (X1 : IN Real; X2 : IN Real; Y1 : IN Real; Y2 : IN Real); PRAGMA Import (FORTRAN, Pg_Set_Window, "pgswin_"); -- PGSVP -- set viewport (normalized device coordinates) PROCEDURE Pg_Set_Viewport (XLEFT : IN Real; XRIGHT : IN Real; YBOT : IN Real; YTOP : IN Real); PRAGMA Import (FORTRAN, Pg_Set_Viewport, "pgsvp_"); -- PGSCRL -- scroll window PROCEDURE Pg_Scroll_Window (DX : IN Real; DY : IN Real); PRAGMA Import (FORTRAN, Pg_Scroll_Window, "pgscrl_"); -- PGSCLP -- enable or disable clipping at edge of viewport PROCEDURE Pg_Change_Clipping_State (STATE : IN Integer); PRAGMA Import (FORTRAN, Pg_Change_Clipping_State, "pgsclp_"); -- PGSLCT -- select an open graphics device PROCEDURE Pg_Select_Open_Graphics_Device (ID : IN Integer); PRAGMA Import (FORTRAN, Pg_Select_Open_Graphics_Device, "pgslct_"); -- PGSUBP -- subdivide view surface into panels PROCEDURE Pg_Subdivide_View_Surface (NXSUB : IN Integer; NYSUB : IN Integer); PRAGMA Import (FORTRAN, Pg_Subdivide_View_Surface, "pgsubp_"); -- PGUPDT -- update display PROCEDURE Pg_Update_Display; PRAGMA Import (FORTRAN, Pg_Update_Display, "pgupdt_"); -- PGVSIZ -- set viewport (inches) PROCEDURE Pg_Set_Viewport_Inches (XLEFT : IN Real; XRIGHT : IN Real; YBOT : IN Real; YTOP : IN Real); PRAGMA Import (FORTRAN, Pg_Set_Viewport_Inches, "pgvsiz_"); -- PGSHS -- set hatching style PROCEDURE Pg_Set_Hatching_Style (ANGLE : IN Real; SEPN : IN Real; PHASE : IN Real); PRAGMA Import (FORTRAN, Pg_Set_Hatching_Style, "pgshs_"); -- PGSITF -- set image transfer function PROCEDURE Pg_Set_Image_Transfer_Function (ITF : IN Integer); PRAGMA Import (FORTRAN, Pg_Set_Image_Transfer_Function, "pgsitf_"); -- PGVSTD -- set standard (default) viewport -- PGVSTAND -- non-standard alias for PGVSTD PROCEDURE Pg_Set_Viewport_Standard; PRAGMA Import (FORTRAN, Pg_Set_Viewport_Standard, "pgvstd_"); -- PGWNAD -- set window and adjust viewport to same aspect ratio PROCEDURE Pg_Set_Window_And_Adjust_Viewport (X1 : IN Real; X2 : IN Real; Y1 : IN Real; Y2 : IN Real); PRAGMA Import (FORTRAN, Pg_Set_Window_And_Adjust_Viewport, "pgwnad_"); -- PGWEDG -- annotate an image plot with a wedge PROCEDURE Pg_Annotate_with_Wedge (SIDE : IN String; DISP : IN Real; WIDTH : IN Real; FG : IN Real; BG : IN Real; LABEL : IN String); PROCEDURE Pg_Annotate_with_Wedge_h (SIDE : IN String; LS : IN Integer; DISP : IN Real; WIDTH : IN Real; FG : IN Real; BG : IN Real; LABEL : IN String; LL : IN Integer); PRAGMA Import (FORTRAN, Pg_Annotate_with_Wedge_h, "pgwedg_h__"); --------------------------------------------------------------- -- renaming declarations for compatibility of names with -- original PGPLOT names --------------------------------------------------------------- PROCEDURE Pg_Page RENAMES Pg_Advance_To_New_Page; PROCEDURE Pg_Advance RENAMES Pg_Advance_To_New_Page; PROCEDURE Pg_Arro (X1 : IN Real; Y1 : IN Real; X2 : IN Real; Y2 : IN Real) RENAMES Pg_Draw_Arrow; PROCEDURE Pg_Ask (Flag : IN Boolean) RENAMES Pg_Control_Page_Prompting; PROCEDURE Pg_Band (Istat : OUT Integer; Mode : IN Integer; Posn : IN Integer; Xref : IN Real; Yref : IN Real; X : IN OUT Real; Y : IN OUT Real; Ch : OUT CHARACTER_set) RENAMES Pg_Read_Cursor_Position_Anchor; PROCEDURE Pg_Bbuf RENAMES Pg_Begin_Buffer; FUNCTION Pg_Beg (Unit : Integer; File : Fortran_Character; Nxsub : Integer; Nysub : Integer ) RETURN Integer RENAMES Pg_Begin; PROCEDURE Pg_Beg (Status : OUT Integer; Unit : IN Integer; File : IN Fortran_Character; Nxsub : IN Integer; Nysub : IN Integer ) RENAMES Pg_Begin; PROCEDURE Pg_Bin (Nbin : IN Integer; X : IN Real; Data : IN Real; Center : IN Boolean) RENAMES Pg_Draw_Histogram_Binned; PROCEDURE Pg_Box (XOPT : IN Fortran_character; XTICK : IN Real; NXSUB : IN Integer; YOPT : IN Fortran_character; YTICK : IN Real; NYSUB : IN Integer ) RENAMES Pg_Draw_Box; PROCEDURE Pg_Circ (Xcent : IN Real; Ycent : IN Real; Radius : IN Real) RENAMES Pg_Draw_Circle; PROCEDURE Pg_Clos RENAMES Pg_Close; PROCEDURE Pg_Conb (A : IN Pg_Real_Matrix_Type; Idim : IN Integer; Jdim : IN Integer; I1 : IN Integer; I2 : IN Integer; J1 : IN Integer; J2 : IN Integer; C : IN Pg_real_arr_type; Nc : IN Integer; Tr : IN Pg_real_arr_type; Blank : IN Real ) RENAMES Pg_Contour_b; PROCEDURE Pg_Conl (A : IN Pg_Real_Matrix_Type; Idim : IN Integer; Jdim : IN Integer; I1 : IN Integer; I2 : IN Integer; J1 : IN Integer; J2 : IN Integer; C : IN Pg_real_arr_type; Tr : IN Pg_real_arr_type; Label : IN Fortran_character; Intval : IN Integer; Minint : IN Integer ) RENAMES Pg_Contour_l; PROCEDURE Pg_Cons (A : IN Pg_Real_Matrix_Type; IDIM : IN Integer; JDIM : IN Integer; I1 : IN Integer; I2 : IN Integer; J1 : IN Integer; J2 : IN Integer; C : IN Pg_real_arr_type; NC : IN Integer; TR : IN Pg_real_arr_type ) RENAMES Pg_Contour_s; PROCEDURE Pg_Cont (A : IN Pg_Real_Matrix_Type; IDIM : IN Integer; JDIM : IN Integer; I1 : IN Integer; I2 : IN Integer; J1 : IN Integer; J2 : IN Integer; C : IN Pg_real_arr_type; NC : IN Integer; TR : IN Pg_real_arr_type ) RENAMES Pg_Contour; PROCEDURE Pg_Conx (A : IN Pg_Real_Matrix_Type; Idim : IN Integer; Jdim : IN Integer; I1 : IN Integer; I2 : IN Integer; J1 : IN Integer; J2 : IN Integer; C : IN Pg_real_arr_type; NC : IN Integer; PLOT : IN Plot_access_type ) RENAMES Pg_Contour_x; PROCEDURE Pg_Ctab (L : IN Pg_real_arr_type; R : IN Pg_real_arr_type; G : IN Pg_real_arr_type; B : IN Pg_real_arr_type; Nc : IN Integer; Contra : IN Real; Bright : IN Real ) RENAMES Pg_Install_Color_Table; PROCEDURE Pg_Curs (X : IN OUT Real; Y : IN OUT Real; Ch : OUT CHARACTER_set) RENAMES Pg_Read_Cursor_Position; PROCEDURE Pg_Draw (X : IN Real; Y : IN Real ) RENAMES Pg_Draw_Line; PROCEDURE Pg_Ebuf RENAMES Pg_End_Buffer; PROCEDURE Pg_Env (Xmin : IN Real; Xmax : IN Real; Ymin : IN Real; Ymax : IN Real; Just : IN Integer; Axis : IN Integer) RENAMES Pg_Set_Environment; PROCEDURE Pg_Eras RENAMES Pg_Erase; PROCEDURE Pg_Errb (DIR : IN Integer; N : IN Integer; X : IN Pg_real_arr_type; Y : IN Pg_real_arr_type; E : IN Pg_real_arr_type; T : IN Real ) RENAMES Pg_Draw_Error_Bar; PROCEDURE Pg_Errx (N : IN Integer; X1 : IN Pg_real_arr_type; X2 : IN Pg_real_arr_type; Y : IN Pg_real_arr_type; T : IN Real ) RENAMES Pg_Draw_Error_Bar_Horizontal; PROCEDURE Pg_Erry (N : IN Integer; X : IN Pg_real_arr_type; Y1 : IN Pg_real_arr_type; Y2 : IN Pg_real_arr_type; T : IN Real ) RENAMES Pg_Draw_Error_Bar_Vertical; PROCEDURE Pg_Etxt RENAMES Pg_Erase_Text; PROCEDURE Pg_Gray (A : IN Pg_Real_Matrix_Type; Idim : IN Integer; Jdim : IN Integer; I1 : IN Integer; I2 : IN Integer; J1 : IN Integer; J2 : IN Integer; Fg : IN Real; Bg : IN Real; Tr : IN Pg_real_arr_type ) RENAMES Pg_Gray_Scale_Map; PROCEDURE Pg_Hi2d (DATA : IN Pg_Real_Matrix_Type; NXV : IN Integer; NYV : IN Integer; IX1 : IN Integer; IX2 : IN Integer; IY1 : IN Integer; IY2 : IN Integer; X : IN Pg_real_arr_type; IOFF : IN Integer; BIAS : IN Real; CENTER : IN Boolean; YLIMS : IN Pg_real_arr_type ) RENAMES Pg_Cross_Section_2D; PROCEDURE Pg_Hist (N : IN Integer; DATA : IN Pg_real_arr_type; DATMIN : IN Real; DATMAX : IN Real; NBIN : IN Integer; PGFLAG : IN Integer ) RENAMES Pg_Draw_Histogram; PROCEDURE Pg_Iden RENAMES Pg_Identify; PROCEDURE Pg_Imag (A : IN Pg_Real_Matrix_Type; IDIM : IN Integer; JDIM : IN Integer; I1 : IN Integer; I2 : IN Integer; J1 : IN Integer; J2 : IN Integer; A1 : IN Real; A2 : IN Real; TR : IN Pg_real_arr_type ) RENAMES Pg_Color_Image_2D; PROCEDURE Pg_Lab (XLBL : IN Fortran_character; YLBL : IN Fortran_character; TOPLBL : IN Fortran_character) RENAMES Pg_Write_Label; PROCEDURE Pg_Lcur (MAXPT : IN Integer; NPT : IN OUT Integer; X : IN OUT Pg_real_arr_type; Y : IN OUT Pg_real_arr_type) RENAMES Pg_Draw_Line_Cursor; PROCEDURE Pg_Ldev RENAMES Pg_List_device; PROCEDURE Pg_Len (UNITS : IN Integer; STR : IN Fortran_character; XL : OUT Real; YL : OUT Real ) RENAMES Pg_Find_String_Length; PROCEDURE Pg_Line (N : IN Integer; XPTS : IN Pg_real_arr_type; YPTS : IN Pg_real_arr_type) RENAMES Pg_Draw_Polyline; PROCEDURE Pg_Mtxt (SIDE : IN Fortran_Character; DISP : IN Real; COORD : IN Real; FJUST : IN Real; TEXT : IN Fortran_Character) RENAMES Pg_Write_Text_Relative; PROCEDURE Pg_Ncur (MAXPT : IN Integer; NPT : IN OUT Integer; X : IN OUT Pg_real_arr_type; Y : IN OUT Pg_real_arr_type; SYMBOL : IN Integer ) RENAMES Pg_Mark_Points; PROCEDURE Pg_Numb (MM : IN Integer; PP : IN Integer; FORM : IN Integer; String : OUT Fortran_Character; NC : OUT Integer ) RENAMES Pg_Convert_Number; PROCEDURE Pg_Olin (MAXPT : IN Integer; NPT : IN OUT Integer; X : IN OUT Pg_real_arr_type; Y : IN OUT Pg_real_arr_type; SYMBOL : IN Integer ) RENAMES Pg_Mark_Points_ordered; PROCEDURE Pg_Panl (IX : IN Integer; IY : IN Integer) RENAMES Pg_Switch_Panel; PROCEDURE Pg_Pap (WIDTH : IN Real; ASPECT : IN Real) RENAMES Pg_Change_View_Surface_Size; PROCEDURE Pg_Pixl (IA : IN Pg_Integer_Matrix_Type; IDIM : IN Integer; JDIM : IN Integer; I1 : IN Integer; I2 : IN Integer; J1 : IN Integer; J2 : IN Integer; X1 : IN Real; X2 : IN Real; Y1 : IN Real; Y2 : IN Real ) RENAMES Pg_Draw_Pixel; PROCEDURE Pg_Pnts (N : IN Integer; XPTS : IN Pg_real_arr_type; YPTS : IN Pg_real_arr_type; SYMBOL : IN Integer; NS : IN Pg_integer_arr_type) RENAMES Pg_Draw_Points_Various; PROCEDURE Pg_Poly (N : IN Integer; XPTS : IN Pg_real_arr_type; YPTS : IN Pg_real_arr_type) RENAMES Pg_Fill_Polygon; PROCEDURE Pg_Ptxt (X : IN Real; Y : IN Real; ANGLE : IN Real; FJUST : IN Real; TEXT : IN Fortran_Character) RENAMES Pg_Write_Text_Arbitrary; PROCEDURE Pg_Sls (LS : IN Integer) RENAMES Pg_Set_Line_Style; END pg_interface;