c*********************** problem name: naca ************************ c----------------------------------------------------------------------- c c piecewise linear triangle multi grid package c c edition 9.0 - - - march, 2004 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,dgdm,rhoinf,dshift,eps,ru(92),su(100) c r=rho(ux,uy,dr) c values(k0)=ux*r values(kx)=r+ux*dr*ux+dshift values(ky)=ux*dr*uy return end c----------------------------------------------------------------------- c c piecewise linear triangle multi grid package c c edition 9.0 - - - march, 2004 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,dgdm,rhoinf,dshift,eps,ru(92),su(100) c r=rho(ux,uy,dr) c values(k0)=uy*r values(kx)=uy*dr*ux values(ky)=r+uy*dr*uy+dshift return end c----------------------------------------------------------------------- c c piecewise linear triangle multi grid package c c edition 9.0 - - - march, 2004 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 linear triangle multi grid package c c edition 9.0 - - - march, 2004 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,dgdm,rhoinf,dshift,eps,ru(92),su(100) c if(rl.ne.rminf) then rminf=rl call cfd end if c if(itag.le.0) return pi=3.141592653589793e0 if(iu(1).ne.6) then ang=(1.0e0/8.0e0+float(itag-1)/4.0e0-angle/180.0e0)*pi else ang=(float(itag-1)/2.0e0-angle/180.0e0)*pi endif cc=cos(ang) values(k0)=rhoinf*uinf*cc values(kl)=dgdm*cc return end c----------------------------------------------------------------------- c c piecewise linear triangle multi grid package c c edition 9.0 - - - march, 2004 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 common /atest2/iu(100),rminf,angle, + uinf,gamma,dgdm,rhoinf,dshift,eps,ru(92),su(100) c if(rl.ne.rminf) then rminf=rl call cfd end if c values(k0)=rhoinf*uinf*x c return end c----------------------------------------------------------------------- c c piecewise linear triangle multi grid package c c edition 9.0 - - - march, 2004 c c----------------------------------------------------------------------- subroutine p1xy(x,y,u,ux,uy,rl,itag,values) c implicit real (a-h,o-z) implicit integer (i-n) c real + values(*) common /val0/k0,ku,kx,ky,kl,kuu,kux,kuy,kul, + kxu,kxx,kxy,kxl,kyu,kyx,kyy,kyl,klu,klx,kly,kll c values(k0)=u*u values(ku)=2.0e0*u return end c----------------------------------------------------------------------- c c piecewise linear triangle multi grid package c c edition 9.0 - - - march, 2004 c c----------------------------------------------------------------------- subroutine p2xy(x,y,dx,dy,u,ux,uy,rl,itag,jtag,values) c implicit real (a-h,o-z) implicit integer (i-n) c real + values(*) common /val0/k0,ku,kx,ky,kl,kuu,kux,kuy,kul, + kxu,kxx,kxy,kxl,kyu,kyx,kyy,kyl,klu,klx,kly,kll c if(itag.le.0) then values(k0)=ux*ux+uy*uy values(kx)=ux*2.0e0 values(ky)=uy*2.0e0 endif return end c----------------------------------------------------------------------- c c piecewise linear triangle multi grid package c c edition 9.0 - - - march, 2004 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,dgdm,rhoinf,dshift,eps,ru(92),su(100) c ss=ux**2+uy**2 uu=1.0e0-ss if(uu.gt.0.0e0) then c=ss/uu else c=1.e20 endif rmach=sqrt(2*c/(gamma-1.e0)) values(kf)=rmach return end c----------------------------------------------------------------------- c c piecewise linear triangle multi grid package c c edition 9.0 - - - march, 2004 c c----------------------------------------------------------------------- real function rho(ux,uy,dr) c implicit real (a-h,o-z) implicit integer (i-n) character*80 + su common /atest2/iu(100),rminf,angle, + uinf,gamma,dgdm,rhoinf,dshift,eps,ru(92),su(100) c gn=gamma-1.0e0 ss=ux**2+uy**2 uu=1.0e0-ss if(uu.gt.eps) then rho=uu**(1.0e0/gn) dr=-2.0e0*(rho**(2.0e0-gamma))/gn else fp=-exp((uu-eps)/eps) ff=-fp*eps rho=ff**(1.0e0/gn) dr=fp*2.0e0*(rho**(2.0e0-gamma))/gn endif return end c----------------------------------------------------------------------- c c piecewise linear triangle multi grid package c c edition 9.0 - - - march, 2004 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 linear triangle multi grid package c c edition 9.0 - - - march, 2004 c c----------------------------------------------------------------------- subroutine cfd c implicit real (a-h,o-z) implicit integer (i-n) character*80 + su common /atest2/iu(100),rminf,angle, + uinf,gamma,dgdm,rhoinf,dshift,eps,ru(92),su(100) c a=2.0e0/(gamma-1.0e0) c2=rminf**2+a c=sqrt(c2) uinf=rminf/c rhoinf=rho(uinf,0.0e0,dr) dgdm=(dr*uinf**2+rhoinf)*a/(c2*c) c return end c----------------------------------------------------------------------- c c piecewise linear triangle multi grid package c c edition 9.0 - - - march, 2004 c c----------------------------------------------------------------------- subroutine usrcmd c implicit real (a-h,o-z) implicit integer (i-n) character*80 + sp,su,file(20) common /atest1/ip(100),rp(100),sp(100) common /atest2/iu(100),ru(100),su(100) save len,file c data len/14/ 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= 7,n=dshift,a=dd,t=r', 4 'n i= 8,n=eps ,a= e,t=r', 5 'n i= 9,n=ratio ,a= r,t=r', 6 'n i=10,n=size ,a= s,t=r', 7 's n=domain,v=1,l="naca 0012"', 8 's n=domain,v=2,l="bi naca 0012"', 9 's n=domain,v=3,l="two element airfoil"'/ data (file(i),i= 11, 14)/ + 's n=domain,v=4,l="three element airfoil"', 1 's n=domain,v=5,l="three element airfoil"', 2 's n=domain,v=6,l="ellipse"', 3 's n=domain,v=7,l="three element airfoil"'/ c c ii=iu(1) r=ru(9) s=ru(10) c call usrset(file,len,iu,ru,su) c ic=0 if(ii.ne.iu(1)) ic=1 if(r.ne.ru(9)) ic=1 if(s.ne.ru(10)) ic=1 if(ic.eq.0) then call cfd else iu(1)=max0(1,iu(1)) iu(1)=min0(7,iu(1)) ip(41)=-1 endif return end c----------------------------------------------------------------------- c c piecewise linear triangle multi grid package c c edition 9.0 - - - march, 2004 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 save gamma,angle,rminf data ispd,iprob,itask/1,3,0/ 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(7)=dshift ru(8)=eps ru(9)=ratio ru(10)=size endif c call cfd 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) c ip(5)=1 ip(6)=iprob ip(9)=itask ip(8)=ispd ip(26)=5 sp(6)='naca_mpixxx.rw' sp(7)='naca.jnl' sp(9)='naca_mpixxx.out' return end c----------------------------------------------------------------------- c c piecewise linear triangle multi grid package c c edition 9.0 - - - march, 2004 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 ip(7)=1 size=ru(10) 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 linear triangle multi grid package c c edition 9.0 - - - march, 2004 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(10) c pi=3.141592653589793e0 c ip(7)=1 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 linear triangle multi grid package c c edition 9.0 - - - march, 2004 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(204),y(204) character*80 + sp(100),su(100) save ntf,nvf,ncf,nbf,hmax,grade,x,y c data ntf,nvf,ncf,nbf/2,212,0,215/ data hmax,grade/0.1e0,1.75e0/ c data x( 1),y( 1)/ 0.943600E+00, 0.149900E-01/ data x( 2),y( 2)/ 0.942670E+00, 0.151900E-01/ data x( 3),y( 3)/ 0.939880E+00, 0.158000E-01/ data x( 4),y( 4)/ 0.935240E+00, 0.169000E-01/ data x( 5),y( 5)/ 0.928780E+00, 0.183000E-01/ data x( 6),y( 6)/ 0.920510E+00, 0.200800E-01/ data x( 7),y( 7)/ 0.910470E+00, 0.224100E-01/ data x( 8),y( 8)/ 0.898700E+00, 0.251200E-01/ data x( 9),y( 9)/ 0.885240E+00, 0.281900E-01/ data x( 10),y( 10)/ 0.870150E+00, 0.316200E-01/ data x( 11),y( 11)/ 0.853490E+00, 0.353600E-01/ data x( 12),y( 12)/ 0.835320E+00, 0.394100E-01/ data x( 13),y( 13)/ 0.815720E+00, 0.436800E-01/ data x( 14),y( 14)/ 0.794760E+00, 0.481400E-01/ data x( 15),y( 15)/ 0.772530E+00, 0.527300E-01/ data x( 16),y( 16)/ 0.749110E+00, 0.573500E-01/ data x( 17),y( 17)/ 0.724590E+00, 0.619100E-01/ data x( 18),y( 18)/ 0.699080E+00, 0.662800E-01/ data x( 19),y( 19)/ 0.672670E+00, 0.703800E-01/ data x( 20),y( 20)/ 0.645470E+00, 0.741000E-01/ data x( 21),y( 21)/ 0.617580E+00, 0.773700E-01/ data x( 22),y( 22)/ 0.589120E+00, 0.801500E-01/ data x( 23),y( 23)/ 0.560190E+00, 0.824800E-01/ data x( 24),y( 24)/ 0.530920E+00, 0.843800E-01/ data x( 25),y( 25)/ 0.501410E+00, 0.859000E-01/ data x( 26),y( 26)/ 0.471780E+00, 0.870400E-01/ data x( 27),y( 27)/ 0.442160E+00, 0.878100E-01/ data x( 28),y( 28)/ 0.412650E+00, 0.882600E-01/ data x( 29),y( 29)/ 0.383370E+00, 0.883800E-01/ data x( 30),y( 30)/ 0.354440E+00, 0.881800E-01/ data x( 31),y( 31)/ 0.325980E+00, 0.876800E-01/ data x( 32),y( 32)/ 0.298090E+00, 0.868700E-01/ data x( 33),y( 33)/ 0.270890E+00, 0.857700E-01/ data x( 34),y( 34)/ 0.244480E+00, 0.844000E-01/ data x( 35),y( 35)/ 0.218970E+00, 0.827600E-01/ data x( 36),y( 36)/ 0.194450E+00, 0.808700E-01/ data x( 37),y( 37)/ 0.171030E+00, 0.787400E-01/ data x( 38),y( 38)/ 0.148800E+00, 0.763800E-01/ data x( 39),y( 39)/ 0.127840E+00, 0.738100E-01/ data x( 40),y( 40)/ 0.117860E+00, 0.724500E-01/ data x( 41),y( 41)/ 0.108240E+00, 0.710300E-01/ data x( 42),y( 42)/ 0.989700E-01, 0.695800E-01/ data x( 43),y( 43)/ 0.900700E-01, 0.680700E-01/ data x( 44),y( 44)/ 0.817400E-01, 0.664750E-01/ data x( 45),y( 45)/ 0.734100E-01, 0.648800E-01/ data x( 46),y( 46)/ 0.656700E-01, 0.631700E-01/ data x( 47),y( 47)/ 0.583200E-01, 0.613700E-01/ data x( 48),y( 48)/ 0.513900E-01, 0.594300E-01/ data x( 49),y( 49)/ 0.448700E-01, 0.573100E-01/ data x( 50),y( 50)/ 0.387700E-01, 0.550600E-01/ data x( 51),y( 51)/ 0.330900E-01, 0.526800E-01/ data x( 52),y( 52)/ 0.278600E-01, 0.500900E-01/ data x( 53),y( 53)/ 0.230500E-01, 0.471700E-01/ data x( 54),y( 54)/ 0.187000E-01, 0.437300E-01/ data x( 55),y( 55)/ 0.147900E-01, 0.397800E-01/ data x( 56),y( 56)/ 0.113300E-01, 0.354400E-01/ data x( 57),y( 57)/ 0.832000E-02, 0.307600E-01/ data x( 58),y( 58)/ 0.577000E-02, 0.258200E-01/ data x( 59),y( 59)/ 0.368000E-02, 0.206400E-01/ data x( 60),y( 60)/ 0.206000E-02, 0.151600E-01/ data x( 61),y( 61)/ 0.890000E-03, 0.959000E-02/ data x( 62),y( 62)/ 0.190000E-03, 0.422000E-02/ data x( 63),y( 63)/-0.400000E-04,-0.800000E-03/ data x( 64),y( 64)/ 0.190000E-03,-0.552000E-02/ data x( 65),y( 65)/ 0.890000E-03,-0.992000E-02/ data x( 66),y( 66)/ 0.206000E-02,-0.141700E-01/ data x( 67),y( 67)/ 0.368000E-02,-0.180400E-01/ data x( 68),y( 68)/ 0.577000E-02,-0.217300E-01/ data x( 69),y( 69)/ 0.832000E-02,-0.252100E-01/ data x( 70),y( 70)/ 0.113300E-01,-0.285100E-01/ data x( 71),y( 71)/ 0.147900E-01,-0.315800E-01/ data x( 72),y( 72)/ 0.187000E-01,-0.344500E-01/ data x( 73),y( 73)/ 0.230500E-01,-0.371700E-01/ data x( 74),y( 74)/ 0.278600E-01,-0.397200E-01/ data x( 75),y( 75)/ 0.331000E-01,-0.421500E-01/ data x( 76),y( 76)/ 0.387700E-01,-0.444300E-01/ data x( 77),y( 77)/ 0.448700E-01,-0.466100E-01/ data x( 78),y( 78)/ 0.513900E-01,-0.487300E-01/ data x( 79),y( 79)/ 0.583200E-01,-0.507300E-01/ data x( 80),y( 80)/ 0.656700E-01,-0.526300E-01/ data x( 81),y( 81)/ 0.734100E-01,-0.544600E-01/ data x( 82),y( 82)/ 0.815500E-01,-0.562200E-01/ data x( 83),y( 83)/ 0.900700E-01,-0.579100E-01/ data x( 84),y( 84)/ 0.989700E-01,-0.595400E-01/ data x( 85),y( 85)/ 0.108240E+00,-0.610900E-01/ data x( 86),y( 86)/ 0.117860E+00,-0.625900E-01/ data x( 87),y( 87)/ 0.127840E+00,-0.640200E-01/ data x( 88),y( 88)/ 0.148800E+00,-0.667200E-01/ data x( 89),y( 89)/ 0.171030E+00,-0.691700E-01/ data x( 90),y( 90)/ 0.194450E+00,-0.713200E-01/ data x( 91),y( 91)/ 0.218970E+00,-0.731700E-01/ data x( 92),y( 92)/ 0.244480E+00,-0.747000E-01/ data x( 93),y( 93)/ 0.270890E+00,-0.758500E-01/ data x( 94),y( 94)/ 0.298090E+00,-0.766600E-01/ data x( 95),y( 95)/ 0.325980E+00,-0.770400E-01/ data x( 96),y( 96)/ 0.354440E+00,-0.770100E-01/ data x( 97),y( 97)/ 0.383370E+00,-0.765100E-01/ data x( 98),y( 98)/ 0.412650E+00,-0.754600E-01/ data x( 99),y( 99)/ 0.442160E+00,-0.737800E-01/ data x(100),y(100)/ 0.471780E+00,-0.713300E-01/ data x(101),y(101)/ 0.501410E+00,-0.680300E-01/ data x(102),y(102)/ 0.530920E+00,-0.639600E-01/ data x(103),y(103)/ 0.560190E+00,-0.593200E-01/ data x(104),y(104)/ 0.589120E+00,-0.542600E-01/ data x(105),y(105)/ 0.617580E+00,-0.488200E-01/ data x(106),y(106)/ 0.645470E+00,-0.431000E-01/ data x(107),y(107)/ 0.672670E+00,-0.369900E-01/ data x(108),y(108)/ 0.699080E+00,-0.302300E-01/ data x(109),y(109)/ 0.724590E+00,-0.230000E-01/ data x(110),y(110)/ 0.749110E+00,-0.153000E-01/ data x(111),y(111)/ 0.772530E+00,-0.752000E-02/ data x(112),y(112)/ 0.794760E+00,-0.500000E-04/ data x(113),y(113)/ 0.815720E+00, 0.664000E-02/ data x(114),y(114)/ 0.835320E+00, 0.119600E-01/ data x(115),y(115)/ 0.853490E+00, 0.155600E-01/ data x(116),y(116)/ 0.870150E+00, 0.178700E-01/ data x(117),y(117)/ 0.885240E+00, 0.190500E-01/ data x(118),y(118)/ 0.898700E+00, 0.193100E-01/ data x(119),y(119)/ 0.910470E+00, 0.189500E-01/ data x(120),y(120)/ 0.920510E+00, 0.182200E-01/ data x(121),y(121)/ 0.928780E+00, 0.173400E-01/ data x(122),y(122)/ 0.935240E+00, 0.161900E-01/ data x(123),y(123)/ 0.939880E+00, 0.154900E-01/ data x(124),y(124)/ 0.942670E+00, 0.151200E-01/ data x(125),y(125)/ 0.120177E+01,-0.103700E+00/ data x(126),y(126)/ 0.120069E+01,-0.102980E+00/ data x(127),y(127)/ 0.119743E+01,-0.100940E+00/ data x(128),y(128)/ 0.119210E+01,-0.975000E-01/ data x(129),y(129)/ 0.118479E+01,-0.926300E-01/ data x(130),y(130)/ 0.117547E+01,-0.868200E-01/ data x(131),y(131)/ 0.116424E+01,-0.803000E-01/ data x(132),y(132)/ 0.115127E+01,-0.732300E-01/ data x(133),y(133)/ 0.113669E+01,-0.658500E-01/ data x(134),y(134)/ 0.112076E+01,-0.582600E-01/ data x(135),y(135)/ 0.110367E+01,-0.507100E-01/ data x(136),y(136)/ 0.109477E+01,-0.470000E-01/ data x(137),y(137)/ 0.108568E+01,-0.433700E-01/ data x(138),y(138)/ 0.107641E+01,-0.398600E-01/ data x(139),y(139)/ 0.106701E+01,-0.365000E-01/ data x(140),y(140)/ 0.105751E+01,-0.333000E-01/ data x(141),y(141)/ 0.104794E+01,-0.302700E-01/ data x(142),y(142)/ 0.103835E+01,-0.274300E-01/ data x(143),y(143)/ 0.102877E+01,-0.247700E-01/ data x(144),y(144)/ 0.101925E+01,-0.223200E-01/ data x(145),y(145)/ 0.100982E+01,-0.200800E-01/ data x(146),y(146)/ 0.100050E+01,-0.181000E-01/ data x(147),y(147)/ 0.991320E+00,-0.163900E-01/ data x(148),y(148)/ 0.982330E+00,-0.149800E-01/ data x(149),y(149)/ 0.973550E+00,-0.138400E-01/ data x(150),y(150)/ 0.965040E+00,-0.129800E-01/ data x(151),y(151)/ 0.956830E+00,-0.123700E-01/ data x(152),y(152)/ 0.948940E+00,-0.120400E-01/ data x(153),y(153)/ 0.941420E+00,-0.119800E-01/ data x(154),y(154)/ 0.934300E+00,-0.121500E-01/ data x(155),y(155)/ 0.927630E+00,-0.124900E-01/ data x(156),y(156)/ 0.921460E+00,-0.129600E-01/ data x(157),y(157)/ 0.915820E+00,-0.135600E-01/ data x(158),y(158)/ 0.910710E+00,-0.142900E-01/ data x(159),y(159)/ 0.906120E+00,-0.152300E-01/ data x(160),y(160)/ 0.902090E+00,-0.163800E-01/ data x(161),y(161)/ 0.898620E+00,-0.177300E-01/ data x(162),y(162)/ 0.895730E+00,-0.192900E-01/ data x(163),y(163)/ 0.893400E+00,-0.210900E-01/ data x(164),y(164)/ 0.891690E+00,-0.230400E-01/ data x(165),y(165)/ 0.890600E+00,-0.250900E-01/ data x(166),y(166)/ 0.890270E+00,-0.269400E-01/ data x(167),y(167)/ 0.890600E+00,-0.287700E-01/ data x(168),y(168)/ 0.891660E+00,-0.304700E-01/ data x(169),y(169)/ 0.893570E+00,-0.316200E-01/ data x(170),y(170)/ 0.896290E+00,-0.323200E-01/ data x(171),y(171)/ 0.899720E+00,-0.328000E-01/ data x(172),y(172)/ 0.903790E+00,-0.333100E-01/ data x(173),y(173)/ 0.908420E+00,-0.338900E-01/ data x(174),y(174)/ 0.913600E+00,-0.345600E-01/ data x(175),y(175)/ 0.919320E+00,-0.353300E-01/ data x(176),y(176)/ 0.925570E+00,-0.361500E-01/ data x(177),y(177)/ 0.932300E+00,-0.370400E-01/ data x(178),y(178)/ 0.939500E+00,-0.379900E-01/ data x(179),y(179)/ 0.947130E+00,-0.390100E-01/ data x(180),y(180)/ 0.955170E+00,-0.401000E-01/ data x(181),y(181)/ 0.963580E+00,-0.412400E-01/ data x(182),y(182)/ 0.972320E+00,-0.424800E-01/ data x(183),y(183)/ 0.981360E+00,-0.437700E-01/ data x(184),y(184)/ 0.990650E+00,-0.451600E-01/ data x(185),y(185)/ 0.100016E+01,-0.466100E-01/ data x(186),y(186)/ 0.100984E+01,-0.481700E-01/ data x(187),y(187)/ 0.101966E+01,-0.498000E-01/ data x(188),y(188)/ 0.102958E+01,-0.515200E-01/ data x(189),y(189)/ 0.103955E+01,-0.533200E-01/ data x(190),y(190)/ 0.104953E+01,-0.552300E-01/ data x(191),y(191)/ 0.105947E+01,-0.572100E-01/ data x(192),y(192)/ 0.106933E+01,-0.593100E-01/ data x(193),y(193)/ 0.107907E+01,-0.615000E-01/ data x(194),y(194)/ 0.108866E+01,-0.637800E-01/ data x(195),y(195)/ 0.109805E+01,-0.661400E-01/ data x(196),y(196)/ 0.111608E+01,-0.711000E-01/ data x(197),y(197)/ 0.113290E+01,-0.762400E-01/ data x(198),y(198)/ 0.114827E+01,-0.814700E-01/ data x(199),y(199)/ 0.116198E+01,-0.865200E-01/ data x(200),y(200)/ 0.117387E+01,-0.912100E-01/ data x(201),y(201)/ 0.118373E+01,-0.955000E-01/ data x(202),y(202)/ 0.119153E+01,-0.990700E-01/ data x(203),y(203)/ 0.119717E+01,-0.101650E+00/ data x(204),y(204)/ 0.120062E+01,-0.103160E+00/ c sp(2)='wing' sp(1)='wing' sp(3)='wing' sp(4)='wing' c ip(7)=71 pi=3.141592653589793e0 nw=9 nf=133 c size=ru(10) 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,nf-1)=nw ibndry(2,nvf)=nf c ibndry(1,nvf+1)=5 ibndry(2,nvf+1)=71 ibndry(1,nvf+2)=9 ibndry(2,nvf+2)=161 ibndry(1,nvf+3)=133 ibndry(2,nvf+3)=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 linear triangle multi grid package c c edition 9.0 - - - march, 2004 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(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 ip(7)=10 size=ru(10) 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 linear triangle multi grid package c c edition 9.0 - - - march, 2004 c c----------------------------------------------------------------------- subroutine gd5(vx,vy,xm,ym,itnode,ibndry,ip,rp,sp,iu,ru,su,w) c implicit real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*), 1 x(165),y(165) character*80 + sp(100),su(100) save ntf,nvf,ncf,nbf,hmax,grade,x,y c data ntf,nvf,ncf,nbf/2,173,0,177/ data hmax,grade/0.1e0,1.75e0/ c c the main wing c data x( 1),y( 1)/ 0.4800000E+03,-0.5630000E+01/ data x( 2),y( 2)/ 0.4700000E+03,-0.3380000E+01/ data x( 3),y( 3)/ 0.4600000E+03,-0.1150000E+01/ data x( 4),y( 4)/ 0.4500000E+03, 0.1120000E+01/ data x( 5),y( 5)/ 0.4400000E+03, 0.3450000E+01/ data x( 6),y( 6)/ 0.4200000E+03, 0.7920000E+01/ data x( 7),y( 7)/ 0.4000000E+03, 0.1208000E+02/ data x( 8),y( 8)/ 0.3800000E+03, 0.1585000E+02/ data x( 9),y( 9)/ 0.3600000E+03, 0.1921000E+02/ data x( 10),y( 10)/ 0.3400000E+03, 0.2215000E+02/ data x( 11),y( 11)/ 0.3200000E+03, 0.2472000E+02/ data x( 12),y( 12)/ 0.3000000E+03, 0.2694000E+02/ data x( 13),y( 13)/ 0.2800000E+03, 0.2883000E+02/ data x( 14),y( 14)/ 0.2600000E+03, 0.3043000E+02/ data x( 15),y( 15)/ 0.2400000E+03, 0.3174000E+02/ data x( 16),y( 16)/ 0.2200000E+03, 0.3278000E+02/ data x( 17),y( 17)/ 0.2000000E+03, 0.3354000E+02/ data x( 18),y( 18)/ 0.1800000E+03, 0.3399000E+02/ data x( 19),y( 19)/ 0.1600000E+03, 0.3412000E+02/ data x( 20),y( 20)/ 0.1400000E+03, 0.3390000E+02/ data x( 21),y( 21)/ 0.1200000E+03, 0.3330000E+02/ data x( 22),y( 22)/ 0.1000000E+03, 0.3227000E+02/ data x( 23),y( 23)/ 0.8000000E+02, 0.3077000E+02/ data x( 24),y( 24)/ 0.6000000E+02, 0.2868000E+02/ data x( 25),y( 25)/ 0.5000000E+02, 0.2731000E+02/ data x( 26),y( 26)/ 0.4000000E+02, 0.2557000E+02/ data x( 27),y( 27)/ 0.3000000E+02, 0.2327000E+02/ data x( 28),y( 28)/ 0.2000000E+02, 0.1996000E+02/ data x( 29),y( 29)/ 0.1500000E+02, 0.1767000E+02/ data x( 30),y( 30)/ 0.1000000E+02, 0.1466000E+02/ data x( 31),y( 31)/ 0.7500000E+01, 0.1276000E+02/ data x( 32),y( 32)/ 0.5000000E+01, 0.1047000E+02/ data x( 33),y( 33)/ 0.4000000E+01, 0.9380000E+01/ data x( 34),y( 34)/ 0.3000000E+01, 0.8150000E+01/ data x( 35),y( 35)/ 0.2500000E+01, 0.7490000E+01/ data x( 36),y( 36)/ 0.2000000E+01, 0.6700000E+01/ data x( 37),y( 37)/ 0.1500000E+01, 0.5850000E+01/ data x( 38),y( 38)/ 0.1000000E+01, 0.4740000E+01/ data x( 39),y( 39)/ 0.5000000E+00, 0.3400000E+01/ data x( 40),y( 40)/ 0.2500000E+00, 0.2400000E+01/ data x( 41),y( 41)/ 0.0000000E+00, 0.0000000E+00/ data x( 42),y( 42)/ 0.2500000E+00,-0.3500000E+01/ data x( 43),y( 43)/ 0.5000000E+00,-0.4850000E+01/ data x( 44),y( 44)/ 0.1000000E+01,-0.6720000E+01/ data x( 45),y( 45)/ 0.1500000E+01,-0.8070000E+01/ data x( 46),y( 46)/ 0.2000000E+01,-0.9240000E+01/ data x( 47),y( 47)/ 0.2500000E+01,-0.1023000E+02/ data x( 48),y( 48)/ 0.3000000E+01,-0.1110000E+02/ data x( 49),y( 49)/ 0.4000000E+01,-0.1261000E+02/ data x( 50),y( 50)/ 0.5000000E+01,-0.1388000E+02/ data x( 51),y( 51)/ 0.7500000E+01,-0.1662000E+02/ data x( 52),y( 52)/ 0.1000000E+02,-0.1899000E+02/ data x( 53),y( 53)/ 0.1500000E+02,-0.2296000E+02/ data x( 54),y( 54)/ 0.2000000E+02,-0.2614000E+02/ data x( 55),y( 55)/ 0.3000000E+02,-0.3079000E+02/ data x( 56),y( 56)/ 0.4000000E+02,-0.3406000E+02/ data x( 57),y( 57)/ 0.5000000E+02,-0.3654000E+02/ data x( 58),y( 58)/ 0.6000000E+02,-0.3849000E+02/ data x( 59),y( 59)/ 0.8000000E+02,-0.4142000E+02/ data x( 60),y( 60)/ 0.1000000E+03,-0.4345000E+02/ data x( 61),y( 61)/ 0.1200000E+03,-0.4484000E+02/ data x( 62),y( 62)/ 0.1400000E+03,-0.4557000E+02/ data x( 63),y( 63)/ 0.1600000E+03,-0.4582000E+02/ data x( 64),y( 64)/ 0.1800000E+03,-0.4550000E+02/ data x( 65),y( 65)/ 0.2000000E+03,-0.4467000E+02/ data x( 66),y( 66)/ 0.2200000E+03,-0.4329000E+02/ data x( 67),y( 67)/ 0.2400000E+03,-0.4130000E+02/ data x( 68),y( 68)/ 0.2600000E+03,-0.3898000E+02/ data x( 69),y( 69)/ 0.2800000E+03,-0.3609000E+02/ data x( 70),y( 70)/ 0.3000000E+03,-0.3275000E+02/ data x( 71),y( 71)/ 0.3200000E+03,-0.2905000E+02/ data x( 72),y( 72)/ 0.3300000E+03,-0.2720000E+02/ data x( 73),y( 73)/ 0.3350000E+03,-0.2560000E+02/ data x( 74),y( 74)/ 0.3400000E+03,-0.2350000E+02/ data x( 75),y( 75)/ 0.3450000E+03,-0.2070000E+02/ data x( 76),y( 76)/ 0.3500000E+03,-0.1740000E+02/ data x( 77),y( 77)/ 0.3550000E+03,-0.1400000E+02/ data x( 78),y( 78)/ 0.3600000E+03,-0.1020000E+02/ data x( 79),y( 79)/ 0.3650000E+03,-0.6680000E+01/ data x( 80),y( 80)/ 0.3700000E+03,-0.3940000E+01/ data x( 81),y( 81)/ 0.3800000E+03,-0.3000000E+00/ data x( 82),y( 82)/ 0.3900000E+03, 0.1920000E+01/ data x( 83),y( 83)/ 0.4000000E+03, 0.3220000E+01/ data x( 84),y( 84)/ 0.4100000E+03, 0.3500000E+01/ data x( 85),y( 85)/ 0.4200000E+03, 0.3200000E+01/ data x( 86),y( 86)/ 0.4300000E+03, 0.2200000E+01/ data x( 87),y( 87)/ 0.4400000E+03, 0.8000000E+00/ data x( 88),y( 88)/ 0.4500000E+03,-0.1000000E+01/ data x( 89),y( 89)/ 0.4600000E+03,-0.3200000E+01/ data x( 90),y( 90)/ 0.4700000E+03,-0.5400000E+01/ data x( 91),y( 91)/ 0.4800000E+03,-0.7630000E+01/ c c the flap c data x( 92),y( 92)/ 0.5000000E+03,-0.1005000E+02/ data x( 93),y( 93)/ 0.4900000E+03,-0.7920000E+01/ data x( 94),y( 94)/ 0.4800000E+03,-0.5620000E+01/ data x( 95),y( 95)/ 0.4700000E+03,-0.3380000E+01/ data x( 96),y( 96)/ 0.4600000E+03,-0.1300000E+01/ data x( 97),y( 97)/ 0.4500000E+03, 0.5200005E+00/ data x( 98),y( 98)/ 0.4400000E+03, 0.2020000E+01/ data x( 99),y( 99)/ 0.4300000E+03, 0.3060000E+01/ data x(100),y(100)/ 0.4200000E+03, 0.3700000E+01/ data x(101),y(101)/ 0.4100000E+03, 0.3780000E+01/ data x(102),y(102)/ 0.4000000E+03, 0.3220000E+01/ data x(103),y(103)/ 0.3900000E+03, 0.1920000E+01/ data x(104),y(104)/ 0.3800000E+03,-0.3000002E+00/ data x(105),y(105)/ 0.3700000E+03,-0.3940000E+01/ data x(106),y(106)/ 0.3660000E+03,-0.6080000E+01/ data x(107),y(107)/ 0.3630000E+03,-0.7940000E+01/ data x(108),y(108)/ 0.3610000E+03,-0.9340000E+01/ data x(109),y(109)/ 0.3590000E+03,-0.1098000E+02/ data x(110),y(110)/ 0.3580000E+03,-0.1194000E+02/ data x(111),y(111)/ 0.3570000E+03,-0.1304000E+02/ data x(112),y(112)/ 0.3560000E+03,-0.1436000E+02/ data x(113),y(113)/ 0.3555000E+03,-0.1524000E+02/ data x(114),y(114)/ 0.3550000E+03,-0.1692000E+02/ data x(115),y(115)/ 0.3555000E+03,-0.1884000E+02/ data x(116),y(116)/ 0.3560000E+03,-0.1958000E+02/ data x(117),y(117)/ 0.3570000E+03,-0.2024000E+02/ data x(118),y(118)/ 0.3580000E+03,-0.2072000E+02/ data x(119),y(119)/ 0.3590000E+03,-0.2076000E+02/ data x(120),y(120)/ 0.3610000E+03,-0.2054000E+02/ data x(121),y(121)/ 0.3630000E+03,-0.2026000E+02/ data x(122),y(122)/ 0.3660000E+03,-0.1974000E+02/ data x(123),y(123)/ 0.3700000E+03,-0.1903000E+02/ data x(124),y(124)/ 0.3800000E+03,-0.1717000E+02/ data x(125),y(125)/ 0.3900000E+03,-0.1532000E+02/ data x(126),y(126)/ 0.4000000E+03,-0.1361000E+02/ data x(127),y(127)/ 0.4100000E+03,-0.1199000E+02/ data x(128),y(128)/ 0.4200000E+03,-0.1068000E+02/ data x(129),y(129)/ 0.4300000E+03,-0.9670000E+01/ data x(130),y(130)/ 0.4400000E+03,-0.9010000E+01/ data x(131),y(131)/ 0.4500000E+03,-0.8710000E+01/ data x(132),y(132)/ 0.4600000E+03,-0.8800000E+01/ data x(133),y(133)/ 0.4700000E+03,-0.9260000E+01/ data x(134),y(134)/ 0.4800000E+03,-0.1011000E+02/ data x(135),y(135)/ 0.4900000E+03,-0.1121000E+02/ data x(136),y(136)/ 0.5000000E+03,-0.1254000E+02/ c c the slat c data x(137),y(137)/ 0.1200000E+03, 0.3330000E+02/ data x(138),y(138)/ 0.1150000E+03, 0.3330000E+02/ data x(139),y(139)/ 0.1000000E+03, 0.3227500E+02/ data x(140),y(140)/ 0.8000000E+02, 0.3077000E+02/ data x(141),y(141)/ 0.6000000E+02, 0.2868000E+02/ data x(142),y(142)/ 0.4000000E+02, 0.2557500E+02/ data x(143),y(143)/ 0.3000000E+02, 0.2327000E+02/ data x(144),y(144)/ 0.2000000E+02, 0.1996000E+02/ data x(145),y(145)/ 0.1000000E+02, 0.1466500E+02/ data x(146),y(146)/ 0.5000000E+01, 0.1047000E+02/ data x(147),y(147)/ 0.1500000E+01, 0.5850000E+01/ data x(148),y(148)/ 0.0000000E+00, 0.0000000E+00/ data x(149),y(149)/ 0.1500000E+01,-0.8075000E+01/ data x(150),y(150)/ 0.5000000E+01,-0.1388000E+02/ data x(151),y(151)/ 0.1000000E+02,-0.1899000E+02/ data x(152),y(152)/ 0.1500000E+02,-0.2296000E+02/ data x(153),y(153)/ 0.2000000E+02,-0.2614500E+02/ data x(154),y(154)/ 0.1800000E+02,-0.2200000E+02/ data x(155),y(155)/ 0.1760000E+02,-0.1900000E+02/ data x(156),y(156)/ 0.1750000E+02,-0.1500000E+02/ data x(157),y(157)/ 0.1850000E+02,-0.1000000E+02/ data x(158),y(158)/ 0.2350000E+02, 0.0000000E+00/ data x(159),y(159)/ 0.3000000E+02, 0.7000000E+01/ data x(160),y(160)/ 0.4000000E+02, 0.1350000E+02/ data x(161),y(161)/ 0.6000000E+02, 0.2200000E+02/ data x(162),y(162)/ 0.8000000E+02, 0.2750000E+02/ data x(163),y(163)/ 0.1000000E+03, 0.3050000E+02/ data x(164),y(164)/ 0.1150000E+03, 0.3150000E+02/ data x(165),y(165)/ 0.1200000E+03, 0.3180000E+02/ c sp(2)='wing' sp(1)='wing' sp(3)='wing' sp(4)='wing' c pi=3.141592653589793e0 c ip(7)=51 size=ru(10) nw=9 nf=100 ns=145 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 t=1.0e0 thetaf=-t*pi*2.0e0/9.0e0 cf=cos(thetaf) sf=sin(thetaf) xf=2.1e-1*t yf=-1.0e-1*t xmin=vx(nf) xmax=vx(nf) ymin=vy(nf) ymax=vy(nf) do i=nf,ns-1 xmax=amax1(xmax,vx(i)) xmin=amin1(xmin,vx(i)) ymax=amax1(ymax,vy(i)) ymin=amin1(ymin,vy(i)) enddo xc=(xmin+xmax)/2.0e0 yc=(ymin+ymax)/2.0e0 do i=nf,ns-1 xx=vx(i)-xc yy=vy(i)-yc vx(i)=xx*cf-yy*sf+xc+xf vy(i)=xx*sf+yy*cf+yc+yf enddo c thetas=t*pi/6.0e0 cs=cos(thetas) ss=sin(thetas) xs=-1.9e-1*t ys=-4.0e-2*t xmin=vx(ns) xmax=vx(ns) ymin=vy(ns) ymax=vy(ns) do i=ns,nvf xmax=amax1(xmax,vx(i)) xmin=amin1(xmin,vx(i)) ymax=amax1(ymax,vy(i)) ymin=amin1(ymin,vy(i)) enddo xc=(xmin+xmax)/2.0e0 yc=(ymin+ymax)/2.0e0 do i=ns,nvf xx=vx(i)-xc yy=vy(i)-yc vx(i)=xx*cs-yy*ss+xc+xs vy(i)=xx*ss+yy*cs+yc+ys 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 ibndry(2,nw-1)=1 ibndry(2,nf-1)=nw ibndry(2,ns-1)=nf ibndry(2,nvf)=ns c ibndry(1,nvf+1)=5 ibndry(2,nvf+1)=155 ibndry(1,nvf+2)=173 ibndry(2,nvf+2)=37 ibndry(1,nvf+3)=99 ibndry(2,nvf+3)=116 ibndry(1,nvf+4)=100 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 linear triangle multi grid package c c edition 9.0 - - - march, 2004 c c----------------------------------------------------------------------- subroutine gd6(vx,vy,xm,ym,itnode,ibndry,ip,rp,sp,iu,ru,su,w) c implicit real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*), 1 xx(34),yy(34) character*80 + sp(100),su(100) save ntf,nvf,ncf,nbf,hmax,grade c data ntf,nvf,ncf,nbf/8,40,32,48/ data hmax,grade/0.1e0,1.75e0/ c sp(2)='ellipse' sp(1)='ellipse' sp(3)='ellipse' sp(4)='ellipse' c ip(1)=ntf ip(2)=nvf ip(3)=ncf ip(4)=nbf ip(7)=1 rp(1)=ru(1) rp(15)=hmax rp(16)=grade pi=3.141592653589793e0 pi16=pi/16.0e0 c size=ru(10) ratio=ru(9) vx(1)=-0.5e0 vy(1)=0.0e0 vx(2)=0.5e0 vy(2)=0.0e0 c scale=2.0e0 vx(3)=scale*size vy(3)=0.0e0 vx(4)=scale*size vy(4)=size vx(5)=0.0e0 vy(5)=size vx(6)=-size vy(6)=size vx(7)=-size vy(7)=0.0e0 vx(8)=-size vy(8)=-size vx(9)=0.0e0 vy(9)=-size vx(10)=scale*size vy(10)=-size c do i=1,15 vx(10+i)=cos(pi-i*pi16)/2.0e0 vy(10+i)=sin(pi-i*pi16)/(2.0e0*ratio) vx(25+i)=vx(10+i) vy(25+i)=-vy(10+i) enddo do i=1,16 xx(i)=cos(pi-(2*i-1)*pi16/2.0e0)/2.0e0 yy(i)=sin(pi-(2*i-1)*pi16/2.0e0)/(2.0e0*ratio) xx(16+i)=xx(i) yy(16+i)=-yy(i) enddo c ibndry(1,1)=7 ibndry(2,1)=1 ibndry(3,1)=0 ibndry(4,1)=0 ibndry(5,1)=0 ibndry(6,1)=0 ibndry(1,2)=2 ibndry(2,2)=3 ibndry(3,2)=0 ibndry(4,2)=0 ibndry(5,2)=0 ibndry(6,2)=0 do i=3,10 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 ibndry(6,3)=1 ibndry(6,6)=3 ibndry(6,7)=3 ibndry(6,10)=1 ibndry(6,4)=2 ibndry(6,5)=2 ibndry(6,8)=4 ibndry(6,9)=4 ibndry(2,10)=3 do i=11,26 ibndry(1,i)=i-1 ibndry(2,i)=i ibndry(3,i)=i-10 ibndry(4,i)=1 ibndry(5,i)=0 ibndry(6,i)=-1 enddo ibndry(1,11)=1 ibndry(2,26)=2 do i=27,42 ibndry(1,i)=i-2 ibndry(2,i)=i-1 ibndry(3,i)=i-10 ibndry(4,i)=1 ibndry(5,i)=0 ibndry(6,i)=-2 enddo ibndry(1,27)=1 ibndry(2,42)=2 do i=43,48 ibndry(3,i)=0 ibndry(4,i)=0 ibndry(5,i)=0 ibndry(6,i)=0 enddo ibndry(1,43)=5 ibndry(2,43)=18 ibndry(1,44)=9 ibndry(2,44)=33 ibndry(1,45)=4 ibndry(2,45)=22 ibndry(1,46)=6 ibndry(2,46)=14 ibndry(1,47)=8 ibndry(2,47)=29 ibndry(1,48)=10 ibndry(2,48)=37 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) return end c----------------------------------------------------------------------- c c piecewise linear triangle multi grid package c c edition 9.0 - - - march, 2004 c c----------------------------------------------------------------------- subroutine gd7(vx,vy,xm,ym,itnode,ibndry,ip,rp,sp,iu,ru,su,w) c implicit real (a-h,o-z) implicit integer (i-n) integer + itnode(5,*),ibndry(6,*),ip(100),iu(100) real + vx(*),vy(*),xm(*),ym(*),rp(100),ru(100),w(*), 1 x(165),y(165) character*80 + sp(100),su(100) save ntf,nvf,ncf,nbf,hmax,grade,x,y c data ntf,nvf,ncf,nbf/2,157,0,161/ data hmax,grade/0.1e0,1.75e0/ c c wing c data x( 1),y( 1)/ 0.480000000E+03,-0.662999821E+01/ data x( 2),y( 2)/ 0.473457031E+03,-0.526247884E+01/ data x( 3),y( 3)/ 0.466914307E+03,-0.369342580E+01/ data x( 4),y( 4)/ 0.460371582E+03,-0.253030702E+01/ data x( 5),y( 5)/ 0.453828857E+03,-0.137639498E+01/ data x( 6),y( 6)/ 0.447286133E+03,-0.148075148E+00/ data x( 7),y( 7)/ 0.434102050E+03, 0.253743934E+01/ data x( 8),y( 8)/ 0.420792480E+03, 0.477401899E+01/ data x( 9),y( 9)/ 0.407403809E+03, 0.512527423E+01/ data x( 10),y( 10)/ 0.394037842E+03, 0.273533501E+01/ data x( 11),y( 11)/ 0.380000000E+03,-0.231984292E+01/ data x( 12),y( 12)/ 0.370000006E+03,-0.684822106E+01/ data x( 13),y( 13)/ 0.365000000E+03,-0.923239198E+01/ data x( 14),y( 14)/ 0.360000000E+03,-0.116313226E+02/ data x( 15),y( 15)/ 0.355000000E+03,-0.140056652E+02/ data x( 16),y( 16)/ 0.350000000E+03,-0.163237781E+02/ data x( 17),y( 17)/ 0.345000000E+03,-0.185612068E+02/ data x( 18),y( 18)/ 0.340000000E+03,-0.206999190E+02/ data x( 19),y( 19)/ 0.335000000E+03,-0.227274405E+02/ data x( 20),y( 20)/ 0.330000000E+03,-0.246359824E+02/ data x( 21),y( 21)/ 0.320000000E+03,-0.280835203E+02/ data x( 22),y( 22)/ 0.300000000E+03,-0.335516603E+02/ data x( 23),y( 23)/ 0.280000000E+03,-0.374062618E+02/ data x( 24),y( 24)/ 0.260000000E+03,-0.400782232E+02/ data x( 25),y( 25)/ 0.240000000E+03,-0.419478615E+02/ data x( 26),y( 26)/ 0.220000000E+03,-0.432872785E+02/ data x( 27),y( 27)/ 0.200000000E+03,-0.442582638E+02/ data x( 28),y( 28)/ 0.180000000E+03,-0.449301318E+02/ data x( 29),y( 29)/ 0.160000000E+03,-0.453003997E+02/ data x( 30),y( 30)/ 0.140000000E+03,-0.453109687E+02/ data x( 31),y( 31)/ 0.120000000E+03,-0.448567226E+02/ data x( 32),y( 32)/ 0.100000000E+03,-0.437840957E+02/ data x( 33),y( 33)/ 0.800000000E+02,-0.418741005E+02/ data x( 34),y( 34)/ 0.600000000E+02,-0.387928709E+02/ data x( 35),y( 35)/ 0.500000000E+02,-0.366466484E+02/ data x( 36),y( 36)/ 0.400000000E+02,-0.339474624E+02/ data x( 37),y( 37)/ 0.300000000E+02,-0.304961646E+02/ data x( 38),y( 38)/ 0.200000000E+02,-0.259126583E+02/ data x( 39),y( 39)/ 0.150000000E+02,-0.229490684E+02/ data x( 40),y( 40)/ 0.999999998E+01,-0.192272206E+02/ data x( 41),y( 41)/ 0.500000000E+01,-0.140600086E+02/ data x( 42),y( 42)/ 0.150000000E+01,-0.801237298E+01/ data x( 43),y( 43)/ 0.000000000E+00, 0.000000000E+00/ data x( 44),y( 44)/ 0.150000004E+01, 0.574996748E+01/ data x( 45),y( 45)/ 0.500014228E+01, 0.106238639E+02/ data x( 46),y( 46)/ 0.999999997E+01, 0.147985701E+02/ data x( 47),y( 47)/ 0.199999995E+02, 0.199110020E+02/ data x( 48),y( 48)/ 0.300298917E+02, 0.231743258E+02/ data x( 49),y( 49)/ 0.400000000E+02, 0.255091817E+02/ data x( 50),y( 50)/ 0.500000737E+02, 0.273102412E+02/ data x( 51),y( 51)/ 0.600000175E+02, 0.287496875E+02/ data x( 52),y( 52)/ 0.800000219E+02, 0.308990033E+02/ data x( 53),y( 53)/ 0.999999760E+02, 0.323684836E+02/ data x( 54),y( 54)/ 0.119999727E+03, 0.333339249E+02/ data x( 55),y( 55)/ 0.140000000E+03, 0.338853699E+02/ data x( 56),y( 56)/ 0.159999999E+03, 0.340754563E+02/ data x( 57),y( 57)/ 0.180000000E+03, 0.339379886E+02/ data x( 58),y( 58)/ 0.200003656E+03, 0.334954849E+02/ data x( 59),y( 59)/ 0.220000000E+03, 0.327628738E+02/ data x( 60),y( 60)/ 0.240000206E+03, 0.317472882E+02/ data x( 61),y( 61)/ 0.260000000E+03, 0.304487961E+02/ data x( 62),y( 62)/ 0.280001707E+03, 0.288585072E+02/ data x( 63),y( 63)/ 0.300000000E+03, 0.269585083E+02/ data x( 64),y( 64)/ 0.320000000E+03, 0.247205067E+02/ data x( 65),y( 65)/ 0.339999997E+03, 0.221103649E+02/ data x( 66),y( 66)/ 0.355521039E+03, 0.198066890E+02/ data x( 67),y( 67)/ 0.368721859E+03, 0.176465799E+02/ data x( 68),y( 68)/ 0.381945070E+03, 0.152952884E+02/ data x( 69),y( 69)/ 0.395206187E+03, 0.127527302E+02/ data x( 70),y( 70)/ 0.408566650E+03, 0.100156047E+02/ data x( 71),y( 71)/ 0.421462971E+03, 0.722427238E+01/ data x( 72),y( 72)/ 0.434750707E+03, 0.421943290E+01/ data x( 73),y( 73)/ 0.447547374E+03, 0.122888481E+01/ data x( 74),y( 74)/ 0.453996094E+03,-0.305867383E+00/ data x( 75),y( 75)/ 0.460470678E+03,-0.186165982E+01/ data x( 76),y( 76)/ 0.466926997E+03,-0.342588974E+01/ data x( 77),y( 77)/ 0.473471924E+03,-0.502367471E+01/ c c flap c data x( 78),y( 78)/ 0.590689574E+03,-0.875101882E+02/ data x( 79),y( 79)/ 0.582315185E+03,-0.815126621E+02/ data x( 80),y( 80)/ 0.574327351E+03,-0.758292226E+02/ data x( 81),y( 81)/ 0.566176746E+03,-0.702812757E+02/ data x( 82),y( 82)/ 0.557582866E+03,-0.648267025E+02/ data x( 83),y( 83)/ 0.548944062E+03,-0.597900202E+02/ data x( 84),y( 84)/ 0.540115733E+03,-0.550830383E+02/ data x( 85),y( 85)/ 0.531107846E+03,-0.506902836E+02/ data x( 86),y( 86)/ 0.521922105E+03,-0.465901257E+02/ data x( 87),y( 87)/ 0.512594386E+03,-0.427760313E+02/ data x( 88),y( 88)/ 0.503118172E+03,-0.392013153E+02/ data x( 89),y( 89)/ 0.493659507E+03,-0.358307699E+02/ data x( 90),y( 90)/ 0.483932097E+03,-0.324051548E+02/ data x( 91),y( 91)/ 0.474415369E+03,-0.289558527E+02/ data x( 92),y( 92)/ 0.470587155E+03,-0.275931441E+02/ data x( 93),y( 93)/ 0.467687372E+03,-0.266258565E+02/ data x( 94),y( 94)/ 0.465755815E+03,-0.259828146E+02/ data x( 95),y( 95)/ 0.463946586E+03,-0.251814414E+02/ data x( 96),y( 96)/ 0.463127460E+03,-0.245277570E+02/ data x( 97),y( 97)/ 0.462527732E+03,-0.235576829E+02/ data x( 98),y( 98)/ 0.462241255E+03,-0.220639840E+02/ data x( 99),y( 99)/ 0.462259720E+03,-0.209738771E+02/ data x(100),y(100)/ 0.462404022E+03,-0.197493515E+02/ data x(101),y(101)/ 0.463509456E+03,-0.188472124E+02/ data x(102),y(102)/ 0.464445848E+03,-0.182076208E+02/ data x(103),y(103)/ 0.466066020E+03,-0.173750427E+02/ data x(104),y(104)/ 0.467495819E+03,-0.168870852E+02/ data x(105),y(105)/ 0.468828392E+03,-0.165731108E+02/ data x(106),y(106)/ 0.471353890E+03,-0.161757596E+02/ data x(107),y(107)/ 0.473804576E+03,-0.159301379E+02/ data x(108),y(108)/ 0.477347391E+03,-0.157771184E+02/ data x(109),y(109)/ 0.481865034E+03,-0.159367047E+02/ data x(110),y(110)/ 0.492367496E+03,-0.177136125E+02/ data x(111),y(111)/ 0.502139335E+03,-0.207716416E+02/ data x(112),y(112)/ 0.511405386E+03,-0.246801438E+02/ data x(113),y(113)/ 0.520297957E+03,-0.293047743E+02/ data x(114),y(114)/ 0.528883448E+03,-0.345920556E+02/ data x(115),y(115)/ 0.537051283E+03,-0.403550440E+02/ data x(116),y(116)/ 0.544986150E+03,-0.465678311E+02/ data x(117),y(117)/ 0.552754066E+03,-0.531302305E+02/ data x(118),y(118)/ 0.560403464E+03,-0.599345639E+02/ data x(119),y(119)/ 0.567949695E+03,-0.668428740E+02/ data x(120),y(120)/ 0.575494475E+03,-0.737960992E+02/ data x(121),y(121)/ 0.583068359E+03,-0.806951931E+02/ c c slat c data x(122),y(122)/-0.139921304E+02, 0.107932521E+02/ data x(123),y(123)/-0.180998011E+02, 0.771087942E+01/ data x(124),y(124)/-0.299042778E+02,-0.517306877E+00/ data x(125),y(125)/-0.464852558E+02,-0.132745842E+02/ data x(126),y(126)/-0.614891104E+02,-0.275727459E+02/ data x(127),y(127)/-0.750712754E+02,-0.445354315E+02/ data x(128),y(128)/-0.809470086E+02,-0.548201807E+02/ data x(129),y(129)/-0.832101179E+02,-0.642385568E+02/ data x(130),y(130)/-0.828836892E+02,-0.754105177E+02/ data x(131),y(131)/-0.813954050E+02,-0.802887906E+02/ data x(132),y(132)/-0.785738188E+02,-0.842687651E+02/ data x(133),y(133)/-0.753610927E+02,-0.875867608E+02/ data x(134),y(134)/-0.739154358E+02,-0.889208603E+02/ data x(135),y(135)/-0.759155235E+02,-0.889208538E+02/ data x(136),y(136)/-0.860089871E+02,-0.873667527E+02/ data x(137),y(137)/-0.930244828E+02,-0.852155089E+02/ data x(138),y(138)/-0.987726818E+02,-0.817898608E+02/ data x(139),y(139)/-0.103911240E+03,-0.753624048E+02/ data x(140),y(140)/-0.105299163E+03,-0.695069901E+02/ data x(141),y(141)/-0.104584014E+03,-0.637671461E+02/ data x(142),y(142)/-0.102145402E+03,-0.577060883E+02/ data x(143),y(143)/-0.956726529E+02,-0.482979870E+02/ data x(144),y(144)/-0.884443568E+02,-0.406693640E+02/ data x(145),y(145)/-0.807948934E+02,-0.338967442E+02/ data x(146),y(146)/-0.647104526E+02,-0.216852309E+02/ data x(147),y(147)/-0.480126378E+02,-0.103790270E+02/ data x(148),y(148)/-0.311015540E+02, 0.442777950E+00/ data x(149),y(149)/-0.180768897E+02, 0.841042574E+01/ c sp(2)='wing' sp(1)='wing' sp(3)='wing' sp(4)='wing' c pi=3.141592653589793e0 c ip(7)=36 size=ru(10) nw=9 nf=86 ns=130 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 ibndry(2,nw-1)=1 ibndry(2,nf-1)=nw ibndry(2,ns-1)=nf ibndry(2,nvf)=ns ibndry(1,nvf+1)=5 ibndry(2,nvf+1)=147 ibndry(1,nvf+2)=130 ibndry(2,nvf+2)=53 ibndry(1,nvf+3)=9 ibndry(2,nvf+3)=117 ibndry(1,nvf+4)=86 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