|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 4608 (0x1200) Types: TextFile Names: »tplotdec«
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ. └─⟦4334b4c0b⟧ └─⟦97b7ffb00⟧ »ryplot« └─⟦this⟧
(mode list.yes lookup rydlist if ok.yes mode 15.yes lkj=lookup plotstate if ok.no contract from.ryplot plotstate lkj=lookup rydseg ryproc alutproc rydstruct statevar stateloop, ryglobal if ok.no contract from.crypr rydseg ryproc alutproc rydstruct statevar stateloop, ryglobal plotdec=algol scope day plotdec mode 10.no 15.no list.no) plotdec 1982-02-16 1981-12-09 input data for discrete begin boolean discrete,regint; integer maxexp,maxtries; boolean plot,continue,printc; integer L,n,l,J,no,i,pmm,max,curve,curvemin,curvemax,maxy; real t,tau,dt,delt,maxval,beta,MeV,slitw,tauf,xmax,ymax,tmax, unit; long array inp(1:3); array field f; array pname(1:3),datax,datay(1:250); algol list.off copy.plotstate; algol list.off copy.rydseg; algol list.off copy.ryproc; algol list.off copy.alutproc; algol list.off copy.rydstruct; boolean procedure readdecaycurve(datax,datay,points,max,L,n,l,J,pmm,tau); integer points,max,L,n,l,J,pmm; real tau; array datax,datay; begin integer c,char,j; real maxv,x,y,xscale,ylnscale,ln10; array a(1:10); ln10:=ln(10); readstring(in,a,1); readstate(in,L,n,l,J); read(in,pmm); unit:=1; repeatchar(in); readchar(in,char); if char='/' then read(in,unit); read(in,tau); if pmm=0 then begin read(in,xscale,ylnscale); xscale:=xscale/10*tau; <* 10ns= xscale cm*> <*x data are later multiplied by tau*> ylnscale:=ylnscale/4/ln10; <* 10**0-10**4 = ylnscale cm*> end scale; char:=j:=max:=0; maxv:=0; for j:=j+1 while char<>'em' and char<>'e' and char<>'s' do begin if pmm=0 then begin read(in,x,y); datax(j):=x/xscale; datay(j):=exp(y/ylnscale); end else begin read(in,datay(j)); end; if maxv<datay(j) then begin maxv:=datay(j); max:=j; end; repeatchar(in); for c:=readchar(in,char) while c<>2 and char<>25 and char<>'e' and char<>'s' do; repeatchar(in); points:=j; end; readdecaycurve:=char='e' or char='em'; end readdecaycurve; algol copy.ryglobal; readbfp(<:finestruct:>,finestruct,false); readrfp(<:tauf:>,tauf,1); maxy:=7; readbfp(<:list:>,list,false); readbfp(<:survey:>,survey,true); survey:=list or survey; readsfp(<:plotter:>,pname,<:houstona:>); setplotname(string inc(pname),0); readbfp(<:plot:>,plot,false); list:=list or -,plot; readbfp(<:discrete:>,discrete,false); plot:=plot and -,discrete; readifp(<:exp:>,maxexp,5); readifp(<:tries:>,maxtries,7); curvemin:=1; curvemax:=maxinteger; readrfp(<:tmax:>,tmax,1000); if readifp(<:curve:>,curve,1) then curvemin:=curvemax:=curve; readatsym(in,S,atno,Z); read(in,MeV,slitw); continue:=true; curve:=0; while continue do begin curve:=curve+1; printc:=curve>=curvemin; if printc then begin write(out,"nl",3); writeatsym(out,S,atno,Z); write(out,"sp",2); end; continue:=-,readdecaycurve(datax,datay, no,max,L,n,l,J,pmm,tau) and curve<curvemax; tau:=tau*tauf; regint:=pmm<>0; if printc then begin writestate(out,L,n,l,J); write(out,"sp",2); beta:=13.9*sqrt(MeV/atomicmass(atno)); delt:=slitw/beta; dt:=1/beta/pmm/tau*unit; maxval:=datay(max); write(out, "nl",1,<:MeV = :>,MeV, "nl",1,<:points/mm=:>,pmm/unit, "nl",1,<:slitwith= :>,slitw, "nl",1,<:dt(slit)= :>,delt, <*ns*> "nl",1,<:amu = :>,atomicmass(atno), "nl",1,<:points = :>,no, "nl",1,<:tau ns = :>,<< ddd.dd>,tau, "nl",1,<:v mm/ns = :>,<< d.dddddd>,beta, "nl",1,<:dt (tau)= :>,<< d.dddd>,dt); if pmm<>0 then begin for i:=1 step 1 until no do datax(i):=i*dt; end; algol list.on copy.discreteinp; if plot then begin plotform(0,25,18); setmargin(0.4,plotyform-2*linediff); writeplot("ff",1); writeatsym(plotz,-1,atno,Z); setposition(plotz,0,0); writeplot("sp",2); plotstate(n,l,S,l,J); setposition(plotz,0,0); writeplot("sp",2,<:<14>t<15>(NCA) = :>,<<ddd.ddd>,tau, <: d<14>t<15> = :>,dt); plotmove(plotxform-1,plotyform-1); writeplot(<<d>,curve); plotsubform(0,plotxform,0,plotyform-4,false); plotadmini(0,if tmax<datax(no) then tmax else datax(no),0,maxy,0); plotline(datax(max),maxy,datax(max)+maxy,0); end plot; for i:=1 step 1 until no do begin t:=datax(i); if datay(i)>0 and t<plotxmax then begin if list then write(out,"nl",1,t,ln(datay(i)/maxval),datay(i)); if plot then plotpoint(t,ln(datay(i)/maxval)+maxy,1); end; end; if list then outendcur(10); if plot then plotclose; end; end; end; ▶EOF◀