|
|
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: »goozon«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt.
└─⟦0364f57e3⟧
└─⟦1248b0c55⟧ »gobib«
└─⟦this⟧
;gosav
r=algol list.yes
begin
comment test of formulae for ozon G-matrix;
integer i,j,k,l;
real a,b,c,d,u,z,cos3,sq2,sq3;
boolean nl,bo;
array r,khi,phi(1:3),t,g,h(1:3,1:3);
nl:= false add 10; sq2:= sqrt(2); sq3:= sqrt(3);
rep:
read(in,u);
if u>0 then begin
read(in,z,khi(1)); bo:= true;
khi(1):= khi(1)*pi/180;
khi(2):= khi(1)-2*pi/3;
khi(3):= khi(1)+2*pi/3;
for i:=1,2,3 do begin
r(i):= (1+z*sq2*cos(khi(i)))*u/sq3;
t(1,i):= 1/sq3;
t(2,i):= (cos(khi(i))*sq2-z)/(u*sq3);
t(3,i):= -sin(khi(i))*sq2/(u*sq3);
end;
for i:=1,2,3 do begin
j:= i mod 3 + 1; k:= j mod 3 + 1;
phi(i):= (r(j)**2+r(k)**2-r(i)**2)/(2*r(j)*r(k));
g(j,k):= g(k,j):= phi(i);
g(i,i):= 2;
end;
write(out,nl,2,<:u, z, khi::>,<<-dddd.dddddd>,u,z,khi(1),
nl,2,<:r1,r2,r3: :>,r(1),r(2),r(3),
nl,2,<:G-matrix::>);
writemat(out,<<-ddddd.dddddd>,g,3,3);
for i:=1,2,3 do
for j:=1,2,3 do h(i,j):= sum(t(i,k)*g(k,j),k,1,3);
for j:=1,2,3 do
for i:=j step 1 until 3 do
g(i,j):= sum(h(i,k)*t(j,k),k,1,3);
writemat(out,<<-ddddd.dddddd>,g,3,3);
if bo then begin
bo:=false;
cos3:= cos(3*khi(1));
c:= 2-3*z**2+sq2*z**3*cos3;
g(1,1):= 6*(1-2*z**2)/c;
g(2,2):= (1-sq2*z*cos3-4*z**2)*3*(1+z**2)/(u**2*c);
g(3,3):= (1+sq2*z*cos3)*3*(1+z**2)/(u**2*c);
writemat(out,<<-ddddd.dddddd>,g,3,3);
end;
write(out,nl,2);
setposition(out,0,0); goto rep;
end end;
clear ozon
rename r.ozon
permanent ozon.15
head 1
ozon
1 0.1 30
1 0.01 30
1 0.01 10
1 0.01 1
1 0.1 0
1 0 0
0
;gosav
r=algol list.yes
external
real procedure dV(x,pm,dy,b);
value b; boolean b; array x,pm,dy;
begin
real r1,r2,r3,f,s,c,sq2,sq3,u,z,z2,v,v2,du,cos3khi,dcos,rho;
integer i,t;
rho:= x(3)*pi/180; t:=x(4); sq2:=sqrt(2); sq3:=sqrt(3);
if t>0 and t<6 then begin
du:=0; c:=cos(rho/2); s:=sin(rho/2);
for i:=1 step 1 until 11 do dy(i):=0;
rep:
r2:=r3:=1+x(1)/sq2; r1:=r2*c*2;
u:=(r1+r2+r3)/sq3; z2:=r2*r2*(4*c*c+2)/(u*u)-1;
z:=if z2>0 then sqrt(z2) else 0;
f:=1-6*z2-4*sq2*z2*z;
if t=3 then begin
dV:=0;
end else begin
r1:=sq2+x(1); r2:=r1*r1;
if t<>2 then begin
v:=pm(4)*3/4*(u-4/sq3)*u/r1;
dy(6):=f*u/r1; dy(7):=dy(6)*f;
for i:=6 step 1 until 7 do v:=v+pm(i)*dy(i);
if t=1 then dV:=v;
end;
if t<>1 then begin
v2:=pm(4)*2;
if t=2 then dV:=0;
end;
if t>2 then begin
r1:=x(1)-v/v2;
if r1-x(1)<>0 and (du=0 or abs du>abs v) then begin
x(1):=r1; du:=v; goto rep
end;
end end end;
if t=0 or t>3 then begin
r2:= 1+(x(1)+x(2))/sq2; r3:= 1+(x(1)-x(2))/sq2;
r1:=sqrt(r2*r2+r3*r3+2*r2*r3*cos(rho));
u:=(r1+r2+r3)/sq3;
z2:=(r1*r1+r2*r2+r3*r3)/(u*u)-1;
z:=if z2>0 then sqrt(z2) else 0;
cos3khi:=if z=0 then 1 else
(r1*sq3/u-1)*(r2*sq3/u-1)*(r3*sq3/u-1)*4/(z*sq2)**3;
f:=1-6*z2-4*sq2*cos3khi*z2*z;
dy(6):=u*f; dy(7):=dy(6)*f; dy(8):=f;
dy(9):=f*z2; dy(10):=dy(9)*z*cos3khi; dy(11):=dy(9)*z2;
z:=pm(1)*rho**2+pm(2)*rho**4+pm(3)*rho**6;
if t=0 then z:=z+pm(4)*x(1)**2+pm(5)*x(2)**2;
u:= pm(4)*3/8*(u-4/sq3)**2+pm(5)*16/3*(z2-1/8);
for i:=6 step 1 until 11 do u:=pm(i)*dy(i)+u;
dV:=if t>4 then -u else u-z;
end end;
end
clear funcfit vfit funclinda
rename r.funclinda
r=set
i algfuncfit
rename funcfit.vfit
;gosav
vfit
<C3 pot.>
65 4 11
5
138.3849 95.8967 57.9710 911140 826780
0 0 0 0 0 0
1 2 3 4 5
0 0 0 0 0 w0
0.01 0 0 0 0 w0
-0.01 0 0 0 0 w0
0 0.01 0 0 0 w0
0 -0.01 0 0 0 w0
0 0 0 1 0 w0
0 0 1 1 0 w50
0 0 2 1 0 w50
0 0 3 1 0 w50
0 0 5 1 0 w50
0 0 10 1 0 w50
0 0 15 1 0 w50
0 0 20 1 0 w50
0 0 30 1 0 w50
0 0 40 1 0 w50
0 0 50 1 0 w0
0 0 70 1 0 w0
0 0 80 1 0 w0
0 0 90 1 0 w0
0 0 100 1 0 w0
0 0 110 1 0 w0
0 0 120 1 0 w0
0 0 0 3 0 w0
0 0 0 4 0 w0
-1.1111 0 1 4 0 w1
0 0 2 4 0 w1
0 0 3 4 0 w1
0 0 5 4 0 w1
0 0 10 4 0 w1
0 0 15 4 0 w1
0 0 20 4 0 w1
0 0 30 4 0 w1
0 0 40 4 0 w1
0 0 50 4 0 w1
0 0 70 4 0 w1
0 0 80 4 0 w1
0 0 90 4 0 w1
0 0 100 4 0 w0
0 0 110 4 0 w0
0 0 120 4 0 w0
0 0 1 5 0 w0
0 0 2 5 0 w0
0 0 3 5 0 w0
0 0 4 5 0 w0
0 0 5 5 0 w0
0 0 10 5 0 w0
0 0 20 5 0 w0
0 0 30 5 0 w0
0 0 40 5 0 w0
0 0 50 5 0 w0
0 0 60 5 0 w0
0 0 70 5 0 w0
0 0 80 5 0 w0
0 0 90 5 0 w0
0 0 100 5 0 w0
0 0 110 5 0 w0
0 0 115 5 0 w0
0 0 116 5 0 w0
0 0 117 5 0 w0
0 0 118 5 0 w0
0 0 119 5 0 w0
0 0 120 5 0 w0
0 0 121 5 0 w0
0 0.01 120 5 0 w0
0 -0.01 120 5 0 w0
▶EOF◀