Subject: NACA 16 Series
From: Paul
Date: 3/16/2000, 5:12 PM

Perry Mick wrote:

Info from David Lednicer about NACA 16-series:

       The NACA 16-series airfoils are completely different than the
   NACA 0016.  The 16-series were commonly used on props, but these days
   Hartzell and McCauley tend to instead use derivatives of the NACA
   6x-series.  Older fixed pitch props often use the Clark Y.

           The 16-series are not on the UIUC web site as there are too
many
   of them.  Instead, we use the attached program to create their
   coordinates.  The program is written in GW-BASIC and will run under
the
   Basic interperter, QuickBasic or QBasic.  Most modern Windows
computers
   come with QBasic.

--
Perry Mick
perrym@teleport.com
Duckt N7XR
http://www.mickaircraft.com/duckt.htm

 
The Aircraft Rotary Engine Newsletter.              Powered by Linux.

http://home.earthlink.net/~rotaryeng/            http://www.linux.org

1000 'PROGRAM TO GENERATE NACA AIRFOIL COORDINATES

1010 '

1020 'COMPILER METACOMMAND

1030 '$DYNAMIC

1040 '

1050 'WRITTEN BY D. LEDNICER, dave@amiwest.com

1060 ' COPYRIGHT 1995 - THIS SOFTWARE IS DECLARED TO BE FREEWARE

1070 '

1080 VERSN = 4.5

1090 '

1100 'SET INPUT POINT LIMITS AND OTHER CONSTANTS

1110 PI = 4 * ATN(1)

1120 DEF FNR5 (X) = INT(X * 100000! + .5)

1130 DEF FNX (X) = 9 + INT(X * 300 + .5)

1140 DEF FNY (Y) = 95 - INT(Y * 270 + .5)

1150 NP = 100

1160 MPTS = 400

1170 DTP = 3

1180 QM = 640  'HORIZONTAL SCREEN COORDINATES

1190 RM = 350  'VERTICAL SCREEN COORDINATES

1200 STOL = .0001

1210 N6S = 5  'NUMBER OF 6 SERIES IN DATABASE (63 - 67)

1220 N6T = 8  'NUMBER OF 6 SERIES THICKNESS FORMS FOR EACH SUBSERIES

1230 N6AS = 3  'NUMBER OF 6A SERIES IN DATABASE (63 - 65)

1240 N6AT = 7  'NUMBER OF 6A SERIES THICKNESS FORMS FOR EACH SUBSERIES

1250 N6C = 11 'NUMBER OF NACA 6 SERIES CAMBERLINES IN DATABASE

1260 N6AC = 1 'NUMBER OF NACA 6A SERIES CAMBERLINES IN DATABASE

1270 N6P = 26 'NUMBER OF 6 SERIES X POINTS IN DATABASE

1280 '

1290 WIDTH 80: SCREEN 0, 0, 0: COLOR 7, 1: KEY OFF: CLS

1300 LOCATE 2, 14: COLOR 0, 7

1310 PRINT USING " THE NACA AIRFOIL ORDINATE GENERATION PROGRAM v#.# "; VERSN

1320 COLOR 7, 1: PRINT : PRINT

1330 VIEW PRINT 5 TO 24

1340 '

1350 INPUT " Do You Want To Reset Constants Used In The Program (Y/N)[N]"; CHGE$

1360 IF CHGE$ = "y" OR CHGE$ = "Y" THEN GOSUB 15600

1370 '

1380 DIM XCC(MPTS), XU(MPTS), YU(MPTS), XL(MPTS), YL(MPTS), YT(MPTS), YC(MPTS)

1390 DIM XDD(MPTS), DYC(MPTS), XQ(2), YQ(2), ALP(14)

1400 DIM P(2, NP * 4), A1(3), B1(3), DT(3), X(MPTS), Y(MPTS), YP(MPTS), DY(2)

1410 DIM N(NP * 4, 4), B(3, NP * 4), L(NP * 4), U(3, NP * 4), C(2, NP * 4), R(2), F(4, 2)

1420 DIM T6(N6S), TF6(1 + N6S * N6T + N6AS * N6AT + 2 * N6C + 2 * N6AC, N6P)

1430 DIM ENDSLP(2), DYDX(2), XI(30), YI(30)

1440 '

1450 PRINT

1460 PRINT " You Have The Following Options:"

1470 PRINT "     1 - NACA 4 Digit Airfoil"

1480 PRINT "     2 - NACA 5 Digit Airfoil"

1490 PRINT "     3 - NACA Modified 4 Digit Airfoil"

1500 PRINT "     4 - NACA Modified 5 Digit Airfoil"

1510 PRINT "     5 - NACA 16 Series Airfoil"

1520 PRINT "     6 - NACA 6 Series Airfoil"

1530 PRINT "     7 - NACA 6A Series Airfoil"

1540 PRINT "     8 - Symmetrical Biconvex Airfoil"

1550 PRINT ""

1560 INPUT " Your Choice [1]"; OPT

1570 IF OPT = 0 THEN OPT = 1

1580 '

1590 PRINT ""

1600 PRINT " You Have The Following Options For Coordinate Spacing:"

1610 PRINT "     1 - Equal Spacing"

1620 PRINT "     2 - Half Cosine With Smaller Increments Near 0"

1630 PRINT "     3 - Half Cosine With Smaller Increments Near 1"

1640 PRINT "     4 - Full Cosine"

1650 PRINT "     5 - Read X/C Values From A File"

1660 PRINT "     6 - Manual Entry Of X/C Values"

1670 PRINT ""

1680 INPUT " Your Choice [4]"; SPAC

1690 IF SPAC = 0 THEN SPAC = 4

1700 VIEW PRINT 1 TO 24

1710 CLS : PRINT

1720 '

1730 ' MANUAL ENTRY

1740 '

1750 IF SPAC = 6 THEN

1760   PRINT " You Have Chosen Manual Entry"

1770   INPUT " How Many Points Are You Going To Enter"; NPP

1780   PRINT " Ok, Now Enter The Points, The First Being 0 And The Last Being 1"

1790   PRINT ""

1800   FOR I = 1 TO NPP

1810    PRINT USING " Point Number ### = "; I: INPUT XDD(I)

1820   NEXT I

1830   IF XDD(1) <> 0 THEN PRINT " *** THE FIRST POINT IS NOT 0, TRY AGAIN ***": GOTO 1790

1840   IF XDD(NPP) <> 1 THEN PRINT " *** THE LAST POINT IS NOT 1, TRY AGAIN ***": GOTO 1790

1850 END IF

1860 '

1870 ' FILE INPUT

1880 '

1890 IF SPAC = 5 THEN

1900   PRINT

1910   INPUT " Enter Name Of File Containing Values"; XVAL$

1920   OPEN XVAL$ FOR INPUT AS 3

1930   NPP = 0

1940   IF EOF(3) THEN GOTO 1980

1950   NPP = NPP + 1

1960   INPUT #3, XDD(NPP)

1970   GOTO 1940

1980   CLOSE 3

1990 END IF

2000 '

2010 IF SPAC < 5 THEN

2020   CLS : PRINT

2030   INPUT " How Many Points Do You Want Generated"; NPP

2040 END IF

2050 '

2060 ' EQUAL SPACING

2070 '

2080 IF SPAC = 4 THEN

2090   DELTH = PI / (NPP - 1)

2100   FOR I = 1 TO NPP

2110    XDD(I) = .5 - .5 * COS(DELTH * (I - 1))

2120   NEXT I

2130 END IF

2140 '

2150 ' HALF COSINE AFT PACKED

2160 '

2170 IF SPAC = 3 THEN

2180   DELTH = PI / 2 / (NPP - 1)

2190   FOR I = 1 TO NPP

2200    XDD(I) = COS(PI / 2 - DELTH * (I - 1))

2210   NEXT I

2220 END IF

2230 '

2240 ' HALF COSINE FWD PACKED

2250 '

2260 IF SPAC = 2 THEN

2270   DELTH = PI / 2 / (NPP - 1)

2280   FOR I = 1 TO NPP

2290    XDD(I) = 1 - COS(DELTH * (I - 1))

2300   NEXT I

2310 END IF

2320 '

2330 ' FULL COSINE

2340 '

2350 IF SPAC = 1 THEN

2360   DELTH = 1 / (NPP - 1)

2370   FOR I = 1 TO NPP

2380    XDD(I) = DELTH * (I - 1)

2390   NEXT I

2400 END IF

2410 '

2420 ' REJOIN PATHS

2430 '

2440 DELTH = PI / NP

2450 FOR I = 1 TO NP

2460  XCC(I) = .5 - .5 * COS(DELTH * I)

2470 NEXT I

2480 CLS : PRINT

2490 '

2500 ' NACA 4 DIGIT --------------------------------------------------

2510 '

2520 IF OPT > 1 THEN GOTO 2910

2530 PRINT " You Have Chosen To Create A NACA 4 Digit Airfoil"

2540 PRINT ""

2550 INPUT " Enter The First Digit Of The 4 Digit Designation"; MM

2560 INPUT " Enter The Second Digit Of The 4 Digit Designation"; PP

2570 INPUT " Enter The Last Two Digits Of The 4 Digit Designation"; TOC

2580 PRINT ""

2590 IF MM = 0 THEN

2600   NP = NPP

2610   FOR I = 1 TO NP

2620    XCC(I) = XDD(I)

2630   NEXT I

2640 END IF

2650 MC = MM / 100

2660 PC = PP / 10

2670 TC = TOC / 100

2680 FOR I = 1 TO NP

2690  YT(I) = TC * (1.4845 * SQR(XCC(I)) - .63 * XCC(I) - 1.758 * XCC(I) ^ 2 + 1.4215 * XCC(I) ^ 3 - .5075 * XCC(I) ^ 4)

2700  IF MC = 0 THEN

2710    YC(I) = 0

2720    DYC(I) = 0

2730   ELSE

2740    IF XCC(I) > PC THEN

2750      YC(I) = MC / (1 - PC) ^ 2 * (1 - 2 * PC + 2 * PC * XCC(I) - XCC(I) ^ 2)

2760      DYC(I) = 2 * MC / (1 - PC) ^ 2 * (PC - XCC(I))

2770     ELSE

2780      YC(I) = MC / PC ^ 2 * (2 * PC * XCC(I) - XCC(I) ^ 2)

2790      DYC(I) = 2 * MC / PC ^ 2 * (PC - XCC(I))

2800    END IF

2810  END IF

2820 NEXT I

2830 LER = 1.1019 * TC ^ 2

2840 TEANG = 2 * ATN(1.16925 * TC)

2850 DESIG = MM * 1000 + PP * 100 + TOC

2860 DESIG$ = STR$(DESIG)

2870 GOTO 6800

2880 '

2890 ' NACA 5 DIGIT --------------------------------------------------

2900 '

2910 IF OPT > 2 THEN GOTO 3540

2920 PRINT " You Have Chosen To Create A NACA 5 Digit Airfoil"

2930 PRINT ""

2940 INPUT " Enter The First Digit Of The 5 Digit Designation"; LL

2950 INPUT " Enter The Second Digit Of The 5 Digit Designation"; PP

2960 INPUT " Enter The Third Digit Of The 5 Digit Designation"; QQ

2970 INPUT " Enter The Last Two Digits Of The 5 Digit Designation"; TOC

2980 PRINT ""

2990 IF QQ < 0 OR QQ > 1 THEN

3000   PRINT "  THIRD DIGIT OUT OF RANGE, ASSUMING NEAREST VALID VALUE"

3010 END IF

3020 IF LL = 0 THEN

3030   NP = NPP

3040   FOR I = 1 TO NP

3050    XCC(I) = XDD(I)

3060   NEXT I

3070 END IF

3080 LC = LL / 10

3090 PC = PP / 20

3100 TC = TOC / 100

3110 MC = PC / 2

3120 PCT = SQR(MC ^ 2 * (MC / 3 - 2 * SQR(MC / 3) + 1))

3130 IF ABS(PC - PCT) <= .0001 THEN GOTO 3160

3140 MC = MC * PC / PCT

3150 GOTO 3120

3160 SVAL = 1 - 2 * MC

3170 GOSUB 10800

3180 QC = (3 * MC - 7 * MC ^ 2 + 8 * MC ^ 3 - 4 * MC ^ 4) / SQR(MC * (1 - MC)) - 1.5 * (1 - 2 * MC) * (PI / 2 - THETA)

3190 K1 = 9 * LC / QC

3200 K2K1 = (3 * (MC - PC) ^ 2 - MC ^ 3) / (1 - MC) ^ 3

3210 FOR I = 1 TO NP

3220  YT(I) = TC * (1.4845 * SQR(XCC(I)) - .63 * XCC(I) - 1.758 * XCC(I) ^ 2 + 1.4215 * XCC(I) ^ 3 - .5075 * XCC(I) ^ 4)

3230  IF LL = 0 THEN GOTO 3380

3240  IF QQ > 0 THEN GOTO 3320

3250  IF XCC(I) > MC THEN GOTO 3290

3260  YC(I) = K1 / 6 * (XCC(I) ^ 3 - 3 * MC * XCC(I) ^ 2 + MC ^ 2 * (3 - MC) * XCC(I))

3270  DYC(I) = K1 / 6 * (3 * XCC(I) ^ 2 - 6 * MC * XCC(I) + MC ^ 2 * (3 - MC))

3280  GOTO 3380

3290  YC(I) = K1 / 6 * MC ^ 3 * (1 - XCC(I))

3300  DYC(I) = -K1 / 6 * MC ^ 3

3310  GOTO 3380

3320  IF XCC(I) > MC THEN GOTO 3360

