objects A quick overview of Object-oriented, Distributed, Network-based software A quick overview of Object-oriented, Distributed, Network-based software Anthony Lomax Anthony Lomax Scientific Software Mouans-Sartoux, France Anthony Lomax Anthony Lomax Scientific Software Mouans-Sartoux, France
program horrible(tr,gr,t,g,dist) common/mess/t,g,h,p,str,ctr,r1,r2 real*8 d,tr,gr,t,g,h,p,str,ctr,r1,r2,st,ct,cdg, &sdg,q,x,y,z,az12,az21,p0,horrible if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z return end program horrible(tr,gr,t,g,dist) common/mess/t,g,h,p,str,ctr,r1,r2 real*8 d,tr,gr,t,g,h,p,str,ctr,r1,r2,st,ct,cdg, &sdg,q,x,y,z,az12,az21,p0,horrible if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z return end program horrible(tr,gr,t,g,dist) common/mess/t,g,h,p,str,ctr,r1,r2 real*8 d,tr,gr,t,g,h,p,str,ctr,r1,r2,st,ct,cdg, &sdg,q,x,y,z,az12,az21,p0,horrible if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z return end program horrible(tr,gr,t,g,dist) common/mess/t,g,h,p,str,ctr,r1,r2 real*8 d,tr,gr,t,g,h,p,str,ctr,r1,r2,st,ct,cdg, &sdg,q,x,y,z,az12,az21,p0,horrible if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z return end program horrible(tr,gr,t,g,dist) common/mess/t,g,h,p,str,ctr,r1,r2 real*8 d,tr,gr,t,g,h,p,str,ctr,r1,r2,st,ct,cdg, &sdg,q,x,y,z,az12,az21,p0,horrible if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z return end program horrible(tr,gr,t,g,dist) common/mess/t,g,h,p,str,ctr,r1,r2 real*8 d,tr,gr,t,g,h,p,str,ctr,r1,r2,st,ct,cdg, &sdg,q,x,y,z,az12,az21,p0,horrible if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z return end program horrible(tr,gr,t,g,dist) common/mess/t,g,h,p,str,ctr,r1,r2 real*8 d,tr,gr,t,g,h,p,str,ctr,r1,r2,st,ct,cdg, &sdg,q,x,y,z,az12,az21,p0,horrible if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z return end program horrible(tr,gr,t,g,dist) common/mess/t,g,h,p,str,ctr,r1,r2 real*8 d,tr,gr,t,g,h,p,str,ctr,r1,r2,st,ct,cdg, &sdg,q,x,y,z,az12,az21,p0,horrible if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z return end program horrible(tr,gr,t,g,dist) common/mess/t,g,h,p,str,ctr,r1,r2 real*8 d,tr,gr,t,g,h,p,str,ctr,r1,r2,st,ct,cdg, &sdg,q,x,y,z,az12,az21,p0,horrible if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z return end program horrible(tr,gr,t,g,dist) common/mess/t,g,h,p,str,ctr,r1,r2 real*8 d,tr,gr,t,g,h,p,str,ctr,r1,r2,st,ct,cdg, &sdg,q,x,y,z,az12,az21,p0,horrible if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z if(tr.eq.t.and.gr.eq.g) goto 100 h= d0 p= d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr= d0 if(str.eq.0.d0) str= d0 r1= d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t= d0 goto st=dsin(t) ct=dcos(t) r2= d0/dsqrt(1.d0-h*st*st) cdg=dcos(g-gr) sdg=dsin(g-gr) q=st*ctr/((1.d0+p)*ct*str)+h*r1*ctr/(r2*ct) x=r2*ct*cdg y=r2*ct*sdg z=(1.d0-h)*(r2*st-r1*str) az12=datan2(sdg,(q-cdg)*str) q=str*ct/(ctr*st*(1.d0+p))+h*r2*ct/(r1*ctr) horrible=q*x-az12*y+z return end computer operating system classic program I/O user interface data management logic / calculations procedure
computer operating system classic program I/O user interface logic / calculations data management objects www intranet Object-oriented, Distributed, Network-based software Object-oriented, Distributed, Network-based software computer A computer B
logic / calculations user interface data management objects
logic / calculations package net.alomax.seis; import net.alomax.math.*; /** A basic Seismogram object */ public class BasicSeismogram extends BasicItem implements Serializable { public TimeSeries timeSeries;// The seismogram data public BasicChannel channel;// The channel information public BasicHypocenter hypocenter;// The hypocenter public int iyear;// The year of the reference time public int ijday;// The day of year of reference time public int ihour, imin, isec;// The reference hour and min public double sec;// The reference sec public double timeMin;// The offset of the first sample /** Returns the amplitude at a given time. */ public final double ampAtTime(double time) { double sampleOffset = (time - timeMin) / (double) timeSeries.sampleInt; int nsample = (int) sampleOffset; if (nsample = timeSeries.sampleLength() - 1) return INVALID_AMPLITUDE; double fract = sampleOffset - (double) nsample; double amp1, amp2; amp1 = (double) timeSeries.sampleAt(nsample); amp2 = (double) timeSeries.sampleAt(nsample + 1); return(amp1 + (amp2 - amp1) * fract); } /** Removes the mean of the time series samples. */ public void removeMean() { timeSeries.removeMean(); } }// end class BasicSeismogram package net.alomax.seis; import net.alomax.math.*; /** A basic Seismogram object */ public class BasicSeismogram extends BasicItem implements Serializable { public TimeSeries timeSeries;// The seismogram data public BasicChannel channel;// The channel information public BasicHypocenter hypocenter;// The hypocenter public int iyear;// The year of the reference time public int ijday;// The day of year of reference time public int ihour, imin, isec;// The reference hour and min public double sec;// The reference sec public double timeMin;// The offset of the first sample /** Returns the amplitude at a given time. */ public final double ampAtTime(double time) { double sampleOffset = (time - timeMin) / (double) timeSeries.sampleInt; int nsample = (int) sampleOffset; if (nsample = timeSeries.sampleLength() - 1) return INVALID_AMPLITUDE; double fract = sampleOffset - (double) nsample; double amp1, amp2; amp1 = (double) timeSeries.sampleAt(nsample); amp2 = (double) timeSeries.sampleAt(nsample + 1); return(amp1 + (amp2 - amp1) * fract); } /** Removes the mean of the time series samples. */ public void removeMean() { timeSeries.removeMean(); } }// end class BasicSeismogram
package net.alomax.seis; import net.alomax.math.*; /** A basic Seismogram object */ public class BasicSeismogram extends BasicItem implements Serializable { public TimeSeries timeSeries;// The seismogram data public BasicChannel channel;// The channel information public BasicHypocenter hypocenter;// The hypocenter public int iyear;// The year of the reference time public int ijday;// The day of year of reference time public int ihour, imin, isec;// The reference hour and min public double sec;// The reference sec public double timeMin;// The offset of the first sample /** Returns the amplitude at a given time. */ public final double ampAtTime(double time) { double sampleOffset = (time - timeMin) / (double) timeSeries.sampleInt; int nsample = (int) sampleOffset; if (nsample = timeSeries.sampleLength() - 1) return INVALID_AMPLITUDE; double fract = sampleOffset - (double) nsample; double amp1, amp2; amp1 = (double) timeSeries.sampleAt(nsample); amp2 = (double) timeSeries.sampleAt(nsample + 1); return(amp1 + (amp2 - amp1) * fract); } /** Removes the mean of the time series samples. */ public void removeMean() { timeSeries.removeMean(); } }// end class BasicSeismogram package net.alomax.seis; import net.alomax.math.*; /** A basic Seismogram object */ public class BasicSeismogram extends BasicItem implements Serializable { public TimeSeries timeSeries;// The seismogram data public BasicChannel channel;// The channel information public BasicHypocenter hypocenter;// The hypocenter public int iyear;// The year of the reference time public int ijday;// The day of year of reference time public int ihour, imin, isec;// The reference hour and min public double sec;// The reference sec public double timeMin;// The offset of the first sample /** Returns the amplitude at a given time. */ public final double ampAtTime(double time) { double sampleOffset = (time - timeMin) / (double) timeSeries.sampleInt; int nsample = (int) sampleOffset; if (nsample = timeSeries.sampleLength() - 1) return INVALID_AMPLITUDE; double fract = sampleOffset - (double) nsample; double amp1, amp2; amp1 = (double) timeSeries.sampleAt(nsample); amp2 = (double) timeSeries.sampleAt(nsample + 1); return(amp1 + (amp2 - amp1) * fract); } /** Removes the mean of the time series samples. */ public void removeMean() { timeSeries.removeMean(); } }// end class BasicSeismogram data methods messages restricted access restricted access distributed and dynamic program “program” (software process) object
data methods messages restricted access restricted access distributed and dynamic program distributed data management distributed data management plug-in, applet download plug-in, applet download distributed & dynamic distributed & dynamic http : ftp : Java-RMI Corba SOAP Java-RMI Corba SOAP http:
Object-oriented, Distributed, Network-based seismology Object-oriented, Distributed, Network-based seismology
A quick overview of Object-oriented, Distributed, Network-based software References A quick overview of Object-oriented, Distributed, Network-based software References Anthony Lomax Scientific Software, Mouans-Sartoux, France Anthony Lomax Scientific Software, Mouans-Sartoux, France General: Developer.com - Developer.com deesign - O'Reilly Network - Scientific: D. Walker, Computer Science, Univ of Wales Cardiff, UK The Globus Project: GRID computing - UK Research Councils e-science - Seismological: Information Technology by T. Owens, Geological Sciences University of South Carolina, USA SCEC Community Modeling Environment - General: Developer.com - Developer.com deesign - O'Reilly Network - Scientific: D. Walker, Computer Science, Univ of Wales Cardiff, UK The Globus Project: GRID computing - UK Research Councils e-science - Seismological: Information Technology by T. Owens, Geological Sciences University of South Carolina, USA SCEC Community Modeling Environment -