Simple surface hang glider profile

Parameters for a empirical single surface profile:

a1 = eliptical zone (horizontal projection)
a2 = circular zone
a3 = straight line zone
a4 = reflex zone
a5 = reflex zone to vertex

b1 = max thickness
b2 = thickness at a1+a2
b3 = thickness at a1+a2+a3
b4 = thickness at a1+a2+a3+a4
b5 = thickness at vertex

Notes:
- If a1+a2+a3+a4 = 100 then the thickness will be expresed in % of the chord.
- Trying the appropiates parameters for a1-a4 and b1-b5 result in a desired profile

Fig 1: Geometrical parameters definition

Fig 2: Analytic expresions for the curves 1,2,3 of the profile

Fig 3: Analytic expresions for the reflex curve of the profile

Fig 4: Profile example drawing

`File data and FORTRAN program for compute and drawing simple surface profiles:The gnudwing-cl battens profiles will be designed wiht the program.'profile.dat'Profile data25. a1 elipse25. a2 circle35. a3 line15. a4 reflex14. a5 vertex10. b1 max thickness8. b2 thickness at a1+a21. b5 thickness at vertex50. le_dia leading edge diameter mm15. le_ds double surface lenghtFORTRAN PROGRAM for simple surface profiles(Compiles under g77 GNU Fortran)ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc     HANG GLIDER SIMPLE SURFACE PROFILE v-0.1 (2004-01-26)c     byc     Pere Hernández Casellasc     LABORATORI D'ENVOLc     http://www.geocities.com/Yosemite/Meadows/2822/cc     Program computes points (x,y) for a simple surface profilec     and creates 'profile.txt' result and 'profile.dxf' graficc     Reads data from 'profile.dat' or internal codecc     Runs well under g77 fortran compiler in Debian GNU/Linux 3.0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc      PROGRAM hgssprofile      REAL a1,a2,a3,a4,a5,b1,b2,b3,b4,b5      REAL le_ds, le_dia      REAL PI      REAL x,y,x1,y1,x2,y2,xx      REAL mu, omega, s, radius,m,theta      REAL p1x,p2x,p1y,p2y      REAL k1,k2,k3,ym,yym,xn,xxnc     Basic parameters (see schemes)      a1= 25.      a2= 25.      a3= 35.      a4= 15.      a5= 14.      b1= 10.      b2= 8.c     b3 derivedc     b4 derived      b5= 1.      le_dia= 50.      le_ds= 15.      PI=4.*atan(1.)      write (*,*) 'PI=',PIc     Read parameters from a profile.dat file. Comment if desired.      open (unit=15,file='profile.dat')      read (15,'(/)')      read (15,*) a1      read (15,*) a2      read (15,*) a3      read (15,*) a4      read (15,*) a5      read (15,*) b1      read (15,*) b2      read (15,*) b5      read (15,*) le_dia      read (15,*) le_ds      close(15)      write (*,*) a1,a2,a3,b5,le_dsc     Open result file wiht coordinates x,y         open(unit=10,file='profile.txt')      i=0c     Ellipse          do theta=0.,90.,5.      i=i+1      x=a1-a1*cos(theta*PI/180.)      y=b1*sin(theta*PI/180.)      write(10,*) x,y      end do      write(*,*) i,x,'fi elipse'c     Circle      mu=atan(a2/(b1-b2))      omega=PI-2.*mu      s=sqrt(a2*a2+(b1-b2)*(b1-b2))      radius=0.5*s/sin(0.5*omega)      do theta=0.,omega,0.0088      i=i+1      x=a1+radius*sin(theta)      y=b2-(radius-(b1-b2))+radius*cos(theta)      write(10,*) x,y      end do      write (*,*) i,x,'fi circle'c     Line      b3=b2-a3*tan(omega)      write(*,*) 'hola'      write(*,*) 'b3,b2,omega=',b3,b2,omega      m=(b3-b2)/a3      do xx=0.,a3,a3/4.      i=i+1      x=a1+a2+xx      y=m*xx+b2      write(10,*) x,y      end do      write(*,*) i,x,m,'fi line'c     Reflex      k1=(b3-b5+m*a5)/(-a5*a5)      k2=m+2.*k1*a5      k3=b5      do xx=-a5,a4-a5,a4/20.      i=i+1      x=a1+a2+a3+a5+xx      y=k1*xx*xx+k2*xx+k3      write(10,*) x,y      end do      write(*,*) i,x,'fi reflex'c     Close result file      close (10)c     Open result file wiht coordinates x,y         open(unit=10,file='profile.txt')      do j=1,i      read (10,*) x,y      write(*,*) j,x,y      end do      write (*,*) i      write (*,*) 'fi arxiu'      close(10)c     Generation of .dxf drawing profile      open(unit=10,file='profile.txt')      open(unit=20,file='profile.dxf')c     Grid      do ym=0.,5.,1.      yym=ym*4.      call line(0.,-yym,100.,-yym,7)      end do      do xn=0.,10.,1.      xxn=xn*10.      call line(xxn,-0.,xxn,-20.,7)      end doc       Profile      do j=1,i-1      read (10,*) x1,y1      read (10,*) x2,y2      call line(x1,-y1,x2,-y2,2)      backspace (10)      end doc     Close the output .dxf file      write(20,'(/,A,/,I1,/,A)') "ENDSEC",0,"EOF"c     Close units      close (10)      close (20)100   FORMAT (F6.2,3x,F6.2,/)      end      SUBROUTINE line(p1x,p1y,p2x,p2y,linecolor)c     line P1-P2      write(20,*)      write(20,'(A,/,I1,/,A)') "LINE",8,"default"      write(20,'(I1,/,A)') 6,"CONTINUOUS"      write(20,'(I2,/,F6.1,/,I2,/,F6.1)') 10,p1x,20,-p1y      write(20,'(I2,/,F6.1,/,I2,/,F6.1)') 11,p2x,21,-p2y      write(20,'(I2,/,I2,/,I2,/,I2,/,I2)') 39,0,62,linecolor,0      return      end`