C C $Id: xy09f.f,v 1.3 1995/06/22 21:09:46 haley Exp $ C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C Copyright (C) 1995 C C University Corporation for Atmospheric Research C C All Rights Reserved C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C File: xy09f.f C C Author: Mary Haley C National Center for Atmospheric Research C PO 3000, Boulder, Colorado C C Date: Thu Feb 9 10:00:38 MST 1995 C C Description: This example is similar to the ncargex Autograph C example "agex06". It shows how to create different C kinds of axes using a combination of TickMark and C XyPlot resources. C external NhlFAppClass external NhlFXWorkstationClass external NhlFNcgmWorkstationClass external NhlFPSWorkstationClass external NhlFCoordArraysClass external NhlFXyPlotClass C C Define the number of points in each curve and the number of colors. C parameter(NPTS=501,NCOLORS=6) parameter(PI100=.031415926535898) integer appid,xworkid,plotid,dataid integer rlist, i character*8 plot_name C C Create data arrays for XyPlot. C real xdra(NPTS), ydra(NPTS) C C Modify the color map. Color indices '1' and '2' are the background C and foreground colors respectively. C integer len(2) data len/3,NCOLORS/ real cmap(3,NCOLORS) data cmap/0.0,0.0,0.0, + 1.0,1.0,1.0, + 1.0,0.5,0.0, + 0.0,1.0,0.5, + 0.5,0.0,1.0, + 0.6,0.2,0.2/ integer NCGM, X11, PS C C Default is to an X workstation. C NCGM=0 X11=1 PS=0 C C Initialize the HLU library and set up resource template. C call NhlFInitialize call NhlFRLCreate(rlist,'setrl') C C Create Application object. The Application object name is used to C determine the name of the resource file, which is "xy09.res" in C this case. C call NhlFRLClear(rlist) call NhlFRLSetString(rlist,'appDefaultParent','True',ierr) call NhlFRLSetString(rlist,'appUsrDir','./',ierr) call NhlFCreate(appid,'xy09',NhlFAppClass,0,rlist,ierr) if (NCGM.eq.1) then C C Create an NCGM workstation. C call NhlFRLClear(rlist) call NhlFRLSetString(rlist,'wkMetaName','./xy09f.ncgm',ierr) call NhlFRLSetMDFloatArray(rlist,'wkColorMap',cmap,2,len,ierr) call NhlFCreate(xworkid,'xy09Work', + NhlFNcgmWorkstationClass,0,rlist,ierr) else if (X11.eq.1) then C C Create an XWorkstation object. C call NhlFRLClear(rlist) call NhlFRLSetString(rlist,'wkPause','True',ierr) call NhlFRLSetMDFloatArray(rlist,'wkColorMap',cmap,2,len,ierr) call NhlFCreate(xworkid,'xy09Work',NhlFXWorkstationClass, + 0,rlist,ierr) else if (PS.eq.1) then C C Create a PS workstation. C call NhlFRLClear(rlist) call NhlFRLSetString(rlist,'wkPSFileName','./xy09f.ps',ierr) call NhlFRLSetMDFloatArray(rlist,'wkColorMap',cmap,2,len,ierr) call NhlFCreate(xworkid,'xy09Work', + NhlFPSWorkstationClass,0,rlist,ierr) endif C C Initialize data for the XyPlot object. C do 10 i = 1,NPTS theta = PI100*real(i-1) xdra(i)=500.+.9*real(i-1)*cos(theta) ydra(i)=500.+.9*real(i-1)*sin(theta) 10 continue C C Define the data object. C call NhlFRLClear(rlist) call NhlFRLSetFloatArray(rlist,'caXArray',xdra,NPTS,ierr) call NhlFRLSetFloatArray(rlist,'caYArray',ydra,NPTS,ierr) call NhlFCreate(dataid,'xyData',NhlFCoordArraysClass, + 0,rlist,ierr) C C Create and draw four XyPlot objects. C do 30 i = 1,4 call NhlFRLClear(rlist) call NhlFRLSetInteger(rlist,'xyCoordData',dataid,ierr) write(plot_name,40)i call NhlFCreate(plotid,plot_name,NhlFXyPlotClass,xworkid, + rlist,ierr) call NhlFDraw(plotid,ierr) 30 continue 40 format('xyPlot',i1) call NhlFFrame(xworkid,ierr) C C NhlDestroy destroys the given id and all of its children C so destroying "xworkid" will also destroy "plotid". C call NhlFRLDestroy(rlist) call NhlFDestroy(xworkid,ierr) call NhlFDestroy(appid,ierr) C C Restores state. C call NhlFClose stop end