DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦5e52f3257⟧ TextFile

    Length: 11520 (0x2d00)
    Types: TextFile
    Names: »tppf1«

Derivation

└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ.
    └─⟦4334b4c0b⟧ 
        └─⟦e3cb726bb⟧ »test« 
            └─⟦this⟧ 

TextFile

      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◀