aboutsummaryrefslogtreecommitdiff
path: root/sys/gio/ncarutil/autograph/agback.f
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
commitfa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch)
treebdda434976bc09c864f2e4fa6f16ba1952b1e555 /sys/gio/ncarutil/autograph/agback.f
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'sys/gio/ncarutil/autograph/agback.f')
-rw-r--r--sys/gio/ncarutil/autograph/agback.f152
1 files changed, 152 insertions, 0 deletions
diff --git a/sys/gio/ncarutil/autograph/agback.f b/sys/gio/ncarutil/autograph/agback.f
new file mode 100644
index 00000000..108d2b66
--- /dev/null
+++ b/sys/gio/ncarutil/autograph/agback.f
@@ -0,0 +1,152 @@
+C
+C
+C +-----------------------------------------------------------------+
+C | |
+C | Copyright (C) 1986 by UCAR |
+C | University Corporation for Atmospheric Research |
+C | All Rights Reserved |
+C | |
+C | NCARGRAPHICS Version 1.00 |
+C | |
+C +-----------------------------------------------------------------+
+C
+C
+C ---------------------------------------------------------------------
+C
+ SUBROUTINE AGBACK
+C
+C The subroutine AGBACK is used to draw a graph background, as directed
+C by the current contents of the parameter list.
+C
+C The following common block contains the AUTOGRAPH control parameters,
+C all of which are real. If it is changed, all of AUTOGRAPH (especially
+C the routine AGSCAN) must be examined for possible side effects.
+C
+ COMMON /AGCONP/ QFRA,QSET,QROW,QIXY,QWND,QBAC , SVAL(2) ,
+ + XLGF,XRGF,YBGF,YTGF , XLGD,XRGD,YBGD,YTGD , SOGD ,
+ + XMIN,XMAX,QLUX,QOVX,QCEX,XLOW,XHGH ,
+ + YMIN,YMAX,QLUY,QOVY,QCEY,YLOW,YHGH ,
+ + QDAX(4),QSPA(4),PING(4),PINU(4),FUNS(4),QBTD(4),
+ + BASD(4),QMJD(4),QJDP(4),WMJL(4),WMJR(4),QMND(4),
+ + QNDP(4),WMNL(4),WMNR(4),QLTD(4),QLED(4),QLFD(4),
+ + QLOF(4),QLOS(4),DNLA(4),WCLM(4),WCLE(4) ,
+ + QODP,QCDP,WOCD,WODQ,QDSH(26) ,
+ + QDLB,QBIM,FLLB(10,8),QBAN ,
+ + QLLN,TCLN,QNIM,FLLN(6,16),QNAN ,
+ + XLGW,XRGW,YBGW,YTGW , XLUW,XRUW,YBUW,YTUW ,
+ + XLCW,XRCW,YBCW,YTCW , WCWP,HCWP,SCWP ,
+ + XBGA(4),YBGA(4),UBGA(4),XNDA(4),YNDA(4),UNDA(4),
+ + QBTP(4),BASE(4),QMNT(4),QLTP(4),QLEX(4),QLFL(4),
+ + QCIM(4),QCIE(4),RFNL(4),WNLL(4),WNLR(4),WNLB(4),
+ + WNLE(4),QLUA(4) ,
+ + RBOX(6),DBOX(6,4),SBOX(6,4)
+C
+C The following common block contains other AUTOGRAPH variables, both
+C real and integer, which are not control parameters.
+C
+ COMMON /AGORIP/ SMRL , ISLD , MWCL,MWCM,MWCE,MDLA,MWCD,MWDQ ,
+ + INIF
+C
+C Declare the block data routine external to force it to load.
+C
+C +NOAO - Block data replaced with run time initialization subroutine.
+C
+C EXTERNAL AGDFLT
+ call agdflt
+C
+C -NOAO
+C
+C Do an appropriate SET call for the following routines. The call is
+C equivalent to "CALL SET (XLCW,XRCW,YBCW,YTCW,0.,1.,0.,1.,1)", but
+C makes the viewport cover the whole plotter frame, which avoids the
+C problems resulting from clipping by GKS.
+C
+ CALL SET (0.,1.,0.,1.,-XLCW/(XRCW-XLCW),(1.-XLCW)/(XRCW-XLCW),
+ + -YBCW/(YTCW-YBCW),(1.-YBCW)/(YTCW-YBCW),1)
+C
+C Draw the labels, if any, first.
+C
+ IDLB=IFIX(QDLB)
+ IF (IDLB.EQ.0) GO TO 101
+C
+ LBIM=IFIX(QBIM)
+ CALL AGLBLS (IDLB,WCWP,HCWP,FLLB,LBIM,FLLN,DBOX,SBOX,RBOX)
+C
+C Now draw each of the four axes.
+C
+ 101 I=0
+C
+ 102 I=I+1
+C
+ IF (I.EQ.5) GO TO 108
+C
+ IF (QDAX(I).EQ.0.) GO TO 102
+C
+ GO TO (103,104,105,106) , I
+C
+C Y axis - left.
+C
+ 103 WNLB(1)=0.-YBGW
+ IF (XBGA(1)-WNLL(1).LT.DBOX(3,2).AND.
+ + XBGA(1)+WNLR(1).GT.DBOX(3,1)) WNLB(1)=0.-DBOX(3,4)
+C
+ WNLE(1)=YTGW-1.
+ IF (XBGA(1)-WNLL(1).LT.DBOX(4,2).AND.
+ + XBGA(1)+WNLR(1).GT.DBOX(4,1)) WNLE(1)=DBOX(4,3)-1.
+C
+ GO TO 107
+C
+C Y axis - right.
+C
+ 104 WNLB(2)=YTGW-1.
+ IF (XBGA(2)-WNLR(2).LT.DBOX(4,2).AND.
+ + XBGA(2)+WNLL(2).GT.DBOX(4,1)) WNLB(2)=DBOX(4,3)-1.
+C
+ WNLE(2)=0.-YBGW
+ IF (XBGA(2)-WNLR(2).LT.DBOX(3,2).AND.
+ + XBGA(2)+WNLL(2).GT.DBOX(3,1)) WNLE(2)=0.-DBOX(3,4)
+C
+ GO TO 107
+C
+C X axis - bottom.
+C
+ 105 WNLB(3)=XRGW-1.
+ IF (YBGA(3)-WNLL(3).LT.DBOX(2,4).AND.
+ + YBGA(3)+WNLR(3).GT.DBOX(2,3)) WNLB(3)=DBOX(2,1)-1.
+C
+ WNLE(3)=0.-XLGW
+ IF (YBGA(3)-WNLL(3).LT.DBOX(1,4).AND.
+ + YBGA(3)+WNLR(3).GT.DBOX(1,3)) WNLE(3)=0.-DBOX(1,2)
+C
+ GO TO 107
+C
+C X axis - top.
+C
+ 106 WNLB(4)=0.-XLGW
+ IF (YBGA(4)-WNLR(4).LT.DBOX(1,4).AND.
+ + YBGA(4)+WNLL(4).GT.DBOX(1,3)) WNLB(4)=0.-DBOX(1,2)
+C
+ WNLE(4)=XRGW-1.
+ IF (YBGA(4)-WNLR(4).LT.DBOX(2,4).AND.
+ + YBGA(4)+WNLL(4).GT.DBOX(2,3)) WNLE(4)=DBOX(2,1)-1.
+C
+ 107 Q=AMIN1(0.,QDAX(I))
+C
+ CALL AGAXIS (I,Q,
+ + QSPA(I),WCWP,HCWP,XBGA(I),YBGA(I),XNDA(I),YNDA(I),
+ + QLUA(I),UBGA(I),UNDA(I),FUNS(I),QBTP(I),BASE(I),
+ + QJDP(I),WMJL(I),WMJR(I),QMNT(I),QNDP(I),WMNL(I),
+ + WMNR(I),QLTP(I),QLEX(I),QLFL(I),QLOF(I),QLOS(I),
+ + DNLA(I),WCLM(I),WCLE(I),RFNL(I),QCIM(I),QCIE(I),
+ + WNLL(I),WNLR(I),WNLB(I),WNLE(I))
+C
+ GO TO 102
+C
+C Do set call for user and return.
+C
+ 108 CALL SET (XLCW,XRCW,YBCW,YTCW,XLUW,XRUW,YBUW,YTUW,
+ + 1+IABS(IFIX(QLUX))*2+IABS(IFIX(QLUY)))
+C
+ RETURN
+C
+ END