|
|
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: »algisocomp«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt.
└─⟦0364f57e3⟧
└─⟦7e928b248⟧ »algbib«
└─⟦this⟧
;kemlab5 1
isocomp=set 40
permanent isocomp.15
isocomp=algol index.no
\f
ISOCOMP DC/PAL 74
begin
comment Program til beregning af delvis isotopsubstituerede mole-
culers normalsvingningsfrekvenser (den komplette isotopregel)
S. Brodersen, A. Langseth, Kgl. Danske Videnskab. Selskab, Mat.-
fys. Skrifter 1, No. 5 (1958)
S. Brodersen, A. Langseth, J. Mol. Spectr. 3, 114 (1959)
Inputregler:
1) tekststreng i <>
2) antal normalsvingningsfrekvenser i klasse 1
3) antal normalsvingningsfrekvenser i klasse 2
4) normalsvingningsfrekvenser for A-moleculet i klasse 1
5) normalsvingningsfrekvneser for A-moleculet i klasse 2
6) normalsvingningsfrekvenser for C-moleculet i klasse 1
7) normalsvingningsfrekvenser for C-moleculet i klasse 2
8) fmin, hvis fmin:=0 sættes fmin til mindste frekvens
for C-moleculet
9) fmax, hvis fmax:=0 sættes fmax til største frekvens
for A-moleculet
10) deltaf, benyt ikke værdier under 0.1;
integer i,j,p,q,n,k;
real x,y,y0,z,z0,xmin,xmax,deltax,fmin,fmax,deltaf,a1,a2,c1,c2,
tau1,tau2;
array head(1:12);
boolean nl,sp;
nl:=false add 10; sp:=false add 32;
readhead(in,head,1); read(in,p,q); n:=p+q;
begin
array A1(1:p),A2(1:q),C1(1:p),C2(1:q),B1(1:n),B2(1:n);
read(in,A1,A2,C1,C2); xmin:=C1(1); xmax:=A1(1); tau1:=tau2:=1;
for j:=1 step 1 until p do
begin if C1(j)<xmin then xmin:=C1(j);
if A1(j)>xmax then xmax:=A1(j);
tau1:=C1(j)/A1(j)*tau1; B1(j):=B2(j):=0;
A1(j):=(A1(j)/1000)**2; C1(j):=(C1(j)/1000)**2;
end;
for j:=1 step 1 until q do
begin if C2(j)<xmin then xmin:=C2(j);
if A2(j)>xmax then xmax:=A2(j);
tau2:=C2(j)/A2(j)*tau2; B1(j+p):=B2(j+p):=0;
A2(j):=(A2(j)/1000)**2; C2(j):=(C2(j)/1000)**2;
end;
read(in,fmin,fmax,deltaf); if deltaf<0.1 then deltaf:=0.1;
if fmin=0 then fmin:=xmin-5*deltaf;
if fmax=0 then fmax:=xmax+5*deltaf;
xmin:=fmin/1000; xmax:=fmax/1000;
deltax:=deltaf/1000; k:=1; y0:=0;
for z:=xmin step deltax until xmax do
begin a1:=a2:=c1:=c2:=1; x:=z**2;
for j:=1 step 1 until p do
begin a1:=a1*(x-A1(j)); c1:=c1*(x-C1(j)); end;
for j:=1 step 1 until q do
begin a2:=a2*(x-A2(j)); c2:=c2*(x-C2(j)); end;
y:=a1*c2+a2*c1;
if (sign(y0)=sign(y)) or (y0=0) then goto SLUT;
B1(k):=z0*1000; B2(k):=z*1000;
k:=k+1; SLUT: z0:=z; y0:=y;
end;
if n>k-1 then
begin write(out,nl,5,<:n = :>,<<dd>,n,<: ANTAL NULPUNKTER: :>,
<<dd>,k-1); goto F;
end;
i:=1; write(out,<:<12>:>,nl,5,string head(increase(i)),<:
BEREGNEDE FREKVENSER FOR
MONOSUBSTITUERET MOLECULE:
:>);
for j:=1 step 1 until n do
write(out,sp,3,<<dd>,j,sp,4,<<dddd.dd>,B1(j),<: - :>,B2(j),nl,1);
write(out,nl,3,<:
USUBSTITUERET DISUBSTITUERET
MOLECULE (A): MOLECULE (C):
KLASSE 1::>,sp,5);
for j:=1 step 1 until p do
write(out,<<dd>,j,sp,3,<<dddd.dd>,sqrt(A1(j))*1000,sp,10,
sqrt(C1(j))*1000,nl,1,sp,14);
write(out,nl,1,sp,15,<:TAU = :>,<<d.dddd>,tau1,nl,4,<:KLASSE 2::>,
sp,5);
for j:=1 step 1 until q do
write(out,<<dd>,j,sp,3,<<dddd.dd>,sqrt(A2(j))*1000,sp,10,
sqrt(C2(j))*1000,nl,1,sp,14); write(out,nl,1,sp,15,<:TAU = :>,
<<d.dddd>,tau2,nl,5,<:<12>:>);
end; F: end;
▶EOF◀