|
|
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: »plotdectxt«
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ.
└─⟦4334b4c0b⟧
└─⟦97b7ffb00⟧ »ryplot«
└─⟦this⟧
;ali time 5 0 lines.2500
(mode list.yes
lookup plotdectxt
clear plotdec
plotdec=set 210
permanent plotdec.13
lookup rydrun
if ok.yes
mode 10.yes
lookup rydlist
if ok.yes
mode 15.yes
clear rydlist rydgtest
plotdec=hcalg
mode 10.no 15.no list.no)
plotdec
1979-04-15
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;
array pname(1:3),data(1:250);
algol list.on 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(data,points,max,L,n,l,J,pmm,tau);
integer points,max,L,n,l,J,pmm;
real tau;
array data;
begin
integer c,char,j;
real maxv;
array a(1:10);
readstring(in,a,1);
readstate(in,L,n,l,J);
read(in,pmm,tau);
char:=j:=max:=0;
maxv:=0;
for j:=j+1 while char<>25 and char<>101 and char<>115 do
begin
read(in,data(j));
if maxv<data(j) then
begin
maxv:=data(j);
max:=j;
end;
repeatchar(in);
for c:=readchar(in,char) while c<>2 and char<>25 and char<>101
and char<>115 do;
repeatchar(in);
points:=j;
end;
readdecaycurve:=char=101 or char=25;
end readdecaycurve;
algol copy.ryglobal;
survey:=true;
finestruct:=true;
readbfp(<:finestruct:>,finestruct);
if -,readrfp(<:tauf:>,tauf) then tauf:=1;
maxy:=7;
list:=false;
readbfp(<:list:>,list);
readbfp(<:survey:>,survey);
survey:=list or survey;
if readsfp(<:plotter:>,pname) then setplotname(string inc(pname),0);
if -,readbfp(<:plot:>,plot) then plot:=false;
list:=list or -,plot;
curvemin:=1;
curvemax:=maxinteger;
if readifp(<:curve:>,curve) then curvemin:=curvemax:=curve;
readatsym(in,S,atno,Z);
read(in,Mev,slitw);
continue:=true;
curve:=0;
for n:=n 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(data,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;
maxval:=data(max);
write(out,
nl,1,<:Mev = :>,Mev,
nl,1,<:points/mm=:>,pmm,
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 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);
plotmove(plotxform-1,plotyform-1);
writeplot(<<d>,curve);
plotsubform(0,plotxform,0,plotyform-4,false);
plotadmini(0,no*dt,0,maxy,0);
plotline(max*dt,maxy,max*dt+maxy,0);
end plot;
for i:=1 step 1 until no do
begin
t:=i*dt;
if data(i)>0 then
begin
if list then write(out,nl,1,t,ln(data(i)/maxval),data(i));
if plot then plotpoint(t,ln(data(i)/maxval)+maxy,1);
end;
end;
if list then outend(10);
end;
end;
end;
mode list.no 15.no
▶EOF◀