|
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: 3840 (0xf00) Types: TextFile Names: »tplotdec«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt. └─⟦0364f57e3⟧ └─⟦b050de23d⟧ »csim« └─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ. └─⟦b2ec5d50f⟧ └─⟦b050de23d⟧ »csim« └─⟦this⟧
;ali time 5 0 lines.2500 (mode list.yes lookup rydlist if ok.yes mode 15.yes plotdec=algol scope day plotdec finisb mode 10.no 15.no list.no) plotdec 1981-03-16 begin 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; 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; array a(1: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); 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,datax(j),datay(j)); 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; 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; 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; 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◀