3330  YC(I) = K1 / 6 * ((XCC(I) - MC) ^ 3 - K2K1 * (1 - MC) ^ 3 * XCC(I) - MC ^ 3 * XCC(I) + MC ^ 3)

3340  DYC(I) = K1 / 6 * (3 * (XCC(I) - MC) ^ 2 - K2K1 * (1 - MC) ^ 3 - MC ^ 3)

3350  GOTO 3380

3360  YC(I) = K1 / 6 * (K2K1 * (XCC(I) - MC) ^ 3 - K2K1 * (1 - MC) ^ 3 * XCC(I) - MC ^ 3 * XCC(I) + MC ^ 3)

3370  DYC(I) = K1 / 6 * (3 * K2K1 * (XCC(I) - MC) ^ 2 - K2K1 * (1 - MC) ^ 3 - MC ^ 3)

3380 NEXT I

3390 LER = 1.1019 * TC ^ 2

3400 TEANG = 2 * ATN(1.16925 * TC)

3410 DESIG = LL * 10000 + PP * 1000 + QQ * 100 + TOC

3420 DESIG$ = STR$(DESIG)

3430 'INPUT "  Enter Name Of Camberline Output File"; DEST2$

3440 'OPEN DEST2$ FOR OUTPUT AS 3

3450 'FOR I = 1 TO NP

3460 ' PRINT #3, USING " #.####### #.#######"; XCC(I); YC(I)

3470 'NEXT I

3480 'PRINT ""

3490 'CLOSE 3

3500 GOTO 6800

3510 '

3520 ' NACA MODIFIED 4 DIGIT -----------------------------------------

3530 '

3540 IF OPT > 3 THEN GOTO 4040

3550 PRINT " You Have Chosen To Create A NACA Modified 4 Digit Airfoil"

3560 PRINT ""

3570 INPUT " Enter The First Digit Of The 4 Digit Designation"; MM

3580 INPUT " Enter The Second Digit Of The 4 Digit Designation"; PP

3590 INPUT " Enter The Last Two Digits Of The 4 Digit Designation"; TOC

3600 INPUT " Enter The First Digit Of The Appended Number"; IP

3610 INPUT " Enter The Second Digit Of The Appended Number"; TT

3620 PRINT ""

3630 IF MM = 0 THEN

3640   NP = NPP

3650   FOR I = 1 TO NP

3660    XCC(I) = XDD(I)

3670   NEXT I

3680 END IF

3690 MC = MM / 100

3700 PC = PP / 10

3710 TC = TOC / 100

3720 TP = TT / 10

3730 D1 = (2.24 - 5.42 * TP + 12.3 * TP ^ 2) / 10 / (1 - .878 * TP)

3740 D2 = (.294 - 2 * (1 - TP) * D1) / (1 - TP) ^ 2

3750 D3 = (-.196 + (1 - TP) * D1) / (1 - TP) ^ 3

3760 A0 = .296904 * IP / 6

3770 R1 = (1 - TP) ^ 2 / 5 / (.588 - 2 * D1 * (1 - TP))

3780 AA1 = .3 / TP - 15 * A0 / 8 / SQR(TP) - TP / 10 / R1

3790 A2 = -.3 / TP ^ 2 + 5 * A0 / 4 / TP ^ (1.5) + 1 / 5 / R1

3800 A3 = .1 / TP ^ 3 - .375 * A0 / TP ^ (2.5) - 1 / 10 / R1 / TP

3810 FOR I = 1 TO NP

3820  IF XCC(I) > TP THEN GOTO 3850

3830  YT(I) = 5 * TC * (A0 * SQR(XCC(I)) + AA1 * XCC(I) + A2 * XCC(I) ^ 2 + A3 * XCC(I) ^ 3)

3840  GOTO 3860

3850  YT(I) = 5 * TC * (.002 + D1 * (1 - XCC(I)) + D2 * (1 - XCC(I)) ^ 2 + D3 * (1 - XCC(I)) ^ 3)

3860  IF MM = 0 THEN GOTO 3930

3870  IF XCC(I) > PC THEN GOTO 3910

3880  YC(I) = MC / PC ^ 2 * (2 * PC * XCC(I) - XCC(I) ^ 2)

3890  DYC(I) = 2 * MC / PC ^ 2 * (PC - XCC(I))

3900  GOTO 3930

3910  YC(I) = MC / (1 - PC) ^ 2 * (1 - 2 * PC + 2 * PC * XCC(I) - XCC(I) ^ 2)

3920  DYC(I) = 2 * MC / (1 - PC) ^ 2 * (PC - XCC(I))

3930 NEXT I

3940 LER = 1.1019 * (IP / 6 * TC) ^ 2

3950 IF IP >= 9 THEN LER = 3 * 1.1019 * (TC) ^ 2

3960 TEANG = 2 * ATN(1.16925 * TC)

3970 DESIG = MM * 1000 + PP * 1000 + TOC

3980 SESIG = IP * 10 + TT

3990 DESIG$ = STR$(DESIG) + "-" + STR$(SESIG)

4000 GOTO 6800

4010 '

4020 ' NACA MODIFIED 5 DIGIT -----------------------------------------

4030 '

4040 IF OPT > 4 THEN GOTO 4770

4050 PRINT " You Have Chosen To Create A NACA Modified 5 Digit Airfoil"

4060 PRINT ""

4070 INPUT " Enter The First Digit Of The 5 Digit Designation"; LL

4080 INPUT " Enter The Second Digit Of The 5 Digit Designation"; PP

4090 INPUT " Enter The Third Digit Of The 5 Digit Designation"; QQ

4100 INPUT " Enter The Last Two Digits Of The 5 Digit Designation"; TOC

4110 INPUT " Enter The First Digit Of The Appended Number"; IP

4120 INPUT " Enter The Second Digit Of The Appended Number"; TT

4130 PRINT ""

4140 IF QQ < 0 OR QQ > 1 THEN

4150   PRINT "  THIRD DIGIT OUT OF RANGE, ASSUMING NEAREST VALID VALUE"

4160 END IF

4170 IF LL = 0 THEN

4180   NP = NPP

4190   FOR I = 1 TO NP

4200    XCC(I) = XDD(I)

4210   NEXT I

4220 END IF

4230 LC = LL / 10

4240 PC = PP / 20

4250 TC = TOC / 100

4260 MC = PC / 2

4270 TP = TT / 10

4280 D1 = (2.24 - 5.42 * TP + 12.3 * TP ^ 2) / 10 / (1 - .878 * TP)

4290 D2 = (.294 - 2 * (1 - TP) * D1) / (1 - TP) ^ 2

4300 D3 = (-.196 + (1 - TP) * D1) / (1 - TP) ^ 3

4310 A0 = .296904 * IP / 6

4320 R1 = (1 - TP) ^ 2 / 5 / (.588 - 2 * D1 * (1 - TP))

4330 AA1 = .3 / TP - 15 * A0 / 8 / SQR(TP) - TP / 10 / R1

4340 A2 = -.3 / TP ^ 2 + 5 * A0 / 4 / TP ^ (1.5) + 1 / 5 / R1

4350 A3 = .1 / TP ^ 3 - .375 * A0 / TP ^ (2.5) - 1 / 10 / R1 / TP

4360 PCT = SQR(MC ^ 2 * (MC / 3 - 2 * SQR(MC / 3) + 1))

4370 IF ABS(PC - PCT) <= .0001 THEN GOTO 4400

4380 MC = MC * PC / PCT

4390 GOTO 4360

4400 SVAL = 1 - 2 * MC

4410 GOSUB 10800

4420 QC = (3 * MC - 7 * MC ^ 2 + 8 * MC ^ 3 - 4 * MC ^ 4) / SQR(MC * (1 - MC)) - 1.5 * (1 - 2 * MC) * (PI / 2 - THETA)

4430 K1 = 9 * LC / QC

4440 K2K1 = (3 * (MC - PC) ^ 2 - MC ^ 3) / (1 - MC) ^ 3

4450 FOR I = 1 TO NP

4460  IF XCC(I) > TP THEN GOTO 4490

4470  YT(I) = 5 * TC * (A0 * SQR(XCC(I)) + AA1 * XCC(I) + A2 * XCC(I) ^ 2 + A3 * XCC(I) ^ 3)

4480  GOTO 4500

4490  YT(I) = 5 * TC * (.002 + D1 * (1 - XCC(I)) + D2 * (1 - XCC(I)) ^ 2 + D3 * (1 - XCC(I)) ^ 3)

4500  IF LL = 0 THEN GOTO 4650

4510  IF QQ > 0 THEN GOTO 4590

4520  IF XCC(I) > MC THEN GOTO 4560

4530  YC(I) = K1 / 6 * (XCC(I) ^ 3 - 3 * MC * XCC(I) ^ 2 + MC ^ 2 * (3 - MC) * XCC(I))

4540  DYC(I) = K1 / 6 * (3 * XCC(I) ^ 2 - 6 * MC * XCC(I) + MC ^ 2 * (3 - MC))

4550  GOTO 4650

4560  YC(I) = K1 / 6 * MC ^ 3 * (1 - XCC(I))

4570  DYC(I) = -K1 / 6 * MC ^ 3

4580  GOTO 4650

4590  IF XCC(I) > MC THEN GOTO 4630

4600  YC(I) = K1 / 6 * ((XCC(I) - MC) ^ 3 - K2K1 * (1 - MC) ^ 3 * XCC(I) - MC ^ 3 * XCC(I) + MC ^ 3)

4610  DYC(I) = K1 / 6 * (3 * (XCC(I) - MC) ^ 2 - K2K1 * (1 - MC) ^ 3 - MC ^ 3)

4620  GOTO 4650

4630  YC(I) = K1 / 6 * (K2K1 * (XCC(I) - MC) ^ 3 - K2K1 * (1 - MC) ^ 3 * XCC(I) - MC ^ 3 * XCC(I) + MC ^ 3)

4640  DYC(I) = K1 / 6 * (3 * K2K1 * (XCC(I) - MC) ^ 2 - K2K1 * (1 - MC) ^ 3 - MC ^ 3)

4650 NEXT I

4660 LER = 1.1019 * (IP / 6 * TC) ^ 2

4670 IF IP >= 9 THEN LER = 3 * 1.1019 * (TC) ^ 2

4680 TEANG = 2 * ATN(1.16925 * TC)

4690 DESIG = LL * 10000 + PP * 1000 + QQ * 100 + TOC

4700 DESIG$ = STR$(DESIG)

4710 SESIG = IP * 10 + TT

4720 DESIG$ = STR$(DESIG) + "-" + STR$(SESIG)

4730 GOTO 6800

4740 '

4750 ' NACA 16 SERIES ------------------------------------------------

4760 '

4770 IF OPT > 5 THEN GOTO 5220

4780 PRINT " You Have Chosen To Create A NACA 16 Series Airfoil"

4790 PRINT ""

4800 INPUT " Enter The First Two Digits Of The Designation"; FSTTWO

4810 INPUT " Enter The Third Digit Of The Designation"; MM

4820 INPUT " Enter The Last Two Digits Of The Designation"; TOC

4830 PRINT ""

4840 IF MM = 0 THEN

4850   NP = NPP

4860   FOR I = 1 TO NP

4870    XCC(I) = XDD(I)

4880   NEXT I

4890 END IF

4900 IP = 4

4910 T = 5

4920 MC = MM / 10

4930 TC = TOC / 100

4940 TP = T / 10

4950 D1 = (2.24 - 5.42 * TP + 12.3 * TP ^ 2) / 10 / (1 - .878 * TP)

4960 D2 = (.294 - 2 * (1 - TP) * D1) / (1 - TP) ^ 2

4970 D3 = (-.196 + (1 - TP) * D1) / (1 - TP) ^ 3

4980 A0 = .296904 * IP / 6

4990 R1 = (1 - TP) ^ 2 / 5 / (.588 - 2 * D1 * (1 - TP))

5000 AA1 = .3 / TP - 15 * A0 / 8 / SQR(TP) - TP / 10 / R1

5010 A2 = -.3 / TP ^ 2 + 5 * A0 / 4 / TP ^ (1.5) + 1 / 5 / R1

5020 A3 = .1 / TP ^ 3 - .375 * A0 / TP ^ (2.5) - 1 / 10 / R1 / TP

5030 FOR I = 1 TO NP

5040  IF XCC(I) > TP THEN GOTO 5070

5050  YT(I) = 5 * TC * (A0 * SQR(XCC(I)) + AA1 * XCC(I) + A2 * XCC(I) ^ 2 + A3 * XCC(I) ^ 3)

5060  GOTO 5080

5070  YT(I) = 5 * TC * (.002 + D1 * (1 - XCC(I)) + D2 * (1 - XCC(I)) ^ 2 + D3 * (1 - XCC(I)) ^ 3)

5080  IF MM = 0 THEN GOTO 5120

5090  IF XCC(I) = 0 OR XCC(I) = 1 THEN GOTO 5120

5100  YC(I) = -MC / 4 / PI * ((1 - XCC(I)) * LOG(1 - XCC(I)) + XCC(I) * LOG(XCC(I)))

5110  DYC(I) = -MC / 4 / PI * (-1 / (1 - XCC(I)) - LOG(1 - XCC(I)) + XCC(I) / (1 - XCC(I)) + LOG(XCC(I)) + 1)

5120 NEXT I

5130 LER = 1.1019 * (IP / 6 * TC) ^ 2

5140 IF IP >= 9 THEN LER = 3 * 1.1019 * (TC) ^ 2

5150 TEANG = 2 * ATN(1.16925 * TC)

