c*********************** problem name: naca ************************ 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),rminf,angle, + uinf,dgamma,dshift,eps,ru(94),su(100) c call rho(ux,uy,r,rx,ry,rxx,rxy,ryy) c values(k0)=ux*r values(kx)=r+ux*rx+dshift values(ky)=ux*ry values(kxx)=2.0d0*rx+rxx*ux values(kyy)=ux*ryy values(kxy)=ry+ux*rxy 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),rminf,angle, + uinf,dgamma,dshift,eps,ru(94),su(100) c call rho(ux,uy,r,rx,ry,rxx,rxy,ryy) c values(k0)=uy*r values(ky)=r+uy*ry+dshift values(kx)=uy*rx values(kyy)=2.0d0*ry+ryy*uy values(kxx)=uy*rxx values(kxy)=rx+uy*rxy 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(*) 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 gnxy(x,y,u,rl,itag,values) c implicit double precision (a-h,o-z) implicit integer (i-n) c double precision + values(*) character*80 + su common /val1/k0,ku,kl,kuu,kul,klu,kll common /atest2/iu(100),rminf,angle, + uinf,dgamma,dshift,eps,ru(94),su(100) c if(rl.ne.rminf) then rminf=rl call cuinf end if c if(itag.le.0) return pi=3.141592653589793d0 ang=(1.0d0/8.0d0+dfloat(itag-1)/4.0d0-angle/180.0d0)*pi cc=dcos(ang) call rho(uinf,0.0d0,r,rx,ry,rxx,rxy,ryy) values(k0)=r*uinf*cc values(kl)=(rx*uinf+r)*cc values(kll)=(2.0d0*rx+rxx*uinf)*cc 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(*) character*80 + su 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(*) character*80 + su,sp common /val0/k0,ku,kx,ky,kl,kuu,kux,kuy,kul, + kxu,kxx,kxy,kxl,kyu,kyx,kyy,kyl,klu,klx,kly,kll common /atest1/ip(100),rp(100),sp(100) common /atest2/iu(100),rminf,angle, + uinf,dgamma,dshift,eps,ru(94),su(100) c c values(k0)=u**2 values(ku)=2.0d0*u values(kuu)=2.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(*) character*80 + su,sp common /val0/k0,ku,kx,ky,kl,kuu,kux,kuy,kul, + kxu,kxx,kxy,kxl,kyu,kyx,kyy,kyl,klu,klx,kly,kll common /atest1/ip(100),rp(100),sp(100) common /atest2/iu(100),rminf,angle, + uinf,dgamma,dshift,eps,ru(94),su(100) c if(itag.gt.0) return values(k0)=ux**2+uy**2 values(kx)=ux*2.0d0 values(ky)=uy*2.0d0 values(kxx)=2.0d0 values(kyy)=2.0d0 return 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(*) character*80 + su common /val3/kf,kf1,kf2,ksk,kad common /atest2/iu(100),rminf,angle, + uinf,dgamma,dshift,eps,ru(94),su(100) c ss=ux**2+uy**2 uu=1.0d0-ss if(uu.gt.0.0d0) then c=ss/uu else c=1.0d20 endif rmach=dsqrt(2.0d0*c/(dgamma-1.d0)) values(kf)=rmach return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine rho(ux,uy,r,rx,ry,rxx,rxy,ryy) c implicit double precision (a-h,o-z) implicit integer (i-n) character*80 + su common /atest2/iu(100),rminf,angle, + uinf,dgamma,dshift,eps,ru(94),su(100) c uu=1.0d0-ux**2-uy**2 uux=-2.0d0*ux uuy=-2.0d0*uy uuxx=-2.0d0 uuyy=-2.0d0 uuxy=0.0d0 al=1.0d0/(dgamma-1.0d0) c if(uu.gt.eps) then r=uu**al r1=al*r/uu r2=(al-1.0d0)*r1/uu rx=r1*uux ry=r1*uuy rxx=r2*uux**2+r1*uuxx ryy=r2*uuy**2+r1*uuyy rxy=r2*uux*uuy+r1*uuxy else ff=eps*dexp((uu-eps)/eps) fx=ff*uux/eps fy=ff*uuy/eps fxx=ff*((uux/eps)**2+uuxx/eps) fyy=ff*((uuy/eps)**2+uuyy/eps) fxy=ff*((uux*uuy)/eps**2+uuxy/eps) c r=ff**al r1=al*ff**(al-1.0d0) r2=(al-1.0d0)*al*ff**(al-2.0d0) rx=r1*fx ry=r1*fy rxx=r2*fx**2+r1*fxx ryy=r2*fy**2+r1*fyy rxy=r2*fx*fy+r1*fxy endif return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- double precision function wing(x) c implicit double precision (a-h,o-z) implicit integer (i-n) c z=x+0.5d0 t=0.12d0 q=(((.1015d0*z-.2843d0)*z+.3516d0)*z+.126d0)*z wing=5.0d0*t*(0.2969d0*dsqrt(z)-q) return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine cuinf c implicit double precision (a-h,o-z) implicit integer (i-n) character*80 + su common /atest2/iu(100),rminf,angle, + uinf,dgamma,dshift,eps,ru(94),su(100) c a=2.0d0/(dgamma-1.0d0) c2=rminf**2+a c=dsqrt(c2) uinf=rminf/c c 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(20) save len,file c data len/10/ data (file(i),i= 1, 10)/ + 'n i= 1,n=domain,a= d,t=i', 1 'n i= 1,n=minf ,a= m,t=r', 2 'n i= 2,n=angle ,a= a,t=r', 3 'n i= 5,n=dshift,a=dd,t=r', 4 'n i= 6,n=eps ,a= e,t=r', 5 'n i= 7,n=size ,a= s,t=r', 6 's n=domain,v=1,l="naca 0012"', 7 's n=domain,v=2,l="bi naca 0012"', 8 's n=domain,v=3,l="three element airfoil"', 9 's n=domain,v=4,l="three element airfoil"'/ c c ii=iu(1) s=ru(7) c call usrset(file,len,iu,ru,su) c ic=0 if(ii.ne.iu(1)) ic=1 if(s.ne.ru(7)) ic=1 if(ic.eq.0) then call cuinf else iu(1)=max0(1,iu(1)) iu(1)=min0(4,iu(1)) ip(41)=-1 endif 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) c save ispd,iprob,itask,size,ratio,dshift,eps,ising save dgamma,angle,rminf data ispd,iprob,itask,ising/1,0,0,1/ data dgamma,angle,rminf/1.4d0,0.0d0,0.72d0/ data dshift,eps/1.0d-3,1.0d-2/ data size,ratio/8.0d0,1.0d0/ c if(ip(41).eq.1) then iu(1)=1 ru(1)=rminf ru(2)=angle ru(4)=dgamma ru(5)=dshift ru(6)=eps ru(7)=size endif c call cuinf 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) c ip(6)=max0(ip(6),ip(26),1) ip(7)=iprob ip(12)=ising ip(9)=itask ip(8)=ispd ip(20)=5 sp(6)='naca_mpixxx.rw' sp(7)='naca.jnl' sp(9)='naca_mpixxx.out' c c 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 xw(16),yw(16) character*80 + sp(100),su(100) save ntf,nvf,ncf,nbf,hmax,grade,xy,yw c data ntf,nvf,ncf,nbf/2,42,0,44/ data hmax,grade/0.1d0,1.75d0/ c c definition of naca0012 c data xw(1),yw(1)/.00351381d0,.00919038d0/ data xw(2),yw(2)/.01346558d0,.01914215d0/ data xw(3),yw(3)/.03066379d0,.02881318d0/ data xw(4),yw(4)/.05517089d0,.03721619d0/ data xw(5),yw(5)/.08673215d0,.04423213d0/ data xw(6),yw(6)/.12514615d0,.05026549d0/ data xw(7),yw(7)/.17041743d0,.05524749d0/ data xw(8),yw(8)/.22262233d0,.05855709d0/ data xw(9),yw(9)/.28171957d0,.06009519d0/ data xw(10),yw(10)/.34769243d0,.05966640d0/ data xw(11),yw(11)/.42050737d0,.05719906d0/ data xw(12),yw(12)/.50013381d0,.05277705d0/ data xw(13),yw(13)/.58655041d0,.04655302d0/ data xw(14),yw(14)/.67974794d0,.03855282d0/ data xw(15),yw(15)/.77972806d0,.02845609d0/ data xw(16),yw(16)/.88648617d0,.01568145d0/ c c sp(2)='naca 0012' sp(1)='naca 0012' sp(3)='naca 0012' sp(4)='naca 0012' c rp(1)=ru(1) pi=3.141592653589793d0 c size=ru(7) vx(1)=-0.5d0 vy(1)=0.0d0 vx(2)=0.5d0 vy(2)=0.0d0 do i=3,10 arg=pi*dfloat(i-3)/4.0d0 vx(i)=size*dcos(arg) vy(i)=size*dsin(arg) enddo do i=1,16 vx(10+i)=xw(i)-.5d0 vy(10+i)=yw(i) vx(26+i)=xw(i)-.5d0 vy(26+i)=-yw(i) enddo c c do i=1,8 ibndry(1,i)=i+2 ibndry(2,i)=i+3 ibndry(3,i)=0 ibndry(4,i)=1 ibndry(5,i)=0 ibndry(6,i)=i enddo ibndry(2,8)=3 ibndry(1,9)=7 ibndry(2,9)=1 ibndry(3,9)=0 ibndry(4,9)=0 ibndry(6,9)=0 ibndry(1,10)=2 ibndry(2,10)=3 ibndry(3,10)=0 ibndry(4,10)=0 ibndry(6,10)=0 do i=11,27 ibndry(1,i)=i-1 ibndry(2,i)=i ibndry(3,i)=0 ibndry(4,i)=1 ibndry(5,i)=0 ibndry(6,i)=-1 enddo ibndry(1,11)=1 ibndry(2,27)=2 do i=28,44 ibndry(1,i)=i-2 ibndry(2,i)=i-1 ibndry(3,i)=0 ibndry(4,i)=1 ibndry(5,i)=0 ibndry(6,i)=-2 enddo ibndry(1,28)=1 ibndry(2,44)=2 c ip(1)=ntf ip(2)=nvf ip(3)=ncf ip(4)=nbf rp(15)=hmax rp(16)=grade 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----------------------------------------------------------------------- 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(*), 1 xw(16),yw(16) character*80 + sp(100),su(100) save ntf,nvf,ncf,nbf,hmax,grade c data ntf,nvf,ncf,nbf/4,78,0,83/ data hmax,grade/0.1d0,1.75d0/ c c definition of naca0012 c data xw(1),yw(1)/.00351381d0,.00919038d0/ data xw(2),yw(2)/.01346558d0,.01914215d0/ data xw(3),yw(3)/.03066379d0,.02881318d0/ data xw(4),yw(4)/.05517089d0,.03721619d0/ data xw(5),yw(5)/.08673215d0,.04423213d0/ data xw(6),yw(6)/.12514615d0,.05026549d0/ data xw(7),yw(7)/.17041743d0,.05524749d0/ data xw(8),yw(8)/.22262233d0,.05855709d0/ data xw(9),yw(9)/.28171957d0,.06009519d0/ data xw(10),yw(10)/.34769243d0,.05966640d0/ data xw(11),yw(11)/.42050737d0,.05719906d0/ data xw(12),yw(12)/.50013381d0,.05277705d0/ data xw(13),yw(13)/.58655041d0,.04655302d0/ data xw(14),yw(14)/.67974794d0,.03855282d0/ data xw(15),yw(15)/.77972806d0,.02845609d0/ data xw(16),yw(16)/.88648617d0,.01568145d0/ c c sp(2)='bi naca 0012' sp(1)='bi naca 0012' sp(3)='bi naca 0012' sp(4)='bi naca 0012' c rp(1)=ru(1) size=ru(7) c pi=3.141592653589793d0 c vx(1)=-0.5d0 vy(1)=0.0d0 vx(2)=0.5d0 vy(2)=0.0d0 vx(75)=vx(1) vy(75)=0.25d0 vx(76)=vx(2) vy(76)=0.25d0 vx(77)=vx(1) vy(77)=-0.25d0 vx(78)=vx(2) vy(78)=-0.25d0 do i=3,10 arg=pi*dfloat(i-3)/4.0d0 vx(i)=size*dcos(arg) vy(i)=size*dsin(arg) enddo do i=1,16 vx(10+i)=xw(i)-.5d0 vy(10+i)=yw(i)+.25d0 vx(26+i)=xw(i)-.5d0 vy(26+i)=-yw(i)+.25d0 vx(42+i)=xw(i)-.5d0 vy(42+i)=yw(i)-.25d0 vx(58+i)=xw(i)-.5d0 vy(58+i)=-yw(i)-.25d0 enddo c c do i=1,8 ibndry(1,i)=i+2 ibndry(2,i)=i+3 ibndry(3,i)=0 ibndry(4,i)=1 ibndry(5,i)=0 ibndry(6,i)=i enddo ibndry(2,8)=3 ibndry(1,9)=7 ibndry(2,9)=1 ibndry(3,9)=0 ibndry(4,9)=0 ibndry(6,9)=0 ibndry(1,10)=2 ibndry(2,10)=3 ibndry(3,10)=0 ibndry(4,10)=0 ibndry(6,10)=0 do i=11,27 ibndry(1,i)=i-1 ibndry(2,i)=i ibndry(3,i)=0 ibndry(4,i)=1 ibndry(5,i)=0 ibndry(6,i)=-1 enddo ibndry(1,11)=75 ibndry(2,27)=76 do i=28,44 ibndry(1,i)=i-2 ibndry(2,i)=i-1 ibndry(3,i)=0 ibndry(4,i)=1 ibndry(5,i)=0 ibndry(6,i)=-2 enddo ibndry(1,28)=75 ibndry(2,44)=76 do i=45,61 ibndry(1,i)=i-3 ibndry(2,i)=i-2 ibndry(3,i)=0 ibndry(4,i)=1 ibndry(5,i)=0 ibndry(6,i)=-3 enddo ibndry(1,45)=77 ibndry(2,61)=78 do i=62,78 ibndry(1,i)=i-4 ibndry(2,i)=i-3 ibndry(3,i)=0 ibndry(4,i)=1 ibndry(5,i)=0 ibndry(6,i)=-4 enddo ibndry(1,62)=77 ibndry(2,78)=78 c do i=79,83 ibndry(3,i)=0 ibndry(4,i)=0 ibndry(5,i)=0 ibndry(6,i)=0 enddo ibndry(1,79)=1 ibndry(2,79)=75 ibndry(1,80)=1 ibndry(2,80)=77 ibndry(1,81)=2 ibndry(2,81)=76 ibndry(1,82)=2 ibndry(2,82)=78 ibndry(1,83)=2 ibndry(2,83)=1 c ip(1)=ntf ip(2)=nvf ip(3)=ncf ip(4)=nbf rp(15)=hmax rp(16)=grade 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----------------------------------------------------------------------- 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) double precision + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*), 1 x(193),y(193) character*80 + sp(100),su(100) save ntf,nvf,ncf,nbf,hmax,grade,x,y c data ntf,nvf,ncf,nbf/2,201,0,205/ data hmax,grade/0.1d0,1.75d0/ 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/ c sp(2)='wing' sp(1)='wing' sp(3)='wing' sp(4)='wing' c pi=3.141592653589793d0 nw=9 nf1=100 nf2=153 c size=ru(7) do i=1,8 arg=pi*dfloat(i-1)/4.0d0 vx(i)=size*dcos(arg) vy(i)=size*dsin(arg) enddo xmin=x(1) xmax=x(1) ymin=y(1) ymax=y(1) do i=1,nvf-8 xmax=dmax1(xmax,x(i)) xmin=dmin1(xmin,x(i)) ymax=dmax1(ymax,y(i)) ymin=dmin1(ymin,y(i)) enddo xx=(xmin+xmax)/2.0d0 yy=(ymin+ymax)/2.0d0 ss=dmax1(xmax-xmin,ymax-ymin) do i=9,nvf vx(i)=(x(i-8)-xx)/ss vy(i)=(y(i-8)-yy)/ss enddo c do i=1,nbf ibndry(1,i)=i ibndry(2,i)=i+1 ibndry(3,i)=0 if(i.le.nvf) then ibndry(4,i)=1 else ibndry(4,i)=0 endif ibndry(5,i)=0 if(i.lt.nw) then ibndry(6,i)=i else ibndry(6,i)=-1 endif enddo ibndry(2,nw-1)=1 ibndry(2,nf1-1)=nw ibndry(2,nf2-1)=nf1 ibndry(2,nvf)=nf2 c ibndry(1,nvf+1)=5 ibndry(2,nvf+1)=10 ibndry(1,nvf+2)=69 ibndry(2,nvf+2)=144 ibndry(1,nvf+3)=125 ibndry(2,nvf+3)=180 ibndry(1,nvf+4)=164 ibndry(2,nvf+4)=1 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) c 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(250),y(250) character*80 + sp(100),su(100) save ntf,nvf,ncf,nbf,hmax,grade,x,y c data ntf,nvf,ncf,nbf/4,240,0,244/ data hmax,grade/0.1d0,1.75d0/ c c wing c data x( 1),y( 1)/-0.7341200d+02,-0.8805300d+02/ data x( 2),y( 2)/-0.7525800d+02,-0.8565400d+02/ data x( 3),y( 3)/-0.7734500d+02,-0.8224000d+02/ data x( 4),y( 4)/-0.7897900d+02,-0.7741000d+02/ data x( 5),y( 5)/-0.7964800d+02,-0.6625000d+02/ data x( 6),y( 6)/-0.7751900d+02,-0.5693800d+02/ data x( 7),y( 7)/-0.7210900d+02,-0.4630900d+02/ data x( 8),y( 8)/-0.5903800d+02,-0.2894700d+02/ data x( 9),y( 9)/-0.4446800d+02,-0.1418400d+02/ data x( 10),y( 10)/-0.2864700d+02,-0.1586000d+01/ data x( 11),y( 11)/-0.1615700d+02, 0.6780000d+01/ data x( 12),y( 12)/-0.1197700d+02, 0.9540000d+01/ data x( 13),y( 13)/-0.1272700d+02, 0.1083900d+02/ data x( 14),y( 14)/-0.2115900d+02, 0.5444000d+01/ data x( 15),y( 15)/-0.2953400d+02,-0.5000000d-01/ data x( 16),y( 16)/-0.3785300d+02,-0.5642000d+01/ data x( 17),y( 17)/-0.4610400d+02,-0.1135100d+02/ data x( 18),y( 18)/-0.5428500d+02,-0.1718100d+02/ data x( 19),y( 19)/-0.6237800d+02,-0.2316300d+02/ data x( 20),y( 20)/-0.7035100d+02,-0.2935300d+02/ data x( 21),y( 21)/-0.7814600d+02,-0.3585300d+02/ data x( 22),y( 22)/-0.8565500d+02,-0.4284600d+02/ data x( 23),y( 23)/-0.9265900d+02,-0.5071500d+02/ data x( 24),y( 24)/-0.9584400d+02,-0.5519900d+02/ data x( 25),y( 25)/-0.9867100d+02,-0.6030100d+02/ data x( 26),y( 26)/-0.9988500d+02,-0.6319900d+02/ data x( 27),y( 27)/-0.1009060d+03,-0.6643100d+02/ data x( 28),y( 28)/-0.1012230d+03,-0.6788100d+02/ data x( 29),y( 29)/-0.1014780d+03,-0.6944000d+02/ data x( 30),y( 30)/-0.1015770d+03,-0.7026800d+02/ data x( 31),y( 31)/-0.1016190d+03,-0.7119600d+02/ data x( 32),y( 32)/-0.1016260d+03,-0.7218400d+02/ data x( 33),y( 33)/-0.1015040d+03,-0.7339400d+02/ data x( 34),y( 34)/-0.1012670d+03,-0.7480500d+02/ data x( 35),y( 35)/-0.1009830d+03,-0.7579700d+02/ data x( 36),y( 36)/-0.1000000d+03,-0.7800000d+02/ data x( 37),y( 37)/-0.9803300d+02,-0.8090600d+02/ data x( 38),y( 38)/-0.9714200d+02,-0.8195000d+02/ data x( 39),y( 39)/-0.9577100d+02,-0.8332400d+02/ data x( 40),y( 40)/-0.9466300d+02,-0.8424300d+02/ data x( 41),y( 41)/-0.9365000d+02,-0.8499800d+02/ data x( 42),y( 42)/-0.9272200d+02,-0.8560500d+02/ data x( 43),y( 43)/-0.9185200d+02,-0.8611300d+02/ data x( 44),y( 44)/-0.9023100d+02,-0.8692100d+02/ data x( 45),y( 45)/-0.8873100d+02,-0.8751900d+02/ data x( 46),y( 46)/-0.8519600d+02,-0.8864200d+02/ data x( 47),y( 47)/-0.8184500d+02,-0.8944600d+02/ data x( 48),y( 48)/-0.7552900d+02,-0.9038600d+02/ data x( 49),y( 49)/-0.6960800d+02,-0.9064000d+02/ data x( 50),y( 50)/ 0.4800000d+03,-0.5629000d+01/ data x( 51),y( 51)/ 0.4699950d+03,-0.3402000d+01/ data x( 52),y( 52)/ 0.4599990d+03,-0.1148000d+01/ data x( 53),y( 53)/ 0.4550010d+03,-0.1000000d-01/ data x( 54),y( 54)/ 0.4449990d+03, 0.2281000d+01/ data x( 55),y( 55)/ 0.4349980d+03, 0.4563000d+01/ data x( 56),y( 56)/ 0.4249980d+03, 0.6796000d+01/ data x( 57),y( 57)/ 0.4150000d+03, 0.8960000d+01/ data x( 58),y( 58)/ 0.4050030d+03, 0.1104900d+02/ data x( 59),y( 59)/ 0.3950000d+03, 0.1305600d+02/ data x( 60),y( 60)/ 0.3900010d+03, 0.1402000d+02/ data x( 61),y( 61)/ 0.3849980d+03, 0.1495500d+02/ data x( 62),y( 62)/ 0.3800010d+03, 0.1585700d+02/ data x( 63),y( 63)/ 0.3750000d+03, 0.1673200d+02/ data x( 64),y( 64)/ 0.3700000d+03, 0.1758300d+02/ data x( 65),y( 65)/ 0.3650000d+03, 0.1841000d+02/ data x( 66),y( 66)/ 0.3600000d+03, 0.1921100d+02/ data x( 67),y( 67)/ 0.3500000d+03, 0.2073700d+02/ data x( 68),y( 68)/ 0.3299990d+03, 0.2349000d+02/ data x( 69),y( 69)/ 0.3000000d+03, 0.2693900d+02/ data x( 70),y( 70)/ 0.2800000d+03, 0.2883300d+02/ data x( 71),y( 71)/ 0.2600000d+03, 0.3043000d+02/ data x( 72),y( 72)/ 0.2400000d+03, 0.3174400d+02/ data x( 73),y( 73)/ 0.2000000d+03, 0.3353000d+02/ data x( 74),y( 74)/ 0.1600000d+03, 0.3411500d+02/ data x( 75),y( 75)/ 0.1200000d+03, 0.3329900d+02/ data x( 76),y( 76)/ 0.1100000d+03, 0.3284300d+02/ data x( 77),y( 77)/ 0.1000000d+03, 0.3227400d+02/ data x( 78),y( 78)/ 0.9000000d+02, 0.3158700d+02/ data x( 79),y( 79)/ 0.8000000d+02, 0.3077100d+02/ data x( 80),y( 80)/ 0.7000000d+02, 0.2981000d+02/ data x( 81),y( 81)/ 0.6000100d+02, 0.2867300d+02/ data x( 82),y( 82)/ 0.5000100d+02, 0.2730000d+02/ data x( 83),y( 83)/ 0.4000000d+02, 0.2557600d+02/ data x( 84),y( 84)/ 0.2999800d+02, 0.2328000d+02/ data x( 85),y( 85)/ 0.1999600d+02, 0.1996800d+02/ data x( 86),y( 86)/ 0.1500000d+02, 0.1766900d+02/ data x( 87),y( 87)/ 0.1000400d+02, 0.1465700d+02/ data x( 88),y( 88)/ 0.7505000d+01, 0.1275500d+02/ data x( 89),y( 89)/ 0.5009000d+01, 0.1046400d+02/ data x( 90),y( 90)/ 0.3998000d+01, 0.9377000d+01/ data x( 91),y( 91)/ 0.2995000d+01, 0.8156000d+01/ data x( 92),y( 92)/ 0.2504000d+01, 0.7482000d+01/ data x( 93),y( 93)/ 0.1996000d+01, 0.6704000d+01/ data x( 94),y( 94)/ 0.1507000d+01, 0.5846000d+01/ data x( 95),y( 95)/ 0.9860000d+00, 0.4747000d+01/ data x( 96),y( 96)/ 0.4990000d+00, 0.3400000d+01/ data x( 97),y( 97)/ 0.2430000d+00, 0.2401000d+01/ data x( 98),y( 98)/-0.3900000d-01, 0.0000000d+00/ data x( 99),y( 99)/ 0.2290000d+00,-0.3503000d+01/ data x(100),y(100)/ 0.4970000d+00,-0.4851000d+01/ data x(101),y(101)/ 0.1010000d+01,-0.6722000d+01/ data x(102),y(102)/ 0.1497000d+01,-0.8076000d+01/ data x(103),y(103)/ 0.2000000d+01,-0.9235000d+01/ data x(104),y(104)/ 0.2501000d+01,-0.1022500d+02/ data x(105),y(105)/ 0.3001000d+01,-0.1109900d+02/ data x(106),y(106)/ 0.4001000d+01,-0.1260900d+02/ data x(107),y(107)/ 0.4985000d+01,-0.1389100d+02/ data x(108),y(108)/ 0.7486000d+01,-0.1663300d+02/ data x(109),y(109)/ 0.1001300d+02,-0.1897500d+02/ data x(110),y(110)/ 0.1504300d+02,-0.2290100d+02/ data x(111),y(111)/ 0.2003500d+02,-0.2608100d+02/ data x(112),y(112)/ 0.2998700d+02,-0.3082600d+02/ data x(113),y(113)/ 0.3998200d+02,-0.3412700d+02/ data x(114),y(114)/ 0.4999400d+02,-0.3656400d+02/ data x(115),y(115)/ 0.6000100d+02,-0.3849300d+02/ data x(116),y(116)/ 0.7000100d+02,-0.4008600d+02/ data x(117),y(117)/ 0.8000000d+02,-0.4141900d+02/ data x(118),y(118)/ 0.9000000d+02,-0.4253000d+02/ data x(119),y(119)/ 0.1000000d+03,-0.4345100d+02/ data x(120),y(120)/ 0.1100000d+03,-0.4420300d+02/ data x(121),y(121)/ 0.1200000d+03,-0.4480100d+02/ data x(122),y(122)/ 0.1600000d+03,-0.4580000d+02/ data x(123),y(123)/ 0.1999970d+03,-0.4462600d+02/ data x(124),y(124)/ 0.2399890d+03,-0.4128600d+02/ data x(125),y(125)/ 0.2599900d+03,-0.3890500d+02/ data x(126),y(126)/ 0.2800070d+03,-0.3614000d+02/ data x(127),y(127)/ 0.2900140d+03,-0.3457800d+02/ data x(128),y(128)/ 0.3000130d+03,-0.3282100d+02/ data x(129),y(129)/ 0.3099810d+03,-0.3087700d+02/ data x(130),y(130)/ 0.3149850d+03,-0.2992100d+02/ data x(131),y(131)/ 0.3200030d+03,-0.2906800d+02/ data x(132),y(132)/ 0.3225000d+03,-0.2867400d+02/ data x(133),y(133)/ 0.3250020d+03,-0.2826300d+02/ data x(134),y(134)/ 0.3274960d+03,-0.2778200d+02/ data x(135),y(135)/ 0.3299960d+03,-0.2718300d+02/ data x(136),y(136)/ 0.3325000d+03,-0.2645100d+02/ data x(137),y(137)/ 0.3350010d+03,-0.2560200d+02/ data x(138),y(138)/ 0.3362530d+03,-0.2513400d+02/ data x(139),y(139)/ 0.3374940d+03,-0.2463500d+02/ data x(140),y(140)/ 0.3387550d+03,-0.2408500d+02/ data x(141),y(141)/ 0.3399980d+03,-0.2349500d+02/ data x(142),y(142)/ 0.3412520d+03,-0.2285300d+02/ data x(143),y(143)/ 0.3424880d+03,-0.2217600d+02/ data x(144),y(144)/ 0.3449910d+03,-0.2068500d+02/ data x(145),y(145)/ 0.3475120d+03,-0.1906800d+02/ data x(146),y(146)/ 0.3500070d+03,-0.1741000d+02/ data x(147),y(147)/ 0.3525060d+03,-0.1570800d+02/ data x(148),y(148)/ 0.3549740d+03,-0.1396400d+02/ data x(149),y(149)/ 0.3574990d+03,-0.1209900d+02/ data x(150),y(150)/ 0.3600120d+03,-0.1021500d+02/ data x(151),y(151)/ 0.3625070d+03,-0.8410000d+01/ data x(152),y(152)/ 0.3650170d+03,-0.6727000d+01/ data x(153),y(153)/ 0.3699540d+03,-0.3851000d+01/ data x(154),y(154)/ 0.3750330d+03,-0.1614000d+01/ data x(155),y(155)/ 0.3799770d+03,-0.2030000d+00/ data x(156),y(156)/ 0.3850080d+03, 0.8770000d+00/ data x(157),y(157)/ 0.3900180d+03, 0.1822000d+01/ data x(158),y(158)/ 0.3950120d+03, 0.2578000d+01/ data x(159),y(159)/ 0.4049980d+03, 0.3365000d+01/ data x(160),y(160)/ 0.4150020d+03, 0.3298000d+01/ data x(161),y(161)/ 0.4250020d+03, 0.2615000d+01/ data x(162),y(162)/ 0.4350000d+03, 0.1450000d+01/ data x(163),y(163)/ 0.4449910d+03,-0.1490000d+00/ data x(164),y(164)/ 0.4549980d+03,-0.2112000d+01/ data x(165),y(165)/ 0.4600040d+03,-0.3182000d+01/ data x(166),y(166)/ 0.4700020d+03,-0.5393000d+01/ data x(167),y(167)/ 0.4800000d+03,-0.7630000d+01/ data x(168),y(168)/ 0.5874560d+03,-0.1075470d+03/ data x(169),y(169)/ 0.5806450d+03,-0.1001030d+03/ data x(170),y(170)/ 0.5736890d+03,-0.9283500d+02/ data x(171),y(171)/ 0.5665730d+03,-0.8576000d+02/ data x(172),y(172)/ 0.5592040d+03,-0.7898300d+02/ data x(173),y(173)/ 0.5516000d+03,-0.7249000d+02/ data x(174),y(174)/ 0.5477020d+03,-0.6935400d+02/ data x(175),y(175)/ 0.5437430d+03,-0.6629600d+02/ data x(176),y(176)/ 0.5397290d+03,-0.6330300d+02/ data x(177),y(177)/ 0.5356540d+03,-0.6037600d+02/ data x(178),y(178)/ 0.5315260d+03,-0.5752100d+02/ data x(179),y(179)/ 0.5273440d+03,-0.5472700d+02/ data x(180),y(180)/ 0.5231150d+03,-0.5198700d+02/ data x(181),y(181)/ 0.5188390d+03,-0.4930600d+02/ data x(182),y(182)/ 0.5145000d+03,-0.4669400d+02/ data x(183),y(183)/ 0.5101340d+03,-0.4412300d+02/ data x(184),y(184)/ 0.5057630d+03,-0.4155500d+02/ data x(185),y(185)/ 0.5013720d+03,-0.3900900d+02/ data x(186),y(186)/ 0.4969530d+03,-0.3649800d+02/ data x(187),y(187)/ 0.4925200d+03,-0.3400200d+02/ data x(188),y(188)/ 0.4880910d+03,-0.3150300d+02/ data x(189),y(189)/ 0.4836620d+03,-0.2900300d+02/ data x(190),y(190)/ 0.4801400d+03,-0.2697700d+02/ data x(191),y(191)/ 0.4775070d+03,-0.2544900d+02/ data x(192),y(192)/ 0.4757950d+03,-0.2437800d+02/ data x(193),y(193)/ 0.4741210d+03,-0.2326200d+02/ data x(194),y(194)/ 0.4733800d+03,-0.2258900d+02/ data x(195),y(195)/ 0.4728840d+03,-0.2162500d+02/ data x(196),y(196)/ 0.4725800d+03,-0.2043100d+02/ data x(197),y(197)/ 0.4726720d+03,-0.1954200d+02/ data x(198),y(198)/ 0.4735220d+03,-0.1775000d+02/ data x(199),y(199)/ 0.4749850d+03,-0.1678300d+02/ data x(200),y(200)/ 0.4759340d+03,-0.1643000d+02/ data x(201),y(201)/ 0.4775480d+03,-0.1606100d+02/ data x(202),y(202)/ 0.4790210d+03,-0.1586100d+02/ data x(203),y(203)/ 0.4804040d+03,-0.1576700d+02/ data x(204),y(204)/ 0.4829900d+03,-0.1579500d+02/ data x(205),y(205)/ 0.4854220d+03,-0.1600700d+02/ data x(206),y(206)/ 0.4889160d+03,-0.1650900d+02/ data x(207),y(207)/ 0.4933570d+03,-0.1743900d+02/ data x(208),y(208)/ 0.4984710d+03,-0.1912100d+02/ data x(209),y(209)/ 0.5033580d+03,-0.2107400d+02/ data x(210),y(210)/ 0.5079970d+03,-0.2332300d+02/ data x(211),y(211)/ 0.5124480d+03,-0.2579700d+02/ data x(212),y(212)/ 0.5167650d+03,-0.2843200d+02/ data x(213),y(213)/ 0.5209470d+03,-0.3122600d+02/ data x(214),y(214)/ 0.5250150d+03,-0.3415700d+02/ data x(215),y(215)/ 0.5289710d+03,-0.3722100d+02/ data x(216),y(216)/ 0.5328250d+03,-0.4040700d+02/ data x(217),y(217)/ 0.5343400d+03,-0.4171200d+02/ data x(218),y(218)/ 0.5365790d+03,-0.4370500d+02/ data x(219),y(219)/ 0.5387910d+03,-0.4574300d+02/ data x(220),y(220)/ 0.5402440d+03,-0.4711700d+02/ data x(221),y(221)/ 0.5424040d+03,-0.4921200d+02/ data x(222),y(222)/ 0.5438330d+03,-0.5062100d+02/ data x(223),y(223)/ 0.5459570d+03,-0.5275400d+02/ data x(224),y(224)/ 0.5473660d+03,-0.5419100d+02/ data x(225),y(225)/ 0.5494520d+03,-0.5637100d+02/ data x(226),y(226)/ 0.5508270d+03,-0.5784200d+02/ data x(227),y(227)/ 0.5528690d+03,-0.6008400d+02/ data x(228),y(228)/ 0.5542100d+03,-0.6159200d+02/ data x(229),y(229)/ 0.5562130d+03,-0.6388300d+02/ data x(230),y(230)/ 0.5575280d+03,-0.6541600d+02/ data x(231),y(231)/ 0.5594970d+03,-0.6774300d+02/ data x(232),y(232)/ 0.5607990d+03,-0.6929800d+02/ data x(233),y(233)/ 0.5627390d+03,-0.7165800d+02/ data x(234),y(234)/ 0.5640230d+03,-0.7323600d+02/ data x(235),y(235)/ 0.5672100d+03,-0.7721500d+02/ data x(236),y(236)/ 0.5703490d+03,-0.8125400d+02/ data x(237),y(237)/ 0.5722250d+03,-0.8368800d+02/ data x(238),y(238)/ 0.5765730d+03,-0.8939500d+02/ data x(239),y(239)/ 0.5827580d+03,-0.9758100d+02/ data x(240),y(240)/ 0.5890550d+03,-0.1056390d+03/ c sp(2)='wing' sp(1)='wing' sp(3)='wing' sp(4)='wing' c pi=3.141592653589793d0 c size=ru(7) do i=1,8 arg=pi*dfloat(i-1)/4.0d0 vx(i)=size*dcos(arg) vy(i)=size*dsin(arg) enddo xmin=x(1) xmax=x(1) ymin=y(1) ymax=y(1) do i=1,nvf-8 xmax=dmax1(xmax,x(i)) xmin=dmin1(xmin,x(i)) ymax=dmax1(ymax,y(i)) ymin=dmin1(ymin,y(i)) enddo xx=(xmin+xmax)/2.0d0 yy=(ymin+ymax)/2.0d0 ss=dmax1(xmax-xmin,ymax-ymin) do i=9,nvf vx(i)=(x(i-8)-xx)/ss vy(i)=(y(i-8)-yy)/ss enddo c do i=1,nbf ibndry(1,i)=i ibndry(2,i)=i+1 ibndry(3,i)=0 if(i.le.nvf) then ibndry(4,i)=1 else ibndry(4,i)=0 endif ibndry(5,i)=0 if(i.le.8) then ibndry(6,i)=i else ibndry(6,i)=-1 endif enddo ns=9 nw=ns+49 nf=nw+118 nn=nf+73 ibndry(2,ns-1)=1 ibndry(2,nw-1)=ns ibndry(2,nf-1)=nw ibndry(2,nvf)=nf imn=nw imx=nw do i=nw,nf-1 if(vx(i).le.vx(imn)) imn=i if(vx(i).ge.vx(imx)) imx=i enddo jmn=ns jmx=ns do i=ns,nw-1 qj=(vx(5)-vx(jmn))**2+(vy(5)-vy(jmn))**2 qi=(vx(5)-vx(i))**2+(vy(5)-vy(i))**2 if(qi.le.qj) jmn=i qj=(vx(imn)-vx(jmx))**2+(vy(imn)-vy(jmx))**2 qi=(vx(imn)-vx(i))**2+(vy(imn)-vy(i))**2 if(qi.le.qj) jmx=i enddo kmn=nf kmx=nf do i=nf,nn-1 qj=(vx(imx)-vx(kmn))**2+(vy(imx)-vy(kmn))**2 qi=(vx(imx)-vx(i))**2+(vy(imx)-vy(i))**2 if(qi.le.qj) kmn=i qj=(vx(1)-vx(kmx))**2+(vy(1)-vy(kmx))**2 qi=(vx(1)-vx(i))**2+(vy(1)-vy(i))**2 if(qi.le.qj) kmx=i enddo imn=nw imx=nw do i=nw,nf-1 qj=(vx(jmx)-vx(imn))**2+(vy(jmx)-vy(imn))**2 qi=(vx(jmx)-vx(i))**2+(vy(jmx)-vy(i))**2 if(qi.le.qj) imn=i qj=(vx(kmn)-vx(imx))**2+(vy(kmn)-vy(imx))**2 qi=(vx(kmn)-vx(i))**2+(vy(kmn)-vy(i))**2 if(qi.le.qj) imx=i enddo c ibndry(1,nvf+1)=5 ibndry(2,nvf+1)=jmn ibndry(1,nvf+2)=jmx ibndry(2,nvf+2)=imn ibndry(1,nvf+3)=imx ibndry(2,nvf+3)=kmn ibndry(1,nvf+4)=kmx ibndry(2,nvf+4)=1 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) c return end