REM *************************************************************** REM * * REM * GEOMETRY FOR AERODYNAMICS, BY W.H. MASON * REM * AEROCAL, BOX 799, HUNTINGTON, NY 11743 * REM * now: Box 11850, Blacksburg, VA 24062-1850 and * REM * Department of Aerospace and Ocean Engineering * REM * Virginia Tech, Blacksburg, VA, 24062 * REM * contact: mason@aoe.vt.edu * REM * see also: http://www.aoe.vt.edu/ * REM * * REM * APPLESOFT VERSION FOR APPLE ][ SERIES COMPUTERS * REM * RELEASE 1.2 LAST MOD: JANUARY 4, 1987 * REM * * REM * PORTED WITH MINIMUM MODS TO MAC COMPUTER FOR USE * REM * WITH QuickBASIC and no print out capability - FEBRUARY 1990 * REM * last mod: June 20, 1993 (minor for web, Oct 16, 1997 * REM *************************************************************** PI = 3.14159265#:AP = 1 CALL TEXTFONT(4) DEF FN ACOS(x) = - ATN (x / SQR ( - x * x + 1)) + .5 * PI DEF FN ASIN(x) = ATN (x / SQR ( - x * x + 1)) DIM x(36),y(36),yl(26),xl(26),yt(26),xt(26),XC(131) 20 PRINT : PRINT NA$ = " AEROCAL - Pak #2": GOSUB 5000: PRINT NA$ = " Basic Geometry for Aerodynamics": GOSUB 5000: PRINT NA$ = " by W.H. Mason": GOSUB 5000: PRINT : PRINT NA$ = "Apple ][ Computer Version, Release: 1.2": GOSUB 5000: PRINT : PRINT NA$ = " Copyright 1985 by AEROCAL": GOSUB 5000: PRINT NA$ = " Box 799, Huntington, NY 11743, Now:": GOSUB 5000: PRINT NA$ = "Department of Aerospace and Ocean Engineering":GOSUB 5000 : PRINT NA$ = " Virginia Tech, Blacksburg, VA": GOSUB 5000: PRINT: NA$ = " see us at: http://www.aoe.vt.edu/": GOSUB 5000: PRINT: PRINT NA$ = " PROGRAMS :": GOSUB 5000: PRINT : PRINT NA$ = " 1 Planform Analysis": GOSUB 5000: PRINT NA$ = " 2 Bodies of Revolution ": GOSUB 5000: PRINT NA$ = " A slight worry, the 2nd derivative": GOSUB 5000: PRINT NA$ = " of the area distribution for bodies": GOSUB 5000: PRINT NA$ = " of revolution may produce an error,": GOSUB 5000: PRINT NA$ = " but rarely (a long story)": GOSUB 5000: PRINT NA$ = " 3 NACA Airfoil Ordinates": GOSUB 5000: PRINT NA$ = " (FOILGEN came from this program)": GOSUB 5000: PRINT NA$ = " 4 -Exit ": GOSUB 5000: PRINT:PRINT 110 NA$ = " Select Pgm. No. = ": GOSUB 5000: INPUT AN$: PRINT NA$ = " Program No. " + AN$ + " (Y/N) ? :": GOSUB 5000: INPUT AC$ PRINT : IF AC$ = "N" OR AC$ = "n" THEN 110 PG = VAL (AN$): IF PG < > 4 THEN 180 PRINT END 180 PRINT : ON PG GOSUB 200,800,1600 GOTO 20: REM * RETURN TO MAIN MENU REM REM PLANFORM ANALYSIS REM 200 N = 7 201 x(1) = 0!:y(1) = 0! 202 x(2) = 59.561:y(2) = 86.25 203 x(3) = 69:y(3) = 72.83 204 x(4) = 48.821:y(4) = 44.1 205 x(5) = 63.955:y(5) = 22.702 206 x(6) = 57.12:y(6) = 12.368 207 x(7) = 66.234:y(7) = 0 208 x(8) = 545!:y(8) = 150! 209 x(9) = 698!:y(9) = 249.5 210 x(10) = 762!:y(10) = 249.5 211 x(11) = 711!:y(11) = 150! 212 x(12) = 695!:y(12) = 110! 213 x(13) = 695!:y(13) = 75! 214 x(14) = 780!:y(14) = 75! 215 x(15) = 780!:y(15) = 35! 216 x(16) = 888!:y(16) = 10! 217 x(17) = 888!:y(17) = 0! 218 x(18) = 0!:y(18) = 0! 219 x(19) = 0!:y(19) = 0! 220 x(20) = 0!:y(20) = 0! PRINT TAB(25);: PRINT " Planform analysis": PRINT PRINT TAB(25);: PRINT " Have you entered your data (Y/N): ";: INPUT AC$ PRINT : IF AC$ = "Y" OR AC$ = "y" THEN 300 PRINT TAB(25);:PRINT " Program will stop - enter data as described & rerun": PRINT: GOSUB 4600: GOSUB 4000: END 300 NA$ = " Two options are available:": GOSUB 5000 NA$ = " 1: the Entire Planform Program - includes the fuselage,": GOSUB 5000 NA$ = " tails and/or canard, and gives the total area and centroid": GOSUB 5000 NA$ = " 2: the Isolated Wing Program - provides detailed properties": GOSUB 5000 NA$ = " for a single wing planform": GOSUB 5000 NA$ = " Select the Entire Planform Pgm(1) or the Isolated Wing Pgm(2) (1/2):": GOSUB 5000 INPUT AC$: PRINT IF AC$ = "2" THEN 400 REM * PLANFORM PROGRAM PRINT :NA$ = " Total Planform Area Program" GOSUB 5000: PRINT : PRINT IF AN$ = "N" OR AN$ = "n" THEN 370 PRINT NB$;:NA$ = " Input Case Title:": GOSUB 5000 INPUT " ";NT$: PRINT :NA$ = " Planform Points," GOSUB 5000: PRINT " N=";N:PRINT FOR ii = 1 TO N PRINT TAB(25);:PRINT USING " Y(##) = #####.## X(##) = #####.##";ii,y(ii),ii,x(ii) NEXT ii PRINT 370 x(N + 1) = 0!:y(N + 1) = 0:s = 0:XC = 0 FOR i = 1 TO N:s = s + (y(i + 1) + y(i)) * (x(i + 1) - x(i)) XC = XC + (x(i + 1) ^ 2 + x(i) ^ 2 + x(i + 1) * x(i)) * (y(i + 1) - y(i)) NEXT i PRINT TAB(25);:PRINT USING " Planform Area, S = #######.###"; s PRINT TAB(25);:PRINT USING " X Centroid of Area, XC = ####.##"; - XC / 3 / s GOSUB 4000: RETURN REM WING PROGRAM 400 LM = 2:TM = 3 401 yl(1) = 0!:xl(1) = 0! 402 yl(2) = 15:xl(2) = 11.72 403 yl(3) = 46.182:xl(3) = 179.19 404 yl(4) = 81.9:xl(4) = 221.783 501 yt(1) = 0!:xt(1) = 12.56 502 yt(2)=6.96:xt(2)= 18 503 yt(3)=15:xt(3)= 11.72 503 yt(4)=15:xt(4)= 11.72 NA$ = " Planform Properties: " GOSUB 5000: PRINT GOSUB 4100 PRINT IF AN$ = "N" THEN 600 NA$ = " Input Case Title:": GOSUB 5000 PRINT : PRINT TAB(25);: INPUT " ";NT$: PRINT PRINT NB$;:NA$ = " Planform Points": GOSUB 5000 PRINT : PRINT TAB(25);:NA$ = " Leading Edge, LM=": GOSUB 5000 PRINT LM: PRINT :FT$ = "F10.4" FOR ii = 1 TO LM PRINT TAB(25); PRINT USING " Y(##) = #####.## X(##) = #####.##";ii,yl(ii),ii,xl(ii) NEXT ii: PRINT : PRINT NB$;:NA$ = " Trailing Edge, TM=" GOSUB 5000: PRINT TM: PRINT FOR ii = 1 TO TM PRINT TAB(25); PRINT USING " Y(##) = #####.## X(##) = #####.##";ii,yt(ii),ii,xt(ii) NEXT ii PRINT 600 NA$ = " Computing Integral Quantities: ": GOSUB 5000 PRINT :BB = yt(TM): IF yl(LM) > BB THEN BB = yl(LM) i1 = 0:I2 = 0:I3 = 0:i4 = 0:i5 = 0:N = 20:DS = BB / N:IL = 1:IT = 1 FOR ii = 0 TO N:Q = 1: IF ii = 0 OR ii = N THEN Q = .5 y = ii * DS: GOSUB 720: GOSUB 760:C = xb - xf IF ii = 0 THEN CR = C IF ii = N THEN CT = C i1 = i1 + Q * C:I2 = I2 + Q * C ^ 2:I3 = I3 + Q * (C * xf + C ^ 2 / 2) i4 = i4 + Q * y * C:i5 = i5 + Q * C * xf NEXT ii i1 = 2 * DS * i1:Q = 2 * DS / i1:I2 = Q * I2:I3 = Q * I3:i4 = Q * i4 i5 = Q * i5:AR = (2 * y) ^ 2 / i1:CA = i1 / (2 * y) TP = CT / CR: PRINT PRINT TAB(25);: PRINT USING " Planform Area = ######.##";i1 PRINT TAB(25);: PRINT USING " Mean Aerodynamic Chord = ####.##";I2 PRINT TAB(25);: PRINT USING " X-Centroid = ####.##";I3 PRINT TAB(25);: PRINT USING " Spanwise position of MAC = ####.##";i4 PRINT TAB(25);: PRINT USING " X-Leading Edge of MAC = #####.##";i5 PRINT TAB(25);: PRINT USING " Quarter Chord of MAC = ####.##";i5 + I2/4 PRINT TAB(25);: PRINT USING " Aspect Ratio = ####.###";AR PRINT TAB(25);: PRINT USING " Average Chord = ####.##";CA PRINT TAB(25);: PRINT USING " Taper Ratio = ####.###";TP GOSUB 4000 : PRINT NA$ = "Do you want LE/TE and Sweep? (Y/N) :": GOSUB 5000: INPUT AN$ IF AN$ = "N" OR AN$ = "n" THEN RETURN REM * POINT BY POINT INTERPOLATION, WITH SWEEP PRINT: NA$ = " Local Planform Properties":GOSUB 5000 PRINT 692 PRINT : PRINT TAB(25);: INPUT " Input span location, Y=";y PRINT :PRINT TAB(25);: PRINT USING " eta = #.###";y / BB GOSUB 720: GOSUB 760: PRINT PRINT TAB(25); PRINT USING " X-le= ####.## sweep = ###.### deg.";xf,180 / PI * ATN (SL) PRINT TAB(25); PRINT USING " X-te= ####.## sweep = ###.### deg.";xb,180 / PI * ATN (ST) GOSUB 4500: PRINT : IF AN$ = "Y" OR AN$ = "y" THEN GOTO 692 RETURN REM * LINEAR INTERPOLATION FOR LEADING EDGE 720 D2 = y - yl(IL): IF D2 > 0 THEN 736 IF D2 = 0 THEN 742 726 IF IL = 1 THEN 742 IL = IL - 1:D2 = y - yl(IL) IF D2 < 0 THEN 726 IF D2 > = 0 THEN 742 734 IL = IL + 1:D2 = D1 736 IF IL = LM - 1 THEN 742 D1 = y - yl(IL + 1) IF D1 > = 0 THEN 734 742 SL = (xl(IL + 1) - xl(IL)) / (yl(IL + 1) - yl(IL)) xf = xl(IL) + SL * (y - yl(IL)) RETURN REM * LINEAR INTERPOLATION FOR TRAILING EDGE 760 D4 = y - yt(IT): IF D4 > 0 THEN 776 IF D4 = 0 THEN 782 766 IF IT = 1 THEN 782 IT = IT - 1:D4 = y - yt(IT) IF D4 < 0 THEN 766 IF D4 > = 0 THEN 782 774 IT = IT + 1:D4 = D3 776 IF IT = TM - 1 THEN 782 D3 = y - yt(IT + 1) IF D3 > = 0 THEN 774 782 ST = (xt(IT + 1) - xt(IT)) / (yt(IT + 1) - yt(IT)) xb = xt(IT) + ST * (y - yt(IT)) RETURN REM * BODIES OF REVOLUTION 800 NA$ = " Bodies of Revolution ": GOSUB 5000: PRINT GOSUB 4100 PRINT NA$ = " Body options are:": GOSUB 5000: PRINT NA$ = " 1 Tangent/Secant Ogive-Cylinder": GOSUB 5000: PRINT NA$ = " 2 von Karman Ogive ": GOSUB 5000: PRINT NA$ = " 3 Sears-Haack Body": GOSUB 5000: PRINT NA$ = " 4 Haack-Adams Bodies": GOSUB 5000: PRINT NA$ = " 5 -Exit ": GOSUB 5000: PRINT : PRINT NA$ = " Select body type : ": GOSUB 5000: INPUT AN$: PRINT NA$ = " Body No. = ": GOSUB 5000: PRINT AN$;" (Y/N) ? : ";: INPUT AC$ PRINT : IF AC$ = "N" OR AC$ = "n" THEN 800 PG = VAL (AN$): IF PG = 5 THEN RETURN REM * SET-UP INPUT VALUES ON PG GOSUB 900,960,1020,1080 REM * SELECT TYPE OF OUTPUT GOSUB 3700: IF AN$ = "2" THEN 878 REM * SINGLE POINT OUTPUT 862 PRINT :NA$ = " Input X/L=": GOSUB 5000: INPUT "";x GOSUB 1400 PRINT : PRINT TAB(25);: PRINT USING " R/L = ##.####";r PRINT TAB(25);: PRINT USING " DR/DX = ###.####"; r1 PRINT TAB(25);: PRINT USING " D2R/DX2 = ####.###"; r2 PRINT TAB(25);: PRINT USING " S/L = ######.##" ; s PRINT TAB(25);: PRINT USING " DS/DX = ######.###";s1 PRINT TAB(25);: PRINT USING " D2S/DX2 = ######.##";s2 PRINT : PRINT: NA$ = " Another X/L ? (Y/N) :": GOSUB 5000: INPUT AN$ IF AN$ = "Y" OR AN$ = "y" THEN GOTO 862 PRINT : RETURN REM * SELECT TYPE OF DISTRIBUTED OUTPUT 878 GOSUB 3800 NE$ = " I X/L R/L DR/DX D2R/DX2" NB$ = " S/L^2 DS/DX D2S/DX2" REM * TABLE OUTPUT ROUTINE REM * REM * INPUT VARIABLES; REM * REM * AP = 0 OR 1, OUTPUT TO PRINTER IF 1 REM * IM - NO. OF VALUES IN TABLE REM * NA$,NC$ - HEADINGS, 1ST 40 & 2ND 40 COL PAGE REM * NB$ - 2ND 40 COL. OF 80 COL DISPLAY REM * REM * INTERNAL VARIABLES ; I,J,JM PRINT :i = 0 JM = 16: IF AP = 1 THEN JM = IM 882 PRINT NE$;NB$ FOR J = 0 TO JM i = i + 1 x = XC(i) GOSUB 1400 PRINT USING " ### #.#### ##.###### ###.######";i,x,r,r1; PRINT USING " ###.###### ###.###### ###.###### ###.######";r2,s,s1,s2 IF i > = IM THEN 886 NEXT J PRINT NE$;NB$ GOSUB 4000: GOTO 882 886 PRINT NE$;NB$ IF AP = 0 THEN GOSUB 4000 RETURN REM * COMPUTE INTEGRAL QUANTITIES 890 GOSUB 1300: RETURN REM * SETUP TANGENT/SECANT OGIVES 900 PRINT :NA$ = " Tangent or Secant Ogive Bodies": GOSUB 5000 PRINT : PRINT :NA$ = " Input R0/L =": GOSUB 5000: INPUT "";R0: PRINT NA$ = " Choose: ": GOSUB 5000: PRINT : PRINT NA$ = " 1 - Tangent Ogive": GOSUB 5000: PRINT NA$ = " 2 - Secant Ogive": GOSUB 5000: PRINT : PRINT NA$ = " Select 1 or 2 : ": GOSUB 5000: INPUT AB$ PRINT :DR = 0: IF AB$ = "2" THEN 940 NA$ = " To enter the - nose angle, type 1": GOSUB 5000: PRINT NA$ = " nose length,type 2 : ": GOSUB 5000 INPUT AN$: PRINT : IF AN$ = "2" THEN 934 NA$ = " Enter the nose half angle : ": GOSUB 5000: INPUT "";dn xn = R0 * SIN (dn * PI / 180) / (1 - COS (dn * PI / 180)): GOTO 938 934 NA$ = " Enter the nose length, XN/L=": GOSUB 5000: INPUT "";xn dn = 180 / PI * FN ACOS(((xn / R0) ^ 2 - 1) / ((xn / R0) ^ 2 + 1)) 938 PRINT :PRINT TAB(25); PRINT USING " XN/L= ##.##### DN(deg)= ##.###";xn,dn GOSUB 4000: GOTO 952 940 NA$ = " Input nose angle : ": GOSUB 5000: INPUT "";dn NA$ = " Input body intersection angle : ": GOSUB 5000: INPUT "";DR xn = R0 * ( SIN (PI / 180 * dn) - SIN (PI / 180 * DR)) / ( COS (PI / 180 * DR) - COS (PI / 180 * dn)) PRINT :NA$ = " Nose angle, DN=": GOSUB 5000: PRINT dn NA$ = " Body intersection angle, DR=": GOSUB 5000: PRINT DR PRINT TAB(25); PRINT USING " Required Nose length, XN/L = #.#####";xn GOSUB 4000 952 A = R0 * COS (PI / 180 * dn) / ( COS (PI / 180 * DR) - COS (PI / 180 * dn)) B = 2 * R0 * SIN (PI / 180 * dn) / ( COS (PI / 180 * DR) - COS (PI / 180 * dn)) RETURN REM * SETUP VON KARMAN OGIVE 960 PRINT :NA$ = " von Karman Ogive ": GOSUB 5000: PRINT 962 PRINT :NA$ = " Options for input are:": GOSUB 5000: PRINT : PRINT 964 NA$ = " 1 - Enter the nose ratio": GOSUB 5000: PRINT 966 NA$ = " 2 - Ogive length and base area": GOSUB 5000: PRINT 968 PRINT :NA$ = " Select 1 or 2 : ": GOSUB 5000 970 INPUT AN$: IF AN$ = "2" THEN GOTO 980 972 PRINT :NA$ = " Input RB/XN=": GOSUB 5000: INPUT "";RX 976 NA$ = " XN/L =": GOSUB 5000: INPUT "";xn:R0 = xn * RX 978 SB = PI * R0 ^ 2: RETURN 980 PRINT :NA$ = " Input length, L=": GOSUB 5000: INPUT "";L 984 NA$ = " Base area, SB=": GOSUB 5000: INPUT "";SD:xn = 1 986 SB = SD / L ^ 2:R0 = SQR (SB / PI): RETURN 1019 REM * SET-UP SEARS-HAACK BODIES 1020 PRINT : PRINT :NA$ = " Sears-Haack Body": GOSUB 5000: PRINT 1022 PRINT :NA$ = " Input choices are:": GOSUB 5000: PRINT : PRINT 1024 NA$ = " 1 - Length and Volume": GOSUB 5000: PRINT 1026 NA$ = " 2 - Fineness ratio, and then either": GOSUB 5000: PRINT 1028 NA$ = " the Length or Volume": GOSUB 5000: PRINT : PRINT 1030 NA$ = " Select 1 or 2 : ": GOSUB 5000 1032 INPUT AN$: IF AN$ = "2" THEN GOTO 1045 1034 PRINT :NA$ = " Input L=": GOSUB 5000: INPUT "";L 1036 NA$ = " V=": GOSUB 5000: INPUT "";V 1038 F = SQR (3 * PI ^ 2 / 64 * L ^ 3 / V): PRINT TAB(25);:PRINT " F=";F: PRINT 1040 NA$ = " Is this acceptable? (Y/N) : ": GOSUB 5000: INPUT AN$ 1042 IF AN$ = "N" OR AN$ = "n" THEN GOTO 1034 1044 RETURN 1045 PRINT :NA$ = " Enter fineness ratio, F=": GOSUB 5000: INPUT "";F 1046 PRINT :NA$ = " To input the length, type 1, or ": GOSUB 5000: PRINT 1048 NA$ = " To input the volume, type 2 : ": GOSUB 5000 1050 INPUT AN$: IF AN$ = "2" THEN 1058 1052 NA$ = " Input the length, L=": GOSUB 5000: INPUT "";L 1054 V = 3 * PI ^ 2 / 64 * L ^ 3 / F ^ 2 1055 PRINT TAB(25);: PRINT USING " V = #.####^^^^";V 1056 GOSUB 4000: RETURN 1058 NA$ = " Input the volume, V=": GOSUB 5000: INPUT "";V 1060 L = (V * 64 / 3 / PI ^ 2 * F ^ 2) ^ (1 / 3) 1065 PRINT TAB(25);: PRINT USING " L = #######.###";L 1070 GOSUB 4000: RETURN 1079 REM * SET-UP HAACK ADAMS BODIES 1080 PRINT :NA$ = " Haack-Adams Bodies": GOSUB 5000: PRINT 1084 PRINT :NA$ = " Input base area, SB/L^2=": GOSUB 5000 1086 INPUT "";SB:B = 4 * SB 1088 PRINT :NA$ = " Select case:": GOSUB 5000: PRINT : PRINT 1090 NA$ = " 1 - Contour passing through a": GOSUB 5000: PRINT 1092 NA$ = " specifically located radius": GOSUB 5000: PRINT 1094 NA$ = " 2 - Given maximum area": GOSUB 5000: PRINT 1096 NA$ = " 3 - Given volume": GOSUB 5000: PRINT : PRINT 1100 NA$ = " Case = ": GOSUB 5000: INPUT AN$: PRINT 1104 NA$ = " Body No.=": GOSUB 5000: PRINT AN$;" (Y/N) ?:";: INPUT AC$ 1108 PRINT : IF AC$ = "N" OR AC$ = "n" THEN 1088 1112 CK = VAL (AN$): ON CK GOTO 1114,1132,1156 1114 NA$ = " Input:": GOSUB 5000: PRINT : PRINT 1116 NA$ = " Value of specified radius :": GOSUB 5000: INPUT "";RA 1120 NA$ = " Location of specified radius :": GOSUB 5000: INPUT "";CX 1124 SA = PI * RA ^ 2:C = 2 * CX - 1:A = 4 * SA: RETURN 1132 NA$ = " Input max area =": GOSUB 5000: INPUT "";SM 1136 PRINT :A = 4 * SM:C = 0:EM = 1E-08 1140 FC = PI * A / B * C - SQR (1 - C ^ 2) - C * FN ACOS( - C) 1142 FP = PI * A / B - FN ACOS( - C):CP = C - FC / FP 1144 EP = ABS (CP - C):C = CP: IF EP > EM THEN GOTO 1140 1146 CX = (1 + C) / 2 1150 PRINT TAB(25);:PRINT USING " Position of max radius, C/L = ###.####"; CX 1152 PRINT TAB(25);:PRINT USING " (in the psi coordinates) CX = ###.####";C 1154 PRINT : GOSUB 4000: RETURN 1156 NA$ = " Input volume, V/L^3 : ": GOSUB 5000: INPUT "";VB:V = 8 * VB 1160 E = 1 / 4 / (V / B - 1):EX = (1 + E) / 2:C = 0 1164 C3 = 8 / 3 * (V / B - 1): PRINT : PRINT TAB(25);:PRINT " EX =";EX GOSUB 4000: RETURN REM * COMPUTE AND PRINT INTEGRAL QUANTITIES 1300 : 1390 RETURN REM * COMPUTATION BLOCK 1400 ON PG GOTO 1410,1440,1470,1500 REM * TANGENT/SECANT OGIVE 1410 r = R0:r1 = 0:r2 = 0:s = PI * r * r:s1 = 0:s2 = 0 IF x > xn THEN RETURN r = SQR (A * A + B * x - x * x) - A r1 = (B - 2 * x) / 2 / (r + A) r2 = - ((B - 2 * x) ^ 2 / 4 / (r + A) ^ 3 + 1 / (r + A)) s = PI * r * r s1 = 2 * PI * r * r1 s2 = 2 * PI * (r1 ^ 2 + r * r2) RETURN 1439 REM * VON KARMAN OGIVE 1440 r = R0:r1 = 0:r2 = 0:s = PI * r ^ 2:s1 = 0:s2 = 0: IF x > = xn THEN RETURN 1442 r = 0:s = 0:s1 = 99.9999:s2 = 99.9999:r1 = 99.9999:r2 = 99.999 1444 IF x = 0 THEN RETURN 1446 TH = PI: IF x > 0 THEN TH = FN ACOS(2 * x / xn - 1) 1448 s = SB * (1 - TH / PI + SIN (2 * TH) / 2 / PI):r = SQR (s / PI) 1456 s1 = 4 / PI * SB * SIN (TH) / xn:r1 = s1 / 2 / PI / r 1460 s2 = - 8 / PI * SB / TAN (TH) / xn ^ 2 1464 r2 = s2 / 2 / PI / r - r1 ^ 2 / r 1468 RETURN 1469 REM * SEARS-HAACK BODY 1470 XI = 1 - 2 * x:C1 = 1 - XI ^ 2 1474 r = 0:s = 0:r1 = 99.999:r2 = 99.999:s1 = 0:s2 = r2 1476 r = C1 ^ .75 / 2 / F:s = PI * r ^ 2: IF x = 0 OR x = 1 THEN RETURN 1478 r1 = 3 * XI / C1 * r:r2 = - ((1 / C1) * (XI * r1 + 6 * r)) 1480 s1 = 2 * PI * r * r1:s2 = 2 * PI * (r1 ^ 2 + r * r2) 1496 RETURN 1499 REM * HAACK-ADAMS BODIES 1500 XI = 2 * x - 1:C1 = 1 - XI ^ 2:C2 = 1 - C ^ 2 1502 s = 0:s1 = 0:s2 = 999.999: IF x = 0 THEN 1592 1504 s = SB:s1 = 0:s2 = 999.999: IF x = 1 THEN 1592 1506 IF ABS (XI - C) < .01 THEN GOTO 1512 1508 N = (1 - C * XI - SQR (C2 * C1)) / ABS (XI - C) 1509 A1 = SQR (C2) * XI / SQR (C1) - C:A2 = SGN (XI - C) / (XI - C) ^ 2 * (1 - C * XI - SQR (C1 * C2)):N1 = A1 / ABS (XI - C) - A2 1510 A3 = 2 * A2 / (XI - C):A2 = 2 * SGN (XI - C) * A1 / (XI - C) ^ 2:A1 = SQR (C2) / ABS (XI - C) * (1 / SQR (C1) + XI ^ 2 / C1 ^ 1.5):N2 = A1 - A2 + A3 1511 GOTO 1516 1512 E = XI - C:N = .5 / C2 * ( ABS (E) + C * SGN (E) * E ^ 2 / C2 + (1 + 4 * C ^ 2) / C2 ^ 2 * ABS (E) * E ^ 2 / 4) 1513 N1 = .5 / C2 * ( SGN (E) + 2 * C * ABS (E) / C2 + .75 * (1 + 4 * C ^ 2) / C2 ^ 2 * ABS (E) * E) 1514 N2 = 1 / C2 ^ 2 * (C * SGN (E) + .75 * (1 + 4 * C ^ 2) / C2 * ABS (E)) 1516 ON CK GOTO 1518,1560,1580 1517 REM * CASE I - GIVEN LENGTH, BASE AREA, AND SPECIFIED RADIUS 1518 C3 = PI * A / B - FN ACOS( - C) 1520 P1 = C3 * SQR (C1) * (1 - C * XI) / C2 ^ 1.5 + SQR (C1) * (XI - C) / C2 1522 P2 = (C3 - C * SQR (C2)) * (XI - C) ^ 2 / C2 ^ 2 * LOG (N) + FN ACOS( - XI) 1524 s = B / PI * (P1 + P2) / 4 1526 S3 = C3 / C2 ^ 1.5 * (C * SQR (C1) + XI * (1 - C * XI) / SQR (C1)) 1528 S4 = ( SQR (C1) - XI * (XI - C) / SQR (C1)) / C2 + 1 / SQR (C1) 1530 S5 = ( SQR (C2) * XI / SQR (C1) - C) / ABS (XI - C) - SGN (XI - C) / (XI - C) ^ 2 * (1 - C * XI - SQR (C2 * C1)) 1532 S5 = (C3 - C * SQR (C2)) / C2 ^ 2 * ((XI - C) ^ 2 / N * S5 + 2 * (XI - C) * LOG (N)) 1534 s1 = B / 2 / PI * (S4 - S3 + S5) 1536 s2 = 0 1540 S3 = - C3 / (C2 ^ 1.5) * ((1 - 3 * C * XI) / SQR (C1) + XI ^ 2 * (1 - C * XI) / (C1 ^ 1.5)) 1544 S4 = ((C - 3 * XI) / SQR (C1) - XI ^ 2 * (XI - C) / (C1 ^ 1.5)) / C2 1548 S5 = (C3 - C * SQR (C2)) / C2 ^ 2 * (4 / N * (XI - C) * N1 + 2 * LOG (N) + (XI - C) ^ 2 * (N2 / N - (N1 / N) ^ 2)) 1552 S6 = XI / C1 ^ 1.5 1554 s2 = B / PI * (S3 + S4 + S5 + S6) 1556 GOTO 1592 1559 REM * CASE II - GIVEN LENGTH, BASE AREA AND MAX AREA 1560 s = B / PI * ( SQR (C1) / C + (XI - C) ^ 2 / C / SQR (C2) * LOG (N) + FN ACOS( - XI)) / 4 1562 s1 = (1 - XI / C) / SQR (C1) + 2 * (XI - C) / C / SQR (1 - C ^ 2) * LOG (N) 1563 S3 = ( SQR (C2) * XI / SQR (C1) - C) / ABS (XI - C) 1564 S4 = (1 - C * XI - SQR (C2 * C1)) / (XI - C) ^ 2 * SGN (XI - C) 1565 S5 = (XI - C) ^ 2 / C / SQR (C2) / N * (S3 - S4) 1566 s1 = B / 2 / PI * (s1 + S5) 1568 S3 = XI * (1 - XI / C) / (C1 ^ 1.5) - 1 / C / SQR (C1) 1570 S3 = S3 + (2 * LOG (N) + 4 * (XI - C) * N1 / N + (XI - C) ^ 2 * (N2 / N - (N1 / N) ^ 2)) / C / SQR (C2) 1576 s2 = B / PI * S3 1578 GOTO 1592 1579 REM * CASE III - GIVEN LENGTH, BASE AREA, AND VOLUME 1580 s = B / PI * (C3 * C1 ^ 1.5 + XI * SQR (C1) + FN ACOS( - XI)) / 4 1582 s1 = B / 2 / PI * SQR (C1) * (2 - 3 * C3 * XI) 1584 s2 = - B / PI * (3 * C3 * SQR (C1) + (2 - 3 * C3 * XI) * XI / SQR (C1)) 1591 REM * GIVEN S,S1, AND S2; COMPUTE R, R1, AND R2 1592 r = SQR (s / PI) 1594 r1 = 0: IF r > 0 THEN r1 = s1 / (2 * PI * r) 1596 r2 = 0: IF r > 0 THEN r2 = s2 / (2 * PI * r) - r1 ^ 2 / r 1598 RETURN 1599 REM NACA AIRFOIL ORDINATES 1600 NA$ = " NACA Airfoil Ordinates": GOSUB 5000: PRINT 1606 GOSUB 4100 PRINT 1608 NA$ = " Thickness Distribution Options:": GOSUB 5000: PRINT 1610 PRINT :NA$ = " 1 - NACA 4 Digit Series": GOSUB 5000: PRINT 1615 NA$ = " 2 - NACA Modified 4 Digit Series": GOSUB 5000: PRINT 1620 PRINT :NA$ = " Select 1 or 2 : ": GOSUB 5000: INPUT AN$ 1625 PRINT :TK = VAL (AN$): IF TK = 1 OR TK = 2 THEN 1635 1630 PRINT : PRINT " ILLEGAL CHOICE, RE-ENTER": GOTO 1606 1635 NA$ = " Input Max Thickness ; T/C=": GOSUB 5000: INPUT "";MT 1637 A0 = 1.4845:A1 = .63:A2 = 1.758:A3 = 1.4215:A4 = .5075 1638 RL = 1.1019 * MT ^ 2:TA = 2 * 180 / PI * ATN (1.16925 * MT) 1640 IF TK = 1 THEN 1662 1645 PRINT :NA$ = " X/C Position of Max Thickness =": GOSUB 5000: INPUT "";MX 1650 PRINT :NA$ = " Input leading edge parameter,": GOSUB 5000: PRINT 1652 NA$ = " Choose values from 0 to 9 - ": GOSUB 5000: PRINT 1653 NA$ = " (6 is the 4 Series value) : ": GOSUB 5000: INPUT "";RE 1654 RX = RE / 6: IF RE = 9 THEN RX = 10.3923 / 6 1656 RL = 1.1019 * (RX * MT) ^ 2: GOSUB 3600 1658 TA = 360 / PI * ATN (5 * MT * D1) 1662 PRINT 1664 PRINT TAB(25);:PRINT USING " Leading Edge Radius, rle/C = #.#####"; RL 1666 PRINT TAB(25);:PRINT USING " Trailing Edge Angle is ##.## degrees";TA 1670 NA$ = " [this is the TOTAL included angle]": GOSUB 5000: PRINT 1672 GOSUB 4000 1674 NA$ = " Camber Distribution Options:": GOSUB 5000 1676 PRINT : PRINT :NA$ = " 1 - NACA 4 Digit Series": GOSUB 5000: PRINT 1678 NA$ = " 2 - NACA 5 Digit Series": GOSUB 5000: PRINT 1680 NA$ = " 3 - NACA 6 & 6A Series ": GOSUB 5000: PRINT 1684 PRINT :NA$ = " Select 1,2 or 3 : ": GOSUB 5000: INPUT AN$ 1688 PRINT :CK = VAL (AN$): IF CK = 1 OR CK = 2 OR CK = 3 THEN 1695 1690 PRINT " ILLEGAL VALUE, RE-ENTER ": GOTO 1674 1695 ON CK GOTO 1700,1720,1742 1700 NA$ = " Input Max Camber : ": GOSUB 5000: INPUT "";MC: PRINT 1705 CX = .3: IF MC = 0 THEN 1760 1710 NA$ = " Input X/C Position of Max Camber : ": GOSUB 5000: INPUT "";CX 1715 GOTO 1760 1720 PRINT :NA$ = " Input Max Camber, where": GOSUB 5000: PRINT 1724 NA$ = " the design lift is 3/2 the camber : ": GOSUB 5000: INPUT "";MC 1726 CL = 1.5 * MC:xf = .4:MM = xf: IF MC = 0 THEN 1760 1728 PRINT :NA$ = " Input X/C position of Max Camber : ": GOSUB 5000 1730 INPUT "";xf:MM = xf:EM = 1E-09 1732 F = xf - MM + MM ^ 1.5 / SQR (3):FP = SQR (3) / 2 * SQR (MM) - 1 1734 MN = MM - F / FP:EP = ABS (MN - MM):MM = MN: IF EP > EM THEN 1732 1736 C1 = (3 * MM - 7 * MM ^ 2 + 8 * MM ^ 3 - 4 * MM ^ 4) / SQR (MM * (1 - MM)) 1738 Q = C1 - 1.5 * (1 - 2 * MM) * (PI / 2 - FN ASIN(1 - 2 * MM)):K1 = 6 * CL / Q 1740 GOTO 1760 1742 PRINT :NA$ = " Design Lift Coefficient =": GOSUB 5000: INPUT "";CI 1743 A = 1: IF CI = 0 THEN 1760 1744 PRINT :NA$ = " Input X/C for constant loading, A=" 1745 GOSUB 5000: INPUT "";A 1746 AL$ = "N": IF A < > .8 THEN 1750 1748 NA$ = " 6A-series camber line ? (Y/N) :": GOSUB 5000: INPUT AL$ 1750 IF AL$ = "Y" OR AL$ = "y" THEN CI = CI / 1.0209 1754 IF A = 1 THEN 1760 1756 G = - .25: IF A > 0 THEN G = - 1 / (1 - A) * (A ^ 2 * ( LOG (A) / 2 - .25) + .25) 1758 H = (1 - A) * ( LOG (1 - A) / 2 - .25) + G:AL = CI * H / 2 / PI / (1 + A) 1759 REM * CHOOSE TYPE OF OUTPUT 1760 GOSUB 3700 1768 IF AN$ = "2" THEN 1900 1770 PRINT :NA$ = " NACA Airfoil Ordinate Values ": GOSUB 5000:PRINT 1775 PRINT : PRINT TAB(25);: INPUT " X/C = ";x: GOSUB 2400: PRINT PRINT TAB(25);:PRINT USING " YT/C = #.######";yt IF dt > = 100 THEN dt = 99.99999990000001# PRINT TAB(25);:PRINT USING " DYT/DX = #.######";dt PRINT TAB(25);:PRINT USING " D2YT/DX2 = #.######";D2 RK = (1 + dt ^ 2) ^ 1.5 / ABS (D2) PRINT TAB(25);:PRINT USING " YT-CURVATURE = #.######";RK PRINT TAB(25);:PRINT USING " YC/C = #.######";yc PRINT TAB(25);:PRINT USING " DYC/DX = #.######";dc PRINT TAB(25);:PRINT USING " THETA (DEG) = ##.###";180 * TT / PI PRINT PRINT TAB(25);: PRINT USING" XU/C= ##.####### YU/C= ##.#######";xu,yu PRINT TAB(25);: PRINT USING" XL/C= ##.####### YL/C= ##.#######";xl,yl PRINT: NA$ = " Another X/C ? (Y/N) :": GOSUB 5000: INPUT AN$: PRINT IF AN$ = "Y" OR AN$ = "y" THEN GOTO 1775 PRINT RETURN REM * SELECT AND GET X DISTRIBUTION 1900 GOSUB 3800 NE$ = " I X/C YT/C DYT/X YC/C DYC/C" NB$ = " XU/C(%) YU/C(%) XL/C(%) YL/C(%)" REM * TABLE OUTPUT ROUTINE REM * REM * INPUT VARIABLES; REM * REM * AP = 0 OR 1, OUTPUT TO PRINTER IF 1 REM * Q8 >=64 FOR 80 COL CD. REM * IM - NO. OF VALUES IN TABLE REM * NA$,NC$ - HEADINGS, 1ST 40 & 2ND 40 COL PAGE REM * NB$ - 2ND 40 COL. OF 80 COL DISPLAY REM * REM * INTERNAL VARIABLES ; I,J,JM PRINT :i = 0 JM = 16: IF AP = 1 THEN JM = IM 1920 PRINT NE$;NB$ FOR J = 0 TO JM i = i + 1 x = XC(i) GOSUB 2400 IF dt > 100! THEN dt = 99.9999 PRINT USING " ### ##.#### #.##### ###.#####";i,x,yt,dt; PRINT USING "##.##### ###.#####";yc,dc; PRINT USING " ###.#### ##.####";xu*100,yu*100; PRINT USING " ###.#### ##.####";xl*100,yl*100 IF i > = IM THEN 1940 NEXT J PRINT NE$;NB$ GOSUB 4000 GOTO 1920 1940 PRINT NE$;NB$ IF AP = 0 THEN GOSUB 4000 RETURN 2398 REM * COMPUTATION MODULE 2399 REM * CONSTRUCT THICKNESS DISTRIBUTION 2400 ON TK GOTO 2410,2420 2409 REM * NACA 4 DIGIT THICKNESS DISTRIBUTION 2410 yt = MT * (A0 * SQR (x) - A1 * x - A2 * x ^ 2 + A3 * x ^ 3 - A4 * x ^ 4) 2412 dt = 9.99E+20:D2 = dt: IF x = 0 THEN 2435 2414 dt = MT * (A0 / 2 / SQR (x) - A1 - 2 * A2 * x + 3 * A3 * x ^ 2 - 4 * A4 * x ^ 3) 2416 D2 = MT * ( - A0 / 4 * x ^ 1.5 - 2 * A2 + 6 * A3 * x - 12 * A4 * x ^ 2) 2418 GOTO 2435 2419 REM * NACA MODIFIED 4 DIGIT THICKNESS DISTRIBUTION 2420 IF x > MX THEN 2430 2422 yt = 5 * MT * (A0 * SQR (x) + A1 * x + A2 * x ^ 2 + A3 * x ^ 3) 2423 dt = 9.99E+20:D2 = dt: IF x = 0 THEN 2435 2424 dt = 5 * MT * (A0 / 2 / SQR (x) + A1 + 2 * A2 * x + 3 * A3 * x ^ 2) 2426 D2 = 5 * MT * (2 * A2 + 6 * A3 * x - A0 / 4 * x ^ 1.5) 2428 GOTO 2435 2430 yt = 5 * MT * (.002 + D1 * (1 - x) + D2 * (1 - x) ^ 2 + D3 * (1 - x) ^ 3) 2431 dt = - 5 * MT * (D1 + 2 * D2 * (1 - x) + 3 * D3 * (1 - x) ^ 2) 2432 D2 = 5 * MT * (2 * D2 + 6 * D3 * (1 - x)) 2434 REM * CONSTRUCT CAMBER LINE 2435 ON CK GOTO 2440,2470,2500 2439 REM * NACA 4 DIGIT 2440 yc = 0:dc = 0: IF MC = 0 THEN 2600 2445 IF x > CX THEN 2460 2450 yc = MC / CX ^ 2 * (2 * CX * x - x ^ 2) 2455 dc = 2 * MC / CX ^ 2 * (CX - x): GOTO 2600 2460 yc = MC / (1 - CX) ^ 2 * (1 - 2 * CX + 2 * CX * x - x ^ 2) 2465 dc = 2 * MC / (1 - CX) ^ 2 * (CX - x): GOTO 2600 2469 REM * NACA 5 DIGIT 2470 IF x > MM THEN 2485 2475 yc = K1 / 6 * (x ^ 3 - 3 * MM * x ^ 2 + MM ^ 2 * (3 - MM) * x) 2480 dc = K1 / 6 * (3 * x ^ 2 - 6 * MM * x + MM ^ 2 * (3 - MM)): GOTO 2600 2485 yc = K1 / 6 * MM ^ 3 * (1 - x) 2490 dc = - K1 / 6 * MM ^ 3: GOTO 2600 2499 REM * 6 & 6A SERIES CAMBER LINE 2500 yc = 0:dc = 0: IF x = 0 THEN 2600 2505 IF x = 1 THEN 2600 2510 IF A < > 1 THEN 2530 2520 yc = - CI / 4 / PI * ((1 - x) * LOG (1 - x) + x * LOG (x)) 2525 dc = CI / 4 / PI * ( LOG (1 - x) - LOG (x)): GOTO 2600 2530 Q1 = A - x:Q2 = 1 - x:T1 = 0: IF Q1 < > 0 THEN T1 = .5 * Q1 ^ 2 * LOG ( ABS (Q1)) 2535 T2 = .5 * Q2 ^ 2 * LOG (Q2):T3 = Q2 ^ 2 / 4 - Q1 ^ 2 / 4 2540 T4 = G - H * x - x * LOG (x):T5 = CI / 2 / PI / (1 + A) 2545 yc = T5 * ((T1 - T2 + T3) / (1 - A) + T4) 2550 T1 = Q2 * LOG (Q2): IF Q1 < > 0 THEN T1 = T1 - Q1 * LOG ( ABS (Q1)) 2555 dc = T5 * (T1 / (1 - A) - LOG (x) - 1 - H) 2560 IF AL$ < > "Y" THEN 2600 2565 IF x < .87437 THEN 2600 2570 yc = CI * (.0302164# - .245209 * (x - .87437)) 2575 dc = - .245209 * CI 2599 REM * COMBINE THICKNESS AND CAMBER 2600 TT = ATN (dc) 2605 xu = x - yt * SIN (TT):yu = yc + yt * COS (TT) 2610 xl = x + yt * SIN (TT):yl = yc - yt * COS (TT) 2620 RETURN REM * PRE-PROCESSING FOR MOD 4DIG THICKNESS 3600 D1 = (2.24 - 5.42 * MX + 12.3 * MX ^ 2) / 10 / (1 - .878 * MX) D2 = (.294 - 2 * (1 - MX) * D1) / (1 - MX) ^ 2 D3 = ( - .196 + (1 - MX) * D1) / (1 - MX) ^ 3 A0 = .296904 * RX r1 = .2 * (1 - MX) ^ 2 / (.588 - 2 * D1 * (1 - MX)) A1 = .3 / MX - 15 / 8 * A0 / SQR (MX) - MX / 10 / r1 A2 = - (.3 / MX ^ 2) + 5 / 4 * A0 / MX ^ 1.5 + 1 / 5 / r1 A3 = .1 / MX ^ 3 - .375 * A0 / MX ^ 2.5 - 1 / 10 / r1 / MX RETURN REM * SELECT OUTPUT TYPE SUB 3700 PRINT :NA$ = " Choose output option :": GOSUB 5000: PRINT PRINT :NA$ = " 1 - Point by point": GOSUB 5000: PRINT NA$ = " 2 - Distribution": GOSUB 5000: PRINT:PRINT NA$ = " Select 1 or 2 :": GOSUB 5000: INPUT AN$ RETURN REM * SUB TO COMPUTE X DISTRIBUTION 3800 PRINT :NA$ = " Select type of distribution:": GOSUB 5000 PRINT : PRINT :NA$ = " 1 - Even Spacing": GOSUB 5000: PRINT NA$ = " 2 - Full Cosine": GOSUB 5000: PRINT NA$ = " (Concentrated at both LE & TE)": GOSUB 5000: PRINT NA$ = " 3 - Half Cosine": GOSUB 5000: PRINT NA$ = " (Concentrated at LE)": GOSUB 5000: PRINT:PRINT NA$ = " Choose 1, 2, or 3 : ": GOSUB 5000: INPUT AN$:PRINT NA$ = " Number of points in distribution,": GOSUB 5000: PRINT NA$ = " (131 maximum) =": GOSUB 5000: INPUT "";IM FOR i = 1 TO IM IF AN$ = "1" THEN XC(i) = (i - 1) / (IM - 1) IF AN$ = "2" THEN XC(i) = .5 * (1 - COS ((i - 1) / (IM - 1) * PI)) IF AN$ = "3" THEN XC(i) = 1 - COS ((i - 1) * PI / 2 / (IM - 1)) NEXT i RETURN REM * "PRESS RETURN" 4000 PRINT NA$ = " Press RETURN to Continue :": GOSUB 5000: INPUT AC$ PRINT RETURN 4099 REM * OUTPUT TO PRINTER; IF 80 COL CARD, TURN IT OFF 4100 AP = 0: RETURN REM * PRINT A COMPUTE ON SCREEN 4300 PRINT 4310 NA$ = " - COMPUTING - ": GOSUB 5000 PRINT RETURN REM * SETUP FOR ANOTHER CASE? 4500 PRINT 4510 NA$ = " Another case (Y/N) : ": GOSUB 5000 INPUT AN$: PRINT RETURN 4599 REM * INFO ON INPUT TO PLANFORM PROGRAM 4600 NA$ = " Setting up Input Data for the Aerocal Programs": GOSUB 5000: PRINT 4610 NA$ = " ": GOSUB 5000: PRINT 4640 NA$ = " AEROCAL PAK2, BASIC GEOMETRY FOR AERO": GOSUB 5000: PRINT 4650 PRINT 4660 NA$ = " Two programs require input data:": GOSUB 5000: PRINT 4670 NA$ = " - 1) Entire Planform Area Program": GOSUB 5000: PRINT 4680 NA$ = " - 2) Isolated Wing Program": GOSUB 5000: PRINT 4690 NA$ = " ": GOSUB 5000: PRINT 4700 GOSUB 4000 NA$ = " For the Entire Planform Analysis Program": GOSUB 5000: PRINT : PRINT NA$ = " The entire planform (defining one side only, ": GOSUB 5000: PRINT NA$ = " assuming symmetry) will be described by a ": GOSUB 5000: PRINT NA$ = " series of straight lines. Starting at the nose,": GOSUB 5000: PRINT NA$ = " work your way around the planform, ending at ": GOSUB 5000: PRINT NA$ = " the aft end centerline. Start and end at Y = 0.": GOSUB 5000: PRINT: PRINT NA$ = " The planform input data will be placed in lines": GOSUB 5000: PRINT NA$ = " 201-239, the number of points is NN,": GOSUB 5000: PRINT NA$ = " and should be placed on line 200.": GOSUB 5000: PRINT NA$ = " The points are X(N),Y(N), and are": GOSUB 5000: PRINT NA$ = " best placed as shown in this example:": GOSUB 5000: PRINT : PRINT NA$ = " 200 NN=4": GOSUB 5000: PRINT NA$ = " 201 X(1)=0.0:Y(1)=0": GOSUB 5000: PRINT NA$ = " 202 X(2)=10.0:Y(2)=10.0": GOSUB 5000: PRINT NA$ = " 203 X(3)=20.0:Y(3)=10.0": GOSUB 5000: PRINT NA$ = " 204 X(4)=15.0:Y(4)= 0.0": GOSUB 5000: PRINT PRINT 4994 GOSUB 4000 NA$ = " For the Isolated Wing Program:": GOSUB 5000: PRINT : PRINT NA$ = " The leading edge is defined and then the": GOSUB 5000: PRINT NA$ = " trailing edge is defined.": GOSUB 5000: PRINT : PRINT NA$ = " The input data will be defined in lines": GOSUB 5000: PRINT NA$ = " 400-550, the number of points is LM on the LE,": GOSUB 5000: PRINT NA$ = " and TM on the TE, and should be placed on line 400.": GOSUB 5000: PRINT NA$ = " The points are yl(N),xl(N), for the leading edge (LE)": GOSUB 5000: PRINT NA$ = " and yt(N),xt(N), for the trailing edge (TE). They are": GOSUB 5000: PRINT NA$ = " best placed as the LE on the 400s and TE on 500s lines.": GOSUB 5000: PRINT : PRINT NA$ = " This is a sample:": GOSUB 5000: PRINT NA$ = " 400 LM = 3:TM = 3": GOSUB 5000: PRINT NA$ = " 401 yl(1) = 0!:xl(1) = 0!": GOSUB 5000: PRINT NA$ = " 402 yl(2) = 28.57:xl(2) = 99.65": GOSUB 5000: PRINT NA$ = " 403 yl(3) = 67.32:xl(3) = 138.4": GOSUB 5000: PRINT NA$ = " 501 yt(1) = 0!:xt(1) = 142.01": GOSUB 5000: PRINT NA$ = " 502 yt(2) = 28.57:xt(2) = 142.01": GOSUB 5000: PRINT NA$ = " 503 yt(3) = 67.32:xt(3) = 147.7": GOSUB 5000: PRINT PRINT GOSUB 4000 RETURN REM * PRINT ROUTINE 5000 PRINT TAB(20); NA$;: RETURN