5160 DESIG = FSTTWO * 1000 + MM * 100 + TOC

5170 DESIG$ = STR$(DESIG)

5180 GOTO 6800

5190 '

5200 ' NACA 6 or 6A SERIES ------------------------------------------------

5210 '

5220 IF OPT > 7 THEN GOTO 6570

5230 IF OPT = 6 THEN

5240   PRINT " You Have Chosen To Create A NACA 6 Series Airfoil"

5250   PRINT ""

5260   INPUT " Enter The First Digit Of The 6 Series Designation"; LL

5270   INPUT " Enter The Second Digit Of The 6 Series Designation"; PP

5280   INPUT " Enter The Third Digit Of The 6 Series Designation"; MM

5290   INPUT " Enter The Last Two Digits Of The 6 Series Designation"; TOC

5300   IF MM <> 0 THEN

5310     INPUT " Enter Value Of a For Camberline (0-1)[1]"; AA$

5320     IF AA$ = "" THEN AA = 1 ELSE AA = VAL(AA$)

5330   END IF

5340   IF PP < 3 OR PP > 7 THEN

5350     PRINT "  YOU HAVE ASKED FOR A 6 SERIES AIRFOIL OUTSIDE THE THICKNESS"

5360     PRINT "   FORM DATABASE.  RESULTS WILL NOT NECESSARILY BE VALID"

5370     PRINT

5380   END IF

5390  ELSE

5400   PRINT " You Have Chosen To Create A NACA 6A Series Airfoil"

5410   PRINT ""

5420   INPUT " Enter The First Digit Of The 6A Series Designation"; LL

5430   INPUT " Enter The Second Digit Of The 6A Series Designation"; PP

5440   INPUT " Enter The Third Digit Of The 6A Series Designation"; MM

5450   INPUT " Enter The Last Two Digits Of The 6A Series Designation"; TOC

5460   IF PP < 3 OR PP > 5 THEN

5470     PRINT "  YOU HAVE ASKED FOR A 6 SERIES AIRFOIL OUTSIDE THE THICKNESS"

5480     PRINT "   FORM DATABASE.  RESULTS WILL NOT NECESSARILY BE VALID"

5490     PRINT

5500   END IF

5510 END IF

5520 PRINT

5530 GOSUB 13790

5540 '

5550 NP = N6P

5560 MC = MM / 10

5570 TC = TOC / 100

5580 IF OPT = 6 THEN

5590   NS = N6S

5600   NT = N6T

5610   JBASE = 1

5620   KBASE = 1 + N6S * N6T + N6AS * N6AT

5630   MINTC = .06

5640   MAXTC = .21

5650  ELSE

5660   NS = N6AS

5670   NT = N6AT

5680   JBASE = 1 + N6S * N6T

5690   KBASE = 1 + N6S * N6T + N6AS * N6AT + N6C * 2

5700   MINTC = .06

5710   MAXTC = .21

5720 END IF

5730 FOR I = 1 TO NP

5740  XCC(I) = TF6(1, I) / 100

5750  IF TC < MINTC THEN

5760    FOR J = 1 TO NS

5770     T6(J) = TF6(JBASE + 1 + ((J - 1) * NT), I) * TC / MINTC / 100

5780    NEXT J

5790   ELSEIF TC > MAXTC THEN

5800    FOR J = 1 TO NS

5810     T6(J) = TF6(JBASE + NT + ((J - 1) * NT), I) * TC / MAXTC / 100

5820    NEXT J

5830   ELSE

5840    FOR J = 1 TO NS

5850     N = NT

5860     IF NT = 8 THEN

5870       XI(1) = .06: XI(2) = .08: XI(3) = 9.000001E-02: XI(4) = .1

5880       XI(5) = .12: XI(6) = .15: XI(7) = .18: XI(8) = .21

5890      ELSE

5900       XI(1) = .06: XI(2) = .08: XI(3) = .1: XI(4) = .12

5910       XI(5) = .15: XI(6) = .18: XI(7) = .21

5920     END IF

5930     FOR K = 1 TO NT

5940      YI(K) = TF6(JBASE + K + (J - 1) * NT, I) / 100

5950     NEXT K

5960     XD = TC

5970     GOSUB 14830

5980     T6(J) = YD

5990    NEXT J

6000  END IF

6010  FOR J = 1 TO NS

6020   XI(J) = J + 2

6030   YI(J) = T6(J)

6040  NEXT J

6050  N = NS

6060  XD = PP

6070  GOSUB 14830

6080  YT(I) = YD

6090 '

6100  IF OPT = 6 THEN

6110    IF MC = 0 THEN

6120      YC(I) = 0

6130      DYC(I) = 0

6140     ELSE

6150      N = N6C

6160      FOR K = 1 TO N

6170       XI(K) = (K - 1) / 10

6180       YI(K) = TF6(KBASE + (K - 1) * 2 + 1, I) / 100

6190      NEXT K

6200      XD = AA

6210      GOSUB 14830

6220      YC(I) = YD * MC

6230 '

6240      N = N6C

6250      FOR K = 1 TO N

6260       XI(K) = (K - 1) / 10

6270       YI(K) = TF6(KBASE + (K - 1) * 2 + 2, I)

6280      NEXT K

6290      XD = AA

6300      GOSUB 14830

6310      DYC(I) = YD * MC

6320    END IF

6330   ELSE

6340    YC(I) = TF6(KBASE + 1, I) / 100 * MC

6350    DYC(I) = TF6(KBASE + 2, I) * MC

6360  END IF

6370 '

6380 NEXT I

6390 DESIG = LL * 10 + PP

6400 SESIG = MM * 100 + TOC

6410 IF OPT = 6 THEN

6420   DESIG$ = STR$(DESIG) + "-" + STR$(SESIG)

6430  ELSE

6440   DESIG$ = STR$(DESIG) + "A" + STR$(SESIG)

6450 END IF

6460 'INPUT "  Enter Name Of Camberline Output File"; DEST2$

6470 'OPEN DEST2$ FOR OUTPUT AS 3

6480 'FOR I = 1 TO NP

6490 ' PRINT #3, USING " #.####### #.#######"; XCC(I); YC(I)

6500 'NEXT I

6510 'PRINT ""

6520 'CLOSE 3

6530 GOTO 6800

6540 '

6550 ' BICONVEX AIRFOIL ---------------------------------------------

6560 '

6570 IF OPT > 8 THEN GOTO 1330

6580 PRINT " You Have Chosen To Create A Biconvex Airfoil"

6590 PRINT ""

6600 INPUT " Enter The Desired Thickness To Chord Ratio"; TOC

6610 PRINT ""

6620 RAD = (2 + 8 * (TOC / 2) ^ 2) / 16 / (TOC / 2)

6630 NP = NPP

6640 FOR I = 1 TO NP

6650  XCC(I) = XDD(I)

6660 NEXT I

6670 FOR I = 1 TO NP

6680  YT(I) = SQR(RAD ^ 2 - (XCC(I) - .5) ^ 2)

6690  YC(I) = 0

6700  DYC(I) = 0

6710 NEXT I

6720 Y0 = YT(1)

6730 FOR I = 1 TO NP

6740  YT(I) = YT(I) - Y0

6750 NEXT I

6760 DESIG$ = "BICONVEX"

6770 GOTO 6800

6780 '

6790 ' REJOIN PATHS ----------------------------------------------------

6800 '

6810 FOR I = 1 TO NP

6820  THET = ATN(DYC(I))

6830  XU(I) = XCC(I) - YT(I) * SIN(THET)

6840  YU(I) = YC(I) + YT(I) * COS(THET)

6850  XL(I) = XCC(I) + YT(I) * SIN(THET)

6860  YL(I) = YC(I) - YT(I) * COS(THET)

6870 NEXT I

6880 INPUT " Do You Want To Bypass Point Redistribution (Y/N)[N]"; ANSD$

6890 IF ANSD$ = "Y" OR ANSD$ = "y" THEN

6900   NPP = NP

6910   GOTO 6940

6920 END IF

6930 GOSUB 11230

6940 CLS : LOCATE 12, 18

6950 INPUT " Would You Like To View The Airfoil (Y/N)[Y]"; WOW$

6960 IF WOW$ = "N" OR WOW$ = "n" THEN GOTO 7060

6970 LOCATE 14, 18

6980 INPUT " Connect Points With Lines (Y/N)[N]"; ANSC$

6990 IF ANSC$ = "" OR ANSC$ = "n" OR ANSC$ = "N" THEN ANSC$ = "N" ELSE ANSC$ = "Y"

7000 GOSUB 10870

7010 '

7020 TITLE$ = "NACA " + DESIG$ + " AIRFOIL"

7030 '

7040 ' OUTPUT

7050 '

7060 CLS : PRINT

7070 INPUT " Enter The Filename For Output Of The Coordinates"; DEST$

7080 OPEN DEST$ FOR OUTPUT AS #1

7090 PRINT : PRINT

7100 PRINT "                 You Have The Following OUTPUT Format Options:"

7110 PRINT "                              1 - LED Format"

7120 PRINT "                              2 - ISES Format"

7130 PRINT "                              3 - Eppler Format"

7140 PRINT "                              4 - WIBCO Format"

7150 PRINT "                              5 - Loftsman SD Format"

7160 PRINT "                              6 - VSAERO Format"

7170 PRINT "                              7 - AutoCAD SCR Format"

7180 INPUT "                             Your Choice [1]"; OOPT

7190 ON OOPT + 1 GOSUB 7230, 7230, 7510, 7710, 9930, 10220, 10370, 10500

7200 CLOSE #1

7210 END

7220 '-----------------------------------------------------------------

7230 'LED FORMAT OUTPUT

7240 '

7250 IF OPT = 1 THEN

7260   PRINT #1, USING " NACA 4-DIGIT AIRFOIL M = #.#, P = #.#, T/C = ##.#"; MM; PP; TOC

7270  ELSEIF OPT = 2 THEN

7280   PRINT #1, USING " NACA 5-DIGIT AIRFOIL L = #.#, P = #.#, Q = #.#, T/C = ##.#"; LL; PP; QQ; TOC

7290  ELSEIF OPT = 3 THEN

7300   PRINT #1, USING " NACA MODIFIED 4-DIGIT AIRFOIL M = #.#, P = #.#, T/C = ##.# IP = #.#, T = #.#"; MM; PP; TOC; IP; TT

7310  ELSEIF OPT = 4 THEN

7320   PRINT #1, USING " NACA MODIFIED 5-DIGIT AIRFOIL L = #.#, P = #.#, Q = #.#, T/C = ##.# IP = #.#, T = #.#"; LL; PP; QQ; TOC; IP; TT

7330  ELSEIF OPT = 5 THEN

7340   PRINT #1, USING " NACA 16 SERIES AIRFOIL M = #.#, T/C = ##.#"; MM; TOC

7350  ELSEIF OPT = 6 THEN

7360   PRINT #1, USING " NACA 6 SERIES AIRFOIL P = #.#, M = #.#, T/C = ##.#"; PP; MM; TOC

7370  ELSEIF OPT = 7 THEN

7380   PRINT #1, USING " NACA 6A SERIES AIRFOIL P = #.#, M = #.#, T/C = ##.#"; PP; MM; TOC

7390 END IF

7400 PRINT #1, USING "     ###.      ###."; NPP; NPP

7410 PRINT #1, ""

7420 FOR I = 1 TO NPP

7430  PRINT #1, USING " #.####### #.#######"; XU(I); YU(I)

7440 NEXT I

7450 PRINT #1, ""

7460 FOR I = 1 TO NPP

7470  PRINT #1, USING " #.####### #.#######"; XL(I); YL(I)

7480 NEXT I

7490 RETURN

7500 '-----------------------------------------------------------------

7510 'ISES FORMAT OUTPUT

7520 '

7530 CLS : PRINT : PRINT

7540 INPUT " Enter Length Of Computational Domain Upstream (~2)[2]"; CHINL

7550 IF CHINL = 0 THEN CHINL = 2

7560 INPUT " Enter Length Of Computational Domain Downstream (~2)[2]"; CHOUT

7570 IF CHOUT = 0 THEN CHOUT = 2

7580 INPUT " Enter Approximate Mach Number For Analysis [0.2]"; MACH

7590 IF MACH = 0 THEN MACH = .2

7600 CHWID = 6 / SQR(1 - MACH ^ 2)

7610 PRINT #1, TITLE$

7620 PRINT #1, USING "  0.0  0.0 ##.# ##.# ##.#"; CHINL; CHOUT; CHWID

7630 FOR I = NPP TO 1 STEP -1

7640 PRINT #1, USING " #.####### #.#######"; XU(I); YU(I)

7650 NEXT I

7660 FOR I = 2 TO NPP

7670 PRINT #1, USING " #.####### #.#######"; XL(I); YL(I)

7680 NEXT I

7690 RETURN

7700 '-----------------------------------------------------------------

7710 'EPPLER FORMAT OUTPUT

7720 '

7730 PRINT #1, "FXPR"

7740 PRINT #1, TITLE$

7750 PRINT #1, USING "   ##   ##"; NPP; NPP

7760 FORMAT$ = "#.####### #.####### #.####### #.####### #.####### #.####### #.####### #.#######"

7770 FOR I = 1 TO NPP

7780  PRINT #1, USING FORMAT$; XU(I);

7790  GOSUB 9850

7800 NEXT I

7810 GOSUB 9900

7820 FOR I = 1 TO NPP

7830  PRINT #1, USING FORMAT$; YU(I);

7840  GOSUB 9850

7850  NEXT I

7860 GOSUB 9900

7870 FOR I = 1 TO NPP

