|
|
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◀