|
|
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: 3072 (0xc00)
Types: TextFile
Names: »cho3txt«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt.
└─⟦0364f57e3⟧
└─⟦913d5b2ff⟧ »bzmodel«
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ.
└─⟦4334b4c0b⟧
└─⟦913d5b2ff⟧ »bzmodel«
└─⟦this⟧
program for integrating of open oregonator model with chstiff
26 11 79 17 00 00
begin
zone bs(2*128,2,stderror);
integer i;
real date,clock,t,dt,t1,t2,h,eps,
a,k1,k2,k3,k4,k5,km1,km2,km3,km4,km5,v;
real array X(1:4);
procedure fjac(bjac,X,t,F,A);
boolean bjac;
real t;
real array X,F,A;
begin real w1,w2,w3,w4,w5,x,y,z,p,
w1x,w1y,w1p,w2x,w2y,w2p,w3x,w3z,w4x,w4p,w5y,w5z;
x:= X(1); y:= X(2); z:= X(3); p:= X(4);
w1:= k1*a*y-km1*x*p;
w2:= k2*x*y-km2*p*p;
w3:= k3*a*x-km3*x*x*z;
w4:= k4*x*x-km4*a*p;
w5:= k5*z-km5*y;
F(1):= w1-w2+w3-2*w4-v*x;
F(2):= -w1-w2+w5-v*y;
F(3):= w3-w5-v*z;
F(4):= w1+2*w2+w4-w5-v*p;
if bjac then
begin w1x:= -km1*p; w1y:= k1*a; w1p:= -km1*x;
w2x:= k2*y; w2y:= k2*x; w2p:= -2*km2*p;
w3x:= k3*a-2*km3*x*z; w3z:= -km3*x*x;
w4x:= 2*k4*x; w4p:= -km4*a;
w5y:= -km5; w5z:= k5;
A(1,1):= w1x-w2x+w3x-2*w4x-v;
A(1,2):= w1y-w2y;
A(1,3):= w3z;
A(1,4):= w1p-w2p-2*w4p;
A(2,1):= -w1x-w2x;
A(2,2):= -w1y-w2y+w5y-v;
A(2,3):= w5z;
A(2,4):= -w1p-w2p;
A(3,1):= w3x;
A(3,2):= -w5y;
A(3,3):= w3z-w5z-v;
A(3,4):= 0;
A(4,1):= w1x+2*w2x+w4x;
A(4,2):= w1y+2*w2y-w5y;
A(4,3):= -w5z;
A(4,4):= w1p+2*w2p+w4p-v;
end;
end;
write(out,<:<10>X = :>); setposition(out,0,0); read(in,X);
write(out,<:<10>a,k1,k2,k3,k4,k5,km1,km2,km3,km4,km5,v = <10>:>);
setposition(out,0,0);
read(in,a,k1,k2,k3,k4,k5,km1,km2,km3,km4,km5,v);
write(out,<:<10>t1,dt,t2,h,eps = :>); setposition(out,0,0);
read(in,t1,dt,t2,h,eps);
systime(1,0,date); date:=systime(2,date,clock);
open(bs,4,<:kemdata:>,0);
outrec(bs,24);
bs(1):=X(1); bs(2):= X(2); bs(3):=X(3); bs(4):=X(4);
bs(5):=a; bs(6):=k1; bs(7):=k2; bs(8):=k3;
bs(9):=k4; bs(10):=k5; bs(11):=km1; bs(12):=km2;
bs(13):=km3; bs(14):=km4; bs(15):=km5; bs(16):=v;
bs(17):=t1; bs(18):=dt; bs(19):=t2; bs(20):=h;
bs(21):=eps; bs(23):=date; bs(24):=clock;
outrec(bs,4);
for i:= 1 step 1 until 4 do
bs(i):= X(i);
t:= t1; i:= 0;
l1: chstiff(4,X,t,t+dt,fjac,h,eps);
i:= i+1;
if opkey then
begin
write(out,<:<10>:>,<<ddddd.d>,t,
<< d.dddd>,h,<< -d.dddd'-dd>,X(1),X(2),X(3),X(4));
setposition(out,0,0);
end;
outrec(bs,4);
bs(1):=X(1); bs(2):=X(2); bs(3):=X(3); bs(4):=X(4);
if t<t2 then goto l1;
close(bs,true);
end;
▶EOF◀