00001
00002 c
00003 c Copyright (c) 1986,1987,1988,1989,1990,1991,1992,1993,
00004 c by Steve McMillan, Drexel University, Philadelphia, PA.
00005 c
00006 c All rights reserved.
00007 c
00008 c Redistribution and use in source and binary forms are permitted
00009 c provided that the above copyright notice and this paragraph are
00010 c duplicated in all such forms and that any documentation,
00011 c advertising materials, and other materials related to such
00012 c distribution and use acknowledge that the software was developed
00013 c by the author named above.
00014 c
00015 c THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
00016 c IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
00017 c WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
00018 c
00019
00020
00021 subroutine fr lgxdr(y,x1,x2,dexps,dexpm,dexpl,iax,ilab)
00022 save
00023 c
00024 c Draw x-axis, tick marks and numbers for a log plot.
00025 c (Numbers are handled by frlnxdr with ndec = 0.)
00026 c
00027 dimension tiks(8)
00028 common/scales/xl,xr,dinchx,ybot,ytop,dinchy,rlen,slen
00029 common/dev status/idevon,idevpen,idevwt
00030 common/fr tik level/jtik level
00031 common/fr hts/htl,htn/fr wts/iwts(4)/fr ticks/tikk(3),tikl
00032 c
00033 data ntik,tiks/8,.301003,.4771213,.60206,.69897,.7781513,
00034 * .845098,.90309,.9542425/
00035 c
00036 cinch(dumx,dor,dinch)=(dumx-dor)*dinch
00037 c
00038 c Plot the numbers and major tick marks:
00039 c
00040 nlab=2
00041 ndec=0
00042 lpow = 1
00043 call fr lnxdr(y,x1,x2,dexps,dexpm,dexpl,
00044 $ iax,ilab,nlab,ndec,lpow)
00045 c
00046 if (abs(dexpm).ne.1.) return
00047 if (abs(dinchx).le..5) return
00048 if (jtik level.ne.1) return
00049 c
00050 c Add markers for integers
00051 c
00052 ds=1.
00053 if (iax.eq.2) ds=-ds
00054 sax=cinch(y,ybot,dinchy)
00055 stik=sax+ds*tikl
00056 xa=x1
00057 xb=x2
00058 if (xb.le.xa) then
00059 xa=x2
00060 xb=x1
00061 end if
00062 c
00063 call fr lnfnc(xa,xb,1.,1,fexp,nexp)
00064 c
00065 fexp=fexp-1.
00066 nexp=nexp+1
00067 if (iwts(1).gt.0) then
00068 jwt=idevwt
00069 call weight(iwts(1))
00070 end if
00071 c
00072 c Add logarithmically spaced tick marks.
00073 c
00074 do i=1,nexp
00075 do j=1,ntik
00076 exp=fexp+tiks(j)
00077 if (exp.ge.xa) then
00078 if (exp.gt.xb) go to 100
00079 r=cinch(exp,xl,dinchx)
00080 call plot(r,sax,3)
00081 st = stik
00082 c
00083 c Note test here is 4, not 3 because nexp was incremented above.
00084 c
00085 if (nexp.le.4.and.j.eq.2) st = sax+ds*tikk(3)
00086 call plot(r,st,2)
00087 end if
00088 end do
00089 fexp=fexp+1.
00090 end do
00091 c
00092 100 if (iwts(1).gt.0) call weight(jwt)
00093 c
00094 end