1 / 9

objects

A quick overview of Object-oriented, Distributed, Network-based software. objects. Anthony Lomax Anthony Lomax Scientific Software Mouans-Sartoux, France anthony@alomax.net www.alomax.net. program horrible(tr,gr,t,g,dist)

axel-brock
Download Presentation

objects

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A quick overview of Object-oriented, Distributed, Network-based software objects Anthony Lomax Anthony Lomax Scientific Software Mouans-Sartoux, France anthony@alomax.netwww.alomax.net

  2. 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=.006722653d0 p=.006768153d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr=.000001d0 if(str.eq.0.d0) str=.000001d0 r1=6378.388d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t=.000001d0 goto 999 100 st=dsin(t) ct=dcos(t) r2=6378.388d0/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=.006722653d0 p=.006768153d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr=.000001d0 if(str.eq.0.d0) str=.000001d0 r1=6378.388d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t=.000001d0 goto 999 100 st=dsin(t) ct=dcos(t) r2=6378.388d0/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=.006722653d0 p=.006768153d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr=.000001d0 if(str.eq.0.d0) str=.000001d0 r1=6378.388d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t=.000001d0 goto 999 100 st=dsin(t) ct=dcos(t) r2=6378.388d0/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=.006722653d0 p=.006768153d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr=.000001d0 if(str.eq.0.d0) str=.000001d0 r1=6378.388d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t=.000001d0 goto 999 100 st=dsin(t) ct=dcos(t) r2=6378.388d0/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=.006722653d0 p=.006768153d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr=.000001d0 if(str.eq.0.d0) str=.000001d0 r1=6378.388d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t=.000001d0 goto 999 100 st=dsin(t) ct=dcos(t) r2=6378.388d0/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=.006722653d0 p=.006768153d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr=.000001d0 if(str.eq.0.d0) str=.000001d0 r1=6378.388d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t=.000001d0 goto 999 100 st=dsin(t) ct=dcos(t) r2=6378.388d0/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=.006722653d0 p=.006768153d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr=.000001d0 if(str.eq.0.d0) str=.000001d0 r1=6378.388d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t=.000001d0 goto 999 100 st=dsin(t) ct=dcos(t) r2=6378.388d0/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=.006722653d0 p=.006768153d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr=.000001d0 if(str.eq.0.d0) str=.000001d0 r1=6378.388d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t=.000001d0 goto 999 100 st=dsin(t) ct=dcos(t) r2=6378.388d0/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=.006722653d0 p=.006768153d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr=.000001d0 if(str.eq.0.d0) str=.000001d0 r1=6378.388d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t=.000001d0 goto 999 100 st=dsin(t) ct=dcos(t) r2=6378.388d0/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=.006722653d0 p=.006768153d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr=.000001d0 if(str.eq.0.d0) str=.000001d0 r1=6378.388d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t=.000001d0 goto 999 100 st=dsin(t) ct=dcos(t) r2=6378.388d0/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=.006722653d0 p=.006768153d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr=.000001d0 if(str.eq.0.d0) str=.000001d0 r1=6378.388d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t=.000001d0 goto 999 100 st=dsin(t) ct=dcos(t) r2=6378.388d0/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=.006722653d0 p=.006768153d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr=.000001d0 if(str.eq.0.d0) str=.000001d0 r1=6378.388d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t=.000001d0 goto 999 100 st=dsin(t) ct=dcos(t) r2=6378.388d0/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=.006722653d0 p=.006768153d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr=.000001d0 if(str.eq.0.d0) str=.000001d0 r1=6378.388d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t=.000001d0 goto 999 100 st=dsin(t) ct=dcos(t) r2=6378.388d0/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=.006722653d0 p=.006768153d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr=.000001d0 if(str.eq.0.d0) str=.000001d0 r1=6378.388d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t=.000001d0 goto 999 100 st=dsin(t) ct=dcos(t) r2=6378.388d0/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=.006722653d0 p=.006768153d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr=.000001d0 if(str.eq.0.d0) str=.000001d0 r1=6378.388d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t=.000001d0 goto 999 100 st=dsin(t) ct=dcos(t) r2=6378.388d0/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=.006722653d0 p=.006768153d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr=.000001d0 if(str.eq.0.d0) str=.000001d0 r1=6378.388d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t=.000001d0 goto 999 100 st=dsin(t) ct=dcos(t) r2=6378.388d0/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=.006722653d0 p=.006768153d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr=.000001d0 if(str.eq.0.d0) str=.000001d0 r1=6378.388d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t=.000001d0 goto 999 100 st=dsin(t) ct=dcos(t) r2=6378.388d0/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=.006722653d0 p=.006768153d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr=.000001d0 if(str.eq.0.d0) str=.000001d0 r1=6378.388d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t=.000001d0 goto 999 100 st=dsin(t) ct=dcos(t) r2=6378.388d0/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=.006722653d0 p=.006768153d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr=.000001d0 if(str.eq.0.d0) str=.000001d0 r1=6378.388d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t=.000001d0 goto 999 100 st=dsin(t) ct=dcos(t) r2=6378.388d0/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=.006722653d0 p=.006768153d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr=.000001d0 if(str.eq.0.d0) str=.000001d0 r1=6378.388d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t=.000001d0 goto 999 100 st=dsin(t) ct=dcos(t) r2=6378.388d0/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=.006722653d0 p=.006768153d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr=.000001d0 if(str.eq.0.d0) str=.000001d0 r1=6378.388d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t=.000001d0 goto 999 100 st=dsin(t) ct=dcos(t) r2=6378.388d0/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=.006722653d0 p=.006768153d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr=.000001d0 if(str.eq.0.d0) str=.000001d0 r1=6378.388d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t=.000001d0 goto 999 100 st=dsin(t) ct=dcos(t) r2=6378.388d0/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=.006722653d0 p=.006768153d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr=.000001d0 if(str.eq.0.d0) str=.000001d0 r1=6378.388d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t=.000001d0 goto 999 100 st=dsin(t) ct=dcos(t) r2=6378.388d0/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=.006722653d0 p=.006768153d0 str=dsin(tr) ctr=dcos(tr) if(ctr.eq.0.d0) ctr=.000001d0 if(str.eq.0.d0) str=.000001d0 r1=6378.388d0/dsqrt(1.d0-h*str*str) if(t.eq.0.d0) t=.000001d0 goto 999 100 st=dsin(t) ct=dcos(t) r2=6378.388d0/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 procedure user interface computer operating system logic / calculations classic program I/O data management

  3. user interface logic / calculations data management objects computer B Object-oriented, Distributed, Network-based software computer operating system www intranet classic program I/O computer A

  4. objects user interface logic / calculations data management

  5. 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 < 0 || 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 logic / calculations

  6. 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 < 0 || 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 “program” (software process) distributed and dynamic program data methods object restricted access messages

  7. distributed & dynamic distributed data management distributed and dynamic program data methods Java-RMI Corba SOAP http: ftp: restricted access messages http: plug-in, applet download

  8. Object-oriented, Distributed, Network-based seismology

  9. A quick overview of Object-oriented, Distributed, Network-based software References General: Developer.com - http://developer.com Developer.com deesign - http://www.developer.com/design O'Reilly Network - http://www.oreillynet.com Scientific: D. Walker, Computer Science, Univ of Wales Cardiff, UK - http://www.cs.cf.ac.uk/user/David.W.Walker/talks.html The Globus Project: GRID computing - http://www.globus.org UK Research Councils e-science - http://www.rcuk.ac.uk/escience Seismological: Information Technology by T. Owens, Geological SciencesUniversity of South Carolina, USA -http://www.seismosoc.org/publications/SRL/SRL_73/srl_73-4_es.html SCEC Community Modeling Environment - http://www.scec.org/cme Anthony Lomax Scientific Software, Mouans-Sartoux, France anthony@alomax.netwww.alomax.net

More Related