/usr/share/ncarg/hluex/xyplot/xy11f.f is in libncarg-data 6.3.0-6build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 | C
C $Id: xy11f.f,v 1.12 1998-11-24 17:06:24 haley Exp $
C
C****************************************************************
C *
C Copyright (C) 1995 *
C University Corporation for Atmospheric Research *
C All Rights Reserved *
C *
C****************************************************************
C
C File: xy11f.f
C
C Author: Jeff Boote (converted to Fortran by Ed Stautler)
C National Center for Atmospheric Research
C PO 3000, Boulder, Colorado
C
C Date: Wed Mar 30 18:09:45 MST 1994
C
C Description: This example program demonstrates how to display
C your graphics to an X window, and then copy it
C into a meta file.
C
C
C Extern declarations for Types of objects that will be used
C
external NhlFAppClass
external NhlFCairoWindowWorkstationClass
external NhlFNcgmWorkstationClass
external NhlFXyPlotClass
external NhlFCoordArraysClass
integer appid
C
C Create data arrays to be plotted
C
real Temp(28)
real Pressure(28)
data (Temp(i), i = 1,28) /-13.500000,-10.500000,-5.500000,
%-3.100000,-1.300000,-6.700000,-12.900000,-13.100000,-17.700001,
%-16.900000,-21.299999,-37.099998,-40.099998,-41.900002,-42.099998,
%-62.700001,-59.299999,-60.700001,-52.099998,-55.099998,-55.900002,
%-63.500000,-57.900002,-60.500000,-58.099998,-60.900002,-54.900002,
%-57.299999 /
data (Pressure(i), i = 1,28) /835.000000,832.000000,827.000000,
%821.000000,791.000000,693.000000,627.000000,606.000000,560.000000,
%555.000000,500.000000,383.000000,355.000000,339.000000,314.000000,
%209.000000,192.000000,143.000000,111.000000,100.000000,95.300003,
%76.400002,62.599998,58.299999,47.299999,30.000000,27.200001,
%21.500000/
C
C Initialize the error return variable
C
data ierr / 0 /
C
C Initialize the HLU library
C
call NhlFInitialize
call NhlFCreate(appid,'xy11',NhlFAppClass,0,0,ierr)
C
C Create a ResList - This is filled with resource "Names" and
C "Values" to apply to an HLU object.
C
call NhlFRLCreate(list,'setrl')
C
C Fill the ResList with the resources for the X Workstation
C object - then create the X Workstation object.
C
call NhlFRLClear(list)
call NhlFRLSetInteger(list,'wkPause',1,ierr)
call NhlFCreate(ixwork,'myxwork',
+ NhlFCairoWindowWorkstationClass,0,
% list,ierr)
C
C Fill the ResList with the resources for the NCGM Workstation
C object - then create the NCGM Workstation object.
C
call NhlFRLClear(list)
call NhlFRLSetString(list,'wkMetaName','xy11f.ncgm',ierr)
call NhlFCreate(incgmwork,'myncgmwork',
% NhlFNcgmWorkstationClass,0,list,ierr)
C
C Fill the ResList with the resources for the CoordArrays
C object - then create the CoordArrays data object.
C This object is used to describe data to the HLU library.
C
call NhlFRLClear(list)
call NhlFRLSetFloatArray(list,'caXArray',Temp,28,ierr)
call NhlFRLSetFloatArray(list,'caYArray',Pressure,28,ierr)
call NhlFCreate(idata,'mydata',NhlFCoordArraysClass,0,list,
% ierr)
C
C Fill the ResList with the resources for the XyPlot object
C including the "Data" which is the object id for the
C CoordArrays object that was just created.
C
call NhlFRLClear(list)
call NhlFRLSetFloat(list,'vpXF',0.25,ierr)
call NhlFRLSetFloat(list,'vpYF',0.75,ierr)
call NhlFRLSetFloat(list,'vpWidthF',0.5,ierr)
call NhlFRLSetFloat(list,'vpHeightF',0.5,ierr)
call NhlFRLSetInteger(list,'xyCoordData',idata,ierr)
call NhlFRLSetInteger(list,'tiMainOn',1,ierr)
call NhlFRLSetInteger(list,'tiXAxisOn',1,ierr)
call NhlFRLSetInteger(list,'tiYAxisOn',1,ierr)
call NhlFCreate(ixyplot,'myxyplot',NhlFXyPlotClass,ixwork,
% list,ierr)
C
C We don't need the ResList any more - so destroy it. Memory
C is allocated for each reslist so it is important to destroy
C them when you are done with them.
C
call NhlFRLDestroy(list)
C
C Draw the XyPlot - It was created as a child of the X Workstation
C so it will draw to the X Workstation's device (Window). Then
C Call "Frame" for the X Workstation - this flushes the graphics
C buffers so all the graphics are displayed - and since we
C set the wkPause resource to True the program will pause on
C the frame call until the user "clicks" in the Window.
C
call NhlFDraw(ixyplot,ierr)
call NhlFFrame(ixwork,ierr)
C
C Move the XyPlot to the Ncgm Workstation - This makes the
C XyPlot a child of the Ncgm Workstation so the XyPlot
C will draw to the Ncgm Workstations' device instead of the
C X Workstations device.
C
call NhlFChangeWorkstation(ixyplot,incgmwork,ierr)
C
C Draw the XyPlot - It is now a child of the Ncgm Workstation
C so it will draw to the Ncgm Workstation's device (ncgm file).
C Then C Call "Frame" for the Ncgm Workstation - this flushes
C the graphics C buffers so all the graphics are displayed.
C
call NhlFDraw(ixyplot,ierr)
call NhlFFrame(incgmwork,ierr)
C
C Destroy the X Workstation object - this also pop's down
C the X Window. (Also free's all the memory associated with
C the X Workstation)
C
call NhlFDestroy(ixwork,ierr)
C
C Destroy the Ncgm Workstation object - this closes the metafile
C and puts the ENDMETAFILE marker in the file.
C This also destroys the XyPlot object since the XyPlot is a
C child of the Ncgm Workstation.
C
call NhlFDestroy(incgmwork,ierr)
C
C Close the library.
C
call NhlFClose
end
|