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