7880  PRINT #1, USING FORMAT$; XL(I);

7890  GOSUB 9850

7900 NEXT I

7910 GOSUB 9900

7920 FOR I = 1 TO NPP

7930  PRINT #1, USING FORMAT$; YL(I);

7940  GOSUB 9850

7950 NEXT

7960 GOSUB 9900

7970 L% = 3

7980 WHILE ADD$(L%) <> ""

7990   PRINT #1, ADD$(L%)

8000   L% = L% + 1

8010 WEND

8020 '

8030 CLS : PRINT : PRINT

8040 'MACH CARD

8050 INPUT " Enter Mach Number For This Case [0]"; MACHN

8060 MN = INT(MACHN * 1000)

8070 IF MN <> 0 THEN

8080   PRINT #1, USING "MACH       ####"; MN

8090 END IF

8100 'ALFA CARD

8110 PRINT

8120 INPUT " Enter Number Of Angles Of Attack To Be Entered (14 max)[1]"; NALP

8130 IF NALP < 1 THEN GOTO 9810

8140 IF NALP <> 0 THEN

8150   FOR I = 1 TO NALP

8160    PRINT "  Angle Of Attack #"; I; : INPUT ALP(I)

8170   NEXT I

8180 END IF

8190 PRINT #1, "ALFA";

8200 PRINT

8210 PRINT " Is A Printout Of Moment Coefficient Required"

8220 INPUT "                For Each Angle Of Attack (Y/N)[Y]"; MOM$

8230 IF MOM$ <> "N" AND MOM$ <> "n" THEN NUPA = 1 ELSE NUPA = 2

8240 PRINT #1, USING "#"; NUPA;

8250 NUPE = 1

8260 PRINT #1, USING "#"; NUPE;

8270 PRINT

8280 PRINT " Are The Angles Of Attack Relative To:"

8290 PRINT "  1) The Chord Line"

8300 PRINT "  2) The Zero-Lift Line"

8310 INPUT " Option (1/2)[1]"; AREF

8320 IF AREF <> 2 THEN AREF = 1

8330 PRINT

8340 PRINT " What Should Be Printed Out (And Plotted):"

8350 PRINT "  1) Velocity Ratios v/V"

8360 PRINT "  2) Pressure Coefficients Cp"

8370 INPUT " Option (1/2)[2]"; PPR

8380 IF PPR <> 1 THEN PPR = 2

8390 IF AREF = 1 AND PPR = 1 THEN NUPI = 1

8400 IF AREF = 2 AND PPR = 1 THEN NUPI = 0

8410 IF AREF = 1 AND PPR = 2 THEN NUPI = 3

8420 IF AREF = 2 AND PPR = 2 THEN NUPI = 2

8430 PRINT #1, USING "#"; NUPI;

8440 PRINT #1, USING "###"; NALP;

8450 FOR I = 1 TO NALP

8460  PRINT #1, USING "#####"; INT(ALP(I) * 100);

8470 NEXT I

8480 PRINT #1, ""

8490 'DIAG CARD

8500 PRINT

8510 IF PPR = 1 THEN

8520   INPUT " Is A Plot Of The Velocity Distributions Required (Y/N)[N]", PL$

8530  ELSE

8540   INPUT " Is A Plot Of The Cp Distributions Required (Y/N)[N]", PL$

8550 END IF

8560 IF PL$ = "y" OR PL$ = "Y" THEN

8570   PRINT #1, USING "DIAG  #"; PPR

8580 END IF

8590 'RE CARD

8600 PRINT

8610 INPUT " How Many Combinations Of Re And Transition Type Are Required (5 max)[1]"; NCOMBO

8620 IF NCOMBO < 1 THEN NCOMBO = 1

8630 INPUT "  Print Just A Summary Or The Entire Boundary Layer History (1/2)[1]"; PRTO

8640 IF PRTO = 2 THEN

8650   PRINT " At Each Step In The Boundary Layer Print:"

8660   PRINT "  1) Momentum Thickness"

8670   PRINT "  2) Reynolds Number Based Upon Momentum Thickness"

8680   PRINT "  3) Displacement Thickness"

8690   INPUT " Option (1/2/3)[1]"; BLO

8700   IF BLO < 1 OR BLO > 3 THEN BLO = 1

8710 END IF

8720 RST$ = "RE  1"

8730 DUM$ = STR$((BLO + 1) * 10)

8740 NUPE$ = MID$(DUM$, 2, 1)

8750 RST$ = RST$ + NUPE$ + "    "

8760 GOSUB 15440

8770 ITRANS = 0

8780 FOR I = 1 TO NCOMBO

8790  PRINT " For Case #"; I

8800  INPUT "  Enter Reynolds Number"; REY

8810  REYN = INT(REY / 1000)

8820  PRINT "  Enter Transition Type (1/2/3/4)[3]"

8830  INPUT "       (Enter ? To See Options Again)"; TTYPE$

8840  IF TTYPE$ = "?" THEN

8850    GOSUB 15440

8860    GOTO 8820

8870  END IF

8880  TTYPE = VAL(TTYPE$)

8890  IF TTYPE < 1 OR TTYPE > 4 THEN TTYPE = 3

8900  IF TTYPE = 1 THEN

8910    MU = 0

8920  END IF

8930  IF TTYPE = 2 THEN

8940    ITRANS = ITRANS + 1

8950    IF ITRANS > 2 THEN

8960      PRINT "  ONLY TWO FIXED TRANSITION CASES ALLOWED"

8970      ITRANS = 2

8980      GOTO 8820

8990     ELSE

9000      INPUT "  Enter X/C Location of Transition On Upper Surface"; XTU(ITRANS)

9010      INPUT "  Enter X/C Location of Transition On Lower Surface"; XTL(ITRANS)

9020      MU = ITRANS

9030    END IF

9040  END IF

9050  IF TTYPE = 3 THEN

9060    MU = 3

9070  END IF

9080  IF TTYPE = 4 THEN

9090    INPUT "  Enter Roughness Level (0-6, ? For Options)[0]"; ROUGH$

9100    IF ROUGH$ = "?" THEN

9110      GOSUB 15440

9120      GOTO 9090

9130    END IF

9140    ROUGH = VAL(ROUGH$)

9150    MU = INT(ROUGH + 3)

9160  END IF

9170  DUM$ = STR$(MU)

9180  MU$ = " " + MID$(DUM$, 2, 1) + "   "

9190  RST$ = RST$ + MU$

9200  DUM$ = STR$(REYN)

9210  LD = LEN(DUM$)

9220  REY$ = MID$(DUM$, 2, LD - 1)

9230  LR = LEN(REY$)

9240  IF LR <> 5 THEN

9250    FOR J = 1 TO LR

9260     REY$ = " " + REY$

9270    NEXT J

9280  END IF

9290  RST$ = RST$ + REY$

9300 NEXT I

9310 IF ITRANS > 0 THEN

9320   LR = LEN(RST$)

9330   DR = 60 - LR

9340   FOR J = 1 TO DR

9350    RST$ = RST$ + " "

9360   NEXT J

9370   FOR J = 1 TO ITRANS

9380    DUM$ = STR$(INT(XTU(ITRANS) * 10000))

9390    LD = LEN(DUM$)

9400    XT$ = MID$(DUM$, 2, LD - 1)

9410    LD = LEN(XT$)

9420    DL = 5 - LD

9430    FOR K = 1 TO DL

9440     RST$ = RST$ + " "

9450    NEXT K

9460    RST$ = RST$ + XT$

9470    DUM$ = STR$(INT(XTL(ITRANS) * 10000))

9480    LD = LEN(DUM$)

9490    XT$ = MID$(DUM$, 2, LD - 1)

9500    LD = LEN(XT$)

9510    DL = 5 - LD

9520    FOR K = 1 TO DL

9530     RST$ = RST$ + " "

9540    NEXT K

9550    RST$ = RST$ + XT$

9560   NEXT J

9570 END IF

9580 PRINT #1, RST$

9590 PRINT

9600 INPUT " Is A CD-CL Plot Required (Y/N)[Y]"; PL$

9610 IF PL$ <> "n" AND PL$ <> "N" THEN

9620   PRINT #1, "CDCL"

9630 END IF

9640 PRINT

9650 INPUT " Is A Flap Deflection Case Required (Y/N)[N]"; FLP$

9660 IF FLP$ = "Y" OR FLP$ = "y" THEN

9670   INPUT "  Enter X/C Location Of Hinge"; XLOC

9680   INPUT "  Enter Y/C Location Of Hinge"; YLOC

9690   INPUT "  Enter Flap Deflection (deg, Negative Is Upwards)"; DEFL

9700   FST$ = "FLAP      "

9710   DUM$ = STR$(INT((1 - XLOC) * 10000))

9720   FLC$ = LEFT$(DUM$, 5)

9730   DUM$ = STR$(INT(YLOC * 10000))

9740   YLC$ = LEFT$(DUM$, 5)

9750   TRS$ = "  400"

9760   DUM$ = STR$(INT(DEFL * 100))

9770   DFL$ = LEFT$(DUM$, 5)

9780   FST$ = FST$ + FLC$ + YLC$ + TRS$ + DFL$

9790   PRINT #1, RST$

9800 END IF

9810 PRINT #1, "ENDE"

9820 RETURN

9830 '-----------------------------------------------------------------

9840 'EPPLER OUTPUT UTILITY SUBROUTINE

9850 IF I / 8 = INT(I / 8) THEN PRINT #1, ""

9860 RETURN

9870 '-----------------------------------------------------------------

9880 'EPPLER OUTPUT UTILITY SUBROUTINE

9890 I = I - 1

9900 IF I / 8 <> INT(I / 8) THEN PRINT #1, ""

9910 RETURN

9920 '-----------------------------------------------------------------

9930 'WIBCO FORMAT OUTPUT

9940 '

9950 GOSUB 9520

9960 PRINT #1, USING "     ##."; NPP

9970 FORMAT$ = " #.###### #.###### #.###### #.###### #.###### #.######"

9980 FOR I = 1 TO NPP

9990  PRINT #1, USING FORMAT$; XU(I);

10000  GOSUB 10150

10010 NEXT I

10020 GOSUB 10180

10030 FOR I = 1 TO NPP

10040  PRINT #1, USING FORMAT$; YU(I);

10050  GOSUB 10150

10060 NEXT I

10070 GOSUB 10180

10080 FOR I = 1 TO NPP

10090  PRINT #1, USING FORMAT$; YL(I);

10100  GOSUB 10150

10110 NEXT I

10120 GOSUB 10180

10130 RETURN

10140 '

10150 IF I / 7 = INT(I / 7) THEN PRINT #1, ""

10160 RETURN

10170 '

10180 I = I - 1

10190 IF I / 7 <> INT(I / 7) THEN PRINT #1, ""

10200 RETURN

10210 '-----------------------------------------------------------------

10220 'LOFTSMAN [SD] FORMAT OUTPUT - CODE FROM NICK PARKYN

10230 '

10240 TT = ABS(YL(NPP)) + ABS(YU(NPP))

10250 PRINT #1, USING "### 1.000000 #.###### #.######"; ((NPP * 2) - 1); TT; TC

10260 J = 1

10270 FOR I = NPP TO 1 STEP -1

10280  PRINT #1, USING " ### #.####### #.#######"; J; XU(I); YU(I)

10290  J = J + 1

10300 NEXT I

10310 FOR I = 2 TO NPP

10320  PRINT #1, USING " ### #.####### #.#######"; J; XL(I); YL(I)

10330  J = J + 1

10340 NEXT I

10350 RETURN

10360 '-----------------------------------------------------------------

10370 'VSAERO FORMAT OUTPUT

10380 '

10390 PRINT #1, "    0.0000    0.0000    0.0000    1.0000    0.0000    0.0000    2    0    0    0"

10400 FOR I = NPP TO 1 STEP -1

10410  PRINT #1, USING " #.####### #.#######"; XL(I); YL(I)

10420 NEXT I

10430 PRINT

10440 FOR I = 2 TO NPP

10450  PRINT #1, USING " #.####### #.#######"; XU(I); YU(I)

10460 NEXT I

10470 PRINT #1, "                                  3    0    0"

10480 RETURN

10490 '-----------------------------------------------------------------

10500 'AUTOCAD SCRIPT FORMAT OUTPUT

10510 PRINT

10520 IF RIGHT$(DEST$, 3) <> "SCR" AND RIGHT$(DEST$, 3) <> "scr" THEN

10530   PRINT " ERROR: Output Filename Must Have A .SCR Extension"

10540   CLOSE 1

10550   INPUT " Enter The Filename For Output Of The Coordinates"; DEST$

10560   OPEN DEST$ FOR OUTPUT AS #1

10570 END IF

10580 '

10590 'TURN OFF LIMITS TO PREVENT LOCKUP

10600 PRINT #1, "LIMITS OFF"

10610 'PLACE NODE POINT AT CHORD LINE LEADING EDGE

10620 PRINT #1, "POINT 0,0"

10630 'DRAW CHORD LINE

10640 PRINT #1, "LINE 0,0 1,0 "

10650 'DRAW UPPER SURFACE STARTING AT 0,0

10660 PRINT #1, "PLINE"

10670 FOR I = 1 TO NPP

10680  PRINT #1, USING "#.#######,#.#######"; XU(I); YU(I)

10690 NEXT I

10700 'DRAW LOWER SURFACE STARTING AT 0,0

10710 PRINT #1, " PLINE"

10720 FOR I = 1 TO NPP

10730  PRINT #1, USING "#.#######,#.#######"; XL(I); YL(I)

10740 NEXT I

