|
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: 11520 (0x2d00) Types: TextFile Names: »tppf1«
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ. └─⟦4334b4c0b⟧ └─⟦e3cb726bb⟧ »test« └─⟦this⟧
program ppf1 c implicit real*8(a-h,o-z) external in,out zone in,out c external *rbplot dimension n1(9),n3(9) c double precision a(6) real a(6) real sumu , cpu,time,time1,base real xins(1100),xz(1100) real xzz(1100),xans(1100) complex b(6) common /tvline/length,isy1,isy2 c read(in,31)n2,n0 call uforeadi(in,n2) call uforeadi(in,n0) read(in,32)n1 do 711 ib=1,8 711 n3(ib)=n1(ib) n3(9)=n1(9)+1 32 format(9i3) write(out,31)n2 n22=n2 if(n2-1)52,52,53 52 n22=2 31 format(3i4,i10) c 53 read(in,55)xacc,g 53 call uforead(in,xacc) call uforead(in,g) write(out,55)xacc,g 55 format(f10.8,f10.6,f10.4) c read(in,9)xl,d,rf,e,brod call uforead(in,xl) call uforead(in,d) call uforead(in,rf) call uforead(in,e) call uforead(in,brod) write(out,9)xl,d,rf,e,brod i4=-4 bred=brod*0.466882*10.**i4 xmax=0.700323 del=xmax/1100. do 49 jy=1,1100 49 xins(jy)=0. c if the time measure is short you schuold c compensate for the time used to call systime c The cpu time will depend somewhat on activities c on other process ( but yo will hardly see it ) c The real time used is highly dependant on c other process. c in order to obtain a accuracy of 0.1 millisecond c the time is messured relative to base. cpu = systime(1,0.0,base) cpu = systime(1,base,time) c if(n0)111,112,112 c 111 read(11,30)xins c 111 call uforead(in,xins) c go to 95 c 112 continue do 211 ll=1,9 theto=float(ll-1)*10. do 20 jj=1,n3(ll) theta=float(jj-1)*10./float(n1(ll))+theto theta=theta*3.14159/180. si=sin(theta) co=cos(theta) do 20 kk=1,n2 phi=float(kk-1)*90./float(n22-1) phi=phi*3.14159/180. co2=cos(2.*phi) si2=sin(2.*phi) co1=cos(phi) si1=sin(phi) 9 format(6f10.4) do 11 i=1,6 alfa=0. l=0 lim=0 x=0. 19 xh=0.01*rf*2.*d/(rf+2.*d) call froq(a,b,x,d,e,si,co2) a0=a(i) x=x+xh call froq(a,b,x,d,e,si,co2) a1=a(i) if(a0-rf)15,21,13 21 x=x-xh go to 4 13 if(a1-a0)12,16,16 15 if(a1-a0)16,16,12 16 l=l+1 if(l-6)122,12,11 122 x=x+d/2. go to 19 12 if(a0-a1)70,71,70 71 write(out,72) 72 format(14h first warning) 70 x=xh*(a0-rf)/(a0-a1)+x-xh call froq(a,b,x,d,e,si,co2) ca=abs(rf-a(i)) if(ca-xacc*xmax)4,4,6 4 n=x/del xalfa=x-alfa if(xalfa-2.*xacc)910,910,911 911 if(n-1100)23,23,11 23 call intens(xmax,b,xacc,x,d,e,si,co,si1,co1,co2,si2,xi,i) alfa=x xins(n)=xi/float(n3(ll))+xins(n) 910 l=l+1 if(l-6)36,11,11 36 x=x+d/2. 6 xh=xh/xl lim=lim+1 x=x-xh call froq(a,b,x,d,e,si,co2) ca=abs(rf-a(i)) if(ca-xacc*xmax)10,10,7 10 n=x/del xalfa=x-alfa if(xalfa-2.*xacc)900,900,901 901 if(n-1100)24,24,11 24 call intens(xmax,b,xacc,x,d,e,si,co,si1,co1,co2,si2,xi,i) alfa=x xins(n)=xi/float(n3(ll))+xins(n) 900 l=l+1 if(l-6)37,11,11 37 x=x+d/2. go to 19 7 a0=a(i) x=x+2.*xh call froq(a,b,x,d,e,si,co2) ca=abs(rf-a(i)) if(ca-xacc*xmax)14,14,8 14 n=x/del xalfa=x-alfa if(xalfa-2.*xacc)902,902,903 903 if(n-1100)25,25,11 25 call intens(xmax,b,xacc,x,d,e,si,co,si1,co1,co2,si2,xi,i) alfa=x xins(n)=xi/float(n3(ll))+xins(n) 902 l=l+1 if(l-6)39,11,11 39 x=x+d/2. go to 19 8 a1=a(i) if(a0-a1)73,74,73 74 write(out,75) 75 format(15h second warning) x=x-xh go to 101 73 x1=x x=2.*xh*(a0-rf)/(a0-a1)+x-2.*xh x2=x xnum=abs((x1-x2)/(d+x1+x2)) if(xnum-0.2)101,61,61 101 call froq(a,b,x,d,e,si,co2) if(lim-20)60,61,61 61 lim=0 x=2.6*d l=l+1 if(l-6)19,11,11 60 ca=abs(rf-a(i)) if(ca-xacc*xmax)18,18,27 27 if(x)123,28,28 123 x=2.6*d lim=lim+10 l=5 go to 6 28 if(x-2.*xmax)6,11,11 18 n=x/del xalfa=x-alfa if(xalfa-2.*xacc)62,62,905 905 if(n-1100)26,26,11 26 call intens(xmax,b,xacc,x,d,e,si,co,si1,co1,co2,si2,xi,i) alfa=x xins(n)=xi/float(n3(ll))+xins(n) 62 l=l+1 if(l-6)45,11,11 45 x=x+d/2. go to 19 11 continue 20 continue 211 continue c of time messurement procedure cpu = systime(1,base,time1) - cpu time = time1 - time write(out,300) cpu,time 300 format(10x,'cpu= ',f9.4,' real time = ',f9.4) if(n0)95,97,95 95 continue do 42 jc=1,1100 42 xz(jc)=float(jc)*del do 40 jh=1,1100 sumu=0. do 41 jq=1,1100 xqh=(xz(jq)-xz(jh))/bred axqh=1.+xqh*xqh 41 sumu=sumu+xqh*xins(jq)/(axqh*axqh) 40 xans(jh)=sumu do 22 ixi=1,1100 22 xzz(ixi)=xz(ixi)*100./(4.66882*g) if(n0)98,97,98 97 write(out,30)xins go to 99 30 format(10e10.3) 98 jyy=1100 c call time1 c call rbplot(xans,jyy,xzz) c call tvbgn('gt-40','lpenh') c call tvrng('user',0.,ymin,7.5,ymax) c call tvmap('y',xans,jyy,5) c call tvtext(xz,xans,tekst,30) c call tvgrph(xz,xans,jyy,'magnetic field in kg', c >'intensity') c call tvend 99 stop end subroutine froq(a,b,x,d,e,si,co2) c implicit double precision(c-h,o-z) c double precision a(6) real a(6) complex b(6) xh=x/2. c2=-(2.*d*d+6.*e*e+10.*xh*xh) c3=-(16.*xh*d*xh-24.*xh*xh*d*si*si+24.*xh*xh*e >*si*si*co2) c4=d*d*d*d+6.*d*d*e*e+9.*e*e*e*e >-10.*xh*xh*d*d+12.*xh*xh*d*d >*si*si+9.*xh*xh*xh*xh+18.*e*e*xh*xh-36. >*e*e*xh*xh*si*si+24.*xh*xh*d*e*si*si*co2 q=-(12.*c4+c2*c2)/9. r=(-72.*c2*c4+27.*c3*c3+2.*c2*c2*c2)/54. dd=sqrt(-q) xx=r/(dd*q) cxx=abs(xx) if(1.-cxx)12,12,11 12 dt=acos(-1.) go to 13 c 11 dt=acos(r/(dd*q)) 13 dt=dt/3. x1=-2.*dd*cos(dt)+c2/3. zaa=abs(4.*x1-4.*c2) zbb=abs(x1*x1-4.*c4) za=sqrt(zaa) zb=sqrt(zbb)/2. zc=-(x1+c2)/4. if(c3)1,1,2 2 zb=-zb 1 zcc=abs(zc-zb) zcb=abs(zc+zb) szcc=sqrt(zcc) szcb=sqrt(zcb) z1=-za/4.+szcc z2=-za/4.-szcc z3=za/4.+szcb z4=za/4.-szcb a(1)=abs(z1-z2) a(2)=abs(z1-z3) a(3)=abs(z1-z4) a(4)=abs(z2-z3) a(5)=abs(z2-z4) a(6)=abs(z3-z4) b(1)=cmplx(z1,z2) b(2)=cmplx(z1,z3) b(3)=cmplx(z1,z4) b(4)=cmplx(z2,z3) b(5)=cmplx(z2,z4) b(6)=cmplx(z3,z4) return end subroutine intens(xmax,b,xacc,x,d,e,si,co,si1,co1,co2, >si2,xi,i) c implicit double precision(a-h,o-z) complex u(4),um(4),b(6),sz,sp,sm,sumu,qumu,snor1,snor2 complex to,s3,solk xucc=xacc/10. do 2 lj=1,4 u(lj)=cmplx(0.,0.) 2 um(lj)=cmplx(0.,0.) e1=real(b(i)) e2=aimag(b(i)) e01=1.5*x*co+d e02=0.5*x*co-d e03=-0.5*x*co-d e04=-1.5*x*co+d a1=abs(e1-e01) a2=abs(e1-e02) a3=abs(e1-e03) a4=abs(e1-e04) b1=abs(e2-e01) b2=abs(e2-e02) b3=abs(e2-e03) b4=abs(e2-e04) if(a1-xucc*xmax)4,4,3 4 u(1)=cmplx(1.,0.) go to 11 3 if(a2-xucc*xmax)6,6,5 6 u(2)=cmplx(1.,0.) go to 11 5 if(a3-xucc*xmax)8,8,7 8 u(3)=cmplx(1.,0.) go to 11 7 if(a4-xucc*xmax)10,10,9 10 u(4)=cmplx(1.,0.) go to 11 9 u(3)=cmplx(1.,0.) xna=3.*x*x*si*si/(4.*(e1-e01))+3.*e*e/(e1-e04)+e02-e1 sis=abs(si) i4=-4 if(sis-10.**i4)31,31,30 31 axna=abs(xna) axna=axna*e*e i8=-8 if(axna-10.**i8)41,41,40 41 u(3)=cmplx(0.,0.) u(1)=cmplx(0.,0.) u(2)=cmplx(1.,0.) x4r=-sqrt(3.)*e/(e04-e1) u(4)=cmplx(x4r,0.) go to 42 40 u(2)=cmplx(0.,0.) u(4)=cmplx(0.,0.) x1r=-sqrt(3.)*e/(e01-e1) u(1)=cmplx(x1r,0.) go to 42 30 alfrr=-x*si*co1*(1.+3.*(e1-d)*e >/((e1-d)*(e1-d)-9.*co*co*x*x/4.))/xna alfir=x*si*si1*(-1.)*(1.-3.*e*(e1-d)/((e1-d) >*(e1-d)-9.*x*x*co*co/4.))/xna u(2)=cmplx(alfrr,alfir) x1r=-sqrt(3.)/2.*x*si*(co1*alfrr+si1*(-1.)*alfir)/(e01-e1)- >sqrt(3.)*e/(e01-e1) x1i=-sqrt(3.)/2.*x*si*(co1*alfir-si1*(-1.)*alfrr)/ >(e01-e1) x4r=-(sqrt(3.)/2.*x*si*co1+sqrt(3.)*e*alfrr)/(e04-e1) x4i=-(sqrt(3.)/2.*x*si*si1*(-1.)+sqrt(3.)*e*alfir)/(e04-e1) u(1)=cmplx(x1r,x1i) u(4)=cmplx(x4r,x4i) 42 sumu=cmplx(0.,0.) do 21 jak=1,4 21 sumu=sumu+u(jak)*conjg(u(jak)) snor1=cmplx(1.,0.)/csqrt(sumu) do 22 juk=1,4 22 u(juk)=snor1*u(juk) 11 if(b1-xucc*xmax)14,14,13 14 um(1)=cmplx(1.,0.) go to 12 13 if(b2-xucc*xmax)16,16,15 16 um(2)=cmplx(1.,0.) go to 12 15 if(b3-xucc*xmax)18,18,17 18 um(3)=cmplx(1.,0.) go to 12 17 if(b4-xucc*xmax)20,20,19 20 um(4)=cmplx(1.,0.) go to 12 19 um(3)=cmplx(1.,0.) xnb=3.*x*x*si*si/(4.*(e2-e01))+3.*e*e/(e2-e04)+e02-e2 sis=abs(si) i4=-4 if(sis-10.**i4)34,34,33 34 axnb=abs(xnb) axnb=axnb*e*e i8=-8 if(axnb-10.**i8)43,43,44 43 um(3)=cmplx(0.,0.) um(1)=cmplx(0.,0.) um(2)=cmplx(1.,0.) xm4r=-sqrt(3.)*e/(e04-e2) um(4)=cmplx(xm4r,0.) go to 45 44 um(2)=cmplx(0.,0.) um(4)=cmplx(0.,0.) xm1r=-sqrt(3.)*e/(e01-e2) um(1)=cmplx(xm1r,0.) go to 45 33 alfri=-x*si*co1*(1.+3.*(e2-d)*e >/((e2-d)*(e2-d)-9.*co*co*x*x/4.))/xnb alfii=x*si*si1*(-1.)*(1.-3.*e*(e2-d)/((e2-d) >*(e2-d)-9.*x*x*co*co/4.))/xnb um(2)=cmplx(alfri,alfii) x1mr=-sqrt(3.)/2.*x*si*(co1*alfri+si1*(-1.)*alfii)/(e01-e2)- >sqrt(3.)*e/(e01-e2) x1mi=-sqrt(3.)/2.*x*si*(co1*alfii-si1*(-1.)*alfri)/ >(e01-e2) um(1)=cmplx(x1mr,x1mi) x4mr=-(sqrt(3.)/2.*x*si*co1+sqrt(3.)*e*alfri)/(e04-e2) x4mi=-(sqrt(3.)/2.*x*si*si1*(-1.)+sqrt(3.)*e*alfii)/(e04-e2) um(4)=cmplx(x4mr,x4mi) 45 qumu=cmplx(0.,0.) do 23 jik=1,4 23 qumu=qumu+um(jik)*conjg(um(jik)) snor2=cmplx(1.,0.)/csqrt(qumu) do 24 jok=1,4 24 um(jok)=snor2*um(jok) 12 sz=cmplx(0.,0.) do 1 lk=1,4 flk=float(lk) solk=cmplx(2.5-flk,0.) 1 sz=sz+solk*u(lk)*conjg(um(lk)) sh3=sqrt(3.) s3=cmplx(sh3,0.) to=cmplx(2.,0.) sm=s3*conjg(um(2))*u(1)+to*conjg(um(3))*u(2)+ >s3*conjg(um(4))*u(3) sp=s3*conjg(um(1))*u(2)+to*conjg(um(2))*u(3)+ >s3*conjg(um(3))*u(4) rzz=real(sz*conjg(sz)) rmm=real(sm*conjg(sm)) rpp=real(sp*conjg(sp)) rpm=real(sp*conjg(sm)) rmp=real(sm*conjg(sp)) apm=aimag(sp*conjg(sm)) amp=aimag(sm*conjg(sp)) rlpm=real(sm+sp) alpm=aimag(sm-sp) rz=real(sz) xi=(0.5*si*si*rzz+(1.+co*co)/8.*(rmm+rpp)- >si*si*co2/8.*(rmp+rpm)-si*si*si2/8.*(amp-apm)- >0.5*si*co*rz*co1*rlpm-0.5*si*co*rz*si1*alpm)*si return end ▶EOF◀