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 real (a-h,o-z) implicit integer (i-n) c real + values(*) character*80 + su common /val0/k0,ku,kx,ky,kl,kuu,kux,kuy,kul, + kxu,kxx,kxy,kxl,kyu,kyx,kyy,kyl,klu,klx,kly,kll common /atest2/iu(100),rminf,angle, + uinf,gamma,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.0e0*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 real (a-h,o-z) implicit integer (i-n) c real + values(*) character*80 + su common /val0/k0,ku,kx,ky,kl,kuu,kux,kuy,kul, + kxu,kxx,kxy,kxl,kyu,kyx,kyy,kyl,klu,klx,kly,kll common /atest2/iu(100),rminf,angle, + uinf,gamma,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.0e0*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 real (a-h,o-z) implicit integer (i-n) c real + values(*) common /val0/k0,ku,kx,ky,kl,kuu,kux,kuy,kul, + kxu,kxx,kxy,kxl,kyu,kyx,kyy,kyl,klu,klx,kly,kll c return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine gnxy(x,y,u,rl,itag,values) c implicit real (a-h,o-z) implicit integer (i-n) c real + values(*) character*80 + su common /val1/k0,ku,kl,kuu,kul,klu,kll common /atest2/iu(100),rminf,angle, + uinf,gamma,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.141592653589793e0 ang=(1.0e0/8.0e0+float(itag-1)/4.0e0-angle/180.0e0)*pi cc=cos(ang) call rho(uinf,0.0e0,r,rx,ry,rxx,rxy,ryy) values(k0)=r*uinf*cc values(kl)=(rx*uinf+r)*cc values(kll)=(2.0e0*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 real (a-h,o-z) implicit integer (i-n) c real + 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 real (a-h,o-z) implicit integer (i-n) c real + 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,gamma,dshift,eps,ru(94),su(100) c c values(k0)=u**2 values(ku)=2.0e0*u values(kuu)=2.0e0 return end c----------------------------------------------------------------------- c c piecewise lagrange triangle multi grid package c c edition 10.0 - - - september, 2007 c c----------------------------------------------------------------------- subroutine p2xy(x,y,dx,dy,u,ux,uy,rl,itag,jtag,values) c implicit real (a-h,o-z) implicit integer (i-n) c real + values(*) 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,gamma,dshift,eps,ru(94),su(100) c if(itag.gt.0) return values(k0)=ux**2+uy**2 values(kx)=ux*2.0e0 values(ky)=uy*2.0e0 values(kxx)=2.0e0 values(kyy)=2.0e0 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 real (a-h,o-z) implicit integer (i-n) c real + values(*) character*80 + su common /val3/kf,kf1,kf2,ksk,kad common /atest2/iu(100),rminf,angle, + uinf,gamma,dshift,eps,ru(94),su(100) c ss=ux**2+uy**2 uu=1.0e0-ss if(uu.gt.0.0e0) then c=ss/uu else c=1.0e20 endif rmach=sqrt(2.0e0*c/(gamma-1.e0)) 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 real (a-h,o-z) implicit integer (i-n) character*80 + su common /atest2/iu(100),rminf,angle, + uinf,gamma,dshift,eps,ru(94),su(100) c uu=1.0e0-ux**2-uy**2 uux=-2.0e0*ux uuy=-2.0e0*uy uuxx=-2.0e0 uuyy=-2.0e0 uuxy=0.0e0 al=1.0e0/(gamma-1.0e0) c if(uu.gt.eps) then r=uu**al r1=al*r/uu r2=(al-1.0e0)*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*exp((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.0e0) r2=(al-1.0e0)*al*ff**(al-2.0e0) 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----------------------------------------------------------------------- real function wing(x) c implicit real (a-h,o-z) implicit integer (i-n) c z=x+0.5e0 t=0.12e0 q=(((.1015e0*z-.2843e0)*z+.3516e0)*z+.126e0)*z wing=5.0e0*t*(0.2969e0*sqrt(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 real (a-h,o-z) implicit integer (i-n) character*80 + su common /atest2/iu(100),rminf,angle, + uinf,gamma,dshift,eps,ru(94),su(100) c a=2.0e0/(gamma-1.0e0) c2=rminf**2+a c=sqrt(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 real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*) character*80 + sp(100),su(100),file(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 real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*) character*80 + sp(100),su(100) c save ispd,iprob,itask,size,ratio,dshift,eps,ising save gamma,angle,rminf data ispd,iprob,itask,ising/1,0,0,1/ data gamma,angle,rminf/1.4e0,0.0e0,0.72e0/ data dshift,eps/1.0e-3,1.0e-2/ data size,ratio/8.0e0,1.0e0/ c if(ip(41).eq.1) then iu(1)=1 ru(1)=rminf ru(2)=angle ru(4)=gamma 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 real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*), 1 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.1e0,1.75e0/ c c definition of naca0012 c data xw(1),yw(1)/.00351381e0,.00919038e0/ data xw(2),yw(2)/.01346558e0,.01914215e0/ data xw(3),yw(3)/.03066379e0,.02881318e0/ data xw(4),yw(4)/.05517089e0,.03721619e0/ data xw(5),yw(5)/.08673215e0,.04423213e0/ data xw(6),yw(6)/.12514615e0,.05026549e0/ data xw(7),yw(7)/.17041743e0,.05524749e0/ data xw(8),yw(8)/.22262233e0,.05855709e0/ data xw(9),yw(9)/.28171957e0,.06009519e0/ data xw(10),yw(10)/.34769243e0,.05966640e0/ data xw(11),yw(11)/.42050737e0,.05719906e0/ data xw(12),yw(12)/.50013381e0,.05277705e0/ data xw(13),yw(13)/.58655041e0,.04655302e0/ data xw(14),yw(14)/.67974794e0,.03855282e0/ data xw(15),yw(15)/.77972806e0,.02845609e0/ data xw(16),yw(16)/.88648617e0,.01568145e0/ 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.141592653589793e0 c size=ru(7) vx(1)=-0.5e0 vy(1)=0.0e0 vx(2)=0.5e0 vy(2)=0.0e0 do i=3,10 arg=pi*float(i-3)/4.0e0 vx(i)=size*cos(arg) vy(i)=size*sin(arg) enddo do i=1,16 vx(10+i)=xw(i)-.5e0 vy(10+i)=yw(i) vx(26+i)=xw(i)-.5e0 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 real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*), 1 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.1e0,1.75e0/ c c definition of naca0012 c data xw(1),yw(1)/.00351381e0,.00919038e0/ data xw(2),yw(2)/.01346558e0,.01914215e0/ data xw(3),yw(3)/.03066379e0,.02881318e0/ data xw(4),yw(4)/.05517089e0,.03721619e0/ data xw(5),yw(5)/.08673215e0,.04423213e0/ data xw(6),yw(6)/.12514615e0,.05026549e0/ data xw(7),yw(7)/.17041743e0,.05524749e0/ data xw(8),yw(8)/.22262233e0,.05855709e0/ data xw(9),yw(9)/.28171957e0,.06009519e0/ data xw(10),yw(10)/.34769243e0,.05966640e0/ data xw(11),yw(11)/.42050737e0,.05719906e0/ data xw(12),yw(12)/.50013381e0,.05277705e0/ data xw(13),yw(13)/.58655041e0,.04655302e0/ data xw(14),yw(14)/.67974794e0,.03855282e0/ data xw(15),yw(15)/.77972806e0,.02845609e0/ data xw(16),yw(16)/.88648617e0,.01568145e0/ 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.141592653589793e0 c vx(1)=-0.5e0 vy(1)=0.0e0 vx(2)=0.5e0 vy(2)=0.0e0 vx(75)=vx(1) vy(75)=0.25e0 vx(76)=vx(2) vy(76)=0.25e0 vx(77)=vx(1) vy(77)=-0.25e0 vx(78)=vx(2) vy(78)=-0.25e0 do i=3,10 arg=pi*float(i-3)/4.0e0 vx(i)=size*cos(arg) vy(i)=size*sin(arg) enddo do i=1,16 vx(10+i)=xw(i)-.5e0 vy(10+i)=yw(i)+.25e0 vx(26+i)=xw(i)-.5e0 vy(26+i)=-yw(i)+.25e0 vx(42+i)=xw(i)-.5e0 vy(42+i)=yw(i)-.25e0 vx(58+i)=xw(i)-.5e0 vy(58+i)=-yw(i)-.25e0 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 real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*), 1 x(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.1e0,1.75e0/ c data x( 1),y( 1)/ 0.14238694e+00, 0.52549636e+00/ data x( 2),y( 2)/ 0.14239907e+00, 0.52486056e+00/ data x( 3),y( 3)/ 0.14246652e+00, 0.52383298e+00/ data x( 4),y( 4)/ 0.14251776e+00, 0.52338821e+00/ data x( 5),y( 5)/ 0.14258587e+00, 0.52297705e+00/ data x( 6),y( 6)/ 0.14267555e+00, 0.52259350e+00/ data x( 7),y( 7)/ 0.14279018e+00, 0.52223974e+00/ data x( 8),y( 8)/ 0.14293651e+00, 0.52190989e+00/ data x( 9),y( 9)/ 0.14311521e+00, 0.52160990e+00/ data x( 10),y( 10)/ 0.14331953e+00, 0.52134800e+00/ data x( 11),y( 11)/ 0.14354138e+00, 0.52112484e+00/ data x( 12),y( 12)/ 0.14378212e+00, 0.52092934e+00/ data x( 13),y( 13)/ 0.14403769e+00, 0.52076072e+00/ data x( 14),y( 14)/ 0.14430405e+00, 0.52061445e+00/ data x( 15),y( 15)/ 0.14457782e+00, 0.52048606e+00/ data x( 16),y( 16)/ 0.14485565e+00, 0.52037263e+00/ data x( 17),y( 17)/ 0.14513819e+00, 0.52027190e+00/ data x( 18),y( 18)/ 0.14599727e+00, 0.52001894e+00/ data x( 19),y( 19)/ 0.18376550e+00, 0.51373845e+00/ data x( 20),y( 20)/ 0.18985666e+00, 0.51254296e+00/ data x( 21),y( 21)/ 0.19675030e+00, 0.51153928e+00/ data x( 22),y( 22)/ 0.24406897e+00, 0.50666326e+00/ data x( 23),y( 23)/ 0.31060791e+00, 0.50356334e+00/ data x( 24),y( 24)/ 0.38332841e+00, 0.50502747e+00/ data x( 25),y( 25)/ 0.45327878e+00, 0.51030499e+00/ data x( 26),y( 26)/ 0.51958978e+00, 0.51920772e+00/ data x( 27),y( 27)/ 0.57746434e+00, 0.52987391e+00/ data x( 28),y( 28)/ 0.58425075e+00, 0.53082687e+00/ data x( 29),y( 29)/ 0.59000003e+00, 0.53114921e+00/ data x( 30),y( 30)/ 0.59512764e+00, 0.53169250e+00/ data x( 31),y( 31)/ 0.59887820e+00, 0.53272384e+00/ data x( 32),y( 32)/ 0.60137254e+00, 0.53386259e+00/ data x( 33),y( 33)/ 0.60320872e+00, 0.53513271e+00/ data x( 34),y( 34)/ 0.60353845e+00, 0.53771621e+00/ data x( 35),y( 35)/ 0.60296059e+00, 0.54131466e+00/ data x( 36),y( 36)/ 0.60300571e+00, 0.54437202e+00/ data x( 37),y( 37)/ 0.60357350e+00, 0.54693913e+00/ data x( 38),y( 38)/ 0.60406649e+00, 0.54854357e+00/ data x( 39),y( 39)/ 0.60466123e+00, 0.55010843e+00/ data x( 40),y( 40)/ 0.60535777e+00, 0.55162632e+00/ data x( 41),y( 41)/ 0.60614204e+00, 0.55309492e+00/ data x( 42),y( 42)/ 0.60702199e+00, 0.55450010e+00/ data x( 43),y( 43)/ 0.60800248e+00, 0.55582470e+00/ data x( 44),y( 44)/ 0.60907596e+00, 0.55706424e+00/ data x( 45),y( 45)/ 0.61022371e+00, 0.55822390e+00/ data x( 46),y( 46)/ 0.61142939e+00, 0.55931419e+00/ data x( 47),y( 47)/ 0.61268497e+00, 0.56033880e+00/ data x( 48),y( 48)/ 0.61398643e+00, 0.56129622e+00/ data x( 49),y( 49)/ 0.61533439e+00, 0.56217754e+00/ data x( 50),y( 50)/ 0.61672550e+00, 0.56297755e+00/ data x( 51),y( 51)/ 0.61815780e+00, 0.56369096e+00/ data x( 52),y( 52)/ 0.61962718e+00, 0.56431180e+00/ data x( 53),y( 53)/ 0.62112886e+00, 0.56483644e+00/ data x( 54),y( 54)/ 0.62420315e+00, 0.56562895e+00/ data x( 55),y( 55)/ 0.62575811e+00, 0.56594610e+00/ data x( 56),y( 56)/ 0.62732589e+00, 0.56619239e+00/ data x( 57),y( 57)/ 0.62890446e+00, 0.56634086e+00/ data x( 58),y( 58)/ 0.63049120e+00, 0.56637746e+00/ data x( 59),y( 59)/ 0.63217700e+00, 0.56633490e+00/ data x( 60),y( 60)/ 0.63928777e+00, 0.56594688e+00/ data x( 61),y( 61)/ 0.64237547e+00, 0.56590432e+00/ data x( 62),y( 62)/ 0.64175850e+00, 0.56613564e+00/ data x( 63),y( 63)/ 0.64074898e+00, 0.56639910e+00/ data x( 64),y( 64)/ 0.63777864e+00, 0.56704980e+00/ data x( 65),y( 65)/ 0.61441934e+00, 0.57083333e+00/ data x( 66),y( 66)/ 0.53095484e+00, 0.58100241e+00/ data x( 67),y( 67)/ 0.44016385e+00, 0.58623964e+00/ data x( 68),y( 68)/ 0.35042948e+00, 0.58610827e+00/ data x( 69),y( 69)/ 0.24714592e+00, 0.58002561e+00/ data x( 70),y( 70)/ 0.22205499e+00, 0.57699656e+00/ data x( 71),y( 71)/ 0.21458752e+00, 0.57549435e+00/ data x( 72),y( 72)/ 0.20755161e+00, 0.57364964e+00/ data x( 73),y( 73)/ 0.20098640e+00, 0.57163399e+00/ data x( 74),y( 74)/ 0.19478193e+00, 0.56941843e+00/ data x( 75),y( 75)/ 0.18897466e+00, 0.56701398e+00/ data x( 76),y( 76)/ 0.18352342e+00, 0.56447226e+00/ data x( 77),y( 77)/ 0.17845722e+00, 0.56187308e+00/ data x( 78),y( 78)/ 0.16923651e+00, 0.55659187e+00/ data x( 79),y( 79)/ 0.16123903e+00, 0.55137855e+00/ data x( 80),y( 80)/ 0.15775546e+00, 0.54884428e+00/ data x( 81),y( 81)/ 0.15473247e+00, 0.54644585e+00/ data x( 82),y( 82)/ 0.15211743e+00, 0.54412651e+00/ data x( 83),y( 83)/ 0.14972629e+00, 0.54171610e+00/ data x( 84),y( 84)/ 0.14759408e+00, 0.53918707e+00/ data x( 85),y( 85)/ 0.14578351e+00, 0.53658718e+00/ data x( 86),y( 86)/ 0.14434788e+00, 0.53393197e+00/ data x( 87),y( 87)/ 0.14338359e+00, 0.53158128e+00/ data x( 88),y( 88)/ 0.14286031e+00, 0.52970970e+00/ data x( 89),y( 89)/ 0.14257507e+00, 0.52820081e+00/ data x( 90),y( 90)/ 0.14245167e+00, 0.52710903e+00/ data x( 91),y( 91)/ 0.14239976e+00, 0.52623296e+00/ data x( 92),y( 92)/ 0.64350897e+00, 0.55603290e+00/ data x( 93),y( 93)/ 0.64356840e+00, 0.55530572e+00/ data x( 94),y( 94)/ 0.64368635e+00, 0.55459970e+00/ data x( 95),y( 95)/ 0.64387923e+00, 0.55391252e+00/ data x( 96),y( 96)/ 0.64416379e+00, 0.55330718e+00/ data x( 97),y( 97)/ 0.64450228e+00, 0.55284947e+00/ data x( 98),y( 98)/ 0.64483809e+00, 0.55251265e+00/ data x( 99),y( 99)/ 0.64515030e+00, 0.55225414e+00/ data x(100),y(100)/ 0.64539981e+00, 0.55209374e+00/ data x(101),y(101)/ 0.64560950e+00, 0.55199981e+00/ data x(102),y(102)/ 0.65000343e+00, 0.55015725e+00/ data x(103),y(103)/ 0.65195090e+00, 0.54946691e+00/ data x(104),y(104)/ 0.65355039e+00, 0.54898107e+00/ data x(105),y(105)/ 0.65445668e+00, 0.54873705e+00/ data x(106),y(106)/ 0.65544385e+00, 0.54851377e+00/ data x(107),y(107)/ 0.65652210e+00, 0.54833364e+00/ data x(108),y(108)/ 0.65895778e+00, 0.54804218e+00/ data x(109),y(109)/ 0.66510695e+00, 0.54695308e+00/ data x(110),y(110)/ 0.66893238e+00, 0.54609281e+00/ data x(111),y(111)/ 0.67091352e+00, 0.54556215e+00/ data x(112),y(112)/ 0.67275780e+00, 0.54498011e+00/ data x(113),y(113)/ 0.68000346e+00, 0.54238534e+00/ data x(114),y(114)/ 0.68109047e+00, 0.54183996e+00/ data x(115),y(115)/ 0.68448633e+00, 0.53959823e+00/ data x(116),y(116)/ 0.68519235e+00, 0.53916425e+00/ data x(117),y(117)/ 0.68585521e+00, 0.53878689e+00/ data x(118),y(118)/ 0.68608046e+00, 0.53896588e+00/ data x(119),y(119)/ 0.68600219e+00, 0.53920758e+00/ data x(120),y(120)/ 0.68589300e+00, 0.53945839e+00/ data x(121),y(121)/ 0.68574667e+00, 0.53972352e+00/ data x(122),y(122)/ 0.68555248e+00, 0.54002571e+00/ data x(123),y(123)/ 0.68428069e+00, 0.54174429e+00/ data x(124),y(124)/ 0.68324089e+00, 0.54303318e+00/ data x(125),y(125)/ 0.68181133e+00, 0.54464948e+00/ data x(126),y(126)/ 0.67793530e+00, 0.54862797e+00/ data x(127),y(127)/ 0.67259532e+00, 0.55358279e+00/ data x(128),y(128)/ 0.66974699e+00, 0.55597788e+00/ data x(129),y(129)/ 0.66684467e+00, 0.55816221e+00/ data x(130),y(130)/ 0.66362411e+00, 0.56015337e+00/ data x(131),y(131)/ 0.65993828e+00, 0.56181592e+00/ data x(132),y(132)/ 0.65620720e+00, 0.56289274e+00/ data x(133),y(133)/ 0.65288752e+00, 0.56327605e+00/ data x(134),y(134)/ 0.65006143e+00, 0.56308872e+00/ data x(135),y(135)/ 0.64778221e+00, 0.56250918e+00/ data x(136),y(136)/ 0.64616859e+00, 0.56174362e+00/ data x(137),y(137)/ 0.64526492e+00, 0.56106269e+00/ data x(138),y(138)/ 0.64485633e+00, 0.56061620e+00/ data x(139),y(139)/ 0.64467561e+00, 0.56034172e+00/ data x(140),y(140)/ 0.64456904e+00, 0.56012821e+00/ data x(141),y(141)/ 0.64448071e+00, 0.55992335e+00/ data x(142),y(142)/ 0.64389944e+00, 0.55821323e+00/ data x(143),y(143)/ 0.64369786e+00, 0.55753338e+00/ data x(144),y(144)/ 0.64354610e+00, 0.55678207e+00/ data x(145),y(145)/ 0.66136104e+00, 0.51671529e+00/ data x(146),y(146)/ 0.66146421e+00, 0.51561081e+00/ data x(147),y(147)/ 0.66190052e+00, 0.51450264e+00/ data x(148),y(148)/ 0.66259372e+00, 0.51342881e+00/ data x(149),y(149)/ 0.66350609e+00, 0.51241684e+00/ data x(150),y(150)/ 0.66900992e+00, 0.50778043e+00/ data x(151),y(151)/ 0.69012105e+00, 0.48983982e+00/ data x(152),y(152)/ 0.71521938e+00, 0.46596432e+00/ data x(153),y(153)/ 0.73760015e+00, 0.44191343e+00/ data x(154),y(154)/ 0.77687955e+00, 0.39426166e+00/ data x(155),y(155)/ 0.77824843e+00, 0.39296392e+00/ data x(156),y(156)/ 0.77903742e+00, 0.39230424e+00/ data x(157),y(157)/ 0.77885532e+00, 0.39332363e+00/ data x(158),y(158)/ 0.77832937e+00, 0.39514297e+00/ data x(159),y(159)/ 0.77710885e+00, 0.39755410e+00/ data x(160),y(160)/ 0.71374595e+00, 0.49894109e+00/ data x(161),y(161)/ 0.70879847e+00, 0.50545138e+00/ data x(162),y(162)/ 0.70390487e+00, 0.51122659e+00/ data x(163),y(163)/ 0.70148945e+00, 0.51380640e+00/ data x(164),y(164)/ 0.69909018e+00, 0.51613098e+00/ data x(165),y(165)/ 0.69670445e+00, 0.51818985e+00/ data x(166),y(166)/ 0.69435513e+00, 0.51994878e+00/ data x(167),y(167)/ 0.69207388e+00, 0.52144128e+00/ data x(168),y(168)/ 0.68990386e+00, 0.52269793e+00/ data x(169),y(169)/ 0.68787146e+00, 0.52373749e+00/ data x(170),y(170)/ 0.68599886e+00, 0.52457106e+00/ data x(171),y(171)/ 0.68458074e+00, 0.52512252e+00/ data x(172),y(172)/ 0.68323749e+00, 0.52557099e+00/ data x(173),y(173)/ 0.68186861e+00, 0.52594560e+00/ data x(174),y(174)/ 0.68048090e+00, 0.52624112e+00/ data x(175),y(175)/ 0.67908096e+00, 0.52644932e+00/ data x(176),y(176)/ 0.67767704e+00, 0.52655977e+00/ data x(177),y(177)/ 0.67627919e+00, 0.52656651e+00/ data x(178),y(178)/ 0.67489743e+00, 0.52647096e+00/ data x(179),y(179)/ 0.67353940e+00, 0.52629191e+00/ data x(180),y(180)/ 0.67221367e+00, 0.52603441e+00/ data x(181),y(181)/ 0.67092770e+00, 0.52570385e+00/ data x(182),y(182)/ 0.66968828e+00, 0.52530611e+00/ data x(183),y(183)/ 0.66850287e+00, 0.52484566e+00/ data x(184),y(184)/ 0.66738081e+00, 0.52432030e+00/ data x(185),y(185)/ 0.66633016e+00, 0.52373523e+00/ data x(186),y(186)/ 0.66536587e+00, 0.52308375e+00/ data x(187),y(187)/ 0.66449600e+00, 0.52237707e+00/ data x(188),y(188)/ 0.66372591e+00, 0.52162856e+00/ data x(189),y(189)/ 0.66306305e+00, 0.52085173e+00/ data x(190),y(190)/ 0.66250944e+00, 0.52006221e+00/ data x(191),y(191)/ 0.66206914e+00, 0.51927567e+00/ data x(192),y(192)/ 0.66177577e+00, 0.51860404e+00/ data x(193),y(193)/ 0.66150331e+00, 0.51772273e+00/ c sp(2)='wing' sp(1)='wing' sp(3)='wing' sp(4)='wing' c pi=3.141592653589793e0 nw=9 nf1=100 nf2=153 c size=ru(7) do i=1,8 arg=pi*float(i-1)/4.0e0 vx(i)=size*cos(arg) vy(i)=size*sin(arg) enddo xmin=x(1) xmax=x(1) ymin=y(1) ymax=y(1) do i=1,nvf-8 xmax=amax1(xmax,x(i)) xmin=amin1(xmin,x(i)) ymax=amax1(ymax,y(i)) ymin=amin1(ymin,y(i)) enddo xx=(xmin+xmax)/2.0e0 yy=(ymin+ymax)/2.0e0 ss=amax1(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 real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*), 1 x(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.1e0,1.75e0/ c c wing c data x( 1),y( 1)/-0.7341200e+02,-0.8805300e+02/ data x( 2),y( 2)/-0.7525800e+02,-0.8565400e+02/ data x( 3),y( 3)/-0.7734500e+02,-0.8224000e+02/ data x( 4),y( 4)/-0.7897900e+02,-0.7741000e+02/ data x( 5),y( 5)/-0.7964800e+02,-0.6625000e+02/ data x( 6),y( 6)/-0.7751900e+02,-0.5693800e+02/ data x( 7),y( 7)/-0.7210900e+02,-0.4630900e+02/ data x( 8),y( 8)/-0.5903800e+02,-0.2894700e+02/ data x( 9),y( 9)/-0.4446800e+02,-0.1418400e+02/ data x( 10),y( 10)/-0.2864700e+02,-0.1586000e+01/ data x( 11),y( 11)/-0.1615700e+02, 0.6780000e+01/ data x( 12),y( 12)/-0.1197700e+02, 0.9540000e+01/ data x( 13),y( 13)/-0.1272700e+02, 0.1083900e+02/ data x( 14),y( 14)/-0.2115900e+02, 0.5444000e+01/ data x( 15),y( 15)/-0.2953400e+02,-0.5000000e-01/ data x( 16),y( 16)/-0.3785300e+02,-0.5642000e+01/ data x( 17),y( 17)/-0.4610400e+02,-0.1135100e+02/ data x( 18),y( 18)/-0.5428500e+02,-0.1718100e+02/ data x( 19),y( 19)/-0.6237800e+02,-0.2316300e+02/ data x( 20),y( 20)/-0.7035100e+02,-0.2935300e+02/ data x( 21),y( 21)/-0.7814600e+02,-0.3585300e+02/ data x( 22),y( 22)/-0.8565500e+02,-0.4284600e+02/ data x( 23),y( 23)/-0.9265900e+02,-0.5071500e+02/ data x( 24),y( 24)/-0.9584400e+02,-0.5519900e+02/ data x( 25),y( 25)/-0.9867100e+02,-0.6030100e+02/ data x( 26),y( 26)/-0.9988500e+02,-0.6319900e+02/ data x( 27),y( 27)/-0.1009060e+03,-0.6643100e+02/ data x( 28),y( 28)/-0.1012230e+03,-0.6788100e+02/ data x( 29),y( 29)/-0.1014780e+03,-0.6944000e+02/ data x( 30),y( 30)/-0.1015770e+03,-0.7026800e+02/ data x( 31),y( 31)/-0.1016190e+03,-0.7119600e+02/ data x( 32),y( 32)/-0.1016260e+03,-0.7218400e+02/ data x( 33),y( 33)/-0.1015040e+03,-0.7339400e+02/ data x( 34),y( 34)/-0.1012670e+03,-0.7480500e+02/ data x( 35),y( 35)/-0.1009830e+03,-0.7579700e+02/ data x( 36),y( 36)/-0.1000000e+03,-0.7800000e+02/ data x( 37),y( 37)/-0.9803300e+02,-0.8090600e+02/ data x( 38),y( 38)/-0.9714200e+02,-0.8195000e+02/ data x( 39),y( 39)/-0.9577100e+02,-0.8332400e+02/ data x( 40),y( 40)/-0.9466300e+02,-0.8424300e+02/ data x( 41),y( 41)/-0.9365000e+02,-0.8499800e+02/ data x( 42),y( 42)/-0.9272200e+02,-0.8560500e+02/ data x( 43),y( 43)/-0.9185200e+02,-0.8611300e+02/ data x( 44),y( 44)/-0.9023100e+02,-0.8692100e+02/ data x( 45),y( 45)/-0.8873100e+02,-0.8751900e+02/ data x( 46),y( 46)/-0.8519600e+02,-0.8864200e+02/ data x( 47),y( 47)/-0.8184500e+02,-0.8944600e+02/ data x( 48),y( 48)/-0.7552900e+02,-0.9038600e+02/ data x( 49),y( 49)/-0.6960800e+02,-0.9064000e+02/ data x( 50),y( 50)/ 0.4800000e+03,-0.5629000e+01/ data x( 51),y( 51)/ 0.4699950e+03,-0.3402000e+01/ data x( 52),y( 52)/ 0.4599990e+03,-0.1148000e+01/ data x( 53),y( 53)/ 0.4550010e+03,-0.1000000e-01/ data x( 54),y( 54)/ 0.4449990e+03, 0.2281000e+01/ data x( 55),y( 55)/ 0.4349980e+03, 0.4563000e+01/ data x( 56),y( 56)/ 0.4249980e+03, 0.6796000e+01/ data x( 57),y( 57)/ 0.4150000e+03, 0.8960000e+01/ data x( 58),y( 58)/ 0.4050030e+03, 0.1104900e+02/ data x( 59),y( 59)/ 0.3950000e+03, 0.1305600e+02/ data x( 60),y( 60)/ 0.3900010e+03, 0.1402000e+02/ data x( 61),y( 61)/ 0.3849980e+03, 0.1495500e+02/ data x( 62),y( 62)/ 0.3800010e+03, 0.1585700e+02/ data x( 63),y( 63)/ 0.3750000e+03, 0.1673200e+02/ data x( 64),y( 64)/ 0.3700000e+03, 0.1758300e+02/ data x( 65),y( 65)/ 0.3650000e+03, 0.1841000e+02/ data x( 66),y( 66)/ 0.3600000e+03, 0.1921100e+02/ data x( 67),y( 67)/ 0.3500000e+03, 0.2073700e+02/ data x( 68),y( 68)/ 0.3299990e+03, 0.2349000e+02/ data x( 69),y( 69)/ 0.3000000e+03, 0.2693900e+02/ data x( 70),y( 70)/ 0.2800000e+03, 0.2883300e+02/ data x( 71),y( 71)/ 0.2600000e+03, 0.3043000e+02/ data x( 72),y( 72)/ 0.2400000e+03, 0.3174400e+02/ data x( 73),y( 73)/ 0.2000000e+03, 0.3353000e+02/ data x( 74),y( 74)/ 0.1600000e+03, 0.3411500e+02/ data x( 75),y( 75)/ 0.1200000e+03, 0.3329900e+02/ data x( 76),y( 76)/ 0.1100000e+03, 0.3284300e+02/ data x( 77),y( 77)/ 0.1000000e+03, 0.3227400e+02/ data x( 78),y( 78)/ 0.9000000e+02, 0.3158700e+02/ data x( 79),y( 79)/ 0.8000000e+02, 0.3077100e+02/ data x( 80),y( 80)/ 0.7000000e+02, 0.2981000e+02/ data x( 81),y( 81)/ 0.6000100e+02, 0.2867300e+02/ data x( 82),y( 82)/ 0.5000100e+02, 0.2730000e+02/ data x( 83),y( 83)/ 0.4000000e+02, 0.2557600e+02/ data x( 84),y( 84)/ 0.2999800e+02, 0.2328000e+02/ data x( 85),y( 85)/ 0.1999600e+02, 0.1996800e+02/ data x( 86),y( 86)/ 0.1500000e+02, 0.1766900e+02/ data x( 87),y( 87)/ 0.1000400e+02, 0.1465700e+02/ data x( 88),y( 88)/ 0.7505000e+01, 0.1275500e+02/ data x( 89),y( 89)/ 0.5009000e+01, 0.1046400e+02/ data x( 90),y( 90)/ 0.3998000e+01, 0.9377000e+01/ data x( 91),y( 91)/ 0.2995000e+01, 0.8156000e+01/ data x( 92),y( 92)/ 0.2504000e+01, 0.7482000e+01/ data x( 93),y( 93)/ 0.1996000e+01, 0.6704000e+01/ data x( 94),y( 94)/ 0.1507000e+01, 0.5846000e+01/ data x( 95),y( 95)/ 0.9860000e+00, 0.4747000e+01/ data x( 96),y( 96)/ 0.4990000e+00, 0.3400000e+01/ data x( 97),y( 97)/ 0.2430000e+00, 0.2401000e+01/ data x( 98),y( 98)/-0.3900000e-01, 0.0000000e+00/ data x( 99),y( 99)/ 0.2290000e+00,-0.3503000e+01/ data x(100),y(100)/ 0.4970000e+00,-0.4851000e+01/ data x(101),y(101)/ 0.1010000e+01,-0.6722000e+01/ data x(102),y(102)/ 0.1497000e+01,-0.8076000e+01/ data x(103),y(103)/ 0.2000000e+01,-0.9235000e+01/ data x(104),y(104)/ 0.2501000e+01,-0.1022500e+02/ data x(105),y(105)/ 0.3001000e+01,-0.1109900e+02/ data x(106),y(106)/ 0.4001000e+01,-0.1260900e+02/ data x(107),y(107)/ 0.4985000e+01,-0.1389100e+02/ data x(108),y(108)/ 0.7486000e+01,-0.1663300e+02/ data x(109),y(109)/ 0.1001300e+02,-0.1897500e+02/ data x(110),y(110)/ 0.1504300e+02,-0.2290100e+02/ data x(111),y(111)/ 0.2003500e+02,-0.2608100e+02/ data x(112),y(112)/ 0.2998700e+02,-0.3082600e+02/ data x(113),y(113)/ 0.3998200e+02,-0.3412700e+02/ data x(114),y(114)/ 0.4999400e+02,-0.3656400e+02/ data x(115),y(115)/ 0.6000100e+02,-0.3849300e+02/ data x(116),y(116)/ 0.7000100e+02,-0.4008600e+02/ data x(117),y(117)/ 0.8000000e+02,-0.4141900e+02/ data x(118),y(118)/ 0.9000000e+02,-0.4253000e+02/ data x(119),y(119)/ 0.1000000e+03,-0.4345100e+02/ data x(120),y(120)/ 0.1100000e+03,-0.4420300e+02/ data x(121),y(121)/ 0.1200000e+03,-0.4480100e+02/ data x(122),y(122)/ 0.1600000e+03,-0.4580000e+02/ data x(123),y(123)/ 0.1999970e+03,-0.4462600e+02/ data x(124),y(124)/ 0.2399890e+03,-0.4128600e+02/ data x(125),y(125)/ 0.2599900e+03,-0.3890500e+02/ data x(126),y(126)/ 0.2800070e+03,-0.3614000e+02/ data x(127),y(127)/ 0.2900140e+03,-0.3457800e+02/ data x(128),y(128)/ 0.3000130e+03,-0.3282100e+02/ data x(129),y(129)/ 0.3099810e+03,-0.3087700e+02/ data x(130),y(130)/ 0.3149850e+03,-0.2992100e+02/ data x(131),y(131)/ 0.3200030e+03,-0.2906800e+02/ data x(132),y(132)/ 0.3225000e+03,-0.2867400e+02/ data x(133),y(133)/ 0.3250020e+03,-0.2826300e+02/ data x(134),y(134)/ 0.3274960e+03,-0.2778200e+02/ data x(135),y(135)/ 0.3299960e+03,-0.2718300e+02/ data x(136),y(136)/ 0.3325000e+03,-0.2645100e+02/ data x(137),y(137)/ 0.3350010e+03,-0.2560200e+02/ data x(138),y(138)/ 0.3362530e+03,-0.2513400e+02/ data x(139),y(139)/ 0.3374940e+03,-0.2463500e+02/ data x(140),y(140)/ 0.3387550e+03,-0.2408500e+02/ data x(141),y(141)/ 0.3399980e+03,-0.2349500e+02/ data x(142),y(142)/ 0.3412520e+03,-0.2285300e+02/ data x(143),y(143)/ 0.3424880e+03,-0.2217600e+02/ data x(144),y(144)/ 0.3449910e+03,-0.2068500e+02/ data x(145),y(145)/ 0.3475120e+03,-0.1906800e+02/ data x(146),y(146)/ 0.3500070e+03,-0.1741000e+02/ data x(147),y(147)/ 0.3525060e+03,-0.1570800e+02/ data x(148),y(148)/ 0.3549740e+03,-0.1396400e+02/ data x(149),y(149)/ 0.3574990e+03,-0.1209900e+02/ data x(150),y(150)/ 0.3600120e+03,-0.1021500e+02/ data x(151),y(151)/ 0.3625070e+03,-0.8410000e+01/ data x(152),y(152)/ 0.3650170e+03,-0.6727000e+01/ data x(153),y(153)/ 0.3699540e+03,-0.3851000e+01/ data x(154),y(154)/ 0.3750330e+03,-0.1614000e+01/ data x(155),y(155)/ 0.3799770e+03,-0.2030000e+00/ data x(156),y(156)/ 0.3850080e+03, 0.8770000e+00/ data x(157),y(157)/ 0.3900180e+03, 0.1822000e+01/ data x(158),y(158)/ 0.3950120e+03, 0.2578000e+01/ data x(159),y(159)/ 0.4049980e+03, 0.3365000e+01/ data x(160),y(160)/ 0.4150020e+03, 0.3298000e+01/ data x(161),y(161)/ 0.4250020e+03, 0.2615000e+01/ data x(162),y(162)/ 0.4350000e+03, 0.1450000e+01/ data x(163),y(163)/ 0.4449910e+03,-0.1490000e+00/ data x(164),y(164)/ 0.4549980e+03,-0.2112000e+01/ data x(165),y(165)/ 0.4600040e+03,-0.3182000e+01/ data x(166),y(166)/ 0.4700020e+03,-0.5393000e+01/ data x(167),y(167)/ 0.4800000e+03,-0.7630000e+01/ data x(168),y(168)/ 0.5874560e+03,-0.1075470e+03/ data x(169),y(169)/ 0.5806450e+03,-0.1001030e+03/ data x(170),y(170)/ 0.5736890e+03,-0.9283500e+02/ data x(171),y(171)/ 0.5665730e+03,-0.8576000e+02/ data x(172),y(172)/ 0.5592040e+03,-0.7898300e+02/ data x(173),y(173)/ 0.5516000e+03,-0.7249000e+02/ data x(174),y(174)/ 0.5477020e+03,-0.6935400e+02/ data x(175),y(175)/ 0.5437430e+03,-0.6629600e+02/ data x(176),y(176)/ 0.5397290e+03,-0.6330300e+02/ data x(177),y(177)/ 0.5356540e+03,-0.6037600e+02/ data x(178),y(178)/ 0.5315260e+03,-0.5752100e+02/ data x(179),y(179)/ 0.5273440e+03,-0.5472700e+02/ data x(180),y(180)/ 0.5231150e+03,-0.5198700e+02/ data x(181),y(181)/ 0.5188390e+03,-0.4930600e+02/ data x(182),y(182)/ 0.5145000e+03,-0.4669400e+02/ data x(183),y(183)/ 0.5101340e+03,-0.4412300e+02/ data x(184),y(184)/ 0.5057630e+03,-0.4155500e+02/ data x(185),y(185)/ 0.5013720e+03,-0.3900900e+02/ data x(186),y(186)/ 0.4969530e+03,-0.3649800e+02/ data x(187),y(187)/ 0.4925200e+03,-0.3400200e+02/ data x(188),y(188)/ 0.4880910e+03,-0.3150300e+02/ data x(189),y(189)/ 0.4836620e+03,-0.2900300e+02/ data x(190),y(190)/ 0.4801400e+03,-0.2697700e+02/ data x(191),y(191)/ 0.4775070e+03,-0.2544900e+02/ data x(192),y(192)/ 0.4757950e+03,-0.2437800e+02/ data x(193),y(193)/ 0.4741210e+03,-0.2326200e+02/ data x(194),y(194)/ 0.4733800e+03,-0.2258900e+02/ data x(195),y(195)/ 0.4728840e+03,-0.2162500e+02/ data x(196),y(196)/ 0.4725800e+03,-0.2043100e+02/ data x(197),y(197)/ 0.4726720e+03,-0.1954200e+02/ data x(198),y(198)/ 0.4735220e+03,-0.1775000e+02/ data x(199),y(199)/ 0.4749850e+03,-0.1678300e+02/ data x(200),y(200)/ 0.4759340e+03,-0.1643000e+02/ data x(201),y(201)/ 0.4775480e+03,-0.1606100e+02/ data x(202),y(202)/ 0.4790210e+03,-0.1586100e+02/ data x(203),y(203)/ 0.4804040e+03,-0.1576700e+02/ data x(204),y(204)/ 0.4829900e+03,-0.1579500e+02/ data x(205),y(205)/ 0.4854220e+03,-0.1600700e+02/ data x(206),y(206)/ 0.4889160e+03,-0.1650900e+02/ data x(207),y(207)/ 0.4933570e+03,-0.1743900e+02/ data x(208),y(208)/ 0.4984710e+03,-0.1912100e+02/ data x(209),y(209)/ 0.5033580e+03,-0.2107400e+02/ data x(210),y(210)/ 0.5079970e+03,-0.2332300e+02/ data x(211),y(211)/ 0.5124480e+03,-0.2579700e+02/ data x(212),y(212)/ 0.5167650e+03,-0.2843200e+02/ data x(213),y(213)/ 0.5209470e+03,-0.3122600e+02/ data x(214),y(214)/ 0.5250150e+03,-0.3415700e+02/ data x(215),y(215)/ 0.5289710e+03,-0.3722100e+02/ data x(216),y(216)/ 0.5328250e+03,-0.4040700e+02/ data x(217),y(217)/ 0.5343400e+03,-0.4171200e+02/ data x(218),y(218)/ 0.5365790e+03,-0.4370500e+02/ data x(219),y(219)/ 0.5387910e+03,-0.4574300e+02/ data x(220),y(220)/ 0.5402440e+03,-0.4711700e+02/ data x(221),y(221)/ 0.5424040e+03,-0.4921200e+02/ data x(222),y(222)/ 0.5438330e+03,-0.5062100e+02/ data x(223),y(223)/ 0.5459570e+03,-0.5275400e+02/ data x(224),y(224)/ 0.5473660e+03,-0.5419100e+02/ data x(225),y(225)/ 0.5494520e+03,-0.5637100e+02/ data x(226),y(226)/ 0.5508270e+03,-0.5784200e+02/ data x(227),y(227)/ 0.5528690e+03,-0.6008400e+02/ data x(228),y(228)/ 0.5542100e+03,-0.6159200e+02/ data x(229),y(229)/ 0.5562130e+03,-0.6388300e+02/ data x(230),y(230)/ 0.5575280e+03,-0.6541600e+02/ data x(231),y(231)/ 0.5594970e+03,-0.6774300e+02/ data x(232),y(232)/ 0.5607990e+03,-0.6929800e+02/ data x(233),y(233)/ 0.5627390e+03,-0.7165800e+02/ data x(234),y(234)/ 0.5640230e+03,-0.7323600e+02/ data x(235),y(235)/ 0.5672100e+03,-0.7721500e+02/ data x(236),y(236)/ 0.5703490e+03,-0.8125400e+02/ data x(237),y(237)/ 0.5722250e+03,-0.8368800e+02/ data x(238),y(238)/ 0.5765730e+03,-0.8939500e+02/ data x(239),y(239)/ 0.5827580e+03,-0.9758100e+02/ data x(240),y(240)/ 0.5890550e+03,-0.1056390e+03/ c sp(2)='wing' sp(1)='wing' sp(3)='wing' sp(4)='wing' c pi=3.141592653589793e0 c size=ru(7) do i=1,8 arg=pi*float(i-1)/4.0e0 vx(i)=size*cos(arg) vy(i)=size*sin(arg) enddo xmin=x(1) xmax=x(1) ymin=y(1) ymax=y(1) do i=1,nvf-8 xmax=amax1(xmax,x(i)) xmin=amin1(xmin,x(i)) ymax=amax1(ymax,y(i)) ymin=amin1(ymin,y(i)) enddo xx=(xmin+xmax)/2.0e0 yy=(ymin+ymax)/2.0e0 ss=amax1(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