10750 'RESTORE LIMITS

10760 PRINT #1, " LIMITS ON"

10770 RETURN

10780 '-----------------------------------------------------------------

10790 'ASIN SUBROUTINE

10800 IF SVAL = 0 THEN THETA = 0

10810 IF SVAL = 1 THEN THETA = PI / 2

10820 IF SVAL = -1 THEN THETA = -PI / 2

10830 IF SVAL = 0 OR SVAL = 1 OR SVAL = -1 THEN GOTO 10850

10840 THETA = ATN(SVAL / SQR(1 - SVAL ^ 2))

10850 RETURN

10860 '-----------------------------------------------------------------

10870 'SCREEN DISPLAY SUBROUTINE

10880 KEY OFF

10890 IF DTP = 1 THEN SCREEN 1

10900 IF DTP > 1 THEN SCREEN 9

10910 COLOR 1, 0: CLS

10920 LINE (.05 * QM, .25 * RM)-(.05 * QM, .75 * RM)

10930 LINE (.05 * QM, .5 * RM)-(.95 * QM, .5 * RM)

10940 COLR = 7

10950 FOR I = 1 TO NPP

10960  XQ(1) = .05 * QM + XU(I) * QM * .9

10970  YQ(1) = .5 * RM - YU(I) * QM * .9

10980  IF ANSC$ = "N" THEN

10990    PSET (XQ(1), YQ(1)), COLR

11000    GOTO 11060

11010  END IF

11020  IF I = 1 THEN GOTO 11040

11030  LINE (XQ(2), YQ(2))-(XQ(1), YQ(1)), COLR

11040  XQ(2) = XQ(1)

11050  YQ(2) = YQ(1)

11060 NEXT I

11070 FOR I = 1 TO NPP

11080  XQ(1) = .05 * QM + XL(I) * QM * .9

11090  YQ(1) = .5 * RM - YL(I) * QM * .9

11100  IF ANSC$ = "N" THEN

11110    PSET (XQ(1), YQ(1)), COLR

11120    GOTO 11180

11130  END IF

11140  IF I = 1 THEN GOTO 11160

11150  LINE (XQ(2), YQ(2))-(XQ(1), YQ(1)), COLR

11160  XQ(2) = XQ(1)

11170  YQ(2) = YQ(1)

11180 NEXT I

11190 IF INKEY$ = "" THEN 11190 ELSE 11200

11200 WIDTH 80: SCREEN 0, 0, 0: COLOR 7, 1: CLS

11210 RETURN

11220 '-----------------------------------------------------------------

11230 'POINT REDISTRIBUTION ROUTINE

11240 'set up constants

11250 DEG.TO.RAD = PI / 180

11260 RAD.TO.DEG = 180 / PI

11270 N.TOT = NP * 2 - 1

11280 NUP = NP

11290 NLO = NP

11300 S = 2

11310 C1 = 1

11320 C2 = 1

11330 COLOR 7, 1: CLS

11340 II = 0

11350 FOR I = NUP TO 1 STEP -1

11360  II = II + 1

11370  P(1, I) = XU(II)

11380  P(2, I) = YU(II)

11390 NEXT I

11400 II = 0

11410 FOR I = NUP TO N.TOT

11420  II = II + 1

11430  P(1, I) = XL(II)

11440  P(2, I) = YL(II)

11450 NEXT I

11460 XTRAIL = P(1, N.TOT)

11470 YTRAIL = P(2, N.TOT)

11480 'compute number of points to add

11490 N = N.TOT

11500 Z = INT(300 / N.TOT + .5)

11510 LOCATE 12, 19: PRINT "Will Insert"; Z; " Points Between Given Points"

11520 LOCATE 13, 28: PRINT "Calculating Cubic Spline"

11530 N(1, 2) = 1

11540 N(1, 3) = .5

11550 FOR J = 1 TO N - 1

11560  L(J) = SQR((P(1, J + 1) - P(1, J)) ^ 2 + (P(2, J + 1) - P(2, J)) ^ 2)

11570 NEXT J

11580 FOR K = 1 TO 2

11590  B(K, 1) = (3 / (2 * L(1))) * (P(K, 2) - P(K, 1))

11600 NEXT K

11610 N(N, 1) = 2

11620 N(N, 2) = 4

11630 FOR K = 1 TO 2

11640  B(K, N) = (6 / L(N - 1)) * (P(K, N) - P(K, N - 1))

11650 NEXT K

11660 FOR K = 1 TO 2

11670  B(K, N) = (6 / L(N - 1)) * (P(K, N) - P(K, N - 1))

11680 NEXT K

11690 FOR J = 2 TO N - 1

11700  N(J, 1) = L(J)

11710  N(J, 2) = 2 * (L(J) + L(J - 1))

11720  N(J, 3) = L(J - 1)

11730  FOR K = 1 TO 2

11740   B(K, J) = 3 * (L(J - 1) ^ 2 * (P(K, J + 1) - P(K, J)) + L(J) ^ 2 * (P(K, J) - P(K, J - 1)))

11750   B(K, J) = B(K, J) / (L(J) * L(J - 1))

11760  NEXT K

11770 NEXT J

11780 FOR I = 2 TO N

11790  IF N(I, 1) = 0 THEN GOTO 11900

11800  D = N(I - 1, 2) / N(I, 1)

11810  FOR K = 1 TO 3

11820   N(I, K) = N(I, K) * D - N(I - 1, K + 1)

11830   B(K, I) = B(K, I) * D - B(K, I - 1)

11840  NEXT K

11850  Q = N(I, 2)

11860  FOR K = 1 TO 3

11870   N(I, K) = N(I, K) / Q

11880   B(K, I) = B(K, I) / Q

11890  NEXT K

11900 NEXT I

11910 FOR K = 1 TO 2

11920  FOR J = 0 TO N - 1

11930   U(K, N - J) = (B(K, N - J) - N(N - J, 3) * U(K, N + 1 - J)) / N(N - J, 2)

11940  NEXT J

11950 NEXT K

11960 IF FLAG THEN RETURN

11970 CLS : LOCATE 12, 28: PRINT "Performing Interpolation"

11980 I = 1

11990 FOR J = 1 TO N - 1

12000  FOR K = 1 TO 2

12010   F(1, K) = P(K, J)

12020   F(2, K) = U(K, J)

12030   F(3, K) = (3 / L(J) ^ 2) * (P(K, J + 1) - P(K, J)) - (1 / L(J)) * (U(K, J + 1) + 2 * U(K, J))

12040   F(4, K) = (-2 / L(J) ^ 3) * (P(K, J + 1) - P(K, J)) + (1 / L(J) ^ 2) * (U(K, J + 1) + U(K, J))

12050  NEXT K

12060  TINC = L(J) / Z

12070  T = 0

12080  IF J = 1 OR T <> 0 THEN

12090    FOR K = 1 TO 2

12100     R(K) = F(1, K) + F(2, K) * T + F(3, K) * T * T + F(4, K) * T ^ 3

12110    NEXT K

12120    C(1, I) = R(1)

12130    C(2, I) = R(2)

12140    I = I + 1

12150  END IF

12160  IF T = 0 AND ABS(C(1, I - 1) - P(1, J)) > .00001 THEN

12170    C(1, I) = P(1, J)

12180    C(2, I) = P(2, J)

12190    I = I + 1

12200  END IF

12210  T = T + TINC

12220  IF T <= L(J) THEN GOTO 12080

12230 NEXT J

12240 NUM.PTS = I - 1

12250 CLS : LOCATE 12, 27: PRINT "Number Of Points = "; NUM.PTS

12260 'move points to P array, go back to find first derivatives for all points

12270 IF ABS(C(1, NUM.PTS) - XTRAIL) > .00001 THEN

12280   NUM.PTS = NUM.PTS + 1

12290   C(1, NUM.PTS) = XTRAIL

12300   C(2, NUM.PTS) = YTRAIL

12310 END IF

12320 FOR I = 1 TO NUM.PTS

12330  P(1, I) = C(1, I)

12340  P(2, I) = C(2, I)

12350 NEXT I

12360 N = NUM.PTS

12370 FLAG = -1

12380 PRINT TAB(26); "Computing First Derivatives"

12390 GOSUB 11530

12400 'convert to slopes in radians, store as B array

12410 FOR I = 1 TO NUM.PTS

12420  B(1, I) = U(2, I) / U(1, I)

12430 NEXT I

12440 'split airfoil into upper and lower surfaces

12450 MIN = P(1, 1)

12460 FOR I = 1 TO NUM.PTS

12470  IF P(1, I) < MIN THEN

12480    IMIN = I

12490    MIN = P(1, I)

12500  END IF

12510 NEXT I

12520 GOSUB 13490

12530 'move upper surface to N arrays 1&2, move slopes to C1 array

12540 FOR I = IMIN TO 1 STEP -1

12550  N(I, 1) = P(1, I)

12560  N(I, 2) = P(2, I)

12570  C(1, I) = B(1, I)

12580 NEXT I

12590 'move lower surface to N arrays 3&4, move slopes to C2 array

12600 K = 0

12610 FOR I = IMIN TO N

12620  K = K + 1

12630  N(K, 3) = P(1, I)

12640  N(K, 4) = P(2, I)

12650  C(2, K) = B(1, I)

12660 NEXT I

12670 NUM.UP.PTS = IMIN

12680 NUM.LO.PTS = NUM.PTS - IMIN + 1

12690 PRINT

12700 CLS : LOCATE 11, 1

12710 PRINT TAB(26); "Number Of Upper Points ="; NUM.UP.PTS

12720 PRINT TAB(26); "Number Of Lower Points ="; NUM.LO.PTS

12730 FOR I = 1 TO NUM.UP.PTS

12740  K = NUM.UP.PTS - I + 1

12750  X(I) = N(K, 1)

12760  Y(I) = N(K, 2)

12770  YP(I) = C(1, K)

12780 NEXT I

12790 PRINT TAB(24); "Calculating Desired Coordinates"

12800 IF SGN(YP(1)) <> SGN(YP(2)) THEN YP(1) = -YP(1)

12810 N% = NUM.UP.PTS

12820 XU(1) = XDD(1)

12830 YU(1) = 0

12840 FOR I = 2 TO NPP

12850   XU(I) = XDD(I)

12860   XD = XDD(I)

12870  GOSUB 13100

12880  YU(I) = YD

12890 NEXT

12900 FOR I = 1 TO NUM.LO.PTS

12910  X(I) = N(I, 3)

12920  Y(I) = N(I, 4)

12930  YP(I) = C(2, I)

12940 NEXT I

12950 IF SGN(YP(1)) <> SGN(YP(2)) THEN YP(1) = -YP(1)

12960 RESTORE

12970 N% = NUM.LO.PTS

12980 XL(1) = XDD(1)

12990 YL(1) = 0

13000 FOR I = 2 TO NPP

13010   XL(I) = XDD(I)

13020   XD = XDD(I)

13030   GOSUB 13100

13040   YL(I) = YD

13050 NEXT

13060 CLS

13070 RETURN

13080 '-----------------------------------------------------------------

13090 'INTERPOLATION ROUTINE FOR REDISTRIBUTION

13100 LL% = 0

13110 UL% = N% + 1

13120 IF (UL% - LL% = 1) THEN GOTO 13270

13130 IN% = (UL% - LL%) \ 2 + LL%

13140 DX = XD - X(IN%)

13150 IF DX < 0 THEN

13160   UL% = IN%

13170   GOTO 13120

13180 END IF

13190 IF DX = 0 THEN

13200   YD = Y(IN%)

13210   GOTO 13460

13220 END IF

13230 IF DX > 0 THEN

13240   LL% = IN%

13250   GOTO 13120

13260 END IF

13270 IF UL% < 2 THEN UL% = 2

13280 IF UL% > N% THEN UL% = N%

13290 LL% = UL% - 1

13300 SL = (Y(UL%) - Y(LL%)) / (X(UL%) - X(LL%))

13310 YZ = Y(LL%) + SL * (XD - X(LL%))

13320 FOR I% = 1 TO 2

13330 K2% = LL% + I% - 1

13340 DY(I%) = Y(K2%) + YP(K2%) * (XD - X(K2%)) - YZ

13350 NEXT I%

13360 TEST = DY(1) * DY(2)

13370 IF TEST = 0 THEN

13380   YD = YZ

13390   GOTO 13460

13400 END IF

13410 IF TEST > 0 THEN

13420   YD = YZ + TEST / (DY(1) + DY(2))

13430   GOTO 13460

13440 END IF

13450 YD = YZ + (TEST * (XD + XD - X(LL%) - X(UL%))) / ((DY(1) - DY(2)) * (X(UL%) - X(LL%)))

13460 RETURN

13470 '-----------------------------------------------------------------

13480 'ROTATION SUBROUTINE

13490 CLS : LOCATE 12, 30: PRINT "Performing Rotation"

13500 XRP = 1

13510 YRP = 0

13520 YTE = (P(2, 1) + P(2, NUM.PTS)) / 2

13530 DELTA = ATN(((P(2, IMIN) - YTE) - YRP) / (P(1, IMIN) - XRP))

13540 DDELTA = DELTA * 180 / PI

13550 LOCATE 13, 28: PRINT USING "Angle = ##.######## Deg"; DDELTA

13560 CDLT = COS(DELTA)

13570 SDLT = SIN(DELTA)

13580 TDLT = TAN(DELTA)

13590 FOR I = 1 TO NUM.PTS

13600  XRS = P(1, I)

13610  P(2, I) = P(2, I) - YTE

13620  P(1, I) = XRP + (P(1, I) - XRP) * CDLT + (P(2, I) - YRP) * SDLT

