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