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