13630  P(2, I) = YRP + (P(2, I) - YRP) * CDLT - (XRS - XRP) * SDLT

13640  B(1, I) = B(1, I) - TDLT

13650 NEXT I

13660 P(1, NUM.PTS) = (P(1, 1) + P(1, NUM.PTS)) / 2

13670 P(1, 1) = P(1, NUM.PTS)

13680 XRLE = P(1, IMIN)

13690 FOR I = 1 TO NUM.PTS

13700  P(1, I) = P(1, I) - XRLE

13710 NEXT I

13720 XRCRD = P(1, 1)

13730 FOR I = 1 TO NUM.PTS

13740  P(1, I) = P(1, I) / XRCRD

13750  P(2, I) = P(2, I) / XRCRD

13760 NEXT I

13770 RETURN

13780 '-----------------------------------------------------------------

13790 'NACA CONSTANTS

13800 N = 1 + N6S * N6T + N6AS * N6AT + 2 * N6C + 2 * N6AC

13810 FOR I = 1 TO N

13820  FOR J = 1 TO N6P

13830   READ TF6(I, J)

13840  NEXT J

13850 NEXT I

13860 RETURN

13870 'NACA X/C LOCATIONS

13880 DATA 0.0000, 0.5000, 0.7500, 1.2500, 2.5000, 5.0000, 7.5000, 10.0000, 15.0000, 20.0000, 25.0000, 30.0000, 35.0000, 40.0000, 45.0000, 50.0000, 55.0000, 60.0000, 65.0000, 70.0000, 75.0000, 80.0000, 85.0000, 90.0000, 95.0000, 100.0000

13890 'NACA THICKNESS FORMS 6-21%, 63-67 SERIES

13900 DATA 0.0000, 0.5030, 0.6090, 0.7710, 1.0570, 1.4620, 1.7660, 2.0100, 2.3860, 2.6560, 2.8410, 2.9540, 3.0000, 2.9710, 2.8770, 2.7230, 2.5170, 2.2670, 1.9820, 1.6700, 1.3420, 1.0080, 0.6830, 0.3830, 0.1380, 0.0000

13910 DATA 0.0000, 0.6683, 0.8089, 1.0244, 1.4073, 1.9517, 2.3588, 2.6858, 3.1896, 3.5501, 3.7965, 3.9459, 3.9999, 3.9579, 3.8254, 3.6133, 3.3338, 2.9984, 2.6173, 2.2003, 1.7616, 1.3171, 0.8870, 0.4963, 0.1777, 0.0000

13920 DATA 0.0000, 0.7490, 0.9060, 1.1510, 1.5820, 2.1960, 2.6550, 3.0240, 3.5910, 3.9970, 4.2750, 4.4420, 4.5000, 4.4470, 4.2960, 4.0560, 3.7390, 3.3580, 2.9280, 2.4580, 1.9660, 1.4710, 0.9900, 0.5500, 0.1960, 0.0000

13930 DATA 0.0000, 0.8290, 1.0040, 1.2750, 1.7560, 2.4400, 2.9500, 3.3620, 3.9940, 4.4450, 4.7530, 4.9380, 5.0000, 4.9380, 4.7660, 4.4960, 4.1400, 3.7150, 3.2340, 2.7120, 2.1660, 1.6180, 1.0880, 0.6040, 0.2140, 0.0000

13940 DATA 0.0000, 0.9850, 1.1940, 1.5190, 2.1020, 2.9250, 3.5420, 4.0390, 4.7990, 5.3420, 5.7120, 5.9300, 6.0000, 5.9200, 5.7040, 5.3700, 4.9350, 4.4200, 3.8400, 3.2100, 2.5560, 1.9020, 1.2740, 0.7070, 0.2500, 0.0000

13950 DATA 0.0000, 1.2040, 1.4620, 1.8780, 2.6100, 3.6480, 4.4270, 5.0550, 6.0110, 6.6930, 7.1550, 7.4210, 7.5000, 7.3860, 7.0990, 6.6650, 6.1080, 5.4530, 4.7210, 3.9340, 3.1190, 2.3100, 1.5410, 0.8520, 0.3000, 0.0000

13960 DATA 0.0000, 1.4040, 1.7130, 2.2170, 3.1040, 4.3620, 5.3080, 6.0680, 7.2250, 8.0480, 8.6000, 8.9130, 9.0000, 8.8450, 8.4820, 7.9420, 7.2560, 6.4550, 5.5670, 4.6220, 3.6500, 2.6910, 1.7870, 0.9850, 0.3480, 0.0000

13970 DATA 0.0000, 1.5830, 1.9370, 2.5270, 3.5770, 5.0650, 6.1820, 7.0800, 8.4410, 9.4100, 10.0530, 10.4120, 10.5000, 10.2980, 9.8540, 9.2060, 8.3900, 7.4410, 6.3960, 5.2900, 4.1600, 3.0540, 2.0210, 1.1130, 0.3920, 0.0000

13980 DATA 0.0000, 0.4940, 0.5960, 0.7540, 1.0240, 1.4050, 1.6920, 1.9280, 2.2980, 2.5720, 2.7720, 2.9070, 2.9810, 2.9950, 2.9190, 2.7750, 2.5750, 2.3310, 2.0500, 1.7400, 1.4120, 1.0720, 0.7370, 0.4230, 0.1570, 0.0000

13990 DATA 0.0000, 0.6580, 0.7940, 1.0050, 1.3650, 1.8750, 2.2590, 2.5740, 3.0690, 3.4370, 3.7040, 3.8840, 3.9790, 3.9920, 3.8830, 3.6840, 3.4110, 3.0810, 2.7040, 2.2910, 1.8540, 1.4040, 0.9610, 0.5500, 0.2060, 0.0000

14000 DATA 0.0000, 0.7390, 0.8920, 1.1280, 1.5330, 2.1090, 2.5430, 2.8980, 3.4550, 3.8680, 4.1700, 4.3730, 4.4790, 4.4900, 4.3640, 4.1360, 3.8260, 3.4520, 3.0260, 2.5610, 2.0690, 1.5640, 1.0690, 0.6110, 0.2270, 0.0000

14010 DATA 0.0000, 0.8200, 0.9890, 1.2500, 1.7010, 2.3430, 2.8260, 3.2210, 3.8420, 4.3020, 4.6390, 4.8640, 4.9800, 4.9880, 4.8430, 4.5860, 4.2380, 3.8200, 3.3450, 2.8270, 2.2810, 1.7220, 1.1760, 0.6710, 0.2480, 0.0000

14020 DATA 0.0000, 0.9780, 1.1790, 1.4900, 2.0350, 2.8100, 3.3940, 3.8710, 4.6200, 5.1730, 5.5760, 5.8440, 5.9780, 5.9810, 5.7980, 5.4800, 5.0560, 4.5480, 3.9740, 3.3500, 2.6950, 2.0290, 1.3820, 0.7860, 0.2880, 0.0000

14030 DATA 0.0000, 1.2080, 1.4560, 1.8420, 2.5280, 3.5040, 4.2400, 4.8420, 5.7850, 6.4800, 6.9850, 7.3190, 7.4820, 7.4730, 7.2240, 6.8100, 6.2660, 5.6200, 4.8950, 4.1130, 3.2960, 2.4720, 1.6770, 0.9500, 0.3460, 0.0000

14040 DATA 0.0000, 1.4280, 1.7200, 2.1770, 3.0050, 4.1860, 5.0760, 5.8030, 6.9420, 7.7820, 8.3910, 8.7890, 8.9790, 8.9520, 8.6300, 8.1140, 7.4450, 6.6580, 5.7820, 4.8420, 3.8660, 2.8880, 1.9510, 1.1010, 0.4000, 0.0000

14050 DATA 0.0000, 1.6460, 1.9850, 2.5170, 3.4850, 4.8710, 5.9150, 6.7690, 8.1080, 9.0950, 9.8070, 10.2690, 10.4810, 10.4310, 10.0300, 9.4040, 8.6070, 7.6780, 6.6490, 5.5490, 4.4160, 3.2870, 2.2130, 1.2450, 0.4490, 0.0000

14060 DATA 0.0000, 0.4760, 0.5740, 0.7170, 0.9560, 1.3100, 1.5890, 1.8240, 2.1970, 2.4820, 2.6970, 2.8520, 2.9520, 2.9980, 2.9830, 2.9000, 2.7410, 2.5180, 2.2460, 1.9350, 1.5940, 1.2330, 0.8650, 0.5100, 0.1950, 0.0000

14070 DATA 0.0000, 0.6270, 0.7560, 0.9450, 1.2670, 1.7450, 2.1180, 2.4320, 2.9310, 3.3120, 3.5990, 3.8050, 3.9380, 3.9980, 3.9740, 3.8570, 3.6380, 3.3370, 2.9710, 2.5530, 2.0960, 1.6170, 1.1310, 0.6640, 0.2520, 0.0000

14080 DATA 0.0000, 0.7000, 0.8450, 1.0580, 1.4210, 1.9610, 2.3830, 2.7360, 3.2990, 3.7270, 4.0500, 4.2820, 4.4310, 4.4960, 4.4690, 4.3360, 4.0860, 3.7430, 3.3280, 2.8560, 2.3420, 1.8050, 1.2600, 0.7380, 0.2800, 0.0000

14090 DATA 0.0000, 0.7720, 0.9320, 1.1690, 1.5740, 2.1770, 2.6470, 3.0400, 3.6660, 4.1430, 4.5030, 4.7600, 4.9240, 4.9960, 4.9630, 4.8120, 4.5300, 4.1460, 3.6820, 3.1560, 2.5840, 1.9870, 1.3850, 0.8100, 0.3060, 0.0000

14100 DATA 0.0000, 0.9230, 1.1090, 1.3870, 1.8750, 2.6060, 3.1720, 3.6470, 4.4020, 4.9750, 5.4060, 5.7160, 5.9120, 5.9970, 5.9490, 5.7570, 5.4120, 4.9430, 4.3810, 3.7430, 3.0590, 2.3450, 1.6300, 0.9470, 0.3560, 0.0000

14110 DATA 0.0000, 1.1240, 1.3560, 1.7020, 2.3240, 3.2450, 3.9590, 4.5550, 5.5040, 6.2230, 6.7640, 7.1520, 7.3960, 7.4980, 7.4270, 7.1680, 6.7200, 6.1180, 5.4030, 4.6000, 3.7440, 2.8580, 1.9770, 1.1440, 0.4280, 0.0000

14120 DATA 0.0000, 1.3370, 1.6080, 2.0140, 2.7510, 3.8660, 4.7330, 5.4570, 6.6060, 7.4760, 8.1290, 8.5950, 8.8860, 8.9990, 8.9010, 8.5680, 8.0080, 7.2670, 6.3950, 5.4260, 4.3960, 3.3380, 2.2950, 1.3190, 0.4900, 0.0000

14130 DATA 0.0000, 1.5220, 1.8380, 2.3010, 3.1540, 4.4720, 5.4980, 6.3520, 7.7000, 8.7200, 9.4870, 10.0360, 10.3750, 10.4990, 10.3660, 9.9520, 9.2770, 8.3900, 7.3600, 6.2240, 5.0240, 3.8000, 2.5980, 1.4840, 0.5460, 0.0000

14140 DATA 0.0000, 0.4610, 0.5540, 0.6930, 0.9180, 1.2570, 1.5240, 1.7520, 2.1190, 2.4010, 2.6180, 2.7820, 2.8990, 2.9710, 3.0000, 2.9850, 2.9250, 2.8150, 2.6110, 2.3160, 1.9530, 1.5430, 1.1070, 0.6650, 0.2620, 0.0000

14150 DATA 0.0000, 0.6100, 0.7350, 0.9190, 1.2190, 1.6730, 2.0310, 2.3350, 2.8260, 3.2010, 3.4900, 3.7090, 3.8650, 3.9620, 4.0000, 3.9780, 3.8960, 3.7400, 3.4590, 3.0620, 2.5740, 2.0270, 1.4470, 0.8640, 0.3380, 0.0000

14160 DATA 0.0000, 0.6870, 0.8240, 1.0300, 1.3680, 1.8800, 2.2830, 2.6260, 3.1780, 3.6010, 3.9270, 4.1730, 4.3480, 4.4570, 4.4990, 4.4750, 4.3810, 4.2040, 3.8820, 3.4280, 2.8770, 2.2630, 1.6110, 0.9610, 0.3740, 0.0000

14170 DATA 0.0000, 0.7590, 0.9130, 1.1410, 1.5160, 2.0870, 2.5360, 2.9170, 3.5300, 4.0010, 4.3630, 4.6360, 4.8320, 4.9530, 5.0000, 4.9710, 4.8650, 4.6650, 4.3020, 3.7870, 3.1760, 2.4940, 1.7730, 1.0540, 0.4080, 0.0000

14180 DATA 0.0000, 0.9060, 1.0870, 1.3580, 1.8080, 2.4960, 3.0370, 3.4960, 4.2340, 4.8010, 5.2380, 5.5680, 5.8030, 5.9470, 6.0000, 5.9650, 5.8360, 5.5880, 5.1390, 4.5150, 3.7670, 2.9440, 2.0830, 1.2340, 0.4740, 0.0000

14190 DATA 0.0000, 1.1220, 1.3430, 1.6750, 2.2350, 3.1000, 3.7810, 4.3580, 5.2860, 5.9950, 6.5430, 6.9560, 7.2500, 7.4300, 7.4950, 7.4500, 7.2830, 6.9590, 6.3720, 5.5760, 4.6320, 3.5980, 2.5300, 1.4890, 0.5660, 0.0000

