|
|
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: »ryortpr«
└─⟦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⟧
<* ryortpr calculation of orthogonal matrixelements *>
<*79-12-08*>
procedure ryort(bsname,parterm);
integer array parterm;
array bsname;
if orto then
begin
integer i,dl,ii,k,ngr,em,sq,n1c,sgc,Jc,trans,l22;
real cut,dele,del,x,h,hp,r2,w,
rm1,ov,ovl,
rmax,ymax,r1me,re,r2e,layr,layr1m,layovl,layr2;
boolean page1,plb;
array ry1,ry2(1:(segm-1)*128),bsoname(1:3);
algol list.off copy.statevar;
algol list.off copy.statevar2;
keystat:=survey:=false;
prno:=5;
dl:=0;
plb:=false;
page1:=true;
page:=1;
algol list.off copy.stateloop;
computed:=getcomputed(states,state,cutcase,cut);
ncur:=n; lcur:=l; jcur:=J;
if offkey then write(out,"nl",1,<<dd>,n,false add ryalf(l),1,
<: n* :>,nstar);
henta(ryf,(state+stateindex)*segm+1,ry1,segm-1);
algol list.off copy.stateloop2;
if computed2 and J=J2 and l=l2 and (state2+stateindex2)>=(state+stateindex) then
begin
setrydwhere(<:ryort:>,n,l,n2,l2);
operator(false);
cpu:=systime(1,0,time);
henta(ryf,(state2+stateindex2)*segm+1,ry2,segm-1);
if offkey then write(out,"nl",1,"*",1,<<dd>,n,false add ryalf(l),1,
"sp",2,n2,false add ryalf(l2),1,<: cut :>,<< dd.d0>,cut);
dele:=E2-E;
rm1:=r2:=h:=ovl:=ymax:=0;
NE(-1):=0;
for sq:=q-1 step -1 until 0 do
begin
del:=DE(sq);
x:=B(sq+1);
ngr:=NE(sq-1)+1;
if ngr<1 then ngr:=1;
for k:=NE(sq) step -1 until ngr do
begin
if abs ry1(k)>ymax then begin ymax:=abs ry1(k); rmax:=x end;
ov:=ry1(k)*ry2(k)*del;
ovl:=ovl+ov;
hp:=ov*x;
h:=h+hp;
rm1:=rm1+ov/x;
r2:=r2+hp*x;
x:=x-del;
end;
end;
if (lin>=maxlines-1-(n2+1) or page1) then begin
writepage(page,cores,parterm);
if page1 then
begin
head(r); writeparam;
lin:=10;
write(out,"nl",2,<:orthogonality of wawefunctions:>);
page1:=false;
end;
n1c:=n; Jc:=J;
write(out,"nl",2,<:state:>,"sp",if finestruct then 7 else 2,
<:overlap:>,<:<1/r>:>,"sp",2,
<:<1/r>e:>,"sp",2,<:<r>:>,"sp",2,<:<r>e:>,"sp",2,<:<r**2>:>,"sp",1,
<:<r**2>e:>,"sp",2,<:cut:>);
end;
r1me:=1/nstar**2;
l22:=(l*(l+2))//4;
re:=(3*nstar**2-l22)/2;
r2e:=nstar**2/2*(5*nstar**2+1-3*l22);
layovl:=real <<-d.dddd>;
layr1m:=real << d.dddd>;
layr:= real << d.ddd>;
layr2:= real << dd.ddd>;
if abs h>=10 or (n=n2 and re>= 10) then layr:=real << ddd.d>;
if abs r2>=100 or (n=n2 and r2e>=100) then layr2:=real << dddddd>;
write(out,"nl",if n1c<>n or J<>Jc then 2 else 1);
writestate(out,L,n,l,J);
write(out,"sp",1);
writestate(out,L2,n2,l2,J2);
write(out,string layovl,ovl);
if n<>n2 then write(out,"sp",14) else
write(out,string layr1m,rm1,r1me);
write(out,string layr,abs h);
if n<>n2 then write(out,"sp",6) else
write(out,string layr,re);
write(out,string layr2,abs r2);
if n=n2 then write(out,string layr2,r2e,<< dd.ddd>,cut);
if n=n2 and autcut then write(out,"sp",2,case cutcase+1 of(
<:no:>,<:min:>,<:max:>,<:div:>,<:zero:>,<:n*< :>,
<:err:>,<:<r>HF:>,<:exact:>));
lin:=lin+(if n1c<>n then 2 else 1);
n1c:=n; Jc:=J;
end computed2 and l=l2;
end end end stateloop2;
end end end end stateloop;
ncur:=0;
end ryort;
▶EOF◀