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 double precision (a-h,o-z) implicit integer (i-n) c double precision + 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 double precision (a-h,o-z) implicit integer (i-n) c double precision + 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 double precision (a-h,o-z) implicit integer (i-n) c double precision + 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 double precision (a-h,o-z) implicit integer (i-n) c double precision + 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 double precision (a-h,o-z) implicit integer (i-n) c double precision + 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 double precision (a-h,o-z) implicit integer (i-n) c double precision + 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.0d0 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 double precision (a-h,o-z) implicit integer (i-n) c double precision + 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 double precision (a-h,o-z) implicit integer (i-n) c double precision + values(*) common /val3/kf,kf1,kf2,ksk,kad c s=x**2+y**2 values(kf)=dfloat(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 double precision (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) double precision + 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.0d0).or. + (a2u.ne.0.0d0).or.(bux.ne.0.0d0).or. 1 (buy.ne.0.0d0)) ip(8)=0 else if((a1y.eq.a2x).and.(a1u.eq.0.0d0).and. + (a2u.eq.0.0d0).and.(bux.eq.0.0d0).and. 1 (buy.eq.0.0d0)) 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 double precision (a-h,o-z) implicit integer (i-n) double precision + 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=dmin1(xmin,vx(i)) xmax=dmax1(xmax,vx(i)) ymin=dmin1(ymin,vy(i)) ymax=dmax1(ymax,vy(i)) enddo c c compute scaled coordinates c xmid=(xmin+xmax)/2.0d0 ymid=(ymin+ymax)/2.0d0 scale=1.0d0/dmax1(xmax-xmin,ymax-ymin) do i=1,nvf vx(i)=0.5d0+scale*(vx(i)-xmid) vy(i)=0.5d0+scale*(vy(i)-ymid) enddo if(ncf.le.0) return do i=1,ncf xm(i)=0.5d0+scale*(xm(i)-xmid) ym(i)=0.5d0+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 double precision (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) double precision + 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.0d0 enddo ru(1)=1.0d0 ru(5)=1.0d0 ru(9)=1.0d0 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 double precision (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) double precision + 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.2d0, 5.0d0, 5.0d0, 9.0d0, 9.0d0,15.8d0, + 15.9d0,16.0d0,13.0d0, 9.0d0, 6.2d0, 4.0d0/ data y/ 9.7d0, 9.7d0,16.0d0,16.0d0,12.5d0,12.1d0, + 10.2d0, 6.2d0, 0.0d0, 3.2d0, 6.0d0, 6.0d0/ data xc/ 5.1d0,16.9d0,10.6d0,13.3d0, 8.2d0/ data yc/5.35d0, 8.2d0, 1.2d0, 4.2d0, 5.0d0/ data ntf,nvf,ncf,nbf/1,12,5,12/ data hmax,grade/0.1d0,1.5d0/ 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 double precision (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) double precision + 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.1d0,1.5d0/ c sp(2)='doughnut' sp(1)='doughnut' sp(3)='doughnut' sp(4)='doughnut' c pi=3.141592653589793d0 pi4=pi/4.0d0 c do i=1,8 r2=2.0d0 if((i/2)*2.eq.i) r2=4.0d0 r3=3.0d0 if((i/2)*2.eq.i) r3=5.0d0 r4=6.0d0 ang=dfloat(i-1)*pi4 k=(i-1)*4+1 vx(k)=dcos(ang) vy(k)=dsin(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.0d0 ym(1)=0.0d0 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 double precision (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100), 1 b1(35),b2(35),b4(35) double precision + 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.1d0,1.5d0/ data x/ + 0.0d0 , 1.8d0 , 2.4d0 , 2.55d0, 3.15d0, 1 4.05d0, 7.35d0, 7.8d0 , 8.25d0,11.85d0, 2 12.6d0 ,12.75d0,13.2d0 ,15.0d0 ,15.0d0 , 3 12.6d0 ,11.85d0, 8.25d0, 7.8d0 , 7.35d0, 4 3.15d0, 2.55d0, 7.35d0,10.0d0 , 0.0d0 , 5 0.0d0 ,10.0d0 ,15.0d0 , 0.0d0, 15.0d0 / data y/ + -0.11d0,-0.12d0,-0.31d0, 0.25d0, 0.37d0, 1 0.41d0, 0.40d0, 0.21d0,0.185d0, 0.14d0, 2 0.01d0,-0.55d0,-0.39d0,-0.35d0,-0.63d0, 3 -0.63d0,-0.81d0,-0.83d0,-0.8d0 ,-0.58d0, 4 -0.56d0,-0.39d0,-1.5d0 ,-1.5d0 ,-0.39d0, 5 -7.5d0 ,-7.5d0 ,-7.5d0 ,-10.0d0,-10.0d0/ 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.9563d-2 vy(i) = y(i)*2.9563d-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 double precision (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) double precision + 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.1d0,1.5d0/ data (x(i),i=1,40)/ + -8.9154148d0,-8.8847065d0,-8.7270575d0,-8.6780329d0, 1 -8.2763872d0,-7.7589436d0,-7.3399811d0,-7.2064877d0, 2 -6.9871612d0,-6.9190874d0,-6.6594362d0,-6.4705076d0, 3 -6.3982458d0,-6.1776032d0,-5.9683638d0,-6.0500631d0, 4 -6.2751036d0,-6.2083449d0,-6.3593874d0,-6.4379783d0, 5 -6.4389687d0,-6.3308568d0,-5.9216681d0,-5.8853531d0, 6 -5.5306988d0,-5.4571118d0,-5.2776995d0,-4.6882658d0, 7 -4.4325552d0,-3.9867787d0,-3.6232784d0,-3.5156848d0, 8 -3.1151142d0,-2.6031885d0,-2.4201615d0,-2.0576785d0, 9 -1.9469492d0,-1.6564457d0,-1.4385855d0,-1.1857181d0/ data (x(i),i=41,80)/ + -0.8965760d0,-0.4656316d0,-0.0715676d0, 0.3221563d0, 1 0.6089023d0, 0.6092879d0, 0.3942456d0, 0.2866788d0, 2 0.0717038d0, 0.0896864d0, 0.1076576d0,-0.1436793d0, 3 -0.3235837d0,-0.4676923d0,-0.9391942d0,-1.0495193d0, 4 -1.0882363d0,-1.0158452d0,-0.9424102d0,-0.6152380d0, 5 -0.5061946d0,-0.2890742d0,-0.5066670d0,-0.6160022d0, 6 -0.3979720d0,-0.1808403d0, 0.2894343d0, 0.5431103d0, 7 0.9058832d0, 0.9432856d0, 1.0534256d0, 1.1641909d0, 8 1.3109204d0, 1.3117251d0, 1.4214690d0, 1.9317214d0, 9 2.2226055d0, 2.3340521d0, 2.4073553d0, 2.4449496d0/ data (x(i),i=81,120)/ + 2.5909064d0, 2.6249835d0, 2.7343488d0, 2.8454552d0, 1 2.9366469d0, 2.9201944d0, 2.9931922d0, 3.3135431d0, 2 3.3863590d0, 3.9960330d0, 4.0705566d0, 4.6490631d0, 3 4.9039979d0, 5.4495530d0, 5.9850464d0, 6.1653805d0, 4 6.3476152d0, 6.6355958d0, 6.5309086d0, 6.4623699d0, 5 6.4803085d0, 6.4094977d0, 6.4100089d0, 6.4882669d0, 6 6.7068648d0, 6.8546906d0, 6.9296956d0, 7.3625917d0, 7 7.4195042d0, 7.4810257d0, 7.6622000d0, 7.7339420d0, 8 7.6927729d0, 7.6199031d0, 7.5788198d0, 7.4649954d0, 9 7.4604096d0, 7.6668096d0, 7.7709460d0, 7.7298813d0/ data (x(i),i=121,160)/ + 7.6707368d0, 7.6356735d0, 7.6246142d0, 7.5532117d0, 1 7.5280862d0, 7.5345392d0, 7.7131429d0, 7.8603272d0, 2 7.9228745d0, 7.7348900d0, 7.3713822d0, 7.2698317d0, 3 7.1885796d0, 7.1152658d0, 7.0441689d0, 6.9336958d0, 4 6.9676142d0, 7.0648074d0, 7.0897107d0, 7.2917361d0, 5 7.3230152d0, 7.2074218d0, 7.0987911d0, 7.0562592d0, 6 6.8349671d0, 6.5426011d0, 6.3538117d0, 6.6493349d0, 7 6.5385165d0, 6.7052994d0, 6.7009764d0, 5.7441173d0, 8 5.5686946d0, 4.7886071d0, 4.4636817d0, 4.2075763d0, 9 3.6075780d0, 3.3873644d0, 3.2804384d0, 3.1762848d0/ data (x(i),i=161,200)/ + 3.0381961d0, 2.8286881d0, 2.8598070d0, 2.6845531d0, 1 2.5468001d0, 2.4437671d0, 2.3390419d0, 2.1983123d0, 2 2.1616242d0, 2.0918984d0, 2.0235167d0, 1.9540682d0, 3 1.5705080d0, 1.5002116d0, 1.2547448d0, 0.7309650d0, 4 0.4522013d0, 0.1738657d0,-0.0694533d0,-0.1737495d0, 5 -0.2084645d0,-0.3476150d0,-0.4518238d0,-0.5558115d0, 6 -0.5215963d0,-0.5221188d0,-0.4879606d0,-0.2092654d0, 7 -0.2097517d0,-0.5257651d0,-0.5604465d0,-0.7716285d0, 8 -0.9473082d0,-0.9833619d0,-1.1593398d0,-1.2287946d0, 9 -1.1574372d0,-0.6994015d0,-0.5933112d0,-0.6973173d0/ data (x(i),i=201,240)/ + -0.9759166d0,-1.1175557d0,-1.1194069d0,-1.2951661d0, 1 -1.5483098d0,-1.9366363d0,-1.8637764d0,-1.7582839d0, 2 -1.7202965d0,-1.5427314d0,-1.5417155d0,-1.5762336d0, 3 -1.9985176d0,-2.3506579d0,-2.5645144d0,-2.5351899d0, 4 -2.7562921d0,-3.7980607d0,-4.3373508d0,-4.9834948d0, 5 -5.9256530d0,-7.0382285d0,-7.4517045d0,-8.2033901d0, 6 -8.7235365d0,-6.0865688d0,-6.0818601d0,-5.7929716d0, 7 -5.6808643d0,-5.5966616d0,-5.6635571d0,-5.8318772d0, 8 -5.8345900d0,-5.7920160d0,-5.8726344d0,-5.9152017d0, 9 -6.0222359d0,-5.7677011d0,-5.7297702d0,-5.4914570d0/ data (x(i),i=241,280)/ + -5.4498162d0,-5.5318775d0,-5.5335989d0,-5.5683675d0, 1 -5.7324457d0,-5.3444929d0,-5.3193455d0,-5.3166866d0, 2 -5.2924027d0,-5.1911650d0,-5.2196560d0,-5.2257104d0, 3 -5.2706485d0,-2.5904889d0,-2.3756721d0,-2.0900009d0, 4 -1.8405570d0,-1.7340945d0,-1.6276655d0,-1.5563954d0, 5 -1.3075202d0,-0.9532116d0,-0.8828910d0,-0.9185046d0, 6 -1.2022868d0,-1.1676824d0,-1.5239785d0,-1.7011793d0, 7 -1.9150532d0,-2.0937130d0,-2.0588911d0,-1.8814086d0, 8 -2.1664250d0,-2.4524965d0,-2.5231726d0,-2.6285090d0, 9 -0.1743299d0, 0.0348428d0, 0.1393711d0, 0.4880418d0/ data (x(i),i=281,303)/ + 0.6273773d0, 0.7325480d0, 0.8201638d0, 0.6632222d0, 1 0.5583180d0, 0.3839078d0, 0.2267794d0, 0.0349007d0, 2 -0.0349355d0,-0.0174793d0,-0.1048759d0,-0.1745905d0, 3 4.3813114d0, 4.3785076d0, 4.5535316d0, 4.8364964d0, 4 4.9818983d0, 5.0886197d0, 5.1614199d0, 5.1274772d0, 5 4.9866867d0, 4.8814216d0, 4.5964503d0/ data (y(i),i=1,40)/ + 1.6615920d0, 1.5538653d0, 1.4396306d0, 1.3310252d0, 1 1.3642085d0, 1.5521208d0, 1.5866412d0, 1.7400111d0, 2 1.7838988d0, 1.6751018d0, 1.8237880d0, 2.0285108d0, 3 2.0257761d0, 2.1236043d0, 1.9041636d0, 1.6420918d0, 4 1.4382319d0, 1.2768143d0, 1.1233594d0, 0.9672913d0, 5 0.9408290d0, 0.9103191d0, 1.1606956d0, 1.1594465d0, 6 0.8827500d0, 0.9068911d0, 0.8218321d0, 1.0696110d0, 7 1.1157840d0, 1.5284986d0, 1.5733560d0, 1.5181578d0, 8 1.6162773d0, 1.9253443d0, 2.0814581d0, 2.1825509d0, 9 2.3929844d0, 2.6016250d0, 2.8113568d0, 2.9681802d0/ data (y(i),i=41,80)/ + 3.2839699d0, 3.4939342d0, 3.6520867d0, 3.5994537d0, 1 3.4943945d0, 3.3885374d0, 3.3878930d0, 3.4141383d0, 2 3.3345153d0, 3.2286668d0, 3.1757488d0, 3.0169899d0, 3 2.8584538d0, 2.7529347d0, 2.0668111d0, 1.7498742d0, 4 1.3531376d0, 1.3262275d0, 1.4845979d0, 1.7477533d0, 5 1.9061816d0, 2.0115316d0, 1.7473959d0, 1.5360392d0, 6 1.8000363d0, 1.8525960d0, 1.7998173d0, 1.6681145d0, 7 1.5373304d0, 1.3258125d0, 1.1147327d0, 0.8507940d0, 8 0.6930545d0, 0.5871977d0, 0.5351345d0, 0.5400872d0, 9 0.5965222d0, 0.4391798d0, 0.4137156d0, 0.3348350d0/ data (y(i),i=81,120)/ + 0.3369578d0, 0.4962917d0, 0.4979874d0, 0.3938967d0, 1 0.3954205d0, 0.2892562d0, 0.2905022d0, 0.7199108d0, 2 0.7213257d0, 1.1315466d0, 1.0538628d0, 1.1744760d0, 3 1.1550887d0, 1.1450567d0, 1.4278414d0, 1.4607402d0, 4 1.4409063d0, 1.5048352d0, 1.3948027d0, 1.2862027d0, 5 0.8098819d0, 0.7542354d0, 0.7012564d0, 0.5981826d0, 6 0.6065329d0, 0.5593290d0, 0.5093111d0, 0.6332439d0, 7 0.5826584d0, 0.4262426d0, 0.4606821d0, 0.4903887d0, 8 0.5946095d0, 0.5913803d0, 0.6956243d0, 0.7967085d0, 9 0.9025555d0, 1.1767640d0, 1.2875088d0, 1.3917131d0/ data (y(i),i=121,160)/ + 1.4951115d0, 1.4670289d0, 1.3074532d0, 1.2777792d0, 1 1.4357493d0, 1.7011603d0, 1.7621690d0, 1.7158544d0, 2 1.9308907d0, 2.0813403d0, 2.1182086d0, 1.9547751d0, 3 2.1633925d0, 2.1868122d0, 2.1573400d0, 2.2058041d0, 4 2.2602055d0, 2.5292990d0, 2.7954185d0, 3.1221592d0, 5 3.2295635d0, 3.4101255d0, 3.4319942d0, 3.5892427d0, 6 3.7390778d0, 3.8863685d0, 4.1440578d0, 4.7917061d0, 7 4.8932843d0, 5.1650314d0, 5.2708721d0, 5.2345815d0, 8 5.1755509d0, 5.1509480d0, 5.3536510d0, 5.6646352d0, 9 7.1858878d0, 7.6576362d0, 7.7613006d0, 7.7327189d0/ data (y(i),i=161,200)/ + 7.6506119d0, 7.6467633d0, 7.8590922d0, 7.9089847d0, 1 7.8008409d0, 7.6933494d0, 7.6917801d0, 7.7691860d0, 2 7.9010277d0, 7.9000964d0, 7.7933407d0, 7.7660065d0, 3 7.7353015d0, 7.7875576d0, 7.9442315d0, 8.1526823d0, 4 8.2575016d0, 8.3098812d0, 8.5215149d0, 8.4157381d0, 5 8.4422445d0, 8.3630953d0, 8.3898230d0, 8.4695473d0, 6 8.3106441d0, 8.1518583d0, 7.9400339d0, 7.8335662d0, 7 7.4630661d0, 7.0403595d0, 7.1463351d0, 6.9354925d0, 8 6.8835006d0, 6.7249255d0, 6.6731634d0, 6.7795396d0, 9 6.9378047d0, 7.4115276d0, 7.7286749d0, 7.8878837d0/ data (y(i),i=201,240)/ + 7.9422774d0, 7.6256237d0, 7.3609824d0, 7.2564440d0, 1 6.4117608d0, 6.3100700d0, 6.5209551d0, 6.5197735d0, 2 6.7840347d0, 6.9939694d0, 7.0998254d0, 7.1530938d0, 3 6.9989867d0, 6.8978705d0, 6.6893725d0, 6.3183274d0, 4 5.7395725d0, 5.0191441d0, 4.7676754d0, 4.5740476d0, 5 4.1282315d0, 3.1643631d0, 2.7580044d0, 2.1245258d0, 6 1.8639193d0, 1.4314222d0, 1.5637339d0, 1.7391469d0, 7 1.8413432d0, 1.7590827d0, 1.7083083d0, 1.6609927d0, 8 1.5816056d0, 1.5536638d0, 1.5299217d0, 1.5578835d0, 9 1.4026510d0, 1.9502324d0, 2.0019357d0, 2.1000333d0/ data (y(i),i=241,280)/ + 2.0457127d0, 1.9688923d0, 1.9159672d0, 1.9594866d0, 1 1.9225485d0, 2.1748121d0, 2.2852740d0, 2.3699543d0, 2 2.4539566d0, 2.4614151d0, 2.3563406d0, 2.2770641d0, 3 2.2254789d0, 5.0486274d0, 5.1777287d0, 5.3326516d0, 4 5.4619961d0, 5.4872999d0, 5.5126729d0, 5.5649114d0, 5 5.7215257d0, 5.8778610d0, 5.8245349d0, 5.7718015d0, 6 5.6148539d0, 5.5087409d0, 5.2470098d0, 5.2487521d0, 7 5.1452403d0, 5.0415487d0, 4.9881725d0, 4.9860468d0, 8 4.9101486d0, 4.7818141d0, 4.8093510d0, 4.8904085d0, 9 7.8864527d0, 7.9922180d0, 7.9922752d0, 7.9135695d0/ data (y(i),i=281,303)/ + 7.9405222d0, 7.8086476d0, 7.7296796d0, 7.7024851d0, 1 7.7550130d0, 7.7280331d0, 7.7806611d0, 7.7275753d0, 2 7.5687895d0, 7.4629297d0, 7.4629631d0, 7.6482739d0, 3 4.4510627d0, 4.5569129d0, 4.6675730d0, 4.7285905d0, 4 4.6269722d0, 4.6302257d0, 4.5795088d0, 4.5254769d0, 5 4.4681988d0, 4.4120893d0, 4.4039326d0/ 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 double precision (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) double precision + 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.5d0/ 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.d0 vy(1)=2.d0 vx(2)=-2.d0 vy(2)=-2.d0 vx(3)=0.d0 vy(3)=-2.d0 vx(4)=2.d0 vy(4)=-2.d0 vx(5)=2.d0 vy(5)=2.d0 vx(6)=0.d0 vy(6)=2.d0 vx(7)=0.d0 vy(7)=1.d0 vx(8)=-1.d0 vy(8)=0.d0 vx(9)=0.0d0 vy(9)=-1.0d0 vx(10)=1.d0 vy(10)=0.d0 c xm(1)=0.d0 ym(1)=0.d0 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 double precision (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) double precision + 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.9088581d0, -0.2115240d0, 3.0000000d0, 0.0000000d0, 1 -4.0919900d0, -3.1212461d0, -2.4240000d0, -1.1470000d0, 2 -0.5369100d0, 2.0187540d0, 2.7160001d0, 4.3160391d0, 3 3.3551569d0, 2.1120000d0, 1.0151761d0, -0.5109150d0, 4 -1.3640000d0, -2.1440001d0, -2.9284019d0, -3.6108899d0, 5 -4.9742250d0, -4.1352282d0, -3.2990000d0, -0.4100000d0, 6 0.1129340d0, 2.4291310d0, 3.4749999d0, 5.0882888d0, 7 4.5282569d0, 2.8659999d0, 2.2388289d0, 0.1792850d0, 8 -0.8660000d0, -3.1520000d0, -3.8492460d0, -4.6628761d0, 9 -5.5230289d0, -4.4090900d0, -3.7990000d0, -0.0510000d0/ data (x(i),i=41,80)/ + 0.5761710d0, 2.4727149d0, 3.5179999d0, 5.6014829d0, 1 5.2477179d0, 3.4890001d0, 2.4437151d0, 0.5216990d0, 2 -0.2100000d0, -3.6550000d0, -4.5265570d0, -5.3460388d0, 3 -5.8688860d0, -4.8302279d0, -3.9940000d0, -0.1400000d0, 4 0.6444020d0, 2.7805979d0, 3.5650001d0, 5.8897629d0, 5 5.6731110d0, 3.6570001d0, 2.7162440d0, 0.5342280d0, 6 -0.3020000d0, -3.9630001d0, -4.6602459d0, -5.7378292d0, 7 -5.9963450d0, -4.5582852d0, -3.5130000d0, -0.4560000d0, 8 0.3284020d0, 5.9990859d0, 5.9261298d0, 0.5425570d0, 9 -0.3290000d0, -3.7790000d0, -4.6505570d0, -5.9552770d0/ data (x(i),i=81,120)/ + -5.9416080d0, -4.1115570d0, -3.2400000d0, -0.7110000d0, 1 -0.0137540d0, 2.1172869d0, 3.0760000d0, 5.9416080d0, 2 5.9990859d0, 3.5500000d0, 2.6784430d0, -0.1595980d0, 3 -0.9440000d0, -3.2820001d0, -3.9795649d0, -5.9963450d0, 4 -5.7063389d0, -3.0675910d0, -1.1144090d0, 1.3666790d0, 5 2.1340001d0, 5.7063389d0, 5.8897629d0, 2.8210001d0, 6 2.2629480d0, -1.0966530d0, -3.4503360d0, -5.8897629d0, 7 -5.2477179d0, -2.6954920d0, -1.6485080d0, 0.7010050d0, 8 1.0500000d0, 5.2477179d0, 5.6014829d0, 1.9870000d0, 9 1.4635080d0, -1.5375080d0, -2.5844920d0, -5.6014829d0/ data (x(i),i=121,135)/ + -4.5282569d0, 4.5282569d0, 5.0882888d0, -5.0882888d0, 1 -3.3551569d0, 3.3551569d0, 4.3160391d0, -4.3160391d0, 2 -3.0000000d0, 3.0000000d0, 0.0000000d0, 0.0000000d0, 3 40.0000000d0, 0.0000000d0,-40.0000000d0/ data (y(i),i=1,40)/ + 5.2477179d0, 5.2805071d0, 5.1961522d0, 6.0000000d0, 1 4.3881221d0, 4.4595580d0, 4.4899998d0, 4.4899998d0, 2 4.4633632d0, 4.2354422d0, 4.2049999d0, 4.1679502d0, 3 4.9742250d0, 4.9850001d0, 4.9179149d0, 4.7371769d0, 4 4.6849999d0, 4.6849999d0, 4.7192478d0, 4.7918129d0, 5 3.3551569d0, 3.4211750d0, 3.4649999d0, 3.4649999d0, 6 3.4421680d0, 3.2256639d0, 3.1800001d0, 3.1795161d0, 7 3.9363539d0, 3.9600000d0, 3.9271309d0, 3.7097809d0, 8 3.6550000d0, 3.6550000d0, 3.6854420d0, 3.7759221d0, 9 2.3443871d0, 2.4183631d0, 2.4449999d0, 2.4449999d0/ data (y(i),i=41,80)/ + 2.4121311d0, 2.2247810d0, 2.1700001d0, 2.1502080d0, 1 2.9088581d0, 2.9500000d0, 2.8952191d0, 2.6783471d0, 2 2.6400001d0, 2.6400001d0, 2.6780529d0, 2.7239430d0, 3 1.2474700d0, 1.3811750d0, 1.4250000d0, 1.4250000d0, 4 1.3907520d0, 1.1892480d0, 1.1550000d0, 1.1448539d0, 5 1.9534090d0, 1.9349999d0, 1.8856970d0, 1.6688250d0, 6 1.6250000d0, 1.6250000d0, 1.6554420d0, 1.7542300d0, 7 0.2093970d0, 0.3702190d0, 0.4250000d0, 0.4250000d0, 8 0.3907520d0, 0.1047140d0, 0.9386070d0, 0.6630530d0, 9 0.6250000d0, 0.6250000d0, 0.6630530d0, 0.7312160d0/ data (y(i),i=81,120)/ + -0.8350390d0, -0.6480530d0, -0.6100000d0, -0.6100000d0, 1 -0.6404420d0, -0.8331420d0, -0.8750000d0, -0.8350390d0, 2 -0.1047140d0, -0.0950000d0, -0.1330530d0, -0.3657520d0, 3 -0.4000000d0, -0.4000000d0, -0.3756410d0, -0.2093970d0, 4 -1.8541020d0, -1.6861030d0, -1.6861030d0, -1.8732049d0, 5 -1.9000000d0, -1.8541020d0, -1.1448539d0, -1.1200000d0, 6 -1.1394880d0, -1.3924609d0, -1.3719200d0, -1.1448539d0, 7 -2.9088581d0, -2.8201380d0, -2.8201380d0, -2.9089079d0, 8 -2.9150000d0, -2.9088581d0, -2.1502080d0, -2.1350000d0, 9 -2.1441381d0, -2.2548621d0, -2.2548621d0, -2.1502080d0/ data (y(i),i=121,135)/ + -3.9363539d0, -3.9363539d0, -3.1795161d0, -3.1795161d0, 1 -4.9742250d0, -4.9742250d0, -4.1679502d0, -4.1679502d0, 2 -5.1961522d0, -5.1961522d0, -6.0000000d0, 40.0000000d0, 3 0.0000000d0,-40.0000000d0, 0.0000000d0/ data (xp(i),i=1,40)/ + -1.5328120d0, 1.5529140d0, -1.5022800d0, -2.7729549d0, 1 -0.8416640d0, 2.3670449d0, 3.8567259d0, 1.5625629d0, 2 -0.9366600d0, -2.5365739d0, -3.8567259d0, -3.7176881d0, 3 -0.1482840d0, 2.9515669d0, 4.8231411d0, 2.5519841d0, 4 -0.3426400d0, -3.5009551d0, -4.8231411d0, -4.1043358d0, 5 0.2630160d0, 2.9946401d0, 5.4378471d0, 2.9656401d0, 6 0.1563520d0, -4.0911942d0, -5.4378471d0, -4.4126878d0, 7 0.2525740d0, 3.1724260d0, 5.7955551d0, 3.1859760d0, 8 0.1166880d0, -4.3119550d0, -5.8088861d0, -4.0363598d0, 9 -0.0634260d0, 5.9771681d0, 0.1071940d0, -4.2151942d0/ data (xp(i),i=41,80)/ + -5.9815040d0, -3.6761940d0, -0.3620450d0, 2.5961871d0, 1 5.9815040d0, 3.1138060d0, -0.5514260d0, -3.6309950d0, 2 -5.9771681d0, -2.0910001d0, 1.7501060d0, 5.8088861d0, 3 2.5418041d0, -2.2738979d0, -5.8088861d0, -2.1719999d0, 4 0.8754760d0, 5.4378471d0, 1.7252140d0, -2.0610001d0, 5 -5.4378471d0, 4.8231411d0, -4.8231411d0, 3.8567259d0, 6 -3.8567259d0, 1.5529140d0, -1.5529140d0, 3.1795161d0, 7 -3.2678339d0, 4.4236641d0, -4.3881221d0, 5.1697750d0, 8 -5.1697750d0, 5.6381559d0, -5.6381559d0, 5.9088469d0, 9 -5.9177141d0, 6.0000000d0, -6.0000000d0, 5.9177141d0/ data (xp(i),i=81,93)/ + -5.9177141d0, 5.6558490d0, -5.6558490d0, 5.1697750d0, 1 -5.1697750d0, 4.4236641d0, -4.4236641d0, 3.1795161d0, 2 -3.1795161d0, 28.2842712d0, 28.2842712d0,-28.2842712d0, 3 -28.2842712d0/ data (yp(i),i=1,40)/ + 5.3786950d0, 5.7955551d0, 5.8088861d0, 4.4823861d0, 1 4.4833379d0, 4.2126141d0, 4.5962672d0, 4.9682131d0, 2 4.6980562d0, 4.6935658d0, 4.5962672d0, 3.4540360d0, 3 3.4592891d0, 3.1914210d0, 3.5689371d0, 3.9517770d0, 4 3.6687050d0, 3.6626141d0, 3.5689371d0, 2.4383380d0, 5 2.4367771d0, 2.1837051d0, 2.5357101d0, 2.9362950d0, 6 2.6495931d0, 2.6495180d0, 2.5357101d0, 1.4140360d0, 7 1.4164340d0, 1.1635660d0, 1.5529140d0, 1.9226660d0, 8 1.6359640d0, 1.6326140d0, 1.5022800d0, 0.4112950d0, 9 0.4164340d0, 0.5229340d0, 0.6345180d0, 0.6345180d0/ data (yp(i),i=41,80)/ + 0.4707550d0, -0.6195180d0, -0.6176140d0, -0.8645300d0, 1 -0.4707550d0, -0.1045180d0, -0.3914340d0, -0.3939080d0, 2 -0.5229340d0, -1.6520000d0, -1.8932990d0, -1.5022800d0, 3 -1.1248730d0, -1.4284290d0, -1.5022800d0, -2.8110001d0, 4 -2.9134769d0, -2.5357101d0, -2.1372850d0, -2.2639999d0, 5 -2.5357101d0, -3.5689371d0, -3.5689371d0, -4.5962672d0, 6 -4.5962672d0, -5.7955551d0, -5.7955551d0, 5.0882888d0, 7 5.0320230d0, 4.0535412d0, 4.0919900d0, 3.0452299d0, 8 3.0452299d0, 2.0521209d0, 2.0521209d0, 1.0418890d0, 9 0.9902860d0, 0.0000000d0, 0.0000000d0, -0.9902860d0/ data (yp(i),i=81,93)/ + -0.9902860d0, -2.0028410d0, -2.0028410d0, -3.0452299d0, 1 -3.0452299d0, -4.0535412d0, -4.0535412d0, -5.0882888d0, 2 -5.0882888d0, 28.2842712d0,-28.2842712d0,-28.2842712d0, 3 28.2842712d0/ 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.05d0,1.5d0/ 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 double precision (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) double precision + 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.1d0,1.5d0/ c data vxp( 1),vyp( 1)/ 0.882d+00, 0.100d+01/ data vxp( 2),vyp( 2)/ 0.803d+00, 0.100d+01/ data vxp( 3),vyp( 3)/ 0.000d+00, 0.100d+01/ data vxp( 4),vyp( 4)/ 0.000d+00, 0.000d+00/ data vxp( 5),vyp( 5)/ 0.126d+00, 0.000d+00/ data vxp( 6),vyp( 6)/ 0.351d+00, 0.000d+00/ data vxp( 7),vyp( 7)/ 0.353d+00, 0.900d-02/ data vxp( 8),vyp( 8)/ 0.381d+00, 0.120d-01/ data vxp( 9),vyp( 9)/ 0.384d+00, 0.240d-01/ data vxp( 10),vyp( 10)/ 0.378d+00, 0.300d-01/ data vxp( 11),vyp( 11)/ 0.364d+00, 0.420d-01/ data vxp( 12),vyp( 12)/ 0.370d+00, 0.520d-01/ data vxp( 13),vyp( 13)/ 0.386d+00, 0.700d-01/ data vxp( 14),vyp( 14)/ 0.395d+00, 0.820d-01/ data vxp( 15),vyp( 15)/ 0.414d+00, 0.970d-01/ data vxp( 16),vyp( 16)/ 0.427d+00, 0.106d+00/ data vxp( 17),vyp( 17)/ 0.444d+00, 0.109d+00/ data vxp( 18),vyp( 18)/ 0.460d+00, 0.112d+00/ data vxp( 19),vyp( 19)/ 0.468d+00, 0.109d+00/ data vxp( 20),vyp( 20)/ 0.471d+00, 0.112d+00/ data vxp( 21),vyp( 21)/ 0.496d+00, 0.112d+00/ data vxp( 22),vyp( 22)/ 0.504d+00, 0.106d+00/ data vxp( 23),vyp( 23)/ 0.521d+00, 0.106d+00/ data vxp( 24),vyp( 24)/ 0.532d+00, 0.109d+00/ data vxp( 25),vyp( 25)/ 0.542d+00, 0.121d+00/ data vxp( 26),vyp( 26)/ 0.553d+00, 0.124d+00/ data vxp( 27),vyp( 27)/ 0.589d+00, 0.124d+00/ data vxp( 28),vyp( 28)/ 0.600d+00, 0.127d+00/ data vxp( 29),vyp( 29)/ 0.603d+00, 0.130d+00/ data vxp( 30),vyp( 30)/ 0.619d+00, 0.127d+00/ data vxp( 31),vyp( 31)/ 0.625d+00, 0.136d+00/ data vxp( 32),vyp( 32)/ 0.652d+00, 0.136d+00/ data vxp( 33),vyp( 33)/ 0.655d+00, 0.130d+00/ data vxp( 34),vyp( 34)/ 0.668d+00, 0.127d+00/ data vxp( 35),vyp( 35)/ 0.682d+00, 0.124d+00/ data vxp( 36),vyp( 36)/ 0.677d+00, 0.115d+00/ data vxp( 37),vyp( 37)/ 0.677d+00, 0.100d+00/ data vxp( 38),vyp( 38)/ 0.682d+00, 0.880d-01/ data vxp( 39),vyp( 39)/ 0.688d+00, 0.850d-01/ data vxp( 40),vyp( 40)/ 0.699d+00, 0.820d-01/ data vxp( 41),vyp( 41)/ 0.704d+00, 0.700d-01/ data vxp( 42),vyp( 42)/ 0.712d+00, 0.550d-01/ data vxp( 43),vyp( 43)/ 0.718d+00, 0.480d-01/ data vxp( 44),vyp( 44)/ 0.723d+00, 0.330d-01/ data vxp( 45),vyp( 45)/ 0.726d+00, 0.210d-01/ data vxp( 46),vyp( 46)/ 0.721d+00, 0.150d-01/ data vxp( 47),vyp( 47)/ 0.712d+00, 0.120d-01/ data vxp( 48),vyp( 48)/ 0.704d+00, 0.000d+00/ data vxp( 49),vyp( 49)/ 0.781d+00, 0.000d+00/ data vxp( 50),vyp( 50)/ 0.781d+00, 0.900d-02/ data vxp( 51),vyp( 51)/ 0.770d+00, 0.900d-02/ data vxp( 52),vyp( 52)/ 0.756d+00, 0.120d-01/ data vxp( 53),vyp( 53)/ 0.748d+00, 0.120d-01/ data vxp( 54),vyp( 54)/ 0.748d+00, 0.240d-01/ data vxp( 55),vyp( 55)/ 0.742d+00, 0.360d-01/ data vxp( 56),vyp( 56)/ 0.753d+00, 0.450d-01/ data vxp( 57),vyp( 57)/ 0.756d+00, 0.580d-01/ data vxp( 58),vyp( 58)/ 0.764d+00, 0.670d-01/ data vxp( 59),vyp( 59)/ 0.775d+00, 0.700d-01/ data vxp( 60),vyp( 60)/ 0.784d+00, 0.640d-01/ data vxp( 61),vyp( 61)/ 0.789d+00, 0.580d-01/ data vxp( 62),vyp( 62)/ 0.797d+00, 0.480d-01/ data vxp( 63),vyp( 63)/ 0.805d+00, 0.390d-01/ data vxp( 64),vyp( 64)/ 0.819d+00, 0.330d-01/ data vxp( 65),vyp( 65)/ 0.830d+00, 0.300d-01/ data vxp( 66),vyp( 66)/ 0.844d+00, 0.240d-01/ data vxp( 67),vyp( 67)/ 0.852d+00, 0.210d-01/ data vxp( 68),vyp( 68)/ 0.849d+00, 0.150d-01/ data vxp( 69),vyp( 69)/ 0.841d+00, 0.000d+00/ data vxp( 70),vyp( 70)/ 0.860d+00, 0.000d+00/ data vxp( 71),vyp( 71)/ 0.863d+00, 0.120d-01/ data vxp( 72),vyp( 72)/ 0.863d+00, 0.180d-01/ data vxp( 73),vyp( 73)/ 0.858d+00, 0.270d-01/ data vxp( 74),vyp( 74)/ 0.852d+00, 0.450d-01/ data vxp( 75),vyp( 75)/ 0.841d+00, 0.670d-01/ data vxp( 76),vyp( 76)/ 0.833d+00, 0.790d-01/ data vxp( 77),vyp( 77)/ 0.830d+00, 0.910d-01/ data vxp( 78),vyp( 78)/ 0.830d+00, 0.103d+00/ data vxp( 79),vyp( 79)/ 0.830d+00, 0.118d+00/ data vxp( 80),vyp( 80)/ 0.836d+00, 0.133d+00/ data vxp( 81),vyp( 81)/ 0.841d+00, 0.145d+00/ data vxp( 82),vyp( 82)/ 0.847d+00, 0.158d+00/ data vxp( 83),vyp( 83)/ 0.852d+00, 0.176d+00/ data vxp( 84),vyp( 84)/ 0.852d+00, 0.194d+00/ data vxp( 85),vyp( 85)/ 0.852d+00, 0.206d+00/ data vxp( 86),vyp( 86)/ 0.863d+00, 0.215d+00/ data vxp( 87),vyp( 87)/ 0.871d+00, 0.227d+00/ data vxp( 88),vyp( 88)/ 0.877d+00, 0.233d+00/ data vxp( 89),vyp( 89)/ 0.888d+00, 0.239d+00/ data vxp( 90),vyp( 90)/ 0.896d+00, 0.239d+00/ data vxp( 91),vyp( 91)/ 0.907d+00, 0.230d+00/ data vxp( 92),vyp( 92)/ 0.915d+00, 0.221d+00/ data vxp( 93),vyp( 93)/ 0.926d+00, 0.212d+00/ data vxp( 94),vyp( 94)/ 0.932d+00, 0.197d+00/ data vxp( 95),vyp( 95)/ 0.948d+00, 0.197d+00/ data vxp( 96),vyp( 96)/ 0.959d+00, 0.200d+00/ data vxp( 97),vyp( 97)/ 0.973d+00, 0.203d+00/ data vxp( 98),vyp( 98)/ 0.984d+00, 0.206d+00/ data vxp( 99),vyp( 99)/ 0.989d+00, 0.206d+00/ data vxp(100),vyp(100)/ 0.100d+01, 0.206d+00/ data vxp(101),vyp(101)/ 0.100d+01, 0.242d+00/ data vxp(102),vyp(102)/ 0.989d+00, 0.248d+00/ data vxp(103),vyp(103)/ 0.984d+00, 0.258d+00/ data vxp(104),vyp(104)/ 0.978d+00, 0.258d+00/ data vxp(105),vyp(105)/ 0.973d+00, 0.267d+00/ data vxp(106),vyp(106)/ 0.970d+00, 0.270d+00/ data vxp(107),vyp(107)/ 0.970d+00, 0.276d+00/ data vxp(108),vyp(108)/ 0.970d+00, 0.282d+00/ data vxp(109),vyp(109)/ 0.964d+00, 0.288d+00/ data vxp(110),vyp(110)/ 0.964d+00, 0.297d+00/ data vxp(111),vyp(111)/ 0.959d+00, 0.303d+00/ data vxp(112),vyp(112)/ 0.953d+00, 0.312d+00/ data vxp(113),vyp(113)/ 0.951d+00, 0.321d+00/ data vxp(114),vyp(114)/ 0.948d+00, 0.327d+00/ data vxp(115),vyp(115)/ 0.953d+00, 0.333d+00/ data vxp(116),vyp(116)/ 0.967d+00, 0.336d+00/ data vxp(117),vyp(117)/ 0.973d+00, 0.333d+00/ data vxp(118),vyp(118)/ 0.978d+00, 0.330d+00/ data vxp(119),vyp(119)/ 0.984d+00, 0.327d+00/ data vxp(120),vyp(120)/ 0.986d+00, 0.330d+00/ data vxp(121),vyp(121)/ 0.992d+00, 0.333d+00/ data vxp(122),vyp(122)/ 0.995d+00, 0.336d+00/ data vxp(123),vyp(123)/ 0.992d+00, 0.358d+00/ data vxp(124),vyp(124)/ 0.986d+00, 0.364d+00/ data vxp(125),vyp(125)/ 0.986d+00, 0.370d+00/ data vxp(126),vyp(126)/ 0.984d+00, 0.376d+00/ data vxp(127),vyp(127)/ 0.981d+00, 0.379d+00/ data vxp(128),vyp(128)/ 0.978d+00, 0.388d+00/ data vxp(129),vyp(129)/ 0.978d+00, 0.394d+00/ data vxp(130),vyp(130)/ 0.970d+00, 0.394d+00/ data vxp(131),vyp(131)/ 0.964d+00, 0.391d+00/ data vxp(132),vyp(132)/ 0.956d+00, 0.391d+00/ data vxp(133),vyp(133)/ 0.951d+00, 0.394d+00/ data vxp(134),vyp(134)/ 0.948d+00, 0.397d+00/ data vxp(135),vyp(135)/ 0.945d+00, 0.403d+00/ data vxp(136),vyp(136)/ 0.942d+00, 0.409d+00/ data vxp(137),vyp(137)/ 0.942d+00, 0.415d+00/ data vxp(138),vyp(138)/ 0.940d+00, 0.418d+00/ data vxp(139),vyp(139)/ 0.940d+00, 0.430d+00/ data vxp(140),vyp(140)/ 0.942d+00, 0.439d+00/ data vxp(141),vyp(141)/ 0.948d+00, 0.445d+00/ data vxp(142),vyp(142)/ 0.948d+00, 0.461d+00/ data vxp(143),vyp(143)/ 0.948d+00, 0.470d+00/ data vxp(144),vyp(144)/ 0.948d+00, 0.488d+00/ data vxp(145),vyp(145)/ 0.942d+00, 0.491d+00/ data vxp(146),vyp(146)/ 0.937d+00, 0.491d+00/ data vxp(147),vyp(147)/ 0.932d+00, 0.488d+00/ data vxp(148),vyp(148)/ 0.926d+00, 0.488d+00/ data vxp(149),vyp(149)/ 0.923d+00, 0.491d+00/ data vxp(150),vyp(150)/ 0.915d+00, 0.494d+00/ data vxp(151),vyp(151)/ 0.910d+00, 0.494d+00/ data vxp(152),vyp(152)/ 0.901d+00, 0.491d+00/ data vxp(153),vyp(153)/ 0.899d+00, 0.488d+00/ data vxp(154),vyp(154)/ 0.893d+00, 0.479d+00/ data vxp(155),vyp(155)/ 0.888d+00, 0.479d+00/ data vxp(156),vyp(156)/ 0.879d+00, 0.485d+00/ data vxp(157),vyp(157)/ 0.871d+00, 0.494d+00/ data vxp(158),vyp(158)/ 0.868d+00, 0.506d+00/ data vxp(159),vyp(159)/ 0.866d+00, 0.518d+00/ data vxp(160),vyp(160)/ 0.866d+00, 0.524d+00/ data vxp(161),vyp(161)/ 0.877d+00, 0.524d+00/ data vxp(162),vyp(162)/ 0.882d+00, 0.527d+00/ data vxp(163),vyp(163)/ 0.893d+00, 0.530d+00/ data vxp(164),vyp(164)/ 0.896d+00, 0.533d+00/ data vxp(165),vyp(165)/ 0.893d+00, 0.539d+00/ data vxp(166),vyp(166)/ 0.888d+00, 0.542d+00/ data vxp(167),vyp(167)/ 0.882d+00, 0.542d+00/ data vxp(168),vyp(168)/ 0.879d+00, 0.552d+00/ data vxp(169),vyp(169)/ 0.888d+00, 0.558d+00/ data vxp(170),vyp(170)/ 0.896d+00, 0.564d+00/ data vxp(171),vyp(171)/ 0.907d+00, 0.564d+00/ data vxp(172),vyp(172)/ 0.921d+00, 0.567d+00/ data vxp(173),vyp(173)/ 0.929d+00, 0.570d+00/ data vxp(174),vyp(174)/ 0.937d+00, 0.573d+00/ data vxp(175),vyp(175)/ 0.945d+00, 0.567d+00/ data vxp(176),vyp(176)/ 0.953d+00, 0.567d+00/ data vxp(177),vyp(177)/ 0.962d+00, 0.567d+00/ data vxp(178),vyp(178)/ 0.967d+00, 0.573d+00/ data vxp(179),vyp(179)/ 0.978d+00, 0.588d+00/ data vxp(180),vyp(180)/ 0.984d+00, 0.591d+00/ data vxp(181),vyp(181)/ 0.989d+00, 0.597d+00/ data vxp(182),vyp(182)/ 0.992d+00, 0.597d+00/ data vxp(183),vyp(183)/ 0.100d+01, 0.594d+00/ data vxp(184),vyp(184)/ 0.100d+01, 0.642d+00/ data vxp(185),vyp(185)/ 0.986d+00, 0.652d+00/ data vxp(186),vyp(186)/ 0.981d+00, 0.661d+00/ data vxp(187),vyp(187)/ 0.973d+00, 0.664d+00/ data vxp(188),vyp(188)/ 0.970d+00, 0.670d+00/ data vxp(189),vyp(189)/ 0.964d+00, 0.685d+00/ data vxp(190),vyp(190)/ 0.964d+00, 0.691d+00/ data vxp(191),vyp(191)/ 0.956d+00, 0.691d+00/ data vxp(192),vyp(192)/ 0.945d+00, 0.691d+00/ data vxp(193),vyp(193)/ 0.951d+00, 0.697d+00/ data vxp(194),vyp(194)/ 0.948d+00, 0.709d+00/ data vxp(195),vyp(195)/ 0.942d+00, 0.721d+00/ data vxp(196),vyp(196)/ 0.940d+00, 0.724d+00/ data vxp(197),vyp(197)/ 0.932d+00, 0.730d+00/ data vxp(198),vyp(198)/ 0.921d+00, 0.739d+00/ data vxp(199),vyp(199)/ 0.918d+00, 0.758d+00/ data vxp(200),vyp(200)/ 0.899d+00, 0.767d+00/ data vxp(201),vyp(201)/ 0.899d+00, 0.773d+00/ data vxp(202),vyp(202)/ 0.904d+00, 0.779d+00/ data vxp(203),vyp(203)/ 0.901d+00, 0.788d+00/ data vxp(204),vyp(204)/ 0.901d+00, 0.797d+00/ data vxp(205),vyp(205)/ 0.896d+00, 0.812d+00/ data vxp(206),vyp(206)/ 0.888d+00, 0.815d+00/ data vxp(207),vyp(207)/ 0.888d+00, 0.824d+00/ data vxp(208),vyp(208)/ 0.874d+00, 0.842d+00/ data vxp(209),vyp(209)/ 0.871d+00, 0.848d+00/ data vxp(210),vyp(210)/ 0.874d+00, 0.852d+00/ data vxp(211),vyp(211)/ 0.874d+00, 0.870d+00/ data vxp(212),vyp(212)/ 0.882d+00, 0.873d+00/ data vxp(213),vyp(213)/ 0.885d+00, 0.879d+00/ data vxp(214),vyp(214)/ 0.885d+00, 0.885d+00/ data vxp(215),vyp(215)/ 0.890d+00, 0.885d+00/ data vxp(216),vyp(216)/ 0.888d+00, 0.915d+00/ data vxp(217),vyp(217)/ 0.893d+00, 0.915d+00/ data vxp(218),vyp(218)/ 0.893d+00, 0.930d+00/ data vxp(219),vyp(219)/ 0.877d+00, 0.961d+00/ data vxp(220),vyp(220)/ 0.879d+00, 0.970d+00/ data vxp(221),vyp(221)/ 0.882d+00, 0.970d+00/ data vxp(222),vyp(222)/ 0.901d+00, 0.655d+00/ data vxp(223),vyp(223)/ 0.901d+00, 0.642d+00/ data vxp(224),vyp(224)/ 0.893d+00, 0.621d+00/ data vxp(225),vyp(225)/ 0.885d+00, 0.618d+00/ data vxp(226),vyp(226)/ 0.874d+00, 0.618d+00/ data vxp(227),vyp(227)/ 0.866d+00, 0.630d+00/ data vxp(228),vyp(228)/ 0.866d+00, 0.648d+00/ data vxp(229),vyp(229)/ 0.877d+00, 0.648d+00/ data vxp(230),vyp(230)/ 0.882d+00, 0.658d+00/ data vxp(231),vyp(231)/ 0.901d+00, 0.661d+00/ data vxp(232),vyp(232)/ 0.896d+00, 0.358d+00/ data vxp(233),vyp(233)/ 0.896d+00, 0.345d+00/ data vxp(234),vyp(234)/ 0.901d+00, 0.333d+00/ data vxp(235),vyp(235)/ 0.890d+00, 0.352d+00/ data vxp(236),vyp(236)/ 0.819d+00, 0.285d+00/ data vxp(237),vyp(237)/ 0.808d+00, 0.276d+00/ data vxp(238),vyp(238)/ 0.805d+00, 0.282d+00/ data vxp(239),vyp(239)/ 0.814d+00, 0.291d+00/ data vxp(240),vyp(240)/ 0.841d+00, 0.264d+00/ data vxp(241),vyp(241)/ 0.841d+00, 0.258d+00/ data vxp(242),vyp(242)/ 0.830d+00, 0.255d+00/ data vxp(243),vyp(243)/ 0.833d+00, 0.267d+00/ data vxp(244),vyp(244)/ 0.789d+00, 0.209d+00/ data vxp(245),vyp(245)/ 0.797d+00, 0.209d+00/ data vxp(246),vyp(246)/ 0.795d+00, 0.206d+00/ data vxp(247),vyp(247)/ 0.795d+00, 0.197d+00/ data vxp(248),vyp(248)/ 0.784d+00, 0.200d+00/ data vxp(249),vyp(249)/ 0.789d+00, 0.212d+00/ data vxp(250),vyp(250)/ 0.726d+00, 0.142d+00/ data vxp(251),vyp(251)/ 0.729d+00, 0.136d+00/ data vxp(252),vyp(252)/ 0.721d+00, 0.136d+00/ data vxp(253),vyp(253)/ 0.718d+00, 0.127d+00/ data vxp(254),vyp(254)/ 0.710d+00, 0.127d+00/ data vxp(255),vyp(255)/ 0.710d+00, 0.136d+00/ data vxp(256),vyp(256)/ 0.721d+00, 0.145d+00/ data vxp(257),vyp(257)/ 0.636d+00, 0.179d+00/ data vxp(258),vyp(258)/ 0.655d+00, 0.173d+00/ data vxp(259),vyp(259)/ 0.633d+00, 0.176d+00/ data vxp(260),vyp(260)/ 0.622d+00, 0.170d+00/ data vxp(261),vyp(261)/ 0.616d+00, 0.179d+00/ data vxp(262),vyp(262)/ 0.625d+00, 0.182d+00/ data vxp(263),vyp(263)/ 0.592d+00, 0.173d+00/ data vxp(264),vyp(264)/ 0.605d+00, 0.170d+00/ data vxp(265),vyp(265)/ 0.584d+00, 0.158d+00/ data vxp(266),vyp(266)/ 0.575d+00, 0.158d+00/ data vxp(267),vyp(267)/ 0.573d+00, 0.161d+00/ data vxp(268),vyp(268)/ 0.564d+00, 0.158d+00/ data vxp(269),vyp(269)/ 0.562d+00, 0.155d+00/ data vxp(270),vyp(270)/ 0.559d+00, 0.155d+00/ data vxp(271),vyp(271)/ 0.559d+00, 0.161d+00/ data vxp(272),vyp(272)/ 0.567d+00, 0.173d+00/ data vxp(273),vyp(273)/ 0.490d+00, 0.145d+00/ data vxp(274),vyp(274)/ 0.496d+00, 0.155d+00/ data vxp(275),vyp(275)/ 0.537d+00, 0.158d+00/ data vxp(276),vyp(276)/ 0.542d+00, 0.148d+00/ data vxp(277),vyp(277)/ 0.537d+00, 0.148d+00/ data vxp(278),vyp(278)/ 0.529d+00, 0.152d+00/ data vxp(279),vyp(279)/ 0.518d+00, 0.152d+00/ data vxp(280),vyp(280)/ 0.518d+00, 0.148d+00/ data vxp(281),vyp(281)/ 0.504d+00, 0.152d+00/ data vxp(282),vyp(282)/ 0.504d+00, 0.139d+00/ data vxp(283),vyp(283)/ 0.490d+00, 0.136d+00/ data vxp(284),vyp(284)/ 0.477d+00, 0.142d+00/ data vxp(285),vyp(285)/ 0.482d+00, 0.133d+00/ data vxp(286),vyp(286)/ 0.468d+00, 0.133d+00/ data vxp(287),vyp(287)/ 0.460d+00, 0.136d+00/ data vxp(288),vyp(288)/ 0.460d+00, 0.145d+00/ data vxp(289),vyp(289)/ 0.447d+00, 0.139d+00/ data vxp(290),vyp(290)/ 0.444d+00, 0.133d+00/ data vxp(291),vyp(291)/ 0.430d+00, 0.130d+00/ data vxp(292),vyp(292)/ 0.403d+00, 0.127d+00/ data vxp(293),vyp(293)/ 0.397d+00, 0.121d+00/ data vxp(294),vyp(294)/ 0.389d+00, 0.124d+00/ data vxp(295),vyp(295)/ 0.381d+00, 0.124d+00/ data vxp(296),vyp(296)/ 0.395d+00, 0.139d+00/ data vxp(297),vyp(297)/ 0.315d+00, 0.112d+00/ data vxp(298),vyp(298)/ 0.337d+00, 0.115d+00/ data vxp(299),vyp(299)/ 0.364d+00, 0.115d+00/ data vxp(300),vyp(300)/ 0.351d+00, 0.109d+00/ data vxp(301),vyp(301)/ 0.332d+00, 0.103d+00/ data vxp(302),vyp(302)/ 0.315d+00, 0.100d+00/ data vxp(303),vyp(303)/ 0.296d+00, 0.100d+00/ data vxp(304),vyp(304)/ 0.293d+00, 0.109d+00/ data vxp(305),vyp(305)/ 0.304d+00, 0.940d-01/ data vxp(306),vyp(306)/ 0.310d+00, 0.850d-01/ data vxp(307),vyp(307)/ 0.304d+00, 0.760d-01/ data vxp(308),vyp(308)/ 0.296d+00, 0.760d-01/ data vxp(309),vyp(309)/ 0.293d+00, 0.820d-01/ data vxp(310),vyp(310)/ 0.290d+00, 0.910d-01/ data vxp(311),vyp(311)/ 0.230d+00, 0.610d-01/ data vxp(312),vyp(312)/ 0.249d+00, 0.730d-01/ data vxp(313),vyp(313)/ 0.260d+00, 0.730d-01/ data vxp(314),vyp(314)/ 0.266d+00, 0.640d-01/ data vxp(315),vyp(315)/ 0.271d+00, 0.610d-01/ data vxp(316),vyp(316)/ 0.271d+00, 0.580d-01/ data vxp(317),vyp(317)/ 0.249d+00, 0.550d-01/ data vxp(318),vyp(318)/ 0.247d+00, 0.480d-01/ data vxp(319),vyp(319)/ 0.241d+00, 0.480d-01/ data vxp(320),vyp(320)/ 0.249d+00, 0.390d-01/ data vxp(321),vyp(321)/ 0.233d+00, 0.390d-01/ data vxp(322),vyp(322)/ 0.222d+00, 0.520d-01/ data vxp(323),vyp(323)/ 0.222d+00, 0.610d-01/ data vxp(324),vyp(324)/ 0.203d+00, 0.240d-01/ data vxp(325),vyp(325)/ 0.200d+00, 0.210d-01/ data vxp(326),vyp(326)/ 0.195d+00, 0.120d-01/ data vxp(327),vyp(327)/ 0.192d+00, 0.120d-01/ data vxp(328),vyp(328)/ 0.192d+00, 0.300d-01/ data vxp(329),vyp(329)/ 0.197d+00, 0.300d-01/ data vxp(330),vyp(330)/ 0.203d+00, 0.300d-01/ data vxp(331),vyp(331)/ 0.153d+00, 0.300d-01/ data vxp(332),vyp(332)/ 0.156d+00, 0.270d-01/ data vxp(333),vyp(333)/ 0.170d+00, 0.270d-01/ data vxp(334),vyp(334)/ 0.175d+00, 0.180d-01/ data vxp(335),vyp(335)/ 0.156d+00, 0.180d-01/ data vxp(336),vyp(336)/ 0.153d+00, 0.210d-01/ data vxp(337),vyp(337)/ 0.145d+00, 0.180d-01/ data vxp(338),vyp(338)/ 0.145d+00, 0.240d-01/ data vxp(339),vyp(339)/ 0.148d+00, 0.300d-01/ data vxp(340),vyp(340)/ 0.137d+00, 0.150d-01/ data vxp(341),vyp(341)/ 0.137d+00, 0.900d-02/ data vxp(342),vyp(342)/ 0.134d+00, 0.900d-02/ data vxp(343),vyp(343)/ 0.134d+00, 0.600d-02/ data vxp(344),vyp(344)/ 0.126d+00, 0.600d-02/ data vxp(345),vyp(345)/ 0.123d+00, 0.150d-01/ data vxp(346),vyp(346)/ 0.638d+00, 0.427d+00/ data vxp(347),vyp(347)/ 0.628d+00, 0.422d+00/ data vxp(348),vyp(348)/ 0.627d+00, 0.421d+00/ data vxp(349),vyp(349)/ 0.627d+00, 0.418d+00/ data vxp(350),vyp(350)/ 0.625d+00, 0.418d+00/ data vxp(351),vyp(351)/ 0.633d+00, 0.433d+00/ data vxp(352),vyp(352)/ 0.633d+00, 0.427d+00/ data vxp(353),vyp(353)/ 0.970d+00, 0.639d+00/ data vxp(354),vyp(354)/ 0.975d+00, 0.639d+00/ data vxp(355),vyp(355)/ 0.986d+00, 0.636d+00/ data vxp(356),vyp(356)/ 0.984d+00, 0.621d+00/ data vxp(357),vyp(357)/ 0.981d+00, 0.618d+00/ data vxp(358),vyp(358)/ 0.975d+00, 0.606d+00/ data vxp(359),vyp(359)/ 0.967d+00, 0.600d+00/ data vxp(360),vyp(360)/ 0.948d+00, 0.600d+00/ data vxp(361),vyp(361)/ 0.942d+00, 0.603d+00/ data vxp(362),vyp(362)/ 0.940d+00, 0.606d+00/ data vxp(363),vyp(363)/ 0.942d+00, 0.615d+00/ data vxp(364),vyp(364)/ 0.940d+00, 0.624d+00/ data vxp(365),vyp(365)/ 0.942d+00, 0.627d+00/ data vxp(366),vyp(366)/ 0.951d+00, 0.630d+00/ data vxp(367),vyp(367)/ 0.956d+00, 0.639d+00/ data vxp(368),vyp(368)/ 0.964d+00, 0.639d+00/ data vxp(369),vyp(369)/ 0.858d+00, 0.600d+00/ data vxp(370),vyp(370)/ 0.852d+00, 0.597d+00/ data vxp(371),vyp(371)/ 0.852d+00, 0.606d+00/ data vxp(372),vyp(372)/ 0.858d+00, 0.606d+00/ data vxp(373),vyp(373)/ 0.825d+00, 0.600d+00/ data vxp(374),vyp(374)/ 0.825d+00, 0.594d+00/ data vxp(375),vyp(375)/ 0.830d+00, 0.594d+00/ data vxp(376),vyp(376)/ 0.833d+00, 0.588d+00/ data vxp(377),vyp(377)/ 0.833d+00, 0.582d+00/ data vxp(378),vyp(378)/ 0.830d+00, 0.573d+00/ data vxp(379),vyp(379)/ 0.825d+00, 0.576d+00/ data vxp(380),vyp(380)/ 0.814d+00, 0.588d+00/ data vxp(381),vyp(381)/ 0.819d+00, 0.600d+00/ data vxp(382),vyp(382)/ 0.827d+00, 0.603d+00/ data vxp(383),vyp(383)/ 0.830d+00, 0.645d+00/ data vxp(384),vyp(384)/ 0.830d+00, 0.630d+00/ data vxp(385),vyp(385)/ 0.825d+00, 0.624d+00/ data vxp(386),vyp(386)/ 0.819d+00, 0.633d+00/ data vxp(387),vyp(387)/ 0.822d+00, 0.648d+00/ data vxp(388),vyp(388)/ 0.855d+00, 0.670d+00/ data vxp(389),vyp(389)/ 0.858d+00, 0.667d+00/ data vxp(390),vyp(390)/ 0.858d+00, 0.664d+00/ data vxp(391),vyp(391)/ 0.849d+00, 0.661d+00/ data vxp(392),vyp(392)/ 0.847d+00, 0.667d+00/ data vxp(393),vyp(393)/ 0.838d+00, 0.673d+00/ data vxp(394),vyp(394)/ 0.822d+00, 0.664d+00/ data vxp(395),vyp(395)/ 0.814d+00, 0.664d+00/ data vxp(396),vyp(396)/ 0.819d+00, 0.679d+00/ data vxp(397),vyp(397)/ 0.888d+00, 0.721d+00/ data vxp(398),vyp(398)/ 0.888d+00, 0.715d+00/ data vxp(399),vyp(399)/ 0.882d+00, 0.712d+00/ data vxp(400),vyp(400)/ 0.877d+00, 0.709d+00/ data vxp(401),vyp(401)/ 0.866d+00, 0.709d+00/ data vxp(402),vyp(402)/ 0.858d+00, 0.706d+00/ data vxp(403),vyp(403)/ 0.852d+00, 0.700d+00/ data vxp(404),vyp(404)/ 0.847d+00, 0.703d+00/ data vxp(405),vyp(405)/ 0.844d+00, 0.709d+00/ data vxp(406),vyp(406)/ 0.849d+00, 0.715d+00/ data vxp(407),vyp(407)/ 0.858d+00, 0.715d+00/ data vxp(408),vyp(408)/ 0.866d+00, 0.718d+00/ data vxp(409),vyp(409)/ 0.871d+00, 0.718d+00/ data vxp(410),vyp(410)/ 0.879d+00, 0.721d+00/ data vxp(411),vyp(411)/ 0.890d+00, 0.724d+00/ data vxp(412),vyp(412)/ 0.907d+00, 0.733d+00/ data vxp(413),vyp(413)/ 0.893d+00, 0.736d+00/ data vxp(414),vyp(414)/ 0.907d+00, 0.742d+00/ data vxp(415),vyp(415)/ 0.784d+00, 0.748d+00/ data vxp(416),vyp(416)/ 0.781d+00, 0.739d+00/ data vxp(417),vyp(417)/ 0.786d+00, 0.730d+00/ data vxp(418),vyp(418)/ 0.795d+00, 0.715d+00/ data vxp(419),vyp(419)/ 0.795d+00, 0.706d+00/ data vxp(420),vyp(420)/ 0.800d+00, 0.706d+00/ data vxp(421),vyp(421)/ 0.800d+00, 0.700d+00/ data vxp(422),vyp(422)/ 0.792d+00, 0.700d+00/ data vxp(423),vyp(423)/ 0.789d+00, 0.697d+00/ data vxp(424),vyp(424)/ 0.781d+00, 0.703d+00/ data vxp(425),vyp(425)/ 0.775d+00, 0.709d+00/ data vxp(426),vyp(426)/ 0.770d+00, 0.718d+00/ data vxp(427),vyp(427)/ 0.767d+00, 0.727d+00/ data vxp(428),vyp(428)/ 0.770d+00, 0.730d+00/ data vxp(429),vyp(429)/ 0.767d+00, 0.739d+00/ data vxp(430),vyp(430)/ 0.789d+00, 0.761d+00/ data vxp(431),vyp(431)/ 0.836d+00, 0.782d+00/ data vxp(432),vyp(432)/ 0.841d+00, 0.782d+00/ data vxp(433),vyp(433)/ 0.844d+00, 0.788d+00/ data vxp(434),vyp(434)/ 0.852d+00, 0.788d+00/ data vxp(435),vyp(435)/ 0.855d+00, 0.785d+00/ data vxp(436),vyp(436)/ 0.860d+00, 0.785d+00/ data vxp(437),vyp(437)/ 0.863d+00, 0.779d+00/ data vxp(438),vyp(438)/ 0.860d+00, 0.773d+00/ data vxp(439),vyp(439)/ 0.863d+00, 0.767d+00/ data vxp(440),vyp(440)/ 0.866d+00, 0.764d+00/ data vxp(441),vyp(441)/ 0.860d+00, 0.761d+00/ data vxp(442),vyp(442)/ 0.858d+00, 0.752d+00/ data vxp(443),vyp(443)/ 0.858d+00, 0.739d+00/ data vxp(444),vyp(444)/ 0.822d+00, 0.739d+00/ data vxp(445),vyp(445)/ 0.816d+00, 0.748d+00/ data vxp(446),vyp(446)/ 0.811d+00, 0.748d+00/ data vxp(447),vyp(447)/ 0.803d+00, 0.752d+00/ data vxp(448),vyp(448)/ 0.803d+00, 0.764d+00/ data vxp(449),vyp(449)/ 0.803d+00, 0.773d+00/ data vxp(450),vyp(450)/ 0.808d+00, 0.782d+00/ data vxp(451),vyp(451)/ 0.816d+00, 0.785d+00/ data vxp(452),vyp(452)/ 0.836d+00, 0.785d+00/ data vxp(453),vyp(453)/ 0.822d+00, 0.973d+00/ data vxp(454),vyp(454)/ 0.808d+00, 0.970d+00/ data vxp(455),vyp(455)/ 0.805d+00, 0.964d+00/ data vxp(456),vyp(456)/ 0.814d+00, 0.961d+00/ data vxp(457),vyp(457)/ 0.814d+00, 0.955d+00/ data vxp(458),vyp(458)/ 0.808d+00, 0.952d+00/ data vxp(459),vyp(459)/ 0.800d+00, 0.945d+00/ data vxp(460),vyp(460)/ 0.792d+00, 0.936d+00/ data vxp(461),vyp(461)/ 0.789d+00, 0.927d+00/ data vxp(462),vyp(462)/ 0.786d+00, 0.921d+00/ data vxp(463),vyp(463)/ 0.786d+00, 0.903d+00/ data vxp(464),vyp(464)/ 0.789d+00, 0.885d+00/ data vxp(465),vyp(465)/ 0.795d+00, 0.876d+00/ data vxp(466),vyp(466)/ 0.803d+00, 0.870d+00/ data vxp(467),vyp(467)/ 0.814d+00, 0.864d+00/ data vxp(468),vyp(468)/ 0.822d+00, 0.864d+00/ data vxp(469),vyp(469)/ 0.830d+00, 0.864d+00/ data vxp(470),vyp(470)/ 0.819d+00, 0.855d+00/ data vxp(471),vyp(471)/ 0.811d+00, 0.852d+00/ data vxp(472),vyp(472)/ 0.803d+00, 0.845d+00/ data vxp(473),vyp(473)/ 0.795d+00, 0.852d+00/ data vxp(474),vyp(474)/ 0.792d+00, 0.858d+00/ data vxp(475),vyp(475)/ 0.784d+00, 0.867d+00/ data vxp(476),vyp(476)/ 0.781d+00, 0.864d+00/ data vxp(477),vyp(477)/ 0.781d+00, 0.855d+00/ data vxp(478),vyp(478)/ 0.773d+00, 0.852d+00/ data vxp(479),vyp(479)/ 0.770d+00, 0.848d+00/ data vxp(480),vyp(480)/ 0.770d+00, 0.833d+00/ data vxp(481),vyp(481)/ 0.770d+00, 0.818d+00/ data vxp(482),vyp(482)/ 0.767d+00, 0.809d+00/ data vxp(483),vyp(483)/ 0.767d+00, 0.803d+00/ data vxp(484),vyp(484)/ 0.770d+00, 0.803d+00/ data vxp(485),vyp(485)/ 0.767d+00, 0.788d+00/ data vxp(486),vyp(486)/ 0.764d+00, 0.776d+00/ data vxp(487),vyp(487)/ 0.759d+00, 0.785d+00/ data vxp(488),vyp(488)/ 0.762d+00, 0.806d+00/ data vxp(489),vyp(489)/ 0.762d+00, 0.812d+00/ data vxp(490),vyp(490)/ 0.764d+00, 0.870d+00/ data vxp(491),vyp(491)/ 0.767d+00, 0.885d+00/ data vxp(492),vyp(492)/ 0.773d+00, 0.906d+00/ data vxp(493),vyp(493)/ 0.781d+00, 0.933d+00/ data vxp(494),vyp(494)/ 0.795d+00, 0.964d+00/ data vxp(495),vyp(495)/ 0.803d+00, 0.979d+00/ data vxp(496),vyp(496)/ 0.814d+00, 0.979d+00/ data vxp(497),vyp(497)/ 0.814d+00, 0.976d+00/ data vxp(498),vyp(498)/ 0.822d+00, 0.976d+00/ data vxp(499),vyp(499)/ 0.825d+00, 0.973d+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 double precision (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) double precision + 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.1d0,1.5d0/ c data x( 1),y( 1)/ 0.14238694d+00, 0.52549636d+00/ data x( 2),y( 2)/ 0.14239907d+00, 0.52486056d+00/ data x( 3),y( 3)/ 0.14246652d+00, 0.52383298d+00/ data x( 4),y( 4)/ 0.14251776d+00, 0.52338821d+00/ data x( 5),y( 5)/ 0.14258587d+00, 0.52297705d+00/ data x( 6),y( 6)/ 0.14267555d+00, 0.52259350d+00/ data x( 7),y( 7)/ 0.14279018d+00, 0.52223974d+00/ data x( 8),y( 8)/ 0.14293651d+00, 0.52190989d+00/ data x( 9),y( 9)/ 0.14311521d+00, 0.52160990d+00/ data x( 10),y( 10)/ 0.14331953d+00, 0.52134800d+00/ data x( 11),y( 11)/ 0.14354138d+00, 0.52112484d+00/ data x( 12),y( 12)/ 0.14378212d+00, 0.52092934d+00/ data x( 13),y( 13)/ 0.14403769d+00, 0.52076072d+00/ data x( 14),y( 14)/ 0.14430405d+00, 0.52061445d+00/ data x( 15),y( 15)/ 0.14457782d+00, 0.52048606d+00/ data x( 16),y( 16)/ 0.14485565d+00, 0.52037263d+00/ data x( 17),y( 17)/ 0.14513819d+00, 0.52027190d+00/ data x( 18),y( 18)/ 0.14599727d+00, 0.52001894d+00/ data x( 19),y( 19)/ 0.18376550d+00, 0.51373845d+00/ data x( 20),y( 20)/ 0.18985666d+00, 0.51254296d+00/ data x( 21),y( 21)/ 0.19675030d+00, 0.51153928d+00/ data x( 22),y( 22)/ 0.24406897d+00, 0.50666326d+00/ data x( 23),y( 23)/ 0.31060791d+00, 0.50356334d+00/ data x( 24),y( 24)/ 0.38332841d+00, 0.50502747d+00/ data x( 25),y( 25)/ 0.45327878d+00, 0.51030499d+00/ data x( 26),y( 26)/ 0.51958978d+00, 0.51920772d+00/ data x( 27),y( 27)/ 0.57746434d+00, 0.52987391d+00/ data x( 28),y( 28)/ 0.58425075d+00, 0.53082687d+00/ data x( 29),y( 29)/ 0.59000003d+00, 0.53114921d+00/ data x( 30),y( 30)/ 0.59512764d+00, 0.53169250d+00/ data x( 31),y( 31)/ 0.59887820d+00, 0.53272384d+00/ data x( 32),y( 32)/ 0.60137254d+00, 0.53386259d+00/ data x( 33),y( 33)/ 0.60320872d+00, 0.53513271d+00/ data x( 34),y( 34)/ 0.60353845d+00, 0.53771621d+00/ data x( 35),y( 35)/ 0.60296059d+00, 0.54131466d+00/ data x( 36),y( 36)/ 0.60300571d+00, 0.54437202d+00/ data x( 37),y( 37)/ 0.60357350d+00, 0.54693913d+00/ data x( 38),y( 38)/ 0.60406649d+00, 0.54854357d+00/ data x( 39),y( 39)/ 0.60466123d+00, 0.55010843d+00/ data x( 40),y( 40)/ 0.60535777d+00, 0.55162632d+00/ data x( 41),y( 41)/ 0.60614204d+00, 0.55309492d+00/ data x( 42),y( 42)/ 0.60702199d+00, 0.55450010d+00/ data x( 43),y( 43)/ 0.60800248d+00, 0.55582470d+00/ data x( 44),y( 44)/ 0.60907596d+00, 0.55706424d+00/ data x( 45),y( 45)/ 0.61022371d+00, 0.55822390d+00/ data x( 46),y( 46)/ 0.61142939d+00, 0.55931419d+00/ data x( 47),y( 47)/ 0.61268497d+00, 0.56033880d+00/ data x( 48),y( 48)/ 0.61398643d+00, 0.56129622d+00/ data x( 49),y( 49)/ 0.61533439d+00, 0.56217754d+00/ data x( 50),y( 50)/ 0.61672550d+00, 0.56297755d+00/ data x( 51),y( 51)/ 0.61815780d+00, 0.56369096d+00/ data x( 52),y( 52)/ 0.61962718d+00, 0.56431180d+00/ data x( 53),y( 53)/ 0.62112886d+00, 0.56483644d+00/ data x( 54),y( 54)/ 0.62420315d+00, 0.56562895d+00/ data x( 55),y( 55)/ 0.62575811d+00, 0.56594610d+00/ data x( 56),y( 56)/ 0.62732589d+00, 0.56619239d+00/ data x( 57),y( 57)/ 0.62890446d+00, 0.56634086d+00/ data x( 58),y( 58)/ 0.63049120d+00, 0.56637746d+00/ data x( 59),y( 59)/ 0.63217700d+00, 0.56633490d+00/ data x( 60),y( 60)/ 0.63928777d+00, 0.56594688d+00/ data x( 61),y( 61)/ 0.64237547d+00, 0.56590432d+00/ data x( 62),y( 62)/ 0.64175850d+00, 0.56613564d+00/ data x( 63),y( 63)/ 0.64074898d+00, 0.56639910d+00/ data x( 64),y( 64)/ 0.63777864d+00, 0.56704980d+00/ data x( 65),y( 65)/ 0.61441934d+00, 0.57083333d+00/ data x( 66),y( 66)/ 0.53095484d+00, 0.58100241d+00/ data x( 67),y( 67)/ 0.44016385d+00, 0.58623964d+00/ data x( 68),y( 68)/ 0.35042948d+00, 0.58610827d+00/ data x( 69),y( 69)/ 0.24714592d+00, 0.58002561d+00/ data x( 70),y( 70)/ 0.22205499d+00, 0.57699656d+00/ data x( 71),y( 71)/ 0.21458752d+00, 0.57549435d+00/ data x( 72),y( 72)/ 0.20755161d+00, 0.57364964d+00/ data x( 73),y( 73)/ 0.20098640d+00, 0.57163399d+00/ data x( 74),y( 74)/ 0.19478193d+00, 0.56941843d+00/ data x( 75),y( 75)/ 0.18897466d+00, 0.56701398d+00/ data x( 76),y( 76)/ 0.18352342d+00, 0.56447226d+00/ data x( 77),y( 77)/ 0.17845722d+00, 0.56187308d+00/ data x( 78),y( 78)/ 0.16923651d+00, 0.55659187d+00/ data x( 79),y( 79)/ 0.16123903d+00, 0.55137855d+00/ data x( 80),y( 80)/ 0.15775546d+00, 0.54884428d+00/ data x( 81),y( 81)/ 0.15473247d+00, 0.54644585d+00/ data x( 82),y( 82)/ 0.15211743d+00, 0.54412651d+00/ data x( 83),y( 83)/ 0.14972629d+00, 0.54171610d+00/ data x( 84),y( 84)/ 0.14759408d+00, 0.53918707d+00/ data x( 85),y( 85)/ 0.14578351d+00, 0.53658718d+00/ data x( 86),y( 86)/ 0.14434788d+00, 0.53393197d+00/ data x( 87),y( 87)/ 0.14338359d+00, 0.53158128d+00/ data x( 88),y( 88)/ 0.14286031d+00, 0.52970970d+00/ data x( 89),y( 89)/ 0.14257507d+00, 0.52820081d+00/ data x( 90),y( 90)/ 0.14245167d+00, 0.52710903d+00/ data x( 91),y( 91)/ 0.14239976d+00, 0.52623296d+00/ data x( 92),y( 92)/ 0.64350897d+00, 0.55603290d+00/ data x( 93),y( 93)/ 0.64356840d+00, 0.55530572d+00/ data x( 94),y( 94)/ 0.64368635d+00, 0.55459970d+00/ data x( 95),y( 95)/ 0.64387923d+00, 0.55391252d+00/ data x( 96),y( 96)/ 0.64416379d+00, 0.55330718d+00/ data x( 97),y( 97)/ 0.64450228d+00, 0.55284947d+00/ data x( 98),y( 98)/ 0.64483809d+00, 0.55251265d+00/ data x( 99),y( 99)/ 0.64515030d+00, 0.55225414d+00/ data x(100),y(100)/ 0.64539981d+00, 0.55209374d+00/ data x(101),y(101)/ 0.64560950d+00, 0.55199981d+00/ data x(102),y(102)/ 0.65000343d+00, 0.55015725d+00/ data x(103),y(103)/ 0.65195090d+00, 0.54946691d+00/ data x(104),y(104)/ 0.65355039d+00, 0.54898107d+00/ data x(105),y(105)/ 0.65445668d+00, 0.54873705d+00/ data x(106),y(106)/ 0.65544385d+00, 0.54851377d+00/ data x(107),y(107)/ 0.65652210d+00, 0.54833364d+00/ data x(108),y(108)/ 0.65895778d+00, 0.54804218d+00/ data x(109),y(109)/ 0.66510695d+00, 0.54695308d+00/ data x(110),y(110)/ 0.66893238d+00, 0.54609281d+00/ data x(111),y(111)/ 0.67091352d+00, 0.54556215d+00/ data x(112),y(112)/ 0.67275780d+00, 0.54498011d+00/ data x(113),y(113)/ 0.68000346d+00, 0.54238534d+00/ data x(114),y(114)/ 0.68109047d+00, 0.54183996d+00/ data x(115),y(115)/ 0.68448633d+00, 0.53959823d+00/ data x(116),y(116)/ 0.68519235d+00, 0.53916425d+00/ data x(117),y(117)/ 0.68585521d+00, 0.53878689d+00/ data x(118),y(118)/ 0.68608046d+00, 0.53896588d+00/ data x(119),y(119)/ 0.68600219d+00, 0.53920758d+00/ data x(120),y(120)/ 0.68589300d+00, 0.53945839d+00/ data x(121),y(121)/ 0.68574667d+00, 0.53972352d+00/ data x(122),y(122)/ 0.68555248d+00, 0.54002571d+00/ data x(123),y(123)/ 0.68428069d+00, 0.54174429d+00/ data x(124),y(124)/ 0.68324089d+00, 0.54303318d+00/ data x(125),y(125)/ 0.68181133d+00, 0.54464948d+00/ data x(126),y(126)/ 0.67793530d+00, 0.54862797d+00/ data x(127),y(127)/ 0.67259532d+00, 0.55358279d+00/ data x(128),y(128)/ 0.66974699d+00, 0.55597788d+00/ data x(129),y(129)/ 0.66684467d+00, 0.55816221d+00/ data x(130),y(130)/ 0.66362411d+00, 0.56015337d+00/ data x(131),y(131)/ 0.65993828d+00, 0.56181592d+00/ data x(132),y(132)/ 0.65620720d+00, 0.56289274d+00/ data x(133),y(133)/ 0.65288752d+00, 0.56327605d+00/ data x(134),y(134)/ 0.65006143d+00, 0.56308872d+00/ data x(135),y(135)/ 0.64778221d+00, 0.56250918d+00/ data x(136),y(136)/ 0.64616859d+00, 0.56174362d+00/ data x(137),y(137)/ 0.64526492d+00, 0.56106269d+00/ data x(138),y(138)/ 0.64485633d+00, 0.56061620d+00/ data x(139),y(139)/ 0.64467561d+00, 0.56034172d+00/ data x(140),y(140)/ 0.64456904d+00, 0.56012821d+00/ data x(141),y(141)/ 0.64448071d+00, 0.55992335d+00/ data x(142),y(142)/ 0.64389944d+00, 0.55821323d+00/ data x(143),y(143)/ 0.64369786d+00, 0.55753338d+00/ data x(144),y(144)/ 0.64354610d+00, 0.55678207d+00/ data x(145),y(145)/ 0.66136104d+00, 0.51671529d+00/ data x(146),y(146)/ 0.66146421d+00, 0.51561081d+00/ data x(147),y(147)/ 0.66190052d+00, 0.51450264d+00/ data x(148),y(148)/ 0.66259372d+00, 0.51342881d+00/ data x(149),y(149)/ 0.66350609d+00, 0.51241684d+00/ data x(150),y(150)/ 0.66900992d+00, 0.50778043d+00/ data x(151),y(151)/ 0.69012105d+00, 0.48983982d+00/ data x(152),y(152)/ 0.71521938d+00, 0.46596432d+00/ data x(153),y(153)/ 0.73760015d+00, 0.44191343d+00/ data x(154),y(154)/ 0.77687955d+00, 0.39426166d+00/ data x(155),y(155)/ 0.77824843d+00, 0.39296392d+00/ data x(156),y(156)/ 0.77903742d+00, 0.39230424d+00/ data x(157),y(157)/ 0.77885532d+00, 0.39332363d+00/ data x(158),y(158)/ 0.77832937d+00, 0.39514297d+00/ data x(159),y(159)/ 0.77710885d+00, 0.39755410d+00/ data x(160),y(160)/ 0.71374595d+00, 0.49894109d+00/ data x(161),y(161)/ 0.70879847d+00, 0.50545138d+00/ data x(162),y(162)/ 0.70390487d+00, 0.51122659d+00/ data x(163),y(163)/ 0.70148945d+00, 0.51380640d+00/ data x(164),y(164)/ 0.69909018d+00, 0.51613098d+00/ data x(165),y(165)/ 0.69670445d+00, 0.51818985d+00/ data x(166),y(166)/ 0.69435513d+00, 0.51994878d+00/ data x(167),y(167)/ 0.69207388d+00, 0.52144128d+00/ data x(168),y(168)/ 0.68990386d+00, 0.52269793d+00/ data x(169),y(169)/ 0.68787146d+00, 0.52373749d+00/ data x(170),y(170)/ 0.68599886d+00, 0.52457106d+00/ data x(171),y(171)/ 0.68458074d+00, 0.52512252d+00/ data x(172),y(172)/ 0.68323749d+00, 0.52557099d+00/ data x(173),y(173)/ 0.68186861d+00, 0.52594560d+00/ data x(174),y(174)/ 0.68048090d+00, 0.52624112d+00/ data x(175),y(175)/ 0.67908096d+00, 0.52644932d+00/ data x(176),y(176)/ 0.67767704d+00, 0.52655977d+00/ data x(177),y(177)/ 0.67627919d+00, 0.52656651d+00/ data x(178),y(178)/ 0.67489743d+00, 0.52647096d+00/ data x(179),y(179)/ 0.67353940d+00, 0.52629191d+00/ data x(180),y(180)/ 0.67221367d+00, 0.52603441d+00/ data x(181),y(181)/ 0.67092770d+00, 0.52570385d+00/ data x(182),y(182)/ 0.66968828d+00, 0.52530611d+00/ data x(183),y(183)/ 0.66850287d+00, 0.52484566d+00/ data x(184),y(184)/ 0.66738081d+00, 0.52432030d+00/ data x(185),y(185)/ 0.66633016d+00, 0.52373523d+00/ data x(186),y(186)/ 0.66536587d+00, 0.52308375d+00/ data x(187),y(187)/ 0.66449600d+00, 0.52237707d+00/ data x(188),y(188)/ 0.66372591d+00, 0.52162856d+00/ data x(189),y(189)/ 0.66306305d+00, 0.52085173d+00/ data x(190),y(190)/ 0.66250944d+00, 0.52006221d+00/ data x(191),y(191)/ 0.66206914d+00, 0.51927567d+00/ data x(192),y(192)/ 0.66177577d+00, 0.51860404d+00/ data x(193),y(193)/ 0.66150331d+00, 0.51772273d+00/ data x(194),y(194)/ 0.00000000d+00, 0.28819495d+00/ data x(195),y(195)/ 0.43966208d-01, 0.25921881d+00/ data x(196),y(196)/ 0.67964263d-01, 0.17930219d+00/ data x(197),y(197)/ 0.13709681d-01, 0.11062408d+00/ data x(198),y(198)/ 0.45169536d-01, 0.25816517d-01/ data x(199),y(199)/ 0.12964404d+00, 0.21003967d-01/ data x(200),y(200)/ 0.23699667d+00, 0.32177549d-01/ data x(201),y(201)/ 0.35846743d+00, 0.00000000d+00/ data x(202),y(202)/ 0.49931961d+00, 0.41386276d-01/ data x(203),y(203)/ 0.54918855d+00, 0.44396643d-01/ data x(204),y(204)/ 0.62591928d+00, 0.65661035d-01/ data x(205),y(205)/ 0.70021564d+00, 0.22311412d-01/ data x(206),y(206)/ 0.80595642d+00, 0.13935482d-01/ data x(207),y(207)/ 0.90486634d+00, 0.58995541d-01/ data x(208),y(208)/ 0.97141540d+00, 0.14212923d+00/ data x(209),y(209)/ 0.98587966d+00, 0.22880019d+00/ data x(210),y(210)/ 0.97171891d+00, 0.32607010d+00/ data x(211),y(211)/ 0.96469915d+00, 0.37979934d+00/ data x(212),y(212)/ 0.94215643d+00, 0.42545268d+00/ data x(213),y(213)/ 0.97760570d+00, 0.47650883d+00/ data x(214),y(214)/ 0.98377573d+00, 0.52510858d+00/ data x(215),y(215)/ 0.97785521d+00, 0.56944507d+00/ data x(216),y(216)/ 0.94749039d+00, 0.61905968d+00/ data x(217),y(217)/ 0.96022832d+00, 0.68079990d+00/ data x(218),y(218)/ 0.10000000d+01, 0.75031382d+00/ data x(219),y(219)/ 0.98384994d+00, 0.82811260d+00/ data x(220),y(220)/ 0.93533903d+00, 0.90708894d+00/ data x(221),y(221)/ 0.84627432d+00, 0.96236145d+00/ data x(222),y(222)/ 0.76200396d+00, 0.98998755d+00/ data x(223),y(223)/ 0.70150429d+00, 0.92286539d+00/ data x(224),y(224)/ 0.60601121d+00, 0.91732824d+00/ data x(225),y(225)/ 0.53807300d+00, 0.96716952d+00/ data x(226),y(226)/ 0.44991389d+00, 0.10000000d+01/ data x(227),y(227)/ 0.34940988d+00, 0.98966223d+00/ data x(228),y(228)/ 0.27384916d+00, 0.94458503d+00/ data x(229),y(229)/ 0.17683885d+00, 0.98585039d+00/ data x(230),y(230)/ 0.85920475d-01, 0.96512699d+00/ data x(231),y(231)/ 0.23324331d-01, 0.93042862d+00/ data x(232),y(232)/ 0.25133478d-01, 0.86095876d+00/ data x(233),y(233)/ 0.16017893d-01, 0.79044342d+00/ data x(234),y(234)/ 0.27293537d-01, 0.71037453d+00/ data x(235),y(235)/ 0.94843647d-02, 0.64085394d+00/ data x(236),y(236)/ 0.24800429d-01, 0.58418435d+00/ data x(237),y(237)/ 0.17816991d-01, 0.54199851d+00/ data x(238),y(238)/ 0.29185828d-01, 0.50188088d+00/ data x(239),y(239)/ 0.11547797d-01, 0.47742245d+00/ data x(240),y(240)/ 0.24702650d-01, 0.44864386d+00/ data x(241),y(241)/ 0.53696376d-02, 0.40575615d+00/ data x(242),y(242)/ 0.15980145d-03, 0.34338608d+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 double precision (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) double precision + 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.0d0,-30.0d0,-30.0d0,-30.0d0,36.0d0,76.0d0, + 41.0d0,71.0d0,47.0d0,71.0d0,36.0d0,41.0d0, 1 47.0d0,71.0d0,90.0d0,90.0d0,90.0d0,76.0d0, 2 5.75d0,7.75d0,0.0d0,0.0d0,-5.75d0,-7.75d0, 3 0.0d0,0.0d0,5.0d0,0.0d0,-5.0d0,0.0d0/ data y/0.0d0,-44.0d0,32.0d0,36.0d0,0.0d0,0.0d0, + 5.0d0,5.0d0,11.0d0,11.0d0,32.0d0,36.0d0, 1 36.0d0,36.0d0,36.0d0,32.0d0,-44.0d0,32.0d0, 2 0.0d0,0.0d0,5.75d0,7.75d0,0.0d0,0.0d0, 3 -5.75d0,-7.75d0,0.0d0,5.0d0,0.0d0,-5.0d0/ 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.0d0 ym(i)=0.0d0 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 double precision (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) double precision + 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.1d0,1.5d0/ c sp(2)='fan' sp(1)='fan' sp(3)='fan' sp(4)='fan' c pi=3.141592653589793d0 r=1.0d0 r2=r/dsqrt(2.0d0) ntf=7 nvf=ntf+1 ncf=ntf+1 nbf=2*ntf vx(1)=0.0d0 vy(1)=0.0d0 xm(1)=0.0d0 ym(1)=0.0d0 dt=2.0d0*pi/dfloat(ntf) do i=1,ntf ang=dfloat(i-1)*dt angm=ang-pi/4.0d0 vx(i+1)=r*dcos(ang) vy(i+1)=r*dsin(ang) xm(i+1)=r2*dcos(angm) ym(i+1)=r2*dsin(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 double precision (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) double precision + 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.1d0,1.5d0/ c sp(2)='arc' sp(1)='arc' sp(3)='arc' sp(4)='arc' c pi=3.141592653589793d0 r1=1.0d0 r2=2.0d0 ncf=1 ntf=6 nvf=4*ntf nbf=nvf dt=pi/dfloat(ntf) eps=dt/20.0d0 c xm(1)=0.0d0 ym(1)=0.0d0 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=dfloat(i-1)*dt+eps t2=dfloat(i)*dt-eps c1=dcos(t1) c2=dcos(t2) s1=dsin(t1) s2=dsin(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 double precision (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) double precision + 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.1d0,1.5d0/ 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.0d0 ym(1)=0.0d0 xm(2)=1.0d0 ym(2)=0.0d0 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)=-dfloat(m-1) vy(k+1)=0.0d0 vx(k+2)=-dfloat(m) vy(k+2)=0.0d0 vx(k+3)=1.0d0 vy(k+3)=dfloat(m) vx(k+4)=1.0d0 vy(k+4)=dfloat(m+1) vx(k+5)=dfloat(m+1) vy(k+5)=0.0d0 vx(k+6)=dfloat(m+2) vy(k+6)=0.0d0 vx(k+7)=0.0d0 vy(k+7)=-dfloat(m+1) vx(k+8)=0.0d0 vy(k+8)=-dfloat(m+2) do j=k+1,k+4 ibndry(3,j)=2 enddo enddo m=2*nloops+3 k=nloops*8 vx(k+1)=-dfloat(m-1) vy(k+1)=0.0d0 vx(k+2)=-dfloat(m) vy(k+2)=0.0d0 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 double precision (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) double precision + 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.0d0,52.0d0/ data x( 2),y( 2)/52.0d0,52.0d0/ data x( 3),y( 3)/52.0d0,49.0d0/ data x( 4),y( 4)/45.0d0,49.0d0/ data x( 5),y( 5)/46.0d0,50.0d0/ data x( 6),y( 6)/32.0d0,50.0d0/ c data x( 7),y( 7)/25.0d0,48.2d0/ data x( 8),y( 8)/58.5d0,48.2d0/ data x( 9),y( 9)/58.5d0,45.0d0/ data x(10),y(10)/46.0d0,45.0d0/ data x(11),y(11)/47.0d0,46.0d0/ data x(12),y(12)/25.0d0,46.0d0/ c data x(13),y(13)/16.5d0,44.0d0/ data x(14),y(14)/65.8d0,44.0d0/ data x(15),y(15)/65.8d0,41.0d0/ data x(16),y(16)/47.0d0,41.0d0/ data x(17),y(17)/48.0d0,42.0d0/ data x(18),y(18)/16.5d0,42.0d0/ c data x(19),y(19)/10.0d0,40.0d0/ data x(20),y(20)/68.0d0,40.0d0/ data x(21),y(21)/68.0d0,37.0d0/ data x(22),y(22)/60.0d0,36.0d0/ data x(23),y(23)/55.0d0,35.0d0/ data x(24),y(24)/52.0d0,34.5d0/ data x(25),y(25)/49.0d0,33.0d0/ data x(26),y(26)/47.0d0,31.0d0/ data x(27),y(27)/46.0d0,29.0d0/ c data x(28),y(28)/10.0d0,38.0d0/ data x(29),y(29)/46.0d0,27.0d0/ data x(30),y(30)/50.0d0,26.0d0/ data x(31),y(31)/53.0d0,25.0d0/ data x(32),y(32)/55.0d0,24.0d0/ data x(33),y(33)/56.3d0,23.0d0/ data x(34),y(34)/57.0d0,21.9d0/ data x(35),y(35)/56.0d0,21.0d0/ data x(36),y(36)/54.0d0,20.7d0/ data x(37),y(37)/51.0d0,21.0d0/ data x(38),y(38)/28.0d0,28.0d0/ data x(39),y(39)/31.0d0,28.1d0/ data x(40),y(40)/31.6d0,28.3d0/ data x(41),y(41)/32.0d0,28.8d0/ data x(42),y(42)/31.9d0,29.3d0/ data x(43),y(43)/31.6d0,29.6d0/ data x(44),y(44)/31.0d0,30.0d0/ c data x(45),y(45)/10.0d0,15.0d0/ data x(46),y(46)/ 4.0d0,15.0d0/ data x(47),y(47)/ 6.8d0,14.0d0/ data x(48),y(48)/ 6.8d0, 3.0d0/ data x(49),y(49)/ 7.5d0, 1.0d0/ data x(50),y(50)/10.0d0, 0.0d0/ data x(51),y(51)/20.0d0, 0.0d0/ data x(52),y(52)/22.0d0, 1.3d0/ data x(53),y(53)/23.5d0, 2.5d0/ data x(54),y(54)/23.5d0,15.0d0/ data x(55),y(55)/19.0d0,15.0d0/ data x(56),y(56)/21.5d0,14.0d0/ data x(57),y(57)/21.5d0, 3.0d0/ data x(58),y(58)/20.5d0, 2.0d0/ data x(59),y(59)/19.0d0, 1.0d0/ data x(60),y(60)/12.0d0, 1.0d0/ data x(61),y(61)/10.5d0, 2.0d0/ data x(62),y(62)/10.0d0, 3.0d0/ c data x(63),y(63)/39.0d0,11.0d0/ data x(64),y(64)/39.0d0,14.5d0/ data x(65),y(65)/37.0d0,15.0d0/ data x(66),y(66)/31.0d0,15.0d0/ data x(67),y(67)/28.0d0,14.5d0/ data x(68),y(68)/25.5d0,13.0d0/ data x(69),y(69)/24.5d0,10.0d0/ data x(70),y(70)/24.5d0, 5.0d0/ data x(71),y(71)/25.5d0, 3.0d0/ data x(72),y(72)/27.0d0, 1.5d0/ data x(73),y(73)/30.0d0, 0.0d0/ data x(74),y(74)/38.0d0, 0.0d0/ data x(75),y(75)/39.0d0, 1.0d0/ data x(76),y(76)/33.0d0, 1.0d0/ data x(77),y(77)/30.0d0, 2.0d0/ data x(78),y(78)/28.5d0, 3.0d0/ data x(79),y(79)/27.0d0, 5.0d0/ data x(80),y(80)/27.0d0,10.0d0/ data x(81),y(81)/28.0d0,12.0d0/ data x(82),y(82)/29.5d0,13.0d0/ data x(83),y(83)/31.0d0,14.0d0/ data x(84),y(84)/35.0d0,14.0d0/ data x(85),y(85)/38.0d0,11.5d0/ c data x(86),y(86)/54.5d0,11.0d0/ data x(87),y(87)/54.5d0,14.5d0/ data x(88),y(88)/52.5d0,15.0d0/ data x(89),y(89)/44.5d0,15.0d0/ data x(90),y(90)/42.0d0,14.0d0/ data x(91),y(91)/41.0d0,13.0d0/ data x(92),y(92)/41.0d0,10.0d0/ data x(93),y(93)/42.0d0, 8.5d0/ data x(94),y(94)/50.0d0, 5.0d0/ data x(95),y(95)/52.0d0, 3.0d0/ data x(96),y(96)/50.0d0, 1.0d0/ data x(97),y(97)/42.0d0, 1.0d0/ data x(98),y(98)/42.0d0, 0.0d0/ data x(99),y(99)/51.0d0, 0.0d0/ data x(100),y(100)/54.0d0, 1.0d0/ data x(101),y(101)/55.5d0, 2.5d0/ data x(102),y(102)/55.5d0, 5.0d0/ data x(103),y(103)/54.5d0, 6.0d0/ data x(104),y(104)/50.0d0, 8.0d0/ data x(105),y(105)/44.5d0,10.0d0/ data x(106),y(106)/43.5d0,12.0d0/ data x(107),y(107)/45.0d0,14.0d0/ data x(108),y(108)/50.5d0,14.0d0/ data x(109),y(109)/53.5d0,11.5d0/ c data x(110),y(110)/61.0d0,15.0d0/ data x(111),y(111)/55.0d0,15.0d0/ data x(112),y(112)/57.8d0,14.0d0/ data x(113),y(113)/57.8d0, 0.0d0/ data x(114),y(114)/61.0d0, 0.0d0/ data x(115),y(115)/61.0d0,14.0d0/ data x(116),y(116)/67.0d0,14.0d0/ data x(117),y(117)/70.0d0,13.0d0/ data x(118),y(118)/71.5d0,10.5d0/ data x(119),y(119)/71.5d0, 4.5d0/ data x(120),y(120)/70.0d0, 2.0d0/ data x(121),y(121)/67.0d0, 1.0d0/ data x(122),y(122)/62.0d0, 1.0d0/ data x(123),y(123)/62.0d0, 0.0d0/ data x(124),y(124)/69.0d0, 0.0d0/ data x(125),y(125)/72.5d0, 1.5d0/ data x(126),y(126)/73.7d0, 3.0d0/ data x(127),y(127)/74.7d0, 5.0d0/ data x(128),y(128)/74.7d0,10.0d0/ data x(129),y(129)/73.7d0,12.0d0/ data x(130),y(130)/72.5d0,13.5d0/ data x(131),y(131)/69.0d0,15.0d0/ c data x(132),y(132)/-33.2d0,-40.0d0/ data x(133),y(133)/114.7d0,-40.0d0/ data x(134),y(134)/114.7d0,92.0d0/ data x(135),y(135)/-33.2d0,92.0d0/ c data ntf,nvf,ncf,nbf/9,135,0,145/ data hmax,grade/0.1d0,1.5d0/ 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 double precision (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) double precision + 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.0d0 vy(1)=0.0d0 vx(2)=4.0d0 vy(2)=0.0d0 vx(3)=4.0d0 vy(3)=1.0d0 vx(4)=3.0d0 vy(4)=1.0d0 vx(5)=2.5d0 vy(5)=f(2.5d0) vx(6)=2.0d0 vy(6)=f(2.0d0) vx(7)=1.5d0 vy(7)=f(1.5d0) vx(8)=1.0d0 vy(8)=0.5d0 vx(9)=0.0d0 vy(9)=0.5d0 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.75d0 yy(1)=f(2.75d0) xx(2)=2.25d0 yy(2)=f(2.25d0) xx(3)=1.75d0 yy(3)=f(1.75d0) xx(4)=1.25d0 yy(4)=f(1.25d0) 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----------------------------------------------------------------------- double precision function f(x) c implicit double precision (a-h,o-z) implicit integer (i-n) c f=(((-.25d0*x+1.5d0)*x-2.25d0)*x+2.d0)/2.d0 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 double precision (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) double precision + 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.0d0, 7.0d0/ data x( 2),y( 2)/ 4.0d0,10.0d0/ data x( 3),y( 3)/ 8.0d0,16.0d0/ data x( 4),y( 4)/11.0d0,20.0d0/ data x( 5),y( 5)/13.0d0,26.0d0/ data x( 6),y( 6)/14.0d0,30.0d0/ data x( 7),y( 7)/ 9.0d0,27.0d0/ data x( 8),y( 8)/ 6.0d0,31.0d0/ data x( 9),y( 9)/10.0d0,34.0d0/ data x(10),y(10)/18.0d0,38.0d0/ data x(11),y(11)/23.0d0,38.0d0/ data x(12),y(12)/21.0d0,34.0d0/ data x(13),y(13)/26.0d0,35.5d0/ data x(14),y(14)/30.0d0,37.0d0/ data x(15),y(15)/35.0d0,36.0d0/ data x(16),y(16)/38.0d0,33.0d0/ data x(17),y(17)/37.0d0,28.0d0/ data x(18),y(18)/33.0d0,24.0d0/ c data x(19),y(19)/40.0d0,27.0d0/ data x(20),y(20)/43.0d0,30.0d0/ data x(21),y(21)/42.5d0,34.0d0/ data x(22),y(22)/42.0d0,37.0d0/ data x(23),y(23)/43.0d0,40.0d0/ data x(24),y(24)/45.5d0,45.0d0/ data x(25),y(25)/49.0d0,50.0d0/ data x(26),y(26)/52.5d0,54.5d0/ data x(27),y(27)/56.0d0,57.5d0/ data x(28),y(28)/58.0d0,55.0d0/ data x(29),y(29)/59.0d0,50.5d0/ data x(30),y(30)/58.5d0,45.0d0/ data x(31),y(31)/57.0d0,40.0d0/ data x(32),y(32)/54.0d0,35.0d0/ data x(33),y(33)/50.0d0,30.0d0/ c data x(34),y(34)/53.0d0,26.5d0/ data x(35),y(35)/57.0d0,28.0d0/ data x(36),y(36)/61.0d0,32.0d0/ data x(37),y(37)/63.0d0,35.0d0/ data x(38),y(38)/58.0d0,35.0d0/ data x(39),y(39)/61.0d0,39.0d0/ data x(40),y(40)/65.0d0,40.0d0/ data x(41),y(41)/69.0d0,48.0d0/ data x(42),y(42)/73.0d0,50.0d0/ data x(43),y(43)/71.5d0,41.0d0/ data x(44),y(44)/77.5d0,42.0d0/ data x(45),y(45)/75.5d0,36.0d0/ data x(46),y(46)/70.0d0,35.0d0/ data x(47),y(47)/70.0d0,30.0d0/ data x(48),y(48)/71.0d0,26.0d0/ c data x(49),y(49)/74.0d0,25.0d0/ data x(50),y(50)/76.0d0,27.0d0/ data x(51),y(51)/79.0d0,30.0d0/ data x(52),y(52)/81.5d0,34.0d0/ data x(53),y(53)/83.0d0,39.0d0/ data x(54),y(54)/89.0d0,40.0d0/ data x(55),y(55)/86.5d0,36.0d0/ data x(56),y(56)/90.0d0,38.5d0/ data x(57),y(57)/95.0d0,40.0d0/ data x(58),y(58)/97.5d0,38.0d0/ data x(59),y(59)/100.0d0,39.0d0/ data x(60),y(60)/104.0d0,39.0d0/ data x(61),y(61)/107.5d0,37.0d0/ data x(62),y(62)/108.5d0,30.0d0/ data x(63),y(63)/110.0d0,27.0d0/ c data x(64),y(64)/113.0d0,26.0d0/ data x(65),y(65)/111.5d0,30.0d0/ data x(66),y(66)/111.5d0,32.0d0/ data x(67),y(67)/113.0d0,36.0d0/ data x(68),y(68)/117.0d0,38.0d0/ data x(69),y(69)/120.0d0,38.5d0/ data x(70),y(70)/123.0d0,38.0d0/ data x(71),y(71)/125.0d0,36.5d0/ data x(72),y(72)/125.0d0,38.0d0/ data x(73),y(73)/130.0d0,39.0d0/ data x(74),y(74)/131.0d0,30.0d0/ data x(75),y(75)/130.0d0,24.0d0/ data x(76),y(76)/129.0d0,20.0d0/ data x(77),y(77)/142.0d0,22.0d0/ data x(78),y(78)/136.0d0,15.0d0/ data x(79),y(79)/127.0d0,13.0d0/ data x(80),y(80)/124.0d0,10.0d0/ data x(81),y(81)/117.0d0, 5.0d0/ data x(82),y(82)/110.0d0, 1.0d0/ data x(83),y(83)/100.0d0,-0.5d0/ data x(84),y(84)/ 90.0d0,-1.5d0/ data x(85),y(85)/ 80.0d0,-1.0d0/ data x(86),y(86)/ 70.0d0,-0.5d0/ data x(87),y(87)/ 60.0d0, 0.0d0/ data x(88),y(88)/ 50.0d0, 1.5d0/ data x(89),y(89)/ 40.0d0, 4.5d0/ data x(90),y(90)/ 35.0d0, 7.0d0/ data x(91),y(91)/ 32.0d0,10.0d0/ data x(92),y(92)/ 31.0d0,12.0d0/ data x(93),y(93)/ 32.0d0,14.0d0/ data x(94),y(94)/ 35.0d0,15.0d0/ data x(95),y(95)/ 40.0d0,16.0d0/ data x(96),y(96)/ 50.0d0,16.1d0/ data x(97),y(97)/ 60.0d0,16.2d0/ data x(98),y(98)/ 70.0d0,16.3d0/ data x(99),y(99)/ 80.0d0,16.5d0/ data x(100),y(100)/ 90.0d0,16.6d0/ data x(101),y(101)/100.0d0,16.7d0/ data x(102),y(102)/110.0d0,16.8d0/ data x(103),y(103)/120.0d0,17.0d0/ data x(104),y(104)/116.0d0,21.5d0/ c data x(105),y(105)/110.0d0,20.0d0/ data x(106),y(106)/105.0d0,20.0d0/ data x(107),y(107)/102.5d0,22.0d0/ data x(108),y(108)/102.0d0,27.0d0/ data x(109),y(109)/101.0d0,31.5d0/ data x(110),y(110)/100.0d0,33.0d0/ data x(111),y(111)/ 98.0d0,30.0d0/ data x(112),y(112)/ 95.0d0,21.0d0/ data x(113),y(113)/ 89.5d0,20.0d0/ data x(114),y(114)/ 90.5d0,24.0d0/ data x(115),y(115)/ 91.5d0,29.0d0/ data x(116),y(116)/ 90.5d0,31.0d0/ data x(117),y(117)/ 87.5d0,29.0d0/ data x(118),y(118)/ 84.0d0,21.0d0/ data x(119),y(119)/ 78.0d0,20.0d0/ data x(120),y(120)/ 79.0d0,22.0d0/ data x(121),y(121)/ 75.0d0,21.0d0/ c data x(122),y(122)/70.0d0,20.0d0/ data x(123),y(123)/66.0d0,22.0d0/ data x(124),y(124)/62.0d0,24.5d0/ data x(125),y(125)/57.0d0,21.0d0/ data x(126),y(126)/52.0d0,20.0d0/ data x(127),y(127)/47.0d0,22.0d0/ c data x(128),y(128)/44.0d0,25.0d0/ data x(129),y(129)/40.0d0,22.5d0/ data x(130),y(130)/35.0d0,21.0d0/ data x(131),y(131)/30.0d0,20.0d0/ data x(132),y(132)/24.0d0,19.0d0/ data x(133),y(133)/18.0d0,20.0d0/ data x(134),y(134)/15.0d0,15.0d0/ data x(135),y(135)/11.0d0,10.0d0/ data x(136),y(136)/ 6.0d0, 6.0d0/ c data x(137),y(137)/19.0d0,26.0d0/ data x(138),y(138)/22.0d0,29.0d0/ data x(139),y(139)/28.0d0,32.0d0/ data x(140),y(140)/31.0d0,31.0d0/ data x(141),y(141)/28.0d0,28.0d0/ data x(142),y(142)/22.0d0,25.0d0/ c data x(143),y(143)/48.0d0,35.0d0/ data x(144),y(144)/48.5d0,40.0d0/ data x(145),y(145)/52.0d0,46.0d0/ data x(146),y(146)/55.0d0,50.0d0/ data x(147),y(147)/55.0d0,46.0d0/ data x(148),y(148)/52.0d0,40.0d0/ c data x(149),y(149