14200 DATA 0.0000, 1.3230, 1.5710, 1.9520, 2.6460, 3.6900, 4.5130, 5.2100, 6.3330, 7.1880, 7.8480, 8.3460, 8.7010, 8.9180, 8.9980, 8.9420, 8.7330, 8.3230, 7.5800, 6.5970, 5.4510, 4.2060, 2.9340, 1.7140, 0.6460, 0.0000

14210 DATA 0.0000, 1.5250, 1.8040, 2.2400, 3.0450, 4.2690, 5.2330, 6.0520, 7.3690, 8.3760, 9.1530, 9.7380, 10.1540, 10.4070, 10.5000, 10.4340, 10.1860, 9.6920, 8.7930, 7.6100, 6.2510, 4.7960, 3.3240, 1.9240, 0.7170, 0.0000

14220 DATA 0.0000, 0.4879, 0.5847, 0.7351, 0.9888, 1.3236, 1.5808, 1.7909, 2.1262, 2.3856, 2.5886, 2.7464, 2.8649, 2.9451, 2.9902, 2.9985, 2.9686, 2.8954, 2.7713, 2.5854, 2.3063, 1.9056, 1.4274, 0.8994, 0.3585, 0.0000

14230 DATA 0.0000, 0.6462, 0.7740, 0.9739, 1.3118, 1.7595, 2.1036, 2.3844, 2.8325, 3.1791, 3.4503, 3.6611, 3.8196, 3.9267, 3.9869, 3.9980, 3.9579, 3.8592, 3.6917, 3.4395, 3.0581, 2.5134, 1.8738, 1.1706, 0.4637, 0.0000

14240 DATA 0.0000, 0.7240, 0.8669, 1.0915, 1.4715, 1.9759, 2.3637, 2.6800, 3.1848, 3.5752, 3.8807, 4.1182, 4.2967, 4.4174, 4.4853, 4.4977, 4.4525, 4.3410, 4.1514, 3.8652, 3.4308, 2.8123, 2.0917, 1.3013, 0.5139, 0.0000

14250 DATA 0.0000, 0.8008, 0.9586, 1.2078, 1.6297, 2.1911, 2.6229, 2.9748, 3.5365, 3.9709, 4.3108, 4.5750, 4.7737, 4.9081, 4.9837, 4.9975, 4.9471, 4.8227, 4.6109, 4.2901, 3.8013, 3.1081, 2.3061, 1.4288, 0.5628, 0.0000

14260 DATA 0.0000, 0.9507, 1.1374, 1.4354, 1.9412, 2.6173, 3.1376, 3.5615, 4.2377, 4.7605, 5.1696, 5.4876, 5.7269, 5.8889, 5.9802, 5.9971, 5.9365, 5.7860, 5.5290, 5.1373, 4.5356, 3.6902, 2.7246, 1.6744, 0.6565, 0.0000

14270 DATA 0.0000, 1.1651, 1.3925, 1.7625, 2.3940, 3.2443, 3.8994, 4.4325, 5.2826, 5.9396, 6.4537, 6.8536, 7.1547, 7.3588, 7.4747, 7.4966, 7.4209, 7.2307, 6.9048, 6.4020, 5.6210, 4.5399, 3.3270, 2.0209, 0.7880, 0.0000

14280 DATA 0.0000, 1.3646, 1.6289, 2.0689, 2.8258, 3.8530, 4.6458, 5.2904, 6.3174, 7.1106, 7.7315, 8.2148, 8.5791, 8.8268, 8.9683, 8.9963, 8.9060, 8.6761, 8.2797, 7.6591, 6.6858, 5.3628, 3.8991, 2.3435, 0.9097, 0.0000

14290 DATA 0.0000, 1.5470, 1.8438, 2.3506, 3.2327, 4.4397, 5.3736, 6.1323, 7.3397, 8.2720, 9.0017, 9.5703, 9.9994, 10.2922, 10.4609, 10.4966, 10.3924, 10.1232, 9.6546, 8.9093, 7.7296, 6.1596, 4.4414, 2.6443, 1.0229, 0.0000

14300 'NACA THICKNESS FORMS 6-21%, 63A-65A SERIES

14310 DATA 0.0000, 0.4950, 0.5950, 0.7540, 1.0450, 1.4470, 1.7470, 1.9890, 2.3620, 2.6310, 2.8200, 2.9420, 2.9960, 2.9850, 2.9140, 2.7880, 2.6130, 2.3960, 2.1430, 1.8590, 1.5560, 1.2480, 0.9390, 0.6300, 0.3220, 0.0130

14320 DATA 0.0000, 0.6580, 0.7910, 1.0030, 1.3910, 1.9300, 2.3320, 2.6560, 3.1550, 3.5150, 3.7660, 3.9260, 3.9950, 3.9780, 3.8780, 3.7050, 3.4680, 3.1760, 2.8370, 2.4570, 2.0550, 1.6470, 1.2400, 0.8330, 0.4250, 0.0180

14330 DATA 0.0000, 0.8160, 0.9830, 1.2500, 1.7370, 2.4120, 2.9170, 3.3240, 3.9500, 4.4000, 4.7140, 4.9130, 4.9950, 4.9680, 4.8370, 4.6130, 4.3110, 3.9430, 3.5170, 3.0440, 2.5450, 2.0400, 1.5350, 1.0300, 0.5250, 0.0210

14340 DATA 0.0000, 0.9730, 1.1730, 1.4920, 2.0780, 2.8950, 3.5040, 3.9940, 4.7470, 5.2870, 5.6640, 5.9010, 5.9950, 5.9570, 5.7920, 5.5170, 5.1480, 4.7000, 4.1860, 3.6210, 3.0260, 2.4260, 1.8260, 1.2250, 0.6250, 0.0250

14350 DATA 0.0000, 1.2030, 1.4480, 1.8440, 2.5790, 3.6180, 4.3820, 4.9970, 5.9420, 6.6190, 7.0910, 7.3840, 7.4960, 7.4350, 7.2150, 6.8580, 6.3870, 5.8200, 5.1730, 4.4680, 3.7310, 2.9910, 2.2520, 1.5120, 0.7720, 0.0320

14360 DATA 0.0000, 1.3510, 1.6410, 2.1220, 3.0270, 4.2910, 5.2280, 5.9790, 7.1290, 7.9510, 8.5200, 8.8710, 8.9980, 8.9200, 8.6470, 8.2100, 7.6360, 6.9470, 6.1650, 5.3160, 4.4340, 3.5510, 2.6710, 1.7850, 0.9200, 0.0402

14370 DATA 0.0000, 1.4970, 1.8260, 2.3840, 3.4570, 4.9590, 6.0690, 6.9580, 8.3150, 9.2810, 9.9500, 10.3570, 10.4990, 10.3960, 10.0650, 9.5430, 8.8610, 8.0480, 7.1310, 6.1400, 5.1190, 4.0980, 3.0820, 2.0560, 1.0670, 0.0496

14380 DATA 0.0000, 0.4850, 0.5850, 0.7390, 1.0160, 1.3990, 1.6840, 1.9190, 2.2830, 2.5570, 2.7570, 2.8960, 2.9770, 2.9990, 2.9450, 2.8250, 2.6530, 2.4380, 2.1880, 1.9070, 1.6020, 1.2850, 0.9670, 0.6490, 0.3310, 0.0130

14390 DATA 0.0000, 0.6460, 0.7780, 0.9830, 1.3530, 1.8630, 2.2450, 2.5590, 3.0470, 3.4140, 3.6810, 3.8660, 3.9720, 3.9980, 3.9210, 3.7570, 3.5240, 3.2340, 2.8970, 2.5210, 2.1170, 1.6980, 1.2780, 0.8580, 0.4380, 0.0180

14400 DATA 0.0000, 0.8040, 0.9690, 1.2250, 1.6880, 2.3270, 2.9050, 3.1990, 3.8130, 4.2720, 4.6060, 4.8370, 4.9680, 4.9950, 4.8940, 4.6840, 4.3880, 4.0210, 3.5970, 3.1270, 2.6230, 2.1030, 1.5820, 1.0620, 0.5410, 0.0210

14410 DATA 0.0000, 0.9610, 1.1580, 1.4640, 2.0180, 2.7880, 3.3640, 3.8390, 4.5800, 5.1320, 5.5340, 5.8090, 5.9650, 5.9930, 5.8630, 5.6050, 5.2440, 4.8010, 4.2890, 3.7210, 3.1180, 2.5000, 1.8820, 1.2630, 0.6440, 0.0250

14420 DATA 0.0000, 1.1930, 1.4360, 1.8150, 2.5080, 3.4770, 4.2020, 4.7990, 5.7320, 6.4230, 6.9260, 7.2700, 7.4630, 7.4870, 7.3130, 6.9780, 6.5170, 5.9560, 5.3110, 4.6000, 3.8470, 3.0840, 2.3210, 1.5580, 0.7950, 0.0320

14430 DATA 0.0000, 1.3300, 1.6160, 2.0740, 2.9240, 4.1140, 4.9990, 5.7280, 6.8610, 7.7030, 8.3130, 8.7280, 8.9570, 8.9780, 8.7530, 8.3390, 7.7760, 7.0940, 6.3150, 5.4600, 4.5640, 3.6530, 2.7480, 1.8370, 0.9460, 0.0402

14440 DATA 0.0000, 1.4710, 1.7950, 2.3260, 3.3300, 4.7430, 5.7920, 6.6540, 7.9920, 8.9850, 9.7030, 10.1900, 10.4550, 10.4670, 10.1890, 9.6920, 9.0240, 8.2200, 7.3030, 6.3060, 5.2660, 4.2130, 3.1690, 2.1140, 1.0950, 0.0496

14450 DATA 0.0000, 0.4640, 0.5630, 0.7180, 0.9810, 1.3130, 1.5910, 1.8240, 2.1940, 2.4740, 2.6870, 2.8420, 2.9450, 2.9960, 2.9920, 2.9250, 2.7930, 2.6020, 2.3640, 2.0870, 1.7750, 1.4370, 1.0830, 0.7270, 0.3700, 0.0130

14460 DATA 0.0000, 0.6150, 0.7460, 0.9510, 1.3030, 1.7490, 2.1200, 2.4320, 2.9260, 3.3010, 3.5850, 3.7910, 3.9280, 3.9950, 3.9880, 3.8950, 3.7140, 3.4560, 3.1350, 2.7630, 2.3480, 1.8980, 1.4300, 0.9600, 0.4890, 0.0180

14470 DATA 0.0000, 0.7650, 0.9280, 1.1830, 1.6230, 2.1820, 2.6500, 3.0400, 3.6580, 4.1270, 4.4830, 4.7420, 4.9120, 4.9950, 4.9830, 4.8630, 4.6320, 4.3040, 3.8990, 3.4320, 2.9120, 2.3520, 1.7710, 1.1880, 0.6040, 0.0210

14480 DATA 0.0000, 0.9130, 1.1060, 1.4140, 1.9420, 2.6140, 3.1760, 3.6470, 4.3920, 4.9560, 5.3830, 5.6930, 5.8970, 5.9950, 5.9770, 5.8280, 5.5440, 5.1430, 4.6540, 4.0910, 3.4670, 2.7980, 2.1060, 1.4130, 0.7190, 0.0250

14490 DATA 0.0000, 1.1310, 1.3710, 1.7500, 2.4120, 3.2550, 3.9620, 4.5530, 5.4880, 6.1980, 6.7340, 7.1220, 7.3760, 7.4960, 7.4670, 7.2690, 6.9030, 6.3930, 5.7720, 5.0630, 4.2820, 3.4510, 2.5980, 1.7430, 0.8870, 0.0320

14500 DATA 0.0000, 1.2550, 1.5400, 2.0080, 2.8180, 3.8460, 4.7080, 5.4290, 6.5650, 7.4230, 8.0720, 8.5420, 8.8490, 8.9910, 8.9500, 8.7030, 8.2480, 7.6230, 6.8730, 6.0180, 5.0790, 4.0820, 3.0660, 2.0490, 1.0500, 0.0402

14510 DATA 0.0000, 1.3840, 1.7080, 2.2560, 3.2150, 4.4280, 5.4470, 6.3000, 7.6400, 8.6510, 9.4150, 9.9670,  10.3270, 10.4910, 10.4360, 10.1330, 9.5870, 8.8460, 7.9620, 6.9580, 5.8620, 4.7040, 3.5310, 2.3540, 1.2120, 0.0496

14520 'NACA 6 SERIES CAMBER LINES AND DERIVATIVES

14530 DATA 0.00000, 0.46000, 0.64100, 0.96400, 1.64100, 2.69300, 3.50700, 4.16100, 5.12400, 5.74700, 6.11400, 6.27700, 6.27300, 6.13000, 5.87100, 5.51600, 5.08100, 4.58100, 4.03200, 3.44500, 2.83600, 2.21700, 1.60400, 1.01300, 0.46700, 0.00000

14540 DATA 0.00000, 0.75867, 0.69212, 0.60715, 0.48892, 0.36561, 0.29028, 0.23515, 0.15508, 0.09693, 0.05156, 0.01482, -.01554, -.04086, -.06201, -.07958, -.09395, -.10539, -.11406, -.12003, -.12329, -.12371, -.12099, -.11455, -.10301, -.07958

14550 DATA 0.00000, 0.44000, 0.61600, 0.93300, 1.60800, 2.68900, 3.55100, 4.25300, 5.26100, 5.90500, 6.28200, 6.44900, 6.44300, 6.29600, 6.02900, 5.66400, 5.21800, 4.70600, 4.14200, 3.54100, 2.91600, 2.28100, 1.65200, 1.04500, 0.48200, 0.00000

