|
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: 8448 (0x2100) Types: TextFile Names: »plotseqtxt«
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ. └─⟦4334b4c0b⟧ └─⟦97b7ffb00⟧ »ryplot« └─⟦this⟧
;klab3 6 lines.500 clear plotryseq plotryseq=set 180 permanent plotryseq.13 lookup rydgtest if ok.yes mode 10.yes lookup rydlist if ok.yes mode list.yes clear rydlist rydgtest if list.yes plotryseq=algol list.yes plotryseq=algol plotryseq 20 8 77 begin integer i,k,na,la,n,l,nmax,lmax,nmin,lmin, mulsel,n2a,minmul,maxmul,mul,Znetmin, Z,Zeff,,c,Zmin,Zmax,n2,n2m,l2,n2s,brsegm,diagsegm, index,jindex,n2max; array pname,output,saven,bs(1:3); integer array tail(1:10); real s,j,j2; boolean test,frame,plotprob,plotbranch, any,lsline,list,pldate,plotosc,first, plotted,plottrue,plotline,plotlambda; procedure plotseq(n,l,A,Zmax,n2); value n,l,Zmax,n2; integer n,l,Zmax,n2; array A; begin integer index,jindex; real ymin,ymax,An,xsi,xlay,j,j2; xsi:=1/Zmin; for xsi:=10*xsi while xsi<2.5 do; if xsi<5 then xsi:=xsi*5 else if xsi<12.5 then xsi:=xsi*2; plotform(0,xsi+3,10); pendown; plotmove(plotxform,0); penup; setmargin(1,plotyform-.8); writeplot(<:<12>:>); plotatsym(Zmin-Znetmin+1,1,mul); writeplot(<: sequence :>); if pldate and plottertype=0 then begin writedate(plotz,6,0.0); setposition(plotz,0,0); end; writeplot(nl,1); if plotlambda then begin writeplot(<:<14>l<15>:>); end else writeplot(case c-4 of(<:A:>,<:b<38>:>,<:f:>,<:S:>,<:lambda:>)); writeplot(<:(1/Z):>); if plotlambda then writeplot(<:*Z**2:>); writeplot(sp,2); writels(plotz,n,l,-1); setposition(plotz,0,0); writeplot(<: -:>); writels(plotz,n2,l+1,-1); setposition(plotz,0,0); plotsubform(0,plotxform,0,plotyform-2,false); ymin:=maxreal; ymax:=0; for j:=l+s,j-1 while j>=abs(l-s)-'-7 do begin index:=j-abs(l-s)+1; for j2:=j+1,j2-1 while round(j-j2)<=1 and j2>=abs(l+1-s)-'-7 do begin jindex:=j2-abs(l+1-s)+1; for Z:=Zmin step 1 until Zmax do begin An:=A(n2s,Z,index,jindex); if An<>0 then begin if An<ymin then ymin:=An; if An>ymax then ymax:=An; end An<>0; end find min and max for Z; end for j2; end for j; if test then write(out,<:<10>ymin,ymax plotadm:>,ymin,ymax, nl,1,n,n2); if ymin<ymax/10 then ymin:=0; xlay:=real (if Zmin<10 then <<d.dd> else if Zmin<100 then <<d.ddd> else <<d.dddd>); if -,frame then plotadmini(1/(Zmax+5)*0.9,1/Zmin*1.1,ymin,ymax,0) else begin plotscale(1/(Zmax+5)-0.2/Zmin,1/Zmin*1.0,ymin-.2*ymax,ymax*1.2); plotframe(xlay, minlay(-ymax*0.75,-10**entier(-ln(ymax)/ln(10)),0)); end; plotted:=false; for j:=l+s,j-1 while j>=abs(l-s)-'-7 do begin index:=j-abs(l-s)+1; for j2:=j+1,j2-1 while round(j-j2)<=1 and j2>=abs(l+1-s)-'-7 do begin jindex:=j2-abs(l+1-s)+1; first:=true; for Z:=Zmax step -1 until Zmin do begin An:=A(n2s,Z,index,jindex); if An<>0 then begin if test then write(out,<:<10>:>,Z,An); plotmove(1/Z,An); if first then begin first:=false; pendown; plotted:=true; end; end An<>0; end Z; penup; for Z:=Zmin step 1 until Zmax do begin An:=A(n2s,Z,index,jindex); if An<>0 then plotpoint(1/Z,An,j+j2-l); end plotpoint; if plotted and lsline then begin plotmove(plotxpos-plotsize/deltax*10,plotypos); writeplot(<<d>,2*j,<:/2-:>,2*j2,<:/2:>); end plot j; plotted:=false; end j2; end j; end plotseq; frame:=plottrue:=true; plotlambda:=plotline:= pldate:=list:=plotprob:=plotosc:=plotbranch:=test:=false; Z:=1; mulsel:=0; readifp(<:multiplicity:>,mulsel); readbfp(<:pldate:>,pldate); readbfp(<:frame:>,frame); readbfp(<:test:>,test); readbfp(<:list:>,list); readbfp(<:osc:>,plotosc); readbfp(<:probabilities:>,plotprob); readbfp(<:branch:>,plotbranch); readbfp(<:linestrength:>,plotline); readbfp(<:lambda:>,plotlambda); readbfp(<:wawelength:>,plotlambda); readbfp(<:test:>,test); packtext(pname,<:tek4006a:>); readsfp(<:plotname:>,pname); plotosc:=plotosc or -,(plotprob or plotbranch or plotlambda or plotline or false); i:=1; setplotname(string pname(increase(i),0)); cleararray(saven); readsfp(<:savename:>,saven); i:=lookuptail(saven,tail); if -,(i=0 or i=6) then begin cleararray(tail); tail(1):=100; i:=createentry(saven,tail); if i<>0 then alarm(<:***create entry save :>,string inc(saven),i); permentry(saven,13); end; readbfp(<:plot:>,plottrue); saveplot(if plottrue then 1 else 0,string inc(saven),0); packtext(bs,<: unknown:>); readinfp(bs,1); if fpinareas>0 then bs(2):=real <:ofz:>; i:=lookuptail(bs,tail); if i>0 or tail(1)<0 or fpinareas=0 then alarm(<:***inputarea :>, string inc(bs),<: :>,i); stackcuri; i:=connectcuri(bs); if i<>0 then alarm(<:***connect :>,string inc(bs),i); setposition(in,0,0); inrec(in,128); nmax:=in(1); lmax:=in(2); n:=nmin:=in(3); l:=lmin:=in(4); Zmin:=in(5); Zmax:=in(6); brsegm:=in(7); mul:=in(9); maxmul:=in(10); if maxmul mod 2=1 and mul mod 2 =0 then maxmul:=maxmul-1; minmul:=maxmul mod 2 +(if maxmul mod 2=0 then 2 else 0); Znetmin:=in(19); diagsegm:=in(17); lsline:=abs(in(128)-1)<'-7; if mulsel<>0 then mul:=mulsel; s:=if lsline then (mul-1)/2 else 0; readifp(<:n:>,n); readifp(<:l:>,l); n2:=n2max:=n+1; l2:=lmax; readifp(<:nmax:>,n2max); if list then begin if fpout then begin readlsfp(output); stackcuro; i:=connectcuro(output); if i<>0 then begin unstackcuro; j:=1; alarm(<:***connect output :>,string inc(output),i); end; end; write(out,<:<12>:>); end; if Zmin>=Zmax then alarm(<:***Zvalues :>,Zmin,Zmax); if test then write(out,<:<10>mul,maxmul :>,mul,maxmul); begin array A(nmin:n2max,Zmin:Zmax,1:mul,1:mul); boolean array found(nmin:n2max,1:mul,1:mul); setposition(in,0,diagsegm*(Zmax-Zmin+1)+2); for n2s:=nmin step 1 until n2max do for i:=1 step 1 until mul do for k:=1 step 1 until mul do for Z:=Zmin step 1 until Zmax do A(n2s,Z,k,i):=0; na:=la:=-1; i:=0; for i:=i+1 while true do for Z:=Zmin step 1 until Zmax do begin inrec(in,16); na:=in(1); la:=in(2); if na=n and la=l then goto ES; end; ES: n2m:=in(3); if plotprob then c:=5 else if plotbranch then c:=6 else if plotosc then c:=7 else if plotline then c:=8 else if plotlambda then c:=9; if list then write(out,<:<10>:>,<<d>,Zmin,<:<=Z<=:>,Zmax, <:<10>from :>,n,false add ryalf(l),1,<: to :>, nmin,false add ryalf(l+1),1, <:-:>,n2max,false add ryalf(l+1),1, <:<10> Z state value:>); cleararray(found); for j:=l+s,j-1 while j>=abs(l-s)-'-7 do begin index:=j-abs(l-s)+1; for n2s:=if nmin<=l+2 then l+2 else nmin step 1 until nmax do for j2:=j+1,j2-1 while round(j-j2)<=1 and j2>=abs(l+1-s)-'-7 do begin jindex:=j2-abs(l+1-s)+1; na:=in(3); la:=in(4); if list then write(out,<:<10>:>); for Z:=Zmin step 1 until Zmax do begin Zeff:=Z-Zmin+1; if in(16)>0 and na<=n2max then begin if Z-Zmin+1<>in(16) then write(out,<:<10>**Zerror :>,Z-Zmin,in(16),na); if n<>in(1) or l<>in(2) or in(3)>nmax or in(4)<>l+1 or na<>n2s or la<>l+1 or j<>in(14) or j2<>in(15) then begin write(out,nl,1,star,2); writels(out,n,l,j); write(out,sp,1); writels(out,n2s,l+1,j2); write(out,sp,3); writels(out,in(1),in(2),in(14)); write(out,sp,1); writels(out,na,in(4),in(15)); end else if in(9)=0 then A(na,Z,index,jindex):=0 else begin found(na,index,jindex):=true; if plotlambda then in(c):=in(c)*Zeff*Zeff; A(na,Z,index,jindex):=abs in(c); end calculated; if list then write(out,<:<10>:>,<<dd>,Z,<: :>,n,false add ryalf(l),1, <: :>,na,false add ryalf(la),1,<< -d.dddd>,A(na,Z,index,jindex)); end A<>0; inrec(in,16); end get values; end j2; end j; if list then outend(12); for n2s:=if nmin<l+1 then l+1 else nmin step 1 until n2max do begin any:=false; for j:=l+s,j-1 while j>=abs(l-s)-'-7 do for j2:=j+1,j2-1 while round(j-j2)<=1 and j2>=abs(l+1-s)-'-7 do begin index:=j-abs(l-s)+1; jindex:=j2-abs(l+1-s)+1; any:=any or found(n2s,index,jindex); end search; if operatorkey(false) then goto END; if any then plotseq (n,l,A,Zmax,n2s); end end n2s; END: if fpout then closeout; end; mode list.no 10.no ▶EOF◀