c*********************** problem name: domains ************************ c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine a1xy(x,y,u,ux,uy,rl,itag,values) c implicit real (a-h,o-z) implicit integer (i-n) c real + values(*) character*80 + su common /val0/k0,ku,kx,ky,kl,kuu,kux,kuy,kul, + kxu,kxx,kxy,kxl,kyu,kyx,kyy,kyl,klu,klx,kly,kll common /atest2/iu(100),a1x,a1y,a1u,a2x,a2y,a2u, + bux,buy,cu0,cu1,ru(90),su(100) c values(k0)=a1x*ux+a1y*uy+a1u*u values(ku)=a1u values(kx)=a1x values(ky)=a1y return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine a2xy(x,y,u,ux,uy,rl,itag,values) c implicit real (a-h,o-z) implicit integer (i-n) c real + values(*) character*80 + su common /val0/k0,ku,kx,ky,kl,kuu,kux,kuy,kul, + kxu,kxx,kxy,kxl,kyu,kyx,kyy,kyl,klu,klx,kly,kll common /atest2/iu(100),a1x,a1y,a1u,a2x,a2y,a2u, + bux,buy,cu0,cu1,ru(90),su(100) c values(k0)=a2x*ux+a2y*uy+a2u*u values(ku)=a2u values(kx)=a2x values(ky)=a2y return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine fxy(x,y,u,ux,uy,rl,itag,values) c implicit real (a-h,o-z) implicit integer (i-n) c real + values(*) character*80 + su common /val0/k0,ku,kx,ky,kl,kuu,kux,kuy,kul, + kxu,kxx,kxy,kxl,kyu,kyx,kyy,kyl,klu,klx,kly,kll common /atest2/iu(100),a1x,a1y,a1u,a2x,a2y,a2u, + bux,buy,cu0,cu1,ru(90),su(100) c values(k0)= - bux*ux - buy*uy - cu0 - cu1*u values(ku)= - cu1 values(kx) = - bux values(ky) = - buy return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine gnxy(x,y,u,rl,itag,values) c implicit real (a-h,o-z) implicit integer (i-n) c real + values(*) common /val1/k0,ku,kl,kuu,kul,klu,kll c return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine gdxy(x,y,rl,itag,values) c implicit real (a-h,o-z) implicit integer (i-n) c real + values(*) common /val2/k0,kl,kll,klb,kub,kic,kim,kil c return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine p1xy(x,y,u,ux,uy,rl,itag,values) c implicit real (a-h,o-z) implicit integer (i-n) c real + values(*) common /val0/k0,ku,kx,ky,kl,kuu,kux,kuy,kul, + kxu,kxx,kxy,kxl,kyu,kyx,kyy,kyl,klu,klx,kly,kll c values(k0)=1.0e0 return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine p2xy(x,y,dx,dy,u,ux,uy,rl,itag,jtag,values) c implicit real (a-h,o-z) implicit integer (i-n) c real + values(*) common /val0/k0,ku,kx,ky,kl,kuu,kux,kuy,kul, + kxu,kxx,kxy,kxl,kyu,kyx,kyy,kyl,klu,klx,kly,kll c return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine qxy(x,y,u,ux,uy,rl,itag,values) c implicit real (a-h,o-z) implicit integer (i-n) c real + values(*) common /val3/kf,kf1,kf2,ksk,kad c s=x**2+y**2 values(kf)=float(itag) values(ksk)=s values(kad)=s return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine usrcmd(vx,vy,xm,ym,itnode,ibndry,ip,rp,sp,iu,ru,su,w) c implicit real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*) character*80 + sp(100),su(100),file(50) save len,file c data len/31/ data (file(i),i= 1, 10)/ + 'n i= 1,n=domain,a= d,t=i', 1 'n i= 1,n=a1x, a=x1,t=r', 2 'n i= 2,n=a1y, a=y1,t=r', 3 'n i= 3,n=a1u, a=u1,t=r', 4 'n i= 4,n=a2x, a=x2,t=r', 5 'n i= 5,n=a2y, a=y2,t=r', 6 'n i= 6,n=a2u, a=u2,t=r', 7 'n i= 7,n=bux, a=bx,t=r', 8 'n i= 8,n=buy, a=by,t=r', 9 'n i= 9,n=cu0, a=c0,t=r'/ data (file(i),i= 11, 20)/ + 'n i=10,n=cu1, a=c1,t=r', 1 's n=domain,v=1,l="texas"', 2 's n=domain,v=2,l="doughnut"', 3 's n=domain,v=3,l="cmos device"', 4 's n=domain,v=4,l="lake superior"', 5 's n=domain,v=5,l="hole"', 6 's n=domain,v=6,l="at&t logo"', 7 's n=domain,v=7,l="north sea"', 8 's n=domain,v=8,l="airfoil"', 9 's n=domain,v=9,l="planter"'/ data (file(i),i= 21, 30)/ + 's n=domain,v=10,l="fan"', 1 's n=domain,v=11,l="arc"', 2 's n=domain,v=12,l="spiral"', 3 's n=domain,v=13,l="ucsd logo"', 4 's n=domain,v=14,l="nozzle"', 5 's n=domain,v=15,l="pltmg"', 6 's n=domain,v=16,l="crack"', 7 's n=domain,v=17,l="monterey bay"', 9 's n=domain,v=18,l="siam logo"', + 's n=domain,v=19,l="mexico"'/ data (file(i),i= 31, 31)/ + 's n=domain,v=20,l="ellipse"'/ c iu1=iu(1) c call usrset(file,len,iu,ru,su) c ip(41)=0 if(iu1.ne.iu(1)) ip(41)=-1 c ispd=ip(8) a1x=ru(1) a1y=ru(2) a1u=ru(3) a2x=ru(4) a2y=ru(5) a2u=ru(6) bux=ru(7) buy=ru(8) cu0=ru(9) cu1=ru(10) if(ispd.eq.1) then if((a1y.ne.a2x).or.(a1u.ne.0.0e0).or. + (a2u.ne.0.0e0).or.(bux.ne.0.0e0).or. 1 (buy.ne.0.0e0)) ip(8)=0 else if((a1y.eq.a2x).and.(a1u.eq.0.0e0).and. + (a2u.eq.0.0e0).and.(bux.eq.0.0e0).and. 1 (buy.eq.0.0e0)) ip(8)=1 endif if(ispd.ne.ip(8)) ip(6)=max0(ip(26),ip(6),1) c return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine box(nvf,vx,vy,ncf,xm,ym) c implicit real (a-h,o-z) implicit integer (i-n) real + vx(*),vy(*),xm(*),ym(*) c c rescale domain to lie inside the unit square c xmin=vx(1) xmax=xmin ymin=vy(1) ymax=ymin do i=1,nvf xmin=amin1(xmin,vx(i)) xmax=amax1(xmax,vx(i)) ymin=amin1(ymin,vy(i)) ymax=amax1(ymax,vy(i)) enddo c c compute scaled coordinates c xmid=(xmin+xmax)/2.0e0 ymid=(ymin+ymax)/2.0e0 scale=1.0e0/amax1(xmax-xmin,ymax-ymin) do i=1,nvf vx(i)=0.5e0+scale*(vx(i)-xmid) vy(i)=0.5e0+scale*(vy(i)-ymid) enddo if(ncf.le.0) return do i=1,ncf xm(i)=0.5e0+scale*(xm(i)-xmid) ym(i)=0.5e0+scale*(ym(i)-ymid) enddo return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine gdata(vx,vy,xm,ym,itnode,ibndry,ip,rp,sp,iu,ru,su,w) c implicit real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*) character*80 + sp(100),su(100) save iprob c data iprob/1/ c if(ip(41).eq.1) then iu(1)=15 c c initialize as laplacian with dirichlet b.c. c do i=1,10 ru(i)=0.0e0 enddo ru(1)=1.0e0 ru(5)=1.0e0 ru(9)=1.0e0 ip(8)=1 endif c ip(6)=max0(ip(6),ip(26),1) ip(7)=iprob ip(20)=5 c if(iu(1).eq.1) call gd1(vx,vy,xm,ym,itnode, + ibndry,ip,rp,sp,iu,ru,su,w) if(iu(1).eq.2) call gd2(vx,vy,xm,ym,itnode, + ibndry,ip,rp,sp,iu,ru,su,w) if(iu(1).eq.3) call gd3(vx,vy,xm,ym,itnode, + ibndry,ip,rp,sp,iu,ru,su,w) if(iu(1).eq.4) call gd4(vx,vy,xm,ym,itnode, + ibndry,ip,rp,sp,iu,ru,su,w) if(iu(1).eq.5) call gd5(vx,vy,xm,ym,itnode, + ibndry,ip,rp,sp,iu,ru,su,w) if(iu(1).eq.6) call gd6(vx,vy,xm,ym,itnode, + ibndry,ip,rp,sp,iu,ru,su,w) if(iu(1).eq.7) call gd7(vx,vy,xm,ym,itnode, + ibndry,ip,rp,sp,iu,ru,su,w) if(iu(1).eq.8) call gd8(vx,vy,xm,ym,itnode, + ibndry,ip,rp,sp,iu,ru,su,w) if(iu(1).eq.9) call gd9(vx,vy,xm,ym,itnode, + ibndry,ip,rp,sp,iu,ru,su,w) if(iu(1).eq.10) call gd10(vx,vy,xm,ym,itnode, + ibndry,ip,rp,sp,iu,ru,su,w) if(iu(1).eq.11) call gd11(vx,vy,xm,ym,itnode, + ibndry,ip,rp,sp,iu,ru,su,w) if(iu(1).eq.12) call gd12(vx,vy,xm,ym,itnode, + ibndry,ip,rp,sp,iu,ru,su,w) if(iu(1).eq.13) call gd13(vx,vy,xm,ym,itnode, + ibndry,ip,rp,sp,iu,ru,su,w) if(iu(1).eq.14) call gd14(vx,vy,xm,ym,itnode, + ibndry,ip,rp,sp,iu,ru,su,w) if(iu(1).eq.15) call gd15(vx,vy,xm,ym,itnode, + ibndry,ip,rp,sp,iu,ru,su,w) if(iu(1).eq.16) call gd16(vx,vy,xm,ym,itnode, + ibndry,ip,rp,sp,iu,ru,su,w) if(iu(1).eq.17) call gd17(vx,vy,xm,ym,itnode, + ibndry,ip,rp,sp,iu,ru,su,w) if(iu(1).eq.18) call gd18(vx,vy,xm,ym,itnode, + ibndry,ip,rp,sp,iu,ru,su,w) if(iu(1).eq.19) call gd19(vx,vy,xm,ym,itnode, + ibndry,ip,rp,sp,iu,ru,su,w) if(iu(1).eq.20) call gd20(vx,vy,xm,ym,itnode, + ibndry,ip,rp,sp,iu,ru,su,w) c sp(6)='domains_mpixxx.rw' sp(7)='domains.jnl' sp(9)='domains_mpixxx.out' c nvf=ip(2) ncf=ip(3) call box(nvf,vx,vy,ncf,xm,ym) return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine gd1(vx,vy,xm,ym,itnode,ibndry,ip,rp,sp,iu,ru,su,w) c implicit real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*), 1 x(12),y(12),xc(5),yc(5) character*80 + sp(100),su(100) save x,y,xc,yc,hmax,grade,ntf,nvf,ncf,nbf c c domain in the shape of texas. c dirichlet boundary conditions on all boundary edges c data x/ 0.2e0, 5.0e0, 5.0e0, 9.0e0, 9.0e0,15.8e0, + 15.9e0,16.0e0,13.0e0, 9.0e0, 6.2e0, 4.0e0/ data y/ 9.7e0, 9.7e0,16.0e0,16.0e0,12.5e0,12.1e0, + 10.2e0, 6.2e0, 0.0e0, 3.2e0, 6.0e0, 6.0e0/ data xc/ 5.1e0,16.9e0,10.6e0,13.3e0, 8.2e0/ data yc/5.35e0, 8.2e0, 1.2e0, 4.2e0, 5.0e0/ data ntf,nvf,ncf,nbf/1,12,5,12/ data hmax,grade/0.1e0,1.5e0/ c sp(2)='texas' sp(1)='texas' sp(3)='texas' sp(4)='texas' c itnode(1,1)=1 itnode(2,1)=12 itnode(3,1)=0 itnode(4,1)=0 itnode(5,1)=1 do i=1,nvf vx(i)=x(i) vy(i)=y(i) enddo do i=1,nbf ibndry(1,i)=i ibndry(2,i)=i+1 ibndry(3,i)=0 ibndry(4,i)=2 ibndry(5,i)=0 ibndry(6,i)=0 enddo ibndry(2,nbf)=1 ibndry(3,7)=2 ibndry(3,8)=4 ibndry(3,9)=3 ibndry(3,10)=5 ibndry(3,11)=1 do i=1,nbf if(ibndry(3,i).gt.0) then i1=ibndry(1,i) i2=ibndry(2,i) i3=ibndry(3,i) call centre(vx(i1),vy(i1),vx(i2),vy(i2), + xc(i3),yc(i3),xm(i3),ym(i3)) endif enddo ip(1)=ntf ip(2)=nvf ip(3)=ncf ip(4)=nbf rp(15)=hmax rp(16)=grade c c refine long curved edges c call sklutl(1,vx,vy,xm,ym,itnode,ibndry,ip,w,iflag) return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine gd2(vx,vy,xm,ym,itnode,ibndry,ip,rp,sp,iu,ru,su,w) c implicit real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*) character*80 + sp(100),su(100) save hmax,grade,ntf,nvf,ncf,nbf c c annular region between circles of radius one and six c dirichlet boundary conditions on inner circle c neumann boundary conditions on outer circle c there are two irregular octagons concentric with the c circles. there are 24 regions, and three groups of c eight regions are similar. c data ntf,nvf,ncf,nbf/24,32,1,56/ data hmax,grade/0.1e0,1.5e0/ c sp(2)='doughnut' sp(1)='doughnut' sp(3)='doughnut' sp(4)='doughnut' c pi=3.141592653589793e0 pi4=pi/4.0e0 c do i=1,8 r2=2.0e0 if((i/2)*2.eq.i) r2=4.0e0 r3=3.0e0 if((i/2)*2.eq.i) r3=5.0e0 r4=6.0e0 ang=float(i-1)*pi4 k=(i-1)*4+1 vx(k)=cos(ang) vy(k)=sin(ang) vx(k+1)=r2*vx(k) vy(k+1)=r2*vy(k) vx(k+2)=r3*vx(k) vy(k+2)=r3*vy(k) vx(k+3)=r4*vx(k) vy(k+3)=r4*vy(k) enddo xm(1)=0.0e0 ym(1)=0.0e0 c do i=1,32 ibndry(1,i)=i ibndry(2,i)=i+4 if(i+4.gt.32) ibndry(2,i)=i+4-32 ibndry(3,i)=0 ibndry(4,i)=0 ibndry(5,i)=0 ibndry(6,i)=0 enddo do i=1,8 k=(i-1)*4+1 ibndry(3,k)=1 ibndry(4,k)=2 ibndry(3,k+3)=1 ibndry(4,k+3)=1 do j=1,3 k=32+(i-1)*3+j l=(i-1)*4+j ibndry(1,k)=l ibndry(2,k)=l+1 ibndry(3,k)=0 ibndry(4,k)=0 ibndry(5,k)=0 ibndry(6,k)=0 enddo enddo c c comput itnode, find symmetry c ip(1)=ntf ip(2)=nvf ip(3)=ncf ip(4)=nbf rp(15)=hmax rp(16)=grade call sklutl(0,vx,vy,xm,ym,itnode,ibndry,ip,w,iflag) call sklutl(2,vx,vy,xm,ym,itnode,ibndry,ip,w,iflag) c c label regions c itnode(5,1)=3 itnode(5,5)=2 itnode(5,9)=1 do i=1,ntf j=iabs(itnode(3,i)) if(j.gt.0) itnode(5,i)=itnode(5,j) enddo c return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine gd3(vx,vy,xm,ym,itnode,ibndry,ip,rp,sp,iu,ru,su,w) c implicit real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100), 1 b1(35),b2(35),b4(35) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*), 1 x(30),y(30) character*80 + sp(100),su(100) save x,y,b1,b2,b4 save hmax,grade,ntf,nvf,ncf,nbf c c an irregular region composed of six subregions, two quite small, c which define a typical cmos device c the data was provided by wolfgang fichtner and donald j. rose c data ntf,nvf,ncf,nbf/6,30,0,35/ data hmax,grade/0.1e0,1.5e0/ data x/ + 0.0e0 , 1.8e0 , 2.4e0 , 2.55e0, 3.15e0, 1 4.05e0, 7.35e0, 7.8e0 , 8.25e0,11.85e0, 2 12.6e0 ,12.75e0,13.2e0 ,15.0e0 ,15.0e0 , 3 12.6e0 ,11.85e0, 8.25e0, 7.8e0 , 7.35e0, 4 3.15e0, 2.55e0, 7.35e0,10.0e0 , 0.0e0 , 5 0.0e0 ,10.0e0 ,15.0e0 , 0.0e0, 15.0e0 / data y/ + -0.11e0,-0.12e0,-0.31e0, 0.25e0, 0.37e0, 1 0.41e0, 0.40e0, 0.21e0,0.185e0, 0.14e0, 2 0.01e0,-0.55e0,-0.39e0,-0.35e0,-0.63e0, 3 -0.63e0,-0.81e0,-0.83e0,-0.8e0 ,-0.58e0, 4 -0.56e0,-0.39e0,-1.5e0 ,-1.5e0 ,-0.39e0, 5 -7.5e0 ,-7.5e0 ,-7.5e0 ,-10.0e0,-10.0e0/ c data b1/ 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,16, + 17,18,19,20,21,22,22,25,20,23,24,25,26,27,15,28,29,26/ data b2/ 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,12,17, + 18,19,20,21,22, 3,25, 1,23,24,27,26,27,28,28,30,30,29/ data b4/ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 2, 1/ c sp(2)='cmos device' sp(1)='cmos device' sp(3)='cmos device' sp(4)='cmos device' c do i=1,nvf vx(i) = x(i)*2.9563e-2 vy(i) = y(i)*2.9563e-2 enddo do i=1,nbf ibndry(1,i)=b1(i) ibndry(2,i)=b2(i) ibndry(3,i)=0 ibndry(4,i)=b4(i) ibndry(5,i)=0 ibndry(6,i)=0 enddo c ip(1)=ntf ip(2)=nvf ip(3)=ncf ip(4)=nbf rp(15)=hmax rp(16)=grade c c make itnode c call sklutl(0,vx,vy,xm,ym,itnode,ibndry,ip,w,iflag) return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine gd4(vx,vy,xm,ym,itnode,ibndry,ip,rp,sp,iu,ru,su,w) c implicit real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*), 1 x(303),y(303) character*80 + sp(100),su(100) save x,y,hmax,grade,ntf,nvf,ncf,nbf c c region in the shape of lake superior c there are five subregions and six islands c the data was provided by r. bruce simpson c data ntf,nvf,ncf,nbf/5,303,0,313/ data hmax,grade/0.1e0,1.5e0/ data (x(i),i=1,40)/ + -8.9154148e0,-8.8847065e0,-8.7270575e0,-8.6780329e0, 1 -8.2763872e0,-7.7589436e0,-7.3399811e0,-7.2064877e0, 2 -6.9871612e0,-6.9190874e0,-6.6594362e0,-6.4705076e0, 3 -6.3982458e0,-6.1776032e0,-5.9683638e0,-6.0500631e0, 4 -6.2751036e0,-6.2083449e0,-6.3593874e0,-6.4379783e0, 5 -6.4389687e0,-6.3308568e0,-5.9216681e0,-5.8853531e0, 6 -5.5306988e0,-5.4571118e0,-5.2776995e0,-4.6882658e0, 7 -4.4325552e0,-3.9867787e0,-3.6232784e0,-3.5156848e0, 8 -3.1151142e0,-2.6031885e0,-2.4201615e0,-2.0576785e0, 9 -1.9469492e0,-1.6564457e0,-1.4385855e0,-1.1857181e0/ data (x(i),i=41,80)/ + -0.8965760e0,-0.4656316e0,-0.0715676e0, 0.3221563e0, 1 0.6089023e0, 0.6092879e0, 0.3942456e0, 0.2866788e0, 2 0.0717038e0, 0.0896864e0, 0.1076576e0,-0.1436793e0, 3 -0.3235837e0,-0.4676923e0,-0.9391942e0,-1.0495193e0, 4 -1.0882363e0,-1.0158452e0,-0.9424102e0,-0.6152380e0, 5 -0.5061946e0,-0.2890742e0,-0.5066670e0,-0.6160022e0, 6 -0.3979720e0,-0.1808403e0, 0.2894343e0, 0.5431103e0, 7 0.9058832e0, 0.9432856e0, 1.0534256e0, 1.1641909e0, 8 1.3109204e0, 1.3117251e0, 1.4214690e0, 1.9317214e0, 9 2.2226055e0, 2.3340521e0, 2.4073553e0, 2.4449496e0/ data (x(i),i=81,120)/ + 2.5909064e0, 2.6249835e0, 2.7343488e0, 2.8454552e0, 1 2.9366469e0, 2.9201944e0, 2.9931922e0, 3.3135431e0, 2 3.3863590e0, 3.9960330e0, 4.0705566e0, 4.6490631e0, 3 4.9039979e0, 5.4495530e0, 5.9850464e0, 6.1653805e0, 4 6.3476152e0, 6.6355958e0, 6.5309086e0, 6.4623699e0, 5 6.4803085e0, 6.4094977e0, 6.4100089e0, 6.4882669e0, 6 6.7068648e0, 6.8546906e0, 6.9296956e0, 7.3625917e0, 7 7.4195042e0, 7.4810257e0, 7.6622000e0, 7.7339420e0, 8 7.6927729e0, 7.6199031e0, 7.5788198e0, 7.4649954e0, 9 7.4604096e0, 7.6668096e0, 7.7709460e0, 7.7298813e0/ data (x(i),i=121,160)/ + 7.6707368e0, 7.6356735e0, 7.6246142e0, 7.5532117e0, 1 7.5280862e0, 7.5345392e0, 7.7131429e0, 7.8603272e0, 2 7.9228745e0, 7.7348900e0, 7.3713822e0, 7.2698317e0, 3 7.1885796e0, 7.1152658e0, 7.0441689e0, 6.9336958e0, 4 6.9676142e0, 7.0648074e0, 7.0897107e0, 7.2917361e0, 5 7.3230152e0, 7.2074218e0, 7.0987911e0, 7.0562592e0, 6 6.8349671e0, 6.5426011e0, 6.3538117e0, 6.6493349e0, 7 6.5385165e0, 6.7052994e0, 6.7009764e0, 5.7441173e0, 8 5.5686946e0, 4.7886071e0, 4.4636817e0, 4.2075763e0, 9 3.6075780e0, 3.3873644e0, 3.2804384e0, 3.1762848e0/ data (x(i),i=161,200)/ + 3.0381961e0, 2.8286881e0, 2.8598070e0, 2.6845531e0, 1 2.5468001e0, 2.4437671e0, 2.3390419e0, 2.1983123e0, 2 2.1616242e0, 2.0918984e0, 2.0235167e0, 1.9540682e0, 3 1.5705080e0, 1.5002116e0, 1.2547448e0, 0.7309650e0, 4 0.4522013e0, 0.1738657e0,-0.0694533e0,-0.1737495e0, 5 -0.2084645e0,-0.3476150e0,-0.4518238e0,-0.5558115e0, 6 -0.5215963e0,-0.5221188e0,-0.4879606e0,-0.2092654e0, 7 -0.2097517e0,-0.5257651e0,-0.5604465e0,-0.7716285e0, 8 -0.9473082e0,-0.9833619e0,-1.1593398e0,-1.2287946e0, 9 -1.1574372e0,-0.6994015e0,-0.5933112e0,-0.6973173e0/ data (x(i),i=201,240)/ + -0.9759166e0,-1.1175557e0,-1.1194069e0,-1.2951661e0, 1 -1.5483098e0,-1.9366363e0,-1.8637764e0,-1.7582839e0, 2 -1.7202965e0,-1.5427314e0,-1.5417155e0,-1.5762336e0, 3 -1.9985176e0,-2.3506579e0,-2.5645144e0,-2.5351899e0, 4 -2.7562921e0,-3.7980607e0,-4.3373508e0,-4.9834948e0, 5 -5.9256530e0,-7.0382285e0,-7.4517045e0,-8.2033901e0, 6 -8.7235365e0,-6.0865688e0,-6.0818601e0,-5.7929716e0, 7 -5.6808643e0,-5.5966616e0,-5.6635571e0,-5.8318772e0, 8 -5.8345900e0,-5.7920160e0,-5.8726344e0,-5.9152017e0, 9 -6.0222359e0,-5.7677011e0,-5.7297702e0,-5.4914570e0/ data (x(i),i=241,280)/ + -5.4498162e0,-5.5318775e0,-5.5335989e0,-5.5683675e0, 1 -5.7324457e0,-5.3444929e0,-5.3193455e0,-5.3166866e0, 2 -5.2924027e0,-5.1911650e0,-5.2196560e0,-5.2257104e0, 3 -5.2706485e0,-2.5904889e0,-2.3756721e0,-2.0900009e0, 4 -1.8405570e0,-1.7340945e0,-1.6276655e0,-1.5563954e0, 5 -1.3075202e0,-0.9532116e0,-0.8828910e0,-0.9185046e0, 6 -1.2022868e0,-1.1676824e0,-1.5239785e0,-1.7011793e0, 7 -1.9150532e0,-2.0937130e0,-2.0588911e0,-1.8814086e0, 8 -2.1664250e0,-2.4524965e0,-2.5231726e0,-2.6285090e0, 9 -0.1743299e0, 0.0348428e0, 0.1393711e0, 0.4880418e0/ data (x(i),i=281,303)/ + 0.6273773e0, 0.7325480e0, 0.8201638e0, 0.6632222e0, 1 0.5583180e0, 0.3839078e0, 0.2267794e0, 0.0349007e0, 2 -0.0349355e0,-0.0174793e0,-0.1048759e0,-0.1745905e0, 3 4.3813114e0, 4.3785076e0, 4.5535316e0, 4.8364964e0, 4 4.9818983e0, 5.0886197e0, 5.1614199e0, 5.1274772e0, 5 4.9866867e0, 4.8814216e0, 4.5964503e0/ data (y(i),i=1,40)/ + 1.6615920e0, 1.5538653e0, 1.4396306e0, 1.3310252e0, 1 1.3642085e0, 1.5521208e0, 1.5866412e0, 1.7400111e0, 2 1.7838988e0, 1.6751018e0, 1.8237880e0, 2.0285108e0, 3 2.0257761e0, 2.1236043e0, 1.9041636e0, 1.6420918e0, 4 1.4382319e0, 1.2768143e0, 1.1233594e0, 0.9672913e0, 5 0.9408290e0, 0.9103191e0, 1.1606956e0, 1.1594465e0, 6 0.8827500e0, 0.9068911e0, 0.8218321e0, 1.0696110e0, 7 1.1157840e0, 1.5284986e0, 1.5733560e0, 1.5181578e0, 8 1.6162773e0, 1.9253443e0, 2.0814581e0, 2.1825509e0, 9 2.3929844e0, 2.6016250e0, 2.8113568e0, 2.9681802e0/ data (y(i),i=41,80)/ + 3.2839699e0, 3.4939342e0, 3.6520867e0, 3.5994537e0, 1 3.4943945e0, 3.3885374e0, 3.3878930e0, 3.4141383e0, 2 3.3345153e0, 3.2286668e0, 3.1757488e0, 3.0169899e0, 3 2.8584538e0, 2.7529347e0, 2.0668111e0, 1.7498742e0, 4 1.3531376e0, 1.3262275e0, 1.4845979e0, 1.7477533e0, 5 1.9061816e0, 2.0115316e0, 1.7473959e0, 1.5360392e0, 6 1.8000363e0, 1.8525960e0, 1.7998173e0, 1.6681145e0, 7 1.5373304e0, 1.3258125e0, 1.1147327e0, 0.8507940e0, 8 0.6930545e0, 0.5871977e0, 0.5351345e0, 0.5400872e0, 9 0.5965222e0, 0.4391798e0, 0.4137156e0, 0.3348350e0/ data (y(i),i=81,120)/ + 0.3369578e0, 0.4962917e0, 0.4979874e0, 0.3938967e0, 1 0.3954205e0, 0.2892562e0, 0.2905022e0, 0.7199108e0, 2 0.7213257e0, 1.1315466e0, 1.0538628e0, 1.1744760e0, 3 1.1550887e0, 1.1450567e0, 1.4278414e0, 1.4607402e0, 4 1.4409063e0, 1.5048352e0, 1.3948027e0, 1.2862027e0, 5 0.8098819e0, 0.7542354e0, 0.7012564e0, 0.5981826e0, 6 0.6065329e0, 0.5593290e0, 0.5093111e0, 0.6332439e0, 7 0.5826584e0, 0.4262426e0, 0.4606821e0, 0.4903887e0, 8 0.5946095e0, 0.5913803e0, 0.6956243e0, 0.7967085e0, 9 0.9025555e0, 1.1767640e0, 1.2875088e0, 1.3917131e0/ data (y(i),i=121,160)/ + 1.4951115e0, 1.4670289e0, 1.3074532e0, 1.2777792e0, 1 1.4357493e0, 1.7011603e0, 1.7621690e0, 1.7158544e0, 2 1.9308907e0, 2.0813403e0, 2.1182086e0, 1.9547751e0, 3 2.1633925e0, 2.1868122e0, 2.1573400e0, 2.2058041e0, 4 2.2602055e0, 2.5292990e0, 2.7954185e0, 3.1221592e0, 5 3.2295635e0, 3.4101255e0, 3.4319942e0, 3.5892427e0, 6 3.7390778e0, 3.8863685e0, 4.1440578e0, 4.7917061e0, 7 4.8932843e0, 5.1650314e0, 5.2708721e0, 5.2345815e0, 8 5.1755509e0, 5.1509480e0, 5.3536510e0, 5.6646352e0, 9 7.1858878e0, 7.6576362e0, 7.7613006e0, 7.7327189e0/ data (y(i),i=161,200)/ + 7.6506119e0, 7.6467633e0, 7.8590922e0, 7.9089847e0, 1 7.8008409e0, 7.6933494e0, 7.6917801e0, 7.7691860e0, 2 7.9010277e0, 7.9000964e0, 7.7933407e0, 7.7660065e0, 3 7.7353015e0, 7.7875576e0, 7.9442315e0, 8.1526823e0, 4 8.2575016e0, 8.3098812e0, 8.5215149e0, 8.4157381e0, 5 8.4422445e0, 8.3630953e0, 8.3898230e0, 8.4695473e0, 6 8.3106441e0, 8.1518583e0, 7.9400339e0, 7.8335662e0, 7 7.4630661e0, 7.0403595e0, 7.1463351e0, 6.9354925e0, 8 6.8835006e0, 6.7249255e0, 6.6731634e0, 6.7795396e0, 9 6.9378047e0, 7.4115276e0, 7.7286749e0, 7.8878837e0/ data (y(i),i=201,240)/ + 7.9422774e0, 7.6256237e0, 7.3609824e0, 7.2564440e0, 1 6.4117608e0, 6.3100700e0, 6.5209551e0, 6.5197735e0, 2 6.7840347e0, 6.9939694e0, 7.0998254e0, 7.1530938e0, 3 6.9989867e0, 6.8978705e0, 6.6893725e0, 6.3183274e0, 4 5.7395725e0, 5.0191441e0, 4.7676754e0, 4.5740476e0, 5 4.1282315e0, 3.1643631e0, 2.7580044e0, 2.1245258e0, 6 1.8639193e0, 1.4314222e0, 1.5637339e0, 1.7391469e0, 7 1.8413432e0, 1.7590827e0, 1.7083083e0, 1.6609927e0, 8 1.5816056e0, 1.5536638e0, 1.5299217e0, 1.5578835e0, 9 1.4026510e0, 1.9502324e0, 2.0019357e0, 2.1000333e0/ data (y(i),i=241,280)/ + 2.0457127e0, 1.9688923e0, 1.9159672e0, 1.9594866e0, 1 1.9225485e0, 2.1748121e0, 2.2852740e0, 2.3699543e0, 2 2.4539566e0, 2.4614151e0, 2.3563406e0, 2.2770641e0, 3 2.2254789e0, 5.0486274e0, 5.1777287e0, 5.3326516e0, 4 5.4619961e0, 5.4872999e0, 5.5126729e0, 5.5649114e0, 5 5.7215257e0, 5.8778610e0, 5.8245349e0, 5.7718015e0, 6 5.6148539e0, 5.5087409e0, 5.2470098e0, 5.2487521e0, 7 5.1452403e0, 5.0415487e0, 4.9881725e0, 4.9860468e0, 8 4.9101486e0, 4.7818141e0, 4.8093510e0, 4.8904085e0, 9 7.8864527e0, 7.9922180e0, 7.9922752e0, 7.9135695e0/ data (y(i),i=281,303)/ + 7.9405222e0, 7.8086476e0, 7.7296796e0, 7.7024851e0, 1 7.7550130e0, 7.7280331e0, 7.7806611e0, 7.7275753e0, 2 7.5687895e0, 7.4629297e0, 7.4629631e0, 7.6482739e0, 3 4.4510627e0, 4.5569129e0, 4.6675730e0, 4.7285905e0, 4 4.6269722e0, 4.6302257e0, 4.5795088e0, 4.5254769e0, 5 4.4681988e0, 4.4120893e0, 4.4039326e0/ c c sp(2)='lake superior' sp(1)='lake superior' sp(3)='lake superior' sp(4)='lake superior' c do i=1,303 ibndry(1,i)=i-1 ibndry(2,i)=i ibndry(3,i)=0 ibndry(4,i)=2 ibndry(5,i)=0 ibndry(6,i)=0 vx(i)=x(i) vy(i)=y(i) enddo ibndry(1,1)=225 ibndry(1,226)=237 ibndry(1,238)=245 ibndry(1,246)=253 ibndry(1,254)=276 ibndry(1,277)=292 ibndry(1,293)=303 do i=304,313 ibndry(3,i)=0 ibndry(4,i)=0 ibndry(5,i)=0 ibndry(6,i)=0 enddo ibndry(1,304)=153 ibndry(2,304)=299 ibndry(1,305)=154 ibndry(2,305)=296 ibndry(1,306)=189 ibndry(2,306)=291 ibndry(1,307)=188 ibndry(2,307)=277 ibndry(1,308)=254 ibndry(2,308)=217 ibndry(1,309)=216 ibndry(2,309)=256 ibndry(1,310)=221 ibndry(2,310)=249 ibndry(1,311)=246 ibndry(2,311)=241 ibndry(1,312)=229 ibndry(2,312)=245 ibndry(1,313)=237 ibndry(2,313)=18 c ip(1)=ntf ip(2)=nvf ip(3)=ncf ip(4)=nbf rp(15)=hmax rp(16)=grade c c make itnode c call sklutl(0,vx,vy,xm,ym,itnode,ibndry,ip,w,iflag) return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine gd5(vx,vy,xm,ym,itnode,ibndry,ip,rp,sp,iu,ru,su,w) c implicit real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*) character*80 + sp(100),su(100) save ntf,nbf,nvf,ncf,hmax data ntf,nbf,nvf,ncf/2,12,10,1/ data hmax/0.5e0/ c sp(2)='hole' sp(1)='hole' sp(3)='hole' sp(4)='hole' c ip(1)=ntf ip(2)=nvf ip(3)=ncf ip(4)=nbf rp(15)=hmax c vx(1)=-2.e0 vy(1)=2.e0 vx(2)=-2.e0 vy(2)=-2.e0 vx(3)=0.e0 vy(3)=-2.e0 vx(4)=2.e0 vy(4)=-2.e0 vx(5)=2.e0 vy(5)=2.e0 vx(6)=0.e0 vy(6)=2.e0 vx(7)=0.e0 vy(7)=1.e0 vx(8)=-1.e0 vy(8)=0.e0 vx(9)=0.0e0 vy(9)=-1.0e0 vx(10)=1.e0 vy(10)=0.e0 c xm(1)=0.e0 ym(1)=0.e0 c do i=1,nbf ibndry(1,i)=i-1 ibndry(2,i)=i ibndry(3,i)=0 if(i.ge.8.and.i.le.11) ibndry(3,i)=1 ibndry(4,i)=1 if(i.ge.2.and.i.le.5) ibndry(4,i)=2 ibndry(5,i)=0 ibndry(6,i)=0 enddo c ibndry(1,1)=6 ibndry(1,12)=3 ibndry(2,11)=7 ibndry(2,12)=9 ibndry(4,7)=0 ibndry(4,12)=0 c itnode(1,1)=6 itnode(2,1)=1 itnode(3,1)=0 itnode(4,1)=0 itnode(5,1)=1 itnode(1,2)=6 itnode(2,2)=7 itnode(3,2)=-1 itnode(4,2)=0 itnode(5,2)=2 c return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine gd6(vx,vy,xm,ym,itnode,ibndry,ip,rp,sp,iu,ru,su,w) c implicit real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100), 1 b1(159),b2(159),b3(159),b4(159),b5(159),c1(25), 2 c2(25),c4(25) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*), 1 x(135),y(135),xp(93),yp(93) character*80 + sp(100),su(100) save ntf,ncf,nbf,nvf,x,y,xp,yp,b1,b2,b3,b4,b5, + c1,c2,c4,hmax,grade c c an irregular region composed of 25 subregions, in the shape of, c the at&t logo. c the data was provided by r. kent smith c c data ntf,nvf,nbf,ncf/25,135,159,93/ c data (x(i),i=1,40)/ + -2.9088581e0, -0.2115240e0, 3.0000000e0, 0.0000000e0, 1 -4.0919900e0, -3.1212461e0, -2.4240000e0, -1.1470000e0, 2 -0.5369100e0, 2.0187540e0, 2.7160001e0, 4.3160391e0, 3 3.3551569e0, 2.1120000e0, 1.0151761e0, -0.5109150e0, 4 -1.3640000e0, -2.1440001e0, -2.9284019e0, -3.6108899e0, 5 -4.9742250e0, -4.1352282e0, -3.2990000e0, -0.4100000e0, 6 0.1129340e0, 2.4291310e0, 3.4749999e0, 5.0882888e0, 7 4.5282569e0, 2.8659999e0, 2.2388289e0, 0.1792850e0, 8 -0.8660000e0, -3.1520000e0, -3.8492460e0, -4.6628761e0, 9 -5.5230289e0, -4.4090900e0, -3.7990000e0, -0.0510000e0/ data (x(i),i=41,80)/ + 0.5761710e0, 2.4727149e0, 3.5179999e0, 5.6014829e0, 1 5.2477179e0, 3.4890001e0, 2.4437151e0, 0.5216990e0, 2 -0.2100000e0, -3.6550000e0, -4.5265570e0, -5.3460388e0, 3 -5.8688860e0, -4.8302279e0, -3.9940000e0, -0.1400000e0, 4 0.6444020e0, 2.7805979e0, 3.5650001e0, 5.8897629e0, 5 5.6731110e0, 3.6570001e0, 2.7162440e0, 0.5342280e0, 6 -0.3020000e0, -3.9630001e0, -4.6602459e0, -5.7378292e0, 7 -5.9963450e0, -4.5582852e0, -3.5130000e0, -0.4560000e0, 8 0.3284020e0, 5.9990859e0, 5.9261298e0, 0.5425570e0, 9 -0.3290000e0, -3.7790000e0, -4.6505570e0, -5.9552770e0/ data (x(i),i=81,120)/ + -5.9416080e0, -4.1115570e0, -3.2400000e0, -0.7110000e0, 1 -0.0137540e0, 2.1172869e0, 3.0760000e0, 5.9416080e0, 2 5.9990859e0, 3.5500000e0, 2.6784430e0, -0.1595980e0, 3 -0.9440000e0, -3.2820001e0, -3.9795649e0, -5.9963450e0, 4 -5.7063389e0, -3.0675910e0, -1.1144090e0, 1.3666790e0, 5 2.1340001e0, 5.7063389e0, 5.8897629e0, 2.8210001e0, 6 2.2629480e0, -1.0966530e0, -3.4503360e0, -5.8897629e0, 7 -5.2477179e0, -2.6954920e0, -1.6485080e0, 0.7010050e0, 8 1.0500000e0, 5.2477179e0, 5.6014829e0, 1.9870000e0, 9 1.4635080e0, -1.5375080e0, -2.5844920e0, -5.6014829e0/ data (x(i),i=121,135)/ + -4.5282569e0, 4.5282569e0, 5.0882888e0, -5.0882888e0, 1 -3.3551569e0, 3.3551569e0, 4.3160391e0, -4.3160391e0, 2 -3.0000000e0, 3.0000000e0, 0.0000000e0, 0.0000000e0, 3 40.0000000e0, 0.0000000e0,-40.0000000e0/ data (y(i),i=1,40)/ + 5.2477179e0, 5.2805071e0, 5.1961522e0, 6.0000000e0, 1 4.3881221e0, 4.4595580e0, 4.4899998e0, 4.4899998e0, 2 4.4633632e0, 4.2354422e0, 4.2049999e0, 4.1679502e0, 3 4.9742250e0, 4.9850001e0, 4.9179149e0, 4.7371769e0, 4 4.6849999e0, 4.6849999e0, 4.7192478e0, 4.7918129e0, 5 3.3551569e0, 3.4211750e0, 3.4649999e0, 3.4649999e0, 6 3.4421680e0, 3.2256639e0, 3.1800001e0, 3.1795161e0, 7 3.9363539e0, 3.9600000e0, 3.9271309e0, 3.7097809e0, 8 3.6550000e0, 3.6550000e0, 3.6854420e0, 3.7759221e0, 9 2.3443871e0, 2.4183631e0, 2.4449999e0, 2.4449999e0/ data (y(i),i=41,80)/ + 2.4121311e0, 2.2247810e0, 2.1700001e0, 2.1502080e0, 1 2.9088581e0, 2.9500000e0, 2.8952191e0, 2.6783471e0, 2 2.6400001e0, 2.6400001e0, 2.6780529e0, 2.7239430e0, 3 1.2474700e0, 1.3811750e0, 1.4250000e0, 1.4250000e0, 4 1.3907520e0, 1.1892480e0, 1.1550000e0, 1.1448539e0, 5 1.9534090e0, 1.9349999e0, 1.8856970e0, 1.6688250e0, 6 1.6250000e0, 1.6250000e0, 1.6554420e0, 1.7542300e0, 7 0.2093970e0, 0.3702190e0, 0.4250000e0, 0.4250000e0, 8 0.3907520e0, 0.1047140e0, 0.9386070e0, 0.6630530e0, 9 0.6250000e0, 0.6250000e0, 0.6630530e0, 0.7312160e0/ data (y(i),i=81,120)/ + -0.8350390e0, -0.6480530e0, -0.6100000e0, -0.6100000e0, 1 -0.6404420e0, -0.8331420e0, -0.8750000e0, -0.8350390e0, 2 -0.1047140e0, -0.0950000e0, -0.1330530e0, -0.3657520e0, 3 -0.4000000e0, -0.4000000e0, -0.3756410e0, -0.2093970e0, 4 -1.8541020e0, -1.6861030e0, -1.6861030e0, -1.8732049e0, 5 -1.9000000e0, -1.8541020e0, -1.1448539e0, -1.1200000e0, 6 -1.1394880e0, -1.3924609e0, -1.3719200e0, -1.1448539e0, 7 -2.9088581e0, -2.8201380e0, -2.8201380e0, -2.9089079e0, 8 -2.9150000e0, -2.9088581e0, -2.1502080e0, -2.1350000e0, 9 -2.1441381e0, -2.2548621e0, -2.2548621e0, -2.1502080e0/ data (y(i),i=121,135)/ + -3.9363539e0, -3.9363539e0, -3.1795161e0, -3.1795161e0, 1 -4.9742250e0, -4.9742250e0, -4.1679502e0, -4.1679502e0, 2 -5.1961522e0, -5.1961522e0, -6.0000000e0, 40.0000000e0, 3 0.0000000e0,-40.0000000e0, 0.0000000e0/ data (xp(i),i=1,40)/ + -1.5328120e0, 1.5529140e0, -1.5022800e0, -2.7729549e0, 1 -0.8416640e0, 2.3670449e0, 3.8567259e0, 1.5625629e0, 2 -0.9366600e0, -2.5365739e0, -3.8567259e0, -3.7176881e0, 3 -0.1482840e0, 2.9515669e0, 4.8231411e0, 2.5519841e0, 4 -0.3426400e0, -3.5009551e0, -4.8231411e0, -4.1043358e0, 5 0.2630160e0, 2.9946401e0, 5.4378471e0, 2.9656401e0, 6 0.1563520e0, -4.0911942e0, -5.4378471e0, -4.4126878e0, 7 0.2525740e0, 3.1724260e0, 5.7955551e0, 3.1859760e0, 8 0.1166880e0, -4.3119550e0, -5.8088861e0, -4.0363598e0, 9 -0.0634260e0, 5.9771681e0, 0.1071940e0, -4.2151942e0/ data (xp(i),i=41,80)/ + -5.9815040e0, -3.6761940e0, -0.3620450e0, 2.5961871e0, 1 5.9815040e0, 3.1138060e0, -0.5514260e0, -3.6309950e0, 2 -5.9771681e0, -2.0910001e0, 1.7501060e0, 5.8088861e0, 3 2.5418041e0, -2.2738979e0, -5.8088861e0, -2.1719999e0, 4 0.8754760e0, 5.4378471e0, 1.7252140e0, -2.0610001e0, 5 -5.4378471e0, 4.8231411e0, -4.8231411e0, 3.8567259e0, 6 -3.8567259e0, 1.5529140e0, -1.5529140e0, 3.1795161e0, 7 -3.2678339e0, 4.4236641e0, -4.3881221e0, 5.1697750e0, 8 -5.1697750e0, 5.6381559e0, -5.6381559e0, 5.9088469e0, 9 -5.9177141e0, 6.0000000e0, -6.0000000e0, 5.9177141e0/ data (xp(i),i=81,93)/ + -5.9177141e0, 5.6558490e0, -5.6558490e0, 5.1697750e0, 1 -5.1697750e0, 4.4236641e0, -4.4236641e0, 3.1795161e0, 2 -3.1795161e0, 28.2842712e0, 28.2842712e0,-28.2842712e0, 3 -28.2842712e0/ data (yp(i),i=1,40)/ + 5.3786950e0, 5.7955551e0, 5.8088861e0, 4.4823861e0, 1 4.4833379e0, 4.2126141e0, 4.5962672e0, 4.9682131e0, 2 4.6980562e0, 4.6935658e0, 4.5962672e0, 3.4540360e0, 3 3.4592891e0, 3.1914210e0, 3.5689371e0, 3.9517770e0, 4 3.6687050e0, 3.6626141e0, 3.5689371e0, 2.4383380e0, 5 2.4367771e0, 2.1837051e0, 2.5357101e0, 2.9362950e0, 6 2.6495931e0, 2.6495180e0, 2.5357101e0, 1.4140360e0, 7 1.4164340e0, 1.1635660e0, 1.5529140e0, 1.9226660e0, 8 1.6359640e0, 1.6326140e0, 1.5022800e0, 0.4112950e0, 9 0.4164340e0, 0.5229340e0, 0.6345180e0, 0.6345180e0/ data (yp(i),i=41,80)/ + 0.4707550e0, -0.6195180e0, -0.6176140e0, -0.8645300e0, 1 -0.4707550e0, -0.1045180e0, -0.3914340e0, -0.3939080e0, 2 -0.5229340e0, -1.6520000e0, -1.8932990e0, -1.5022800e0, 3 -1.1248730e0, -1.4284290e0, -1.5022800e0, -2.8110001e0, 4 -2.9134769e0, -2.5357101e0, -2.1372850e0, -2.2639999e0, 5 -2.5357101e0, -3.5689371e0, -3.5689371e0, -4.5962672e0, 6 -4.5962672e0, -5.7955551e0, -5.7955551e0, 5.0882888e0, 7 5.0320230e0, 4.0535412e0, 4.0919900e0, 3.0452299e0, 8 3.0452299e0, 2.0521209e0, 2.0521209e0, 1.0418890e0, 9 0.9902860e0, 0.0000000e0, 0.0000000e0, -0.9902860e0/ data (yp(i),i=81,93)/ + -0.9902860e0, -2.0028410e0, -2.0028410e0, -3.0452299e0, 1 -3.0452299e0, -4.0535412e0, -4.0535412e0, -5.0882888e0, 2 -5.0882888e0, 28.2842712e0,-28.2842712e0,-28.2842712e0, 3 28.2842712e0/ c data (b1(i),i=1,100)/ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 3 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 4 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 5 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 6 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 7 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 8 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 9 91, 92, 93, 94, 95, 96, 97, 98, 99,100/ data (b1(i),i=101,159)/ + 101,102,103,104,105,106,107,108,109,110, 1 111,112,113,114,115,116,117,118,119,120, 2 121,122,123,124,125,126,127,128,129,130, 3 131, 3, 1, 12, 5, 28, 21, 44, 37, 60, 4 53, 74, 69, 88, 81,102, 97,114,109,122, 5 121,126,125,132,133,134,135,132,134/ data (b2(i),i=1,100)/ + 2, 3, 4, 1, 6, 7, 8, 9, 10, 11, 1 12, 13, 14, 15, 16, 17, 18, 19, 20, 5, 2 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 3 32, 33, 34, 35, 36, 21, 38, 39, 40, 41, 4 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 5 52, 37, 54, 55, 56, 57, 58, 59, 60, 61, 6 62, 63, 64, 65, 66, 67, 68, 53, 70, 71, 7 72, 73, 74, 75, 76, 77, 78, 79, 80, 69, 8 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 9 92, 93, 94, 95, 96, 81, 98, 99,100,101/ data (b2(i),i=101,159)/ + 102,103,104,105,106,107,108, 97,110,111, 1 112,113,114,115,116,117,118,119,120,109, 2 122,123,124,121,126,127,128,125,130,131, 3 129, 13, 20, 29, 36, 45, 52, 61, 68, 75, 4 80, 89, 96,103,108,115,120,123,124,127, 5 128,130,129,133,134,135,132, 4,131/ data (b3(i),i=1,100)/ + 1, 0, 2, 3, 0, 4, 0, 5, 0, 6, 1 0, 7, 0, 8, 0, 9, 0, 10, 0, 11, 2 0, 12, 0, 13, 0, 14, 0, 15, 0, 16, 3 0, 17, 0, 18, 0, 19, 0, 20, 0, 21, 4 0, 22, 0, 23, 0, 24, 0, 25, 0, 26, 5 0, 27, 0, 28, 0, 29, 0, 30, 0, 31, 6 0, 32, 0, 33, 0, 34, 0, 35, 0, 36, 7 0, 37, 0, 38, 0, 39, 0, 40, 0, 41, 8 0, 42, 0, 43, 0, 44, 0, 45, 0, 46, 9 0, 47, 0, 48, 0, 49, 0, 50, 0, 51/ data (b3(i),i=101,159)/ + 0, 52, 0, 53, 0, 54, 0, 55, 0, 56, 1 0, 57, 0, 58, 0, 59, 0, 60, 0, 61, 2 0, 62, 0, 63, 0, 64, 0, 65, 0, 66, 3 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 4 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 5 87, 88, 89, 90, 91, 92, 93, 0, 0/ data (b4(i),i=1,100)/ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 0, 0, 0, 0, 0, 0, 0, 0, 0, 0/ data (b4(i),i=101,159)/ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5 0, 0, 0, 2, 2, 2, 2, 0, 0/ data (b5(i),i=1,100)/ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 0, 0, 0, 0, 0, 0, 0, 0, 0, 0/ data (b5(i),i=101,159)/ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5 0, 0, 0, 1, 1, 1, 1, 0, 0/ c data (c1(i),i=1,25)/ + 4, 1, 20, 5, 36, 21, 52, 37, 68, 53, 1 80, 69, 96, 81,108, 97,120,109,124,121, 2 128,125,131,134,134/ data (c2(i),i=1,25)/ + 4,133, 20,135, 36,137, 52,139, 68,141, 1 80,143, 96,145,108,147,120,149,124,151, 2 128,153,130,155,159/ data (c4(i),i=1,25)/ + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2 1, 2, 1, 3, 3/ c data hmax,grade/0.05e0,1.5e0/ c sp(2)='at&t logo' sp(1)='at&t logo' sp(3)='at&t logo' sp(4)='at&t logo' c ip(1)=ntf ip(2)=nvf ip(3)=ncf ip(4)=nbf rp(15)=hmax rp(16)=grade c do i=1,nvf vx(i)=x(i) vy(i)=y(i) enddo c do i=1,nbf ibndry(1,i)=b1(i) ibndry(2,i)=b2(i) ibndry(3,i)=b3(i) ibndry(4,i)=b4(i) ibndry(5,i)=0 ibndry(6,i)=b5(i) c if(ibndry(3,i).gt.0) then i1=ibndry(1,i) i2=ibndry(2,i) i3=ibndry(3,i) call centre(vx(i1),vy(i1),vx(i2),vy(i2), + xp(i3),yp(i3),xm(i3),ym(i3)) endif enddo c do i=1,ntf itnode(1,i)=c1(i) itnode(2,i)=c2(i) itnode(3,i)=0 itnode(5,i)=c4(i) enddo c c return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine gd7(vx,vy,xm,ym,itnode,ibndry,ip,rp,sp,iu,ru,su,w) c implicit real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*), 1 vxp(499),vyp(499) character*80 + sp(100),su(100) save vxp,vyp,hmax,grade,ntf,nvf,ncf,nbf c c domain in the shape of the north sea. c the domain contains 29 islands. c the skeleton has four subregions. c c data for this domain was provided by gabriel wittum and c wolfgang hoffman from the university of stuttgart. c data ntf,nvf,ncf,nbf/4,499,0,531/ data hmax,grade/0.1e0,1.5e0/ c data vxp( 1),vyp( 1)/ 0.882e+00, 0.100e+01/ data vxp( 2),vyp( 2)/ 0.803e+00, 0.100e+01/ data vxp( 3),vyp( 3)/ 0.000e+00, 0.100e+01/ data vxp( 4),vyp( 4)/ 0.000e+00, 0.000e+00/ data vxp( 5),vyp( 5)/ 0.126e+00, 0.000e+00/ data vxp( 6),vyp( 6)/ 0.351e+00, 0.000e+00/ data vxp( 7),vyp( 7)/ 0.353e+00, 0.900e-02/ data vxp( 8),vyp( 8)/ 0.381e+00, 0.120e-01/ data vxp( 9),vyp( 9)/ 0.384e+00, 0.240e-01/ data vxp( 10),vyp( 10)/ 0.378e+00, 0.300e-01/ data vxp( 11),vyp( 11)/ 0.364e+00, 0.420e-01/ data vxp( 12),vyp( 12)/ 0.370e+00, 0.520e-01/ data vxp( 13),vyp( 13)/ 0.386e+00, 0.700e-01/ data vxp( 14),vyp( 14)/ 0.395e+00, 0.820e-01/ data vxp( 15),vyp( 15)/ 0.414e+00, 0.970e-01/ data vxp( 16),vyp( 16)/ 0.427e+00, 0.106e+00/ data vxp( 17),vyp( 17)/ 0.444e+00, 0.109e+00/ data vxp( 18),vyp( 18)/ 0.460e+00, 0.112e+00/ data vxp( 19),vyp( 19)/ 0.468e+00, 0.109e+00/ data vxp( 20),vyp( 20)/ 0.471e+00, 0.112e+00/ data vxp( 21),vyp( 21)/ 0.496e+00, 0.112e+00/ data vxp( 22),vyp( 22)/ 0.504e+00, 0.106e+00/ data vxp( 23),vyp( 23)/ 0.521e+00, 0.106e+00/ data vxp( 24),vyp( 24)/ 0.532e+00, 0.109e+00/ data vxp( 25),vyp( 25)/ 0.542e+00, 0.121e+00/ data vxp( 26),vyp( 26)/ 0.553e+00, 0.124e+00/ data vxp( 27),vyp( 27)/ 0.589e+00, 0.124e+00/ data vxp( 28),vyp( 28)/ 0.600e+00, 0.127e+00/ data vxp( 29),vyp( 29)/ 0.603e+00, 0.130e+00/ data vxp( 30),vyp( 30)/ 0.619e+00, 0.127e+00/ data vxp( 31),vyp( 31)/ 0.625e+00, 0.136e+00/ data vxp( 32),vyp( 32)/ 0.652e+00, 0.136e+00/ data vxp( 33),vyp( 33)/ 0.655e+00, 0.130e+00/ data vxp( 34),vyp( 34)/ 0.668e+00, 0.127e+00/ data vxp( 35),vyp( 35)/ 0.682e+00, 0.124e+00/ data vxp( 36),vyp( 36)/ 0.677e+00, 0.115e+00/ data vxp( 37),vyp( 37)/ 0.677e+00, 0.100e+00/ data vxp( 38),vyp( 38)/ 0.682e+00, 0.880e-01/ data vxp( 39),vyp( 39)/ 0.688e+00, 0.850e-01/ data vxp( 40),vyp( 40)/ 0.699e+00, 0.820e-01/ data vxp( 41),vyp( 41)/ 0.704e+00, 0.700e-01/ data vxp( 42),vyp( 42)/ 0.712e+00, 0.550e-01/ data vxp( 43),vyp( 43)/ 0.718e+00, 0.480e-01/ data vxp( 44),vyp( 44)/ 0.723e+00, 0.330e-01/ data vxp( 45),vyp( 45)/ 0.726e+00, 0.210e-01/ data vxp( 46),vyp( 46)/ 0.721e+00, 0.150e-01/ data vxp( 47),vyp( 47)/ 0.712e+00, 0.120e-01/ data vxp( 48),vyp( 48)/ 0.704e+00, 0.000e+00/ data vxp( 49),vyp( 49)/ 0.781e+00, 0.000e+00/ data vxp( 50),vyp( 50)/ 0.781e+00, 0.900e-02/ data vxp( 51),vyp( 51)/ 0.770e+00, 0.900e-02/ data vxp( 52),vyp( 52)/ 0.756e+00, 0.120e-01/ data vxp( 53),vyp( 53)/ 0.748e+00, 0.120e-01/ data vxp( 54),vyp( 54)/ 0.748e+00, 0.240e-01/ data vxp( 55),vyp( 55)/ 0.742e+00, 0.360e-01/ data vxp( 56),vyp( 56)/ 0.753e+00, 0.450e-01/ data vxp( 57),vyp( 57)/ 0.756e+00, 0.580e-01/ data vxp( 58),vyp( 58)/ 0.764e+00, 0.670e-01/ data vxp( 59),vyp( 59)/ 0.775e+00, 0.700e-01/ data vxp( 60),vyp( 60)/ 0.784e+00, 0.640e-01/ data vxp( 61),vyp( 61)/ 0.789e+00, 0.580e-01/ data vxp( 62),vyp( 62)/ 0.797e+00, 0.480e-01/ data vxp( 63),vyp( 63)/ 0.805e+00, 0.390e-01/ data vxp( 64),vyp( 64)/ 0.819e+00, 0.330e-01/ data vxp( 65),vyp( 65)/ 0.830e+00, 0.300e-01/ data vxp( 66),vyp( 66)/ 0.844e+00, 0.240e-01/ data vxp( 67),vyp( 67)/ 0.852e+00, 0.210e-01/ data vxp( 68),vyp( 68)/ 0.849e+00, 0.150e-01/ data vxp( 69),vyp( 69)/ 0.841e+00, 0.000e+00/ data vxp( 70),vyp( 70)/ 0.860e+00, 0.000e+00/ data vxp( 71),vyp( 71)/ 0.863e+00, 0.120e-01/ data vxp( 72),vyp( 72)/ 0.863e+00, 0.180e-01/ data vxp( 73),vyp( 73)/ 0.858e+00, 0.270e-01/ data vxp( 74),vyp( 74)/ 0.852e+00, 0.450e-01/ data vxp( 75),vyp( 75)/ 0.841e+00, 0.670e-01/ data vxp( 76),vyp( 76)/ 0.833e+00, 0.790e-01/ data vxp( 77),vyp( 77)/ 0.830e+00, 0.910e-01/ data vxp( 78),vyp( 78)/ 0.830e+00, 0.103e+00/ data vxp( 79),vyp( 79)/ 0.830e+00, 0.118e+00/ data vxp( 80),vyp( 80)/ 0.836e+00, 0.133e+00/ data vxp( 81),vyp( 81)/ 0.841e+00, 0.145e+00/ data vxp( 82),vyp( 82)/ 0.847e+00, 0.158e+00/ data vxp( 83),vyp( 83)/ 0.852e+00, 0.176e+00/ data vxp( 84),vyp( 84)/ 0.852e+00, 0.194e+00/ data vxp( 85),vyp( 85)/ 0.852e+00, 0.206e+00/ data vxp( 86),vyp( 86)/ 0.863e+00, 0.215e+00/ data vxp( 87),vyp( 87)/ 0.871e+00, 0.227e+00/ data vxp( 88),vyp( 88)/ 0.877e+00, 0.233e+00/ data vxp( 89),vyp( 89)/ 0.888e+00, 0.239e+00/ data vxp( 90),vyp( 90)/ 0.896e+00, 0.239e+00/ data vxp( 91),vyp( 91)/ 0.907e+00, 0.230e+00/ data vxp( 92),vyp( 92)/ 0.915e+00, 0.221e+00/ data vxp( 93),vyp( 93)/ 0.926e+00, 0.212e+00/ data vxp( 94),vyp( 94)/ 0.932e+00, 0.197e+00/ data vxp( 95),vyp( 95)/ 0.948e+00, 0.197e+00/ data vxp( 96),vyp( 96)/ 0.959e+00, 0.200e+00/ data vxp( 97),vyp( 97)/ 0.973e+00, 0.203e+00/ data vxp( 98),vyp( 98)/ 0.984e+00, 0.206e+00/ data vxp( 99),vyp( 99)/ 0.989e+00, 0.206e+00/ data vxp(100),vyp(100)/ 0.100e+01, 0.206e+00/ data vxp(101),vyp(101)/ 0.100e+01, 0.242e+00/ data vxp(102),vyp(102)/ 0.989e+00, 0.248e+00/ data vxp(103),vyp(103)/ 0.984e+00, 0.258e+00/ data vxp(104),vyp(104)/ 0.978e+00, 0.258e+00/ data vxp(105),vyp(105)/ 0.973e+00, 0.267e+00/ data vxp(106),vyp(106)/ 0.970e+00, 0.270e+00/ data vxp(107),vyp(107)/ 0.970e+00, 0.276e+00/ data vxp(108),vyp(108)/ 0.970e+00, 0.282e+00/ data vxp(109),vyp(109)/ 0.964e+00, 0.288e+00/ data vxp(110),vyp(110)/ 0.964e+00, 0.297e+00/ data vxp(111),vyp(111)/ 0.959e+00, 0.303e+00/ data vxp(112),vyp(112)/ 0.953e+00, 0.312e+00/ data vxp(113),vyp(113)/ 0.951e+00, 0.321e+00/ data vxp(114),vyp(114)/ 0.948e+00, 0.327e+00/ data vxp(115),vyp(115)/ 0.953e+00, 0.333e+00/ data vxp(116),vyp(116)/ 0.967e+00, 0.336e+00/ data vxp(117),vyp(117)/ 0.973e+00, 0.333e+00/ data vxp(118),vyp(118)/ 0.978e+00, 0.330e+00/ data vxp(119),vyp(119)/ 0.984e+00, 0.327e+00/ data vxp(120),vyp(120)/ 0.986e+00, 0.330e+00/ data vxp(121),vyp(121)/ 0.992e+00, 0.333e+00/ data vxp(122),vyp(122)/ 0.995e+00, 0.336e+00/ data vxp(123),vyp(123)/ 0.992e+00, 0.358e+00/ data vxp(124),vyp(124)/ 0.986e+00, 0.364e+00/ data vxp(125),vyp(125)/ 0.986e+00, 0.370e+00/ data vxp(126),vyp(126)/ 0.984e+00, 0.376e+00/ data vxp(127),vyp(127)/ 0.981e+00, 0.379e+00/ data vxp(128),vyp(128)/ 0.978e+00, 0.388e+00/ data vxp(129),vyp(129)/ 0.978e+00, 0.394e+00/ data vxp(130),vyp(130)/ 0.970e+00, 0.394e+00/ data vxp(131),vyp(131)/ 0.964e+00, 0.391e+00/ data vxp(132),vyp(132)/ 0.956e+00, 0.391e+00/ data vxp(133),vyp(133)/ 0.951e+00, 0.394e+00/ data vxp(134),vyp(134)/ 0.948e+00, 0.397e+00/ data vxp(135),vyp(135)/ 0.945e+00, 0.403e+00/ data vxp(136),vyp(136)/ 0.942e+00, 0.409e+00/ data vxp(137),vyp(137)/ 0.942e+00, 0.415e+00/ data vxp(138),vyp(138)/ 0.940e+00, 0.418e+00/ data vxp(139),vyp(139)/ 0.940e+00, 0.430e+00/ data vxp(140),vyp(140)/ 0.942e+00, 0.439e+00/ data vxp(141),vyp(141)/ 0.948e+00, 0.445e+00/ data vxp(142),vyp(142)/ 0.948e+00, 0.461e+00/ data vxp(143),vyp(143)/ 0.948e+00, 0.470e+00/ data vxp(144),vyp(144)/ 0.948e+00, 0.488e+00/ data vxp(145),vyp(145)/ 0.942e+00, 0.491e+00/ data vxp(146),vyp(146)/ 0.937e+00, 0.491e+00/ data vxp(147),vyp(147)/ 0.932e+00, 0.488e+00/ data vxp(148),vyp(148)/ 0.926e+00, 0.488e+00/ data vxp(149),vyp(149)/ 0.923e+00, 0.491e+00/ data vxp(150),vyp(150)/ 0.915e+00, 0.494e+00/ data vxp(151),vyp(151)/ 0.910e+00, 0.494e+00/ data vxp(152),vyp(152)/ 0.901e+00, 0.491e+00/ data vxp(153),vyp(153)/ 0.899e+00, 0.488e+00/ data vxp(154),vyp(154)/ 0.893e+00, 0.479e+00/ data vxp(155),vyp(155)/ 0.888e+00, 0.479e+00/ data vxp(156),vyp(156)/ 0.879e+00, 0.485e+00/ data vxp(157),vyp(157)/ 0.871e+00, 0.494e+00/ data vxp(158),vyp(158)/ 0.868e+00, 0.506e+00/ data vxp(159),vyp(159)/ 0.866e+00, 0.518e+00/ data vxp(160),vyp(160)/ 0.866e+00, 0.524e+00/ data vxp(161),vyp(161)/ 0.877e+00, 0.524e+00/ data vxp(162),vyp(162)/ 0.882e+00, 0.527e+00/ data vxp(163),vyp(163)/ 0.893e+00, 0.530e+00/ data vxp(164),vyp(164)/ 0.896e+00, 0.533e+00/ data vxp(165),vyp(165)/ 0.893e+00, 0.539e+00/ data vxp(166),vyp(166)/ 0.888e+00, 0.542e+00/ data vxp(167),vyp(167)/ 0.882e+00, 0.542e+00/ data vxp(168),vyp(168)/ 0.879e+00, 0.552e+00/ data vxp(169),vyp(169)/ 0.888e+00, 0.558e+00/ data vxp(170),vyp(170)/ 0.896e+00, 0.564e+00/ data vxp(171),vyp(171)/ 0.907e+00, 0.564e+00/ data vxp(172),vyp(172)/ 0.921e+00, 0.567e+00/ data vxp(173),vyp(173)/ 0.929e+00, 0.570e+00/ data vxp(174),vyp(174)/ 0.937e+00, 0.573e+00/ data vxp(175),vyp(175)/ 0.945e+00, 0.567e+00/ data vxp(176),vyp(176)/ 0.953e+00, 0.567e+00/ data vxp(177),vyp(177)/ 0.962e+00, 0.567e+00/ data vxp(178),vyp(178)/ 0.967e+00, 0.573e+00/ data vxp(179),vyp(179)/ 0.978e+00, 0.588e+00/ data vxp(180),vyp(180)/ 0.984e+00, 0.591e+00/ data vxp(181),vyp(181)/ 0.989e+00, 0.597e+00/ data vxp(182),vyp(182)/ 0.992e+00, 0.597e+00/ data vxp(183),vyp(183)/ 0.100e+01, 0.594e+00/ data vxp(184),vyp(184)/ 0.100e+01, 0.642e+00/ data vxp(185),vyp(185)/ 0.986e+00, 0.652e+00/ data vxp(186),vyp(186)/ 0.981e+00, 0.661e+00/ data vxp(187),vyp(187)/ 0.973e+00, 0.664e+00/ data vxp(188),vyp(188)/ 0.970e+00, 0.670e+00/ data vxp(189),vyp(189)/ 0.964e+00, 0.685e+00/ data vxp(190),vyp(190)/ 0.964e+00, 0.691e+00/ data vxp(191),vyp(191)/ 0.956e+00, 0.691e+00/ data vxp(192),vyp(192)/ 0.945e+00, 0.691e+00/ data vxp(193),vyp(193)/ 0.951e+00, 0.697e+00/ data vxp(194),vyp(194)/ 0.948e+00, 0.709e+00/ data vxp(195),vyp(195)/ 0.942e+00, 0.721e+00/ data vxp(196),vyp(196)/ 0.940e+00, 0.724e+00/ data vxp(197),vyp(197)/ 0.932e+00, 0.730e+00/ data vxp(198),vyp(198)/ 0.921e+00, 0.739e+00/ data vxp(199),vyp(199)/ 0.918e+00, 0.758e+00/ data vxp(200),vyp(200)/ 0.899e+00, 0.767e+00/ data vxp(201),vyp(201)/ 0.899e+00, 0.773e+00/ data vxp(202),vyp(202)/ 0.904e+00, 0.779e+00/ data vxp(203),vyp(203)/ 0.901e+00, 0.788e+00/ data vxp(204),vyp(204)/ 0.901e+00, 0.797e+00/ data vxp(205),vyp(205)/ 0.896e+00, 0.812e+00/ data vxp(206),vyp(206)/ 0.888e+00, 0.815e+00/ data vxp(207),vyp(207)/ 0.888e+00, 0.824e+00/ data vxp(208),vyp(208)/ 0.874e+00, 0.842e+00/ data vxp(209),vyp(209)/ 0.871e+00, 0.848e+00/ data vxp(210),vyp(210)/ 0.874e+00, 0.852e+00/ data vxp(211),vyp(211)/ 0.874e+00, 0.870e+00/ data vxp(212),vyp(212)/ 0.882e+00, 0.873e+00/ data vxp(213),vyp(213)/ 0.885e+00, 0.879e+00/ data vxp(214),vyp(214)/ 0.885e+00, 0.885e+00/ data vxp(215),vyp(215)/ 0.890e+00, 0.885e+00/ data vxp(216),vyp(216)/ 0.888e+00, 0.915e+00/ data vxp(217),vyp(217)/ 0.893e+00, 0.915e+00/ data vxp(218),vyp(218)/ 0.893e+00, 0.930e+00/ data vxp(219),vyp(219)/ 0.877e+00, 0.961e+00/ data vxp(220),vyp(220)/ 0.879e+00, 0.970e+00/ data vxp(221),vyp(221)/ 0.882e+00, 0.970e+00/ data vxp(222),vyp(222)/ 0.901e+00, 0.655e+00/ data vxp(223),vyp(223)/ 0.901e+00, 0.642e+00/ data vxp(224),vyp(224)/ 0.893e+00, 0.621e+00/ data vxp(225),vyp(225)/ 0.885e+00, 0.618e+00/ data vxp(226),vyp(226)/ 0.874e+00, 0.618e+00/ data vxp(227),vyp(227)/ 0.866e+00, 0.630e+00/ data vxp(228),vyp(228)/ 0.866e+00, 0.648e+00/ data vxp(229),vyp(229)/ 0.877e+00, 0.648e+00/ data vxp(230),vyp(230)/ 0.882e+00, 0.658e+00/ data vxp(231),vyp(231)/ 0.901e+00, 0.661e+00/ data vxp(232),vyp(232)/ 0.896e+00, 0.358e+00/ data vxp(233),vyp(233)/ 0.896e+00, 0.345e+00/ data vxp(234),vyp(234)/ 0.901e+00, 0.333e+00/ data vxp(235),vyp(235)/ 0.890e+00, 0.352e+00/ data vxp(236),vyp(236)/ 0.819e+00, 0.285e+00/ data vxp(237),vyp(237)/ 0.808e+00, 0.276e+00/ data vxp(238),vyp(238)/ 0.805e+00, 0.282e+00/ data vxp(239),vyp(239)/ 0.814e+00, 0.291e+00/ data vxp(240),vyp(240)/ 0.841e+00, 0.264e+00/ data vxp(241),vyp(241)/ 0.841e+00, 0.258e+00/ data vxp(242),vyp(242)/ 0.830e+00, 0.255e+00/ data vxp(243),vyp(243)/ 0.833e+00, 0.267e+00/ data vxp(244),vyp(244)/ 0.789e+00, 0.209e+00/ data vxp(245),vyp(245)/ 0.797e+00, 0.209e+00/ data vxp(246),vyp(246)/ 0.795e+00, 0.206e+00/ data vxp(247),vyp(247)/ 0.795e+00, 0.197e+00/ data vxp(248),vyp(248)/ 0.784e+00, 0.200e+00/ data vxp(249),vyp(249)/ 0.789e+00, 0.212e+00/ data vxp(250),vyp(250)/ 0.726e+00, 0.142e+00/ data vxp(251),vyp(251)/ 0.729e+00, 0.136e+00/ data vxp(252),vyp(252)/ 0.721e+00, 0.136e+00/ data vxp(253),vyp(253)/ 0.718e+00, 0.127e+00/ data vxp(254),vyp(254)/ 0.710e+00, 0.127e+00/ data vxp(255),vyp(255)/ 0.710e+00, 0.136e+00/ data vxp(256),vyp(256)/ 0.721e+00, 0.145e+00/ data vxp(257),vyp(257)/ 0.636e+00, 0.179e+00/ data vxp(258),vyp(258)/ 0.655e+00, 0.173e+00/ data vxp(259),vyp(259)/ 0.633e+00, 0.176e+00/ data vxp(260),vyp(260)/ 0.622e+00, 0.170e+00/ data vxp(261),vyp(261)/ 0.616e+00, 0.179e+00/ data vxp(262),vyp(262)/ 0.625e+00, 0.182e+00/ data vxp(263),vyp(263)/ 0.592e+00, 0.173e+00/ data vxp(264),vyp(264)/ 0.605e+00, 0.170e+00/ data vxp(265),vyp(265)/ 0.584e+00, 0.158e+00/ data vxp(266),vyp(266)/ 0.575e+00, 0.158e+00/ data vxp(267),vyp(267)/ 0.573e+00, 0.161e+00/ data vxp(268),vyp(268)/ 0.564e+00, 0.158e+00/ data vxp(269),vyp(269)/ 0.562e+00, 0.155e+00/ data vxp(270),vyp(270)/ 0.559e+00, 0.155e+00/ data vxp(271),vyp(271)/ 0.559e+00, 0.161e+00/ data vxp(272),vyp(272)/ 0.567e+00, 0.173e+00/ data vxp(273),vyp(273)/ 0.490e+00, 0.145e+00/ data vxp(274),vyp(274)/ 0.496e+00, 0.155e+00/ data vxp(275),vyp(275)/ 0.537e+00, 0.158e+00/ data vxp(276),vyp(276)/ 0.542e+00, 0.148e+00/ data vxp(277),vyp(277)/ 0.537e+00, 0.148e+00/ data vxp(278),vyp(278)/ 0.529e+00, 0.152e+00/ data vxp(279),vyp(279)/ 0.518e+00, 0.152e+00/ data vxp(280),vyp(280)/ 0.518e+00, 0.148e+00/ data vxp(281),vyp(281)/ 0.504e+00, 0.152e+00/ data vxp(282),vyp(282)/ 0.504e+00, 0.139e+00/ data vxp(283),vyp(283)/ 0.490e+00, 0.136e+00/ data vxp(284),vyp(284)/ 0.477e+00, 0.142e+00/ data vxp(285),vyp(285)/ 0.482e+00, 0.133e+00/ data vxp(286),vyp(286)/ 0.468e+00, 0.133e+00/ data vxp(287),vyp(287)/ 0.460e+00, 0.136e+00/ data vxp(288),vyp(288)/ 0.460e+00, 0.145e+00/ data vxp(289),vyp(289)/ 0.447e+00, 0.139e+00/ data vxp(290),vyp(290)/ 0.444e+00, 0.133e+00/ data vxp(291),vyp(291)/ 0.430e+00, 0.130e+00/ data vxp(292),vyp(292)/ 0.403e+00, 0.127e+00/ data vxp(293),vyp(293)/ 0.397e+00, 0.121e+00/ data vxp(294),vyp(294)/ 0.389e+00, 0.124e+00/ data vxp(295),vyp(295)/ 0.381e+00, 0.124e+00/ data vxp(296),vyp(296)/ 0.395e+00, 0.139e+00/ data vxp(297),vyp(297)/ 0.315e+00, 0.112e+00/ data vxp(298),vyp(298)/ 0.337e+00, 0.115e+00/ data vxp(299),vyp(299)/ 0.364e+00, 0.115e+00/ data vxp(300),vyp(300)/ 0.351e+00, 0.109e+00/ data vxp(301),vyp(301)/ 0.332e+00, 0.103e+00/ data vxp(302),vyp(302)/ 0.315e+00, 0.100e+00/ data vxp(303),vyp(303)/ 0.296e+00, 0.100e+00/ data vxp(304),vyp(304)/ 0.293e+00, 0.109e+00/ data vxp(305),vyp(305)/ 0.304e+00, 0.940e-01/ data vxp(306),vyp(306)/ 0.310e+00, 0.850e-01/ data vxp(307),vyp(307)/ 0.304e+00, 0.760e-01/ data vxp(308),vyp(308)/ 0.296e+00, 0.760e-01/ data vxp(309),vyp(309)/ 0.293e+00, 0.820e-01/ data vxp(310),vyp(310)/ 0.290e+00, 0.910e-01/ data vxp(311),vyp(311)/ 0.230e+00, 0.610e-01/ data vxp(312),vyp(312)/ 0.249e+00, 0.730e-01/ data vxp(313),vyp(313)/ 0.260e+00, 0.730e-01/ data vxp(314),vyp(314)/ 0.266e+00, 0.640e-01/ data vxp(315),vyp(315)/ 0.271e+00, 0.610e-01/ data vxp(316),vyp(316)/ 0.271e+00, 0.580e-01/ data vxp(317),vyp(317)/ 0.249e+00, 0.550e-01/ data vxp(318),vyp(318)/ 0.247e+00, 0.480e-01/ data vxp(319),vyp(319)/ 0.241e+00, 0.480e-01/ data vxp(320),vyp(320)/ 0.249e+00, 0.390e-01/ data vxp(321),vyp(321)/ 0.233e+00, 0.390e-01/ data vxp(322),vyp(322)/ 0.222e+00, 0.520e-01/ data vxp(323),vyp(323)/ 0.222e+00, 0.610e-01/ data vxp(324),vyp(324)/ 0.203e+00, 0.240e-01/ data vxp(325),vyp(325)/ 0.200e+00, 0.210e-01/ data vxp(326),vyp(326)/ 0.195e+00, 0.120e-01/ data vxp(327),vyp(327)/ 0.192e+00, 0.120e-01/ data vxp(328),vyp(328)/ 0.192e+00, 0.300e-01/ data vxp(329),vyp(329)/ 0.197e+00, 0.300e-01/ data vxp(330),vyp(330)/ 0.203e+00, 0.300e-01/ data vxp(331),vyp(331)/ 0.153e+00, 0.300e-01/ data vxp(332),vyp(332)/ 0.156e+00, 0.270e-01/ data vxp(333),vyp(333)/ 0.170e+00, 0.270e-01/ data vxp(334),vyp(334)/ 0.175e+00, 0.180e-01/ data vxp(335),vyp(335)/ 0.156e+00, 0.180e-01/ data vxp(336),vyp(336)/ 0.153e+00, 0.210e-01/ data vxp(337),vyp(337)/ 0.145e+00, 0.180e-01/ data vxp(338),vyp(338)/ 0.145e+00, 0.240e-01/ data vxp(339),vyp(339)/ 0.148e+00, 0.300e-01/ data vxp(340),vyp(340)/ 0.137e+00, 0.150e-01/ data vxp(341),vyp(341)/ 0.137e+00, 0.900e-02/ data vxp(342),vyp(342)/ 0.134e+00, 0.900e-02/ data vxp(343),vyp(343)/ 0.134e+00, 0.600e-02/ data vxp(344),vyp(344)/ 0.126e+00, 0.600e-02/ data vxp(345),vyp(345)/ 0.123e+00, 0.150e-01/ data vxp(346),vyp(346)/ 0.638e+00, 0.427e+00/ data vxp(347),vyp(347)/ 0.628e+00, 0.422e+00/ data vxp(348),vyp(348)/ 0.627e+00, 0.421e+00/ data vxp(349),vyp(349)/ 0.627e+00, 0.418e+00/ data vxp(350),vyp(350)/ 0.625e+00, 0.418e+00/ data vxp(351),vyp(351)/ 0.633e+00, 0.433e+00/ data vxp(352),vyp(352)/ 0.633e+00, 0.427e+00/ data vxp(353),vyp(353)/ 0.970e+00, 0.639e+00/ data vxp(354),vyp(354)/ 0.975e+00, 0.639e+00/ data vxp(355),vyp(355)/ 0.986e+00, 0.636e+00/ data vxp(356),vyp(356)/ 0.984e+00, 0.621e+00/ data vxp(357),vyp(357)/ 0.981e+00, 0.618e+00/ data vxp(358),vyp(358)/ 0.975e+00, 0.606e+00/ data vxp(359),vyp(359)/ 0.967e+00, 0.600e+00/ data vxp(360),vyp(360)/ 0.948e+00, 0.600e+00/ data vxp(361),vyp(361)/ 0.942e+00, 0.603e+00/ data vxp(362),vyp(362)/ 0.940e+00, 0.606e+00/ data vxp(363),vyp(363)/ 0.942e+00, 0.615e+00/ data vxp(364),vyp(364)/ 0.940e+00, 0.624e+00/ data vxp(365),vyp(365)/ 0.942e+00, 0.627e+00/ data vxp(366),vyp(366)/ 0.951e+00, 0.630e+00/ data vxp(367),vyp(367)/ 0.956e+00, 0.639e+00/ data vxp(368),vyp(368)/ 0.964e+00, 0.639e+00/ data vxp(369),vyp(369)/ 0.858e+00, 0.600e+00/ data vxp(370),vyp(370)/ 0.852e+00, 0.597e+00/ data vxp(371),vyp(371)/ 0.852e+00, 0.606e+00/ data vxp(372),vyp(372)/ 0.858e+00, 0.606e+00/ data vxp(373),vyp(373)/ 0.825e+00, 0.600e+00/ data vxp(374),vyp(374)/ 0.825e+00, 0.594e+00/ data vxp(375),vyp(375)/ 0.830e+00, 0.594e+00/ data vxp(376),vyp(376)/ 0.833e+00, 0.588e+00/ data vxp(377),vyp(377)/ 0.833e+00, 0.582e+00/ data vxp(378),vyp(378)/ 0.830e+00, 0.573e+00/ data vxp(379),vyp(379)/ 0.825e+00, 0.576e+00/ data vxp(380),vyp(380)/ 0.814e+00, 0.588e+00/ data vxp(381),vyp(381)/ 0.819e+00, 0.600e+00/ data vxp(382),vyp(382)/ 0.827e+00, 0.603e+00/ data vxp(383),vyp(383)/ 0.830e+00, 0.645e+00/ data vxp(384),vyp(384)/ 0.830e+00, 0.630e+00/ data vxp(385),vyp(385)/ 0.825e+00, 0.624e+00/ data vxp(386),vyp(386)/ 0.819e+00, 0.633e+00/ data vxp(387),vyp(387)/ 0.822e+00, 0.648e+00/ data vxp(388),vyp(388)/ 0.855e+00, 0.670e+00/ data vxp(389),vyp(389)/ 0.858e+00, 0.667e+00/ data vxp(390),vyp(390)/ 0.858e+00, 0.664e+00/ data vxp(391),vyp(391)/ 0.849e+00, 0.661e+00/ data vxp(392),vyp(392)/ 0.847e+00, 0.667e+00/ data vxp(393),vyp(393)/ 0.838e+00, 0.673e+00/ data vxp(394),vyp(394)/ 0.822e+00, 0.664e+00/ data vxp(395),vyp(395)/ 0.814e+00, 0.664e+00/ data vxp(396),vyp(396)/ 0.819e+00, 0.679e+00/ data vxp(397),vyp(397)/ 0.888e+00, 0.721e+00/ data vxp(398),vyp(398)/ 0.888e+00, 0.715e+00/ data vxp(399),vyp(399)/ 0.882e+00, 0.712e+00/ data vxp(400),vyp(400)/ 0.877e+00, 0.709e+00/ data vxp(401),vyp(401)/ 0.866e+00, 0.709e+00/ data vxp(402),vyp(402)/ 0.858e+00, 0.706e+00/ data vxp(403),vyp(403)/ 0.852e+00, 0.700e+00/ data vxp(404),vyp(404)/ 0.847e+00, 0.703e+00/ data vxp(405),vyp(405)/ 0.844e+00, 0.709e+00/ data vxp(406),vyp(406)/ 0.849e+00, 0.715e+00/ data vxp(407),vyp(407)/ 0.858e+00, 0.715e+00/ data vxp(408),vyp(408)/ 0.866e+00, 0.718e+00/ data vxp(409),vyp(409)/ 0.871e+00, 0.718e+00/ data vxp(410),vyp(410)/ 0.879e+00, 0.721e+00/ data vxp(411),vyp(411)/ 0.890e+00, 0.724e+00/ data vxp(412),vyp(412)/ 0.907e+00, 0.733e+00/ data vxp(413),vyp(413)/ 0.893e+00, 0.736e+00/ data vxp(414),vyp(414)/ 0.907e+00, 0.742e+00/ data vxp(415),vyp(415)/ 0.784e+00, 0.748e+00/ data vxp(416),vyp(416)/ 0.781e+00, 0.739e+00/ data vxp(417),vyp(417)/ 0.786e+00, 0.730e+00/ data vxp(418),vyp(418)/ 0.795e+00, 0.715e+00/ data vxp(419),vyp(419)/ 0.795e+00, 0.706e+00/ data vxp(420),vyp(420)/ 0.800e+00, 0.706e+00/ data vxp(421),vyp(421)/ 0.800e+00, 0.700e+00/ data vxp(422),vyp(422)/ 0.792e+00, 0.700e+00/ data vxp(423),vyp(423)/ 0.789e+00, 0.697e+00/ data vxp(424),vyp(424)/ 0.781e+00, 0.703e+00/ data vxp(425),vyp(425)/ 0.775e+00, 0.709e+00/ data vxp(426),vyp(426)/ 0.770e+00, 0.718e+00/ data vxp(427),vyp(427)/ 0.767e+00, 0.727e+00/ data vxp(428),vyp(428)/ 0.770e+00, 0.730e+00/ data vxp(429),vyp(429)/ 0.767e+00, 0.739e+00/ data vxp(430),vyp(430)/ 0.789e+00, 0.761e+00/ data vxp(431),vyp(431)/ 0.836e+00, 0.782e+00/ data vxp(432),vyp(432)/ 0.841e+00, 0.782e+00/ data vxp(433),vyp(433)/ 0.844e+00, 0.788e+00/ data vxp(434),vyp(434)/ 0.852e+00, 0.788e+00/ data vxp(435),vyp(435)/ 0.855e+00, 0.785e+00/ data vxp(436),vyp(436)/ 0.860e+00, 0.785e+00/ data vxp(437),vyp(437)/ 0.863e+00, 0.779e+00/ data vxp(438),vyp(438)/ 0.860e+00, 0.773e+00/ data vxp(439),vyp(439)/ 0.863e+00, 0.767e+00/ data vxp(440),vyp(440)/ 0.866e+00, 0.764e+00/ data vxp(441),vyp(441)/ 0.860e+00, 0.761e+00/ data vxp(442),vyp(442)/ 0.858e+00, 0.752e+00/ data vxp(443),vyp(443)/ 0.858e+00, 0.739e+00/ data vxp(444),vyp(444)/ 0.822e+00, 0.739e+00/ data vxp(445),vyp(445)/ 0.816e+00, 0.748e+00/ data vxp(446),vyp(446)/ 0.811e+00, 0.748e+00/ data vxp(447),vyp(447)/ 0.803e+00, 0.752e+00/ data vxp(448),vyp(448)/ 0.803e+00, 0.764e+00/ data vxp(449),vyp(449)/ 0.803e+00, 0.773e+00/ data vxp(450),vyp(450)/ 0.808e+00, 0.782e+00/ data vxp(451),vyp(451)/ 0.816e+00, 0.785e+00/ data vxp(452),vyp(452)/ 0.836e+00, 0.785e+00/ data vxp(453),vyp(453)/ 0.822e+00, 0.973e+00/ data vxp(454),vyp(454)/ 0.808e+00, 0.970e+00/ data vxp(455),vyp(455)/ 0.805e+00, 0.964e+00/ data vxp(456),vyp(456)/ 0.814e+00, 0.961e+00/ data vxp(457),vyp(457)/ 0.814e+00, 0.955e+00/ data vxp(458),vyp(458)/ 0.808e+00, 0.952e+00/ data vxp(459),vyp(459)/ 0.800e+00, 0.945e+00/ data vxp(460),vyp(460)/ 0.792e+00, 0.936e+00/ data vxp(461),vyp(461)/ 0.789e+00, 0.927e+00/ data vxp(462),vyp(462)/ 0.786e+00, 0.921e+00/ data vxp(463),vyp(463)/ 0.786e+00, 0.903e+00/ data vxp(464),vyp(464)/ 0.789e+00, 0.885e+00/ data vxp(465),vyp(465)/ 0.795e+00, 0.876e+00/ data vxp(466),vyp(466)/ 0.803e+00, 0.870e+00/ data vxp(467),vyp(467)/ 0.814e+00, 0.864e+00/ data vxp(468),vyp(468)/ 0.822e+00, 0.864e+00/ data vxp(469),vyp(469)/ 0.830e+00, 0.864e+00/ data vxp(470),vyp(470)/ 0.819e+00, 0.855e+00/ data vxp(471),vyp(471)/ 0.811e+00, 0.852e+00/ data vxp(472),vyp(472)/ 0.803e+00, 0.845e+00/ data vxp(473),vyp(473)/ 0.795e+00, 0.852e+00/ data vxp(474),vyp(474)/ 0.792e+00, 0.858e+00/ data vxp(475),vyp(475)/ 0.784e+00, 0.867e+00/ data vxp(476),vyp(476)/ 0.781e+00, 0.864e+00/ data vxp(477),vyp(477)/ 0.781e+00, 0.855e+00/ data vxp(478),vyp(478)/ 0.773e+00, 0.852e+00/ data vxp(479),vyp(479)/ 0.770e+00, 0.848e+00/ data vxp(480),vyp(480)/ 0.770e+00, 0.833e+00/ data vxp(481),vyp(481)/ 0.770e+00, 0.818e+00/ data vxp(482),vyp(482)/ 0.767e+00, 0.809e+00/ data vxp(483),vyp(483)/ 0.767e+00, 0.803e+00/ data vxp(484),vyp(484)/ 0.770e+00, 0.803e+00/ data vxp(485),vyp(485)/ 0.767e+00, 0.788e+00/ data vxp(486),vyp(486)/ 0.764e+00, 0.776e+00/ data vxp(487),vyp(487)/ 0.759e+00, 0.785e+00/ data vxp(488),vyp(488)/ 0.762e+00, 0.806e+00/ data vxp(489),vyp(489)/ 0.762e+00, 0.812e+00/ data vxp(490),vyp(490)/ 0.764e+00, 0.870e+00/ data vxp(491),vyp(491)/ 0.767e+00, 0.885e+00/ data vxp(492),vyp(492)/ 0.773e+00, 0.906e+00/ data vxp(493),vyp(493)/ 0.781e+00, 0.933e+00/ data vxp(494),vyp(494)/ 0.795e+00, 0.964e+00/ data vxp(495),vyp(495)/ 0.803e+00, 0.979e+00/ data vxp(496),vyp(496)/ 0.814e+00, 0.979e+00/ data vxp(497),vyp(497)/ 0.814e+00, 0.976e+00/ data vxp(498),vyp(498)/ 0.822e+00, 0.976e+00/ data vxp(499),vyp(499)/ 0.825e+00, 0.973e+00/ c c sp(2)='north sea' sp(1)='north sea' sp(3)='north sea' sp(4)='north sea' c do i=1,nvf vx(i)=vxp(i) vy(i)=vyp(i) enddo do i=1,499 ibndry(1,i)=i ibndry(2,i)=i+1 ibndry(3,i)=0 ibndry(4,i)=2 ibndry(5,i)=0 ibndry(6,i)=0 enddo ibndry(2,221)=1 ibndry(2,231)=222 ibndry(2,235)=232 ibndry(2,239)=236 ibndry(2,243)=240 ibndry(2,249)=244 ibndry(2,256)=250 ibndry(2,262)=257 ibndry(2,272)=263 ibndry(2,283)=273 ibndry(2,288)=284 ibndry(2,296)=289 ibndry(2,304)=297 ibndry(2,310)=305 ibndry(2,323)=311 ibndry(2,330)=324 ibndry(2,339)=331 ibndry(2,345)=340 ibndry(2,352)=346 ibndry(2,368)=353 ibndry(2,372)=369 ibndry(2,382)=373 ibndry(2,387)=383 ibndry(2,393)=388 ibndry(2,396)=394 ibndry(2,411)=397 ibndry(2,414)=412 ibndry(2,430)=415 ibndry(2,452)=431 ibndry(2,499)=453 do i=500,531 ibndry(3,i)=0 ibndry(4,i)=0 ibndry(5,i)=0 ibndry(6,i)=0 enddo ibndry(1,500)=5 ibndry(2,500)=344 ibndry(1,501)=340 ibndry(2,501)=337 ibndry(1,502)=334 ibndry(2,502)=327 ibndry(1,503)=330 ibndry(2,503)=321 ibndry(1,504)=313 ibndry(2,504)=308 ibndry(1,505)=305 ibndry(2,505)=303 ibndry(1,506)=299 ibndry(2,506)=295 ibndry(1,507)=289 ibndry(2,507)=287 ibndry(1,508)=285 ibndry(2,508)=283 ibndry(1,509)=276 ibndry(2,509)=270 ibndry(1,510)=264 ibndry(2,510)=261 ibndry(1,511)=258 ibndry(2,511)=255 ibndry(1,512)=250 ibndry(2,512)=248 ibndry(1,513)=245 ibndry(2,513)=242 ibndry(1,514)=243 ibndry(2,514)=236 ibndry(1,515)=238 ibndry(2,515)=349 ibndry(1,516)=239 ibndry(2,516)=235 ibndry(1,517)=234 ibndry(2,517)=114 ibndry(1,518)=355 ibndry(2,518)=184 ibndry(1,519)=362 ibndry(2,519)=224 ibndry(1,520)=226 ibndry(2,520)=372 ibndry(1,521)=370 ibndry(2,521)=376 ibndry(1,522)=382 ibndry(2,522)=385 ibndry(1,523)=387 ibndry(2,523)=395 ibndry(1,524)=396 ibndry(2,524)=393 ibndry(1,525)=388 ibndry(2,525)=403 ibndry(1,526)=411 ibndry(2,526)=412 ibndry(1,527)=413 ibndry(2,527)=443 ibndry(1,528)=448 ibndry(2,528)=430 ibndry(1,529)=429 ibndry(2,529)=486 ibndry(1,530)=2 ibndry(2,530)=495 ibndry(1,531)=351 ibndry(2,531)=379 c ip(1)=ntf ip(2)=nvf ip(3)=ncf ip(4)=nbf rp(15)=hmax rp(16)=grade c c make itnode c call sklutl(0,vx,vy,xm,ym,itnode,ibndry,ip,w,iflag) return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine gd8(vx,vy,xm,ym,itnode,ibndry,ip,rp,sp,iu,ru,su,w) c implicit real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*) 1 ,x(242),y(242) character*80 + sp(100),su(100) save nvf,ntf,nbf,ncf,x,y c c domain in the shape of a three piece airfoil c the outer boundary is an irregular polygon c data for this domain was provided by tony chan from ucla c data nvf,ntf,nbf,ncf/242,2,246,0/ data hmax,grade/0.1e0,1.5e0/ c data x( 1),y( 1)/ 0.14238694e+00, 0.52549636e+00/ data x( 2),y( 2)/ 0.14239907e+00, 0.52486056e+00/ data x( 3),y( 3)/ 0.14246652e+00, 0.52383298e+00/ data x( 4),y( 4)/ 0.14251776e+00, 0.52338821e+00/ data x( 5),y( 5)/ 0.14258587e+00, 0.52297705e+00/ data x( 6),y( 6)/ 0.14267555e+00, 0.52259350e+00/ data x( 7),y( 7)/ 0.14279018e+00, 0.52223974e+00/ data x( 8),y( 8)/ 0.14293651e+00, 0.52190989e+00/ data x( 9),y( 9)/ 0.14311521e+00, 0.52160990e+00/ data x( 10),y( 10)/ 0.14331953e+00, 0.52134800e+00/ data x( 11),y( 11)/ 0.14354138e+00, 0.52112484e+00/ data x( 12),y( 12)/ 0.14378212e+00, 0.52092934e+00/ data x( 13),y( 13)/ 0.14403769e+00, 0.52076072e+00/ data x( 14),y( 14)/ 0.14430405e+00, 0.52061445e+00/ data x( 15),y( 15)/ 0.14457782e+00, 0.52048606e+00/ data x( 16),y( 16)/ 0.14485565e+00, 0.52037263e+00/ data x( 17),y( 17)/ 0.14513819e+00, 0.52027190e+00/ data x( 18),y( 18)/ 0.14599727e+00, 0.52001894e+00/ data x( 19),y( 19)/ 0.18376550e+00, 0.51373845e+00/ data x( 20),y( 20)/ 0.18985666e+00, 0.51254296e+00/ data x( 21),y( 21)/ 0.19675030e+00, 0.51153928e+00/ data x( 22),y( 22)/ 0.24406897e+00, 0.50666326e+00/ data x( 23),y( 23)/ 0.31060791e+00, 0.50356334e+00/ data x( 24),y( 24)/ 0.38332841e+00, 0.50502747e+00/ data x( 25),y( 25)/ 0.45327878e+00, 0.51030499e+00/ data x( 26),y( 26)/ 0.51958978e+00, 0.51920772e+00/ data x( 27),y( 27)/ 0.57746434e+00, 0.52987391e+00/ data x( 28),y( 28)/ 0.58425075e+00, 0.53082687e+00/ data x( 29),y( 29)/ 0.59000003e+00, 0.53114921e+00/ data x( 30),y( 30)/ 0.59512764e+00, 0.53169250e+00/ data x( 31),y( 31)/ 0.59887820e+00, 0.53272384e+00/ data x( 32),y( 32)/ 0.60137254e+00, 0.53386259e+00/ data x( 33),y( 33)/ 0.60320872e+00, 0.53513271e+00/ data x( 34),y( 34)/ 0.60353845e+00, 0.53771621e+00/ data x( 35),y( 35)/ 0.60296059e+00, 0.54131466e+00/ data x( 36),y( 36)/ 0.60300571e+00, 0.54437202e+00/ data x( 37),y( 37)/ 0.60357350e+00, 0.54693913e+00/ data x( 38),y( 38)/ 0.60406649e+00, 0.54854357e+00/ data x( 39),y( 39)/ 0.60466123e+00, 0.55010843e+00/ data x( 40),y( 40)/ 0.60535777e+00, 0.55162632e+00/ data x( 41),y( 41)/ 0.60614204e+00, 0.55309492e+00/ data x( 42),y( 42)/ 0.60702199e+00, 0.55450010e+00/ data x( 43),y( 43)/ 0.60800248e+00, 0.55582470e+00/ data x( 44),y( 44)/ 0.60907596e+00, 0.55706424e+00/ data x( 45),y( 45)/ 0.61022371e+00, 0.55822390e+00/ data x( 46),y( 46)/ 0.61142939e+00, 0.55931419e+00/ data x( 47),y( 47)/ 0.61268497e+00, 0.56033880e+00/ data x( 48),y( 48)/ 0.61398643e+00, 0.56129622e+00/ data x( 49),y( 49)/ 0.61533439e+00, 0.56217754e+00/ data x( 50),y( 50)/ 0.61672550e+00, 0.56297755e+00/ data x( 51),y( 51)/ 0.61815780e+00, 0.56369096e+00/ data x( 52),y( 52)/ 0.61962718e+00, 0.56431180e+00/ data x( 53),y( 53)/ 0.62112886e+00, 0.56483644e+00/ data x( 54),y( 54)/ 0.62420315e+00, 0.56562895e+00/ data x( 55),y( 55)/ 0.62575811e+00, 0.56594610e+00/ data x( 56),y( 56)/ 0.62732589e+00, 0.56619239e+00/ data x( 57),y( 57)/ 0.62890446e+00, 0.56634086e+00/ data x( 58),y( 58)/ 0.63049120e+00, 0.56637746e+00/ data x( 59),y( 59)/ 0.63217700e+00, 0.56633490e+00/ data x( 60),y( 60)/ 0.63928777e+00, 0.56594688e+00/ data x( 61),y( 61)/ 0.64237547e+00, 0.56590432e+00/ data x( 62),y( 62)/ 0.64175850e+00, 0.56613564e+00/ data x( 63),y( 63)/ 0.64074898e+00, 0.56639910e+00/ data x( 64),y( 64)/ 0.63777864e+00, 0.56704980e+00/ data x( 65),y( 65)/ 0.61441934e+00, 0.57083333e+00/ data x( 66),y( 66)/ 0.53095484e+00, 0.58100241e+00/ data x( 67),y( 67)/ 0.44016385e+00, 0.58623964e+00/ data x( 68),y( 68)/ 0.35042948e+00, 0.58610827e+00/ data x( 69),y( 69)/ 0.24714592e+00, 0.58002561e+00/ data x( 70),y( 70)/ 0.22205499e+00, 0.57699656e+00/ data x( 71),y( 71)/ 0.21458752e+00, 0.57549435e+00/ data x( 72),y( 72)/ 0.20755161e+00, 0.57364964e+00/ data x( 73),y( 73)/ 0.20098640e+00, 0.57163399e+00/ data x( 74),y( 74)/ 0.19478193e+00, 0.56941843e+00/ data x( 75),y( 75)/ 0.18897466e+00, 0.56701398e+00/ data x( 76),y( 76)/ 0.18352342e+00, 0.56447226e+00/ data x( 77),y( 77)/ 0.17845722e+00, 0.56187308e+00/ data x( 78),y( 78)/ 0.16923651e+00, 0.55659187e+00/ data x( 79),y( 79)/ 0.16123903e+00, 0.55137855e+00/ data x( 80),y( 80)/ 0.15775546e+00, 0.54884428e+00/ data x( 81),y( 81)/ 0.15473247e+00, 0.54644585e+00/ data x( 82),y( 82)/ 0.15211743e+00, 0.54412651e+00/ data x( 83),y( 83)/ 0.14972629e+00, 0.54171610e+00/ data x( 84),y( 84)/ 0.14759408e+00, 0.53918707e+00/ data x( 85),y( 85)/ 0.14578351e+00, 0.53658718e+00/ data x( 86),y( 86)/ 0.14434788e+00, 0.53393197e+00/ data x( 87),y( 87)/ 0.14338359e+00, 0.53158128e+00/ data x( 88),y( 88)/ 0.14286031e+00, 0.52970970e+00/ data x( 89),y( 89)/ 0.14257507e+00, 0.52820081e+00/ data x( 90),y( 90)/ 0.14245167e+00, 0.52710903e+00/ data x( 91),y( 91)/ 0.14239976e+00, 0.52623296e+00/ data x( 92),y( 92)/ 0.64350897e+00, 0.55603290e+00/ data x( 93),y( 93)/ 0.64356840e+00, 0.55530572e+00/ data x( 94),y( 94)/ 0.64368635e+00, 0.55459970e+00/ data x( 95),y( 95)/ 0.64387923e+00, 0.55391252e+00/ data x( 96),y( 96)/ 0.64416379e+00, 0.55330718e+00/ data x( 97),y( 97)/ 0.64450228e+00, 0.55284947e+00/ data x( 98),y( 98)/ 0.64483809e+00, 0.55251265e+00/ data x( 99),y( 99)/ 0.64515030e+00, 0.55225414e+00/ data x(100),y(100)/ 0.64539981e+00, 0.55209374e+00/ data x(101),y(101)/ 0.64560950e+00, 0.55199981e+00/ data x(102),y(102)/ 0.65000343e+00, 0.55015725e+00/ data x(103),y(103)/ 0.65195090e+00, 0.54946691e+00/ data x(104),y(104)/ 0.65355039e+00, 0.54898107e+00/ data x(105),y(105)/ 0.65445668e+00, 0.54873705e+00/ data x(106),y(106)/ 0.65544385e+00, 0.54851377e+00/ data x(107),y(107)/ 0.65652210e+00, 0.54833364e+00/ data x(108),y(108)/ 0.65895778e+00, 0.54804218e+00/ data x(109),y(109)/ 0.66510695e+00, 0.54695308e+00/ data x(110),y(110)/ 0.66893238e+00, 0.54609281e+00/ data x(111),y(111)/ 0.67091352e+00, 0.54556215e+00/ data x(112),y(112)/ 0.67275780e+00, 0.54498011e+00/ data x(113),y(113)/ 0.68000346e+00, 0.54238534e+00/ data x(114),y(114)/ 0.68109047e+00, 0.54183996e+00/ data x(115),y(115)/ 0.68448633e+00, 0.53959823e+00/ data x(116),y(116)/ 0.68519235e+00, 0.53916425e+00/ data x(117),y(117)/ 0.68585521e+00, 0.53878689e+00/ data x(118),y(118)/ 0.68608046e+00, 0.53896588e+00/ data x(119),y(119)/ 0.68600219e+00, 0.53920758e+00/ data x(120),y(120)/ 0.68589300e+00, 0.53945839e+00/ data x(121),y(121)/ 0.68574667e+00, 0.53972352e+00/ data x(122),y(122)/ 0.68555248e+00, 0.54002571e+00/ data x(123),y(123)/ 0.68428069e+00, 0.54174429e+00/ data x(124),y(124)/ 0.68324089e+00, 0.54303318e+00/ data x(125),y(125)/ 0.68181133e+00, 0.54464948e+00/ data x(126),y(126)/ 0.67793530e+00, 0.54862797e+00/ data x(127),y(127)/ 0.67259532e+00, 0.55358279e+00/ data x(128),y(128)/ 0.66974699e+00, 0.55597788e+00/ data x(129),y(129)/ 0.66684467e+00, 0.55816221e+00/ data x(130),y(130)/ 0.66362411e+00, 0.56015337e+00/ data x(131),y(131)/ 0.65993828e+00, 0.56181592e+00/ data x(132),y(132)/ 0.65620720e+00, 0.56289274e+00/ data x(133),y(133)/ 0.65288752e+00, 0.56327605e+00/ data x(134),y(134)/ 0.65006143e+00, 0.56308872e+00/ data x(135),y(135)/ 0.64778221e+00, 0.56250918e+00/ data x(136),y(136)/ 0.64616859e+00, 0.56174362e+00/ data x(137),y(137)/ 0.64526492e+00, 0.56106269e+00/ data x(138),y(138)/ 0.64485633e+00, 0.56061620e+00/ data x(139),y(139)/ 0.64467561e+00, 0.56034172e+00/ data x(140),y(140)/ 0.64456904e+00, 0.56012821e+00/ data x(141),y(141)/ 0.64448071e+00, 0.55992335e+00/ data x(142),y(142)/ 0.64389944e+00, 0.55821323e+00/ data x(143),y(143)/ 0.64369786e+00, 0.55753338e+00/ data x(144),y(144)/ 0.64354610e+00, 0.55678207e+00/ data x(145),y(145)/ 0.66136104e+00, 0.51671529e+00/ data x(146),y(146)/ 0.66146421e+00, 0.51561081e+00/ data x(147),y(147)/ 0.66190052e+00, 0.51450264e+00/ data x(148),y(148)/ 0.66259372e+00, 0.51342881e+00/ data x(149),y(149)/ 0.66350609e+00, 0.51241684e+00/ data x(150),y(150)/ 0.66900992e+00, 0.50778043e+00/ data x(151),y(151)/ 0.69012105e+00, 0.48983982e+00/ data x(152),y(152)/ 0.71521938e+00, 0.46596432e+00/ data x(153),y(153)/ 0.73760015e+00, 0.44191343e+00/ data x(154),y(154)/ 0.77687955e+00, 0.39426166e+00/ data x(155),y(155)/ 0.77824843e+00, 0.39296392e+00/ data x(156),y(156)/ 0.77903742e+00, 0.39230424e+00/ data x(157),y(157)/ 0.77885532e+00, 0.39332363e+00/ data x(158),y(158)/ 0.77832937e+00, 0.39514297e+00/ data x(159),y(159)/ 0.77710885e+00, 0.39755410e+00/ data x(160),y(160)/ 0.71374595e+00, 0.49894109e+00/ data x(161),y(161)/ 0.70879847e+00, 0.50545138e+00/ data x(162),y(162)/ 0.70390487e+00, 0.51122659e+00/ data x(163),y(163)/ 0.70148945e+00, 0.51380640e+00/ data x(164),y(164)/ 0.69909018e+00, 0.51613098e+00/ data x(165),y(165)/ 0.69670445e+00, 0.51818985e+00/ data x(166),y(166)/ 0.69435513e+00, 0.51994878e+00/ data x(167),y(167)/ 0.69207388e+00, 0.52144128e+00/ data x(168),y(168)/ 0.68990386e+00, 0.52269793e+00/ data x(169),y(169)/ 0.68787146e+00, 0.52373749e+00/ data x(170),y(170)/ 0.68599886e+00, 0.52457106e+00/ data x(171),y(171)/ 0.68458074e+00, 0.52512252e+00/ data x(172),y(172)/ 0.68323749e+00, 0.52557099e+00/ data x(173),y(173)/ 0.68186861e+00, 0.52594560e+00/ data x(174),y(174)/ 0.68048090e+00, 0.52624112e+00/ data x(175),y(175)/ 0.67908096e+00, 0.52644932e+00/ data x(176),y(176)/ 0.67767704e+00, 0.52655977e+00/ data x(177),y(177)/ 0.67627919e+00, 0.52656651e+00/ data x(178),y(178)/ 0.67489743e+00, 0.52647096e+00/ data x(179),y(179)/ 0.67353940e+00, 0.52629191e+00/ data x(180),y(180)/ 0.67221367e+00, 0.52603441e+00/ data x(181),y(181)/ 0.67092770e+00, 0.52570385e+00/ data x(182),y(182)/ 0.66968828e+00, 0.52530611e+00/ data x(183),y(183)/ 0.66850287e+00, 0.52484566e+00/ data x(184),y(184)/ 0.66738081e+00, 0.52432030e+00/ data x(185),y(185)/ 0.66633016e+00, 0.52373523e+00/ data x(186),y(186)/ 0.66536587e+00, 0.52308375e+00/ data x(187),y(187)/ 0.66449600e+00, 0.52237707e+00/ data x(188),y(188)/ 0.66372591e+00, 0.52162856e+00/ data x(189),y(189)/ 0.66306305e+00, 0.52085173e+00/ data x(190),y(190)/ 0.66250944e+00, 0.52006221e+00/ data x(191),y(191)/ 0.66206914e+00, 0.51927567e+00/ data x(192),y(192)/ 0.66177577e+00, 0.51860404e+00/ data x(193),y(193)/ 0.66150331e+00, 0.51772273e+00/ data x(194),y(194)/ 0.00000000e+00, 0.28819495e+00/ data x(195),y(195)/ 0.43966208e-01, 0.25921881e+00/ data x(196),y(196)/ 0.67964263e-01, 0.17930219e+00/ data x(197),y(197)/ 0.13709681e-01, 0.11062408e+00/ data x(198),y(198)/ 0.45169536e-01, 0.25816517e-01/ data x(199),y(199)/ 0.12964404e+00, 0.21003967e-01/ data x(200),y(200)/ 0.23699667e+00, 0.32177549e-01/ data x(201),y(201)/ 0.35846743e+00, 0.00000000e+00/ data x(202),y(202)/ 0.49931961e+00, 0.41386276e-01/ data x(203),y(203)/ 0.54918855e+00, 0.44396643e-01/ data x(204),y(204)/ 0.62591928e+00, 0.65661035e-01/ data x(205),y(205)/ 0.70021564e+00, 0.22311412e-01/ data x(206),y(206)/ 0.80595642e+00, 0.13935482e-01/ data x(207),y(207)/ 0.90486634e+00, 0.58995541e-01/ data x(208),y(208)/ 0.97141540e+00, 0.14212923e+00/ data x(209),y(209)/ 0.98587966e+00, 0.22880019e+00/ data x(210),y(210)/ 0.97171891e+00, 0.32607010e+00/ data x(211),y(211)/ 0.96469915e+00, 0.37979934e+00/ data x(212),y(212)/ 0.94215643e+00, 0.42545268e+00/ data x(213),y(213)/ 0.97760570e+00, 0.47650883e+00/ data x(214),y(214)/ 0.98377573e+00, 0.52510858e+00/ data x(215),y(215)/ 0.97785521e+00, 0.56944507e+00/ data x(216),y(216)/ 0.94749039e+00, 0.61905968e+00/ data x(217),y(217)/ 0.96022832e+00, 0.68079990e+00/ data x(218),y(218)/ 0.10000000e+01, 0.75031382e+00/ data x(219),y(219)/ 0.98384994e+00, 0.82811260e+00/ data x(220),y(220)/ 0.93533903e+00, 0.90708894e+00/ data x(221),y(221)/ 0.84627432e+00, 0.96236145e+00/ data x(222),y(222)/ 0.76200396e+00, 0.98998755e+00/ data x(223),y(223)/ 0.70150429e+00, 0.92286539e+00/ data x(224),y(224)/ 0.60601121e+00, 0.91732824e+00/ data x(225),y(225)/ 0.53807300e+00, 0.96716952e+00/ data x(226),y(226)/ 0.44991389e+00, 0.10000000e+01/ data x(227),y(227)/ 0.34940988e+00, 0.98966223e+00/ data x(228),y(228)/ 0.27384916e+00, 0.94458503e+00/ data x(229),y(229)/ 0.17683885e+00, 0.98585039e+00/ data x(230),y(230)/ 0.85920475e-01, 0.96512699e+00/ data x(231),y(231)/ 0.23324331e-01, 0.93042862e+00/ data x(232),y(232)/ 0.25133478e-01, 0.86095876e+00/ data x(233),y(233)/ 0.16017893e-01, 0.79044342e+00/ data x(234),y(234)/ 0.27293537e-01, 0.71037453e+00/ data x(235),y(235)/ 0.94843647e-02, 0.64085394e+00/ data x(236),y(236)/ 0.24800429e-01, 0.58418435e+00/ data x(237),y(237)/ 0.17816991e-01, 0.54199851e+00/ data x(238),y(238)/ 0.29185828e-01, 0.50188088e+00/ data x(239),y(239)/ 0.11547797e-01, 0.47742245e+00/ data x(240),y(240)/ 0.24702650e-01, 0.44864386e+00/ data x(241),y(241)/ 0.53696376e-02, 0.40575615e+00/ data x(242),y(242)/ 0.15980145e-03, 0.34338608e+00/ c sp(2)='airfoil' sp(1)='airfoil' sp(3)='airfoil' sp(4)='airfoil' c do i=1,nvf vx(i)=x(i) vy(i)=y(i) enddo do i=1,nbf ibndry(1,i)=i ibndry(2,i)=i+1 ibndry(3,i)=0 ibndry(4,i)=2 if(i.gt.nvf) ibndry(4,i)=0 ibndry(5,i)=0 ibndry(6,i)=1 enddo ibndry(2,91)=1 ibndry(2,144)=92 ibndry(2,193)=145 ibndry(2,242)=194 c ibndry(1,243)=237 ibndry(2,243)=2 ibndry(1,244)=61 ibndry(2,244)=136 ibndry(1,245)=117 ibndry(2,245)=172 ibndry(1,246)=156 ibndry(2,246)=212 c ip(1)=ntf ip(2)=nvf ip(3)=ncf ip(4)=nbf rp(15)=hmax rp(16)=grade c c make itnode c call sklutl(0,vx,vy,xm,ym,itnode,ibndry,ip,w,iflag) return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine gd9(vx,vy,xm,ym,itnode,ibndry,ip,rp,sp,iu,ru,su,w) c implicit real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100), 1 ib1(39),ib2(39),ib3(39),ib4(39) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*), 1 x(30),y(30) character*80 + sp(100),su(100) save nvf,ntf,nbf,ncf,ib1,ib2,ib3,ib4 c c a domain composed of nine subregions c data for this problem was supplied by hans mittelmann c data nvf,ntf,nbf,ncf/30,9,39,1/ data x/-30.0e0,-30.0e0,-30.0e0,-30.0e0,36.0e0,76.0e0, + 41.0e0,71.0e0,47.0e0,71.0e0,36.0e0,41.0e0, 1 47.0e0,71.0e0,90.0e0,90.0e0,90.0e0,76.0e0, 2 5.75e0,7.75e0,0.0e0,0.0e0,-5.75e0,-7.75e0, 3 0.0e0,0.0e0,5.0e0,0.0e0,-5.0e0,0.0e0/ data y/0.0e0,-44.0e0,32.0e0,36.0e0,0.0e0,0.0e0, + 5.0e0,5.0e0,11.0e0,11.0e0,32.0e0,36.0e0, 1 36.0e0,36.0e0,36.0e0,32.0e0,-44.0e0,32.0e0, 2 0.0e0,0.0e0,5.75e0,7.75e0,0.0e0,0.0e0, 3 -5.75e0,-7.75e0,0.0e0,5.0e0,0.0e0,-5.0e0/ data ib1/ 4,12,13,14, 3,18, 9, 7, 5, 4, 3,11,12, + 13,14,18,15,16,10, 2, 1, 1,24,24,22,20, 1 20,26,23,21,19,25,19,23,29,27,27,28,19/ data ib2/12,13,14,15,11,16,10, 8, 6, 3, 1, 5, 7, + 9,10, 6,16,17, 8,17, 2,24,23,22,20, 5, 1 26,24,21,19,25,23,20,29,30,30,28,29,27/ data ib3/0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,1,0,1,1,1,1,1,1,0,0,1,1,1,1,0/ data ib4/1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,1,1,0,0,0,0, + 0,0,0,0,0,0,0,0,0,2,2,2,2,0/ c sp(2)='plant' sp(1)='plant' sp(3)='plant' sp(4)='plant' c do i=1,nbf ibndry(1,i)=ib1(i) ibndry(2,i)=ib2(i) ibndry(3,i)=ib3(i) ibndry(4,i)=ib4(i) ibndry(5,i)=0 if(i.le.4) then ibndry(6,i)=1 else ibndry(6,i)=0 endif enddo do i=1,ncf xm(i)=0.0e0 ym(i)=0.0e0 enddo do i=1,nvf vx(i)=x(i) vy(i)=y(i) enddo c ip(1)=ntf ip(2)=nvf ip(3)=ncf ip(4)=nbf c c make itnode, divide long curved edges c call sklutl(0,vx,vy,xm,ym,itnode,ibndry,ip,w,iflag) call sklutl(1,vx,vy,xm,ym,itnode,ibndry,ip,w,iflag) c return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine gd10(vx,vy,xm,ym,itnode,ibndry,ip,rp,sp,iu,ru,su,w) c implicit real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*) character*80 + sp(100),su(100) save hmax,grade c c circular region with many curved interior edges c dirichlet boundary conditions on all boundary edges c data hmax,grade/0.1e0,1.5e0/ c sp(2)='fan' sp(1)='fan' sp(3)='fan' sp(4)='fan' c pi=3.141592653589793e0 r=1.0e0 r2=r/sqrt(2.0e0) ntf=7 nvf=ntf+1 ncf=ntf+1 nbf=2*ntf vx(1)=0.0e0 vy(1)=0.0e0 xm(1)=0.0e0 ym(1)=0.0e0 dt=2.0e0*pi/float(ntf) do i=1,ntf ang=float(i-1)*dt angm=ang-pi/4.0e0 vx(i+1)=r*cos(ang) vy(i+1)=r*sin(ang) xm(i+1)=r2*cos(angm) ym(i+1)=r2*sin(angm) k=2*i-1 ibndry(1,k)=1 ibndry(2,k)=i+1 ibndry(3,k)=i+1 ibndry(4,k)=0 ibndry(5,k)=0 ibndry(6,k)=k ibndry(1,k+1)=i+1 ibndry(2,k+1)=i+2 if(i.eq.ntf) ibndry(2,k+1)=2 ibndry(3,k+1)=1 ibndry(4,k+1)=2 ibndry(5,k+1)=0 ibndry(6,k+1)=k+1 enddo c ip(1)=ntf ip(2)=nvf ip(3)=ncf ip(4)=nbf rp(15)=hmax rp(16)=grade c c make itnode, refine long edges, find symmetries c call sklutl(0,vx,vy,xm,ym,itnode,ibndry,ip,w,iflag) call sklutl(1,vx,vy,xm,ym,itnode,ibndry,ip,w,iflag) call sklutl(2,vx,vy,xm,ym,itnode,ibndry,ip,w,iflag) return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine gd11(vx,vy,xm,ym,itnode,ibndry,ip,rp,sp,iu,ru,su,w) c implicit real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*) character*80 + sp(100),su(100) save hmax,grade c c domain which is decomposed into several distinct pieces, c and making extensive use of linked edges. c data hmax,grade/0.1e0,1.5e0/ c sp(2)='arc' sp(1)='arc' sp(3)='arc' sp(4)='arc' c pi=3.141592653589793e0 r1=1.0e0 r2=2.0e0 ncf=1 ntf=6 nvf=4*ntf nbf=nvf dt=pi/float(ntf) eps=dt/20.0e0 c xm(1)=0.0e0 ym(1)=0.0e0 do i=1,nbf ibndry(1,i)=i ibndry(2,i)=i+1 ibndry(3,i)=0 ibndry(4,i)=2 ibndry(5,i)=0 ibndry(6,i)=i enddo do i=1,ntf k=(i-1)*4 t1=float(i-1)*dt+eps t2=float(i)*dt-eps c1=cos(t1) c2=cos(t2) s1=sin(t1) s2=sin(t2) vx(k+1)=r1*c1 vy(k+1)=r1*s1 vx(k+2)=r2*c1 vy(k+2)=r2*s1 vx(k+3)=r2*c2 vy(k+3)=r2*s2 vx(k+4)=r1*c2 vy(k+4)=r1*s2 ibndry(2,k+4)=k+1 ibndry(3,k+2)=1 ibndry(3,k+4)=1 if(i.gt.1) ibndry(4,k+1)=-(k-1) if(i.lt.ntf) ibndry(4,k+3)=-(k+5) enddo c ip(1)=ntf ip(2)=nvf ip(3)=ncf ip(4)=nbf rp(15)=hmax rp(16)=grade c c make itnode, refine long edges, find symmetries c call sklutl(0,vx,vy,xm,ym,itnode,ibndry,ip,w,iflag) call sklutl(1,vx,vy,xm,ym,itnode,ibndry,ip,w,iflag) call sklutl(2,vx,vy,xm,ym,itnode,ibndry,ip,w,iflag) return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine gd12(vx,vy,xm,ym,itnode,ibndry,ip,rp,sp,iu,ru,su,w) c implicit real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*) character*80 + sp(100),su(100) save hmax,grade,ntf,nvf,ncf,nbf c c a spiral shaped domain for testing tgen c data ntf,nvf,ncf,nbf/1,0,2,0/ data hmax,grade/0.1e0,1.5e0/ c sp(2)='spiral' sp(1)='spiral' sp(3)='spiral' sp(4)='spiral' c nloops=6 nvf=8*nloops+2 nbf=nvf c xm(1)=0.0e0 ym(1)=0.0e0 xm(2)=1.0e0 ym(2)=0.0e0 c do k=1,nbf ibndry(1,k)=k ibndry(2,k)=k+2 ibndry(3,k)=1 ibndry(4,k)=2 ibndry(5,k)=0 ibndry(6,k)=k enddo c do i=1,nloops k=(i-1)*8 m=2*i+1 vx(k+1)=-float(m-1) vy(k+1)=0.0e0 vx(k+2)=-float(m) vy(k+2)=0.0e0 vx(k+3)=1.0e0 vy(k+3)=float(m) vx(k+4)=1.0e0 vy(k+4)=float(m+1) vx(k+5)=float(m+1) vy(k+5)=0.0e0 vx(k+6)=float(m+2) vy(k+6)=0.0e0 vx(k+7)=0.0e0 vy(k+7)=-float(m+1) vx(k+8)=0.0e0 vy(k+8)=-float(m+2) do j=k+1,k+4 ibndry(3,j)=2 enddo enddo m=2*nloops+3 k=nloops*8 vx(k+1)=-float(m-1) vy(k+1)=0.0e0 vx(k+2)=-float(m) vy(k+2)=0.0e0 ibndry(1,k+1)=1 ibndry(2,k+1)=2 ibndry(3,k+1)=0 ibndry(1,k+2)=k+1 ibndry(2,k+2)=k+2 ibndry(3,k+2)=0 c itnode(1,1)=1 itnode(2,1)=1 itnode(3,1)=0 itnode(5,1)=1 c ip(1)=ntf ip(2)=nvf ip(3)=ncf ip(4)=nbf rp(15)=hmax rp(16)=grade c c refine long edges c call sklutl(1,vx,vy,xm,ym,itnode,ibndry,ip,w,iflag) c return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine gd13(vx,vy,xm,ym,itnode,ibndry,ip,rp,sp,iu,ru,su,w) c implicit real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*), 1 x(200),y(200) character*80 + sp(100),su(100) c c this domain is a facsimile of the newly adopted ucsd logo. c dirichlet boundary conditions are imposed. c save hmax,grade,ntf,nvf,ncf,nbf,x,y c data x( 1),y( 1)/32.0e0,52.0e0/ data x( 2),y( 2)/52.0e0,52.0e0/ data x( 3),y( 3)/52.0e0,49.0e0/ data x( 4),y( 4)/45.0e0,49.0e0/ data x( 5),y( 5)/46.0e0,50.0e0/ data x( 6),y( 6)/32.0e0,50.0e0/ c data x( 7),y( 7)/25.0e0,48.2e0/ data x( 8),y( 8)/58.5e0,48.2e0/ data x( 9),y( 9)/58.5e0,45.0e0/ data x(10),y(10)/46.0e0,45.0e0/ data x(11),y(11)/47.0e0,46.0e0/ data x(12),y(12)/25.0e0,46.0e0/ c data x(13),y(13)/16.5e0,44.0e0/ data x(14),y(14)/65.8e0,44.0e0/ data x(15),y(15)/65.8e0,41.0e0/ data x(16),y(16)/47.0e0,41.0e0/ data x(17),y(17)/48.0e0,42.0e0/ data x(18),y(18)/16.5e0,42.0e0/ c data x(19),y(19)/10.0e0,40.0e0/ data x(20),y(20)/68.0e0,40.0e0/ data x(21),y(21)/68.0e0,37.0e0/ data x(22),y(22)/60.0e0,36.0e0/ data x(23),y(23)/55.0e0,35.0e0/ data x(24),y(24)/52.0e0,34.5e0/ data x(25),y(25)/49.0e0,33.0e0/ data x(26),y(26)/47.0e0,31.0e0/ data x(27),y(27)/46.0e0,29.0e0/ c data x(28),y(28)/10.0e0,38.0e0/ data x(29),y(29)/46.0e0,27.0e0/ data x(30),y(30)/50.0e0,26.0e0/ data x(31),y(31)/53.0e0,25.0e0/ data x(32),y(32)/55.0e0,24.0e0/ data x(33),y(33)/56.3e0,23.0e0/ data x(34),y(34)/57.0e0,21.9e0/ data x(35),y(35)/56.0e0,21.0e0/ data x(36),y(36)/54.0e0,20.7e0/ data x(37),y(37)/51.0e0,21.0e0/ data x(38),y(38)/28.0e0,28.0e0/ data x(39),y(39)/31.0e0,28.1e0/ data x(40),y(40)/31.6e0,28.3e0/ data x(41),y(41)/32.0e0,28.8e0/ data x(42),y(42)/31.9e0,29.3e0/ data x(43),y(43)/31.6e0,29.6e0/ data x(44),y(44)/31.0e0,30.0e0/ c data x(45),y(45)/10.0e0,15.0e0/ data x(46),y(46)/ 4.0e0,15.0e0/ data x(47),y(47)/ 6.8e0,14.0e0/ data x(48),y(48)/ 6.8e0, 3.0e0/ data x(49),y(49)/ 7.5e0, 1.0e0/ data x(50),y(50)/10.0e0, 0.0e0/ data x(51),y(51)/20.0e0, 0.0e0/ data x(52),y(52)/22.0e0, 1.3e0/ data x(53),y(53)/23.5e0, 2.5e0/ data x(54),y(54)/23.5e0,15.0e0/ data x(55),y(55)/19.0e0,15.0e0/ data x(56),y(56)/21.5e0,14.0e0/ data x(57),y(57)/21.5e0, 3.0e0/ data x(58),y(58)/20.5e0, 2.0e0/ data x(59),y(59)/19.0e0, 1.0e0/ data x(60),y(60)/12.0e0, 1.0e0/ data x(61),y(61)/10.5e0, 2.0e0/ data x(62),y(62)/10.0e0, 3.0e0/ c data x(63),y(63)/39.0e0,11.0e0/ data x(64),y(64)/39.0e0,14.5e0/ data x(65),y(65)/37.0e0,15.0e0/ data x(66),y(66)/31.0e0,15.0e0/ data x(67),y(67)/28.0e0,14.5e0/ data x(68),y(68)/25.5e0,13.0e0/ data x(69),y(69)/24.5e0,10.0e0/ data x(70),y(70)/24.5e0, 5.0e0/ data x(71),y(71)/25.5e0, 3.0e0/ data x(72),y(72)/27.0e0, 1.5e0/ data x(73),y(73)/30.0e0, 0.0e0/ data x(74),y(74)/38.0e0, 0.0e0/ data x(75),y(75)/39.0e0, 1.0e0/ data x(76),y(76)/33.0e0, 1.0e0/ data x(77),y(77)/30.0e0, 2.0e0/ data x(78),y(78)/28.5e0, 3.0e0/ data x(79),y(79)/27.0e0, 5.0e0/ data x(80),y(80)/27.0e0,10.0e0/ data x(81),y(81)/28.0e0,12.0e0/ data x(82),y(82)/29.5e0,13.0e0/ data x(83),y(83)/31.0e0,14.0e0/ data x(84),y(84)/35.0e0,14.0e0/ data x(85),y(85)/38.0e0,11.5e0/ c data x(86),y(86)/54.5e0,11.0e0/ data x(87),y(87)/54.5e0,14.5e0/ data x(88),y(88)/52.5e0,15.0e0/ data x(89),y(89)/44.5e0,15.0e0/ data x(90),y(90)/42.0e0,14.0e0/ data x(91),y(91)/41.0e0,13.0e0/ data x(92),y(92)/41.0e0,10.0e0/ data x(93),y(93)/42.0e0, 8.5e0/ data x(94),y(94)/50.0e0, 5.0e0/ data x(95),y(95)/52.0e0, 3.0e0/ data x(96),y(96)/50.0e0, 1.0e0/ data x(97),y(97)/42.0e0, 1.0e0/ data x(98),y(98)/42.0e0, 0.0e0/ data x(99),y(99)/51.0e0, 0.0e0/ data x(100),y(100)/54.0e0, 1.0e0/ data x(101),y(101)/55.5e0, 2.5e0/ data x(102),y(102)/55.5e0, 5.0e0/ data x(103),y(103)/54.5e0, 6.0e0/ data x(104),y(104)/50.0e0, 8.0e0/ data x(105),y(105)/44.5e0,10.0e0/ data x(106),y(106)/43.5e0,12.0e0/ data x(107),y(107)/45.0e0,14.0e0/ data x(108),y(108)/50.5e0,14.0e0/ data x(109),y(109)/53.5e0,11.5e0/ c data x(110),y(110)/61.0e0,15.0e0/ data x(111),y(111)/55.0e0,15.0e0/ data x(112),y(112)/57.8e0,14.0e0/ data x(113),y(113)/57.8e0, 0.0e0/ data x(114),y(114)/61.0e0, 0.0e0/ data x(115),y(115)/61.0e0,14.0e0/ data x(116),y(116)/67.0e0,14.0e0/ data x(117),y(117)/70.0e0,13.0e0/ data x(118),y(118)/71.5e0,10.5e0/ data x(119),y(119)/71.5e0, 4.5e0/ data x(120),y(120)/70.0e0, 2.0e0/ data x(121),y(121)/67.0e0, 1.0e0/ data x(122),y(122)/62.0e0, 1.0e0/ data x(123),y(123)/62.0e0, 0.0e0/ data x(124),y(124)/69.0e0, 0.0e0/ data x(125),y(125)/72.5e0, 1.5e0/ data x(126),y(126)/73.7e0, 3.0e0/ data x(127),y(127)/74.7e0, 5.0e0/ data x(128),y(128)/74.7e0,10.0e0/ data x(129),y(129)/73.7e0,12.0e0/ data x(130),y(130)/72.5e0,13.5e0/ data x(131),y(131)/69.0e0,15.0e0/ c data x(132),y(132)/-33.2e0,-40.0e0/ data x(133),y(133)/114.7e0,-40.0e0/ data x(134),y(134)/114.7e0,92.0e0/ data x(135),y(135)/-33.2e0,92.0e0/ c data ntf,nvf,ncf,nbf/9,135,0,145/ data hmax,grade/0.1e0,1.5e0/ c sp(2)='ucsd' sp(1)='ucsd' sp(3)='ucsd' sp(4)='ucsd' c do i=1,nvf vx(i)=x(i) vy(i)=y(i) ibndry(1,i)=i ibndry(2,i)=i+1 ibndry(3,i)=0 ibndry(4,i)=2 ibndry(5,i)=0 ibndry(6,i)=i enddo ibndry(2,6)=1 ibndry(2,12)=7 ibndry(2,18)=13 ibndry(2,27)=19 ibndry(2,44)=28 ibndry(2,62)=45 ibndry(2,85)=63 ibndry(2,109)=86 ibndry(2,131)=110 ibndry(2,135)=132 c do i=nvf+1,nbf ibndry(3,i)=0 ibndry(4,i)=0 ibndry(5,i)=0 ibndry(6,i)=i enddo ibndry(1,136)=132 ibndry(2,136)=49 ibndry(1,137)=54 ibndry(2,137)=68 ibndry(1,138)=75 ibndry(2,138)=97 ibndry(1,139)=100 ibndry(2,139)=113 ibndry(1,140)=110 ibndry(2,140)=35 ibndry(1,141)=29 ibndry(2,141)=27 ibndry(1,142)=19 ibndry(2,142)=18 ibndry(1,143)=13 ibndry(2,143)=12 ibndry(1,144)=6 ibndry(2,144)=7 ibndry(1,145)=1 ibndry(2,145)=135 c ip(1)=ntf ip(2)=nvf ip(3)=ncf ip(4)=nbf rp(15)=hmax rp(16)=grade c c make itnode c call sklutl(0,vx,vy,xm,ym,itnode,ibndry,ip,w,iflag) return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine gd14(vx,vy,xm,ym,itnode,ibndry,ip,rp,sp,iu,ru,su,w) c implicit real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*), 1 xx(16),yy(16) character*80 + sp(100),su(100) c c a domain in the shape of a nozzle. c four similar regions, several curved edges. c save ntf,nvf,ncf,nbf data ntf,nvf,ncf,nbf/4,29,16,32/ c sp(2)='nozzle' sp(1)='nozzle' sp(3)='nozzle' sp(4)='nozzle' c rp(1)=ru(8) c vx(1)=0.0e0 vy(1)=0.0e0 vx(2)=4.0e0 vy(2)=0.0e0 vx(3)=4.0e0 vy(3)=1.0e0 vx(4)=3.0e0 vy(4)=1.0e0 vx(5)=2.5e0 vy(5)=f(2.5e0) vx(6)=2.0e0 vy(6)=f(2.0e0) vx(7)=1.5e0 vy(7)=f(1.5e0) vx(8)=1.0e0 vy(8)=0.5e0 vx(9)=0.0e0 vy(9)=0.5e0 do i=10,16 vx(i)=-vx(18-i) vy(i)=vy(18-i) enddo do i=17,29 vx(i)=vx(32-i) vy(i)=-vy(32-i) enddo c xx(1)=2.75e0 yy(1)=f(2.75e0) xx(2)=2.25e0 yy(2)=f(2.25e0) xx(3)=1.75e0 yy(3)=f(1.75e0) xx(4)=1.25e0 yy(4)=f(1.25e0) do i=1,4 xx(4+i)=-xx(5-i) yy(4+i)=yy(5-i) xx(8+i)=-xx(i) yy(8+i)=-yy(i) xx(12+i)=xx(5-i) yy(12+i)=-yy(5-i) enddo c do i=1,29 ibndry(1,i)=i ibndry(2,i)=i+1 ibndry(3,i)=0 ibndry(4,i)=1 ibndry(5,i)=0 ibndry(6,i)=i enddo do i=1,4 ibndry(3,3+i)=i ibndry(3,9+i)=i+4 ibndry(3,17+i)=i+8 ibndry(3,23+i)=i+12 enddo ibndry(4,1)=0 ibndry(4,2)=2 ibndry(4,15)=2 ibndry(4,16)=2 ibndry(4,29)=2 ibndry(2,29)=2 do i=30,32 ibndry(1,i)=1 ibndry(2,i)=9 ibndry(3,i)=0 ibndry(4,i)=0 ibndry(5,i)=0 ibndry(6,i)=i enddo ibndry(2,30)=16 ibndry(2,32)=23 c do i=1,nbf if(ibndry(3,i).gt.0) then i1=ibndry(1,i) i2=ibndry(2,i) i3=ibndry(3,i) call centre(vx(i1),vy(i1),vx(i2),vy(i2), + xx(i3),yy(i3),xm(i3),ym(i3)) endif enddo c ip(1)=ntf ip(2)=nvf ip(3)=ncf ip(4)=nbf c c make itnode, find symmetries c call sklutl(0,vx,vy,xm,ym,itnode,ibndry,ip,w,iflag) call sklutl(2,vx,vy,xm,ym,itnode,ibndry,ip,w,iflag) c return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- real function f(x) c implicit real (a-h,o-z) implicit integer (i-n) c f=(((-.25e0*x+1.5e0)*x-2.25e0)*x+2.e0)/2.e0 return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine gd15(vx,vy,xm,ym,itnode,ibndry,ip,rp,sp,iu,ru,su,w) c c implicit real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*), 1 x(200),y(200) character*80 + sp(100),su(100) save hmax,grade,ntr,nvr,ncr,nbr,x,y c data x( 1),y( 1)/ 0.0e0, 7.0e0/ data x( 2),y( 2)/ 4.0e0,10.0e0/ data x( 3),y( 3)/ 8.0e0,16.0e0/ data x( 4),y( 4)/11.0e0,20.0e0/ data x( 5),y( 5)/13.0e0,26.0e0/ data x( 6),y( 6)/14.0e0,30.0e0/ data x( 7),y( 7)/ 9.0e0,27.0e0/ data x( 8),y( 8)/ 6.0e0,31.0e0/ data x( 9),y( 9)/10.0e0,34.0e0/ data x(10),y(10)/18.0e0,38.0e0/ data x(11),y(11)/23.0e0,38.0e0/ data x(12),y(12)/21.0e0,34.0e0/ data x(13),y(13)/26.0e0,35.5e0/ data x(14),y(14)/30.0e0,37.0e0/ data x(15),y(15)/35.0e0,36.0e0/ data x(16),y(16)/38.0e0,33.0e0/ data x(17),y(17)/37.0e0,28.0e0/ data x(18),y(18)/33.0e0,24.0e0/ c data x(19),y(19)/40.0e0,27.0e0/ data x(20),y(20)/43.0e0,30.0e0/ data x(21),y(21)/42.5e0,34.0e0/ data x(22),y(22)/42.0e0,37.0e0/ data x(23),y(23)/43.0e0,40.0e0/ data x(24),y(24)/45.5e0,45.0e0/ data x(25),y(25)/49.0e0,50.0e0/ data x(26),y(26)/52.5e0,54.5e0/ data x(27),y(27)/56.0e0,57.5e0/ data x(28),y(28)/58.0e0,55.0e0/ data x(29),y(29)/59.0e0,50.5e0/ data x(30),y(30)/58.5e0,45.0e0/ data x(31),y(31)/57.0e0,40.0e0/ data x(32),y(32)/54.0e0,35.0e0/ data x(33),y(33)/50.0e0,30.0e0/ c data x(34),y(34)/53.0e0,26.5e0/ data x(35),y(35)/57.0e0,28.0e0/ data x(36),y(36)/61.0e0,32.0e0/ data x(37),y(37)/63.0e0,35.0e0/ data x(38),y(38)/58.0e0,35.0e0/ data x(39),y(39)/61.0e0,39.0e0/ data x(40),y(40)/65.0e0,40.0e0/ data x(41),y(41)/69.0e0,48.0e0/ data x(42),y(42)/73.0e0,50.0e0/ data x(43),y(43)/71.5e0,41.0e0/ data x(44),y(44)/77.5e0,42.0e0/ data x(45),y(45)/75.5e0,36.0e0/ data x(46),y(46)/70.0e0,35.0e0/ data x(47),y(47)/70.0e0,30.0e0/ data x(48),y(48)/71.0e0,26.0e0/ c data x(49),y(49)/74.0e0,25.0e0/ data x(50),y(50)/76.0e0,27.0e0/ data x(51),y(51)/79.0e0,30.0e0/ data x(52),y(52)/81.5e0,34.0e0/ data x(53),y(53)/83.0e0,39.0e0/ data x(54),y(54)/89.0e0,40.0e0/ data x(55),y(55)/86.5e0,36.0e0/ data x(56),y(56)/90.0e0,38.5e0/ data x(57),y(57)/95.0e0,40.0e0/ data x(58),y(58)/97.5e0,38.0e0/ data x(59),y(59)/100.0e0,39.0e0/ data x(60),y(60)/104.0e0,39.0e0/ data x(61),y(61)/107.5e0,37.0e0/ data x(62),y(62)/108.5e0,30.0e0/ data x(63),y(63)/110.0e0,27.0e0/ c data x(64),y(64)/113.0e0,26.0e0/ data x(65),y(65)/111.5e0,30.0e0/ data x(66),y(66)/111.5e0,32.0e0/ data x(67),y(67)/113.0e0,36.0e0/ data x(68),y(68)/117.0e0,38.0e0/ data x(69),y(69)/120.0e0,38.5e0/ data x(70),y(70)/123.0e0,38.0e0/ data x(71),y(71)/125.0e0,36.5e0/ data x(72),y(72)/125.0e0,38.0e0/ data x(73),y(73)/130.0e0,39.0e0/ data x(74),y(74)/131.0e0,30.0e0/ data x(75),y(75)/130.0e0,24.0e0/ data x(76),y(76)/129.0e0,20.0e0/ data x(77),y(77)/142.0e0,22.0e0/ data x(78),y(78)/136.0e0,15.0e0/ data x(79),y(79)/127.0e0,13.0e0/ data x(80),y(80)/124.0e0,10.0e0/ data x(81),y(81)/117.0e0, 5.0e0/ data x(82),y(82)/110.0e0, 1.0e0/ data x(83),y(83)/100.0e0,-0.5e0/ data x(84),y(84)/ 90.0e0,-1.5e0/ data x(85),y(85)/ 80.0e0,-1.0e0/ data x(86),y(86)/ 70.0e0,-0.5e0/ data x(87),y(87)/ 60.0e0, 0.0e0/ data x(88),y(88)/ 50.0e0, 1.5e0/ data x(89),y(89)/ 40.0e0, 4.5e0/ data x(90),y(90)/ 35.0e0, 7.0e0/ data x(91),y(91)/ 32.0e0,10.0e0/ data x(92),y(92)/ 31.0e0,12.0e0/ data x(93),y(93)/ 32.0e0,14.0e0/ data x(94),y(94)/ 35.0e0,15.0e0/ data x(95),y(95)/ 40.0e0,16.0e0/ data x(96),y(96)/ 50.0e0,16.1e0/ data x(97),y(97)/ 60.0e0,16.2e0/ data x(98),y(98)/ 70.0e0,16.3e0/ data x(99),y(99)/ 80.0e0,16.5e0/ data x(100),y(100)/ 90.0e0,16.6e0/ data x(101),y(101)/100.0e0,16.7e0/ data x(102),y(102)/110.0e0,16.8e0/ data x(103),y(103)/120.0e0,17.0e0/ data x(104),y(104)/116.0e0,21.5e0/ c data x(105),y(105)/110.0e0,20.0e0/ data x(106),y(106)/105.0e0,20.0e0/ data x(107),y(107)/102.5e0,22.0e0/ data x(108),y(108)/102.0e0,27.0e0/ data x(109),y(109)/101.0e0,31.5e0/ data x(110),y(110)/100.0e0,33.0e0/ data x(111),y(111)/ 98.0e0,30.0e0/ data x(112),y(112)/ 95.0e0,21.0e0/ data x(113),y(113)/ 89.5e0,20.0e0/ data x(114),y(114)/ 90.5e0,24.0e0/ data x(115),y(115)/ 91.5e0,29.0e0/ data x(116),y(116)/ 90.5e0,31.0e0/ data x(117),y(117)/ 87.5e0,29.0e0/ data x(118),y(118)/ 84.0e0,21.0e0/ data x(119),y(119)/ 78.0e0,20.0e0/ data x(120),y(120)/ 79.0e0,22.0e0/ data x(121),y(121)/ 75.0e0,21.0e0/ c data x(122),y(122)/70.0e0,20.0e0/ data x(123),y(123)/66.0e0,22.0e0/ data x(124),y(124)/62.0e0,24.5e0/ data x(125),y(125)/57.0e0,21.0e0/ data x(126),y(126)/52.0e0,20.0e0/ data x(127),y(127)/47.0e0,22.0e0/ c data x(128),y(128)/44.0e0,25.0e0/ data x(129),y(129)/40.0e0,22.5e0/ data x(130),y(130)/35.0e0,21.0e0/ data x(131),y(131)/30.0e0,20.0e0/ data x(132),y(132)/24.0e0,19.0e0/ data x(133),y(133)/18.0e0,20.0e0/ data x(134),y(134)/15.0e0,15.0e0/ data x(135),y(135)/11.0e0,10.0e0/ data x(136),y(136)/ 6.0e0, 6.0e0/ c data x(137),y(137)/19.0e0,26.0e0/ data x(138),y(138)/22.0e0,29.0e0/ data x(139),y(139)/28.0e0,32.0e0/ data x(140),y(140)/31.0e0,31.0e0/ data x(141),y(141)/28.0e0,28.0e0/ data x(142),y(142)/22.0e0,25.0e0/ c data x(143),y(143)/48.0e0,35.0e0/ data x(144),y(144)/48.5e0,40.0e0/ data x(145),y(145)/52.0e0,46.0e0/ data x(146),y(146)/55.0e0,50.0e0/ data x(147),y(147)/55.0e0,46.0e0/ data x(148),y(148)/52.0e0,40.0e0/ c data x(149),y(149)/117.0e0,33.0e0/ data x(150),y(150)/120.0e0,34.0e0/ data x(151),y(151)/124.0e0,31.0e0/ data x(152),y(152)/126.0e0,27.0e0/ data x(153),y(153)/122.0e0,26.0e0/ data x(154),y(154)/117.5e0,30.0e0/ c data x(155),y(155)/118.0e0,13.0e0/ data x(156),y(156)/110.0e0, 7.0e0/ data x(157),y(157)/100.0e0, 5.0e0/ data x(158),y(158)/ 90.0e0, 4.5e0/ data x(159),y(159)/ 80.0e0, 5.0e0/ data x(160),y(160)/ 70.0e0, 6.0e0/ data x(161),y(161)/ 60.0e0, 7.0e0/ data x(162),y(162)/ 50.0e0, 8.0e0/ data x(163),y(163)/ 46.0e0, 9.5e0/ data x(164),y(164)/ 50.0e0,11.0e0/ data x(165),y(165)/ 60.0e0,12.0e0/ data x(166),y(166)/ 70.0e0,12.2e0/ data x(167),y(167)/ 80.0e0,12.4e0/ data x(168),y(168)/ 90.0e0,12.6e0/ data x(169),y(169)/100.0e0,12.7e0/ data x(170),y(170)/110.0e0,12.9e0/ c data ntr,nvr,ncr,nbr/5,170,0,178/ data hmax,grade/0.1e0,1.5e0/ c sp(2)='pltmg' sp(1)='pltmg' sp(3)='pltmg' sp(4)='pltmg' c do i=1,nvr vx(i)=x(i) vy(i)=y(i) ibndry(1,i)=i ibndry(2,i)=i+1 ibndry(3,i)=0 ibndry(4,i)=2 ibndry(5,i)=0 ibndry(6,i)=i enddo ibndry(2,136)=1 ibndry(2,142)=137 ibndry(2,148)=143 ibndry(2,154)=149 ibndry(2,170)=155 do i=nvr+1,nbr ibndry(3,i)=0 ibndry(4,i)=0 ibndry(5,i)=0 ibndry(6,i)=i enddo ibndry(1,171)=5 ibndry(2,171)=137 ibndry(1,172)=16 ibndry(2,172)=140 ibndry(1,173)=20 ibndry(2,173)=143 ibndry(1,174)=27 ibndry(2,174)=146 ibndry(1,175)=67 ibndry(2,175)=149 ibndry(1,176)=75 ibndry(2,176)=152 ibndry(1,177)=102 ibndry(2,177)=170 ibndry(1,178)=82 ibndry(2,178)=156 c ip(1)=ntr ip(2)=nvr ip(3)=ncr ip(4)=nbr rp(15)=hmax rp(16)=grade c c make itnode c call sklutl(0,vx,vy,xm,ym,itnode,ibndry,ip,w,iflag) return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine gd16(vx,vy,xm,ym,itnode,ibndry,ip,rp,sp,iu,ru,su,w) c implicit real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*) character*80 + sp(100),su(100) save hmax,grade c c domain which is has many cracks c data hmax,grade/0.1e0,1.5e0/ c sp(2)='crack' sp(1)='crack' sp(3)='crack' sp(4)='crack' c pi=3.141592653589793e0 r1=1.0e0 r2=2.0e0 ncf=1 ncrack=8 nvf=1+3*ncrack nbf=4*ncrack ntf=ncrack c xm(1)=0.0e0 ym(1)=0.0e0 vx(1)=0.0e0 vy(1)=0.0e0 do i=1,ncrack ang=2.0e0*pi*float(i-1)/float(ncrack) c=cos(ang) s=sin(ang) ii=3*i vx(ii-1)=r2*c vy(ii-1)=r2*s vx(ii)=r1*c vy(ii)=r1*s vx(ii+1)=r2*c vy(ii+1)=r2*s c jj=4*i-3 c ibndry(1,jj)=1 ibndry(2,jj)=ii ibndry(3,jj)=0 ibndry(4,jj)=0 ibndry(5,jj)=0 ibndry(6,jj)=0 c ibndry(1,jj+1)=ii ibndry(2,jj+1)=ii-1 ibndry(3,jj+1)=0 ibndry(4,jj+1)=1 ibndry(5,jj+1)=0 ibndry(6,jj+1)=1 c ibndry(1,jj+2)=ii ibndry(2,jj+2)=ii+1 ibndry(3,jj+2)=0 ibndry(4,jj+2)=2 ibndry(5,jj+2)=0 ibndry(6,jj+2)=2 c ibndry(1,jj+3)=ii+1 ibndry(2,jj+3)=ii+2 ibndry(3,jj+3)=1 ibndry(4,jj+3)=2 ibndry(5,jj+3)=0 ibndry(6,jj+3)=3 enddo ibndry(2,nbf)=2 c ip(1)=ntf ip(2)=nvf ip(3)=ncf ip(4)=nbf rp(15)=hmax rp(16)=grade c c make itnode, refine long arcs, find symmetries c call sklutl(0,vx,vy,xm,ym,itnode,ibndry,ip,w,iflag) call sklutl(1,vx,vy,xm,ym,itnode,ibndry,ip,w,iflag) call sklutl(2,vx,vy,xm,ym,itnode,ibndry,ip,w,iflag) return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine gd17(vx,vy,xm,ym,itnode,ibndry,ip,rp,sp,iu,ru,su,w) c implicit real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100), 1 list(1250) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*), 1 x(302),y(302) character*80 + sp(100),su(100) save x,y,hmax,grade,ntf,nvf,ncf,nbf c c region in the shape of monterey bay c the data was provided by francios lekien c data ntf,nvf,ncf,nbf/1,300,0,300/ data hmax,grade/0.1e0,1.5e0/ c data x( 1),y( 1)/ -122.324501e0, 36.5658989e0/ data x( 2),y( 2)/ -122.324501e0, 36.9738998e0/ data x( 3),y( 3)/ -122.135002e0, 36.9738998e0/ data x( 4),y( 4)/ -122.135002e0, 36.9732018e0/ data x( 5),y( 5)/ -122.134003e0, 36.9712982e0/ data x( 6),y( 6)/ -122.133003e0, 36.9724998e0/ data x( 7),y( 7)/ -122.128998e0, 36.9720993e0/ data x( 8),y( 8)/ -122.127998e0, 36.9710999e0/ data x( 9),y( 9)/ -122.125999e0, 36.9700012e0/ data x( 10),y( 10)/ -122.125e0, 36.9706993e0/ data x( 11),y( 11)/ -122.122002e0, 36.9706993e0/ data x( 12),y( 12)/ -122.120003e0, 36.969799e0/ data x( 13),y( 13)/ -122.120003e0, 36.9674988e0/ data x( 14),y( 14)/ -122.116997e0, 36.9674988e0/ data x( 15),y( 15)/ -122.115997e0, 36.9678993e0/ data x( 16),y( 16)/ -122.113998e0, 36.9672012e0/ data x( 17),y( 17)/ -122.113998e0, 36.9659004e0/ data x( 18),y( 18)/ -122.111e0, 36.9654999e0/ data x( 19),y( 19)/ -122.109001e0, 36.9639015e0/ data x( 20),y( 20)/ -122.107002e0, 36.9625015e0/ data x( 21),y( 21)/ -122.105003e0, 36.9613991e0/ data x( 22),y( 22)/ -122.102997e0, 36.9613991e0/ data x( 23),y( 23)/ -122.100998e0, 36.960701e0/ data x( 24),y( 24)/ -122.098999e0, 36.9604988e0/ data x( 25),y( 25)/ -122.097e0, 36.9604988e0/ data x( 26),y( 26)/ -122.094002e0, 36.9598007e0/ data x( 27),y( 27)/ -122.089996e0, 36.9590988e0/ data x( 28),y( 28)/ -122.088997e0, 36.9590988e0/ data x( 29),y( 29)/ -122.086998e0, 36.957901e0/ data x( 30),y( 30)/ -122.084999e0, 36.9584007e0/ data x( 31),y( 31)/ -122.083e0, 36.9572983e0/ data x( 32),y( 32)/ -122.081001e0, 36.957901e0/ data x( 33),y( 33)/ -122.080002e0, 36.9585991e0/ data x( 34),y( 34)/ -122.078003e0, 36.957901e0/ data x( 35),y( 35)/ -122.075996e0, 36.9575005e0/ data x( 36),y( 36)/ -122.075996e0, 36.9564018e0/ data x( 37),y( 37)/ -122.073997e0, 36.9564018e0/ data x( 38),y( 38)/ -122.070999e0, 36.9547005e0/ data x( 39),y( 39)/ -122.069e0, 36.9538002e0/ data x( 40),y( 40)/ -122.065002e0, 36.9538002e0/ data x( 41),y( 41)/ -122.060997e0, 36.9538994e0/ data x( 42),y( 42)/ -122.059998e0, 36.9547005e0/ data x( 43),y( 43)/ -122.057999e0, 36.9544983e0/ data x( 44),y( 44)/ -122.056e0, 36.9533997e0/ data x( 45),y( 45)/ -122.052002e0, 36.9544983e0/ data x( 46),y( 46)/ -122.050003e0, 36.9544983e0/ data x( 47),y( 47)/ -122.046997e0, 36.9544983e0/ data x( 48),y( 48)/ -122.044998e0, 36.9552002e0/ data x( 49),y( 49)/ -122.042e0, 36.9552002e0/ data x( 50),y( 50)/ -122.040001e0, 36.9570999e0/ data x( 51),y( 51)/ -122.039001e0, 36.957901e0/ data x( 52),y( 52)/ -122.035004e0, 36.9572983e0/ data x( 53),y( 53)/ -122.033997e0, 36.9564018e0/ data x( 54),y( 54)/ -122.030998e0, 36.9567986e0/ data x( 55),y( 55)/ -122.028e0, 36.9564018e0/ data x( 56),y( 56)/ -122.024002e0, 36.9556999e0/ data x( 57),y( 57)/ -122.024002e0, 36.9588013e0/ data x( 58),y( 58)/ -122.026001e0, 36.9612999e0/ data x( 59),y( 59)/ -122.026001e0, 36.9639015e0/ data x( 60),y( 60)/ -122.025002e0, 36.9665985e0/ data x( 61),y( 61)/ -122.022003e0, 36.9678993e0/ data x( 62),y( 62)/ -122.016998e0, 36.9678993e0/ data x( 63),y( 63)/ -122.014e0, 36.9686012e0/ data x( 64),y( 64)/ -122.012001e0, 36.9686012e0/ data x( 65),y( 65)/ -122.008003e0, 36.9679985e0/ data x( 66),y( 66)/ -122.004997e0, 36.9679985e0/ data x( 67),y( 67)/ -122.001999e0, 36.9668007e0/ data x( 68),y( 68)/ -122.001999e0, 36.9651985e0/ data x( 69),y( 69)/ -122.e0, 36.9660988e0/ data x( 70),y( 70)/ -121.997002e0, 36.9660988e0/ data x( 71),y( 71)/ -121.992996e0, 36.9645004e0/ data x( 72),y( 72)/ -121.987999e0, 36.9625015e0/ data x( 73),y( 73)/ -121.985001e0, 36.9625015e0/ data x( 74),y( 74)/ -121.980003e0, 36.9625015e0/ data x( 75),y( 75)/ -121.977997e0, 36.960701e0/ data x( 76),y( 76)/ -121.975998e0, 36.9588013e0/ data x( 77),y( 77)/ -121.973999e0, 36.9588013e0/ data x( 78),y( 78)/ -121.973e0, 36.9588013e0/ data x( 79),y( 79)/ -121.970001e0, 36.9604988e0/ data x( 80),y( 80)/ -121.968002e0, 36.9626999e0/ data x( 81),y( 81)/ -121.964996e0, 36.9645996e0/ data x( 82),y( 82)/ -121.961998e0, 36.9654999e0/ data x( 83),y( 83)/ -121.959999e0, 36.9679985e0/ data x( 84),y( 84)/ -121.958e0, 36.9705009e0/ data x( 85),y( 85)/ -121.955002e0, 36.9732018e0/ data x( 86),y( 86)/ -121.953003e0, 36.9752007e0/ data x( 87),y( 87)/ -121.947998e0, 36.9766006e0/ data x( 88),y( 88)/ -121.945e0, 36.9780006e0/ data x( 89),y( 89)/ -121.941002e0, 36.9802017e0/ data x( 90),y( 90)/ -121.939003e0, 36.9819984e0/ data x( 91),y( 91)/ -121.936996e0, 36.9819984e0/ data x( 92),y( 92)/ -121.933998e0, 36.9819984e0/ data x( 93),y( 93)/ -121.931999e0, 36.9827003e0/ data x( 94),y( 94)/ -121.929001e0, 36.9822006e0/ data x( 95),y( 95)/ -121.925003e0, 36.9804993e0/ data x( 96),y( 96)/ -121.919998e0, 36.9790993e0/ data x( 97),y( 97)/ -121.914001e0, 36.9772987e0/ data x( 98),y( 98)/ -121.911003e0, 36.975399e0/ data x( 99),y( 99)/ -121.910004e0, 36.9738998e0/ data x( 100),y( 100)/ -121.906998e0, 36.9732018e0/ data x( 101),y( 101)/ -121.903e0, 36.9720993e0/ data x( 102),y( 102)/ -121.900002e0, 36.9706993e0/ data x( 103),y( 103)/ -121.897003e0, 36.969101e0/ data x( 104),y( 104)/ -121.892998e0, 36.9673004e0/ data x( 105),y( 105)/ -121.891998e0, 36.9654999e0/ data x( 106),y( 106)/ -121.889e0, 36.9631996e0/ data x( 107),y( 107)/ -121.887001e0, 36.9611015e0/ data x( 108),y( 108)/ -121.884003e0, 36.9588013e0/ data x( 109),y( 109)/ -121.883003e0, 36.9575005e0/ data x( 110),y( 110)/ -121.882004e0, 36.9572983e0/ data x( 111),y( 111)/ -121.879997e0, 36.9556999e0/ data x( 112),y( 112)/ -121.876999e0, 36.9533997e0/ data x( 113),y( 113)/ -121.876999e0, 36.9519997e0/ data x( 114),y( 114)/ -121.875e0, 36.9491005e0/ data x( 115),y( 115)/ -121.872002e0, 36.9473e0/ data x( 116),y( 116)/ -121.869003e0, 36.9440994e0/ data x( 117),y( 117)/ -121.865997e0, 36.9411011e0/ data x( 118),y( 118)/ -121.862999e0, 36.9361e0/ data x( 119),y( 119)/ -121.859001e0, 36.9322014e0/ data x( 120),y( 120)/ -121.857002e0, 36.9287987e0/ data x( 121),y( 121)/ -121.855003e0, 36.9248009e0/ data x( 122),y( 122)/ -121.852997e0, 36.9213982e0/ data x( 123),y( 123)/ -121.849998e0, 36.9179993e0/ data x( 124),y( 124)/ -121.848e0, 36.9147987e0/ data x( 125),y( 125)/ -121.847e0, 36.9118004e0/ data x( 126),y( 126)/ -121.843002e0, 36.9076996e0/ data x( 127),y( 127)/ -121.838997e0, 36.9026985e0/ data x( 128),y( 128)/ -121.835999e0, 36.8979988e0/ data x( 129),y( 129)/ -121.834e0, 36.8937988e0/ data x( 130),y( 130)/ -121.830002e0, 36.8890991e0/ data x( 131),y( 131)/ -121.828003e0, 36.8844986e0/ data x( 132),y( 132)/ -121.825996e0, 36.8806e0/ data x( 133),y( 133)/ -121.822998e0, 36.8759003e0/ data x( 134),y( 134)/ -121.820999e0, 36.8722992e0/ data x( 135),y( 135)/ -121.819e0, 36.8685989e0/ data x( 136),y( 136)/ -121.816002e0, 36.8638992e0/ data x( 137),y( 137)/ -121.814003e0, 36.8600006e0/ data x( 138),y( 138)/ -121.811996e0, 36.8569984e0/ data x( 139),y( 139)/ -121.808998e0, 36.8554001e0/ data x( 140),y( 140)/ -121.807999e0, 36.8522987e0/ data x( 141),y( 141)/ -121.807999e0, 36.8507004e0/ data x( 142),y( 142)/ -121.806e0, 36.8484001e0/ data x( 143),y( 143)/ -121.805e0, 36.8450012e0/ data x( 144),y( 144)/ -121.804001e0, 36.8424988e0/ data x( 145),y( 145)/ -121.804001e0, 36.839901e0/ data x( 146),y( 146)/ -121.803001e0, 36.8372993e0/ data x( 147),y( 147)/ -121.800003e0, 36.8353996e0/ data x( 148),y( 148)/ -121.799004e0, 36.8330994e0/ data x( 149),y( 149)/ -121.799004e0, 36.8297997e0/ data x( 150),y( 150)/ -121.796997e0, 36.8264999e0/ data x( 151),y( 151)/ -121.793999e0, 36.8232002e0/ data x( 152),y( 152)/ -121.792e0, 36.8204002e0/ data x( 153),y( 153)/ -121.790001e0, 36.8172989e0/ data x( 154),y( 154)/ -121.790001e0, 36.8147011e0/ data x( 155),y( 155)/ -121.789001e0, 36.8112984e0/ data x( 156),y( 156)/ -121.789001e0, 36.8098984e0/ data x( 157),y( 157)/ -121.788002e0, 36.8073997e0/ data x( 158),y( 158)/ -121.788002e0, 36.8045006e0/ data x( 159),y( 159)/ -121.789001e0, 36.8008995e0/ data x( 160),y( 160)/ -121.791e0, 36.797699e0/ data x( 161),y( 161)/ -121.792999e0, 36.7935982e0/ data x( 162),y( 162)/ -121.793999e0, 36.7904015e0/ data x( 163),y( 163)/ -121.794998e0, 36.7867012e0/ data x( 164),y( 164)/ -121.794998e0, 36.7849998e0/ data x( 165),y( 165)/ -121.795998e0, 36.7811012e0/ data x( 166),y( 166)/ -121.796997e0, 36.7771988e0/ data x( 167),y( 167)/ -121.799004e0, 36.7723999e0/ data x( 168),y( 168)/ -121.800003e0, 36.769001e0/ data x( 169),y( 169)/ -121.800003e0, 36.7652016e0/ data x( 170),y( 170)/ -121.801003e0, 36.7617989e0/ data x( 171),y( 171)/ -121.802002e0, 36.7602005e0/ data x( 172),y( 172)/ -121.804001e0, 36.7574005e0/ data x( 173),y( 173)/ -121.805e0, 36.7536011e0/ data x( 174),y( 174)/ -121.805e0, 36.7496986e0/ data x( 175),y( 175)/ -121.804001e0, 36.7484016e0/ data x( 176),y( 176)/ -121.805e0, 36.7458992e0/ data x( 177),y( 177)/ -121.806999e0, 36.7416e0/ data x( 178),y( 178)/ -121.806999e0, 36.7372017e0/ data x( 179),y( 179)/ -121.806999e0, 36.7328987e0/ data x( 180),y( 180)/ -121.806999e0, 36.7271996e0/ data x( 181),y( 181)/ -121.806999e0, 36.7182999e0/ data x( 182),y( 182)/ -121.807999e0, 36.7094994e0/ data x( 183),y( 183)/ -121.808998e0, 36.7013016e0/ data x( 184),y( 184)/ -121.810997e0, 36.6959e0/ data x( 185),y( 185)/ -121.813004e0, 36.6892014e0/ data x( 186),y( 186)/ -121.815002e0, 36.6836014e0/ data x( 187),y( 187)/ -121.817001e0, 36.6769981e0/ data x( 188),y( 188)/ -121.819e0, 36.6706009e0/ data x( 189),y( 189)/ -121.821999e0, 36.6655998e0/ data x( 190),y( 190)/ -121.824997e0, 36.6587982e0/ data x( 191),y( 191)/ -121.829002e0, 36.6519012e0/ data x( 192),y( 192)/ -121.832001e0, 36.6483002e0/ data x( 193),y( 193)/ -121.834999e0, 36.6436005e0/ data x( 194),y( 194)/ -121.838997e0, 36.6371994e0/ data x( 195),y( 195)/ -121.842003e0, 36.6321983e0/ data x( 196),y( 196)/ -121.847e0, 36.6260986e0/ data x( 197),y( 197)/ -121.851997e0, 36.6208e0/ data x( 198),y( 198)/ -121.859001e0, 36.6142998e0/ data x( 199),y( 199)/ -121.862999e0, 36.6114998e0/ data x( 200),y( 200)/ -121.867996e0, 36.6090012e0/ data x( 201),y( 201)/ -121.873001e0, 36.6072006e0/ data x( 202),y( 202)/ -121.876999e0, 36.6060982e0/ data x( 203),y( 203)/ -121.882004e0, 36.6049004e0/ data x( 204),y( 204)/ -121.886002e0, 36.6049004e0/ data x( 205),y( 205)/ -121.889e0, 36.6054001e0/ data x( 206),y( 206)/ -121.892998e0, 36.6058006e0/ data x( 207),y( 207)/ -121.893997e0, 36.6069984e0/ data x( 208),y( 208)/ -121.893997e0, 36.6110001e0/ data x( 209),y( 209)/ -121.896004e0, 36.6128998e0/ data x( 210),y( 210)/ -121.897003e0, 36.615799e0/ data x( 211),y( 211)/ -121.898003e0, 36.6176987e0/ data x( 212),y( 212)/ -121.900002e0, 36.6194992e0/ data x( 213),y( 213)/ -121.902e0, 36.6214981e0/ data x( 214),y( 214)/ -121.903999e0, 36.6237984e0/ data x( 215),y( 215)/ -121.903999e0, 36.6245003e0/ data x( 216),y( 216)/ -121.904999e0, 36.6241989e0/ data x( 217),y( 217)/ -121.906998e0, 36.6245003e0/ data x( 218),y( 218)/ -121.908997e0, 36.6236e0/ data x( 219),y( 219)/ -121.910004e0, 36.6236e0/ data x( 220),y( 220)/ -121.910004e0, 36.6249008e0/ data x( 221),y( 221)/ -121.911003e0, 36.6260986e0/ data x( 222),y( 222)/ -121.913002e0, 36.6260986e0/ data x( 223),y( 223)/ -121.914001e0, 36.6269989e0/ data x( 224),y( 224)/ -121.915001e0, 36.6278e0/ data x( 225),y( 225)/ -121.916e0, 36.6285019e0/ data x( 226),y( 226)/ -121.915001e0, 36.6292e0/ data x( 227),y( 227)/ -121.915001e0, 36.6296997e0/ data x( 228),y( 228)/ -121.916e0, 36.6296997e0/ data x( 229),y( 229)/ -121.917999e0, 36.6304016e0/ data x( 230),y( 230)/ -121.919998e0, 36.6315002e0/ data x( 231),y( 231)/ -121.919998e0, 36.6329002e0/ data x( 232),y( 232)/ -121.921997e0, 36.6338005e0/ data x( 233),y( 233)/ -121.921997e0, 36.6357994e0/ data x( 234),y( 234)/ -121.922997e0, 36.6367989e0/ data x( 235),y( 235)/ -121.924004e0, 36.6379013e0/ data x( 236),y( 236)/ -121.926003e0, 36.6388016e0/ data x( 237),y( 237)/ -121.928001e0, 36.6399002e0/ data x( 238),y( 238)/ -121.93e0, 36.6403999e0/ data x( 239),y( 239)/ -121.931e0, 36.6403999e0/ data x( 240),y( 240)/ -121.931999e0, 36.6403999e0/ data x( 241),y( 241)/ -121.934998e0, 36.6403999e0/ data x( 242),y( 242)/ -121.936996e0, 36.6375999e0/ data x( 243),y( 243)/ -121.936996e0, 36.6351013e0/ data x( 244),y( 244)/ -121.935997e0, 36.6321983e0/ data x( 245),y( 245)/ -121.936996e0, 36.6310005e0/ data x( 246),y( 246)/ -121.936996e0, 36.6299019e0/ data x( 247),y( 247)/ -121.939003e0, 36.6299019e0/ data x( 248),y( 248)/ -121.939003e0, 36.6281013e0/ data x( 249),y( 249)/ -121.939003e0, 36.6268997e0/ data x( 250),y( 250)/ -121.941002e0, 36.6268997e0/ data x( 251),y( 251)/ -121.941002e0, 36.6245003e0/ data x( 252),y( 252)/ -121.942001e0, 36.6231003e0/ data x( 253),y( 253)/ -121.941002e0, 36.6217003e0/ data x( 254),y( 254)/ -121.941002e0, 36.6211014e0/ data x( 255),y( 255)/ -121.942001e0, 36.6203995e0/ data x( 256),y( 256)/ -121.944e0, 36.6176987e0/ data x( 257),y( 257)/ -121.947998e0, 36.6142998e0/ data x( 258),y( 258)/ -121.950996e0, 36.6128998e0/ data x( 259),y( 259)/ -121.950996e0, 36.6119003e0/ data x( 260),y( 260)/ -121.953003e0, 36.6119003e0/ data x( 261),y( 261)/ -121.954002e0, 36.6125984e0/ data x( 262),y( 262)/ -121.956001e0, 36.6142006e0/ data x( 263),y( 263)/ -121.958e0, 36.6125984e0/ data x( 264),y( 264)/ -121.958e0, 36.6110992e0/ data x( 265),y( 265)/ -121.959e0, 36.6095009e0/ data x( 266),y( 266)/ -121.959999e0, 36.6091995e0/ data x( 267),y( 267)/ -121.959999e0, 36.6076012e0/ data x( 268),y( 268)/ -121.960999e0, 36.6050987e0/ data x( 269),y( 269)/ -121.962997e0, 36.6030998e0/ data x( 270),y( 270)/ -121.960999e0, 36.6007996e0/ data x( 271),y( 271)/ -121.961998e0, 36.5992012e0/ data x( 272),y( 272)/ -121.961998e0, 36.5971985e0/ data x( 273),y( 273)/ -121.963997e0, 36.5960999e0/ data x( 274),y( 274)/ -121.964996e0, 36.5956001e0/ data x( 275),y( 275)/ -121.963997e0, 36.5934982e0/ data x( 276),y( 276)/ -121.963997e0, 36.5900993e0/ data x( 277),y( 277)/ -121.966003e0, 36.5881004e0/ data x( 278),y( 278)/ -121.968002e0, 36.5858002e0/ data x( 279),y( 279)/ -121.970001e0, 36.5858002e0/ data x( 280),y( 280)/ -121.973999e0, 36.5858002e0/ data x( 281),y( 281)/ -121.974998e0, 36.5848999e0/ data x( 282),y( 282)/ -121.974998e0, 36.5835991e0/ data x( 283),y( 283)/ -121.974998e0, 36.5824013e0/ data x( 284),y( 284)/ -121.975998e0, 36.5824013e0/ data x( 285),y( 285)/ -121.975998e0, 36.5830994e0/ data x( 286),y( 286)/ -121.977997e0, 36.5830994e0/ data x( 287),y( 287)/ -121.977997e0, 36.5819016e0/ data x( 288),y( 288)/ -121.975998e0, 36.5807991e0/ data x( 289),y( 289)/ -121.974998e0, 36.5789986e0/ data x( 290),y( 290)/ -121.973e0, 36.5780983e0/ data x( 291),y( 291)/ -121.972e0, 36.5760994e0/ data x( 292),y( 292)/ -121.971001e0, 36.5744019e0/ data x( 293),y( 293)/ -121.970001e0, 36.573101e0/ data x( 294),y( 294)/ -121.969002e0, 36.5718994e0/ data x( 295),y( 295)/ -121.967003e0, 36.5712013e0/ data x( 296),y( 296)/ -121.963997e0, 36.5703011e0/ data x( 297),y( 297)/ -121.962997e0, 36.5685005e0/ data x( 298),y( 298)/ -121.959999e0, 36.5677986e0/ data x( 299),y( 299)/ -121.958e0, 36.5674019e0/ data x( 300),y( 300)/ -121.957001e0, 36.5658989e0/ c sp(2)='monterey bay' sp(1)='monterey bay' sp(3)='monterey bay' sp(4)='monterey bay' c do i=1,nvf ibndry(1,i)=i-1 ibndry(2,i)=i ibndry(3,i)=0 ibndry(4,i)=2 ibndry(5,i)=0 ibndry(6,i)=0 vx(i)=x(i) vy(i)=y(i) enddo ibndry(1,1)=nvf c c make itnode c itnode(1,1)=1 itnode(2,1)=1 itnode(3,1)=0 itnode(4,1)=0 itnode(5,1)=1 c ip(1)=ntf ip(2)=nvf ip(3)=ncf ip(4)=nbf rp(15)=hmax rp(16)=grade return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine gd18(vx,vy,xm,ym,itnode,ibndry,ip,rp,sp,iu,ru,su,w) c implicit real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*), 1 x(100),y(100) character*80 + sp(100),su(100) save hmax,grade,ntf,nvf,ncf,nbf c c siam logo c data ntf,nvf,ncf,nbf/2,89,0,92/ data hmax,grade/0.1e0,1.5e0/ data x( 1),y( 1)/ 0.0e0,0.0e0/ data x( 2),y( 2)/ 3.0e0,0.0e0/ data x( 3),y( 3)/ 3.2e0,0.2e0/ data x( 4),y( 4)/ 3.4e0,0.0e0/ data x( 5),y( 5)/ 5.7e0,0.0e0/ data x( 6),y( 6)/ 5.9e0,0.2e0/ data x( 7),y( 7)/ 6.1e0,0.0e0/ data x( 8),y( 8)/ 8.9e0,0.0e0/ data x( 9),y( 9)/ 8.9e0,0.2e0/ data x( 10),y( 10)/ 9.1e0,0.0e0/ data x( 11),y( 11)/10.7e0,0.0e0/ data x( 12),y( 12)/10.9e0,0.2e0/ data x( 13),y( 13)/10.9e0,2.6e0/ data x( 14),y( 14)/11.4e0,2.6e0/ data x( 15),y( 15)/11.6e0,2.4e0/ data x( 16),y( 16)/11.6e0,0.0e0/ data x( 17),y( 17)/12.5e0,0.0e0/ data x( 18),y( 18)/12.5e0,2.6e0/ data x( 19),y( 19)/13.0e0,2.6e0/ data x( 20),y( 20)/13.2e0,2.4e0/ data x( 21),y( 21)/13.2e0,0.2e0/ data x( 22),y( 22)/13.4e0,0.0e0/ data x( 23),y( 23)/15.8e0,0.0e0/ data x( 24),y( 24)/15.8e0,0.7e0/ data x( 25),y( 25)/14.1e0,0.7e0/ data x( 26),y( 26)/13.9e0,0.9e0/ data x( 27),y( 27)/13.9e0,3.1e0/ data x( 28),y( 28)/13.7e0,3.3e0/ data x( 29),y( 29)/12.7e0,3.3e0/ data x( 30),y( 30)/12.5e0,3.1e0/ data x( 31),y( 31)/12.3e0,3.3e0/ data x( 32),y( 32)/11.1e0,3.3e0/ data x( 33),y( 33)/10.9e0,3.1e0/ data x( 34),y( 34)/10.9e0,3.3e0/ data x( 35),y( 35)/10.2e0,3.3e0/ data x( 36),y( 36)/10.2e0,0.9e0/ data x( 37),y( 37)/10.0e0,0.7e0/ data x( 38),y( 38)/ 9.1e0,0.7e0/ data x( 39),y( 39)/ 8.9e0,0.9e0/ data x( 40),y( 40)/ 8.9e0,3.1e0/ data x( 41),y( 41)/ 8.7e0,3.3e0/ data x( 42),y( 42)/ 6.1e0,3.3e0/ data x( 43),y( 43)/ 6.1e0,2.7e0/ data x( 44),y( 44)/ 8.2e0,2.7e0/ data x( 45),y( 45)/ 8.2e0,0.8e0/ data x( 46),y( 46)/ 8.1e0,0.7e0/ data x( 47),y( 47)/ 6.7e0,0.7e0/ data x( 48),y( 48)/ 6.6e0,0.8e0/ data x( 49),y( 49)/ 6.6e0,1.3e0/ data x( 50),y( 50)/ 6.7e0,1.4e0/ data x( 51),y( 51)/ 8.0e0,1.4e0/ data x( 52),y( 52)/ 8.0e0,2.1e0/ data x( 53),y( 53)/ 6.0e0,2.1e0/ data x( 54),y( 54)/ 5.8e0,1.9e0/ data x( 55),y( 55)/ 5.8e0,0.9e0/ data x( 56),y( 56)/ 5.6e0,0.7e0/ data x( 57),y( 57)/ 5.0e0,0.7e0/ data x( 58),y( 58)/ 4.8e0,0.9e0/ data x( 59),y( 59)/ 4.8e0,3.3e0/ data x( 60),y( 60)/ 4.1e0,3.3e0/ data x( 61),y( 61)/ 4.1e0,0.9e0/ data x( 62),y( 62)/ 3.9e0,0.7e0/ data x( 63),y( 63)/ 3.5e0,0.7e0/ data x( 64),y( 64)/ 3.3e0,0.9e0/ data x( 65),y( 65)/ 3.3e0,1.9e0/ data x( 66),y( 66)/ 3.1e0,2.1e0/ data x( 67),y( 67)/ 0.9e0,2.1e0/ data x( 68),y( 68)/ 0.8e0,2.2e0/ data x( 69),y( 69)/ 0.8e0,2.6e0/ data x( 70),y( 70)/ 0.9e0,2.7e0/ data x( 71),y( 71)/ 3.3e0,2.7e0/ data x( 72),y( 72)/ 3.3e0,3.3e0/ data x( 73),y( 73)/ 0.3e0,3.3e0/ data x( 74),y( 74)/ 0.1e0,3.1e0/ data x( 75),y( 75)/ 0.1e0,1.6e0/ data x( 76),y( 76)/ 0.3e0,1.4e0/ data x( 77),y( 77)/ 2.5e0,1.4e0/ data x( 78),y( 78)/ 2.6e0,1.3e0/ data x( 79),y( 79)/ 2.6e0,0.8e0/ data x( 80),y( 80)/ 2.5e0,0.7e0/ data x( 81),y( 81)/ 0.0e0,0.7e0/ c data x( 82),y( 82)/ 4.8e0,4.0e0/ data x( 83),y( 83)/ 5.0e0,5.1e0/ data x( 84),y( 84)/ 3.9e0,5.1e0/ data x( 85),y( 85)/ 4.1e0,4.0e0/ c data x( 86),y( 86)/-6.0e0,-9.0e0/ data x( 87),y( 87)/22.0e0,-9.0e0/ data x( 88),y( 88)/22.0e0,14.0e0/ data x( 89),y( 89)/-6.0e0,14.0e0/ c sp(2)='siam' sp(1)='siam' sp(3)='siam' sp(4)='siam' c do i=1,nvf vx(i)=x(i) vy(i)=y(i) enddo do i=1,nbf ibndry(1,i)=i ibndry(2,i)=i+1 ibndry(3,i)=0 ibndry(4,i)=2 ibndry(5,i)=0 ibndry(6,i)=0 enddo ibndry(2,81)=1 ibndry(2,85)=82 ibndry(2,89)=86 ibndry(1,90)=86 ibndry(2,90)=1 ibndry(1,91)=60 ibndry(2,91)=85 ibndry(1,92)=84 ibndry(2,92)=89 do i=nvf+1,nbf ibndry(4,i)=0 enddo c ip(1)=ntf ip(2)=nvf ip(3)=ncf ip(4)=nbf rp(15)=hmax rp(16)=grade c c make itnode c call sklutl(0,vx,vy,xm,ym,itnode,ibndry,ip,w,iflag) return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine gd19(vx,vy,xm,ym,itnode,ibndry,ip,rp,sp,iu,ru,su,w) c implicit real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100), 1 b1(2000),b2(2000) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*), 1 x(2000),y(2000) character*80 + sp(100),su(100) save hmax,grade,ntf,nvf,ncf,nbf c c domain in the shape of mexico c data hmax,grade/0.1e0,1.5e0/ c data ntf,nvf,nbf,ncf/1, 968, 999,0/ data nbound/ 427/ data (x(i),i= 1, 50)/ + 105.55e0,105.55e0,106.99e0,111.21e0,112.36e0, 1 115.62e0,116.77e0,116.77e0,117.92e0,118.69e0, 2 120.32e0,120.32e0,119.55e0,120.03e0,123.58e0, 3 123.78e0,124.93e0,124.45e0,126.08e0,126.46e0, 4 125.31e0,128.38e0,130.88e0,131.55e0,134.72e0, 5 135.87e0,134.81e0,135.96e0,140.57e0,141.72e0, 6 141.91e0,143.73e0,147.76e0,149.59e0,150.26e0, 7 151.70e0,155.73e0,154.10e0,150.07e0,147.96e0, 8 146.61e0,143.83e0,141.62e0,138.55e0,135.29e0, 9 125.79e0,118.60e0,117.64e0,117.16e0,116.00e0/ data (x(i),i= 51, 100)/ + 114.37e0,113.03e0,111.40e0,113.51e0,109.48e0, 1 106.99e0, 93.55e0, 92.11e0, 89.62e0, 86.16e0, 2 84.05e0, 81.46e0, 76.86e0, 75.90e0, 68.70e0, 3 69.37e0, 74.46e0, 78.58e0, 80.41e0, 82.52e0, 4 85.30e0, 85.78e0, 85.01e0, 83.00e0, 80.70e0, 5 82.71e0, 80.41e0, 79.54e0, 82.61e0,139.51e0, 6 173.96e0,161.68e0,161.29e0,158.32e0,155.82e0, 7 152.85e0,151.31e0,147.67e0,145.08e0,141.82e0, 8 140.66e0,141.34e0,137.31e0,136.44e0,135.96e0, 9 133.37e0,130.40e0,127.90e0,122.24e0,120.42e0/ data (x(i),i= 101, 150)/ + 120.42e0,116.68e0,116.20e0,113.89e0,113.99e0, 1 108.62e0,108.42e0,106.70e0,104.11e0,104.97e0, 2 104.97e0,102.00e0, 99.89e0, 94.51e0, 92.21e0, 3 89.43e0, 83.96e0,263.00e0,183.07e0,183.94e0, 4 184.13e0,211.38e0,215.70e0,219.44e0,225.48e0, 5 229.61e0,236.42e0,238.25e0,240.16e0,240.45e0, 6 244.19e0,246.98e0,250.62e0,253.41e0,256.96e0, 7 259.07e0,320.57e0,316.35e0,312.80e0,312.13e0, 8 305.99e0,299.75e0,292.26e0,286.51e0,279.60e0, 9 277.49e0,275.19e0,272.31e0,270.20e0,265.49e0/ data (x(i),i= 151, 200)/ + 42.99e0, 81.46e0, 80.02e0, 78.39e0, 76.19e0, 1 76.67e0, 77.82e0, 78.87e0, 81.46e0, 83.86e0, 2 90.48e0, 94.51e0, 94.80e0, 98.25e0,100.36e0, 3 104.11e0,104.88e0,105.55e0, 83.19e0, 83.77e0, 4 85.40e0, 80.70e0, 77.24e0, 69.76e0, 66.59e0, 5 60.45e0, 60.45e0, 59.11e0, 59.20e0, 56.04e0, 6 55.46e0, 52.68e0, 52.39e0, 49.61e0, 48.46e0, 7 48.26e0, 49.70e0, 48.55e0, 46.54e0, 45.29e0, 8 42.70e0, 43.18e0, 42.89e0,321.62e0,364.52e0, 9 365.76e0,362.88e0,360.10e0,357.51e0,357.03e0/ data (x(i),i= 201, 250)/ + 359.24e0,361.44e0,360.39e0,359.62e0,357.61e0, 1 355.98e0,356.65e0,355.98e0,357.80e0,356.55e0, 2 356.74e0,355.40e0,355.59e0,357.22e0,356.36e0, 3 356.26e0,356.84e0,356.84e0,354.63e0,355.88e0, 4 324.41e0,325.65e0,324.98e0,326.81e0,326.62e0, 5 330.55e0,332.76e0,337.55e0,340.34e0,345.42e0, 6 349.07e0,357.41e0,361.16e0,424.77e0,419.88e0, 7 416.14e0,412.20e0,409.42e0,405.49e0,394.64e0, 8 391.86e0,386.49e0,382.27e0,376.22e0,367.30e0, 9 363.36e0,362.60e0,359.91e0,358.28e0,362.69e0/ data (x(i),i= 251, 300)/ + 363.08e0,363.17e0,364.23e0,364.71e0,363.08e0, 1 357.90e0,221.07e0,218.77e0,215.70e0,213.78e0, 2 214.26e0,203.61e0,198.43e0,196.60e0,191.71e0, 3 188.93e0,185.86e0,182.40e0,182.11e0,180.77e0, 4 180.77e0,176.17e0,172.81e0,169.54e0,168.01e0, 5 166.86e0,160.81e0,159.95e0,159.95e0,158.22e0, 6 159.38e0,161.87e0,226.63e0,223.18e0,221.84e0, 7 222.70e0,225.96e0,227.02e0,227.69e0,223.76e0, 8 220.21e0,220.59e0,222.80e0,223.47e0,220.78e0, 9 237.38e0,225.68e0,222.32e0,219.15e0,219.82e0/ data (x(i),i= 301, 350)/ + 221.93e0,231.53e0,280.75e0,346.00e0,341.39e0, 1 337.94e0,331.22e0,323.45e0,319.42e0,315.29e0, 2 299.65e0,289.39e0,284.68e0,282.19e0,251.97e0, 3 257.05e0,279.12e0,240.26e0,249.86e0,351.66e0, 4 356.26e0,360.10e0,372.10e0,373.05e0,376.51e0, 5 382.36e0,386.01e0,402.32e0,410.28e0,412.30e0, 6 414.41e0,414.12e0,417.19e0,420.65e0,421.51e0, 7 427.08e0,432.93e0,440.22e0,441.66e0,444.63e0, 8 450.20e0,453.36e0,481.57e0,481.86e0,475.24e0, 9 487.24e0,486.18e0,487.62e0,483.78e0,483.78e0/ data (x(i),i= 351, 400)/ + 482.44e0,474.67e0,472.17e0,475.05e0,474.76e0, 1 470.64e0,464.88e0,464.21e0,461.90e0,462.86e0, 2 461.71e0,509.21e0,489.54e0,498.46e0,500.28e0, 3 517.08e0,520.72e0,537.13e0,474.76e0,481.29e0, 4 487.52e0,489.15e0,492.90e0,493.18e0,469.68e0, 5 461.52e0,464.30e0,463.63e0,463.25e0,463.25e0, 6 453.17e0,451.16e0,438.01e0,431.11e0,541.26e0, 7 542.41e0,542.89e0,541.93e0,544.42e0,547.01e0, 8 549.99e0,549.32e0,549.99e0,548.45e0,541.64e0, 9 539.91e0,539.91e0,537.80e0,536.65e0,536.27e0/ data (x(i),i= 401, 450)/ + 537.80e0,540.87e0,541.73e0,541.16e0,538.38e0, 1 537.51e0,537.90e0,540.68e0,540.97e0,539.82e0, 2 536.08e0,535.79e0,535.11e0,535.21e0,532.24e0, 3 532.71e0,532.04e0,531.57e0,530.89e0,527.92e0, 4 524.08e0,523.60e0,519.38e0,515.54e0,513.81e0, 5 513.62e0,510.55e0, 79.93e0, 75.80e0, 75.32e0, 6 76.67e0,172.81e0,174.34e0,174.92e0,176.65e0, 7 175.59e0,173.96e0,174.34e0,175.11e0,174.15e0, 8 168.20e0,166.09e0,168.30e0,171.75e0,172.90e0, 9 173.00e0,175.49e0,169.64e0,251.68e0,256.00e0/ data (x(i),i= 451, 500)/ + 247.26e0,241.12e0,238.53e0,231.34e0,227.98e0, 1 222.13e0,220.78e0,216.18e0,214.55e0,212.53e0, 2 210.52e0,209.36e0,209.75e0,208.21e0,207.54e0, 3 204.57e0,198.33e0,193.44e0,190.65e0,186.53e0, 4 185.76e0,183.65e0,183.46e0,182.40e0,178.47e0, 5 262.33e0,260.89e0,260.99e0,258.68e0,259.07e0, 6 262.52e0,262.52e0,269.52e0,272.40e0,276.05e0, 7 283.44e0,289.77e0,290.25e0,294.09e0,297.16e0, 8 301.96e0,303.78e0,304.45e0,305.31e0,303.97e0, 9 304.35e0,309.92e0,310.88e0,309.34e0,304.26e0/ data (x(i),i= 501, 550)/ + 303.59e0,300.71e0,299.17e0,297.54e0,303.68e0, 1 305.03e0,307.52e0,308.48e0,307.33e0,305.51e0, 2 304.26e0,304.74e0,310.02e0,311.26e0,314.05e0, 3 317.02e0,318.94e0,319.42e0,321.72e0,322.01e0, 4 322.11e0,324.41e0,324.79e0,327.86e0,328.15e0, 5 330.93e0,332.28e0,333.91e0,336.88e0,340.34e0, 6 341.49e0,341.58e0,343.69e0,341.97e0,336.21e0, 7 334.58e0,332.95e0,332.08e0,329.78e0,324.50e0, 8 323.35e0,325.18e0,324.89e0,326.90e0,323.83e0, 9 321.05e0,319.90e0,319.90e0,317.60e0,316.54e0/ data (x(i),i= 551, 600)/ + 314.24e0,311.94e0,310.50e0,310.69e0,308.29e0, 1 308.48e0,348.59e0,346.76e0,343.12e0,337.84e0, 2 331.60e0,329.30e0,327.48e0,325.37e0,317.40e0, 3 319.52e0,319.52e0,346.29e0,346.19e0,343.69e0, 4 344.84e0,342.83e0,344.17e0,344.46e0,346.09e0, 5 347.24e0,348.78e0,350.79e0,349.64e0,346.38e0, 6 344.75e0,345.42e0,344.65e0,345.13e0,345.80e0, 7 350.60e0,352.14e0,353.29e0,352.91e0,354.54e0, 8 355.78e0,357.22e0,358.38e0,358.57e0,361.92e0, 9 361.25e0,358.47e0,358.47e0,361.25e0,364.71e0/ data (x(i),i= 601, 650)/ + 368.35e0,369.02e0,366.63e0,366.63e0,364.32e0, 1 366.91e0,370.66e0,371.04e0,367.87e0,369.31e0, 2 367.01e0,367.01e0,370.75e0,371.14e0,374.59e0, 3 375.55e0,377.37e0,378.81e0,379.00e0,381.98e0, 4 387.83e0,393.11e0,394.55e0,393.20e0,393.68e0, 5 396.28e0,405.01e0,405.87e0,405.68e0,408.94e0, 6 409.71e0,416.33e0,430.72e0,433.79e0,434.75e0, 7 433.79e0,433.79e0,430.82e0,428.13e0,425.83e0, 8 426.12e0,342.64e0,339.19e0,337.55e0,334.77e0, 9 333.43e0,331.32e0,327.38e0,323.74e0,321.91e0/ data (x(i),i= 651, 700)/ + 311.07e0,307.62e0,305.51e0,300.81e0,298.31e0, 1 296.01e0,291.98e0,294.57e0,294.47e0,295.43e0, 2 294.47e0,291.98e0,288.71e0,287.85e0,280.18e0, 3 279.89e0,278.74e0,280.75e0,282.09e0,288.81e0, 4 296.29e0,298.79e0,274.99e0,274.51e0,261.47e0, 5 252.35e0,251.97e0,248.03e0,246.50e0,245.63e0, 6 243.81e0,243.62e0,249.86e0,248.70e0,249.95e0, 7 251.87e0,250.72e0,251.68e0,253.98e0,254.94e0, 8 254.75e0,255.90e0,259.55e0,260.89e0,264.15e0, 9 264.34e0,256.86e0,257.34e0,256.48e0,253.69e0/ data (x(i),i= 701, 750)/ + 253.50e0,255.13e0,263.29e0,264.63e0,265.01e0, 1 268.95e0,271.92e0,272.40e0,270.77e0,269.24e0, 2 271.16e0,272.69e0,273.17e0,272.31e0,272.60e0, 3 275.38e0,277.68e0,282.29e0,282.86e0,285.26e0, 4 285.64e0,291.88e0,241.99e0,240.16e0,237.38e0, 5 237.38e0,234.89e0,232.78e0,231.91e0,232.49e0, 6 233.35e0,230.67e0,224.43e0,219.73e0,219.25e0, 7 216.85e0,216.18e0,210.80e0,207.83e0,205.72e0, 8 204.28e0,199.19e0,196.89e0,223.47e0,223.76e0, 9 221.65e0,223.37e0,222.89e0,242.37e0,243.71e0/ data (x(i),i= 751, 800)/ + 246.21e0,245.44e0,248.90e0,245.44e0,244.48e0, 1 243.43e0,243.23e0,238.34e0,234.89e0,228.75e0, 2 240.26e0,242.08e0,246.40e0,248.32e0,250.91e0, 3 253.88e0,256.38e0,257.05e0,258.30e0,260.51e0, 4 261.47e0,264.25e0,266.55e0,272.31e0,273.17e0, 5 272.50e0,270.48e0,268.76e0,270.10e0,269.62e0, 6 266.65e0,265.01e0,264.82e0,266.07e0,269.33e0, 7 271.64e0,275.57e0,282.00e0,283.63e0,282.09e0, 8 286.22e0,288.91e0,290.83e0,290.06e0,291.21e0, 9 290.92e0,279.50e0,275.95e0,273.17e0,323.26e0/ data (x(i),i= 801, 850)/ + 322.30e0,318.84e0,318.08e0,315.97e0,310.69e0, 1 308.19e0,309.82e0,313.09e0,311.55e0,309.54e0, 2 306.75e0,303.97e0,302.15e0,299.27e0,295.43e0, 3 294.18e0,293.03e0,291.21e0,289.10e0,286.12e0, 4 284.30e0,284.11e0,316.54e0,319.32e0,319.52e0, 5 321.62e0,322.11e0,322.11e0,325.65e0,326.33e0, 6 326.33e0,330.07e0,330.84e0,335.25e0,351.27e0, 7 352.23e0,350.22e0,350.99e0,348.20e0,347.53e0, 8 343.02e0,343.12e0,341.97e0,338.71e0,337.17e0, 9 337.17e0,336.02e0,332.08e0,330.64e0,376.32e0/ data (x(i),i= 851, 900)/ + 372.00e0,368.07e0,364.80e0,363.17e0,360.87e0, 1 359.72e0,359.05e0,359.33e0,357.70e0,355.40e0, 2 349.16e0,347.05e0,341.78e0,336.69e0,336.50e0, 3 338.71e0,342.64e0,341.97e0,342.83e0,342.35e0, 4 342.93e0,343.02e0,343.21e0,345.71e0,348.97e0, 5 351.47e0,354.06e0,355.88e0,361.16e0,360.29e0, 6 357.03e0,356.94e0,355.59e0,342.73e0,332.56e0, 7 331.03e0,332.18e0,334.96e0,337.46e0,336.79e0, 8 335.54e0,327.38e0,329.30e0,331.13e0,332.76e0, 9 333.91e0,339.09e0,330.55e0,330.64e0,324.41e0/ data (x(i),i= 901, 950)/ + 321.62e0,318.65e0,314.43e0,312.99e0,309.73e0, 1 308.77e0,314.62e0,316.25e0,316.64e0,317.60e0, 2 281.90e0,286.51e0,285.74e0,287.85e0,293.13e0, 3 299.08e0,302.15e0,303.01e0,307.23e0,305.31e0, 4 305.79e0,306.27e0,307.14e0,348.59e0,350.70e0, 5 351.66e0,354.63e0,353.58e0,350.79e0,350.12e0, 6 350.41e0,255.13e0,427.75e0,426.12e0,427.17e0, 7 429.28e0,430.14e0,455.19e0,458.64e0,458.93e0, 8 460.08e0,460.85e0,465.46e0,468.91e0,470.73e0, 9 474.67e0,480.90e0,471.79e0,470.35e0,469.10e0/ data (x(i),i= 951, 1000)/ + 467.57e0,467.28e0,464.50e0,462.67e0,460.37e0, 1 456.05e0,449.91e0,445.31e0,445.69e0,440.60e0, 2 438.40e0,507.87e0,507.00e0,495.58e0,493.76e0, 3 488.96e0,537.23e0,532.81e0, 0.00e0, 0.00e0, 4 0.00e0, 0.00e0, 0.00e0, 0.00e0, 0.00e0, 5 0.00e0, 0.00e0, 0.00e0, 0.00e0, 0.00e0, 6 0.00e0, 0.00e0, 0.00e0, 0.00e0, 0.00e0, 7 0.00e0, 0.00e0, 0.00e0, 0.00e0, 0.00e0, 8 0.00e0, 0.00e0, 0.00e0, 0.00e0, 0.00e0, 9 0.00e0, 0.00e0, 0.00e0, 0.00e0, 0.00e0/ data (y(i),i= 1, 50)/ + 465.67e0,464.52e0,459.05e0,454.54e0,450.80e0, 1 447.63e0,447.15e0,444.37e0,441.88e0,438.42e0, 2 436.79e0,439.57e0,441.59e0,442.36e0,438.71e0, 3 436.22e0,435.06e0,433.63e0,430.17e0,426.72e0, 4 424.41e0,417.99e0,416.26e0,411.84e0,405.70e0, 5 402.63e0,396.88e0,393.04e0,389.97e0,391.02e0, 6 393.33e0,392.85e0,387.57e0,386.90e0,383.44e0, 7 380.09e0,375.00e0,370.20e0,367.52e0,365.50e0, 8 365.21e0,368.19e0,377.69e0,380.37e0,382.39e0, 9 391.98e0,398.99e0,398.99e0,401.39e0,400.62e0/ data (y(i),i= 51, 100)/ + 403.40e0,403.88e0,408.49e0,421.15e0,431.13e0, 1 432.28e0,443.70e0,443.03e0,442.93e0,447.35e0, 2 448.02e0,450.32e0,452.72e0,454.64e0,463.75e0, 3 464.14e0,462.89e0,464.04e0,461.83e0,461.35e0, 4 460.20e0,461.64e0,462.31e0,462.79e0,465.29e0, 5 467.11e0,538.50e0,552.99e0,551.45e0,525.83e0, 6 524.20e0,429.50e0,433.63e0,437.37e0,436.70e0, 7 437.85e0,443.41e0,445.62e0,446.48e0,449.94e0, 8 456.08e0,460.11e0,461.16e0,460.68e0,460.20e0, 9 461.83e0,464.71e0,470.09e0,474.88e0,476.90e0/ data (y(i),i= 101, 150)/ + 479.20e0,484.19e0,488.41e0,489.95e0,492.25e0, 1 502.33e0,506.93e0,511.34e0,517.10e0,522.57e0, 2 524.87e0,526.98e0,527.18e0,533.12e0,534.28e0, 3 532.74e0,536.68e0,476.90e0,523.82e0,525.64e0, 4 531.69e0,531.11e0,526.22e0,522.76e0,516.62e0, 5 512.69e0,507.70e0,502.23e0,499.45e0,493.69e0, 6 487.74e0,486.40e0,483.14e0,482.85e0,480.06e0, 7 479.59e0,453.68e0,460.39e0,462.79e0,464.91e0, 8 478.43e0,485.25e0,491.39e0,491.58e0,493.40e0, 9 491.48e0,491.29e0,489.37e0,483.81e0,477.19e0/ data (y(i),i= 151, 200)/ + 557.98e0,556.92e0,538.79e0,539.07e0,527.18e0, 1 524.39e0,522.28e0,506.83e0,501.94e0,499.64e0, 2 492.35e0,485.44e0,483.33e0,482.18e0,474.69e0, 3 472.39e0,468.45e0,466.82e0,469.22e0,472.68e0, 4 476.13e0,482.37e0,486.40e0,494.94e0,497.34e0, 5 502.90e0,504.72e0,506.64e0,512.98e0,516.14e0, 6 524.20e0,526.51e0,531.11e0,535.72e0,537.92e0, 7 540.23e0,543.10e0,545.31e0,546.46e0,551.07e0, 8 555.67e0,557.50e0,558.07e0,452.05e0,420.58e0, 9 419.42e0,409.35e0,403.88e0,391.89e0,392.08e0/ data (y(i),i= 201, 250)/ + 403.88e0,408.58e0,409.35e0,407.81e0,408.49e0, 1 406.86e0,405.22e0,402.06e0,400.43e0,398.32e0, 2 394.67e0,392.37e0,391.69e0,390.74e0,386.61e0, 3 375.29e0,365.60e0,361.47e0,356.67e0,351.88e0, 4 450.99e0,448.98e0,446.39e0,442.93e0,440.63e0, 5 433.53e0,428.25e0,427.20e0,424.89e0,424.03e0, 6 421.53e0,420.86e0,418.85e0,276.46e0,274.06e0, 7 275.50e0,281.35e0,282.02e0,284.52e0,285.09e0, 8 287.40e0,293.83e0,303.23e0,311.48e0,323.86e0, 9 333.36e0,334.32e0,337.29e0,342.76e0,338.54e0/ data (y(i),i= 251, 300)/ + 334.99e0,334.22e0,334.32e0,336.81e0,338.92e0, 1 344.20e0,355.52e0,356.00e0,360.61e0,362.43e0, 2 363.58e0,374.81e0,382.96e0,386.23e0,388.62e0, 3 394.19e0,394.19e0,397.84e0,400.43e0,403.02e0, 4 404.46e0,407.43e0,409.93e0,413.09e0,414.72e0, 5 413.09e0,416.45e0,416.64e0,418.27e0,421.73e0, 6 424.99e0,428.06e0,320.60e0,322.90e0,323.28e0, 7 325.10e0,327.79e0,330.96e0,335.56e0,338.63e0, 8 346.98e0,348.90e0,346.89e0,347.56e0,351.59e0, 9 292.00e0,318.29e0,317.33e0,316.18e0,314.07e0/ data (y(i),i= 301, 350)/ + 308.12e0,294.88e0,268.69e0,238.46e0,242.49e0, 1 242.49e0,244.22e0,246.24e0,249.88e0,250.36e0, 2 256.41e0,263.89e0,268.69e0,269.26e0,282.22e0, 3 275.98e0,268.11e0,290.56e0,284.90e0,236.54e0, 4 233.67e0,232.32e0,231.94e0,230.31e0,228.77e0, 5 226.47e0,227.05e0,233.38e0,241.34e0,242.20e0, 6 241.34e0,240.57e0,238.85e0,238.65e0,240.00e0, 7 238.27e0,280.39e0,281.93e0,281.16e0,282.60e0, 8 284.71e0,286.82e0,273.29e0,263.12e0,262.16e0, 9 330.96e0,322.80e0,313.49e0,309.18e0,303.42e0/ data (y(i),i= 351, 400)/ + 300.45e0,294.11e0,291.62e0,288.64e0,287.68e0, 1 284.52e0,283.46e0,284.81e0,285.57e0,287.59e0, 2 288.26e0,275.40e0,334.89e0,339.79e0,340.07e0, 3 344.49e0,347.17e0,346.50e0,261.49e0,255.83e0, 4 252.18e0,248.73e0,246.91e0,240.67e0,238.85e0, 5 223.40e0,219.46e0,217.83e0,212.75e0,209.10e0, 6 217.54e0,220.23e0,230.11e0,235.97e0,346.60e0, 7 347.56e0,348.04e0,348.90e0,349.86e0,348.52e0, 8 344.87e0,342.86e0,340.75e0,335.66e0,326.64e0, 9 319.25e0,315.32e0,313.49e0,313.40e0,312.25e0/ data (y(i),i= 401, 450)/ + 310.71e0,311.67e0,311.19e0,309.56e0,307.45e0, 1 305.53e0,304.96e0,306.59e0,305.44e0,301.69e0, 2 287.40e0,282.98e0,283.08e0,287.30e0,290.56e0, 3 294.98e0,296.13e0,295.65e0,294.02e0,291.04e0, 4 288.16e0,286.15e0,278.09e0,279.53e0,277.99e0, 5 275.21e0,274.92e0,539.65e0,543.01e0,545.31e0, 6 550.40e0,520.94e0,520.27e0,510.58e0,500.69e0, 7 488.51e0,486.69e0,474.69e0,466.15e0,465.19e0, 8 467.21e0,464.91e0,458.67e0,453.01e0,450.99e0, 9 444.08e0,441.01e0,435.16e0,456.27e0,433.53e0/ data (y(i),i= 451, 500)/ + 435.26e0,427.39e0,428.73e0,430.75e0,429.98e0, 1 433.91e0,433.34e0,436.79e0,435.64e0,429.88e0, 2 428.64e0,427.48e0,423.36e0,422.21e0,418.75e0, 3 415.78e0,414.72e0,424.41e0,424.99e0,426.62e0, 4 433.34e0,436.79e0,439.29e0,440.72e0,442.45e0, 5 425.95e0,420.86e0,415.30e0,410.02e0,405.90e0, 6 402.25e0,400.33e0,396.78e0,402.73e0,404.26e0, 7 403.21e0,398.80e0,397.45e0,397.55e0,397.26e0, 8 392.94e0,393.23e0,398.12e0,400.43e0,401.77e0, 9 403.59e0,405.70e0,407.34e0,410.02e0,415.11e0/ data (y(i),i= 501, 550)/ + 419.52e0,423.07e0,424.03e0,427.20e0,432.86e0, 1 432.19e0,434.97e0,438.42e0,439.96e0,439.96e0, 2 442.07e0,443.89e0,446.87e0,451.09e0,453.20e0, 3 450.90e0,448.59e0,446.77e0,445.81e0,441.97e0, 4 437.37e0,436.02e0,433.24e0,432.09e0,427.77e0, 5 426.33e0,422.88e0,422.59e0,420.67e0,421.63e0, 6 420.48e0,414.53e0,410.60e0,407.81e0,403.02e0, 7 403.69e0,403.30e0,397.84e0,397.36e0,394.38e0, 8 392.65e0,390.93e0,385.36e0,381.43e0,378.17e0, 9 377.69e0,376.05e0,371.74e0,371.74e0,368.28e0/ data (y(i),i= 551, 600)/ + 368.48e0,367.42e0,368.38e0,377.40e0,380.57e0, 1 385.84e0,353.99e0,352.84e0,353.03e0,351.88e0, 2 354.27e0,357.73e0,358.21e0,356.86e0,360.61e0, 3 363.68e0,365.02e0,349.67e0,348.23e0,344.97e0, 4 341.80e0,338.73e0,337.10e0,333.93e0,330.29e0, 5 329.62e0,330.10e0,328.46e0,323.67e0,323.67e0, 6 322.04e0,319.92e0,317.14e0,315.61e0,314.84e0, 7 318.58e0,320.21e0,319.06e0,316.47e0,317.43e0, 8 322.61e0,323.28e0,322.13e0,320.69e0,318.68e0, 9 316.85e0,316.37e0,313.11e0,311.10e0,312.92e0/ data (y(i),i= 601, 650)/ + 311.19e0,310.43e0,306.97e0,302.85e0,300.45e0, 1 296.61e0,294.30e0,293.63e0,292.00e0,287.01e0, 2 286.53e0,284.23e0,282.41e0,280.49e0,280.97e0, 3 281.35e0,279.72e0,281.35e0,282.70e0,281.74e0, 4 274.73e0,273.58e0,270.32e0,266.67e0,264.85e0, 5 262.35e0,266.10e0,265.23e0,262.64e0,260.43e0, 6 257.84e0,257.08e0,257.17e0,260.63e0,261.97e0, 7 263.41e0,263.79e0,267.73e0,269.17e0,271.09e0, 8 273.01e0,330.19e0,329.71e0,331.15e0,332.30e0, 9 335.66e0,337.96e0,334.70e0,336.24e0,334.60e0/ data (y(i),i= 651, 700)/ + 338.44e0,335.47e0,336.33e0,340.17e0,340.17e0, 1 341.99e0,342.38e0,345.73e0,349.19e0,353.99e0, 2 356.29e0,356.48e0,353.70e0,353.70e0,361.66e0, 3 365.31e0,367.61e0,370.59e0,370.88e0,376.05e0, 4 382.77e0,386.51e0,395.53e0,391.60e0,390.74e0, 5 383.92e0,376.05e0,371.93e0,366.84e0,365.50e0, 6 352.55e0,351.20e0,353.51e0,356.10e0,359.26e0, 7 357.92e0,351.68e0,350.53e0,355.91e0,355.04e0, 8 347.37e0,346.69e0,351.30e0,353.60e0,350.53e0, 9 348.90e0,340.94e0,338.92e0,336.62e0,335.66e0/ data (y(i),i= 701, 750)/ + 330.58e0,330.10e0,327.70e0,327.70e0,331.34e0, 1 331.63e0,334.12e0,336.24e0,338.06e0,343.14e0, 2 344.97e0,345.16e0,346.60e0,348.90e0,350.25e0, 3 351.30e0,353.60e0,349.86e0,348.04e0,344.87e0, 4 345.35e0,342.38e0,353.70e0,352.93e0,355.71e0, 5 356.67e0,357.15e0,356.67e0,357.06e0,359.07e0, 6 361.76e0,364.35e0,365.98e0,371.16e0,375.38e0, 7 380.37e0,386.13e0,390.93e0,389.10e0,390.45e0, 8 395.53e0,400.52e0,407.81e0,364.83e0,362.81e0, 9 360.61e0,357.73e0,356.29e0,346.98e0,344.10e0/ data (y(i),i= 751, 800)/ + 341.13e0,336.52e0,333.07e0,329.81e0,329.62e0, 1 321.94e0,321.56e0,325.30e0,327.22e0,325.01e0, 2 294.98e0,294.98e0,298.53e0,297.09e0,296.42e0, 3 298.14e0,295.55e0,287.49e0,287.97e0,289.80e0, 4 289.12e0,288.74e0,292.00e0,293.63e0,296.61e0, 5 297.57e0,297.76e0,301.69e0,304.86e0,305.82e0, 6 306.01e0,306.78e0,308.12e0,309.95e0,309.95e0, 7 311.58e0,313.02e0,315.13e0,317.62e0,322.52e0, 8 328.85e0,330.67e0,332.49e0,335.47e0,337.10e0, 9 341.03e0,338.35e0,339.31e0,340.17e0,331.63e0/ data (y(i),i= 801, 850)/ + 330.00e0,329.52e0,328.18e0,325.39e0,324.82e0, 1 320.50e0,318.39e0,310.33e0,307.35e0,305.72e0, 2 306.88e0,305.91e0,307.74e0,309.08e0,307.93e0, 3 308.60e0,312.25e0,313.59e0,311.77e0,311.29e0, 4 311.96e0,313.59e0,306.40e0,309.95e0,311.39e0, 5 312.06e0,314.17e0,316.85e0,318.87e0,319.73e0, 6 322.32e0,325.97e0,329.42e0,330.00e0,313.69e0, 7 310.04e0,306.59e0,302.17e0,301.79e0,300.83e0, 8 300.54e0,301.89e0,304.38e0,304.38e0,304.86e0, 9 307.64e0,308.31e0,307.35e0,304.19e0,276.46e0/ data (y(i),i= 851, 900)/ + 273.39e0,273.58e0,270.80e0,271.47e0,276.08e0, 1 275.79e0,272.81e0,270.32e0,269.65e0,270.80e0, 2 268.40e0,269.93e0,270.13e0,274.73e0,276.55e0, 3 278.67e0,279.34e0,282.50e0,283.94e0,285.77e0, 4 287.97e0,288.55e0,297.28e0,296.70e0,292.77e0, 5 290.95e0,292.77e0,293.06e0,295.36e0,296.32e0, 6 297.66e0,299.58e0,300.93e0,297.95e0,299.97e0, 7 293.92e0,292.10e0,290.56e0,290.56e0,296.13e0, 8 298.62e0,283.18e0,280.10e0,278.95e0,280.39e0, 9 280.10e0,289.22e0,290.08e0,287.49e0,283.85e0/ data (y(i),i= 901, 950)/ + 281.45e0,281.45e0,277.70e0,277.90e0,285.48e0, 1 285.96e0,295.27e0,297.28e0,303.81e0,305.15e0, 2 273.20e0,275.11e0,278.57e0,280.01e0,277.90e0, 3 279.43e0,277.80e0,278.28e0,277.61e0,283.66e0, 4 285.96e0,285.48e0,284.81e0,260.72e0,256.41e0, 5 254.58e0,252.47e0,245.76e0,244.41e0,241.92e0, 6 240.77e0,286.82e0,240.09e0,243.93e0,248.83e0, 7 251.90e0,256.50e0,284.71e0,284.62e0,284.62e0, 8 281.16e0,277.90e0,274.73e0,275.02e0,277.32e0, 9 276.65e0,275.79e0,265.81e0,265.81e0,268.78e0/ data (y(i),i= 951, 1000)/ + 269.93e0,271.57e0,272.91e0,272.91e0,270.80e0, 1 268.88e0,262.64e0,267.63e0,271.76e0,273.58e0, 2 267.15e0,292.68e0,310.14e0,323.09e0,323.57e0, 3 325.20e0,337.10e0,330.00e0, 0.00e0, 0.00e0, 4 0.00e0, 0.00e0, 0.00e0, 0.00e0, 0.00e0, 5 0.00e0, 0.00e0, 0.00e0, 0.00e0, 0.00e0, 6 0.00e0, 0.00e0, 0.00e0, 0.00e0, 0.00e0, 7 0.00e0, 0.00e0, 0.00e0, 0.00e0, 0.00e0, 8 0.00e0, 0.00e0, 0.00e0, 0.00e0, 0.00e0, 9 0.00e0, 0.00e0, 0.00e0, 0.00e0, 0.00e0/ c data (b1(i),i= 1, 100)/ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 3 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 4 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 5 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 6 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 7 71, 72, 73, 74, 75, 78, 79, 80, 82, 83, 8 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 9 94, 95, 96, 97, 98, 99, 100, 101, 102, 103/ data (b1(i),i= 101, 200)/ + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 1 114, 115, 116, 77, 81, 119, 120, 121, 122, 123, 2 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 3 134, 135, 118, 137, 138, 139, 140, 141, 142, 143, 4 144, 145, 146, 147, 148, 149, 118, 151, 78, 77, 5 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 6 163, 164, 165, 166, 167, 1, 76, 169, 170, 171, 7 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 8 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 9 192, 151, 137, 195, 196, 197, 198, 199, 200, 201/ data (b1(i),i= 201, 300)/ + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 1 212, 213, 214, 215, 216, 217, 218, 219, 194, 221, 2 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 3 232, 195, 234, 235, 236, 237, 238, 239, 240, 241, 4 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 5 252, 253, 254, 255, 220, 257, 258, 259, 260, 261, 6 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 7 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 8 82, 283, 284, 285, 286, 287, 288, 289, 290, 291, 9 292, 293, 294, 257, 283, 297, 298, 299, 300, 301/ data (b1(i),i= 301, 400)/ + 296, 304, 305, 306, 307, 308, 309, 310, 311, 312, 1 313, 303, 315, 316, 303, 296, 318, 315, 304, 320, 2 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 3 331, 332, 333, 334, 335, 234, 337, 338, 339, 340, 4 341, 343, 344, 346, 347, 348, 349, 350, 351, 352, 5 353, 354, 355, 356, 357, 358, 359, 360, 342, 343, 6 346, 363, 364, 365, 366, 367, 345, 369, 370, 371, 7 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 8 382, 383, 336, 368, 385, 386, 387, 388, 389, 390, 9 391, 392, 393, 394, 395, 396, 397, 398, 399, 400/ data (b1(i),i= 401, 500)/ + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 1 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 2 421, 422, 423, 424, 425, 426, 362, 1, 77, 428, 3 429, 430, 431, 81, 432, 433, 434, 435, 436, 437, 4 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 5 448, 118, 449, 450, 451, 452, 453, 454, 455, 456, 6 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 7 467, 468, 469, 470, 471, 472, 473, 474, 447, 450, 8 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 9 486, 487, 488, 489, 490, 491, 492, 493, 494, 495/ data (b1(i),i= 501, 600)/ + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 1 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 2 137, 194, 517, 518, 519, 520, 521, 522, 523, 524, 3 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 4 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 5 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 6 555, 492, 220, 557, 558, 559, 560, 561, 562, 563, 7 564, 565, 566, 550, 559, 568, 569, 570, 571, 572, 8 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 9 583, 584, 585, 586, 587, 588, 589, 590, 591, 592/ data (b1(i),i= 601, 700)/ + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 1 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 2 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 3 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 4 633, 634, 635, 636, 637, 638, 639, 640, 234, 574, 5 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 6 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 7 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 8 492, 484, 673, 674, 675, 676, 677, 678, 679, 680, 9 681, 682, 683, 684, 685, 686, 687, 688, 689, 690/ data (b1(i),i= 701, 800)/ + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 1 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 2 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 3 721, 657, 681, 723, 724, 725, 726, 727, 728, 729, 4 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 5 740, 741, 742, 467, 733, 744, 745, 746, 747, 257, 6 682, 749, 750, 751, 752, 753, 754, 755, 756, 757, 7 758, 759, 760, 296, 761, 762, 763, 764, 765, 766, 8 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 9 777, 778, 779, 780, 781, 782, 783, 784, 785, 786/ data (b1(i),i= 801, 900)/ + 787, 788, 789, 790, 791, 792, 793, 794, 795, 657, 1 720, 797, 798, 712, 650, 800, 801, 802, 803, 804, 2 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 3 815, 816, 817, 818, 819, 820, 821, 788, 823, 824, 4 825, 826, 827, 828, 829, 830, 831, 832, 833, 645, 5 808, 589, 835, 836, 837, 838, 839, 840, 841, 842, 6 843, 844, 845, 846, 847, 848, 826, 617, 850, 851, 7 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 8 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 9 872, 873, 874, 875, 876, 877, 878, 879, 880, 881/ data (b1(i),i= 901, 1000)/ + 882, 838, 873, 841, 885, 886, 887, 888, 889, 890, 1 885, 892, 893, 894, 895, 865, 871, 889, 887, 898, 2 892, 892, 900, 901, 902, 903, 904, 905, 906, 907, 3 908, 909, 823, 303, 911, 912, 913, 914, 915, 916, 4 917, 918, 919, 920, 921, 922, 906, 861, 924, 925, 5 926, 927, 928, 929, 930, 931, 768, 932, 336, 933, 6 934, 935, 936, 633, 342, 938, 939, 940, 941, 942, 7 943, 944, 945, 946, 947, 345, 948, 949, 950, 951, 8 952, 953, 954, 955, 956, 957, 958, 959, 960, 635, 9 362, 962, 963, 964, 965, 346, 368, 967, 963, 0/ data (b2(i),i= 1, 100)/ + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 3 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 4 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 5 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 6 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 7 72, 73, 74, 75, 76, 79, 80, 81, 83, 84, 8 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 9 95, 96, 97, 98, 99, 100, 101, 102, 103, 104/ data (b2(i),i= 101, 200)/ + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 1 115, 116, 117, 117, 119, 120, 121, 122, 123, 124, 2 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 3 135, 136, 136, 138, 139, 140, 141, 142, 143, 144, 4 145, 146, 147, 148, 149, 150, 150, 152, 152, 153, 5 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 6 164, 165, 166, 167, 168, 168, 169, 170, 171, 172, 7 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 8 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 9 193, 193, 194, 196, 197, 198, 199, 200, 201, 202/ data (b2(i),i= 201, 300)/ + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 1 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 2 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 3 233, 233, 235, 236, 237, 238, 239, 240, 241, 242, 4 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 5 253, 254, 255, 256, 256, 258, 259, 260, 261, 262, 6 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 7 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 8 282, 284, 285, 286, 287, 288, 289, 290, 291, 292, 9 293, 294, 295, 295, 297, 298, 299, 300, 301, 302/ data (b2(i),i= 301, 400)/ + 302, 305, 306, 307, 308, 309, 310, 311, 312, 313, 1 314, 314, 316, 317, 317, 318, 319, 319, 320, 321, 2 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 3 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 4 342, 344, 345, 347, 348, 349, 350, 351, 352, 353, 5 354, 355, 356, 357, 358, 359, 360, 361, 361, 362, 6 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 7 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 8 383, 384, 384, 385, 386, 387, 388, 389, 390, 391, 9 392, 393, 394, 395, 396, 397, 398, 399, 400, 401/ data (b2(i),i= 401, 500)/ + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 1 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 2 422, 423, 424, 425, 426, 427, 427, 76, 428, 429, 3 430, 431, 78, 432, 433, 434, 435, 436, 437, 438, 4 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 5 82, 449, 450, 451, 452, 453, 454, 455, 456, 457, 6 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 7 468, 469, 470, 471, 472, 473, 474, 475, 475, 476, 8 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 9 487, 488, 489, 490, 491, 492, 493, 494, 495, 496/ data (b2(i),i= 501, 600)/ + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 1 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 2 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 3 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 4 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 5 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 6 556, 556, 557, 558, 559, 560, 561, 562, 563, 564, 7 565, 566, 567, 567, 568, 569, 570, 571, 572, 573, 8 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 9 584, 585, 586, 587, 588, 589, 590, 591, 592, 593/ data (b2(i),i= 601, 700)/ + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 1 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 2 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 3 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 4 634, 635, 636, 637, 638, 639, 640, 641, 641, 642, 5 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 6 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 7 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 8 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 9 682, 683, 684, 685, 686, 687, 688, 689, 690, 691/ data (b2(i),i= 701, 800)/ + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 1 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 2 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 3 722, 722, 723, 724, 725, 726, 727, 728, 729, 730, 4 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 5 741, 742, 743, 743, 744, 745, 746, 747, 748, 748, 6 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 7 759, 760, 283, 761, 762, 763, 764, 765, 766, 767, 8 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 9 778, 779, 780, 781, 782, 783, 784, 785, 786, 787/ data (b2(i),i= 801, 900)/ + 788, 789, 790, 791, 792, 793, 794, 795, 796, 796, 1 797, 798, 799, 799, 800, 801, 802, 803, 804, 805, 2 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 3 816, 817, 818, 819, 820, 821, 822, 822, 824, 825, 4 826, 827, 828, 829, 830, 831, 832, 833, 834, 834, 5 823, 835, 836, 837, 838, 839, 840, 841, 842, 843, 6 844, 845, 846, 847, 848, 849, 849, 850, 851, 852, 7 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 8 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 9 873, 874, 875, 876, 877, 878, 879, 880, 881, 882/ data (b2(i),i= 901, 1000)/ + 883, 883, 884, 884, 886, 887, 888, 889, 890, 891, 1 891, 893, 894, 895, 896, 896, 897, 897, 898, 899, 2 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 3 909, 910, 910, 911, 912, 913, 914, 915, 916, 917, 4 918, 919, 920, 921, 922, 923, 923, 924, 925, 926, 5 927, 928, 929, 930, 931, 304, 932, 315, 933, 934, 6 935, 936, 937, 937, 938, 939, 940, 941, 942, 943, 7 944, 945, 946, 947, 343, 948, 949, 950, 951, 952, 8 953, 954, 955, 956, 957, 958, 959, 960, 961, 961, 9 962, 963, 964, 965, 966, 966, 967, 968, 968, 0/ c sp(2)='mexico' sp(1)='mexico' sp(3)='mexico' sp(4)='mexico' c c istate=0/1 dont use/use the internal edges/vertices that c define state borders c istate=1 c do i=1,nvf vx(i)=x(i) vy(i)=y(i) enddo do i=1,nbf ibndry(1,i)=b1(i) ibndry(2,i)=b2(i) ibndry(3,i)=0 ibndry(4,i)=2 if(i.gt.nbound) ibndry(4,i)=0 ibndry(5,i)=0 ibndry(6,i)=0 enddo c ip(1)=ntf ip(2)=nvf ip(3)=ncf ip(4)=nbf rp(15)=hmax rp(16)=grade if(istate.eq.0) then ip(2)=nbound ip(4)=nbound endif c c make itnode c call sklutl(0,vx,vy,xm,ym,itnode,ibndry,ip,w,iflag) return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine gd20(vx,vy,xm,ym,itnode,ibndry,ip,rp,sp,iu,ru,su,w) c implicit real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*), 1 ratio(5),diam(5),xcen(5),ycen(5),angle(5) character*80 + sp(100),su(100) c save ratio,diam,xcen,ycen,angle save ntf,nvf,ncf,nbf,hmax,grade data hmax,grade/0.1e0,1.75e0/ data ratio/4.0e0,1.0e0,0.2e0,2.0e0,0.7e0/ data diam/4.0e0,3.0e0,4.0e0,2.0e0,4.0e0/ data angle/0.0e0,0.0e0,45.0e0,30.0e0,60.0e0/ data xcen/0.0e0,2.0e0,5.0e0,7.0e0,9.0e0/ data ycen/2.0e0,-1.0e0,3.0e0,-2.0e0,1.5e0/ c sp(2)='ellipse' sp(1)='ellipse' sp(3)='ellipse' sp(4)='ellipse' c ip(1)=0 ip(2)=nvf ip(3)=ncf ip(4)=nbf c nel=5 nn=32 c do i=1,nel-1 ii=i do j=i+1,nel if(xcen(j).lt.xcen(ii)) ii=j if(xcen(j).eq.xcen(ii).and.ycen(j).lt.ycen(ii)) ii=j enddo if(ii.ne.i) then t=xcen(i) xcen(i)=xcen(ii) xcen(ii)=t t=ycen(i) ycen(i)=ycen(ii) ycen(ii)=t t=diam(i) diam(i)=diam(ii) diam(ii)=t t=ratio(i) ratio(i)=ratio(ii) ratio(ii)=t t=angle(i) angle(i)=angle(ii) angle(ii)=t endif enddo c xmin=xcen(1) xmax=xmin ymin=ycen(1) ymax=ymin rmax=0.0e0 do i=1,nel r=diam(i)/2.0e0 xmin=amin1(xcen(i)-r,xmin) xmax=amax1(xcen(i)+r,xmax) ymin=amin1(ycen(i)-r,ymin) ymax=amax1(ycen(i)+r,ymax) rmax=amax1(r,rmax) enddo c nbf=0 nvf=0 nvf=0 c do i=1,nel call ellpse(vx(nvf+1),vy(nvf+1),xm(ncf+1),ym(ncf+1), + ratio(i),angle(i),diam(i),xcen(i),ycen(i),nn) do k=1,nn ibndry(1,nbf+k)=nvf+k ibndry(2,nbf+k)=nvf+k+1 if(k.eq.nn) ibndry(2,nbf+k)=nvf+1 ibndry(3,nbf+k)=ncf+k ibndry(4,nbf+k)=1 ibndry(5,nbf+k)=0 ibndry(6,nbf+k)=-(nbf+k) enddo nvf=nvf+nn nbf=nbf+nn ncf=ncf+nn enddo c vx(nvf+1)=xmin-rmax vy(nvf+1)=ymin-rmax vx(nvf+2)=xmax+rmax vy(nvf+2)=ymin-rmax vx(nvf+3)=xmax+rmax vy(nvf+3)=ymax+rmax vx(nvf+4)=xmin-rmax vy(nvf+4)=ymax+rmax c do i=1,4 ibndry(1,nbf+i)=nvf+i ibndry(2,nbf+i)=nvf+i+1 ibndry(3,nbf+i)=0 ibndry(4,nbf+i)=2 ibndry(5,nbf+i)=0 ibndry(6,nbf+i)=nbf+i enddo ibndry(2,nbf+4)=nvf+1 nvf=nvf+4 nbf=nbf+4 c do i=1,nel+1 do j=1,6 ibndry(j,nbf+i)=0 enddo enddo c ii=nvf-3 i=1 k1=i k2=k1+nn-1 d0=(vx(ii)-vx(i))**2+(vy(ii)-vy(i))**2 do k=k1,k2 dd=(vx(ii)-vx(k))**2+(vy(ii)-vy(k))**2 if(dd.lt.d0) then d0=dd i=k endif enddo ibndry(1,nbf+1)=ii ibndry(2,nbf+1)=i nbf=nbf+1 c do m=1,nel-1 ii=1+(m-1)*nn i=1+m*nn d0=(vx(ii)-vx(i))**2+(vy(ii)-vy(i))**2 do mm=1,2 k1=1+m*nn k2=k1+nn-1 do k=k1,k2 dd=(vx(ii)-vx(k))**2+(vy(ii)-vy(k))**2 if(dd.lt.d0) then d0=dd i=k endif enddo k1=1+(m-1)*nn k2=k1+nn-1 do k=k1,k2 dd=(vx(i)-vx(k))**2+(vy(i)-vy(k))**2 if(dd.lt.d0) then d0=dd ii=k endif enddo enddo ibndry(1,nbf+1)=ii ibndry(2,nbf+1)=i nbf=nbf+1 enddo c ii=nvf-1 i=1+(nel-1)*nn k1=i k2=k1+nn-1 d0=(vx(ii)-vx(i))**2+(vy(ii)-vy(i))**2 do k=k1,k2 dd=(vx(ii)-vx(k))**2+(vy(ii)-vy(k))**2 if(dd.lt.d0) then d0=dd i=k endif enddo ibndry(1,nbf+1)=ii ibndry(2,nbf+1)=i nbf=nbf+1 c ip(1)=2 ip(2)=nvf ip(3)=ncf ip(4)=nbf c c make itnode, find symmetries c call sklutl(0,vx,vy,xm,ym,itnode,ibndry,ip,w,iflag) c return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine ellpse(vx,vy,xm,ym,ratio,angle,diam,xcen,ycen,nn) c implicit real (a-h,o-z) implicit integer (i-n) real + vx(*),vy(*),xm(*),ym(*),x(1025),y(1025) c if(nn.gt.1024) stop 5567 pi=3.141592653589793e0 if(ratio.lt.1.0e0) then rat=1.0e0/ratio ang=(angle+90.0e0)/180.0e0 else rat=ratio ang=angle/180.0e0 endif c c=cos(ang*pi) s=sin(ang*pi) do i=1,2*nn+1 ang=float(i-1)*pi/float(nn) xx=cos(ang)/2.0e0 yy=sin(ang)/(2.0e0*rat) x(i)=(c*xx+s*yy)*diam+xcen y(i)=(c*yy-s*xx)*diam+ycen enddo do i=1,nn ii=2*i vx(i)=x(ii-1) vy(i)=y(ii-1) call centre(x(ii-1),y(ii-1),x(ii+1),y(ii+1), + x(ii),y(ii),xm(i),ym(i)) enddo c return end