14560 DATA 0.00000, 0.73441, 0.67479, 0.59896, 0.49366, 0.38235, 0.31067, 0.25057, 0.16087, 0.09981, 0.05281, 0.01498, -.01617, -.04210, -.06373, -.08168, -.09637, -.10806, -.11694, -.12307, -.12644, -.12693, -.12425, -.11781, -.10620, -.08258

14570 DATA 0.00000, 0.41400, 0.58100, 0.88200, 1.53000, 2.58300, 3.44300, 4.16900, 5.31700, 6.11700, 6.57200, 6.77700, 6.78900, 6.64600, 6.37300, 5.99400, 5.52700, 4.98900, 4.39600, 3.76200, 3.10200, 2.43100, 1.76400, 1.11900, 0.51800, 0.00000

14580 DATA 0.00000, 0.69492, 0.64047, 0.57135, 0.47592, 0.37661, 0.31487, 0.26803, 0.19373, 0.12405, 0.06345, 0.02030, -.01418, -.04246, -.06588, -.08522, -.10101, -.11359, -.12317, -.12985, -.13363, -.13440, -.13186, -.12541, -.11361, -.08941

14590 DATA 0.00000, 0.38900, 0.54600, 0.83200, 1.44800, 2.45800, 3.29300, 4.00800, 5.17200, 6.05200, 6.68500, 7.07200, 7.17500, 7.07400, 6.81600, 6.43300, 5.94900, 5.38300, 4.75300, 4.07600, 3.36800, 2.64500, 1.92400, 1.22400, 0.57000, 0.00000

14600 DATA 0.00000, 0.65536, 0.60524, 0.54158, 0.45399, 0.36344, 0.30780, 0.26621, 0.20246, 0.15068, 0.10278, 0.04833, -.00205, -.03710, -.06492, -.08746, -.10567, -.12014, -.13119, -.13901, -.14365, -.14500, -.14279, -.13638, -.12430, -.09907

14610 DATA 0.00000, 0.36600, 0.51400, 0.78400, 1.36700, 2.33000, 3.13100, 3.82400, 4.96800, 5.86200, 6.54600, 7.03900, 7.34300, 7.43900, 7.27500, 6.92900, 6.44900, 5.86400, 5.19900, 4.47500, 3.70900, 2.92200, 2.13200, 1.36100, 0.63600, 0.00000

14620 DATA 0.00000, 0.61759, 0.57105, 0.51210, 0.43106, 0.34764, 0.29671, 0.25892, 0.20185, 0.15682, 0.11733, 0.07988, 0.04136, -.00721, -.05321, -.08380, -.10734, -.12567, -.13962, -.14963, -.15589, -.15837, -.15683, -.15062, -.13816, -.11138

14630 DATA 0.00000, 0.34500, 0.48500, 0.73500, 1.29500, 2.20500, 2.97000, 3.63000, 4.74000, 5.62000, 6.31000, 6.84000, 7.21500, 7.43000, 7.49000, 7.35000, 6.96500, 6.40500, 5.72500, 4.95500, 4.13000, 3.26500, 2.39500, 1.53500, 0.72000, 0.00000

14640 DATA 0.00000, 0.58195, 0.53855, 0.48360, 0.40815, 0.33070, 0.28365, 0.24890, 0.19690, 0.15650, 0.12180, 0.09000, 0.05930, 0.02800, -.00630, -.05305, -.09765, -.12550, -.14570, -.16015, -.16960, -.17435, -.17415, -.16850, -.15565, -.12660

14650 DATA 0.00000, 0.32500, 0.45500, 0.69500, 1.22000, 2.08000, 2.80500, 3.43500, 4.49500, 5.34500, 6.03500, 6.57000, 6.96500, 7.23500, 7.37000, 7.37000, 7.22000, 6.88000, 6.27500, 5.50500, 4.63000, 3.69500, 2.72000, 1.75500, 0.82500, 0.00000

14660 DATA 0.00000, 0.54825, 0.50760, 0.45615, 0.38555, 0.31325, 0.26950, 0.23730, 0.18935, 0.15210, 0.12125, 0.09310, 0.06660, 0.04060, 0.01405, -.01435, -.04700, -.09470, -.14015, -.16595, -.18270, -.19225, -.19515, -.19095, -.17790, -.14550

14670 DATA 0.00000, 0.30500, 0.42500, 0.65500, 1.16000, 1.95500, 2.64500, 3.24000, 4.24500, 5.06000, 5.71500, 6.24000, 6.63500, 6.92500, 7.09500, 7.15500, 7.09000, 6.90000, 6.56500, 6.03000, 5.20500, 4.21500, 3.14000, 2.03500, 0.96500, 0.00000

14680 DATA 0.00000, 0.51620, 0.47795, 0.42960, 0.36325, 0.29545, 0.25450, 0.22445, 0.17995, 0.14595, 0.11740, 0.09200, 0.06840, 0.04570, 0.02315, 0.00000, -.02455, -.05185, -.08475, -.13650, -.18510, -.20855, -.21955, -.21960, -.20725, -.16985

14690 DATA 0.00000, 0.28700, 0.40400, 0.61600, 1.07700, 1.84100, 2.48300, 3.04300, 3.98500, 4.74800, 5.36700, 5.86300, 6.24800, 6.52800, 6.70900, 6.79000, 6.77000, 6.64400, 6.40500, 6.03700, 5.51400, 4.77100, 3.68300, 2.43500, 1.16300, 0.00000

14700 DATA 0.00000, 0.48535, 0.44925, 0.40359, 0.34104, 0.27718, 0.23868, 0.21050, 0.16892, 0.13734, 0.11101, 0.08775, 0.06634, 0.04601, 0.02613, 0.00620, -.01433, -.03611, -.06010, -.08790, -.12311, -.18412, -.23921, -.25583, -.24904, -.20385

14710 DATA 0.00000, 0.26900, 0.37900, 0.57700, 1.00800, 1.72000, 2.31600, 2.83500, 3.70700, 4.41000, 4.98000, 5.43500, 5.78700, 6.04500, 6.21200, 6.29000, 6.27900, 6.17800, 5.98100, 5.68100, 5.26500, 4.71400, 3.98700, 2.98400, 1.50300, 0.00000

14720 DATA 0.00000, 0.45482, 0.42064, 0.37740, 0.31821, 0.25786, 0.22153, 0.19500, 0.15595, 0.12644, 0.10196, 0.08047, 0.06084, 0.04234, 0.02447, 0.00678, -.01111, -.02965, -.04938, -.07103, -.09583, -.12605, -.16727, -.25204, -.31463, -.26086

14730 DATA 0.00000, 0.25000, 0.35000, 0.53500, 0.93000, 1.58000, 2.12000, 2.58500, 3.36500, 3.98000, 4.47500, 4.86000, 5.15000, 5.35500, 5.47500, 5.51500, 5.47500, 5.35500, 5.15000, 4.86000, 4.47500, 3.98000, 3.36500, 2.58500, 1.58000, 0.00000

14740 DATA 0.00000, 0.42120, 0.38875, 0.34770, 0.29155, 0.23430, 0.19995, 0.17485, 0.13805, 0.11030, 0.08745, 0.06745, 0.04925, 0.03225, 0.01595, 0.00000, -.01595, -.03225, -.04925, -.06745, -.08745, -.11030, -.13805, -.17485, -.23430, 0.00000

14750 'NACA 6A SERIES CAMBER LINES AND DERIVATIVES

14760 DATA 0.00000, 0.28100, 0.39600, 0.60300, 1.05500, 1.80300, 2.43200, 2.98100, 3.90300, 4.65100, 5.25700, 5.74200, 6.12000, 6.39400, 6.57100, 6.65100, 6.63100, 6.50800, 6.27400, 5.91300, 5.40100, 4.67300, 3.60700, 2.45200, 1.22600, 0.00000

14770 DATA 0.00000, 0.47539, 0.44004, 0.39531, 0.33404, 0.27149, 0.23378, 0.20618, 0.16546, 0.13452, 0.10873, 0.08595, 0.06498, 0.04507, 0.02559, 0.00607, -.01404, -.03537, -.05887, -.08610, -.12058, -.18034, -.23430, -.24521, -.24521, 0.00000

14780 '

14790 '-----------------------------------------------------------------

14800 'MONOTONE SPLINE SUBROUTINE

14810 'HOST MUST DIMENSION ENDSLP(2), DYDX(2)

14820 'IF ONLY ONE POINT IS IN SET, RETURN THAT VALUE

14830 IF N = 1 THEN

14840  XD = XI(1)

14850  YD = YI(1)

14860  GOTO 15420

14870 END IF

14880 'FIND POINTS IN SET THAT BOUND XD VIA BINARY SEARCH

14890 LOWLIM = 1: UPPLIM = N

14900 WHILE UPPLIM - LOWLIM > 1

14910  TSTLCN = (UPPLIM + LOWLIM) \ 2

14920  IF XI(TSTLCN) > XD THEN

14930    UPPLIM = TSTLCN

14940   ELSE

14950    LOWLIM = TSTLCN

14960  END IF

14970  IF XI(LOWLIM) = XD THEN YD = YI(LOWLIM): GOTO 15420

14980 WEND

14990 IF LOWLIM = N THEN LOWLIM = N - 1

15000 UPPLIM = LOWLIM + 1

15010 'CALC LINEAR INTERPOLANT

15020 LNSLP = (YI(UPPLIM) - YI(LOWLIM)) / (XI(UPPLIM) - XI(LOWLIM))

15030 YLINR = LNSLP * (XD - XI(LOWLIM)) + YI(LOWLIM)

15040 'CALC END SLOPES

15050 PTBFR = LOWLIM

15060 WHCHEND = 1

15070 FOR SGMN = 1 TO 2

15080  IF PTBFR > 1 AND PTBFR < N - 1 THEN

15090    PNT1 = PTBFR - 1

15100   ELSEIF PTBFR > N - 2 THEN

15110    PNT1 = N - 2

15120   ELSE

15130    PNT1 = 1

15140    WHCHEND = 0

15150  END IF

15160  PNT2 = PNT1 + 1

15170  PNT3 = PNT1 + 2

15180  DELTX1 = XI(PNT1) - XI(PNT2)

15190  DELTX2 = XI(PNT3) - XI(PNT2)

15200  DELTY1 = YI(PNT1) - YI(PNT2)

15210  DELTY2 = YI(PNT3) - YI(PNT2)

15220  KNST = (DELTY1 * DELTX2 / DELTX1 - DELTY2 * DELTX1 / DELTX2) / (DELTX2 - DELTX1)

15230  CFCNT = (DELTY1 / DELTX1 - DELTY2 / DELTX2) / (DELTX1 - DELTX2)

15240  ENDSLP(SGMN) = KNST - 2 * CFCNT * XI(PNT2) + 2 * CFCNT * XI(PTBFR)

15250  PTBFR = PTBFR + 1

15260  IF WHCHEND > 0 THEN PNT1 = PNT1 + 1

15270 NEXT SGMN

15280 'FIND DIST END SLOPES PUT POINT ABOVE LINEAR

15290 FOR SGMN = 1 TO 2

15300  PTBFR = LOWLIM + SGMN - 1

15310  DYDX(SGMN) = ENDSLP(SGMN) * (XD - XI(PTBFR)) + YI(PTBFR) - YLINR

15320 NEXT SGMN

15330 'TEST FOR ABOVE, BELOW OR ON LINEAR AND PRODUCE YD

15340 POSN = DYDX(1) * DYDX(2)

15350 IF POSN = 0 THEN

15360   YD = YLINR

15370  ELSEIF POSN > 0 THEN

15380   YD = YLINR + POSN / (DYDX(1) + DYDX(2))

15390  ELSE

15400   YD = YLINR + (POSN * (2 * XD - XI(LOWLIM) - XI(UPPLIM))) / ((DYDX(1) - DYDX(2)) * (XI(UPPLIM) - XI(LOWLIM)))

15410 END IF

15420 RETURN

15430 '-----------------------------------------------------------------

15440 ' TRANSITION AND ROUGHNESS SUMMARY

15450 PRINT

15460 PRINT " Available Transition Options"

15470 PRINT "  1) Transition At Laminar Separation"

15480 PRINT "  2) Fixed Transition"

15490 PRINT "  3) Natural Transtion"

15500 PRINT "  4) Transition With Roughness Factor"

15510 PRINT

15520 PRINT " Available Roughness Levels Are 0 To 6"

15530 PRINT "  0 = Clean Surface"

15540 PRINT "  2 = Dirty Surface"

15550 PRINT "  4 = Excessively Dirty Surface"

15560 PRINT "  6 = Severely Wavy Surface"

15570 PRINT

15580 RETURN

15590 '-----------------------------------------------------------------

15600 'SET INPUT LIMITS SUBROUTINE

15610 PRINT

15620 PRINT " Input Point Limits Are "

15630 PRINT "  1) Number Of Computational Points ="; NP

15640 PRINT "  2) Number Of Points On The Airfoil ="; MPTS

15650 PRINT

15660 INPUT " Input Limit To Be Changed (0=None)[0]"; LCH

15670 ON LCH + 1 GOTO 15750, 15690, 15720

15680 GOTO 15660

15690 PRINT

15700 INPUT "  Enter New Number Of Computational Points"; NP

15710 GOTO 15650

15720 PRINT

15730 INPUT " Enter New Limit On Number Of Points On The Airfoil ="; MPTS

15740 GOTO 15650

15750 CLS : PRINT

15760 RETURN