I figured out how to trim a little more space out of naca.bas and hence, get it to compile again in QuickBasic. The source and executable are attached. This code now has all of the thickness forms for the 6A series up through 21%. The last version, 4.4, only had 6A thickness forms up to 15%. This release should replace the one on the web page. Knowing the video problem you had and the module size limitations I am running into, I guarentee the next version of NACA will be a VisualBasic program! ------------------------------------------------------------------- David Lednicer | "Applied Computational Fluid Dynamics" Analytical Methods, Inc. | email: dave@amiwest.com 2133 152nd Ave NE | tel: (425) 643-9090 Redmond, WA 98052 USA | fax: (425) 746-1299 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 Attachment Converted: "d:\net\eudora\attach\naca.exe"