|
|
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: 6912 (0x1b00)
Types: TextFile
Names: »printoscpr«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt.
└─⟦0364f57e3⟧
└─⟦e6c2bcfa6⟧ »cryprog«
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ.
└─⟦4334b4c0b⟧
└─⟦e6c2bcfa6⟧ »cryprog«
└─⟦this⟧
<* printosc prints lifetimes oscillatorstrengths etc. *>
integer procedure writelines(l);
value l; integer l;
begin
write(out,"nl",l);
lines:=writelines:=lines+l;
end;
integer procedure writeff;
begin
write(out,"ff",1);
totpage:=totpage+1;
end;
procedure setformat(c,l);
value c,l; integer c,l;
begin
<*
integer array M(1:8);
reserveproc(<:printer:>);
M(1):=2 shift 12;
M(2):=c;
M(3):=l;
i:=waitanswer(sendmessage(<:printer:>,M),M);
if i<>1 then write(out,<:<10>setformat :>,i);
outendcur(0);
releaseproc(<:printer:>);
*>
end;
procedure writetablehead(parentno,parterm,tablenr);
value parentno,tablenr; integer parentno,tablenr;
integer array parterm;
begin
writelines(5);
if tablenr>0 then write(out,<:Table :>,tablenr,"sp",2,
<:-:>,"sp",2);
writeatsym(out,S,atno,Z);
write(out,<: (:>);
writeatsym(out,S,segdes(1),1);
write(out,"sp",2,<:sequence):>,"sp",2);
writelines(1);
write(out,<:Ionisation Potential :>,
<<dd ddd ddd.dd>,getIp(parentno,parterm));
Zold:=Z;
end writetablehead;
procedure printosc(bsname,parterm,nuitr);
value nuitr; integer nuitr;
array bsname;
integer array parterm;
if lifetimes and chargesegdes(15)<0 and chargesegdes(16)<0 then
begin comment local block for printosc;
integer i,trans,tottrans,sta,coresold;
real tau,tau2,osc,A,Sl,lambda,c,
cut,b,lay,lay3;
boolean prkey;
array bsdipname(1:2);
algol list.off copy.statevar;
algol list.off copy.statevar2;
integer array field dipi;
array field dipf;
procedure writeoffline(A,f,S,lambda,b,canc,app,cutcase,app2,cutcase2);
value A,f,S,lambda,b,canc,app,cutcase,app2,cutcase2;
real A,f,S,lambda,b,canc;
integer app,cutcase,app2,cutcase2;
if -,list then
begin
boolean markb,markf;
if lambda<>0 and b>=brmin and A<>0 then begin
markb:=false add (if cutcase=5 or
cutcase2=5 then 42 else 32);
markf:=false add (if( app>0 or
app2>0) and -,(app=2 and app2=2) and -,(app=4 and app2=4)
then 120 else 32);
writelines(1);
write(out,markb,1);
writestate(out,L2,n2,l2,J2);
write(out,string lay,A,f);
if line then write(out,"sp",1,string lay,S);
write(out,if abs lambda< 100 then << -ddd.dd> else
if abs lambda<1000 then << -ddd.d> else
if abs lambda< '6 then << -dddddd> else
if lambda< '10 then << -ddd'+d> else
<< -dd'+dd>,
lambda,markf,1,string lay3,
b);
write(out,string lay3,100-abs canc);
end;
end writeoffline;
procedure writeofflinetext(trans);
value trans; integer trans;
if trans>0 and l>=llmin then begin
boolean markb,markf;
markf:=markb:="sp";
writelines(1);
if notext then write(out,<:to :>,"sp",
if finestruct then 9 else 4,<:A:>,
"sp",8,<:f:>,"sp",4) else
write(out,<:to :>,"sp",if finestruct then 5 else 0,<:A(decay):>,
"sp",2,<:f(abs):>,"sp",1);
if line and notext then write(out,"sp",5,<:S:>,"sp",4) else
if line then write(out,"sp",3,<:S(line):>,"sp",0);
if notext then write(out,"sp",2,<:lambda:>,"sp",2,markf,1,"sp",1,<:b:>,
"sp",3,<:c:>) else
write(out,"sp",1,<:lambda Å:>,"sp",1,markf,1,<:b<37>:>,"sp",2,<:c<37>:>);
end writeofflinetext;
procedure writetauline(trans,cutcase,app,tau);
value trans,cutcase,app,tau;
integer trans,cutcase,app;
real tau;
begin
boolean tprint,markb,markf;
tprint:=(abs tau>smallreal or (nuitr=0
and computed)) and l>=llmin and -,list;
if lines+trans+(if tprint then 6 else 4)>=maxlines then
writepage(cores,parterm,tablenr);
if cores<>coresold or Z<>Zold then
writetablehead(cores,parterm,tablenr);
if tprint then
begin
markb:="sp";
markf:=false add (if app>0 then 120 else 32);
writelines(2);
write(out,if notext then <: :> else <:state:>,
"sp",if finestruct then 5 else 0);
if abs tau<smallreal then write(out,"sp",8) else
if notext then write(out,"sp",3,<:t:>,"sp",4) else
write(out,"sp",3,if tau<1 then <:t(ps):> else <:t(ns):>);
if -,notext and tau<1 then tau:=1000*tau;
if Ip>0 then write(out,"sp",2,
if notext then <: E :> else <:E(cm-1):>);
if publish then write(out,"sp",3,<:n*:>,"sp",2) else
write(out,"sp",3,<:n*:>,"sp",2);
if nocase then write(out,"sp",7,<:cut:>) else
if nuitr=0 then write(out,case cutcase+1 of (
<: no:>,<: min:>,<: max:>,<: div:>,<: zero:>,
<:n*<l+1:>,<: error:>,<: exact:>),"sp",1,<:cut:>);
markb:=false add (if cutcase=5 then 42 else 32);
writelines(1);
write(out,markb,1);
writestate(out,L,n,l,J);
if abs tau<smallreal then write(out,"sp",9) else write(out,
if tau>1 and tau <10 then << -d.ddd> else
if tau>1 and tau< 100 then << -dd.dd> else
if tau>1 and tau<10000 then << -dddd.d> else
if tau>=10000 and tau<'8 then << -ddddddd> else
if tau>='8 then <<-d.dd'+dd> else
if tau>=.1 then << -d.ddd> else
if tau>=.01 then << -d.dddd> else
if tau>=.001 then << -d.ddddd> else
<<-d.ddd'+d>,tau);
if Ip>0 and Ecm<.01 then write(out,"sp",4,<:0:>,"sp",5) else
if Ip>0 then write(out,if Ecm>='6 then << dddddddd> else
if Ecm>='5 then << dddddd.d> else << ddddd.dd>,
Ecm,markf,1);
write(out,"sp",if Ip>0 then 1 else 2,<<dd.ddd>,nstar);
if nuitr=0 then
write(out,"sp",3,<<dd.ddd>,cut);
end tprint;
coresold:=cores;
end writetauline;
initrydfile(bsname(1) shift 24, real <:dip:>,segdes.dipsize,true);
for i:=1,2 do bsdipname(i):=segdes.dipname(i);
lay:=real <<-d.ddd'+d>;
prkey:=false;
lay3:=real <<-ddd>;
keystat:=lookupentry(<:ryprkey:>)=0;
prkey:=prkey or keystat;
if prkey then write(out,"ff",1,<:printing of branching ratios:>,"nl",2);
begin
integer array dipval(1:
if chargestate(7)=0 then 1 else chargestate(7)*diprecsize//2);
getalldipval(bsdipname,dipval);
algol list.off copy.allstatel;
if prkey then write(out,"nl",1,<:trans :>,trans);
if computed then writetauline(trans,cutcase,app,tau);
if computed and trans>0 then
begin
if cores=0 then coresold:=0;
if prkey then
begin
write(out,"nl",2,<:dipole record for :>);
writestate(out,L,n,l,J);
write(out,"sp",4,<:trans :>,trans);
for i:=0 step 1 until trans-1 do writediprec(dipval,tottrans+i);
end prkey;
if prkey then
begin
write(out,"nl",1);
writestate(out,L,n,l,J);
write(out,<: n* :>,nstar);
end;
writeofflinetext(trans);
algol list.off copy.allstatel2;
if prkey then
begin
write(out,"nl",1,"*",1);
writestate(out,L,n,l,J);
write(out,"sp",1);
writestate(out,L,n2,l2,J2);
end;
writeoffline(A,osc,Sl,lambda,b,c,app,cutcase,app2,cutcase2);
end; tottrans:=tottrans+1; end allstateloop2;
end computed;
end end stateloop
end dipval;
end printosc;
▶EOF◀