C**********************************************************************C C C----------------------------------------------------------------------- C PROGRAM STABLE C----------------------------------------------------------------------- C C C PREPARED BY DR. F. O. SMETANA C DEPARTMENT OF MECHANICAL AND AEROSPACE ENGINEERING C NORTH CAROLINA STATE UNIVERSITY C RALEIGH, N. C. 27695-7910 C TELE: 919 737-2367 C C DATE OF PRESENT VERSION: JANUARY 1989 C C**********************************************************************C C IMPLICIT REAL*8(A-H,O-Z) REAL*8 MS,IYY,ITAIL,IWING,LT,LT1,LB REAL*8 IXX,IXZ,IZZ,LF,LFCY,LMH,LBCY CHARACTER*5 IDATA DIMENSION KEY(15),VARI(15) DIMENSION ICHECK(21),IDATA(21),GDATA(21) DATA IDATA/'CL ','CD ','CM ','CT ','CLA ','CDA ', 1'CMA ','CLDA ','CDDA ','CMDA ','CLQ ','CDQ ','CMQ ','CLDA ', 2'CDDE ','CMDE ','CLU ','CDU ','CMU ','CTU ','CTRPM'/ C WRITE(*,1000) 1000 FORMAT(///////,10X,'S T A B L E --- A Computer Program',//,5x, 1'To Perform Aircraft Stability and Control Computations',////, 21x,'If you are not familiar with this program, (1) print out',/, 31x,'the prompts (CTRL P on IBM clones) and (2) draw a picture',/, 41x,'of the aircraft with the requested information indicated',/, 51x,'so that you can answer correctly the next time you run the', 6/,1x,'program. See Figure 7-1,....strike return',////) READ(*,*) WRITE(*,1001) 1001 FORMAT(5x,'Additional documentation for these programs is',/,5x, &'provided in the book COMPUTER ASSISTED ANALYSIS OF AIRCRAFT',/, 15X,'PERFORMANCE, STABILITY , AND CONTROL (McGraw-Hill 1984)',/, 25x,'....Strike return to continue',//) READ(*,*) WRITE(*,577) 577 FORMAT(1X,'This program writes input files for STADER, LATDER',/ 1,1x,'LOPROG, and LAPROG. Once these files have been prepared,'/, 21x,'the corresponding executable file is invoked simply by typing' 3,/,1x,'its name. The difference between STADER and LOPROG is',/, 41x,'is that STADER provides more detailed BODE plots, ',/, 51x,'complete time responses, and the capability to determine',/, 61x,'static stability and control forces...Strike return.',//) READ(*,*) WRITE(*,578) 578 FORMAT(1X,'LATDER and LAPROG are similarly related. It may be',/, 11x,'necessary to rewrite the data formats in this program and',/, 21x,'the others if the data field is not large enough for the ',/, 31x,'numbers associated with a particular aircraft. These',/, 41x,'programs generally reflect methods suitable for aircraft',/, 51x,'weighing less than 10,000 lbs and operating at speeds',/, 61x,'less than 300 feet per second...Strike return to continue',//) READ(*,*) WRITE(*,579) 579 FORMAT(1X,'The word tail refers to the horizontal tail in the',/, 11x,'prompts for longitudinal input data and to the vertical',/, 21x,'tail in the prompts for lateral input data...Strike return', 3//) READ(*,*) WRITE(*,1003) READ(*,*) LPICK LK=3 ISET=0 GO TO (1,101),LPICK 1002 FORMAT(////,5X,'Indicate by menu number which procedure you ',/, 15x,'wish to invoke:',/,10X, 2'2. Computation of Stability Derivatives, Bode Plot,',/,13X, 3'and Time Response to a Specified Forcing Function',//, 10X, 4'3. Stability Derivatives, Transfer Functions, and',/,13X, 5'Root Locus Only',//,10X, 6'4. Only Stability Derivatives',//,10X, 7'5. Stability Derivatives and Transfer Functions',//,10X, 8'6. Stability Derivatives and Static Stability',//,10X, 9'7. Stability Derivatives, Static Stability, Transfer Functions,' &,/,13X,'and Root Locus',//,10X, &'8. All of the above',//,10X, &'10. Process existing data') 1003 FORMAT(5X,'Indicate by 1 if you desire the computation of',/, 15X,'Longitudinal Characteristics or by 2 if you desire the',/, 25X,'Computation of Lateral Characteristics') 1 CALL INFO1 WRITE(*,1002) READ(*,*) LBB IF(LBB.EQ.10) GO TO 77 CALL INFO2 WRITE(*,2) 2 FORMAT(//,5X,'Indicate with 1 which of the following derivative', 1/,5X,'values will be read in:',/,10x, 2'CL,CD,CM,CT,CLA,CDA,CMA',/,10X,'CLDA,CDDA,CMDA,CLQ,CDQ,CMQ,CLDE' 3,/,10X,'CDDE,CMDE,CLU,CDU,CMU,CTU,CTRPM',//,5X,'Enter 0 for the ', 4'other values.',//) READ(*,*) (ICHECK(II),II=1,21) WRITE(*,566) 566 FORMAT(/,1X,'U. S. CUSTOMARY UNITS ARE USED IN THIS PROGRAM.',/, 11X,'ANGLES ENTERED IN THE PROGRAM SHOULD BE IN RADIANS',/, 11X,'UNLESS OTHERWISE SPECIFIED. TO USE S. I. UNITS IT WILL BE',/, 21X,'NECESSARY TO CHANGE THE VALUE OF THE GRAVITATIONAL CONSTANT',/ 3,1X,'WHEREEVER IT APPEARS IN THE PROGRAM.',/) WRITE(*,3) 3 FORMAT(5X,'enter the value of the atmospheric density',/, 16X,'in slugs/ft**3 if you are using U. S. Customary Units') READ(*,*) RHO WRITE(*,4) 4 FORMAT(5X,'enter the value of the true airspeed in ft/sec') READ(*,*) U WRITE(*,5) CALL INFO3 5 FORMAT(5X,'enter the aircraft mass in slugs') READ(*,*) MS WRITE(*,6) 6 FORMAT(5X,'enter the moment of inertia about the y-axis',/, 16x,'in slug*ft**2 for U. S. Customary Units') READ(*,*) IYY WRITE(*,7) 7 FORMAT(5X,'enter the value of thrust in pounds') READ(*,*) THRUST WRITE(*,8) 8 FORMAT(5X,'enter the vertical distance from CG to thrust line', 1/,6x,'in feet') READ(*,*) ZJ WRITE(*,9) 9 FORMAT(5X,'enter G times cosine of initial flight path angle', 1/,6x,'in ft/sec**2') READ(*,*) GCOSGM WRITE(*,10) 10 FORMAT(5X,'enter G times sine of the initial flight path angle', 1/,6x,'in ft/sec**2') READ(*,*) GSINGM WRITE(*,11) 11 FORMAT(5X,'enter cosine of angle between thrust axis and wind') READ(*,*) COSXZ WRITE(*,12) 12 FORMAT(5X,'enter sine of angle between thrust axis and wind') READ(*,*) SINXZ WRITE(*,13) 13 FORMAT(5X,'enter wing area in square feet') READ(*,*) S WRITE(*,14) 14 FORMAT(5X,'enter horizontal tail area in square feet') READ(*,*) ST WRITE(*,15) 15 FORMAT(5X,'enter wing span in feet') READ(*,*) B WRITE(*,16) 16 FORMAT(5X,'enter horizontal tail span in feet') READ(*,*) BT WRITE(*,17) 17 FORMAT(5X,'enter horizontal tail efficiency factor',/, 16x,' (dimensionless)') READ(*,*) EFF WRITE(*,18) 18 FORMAT(5X,'enter mean aerodynamic chord of elevator in feet') READ(*,*) CHE WRITE(*,19) 19 FORMAT(5X,'enter wing taper ratio') READ(*,*) TR WRITE(*,20) 20 FORMAT(5X,'enter taper ratio of horizontal tail') READ(*,*) TRT CALL INFO4 WRITE(*,21) 21 FORMAT(5X,'enter two-dimensional wing CL (dimensionless)') READ(*,*) CL2DW WRITE(*,22) 22 FORMAT(5X,'enter tail incidence angle in degrees') READ(*,*) ITAIL WRITE(*,23) 23 FORMAT(5X,'enter two-dimensional wing CLA per degree') READ(*,*) CLA2DW WRITE(*,24) 24 FORMAT(5X,'enter two-dimensional horizontal tail CLA per degree') READ(*,*) CLA2DT WRITE(*,25) CALL INFO5 25 FORMAT(5X,'enter aircraft CDPIE') READ(*,*) CDPIE WRITE(*,26) 26 FORMAT(5X,'enter two-dimensional wing CDA per degree') READ(*,*) CDA2DW WRITE(*,27) 27 FORMAT(5X,'enter wing angle of attack in degrees') READ(*,*) ALPHA WRITE(*,28) 28 FORMAT(5X,'enter wing incidence angle in degrees') READ(*,*) IWING WRITE(*,29) 29 FORMAT(5X,'enter distance from CG to tail quarter-chord in feet') READ(*,*) LT WRITE(*,30) 30 FORMAT(5X,'enter distance from wing c/4 to tail c/4 in feet') READ(*,*) LT1 WRITE(*,31) 31 FORMAT(5X,'enter chord-wise distance from CG to AC in feet') READ(*,*) XA WRITE(*,32) 32 FORMAT(5X,'enter vertical distance from CG to AC in feet') READ(*,*) ZA WRITE(*,33) 33 FORMAT(5X,'enter length of fuselage in feet') READ(*,*) LB WRITE(*,34) 34 FORMAT(5X,'enter maximum fuselage width in feet') READ(*,*) WFUS WRITE(*,35) 35 FORMAT(5X,'enter distance from fuselage nose to wing c/4 in feet') READ(*,*) XFUS WRITE(*,36) 36 FORMAT(5X,'enter chordwise distance from CG to wing c/4 in feet') READ(*,*) XCG WRITE(*,37) 37 FORMAT(5X,'enter perpendicular distance from CG to thrust line', 1/,6x,'in feet') READ(*,*) ZT WRITE(*,38) 38 FORMAT(5X,'enter elevator area in square feet') READ(*,*) SELEV JJ=0 DO 39 J=1,21 IF(ICHECK(J).EQ.0) GO TO 39 JJ=JJ+1 WRITE(*,40) IDATA(J) 40 FORMAT(5X,'enter ',5A1) READ(*,*) GDATA(JJ) 39 CONTINUE OPEN(1,FILE='LODATA',STATUS='NEW') WRITE(1,41) (ICHECK(II),II=1,21) 41 FORMAT(21I1) WRITE(1,42) RHO,U,MS,IYY,THRUST,ZJ,GCOSGM,GSINGM,COSXZ,SINXZ, 1S,ST,B,BT,EFF,CHE,TR,TRT,CL2DW,ITAIL,CLA2DW,CLA2DT,CDPIE,CDA2DW, 2ALPHA,IWING,LT,LT1,XA,ZA,LB,WFUS,XFUS,XCG,ZT,SELEV 42 FORMAT(8F10.5) JJ=0 DO 443 J=1,21 IF(ICHECK(J).EQ.0) GO TO 443 JJ=JJ+1 WRITE(1,43) GDATA(JJ) 443 CONTINUE 43 FORMAT(F10.5) WRITE(*,44) 44 FORMAT(5X,'enter 1 if derivatives are with respect to elevator',/ 1,5x,'enter 2 if derivatives are with respect to flap') READ(*,*) K ACC=0.0001D0 NJ=1 WRITE(1,46) K,NJ,ACC 46 FORMAT(2I3,D14.7) WRITE(*,47) 47 FORMAT(5X,'enter 1, 3, or 5 for the type of forcing function ',/, 15x,'desired: 1=step; 3=pulse; 5=sinusoid') READ(*,*) IF WRITE(*,48) 48 FORMAT(5X,'enter the frequency of the sinusoidal forcing',/,5x, 1'function or the pulse duration') READ(*,*) W W0=0.001 CALL INFO6 WRITE(*,49) 49 FORMAT(5X,'enter the amplitude of the forcing function') READ(*,*) AMP WRITE(1,50) AMP,W,W0,IF,ISET,LK,LBB 50 FORMAT(3F10.3,4I10) IF(LBB.LT.6) GO TO 77 WRITE(*,556) 556 FORMAT(/,1X,'The following items are required to make static',/, 11x,'stability and stick force determinations.',/,1x, 'All ', 2'angular information should be entered in degrees.',/,1x, 3'Length information should be entered in feet unless the value',/, 41X,'of the gravitional constant is changed.',/) CALL INFO7 WRITE(*,51) 51 FORMAT(5X,'enter the control system gear ratio') READ(*,*) GEAR WRITE(*,52) 52 FORMAT(5X,'enter elevator hinge moment coefficient not due to',/, 15x,'alpha or delta') READ(*,*) CH0 WRITE(*,53) 53 FORMAT(5X,'enter hinge moment coefficient due to tab deflection', 1/,7X,'if unknown, enter 0.0D0') READ(*,*) CHDELT WRITE(*,54) 54 FORMAT(5X,'enter tab deflection in degrees') READ(*,*) DELT WRITE(*,55) 55 FORMAT(5X,'enter elevator angle at zero aircraft lift in degrees') READ(*,*) DELE0 WRITE(*,56) 56 FORMAT(5X,'enter 0 if elevator nose is sealed and 1 if gap is ',/ 1,5x,'0.005c') READ(*,*) IGAP WRITE(*,57) 57 FORMAT(5X,'enter 0 if spanwise extent of elevator balance is',/, 15x,'less than full span; enter 1 if balance is full span') READ(*,*) IBAL WRITE(*,58) 58 FORMAT(5X,'enter distance from trailing edge of elevator to',/, 15x,' its hinge line in feet') READ(*,*) CA WRITE(*,59) 59 FORMAT(5X,'enter distance from elevator nose to its hinge',/, 15x,' line in feet') READ(*,*) CB WRITE(*,60) 60 FORMAT(5X,'enter distance from center of elevator nose radius ',/ 1,5x,'to hinge line in feet') READ(*,*) CB1 WRITE(*,61) 61 FORMAT(5X,'enter thickness of elevator at hinge line in feet') READ(*,*) T WRITE(*,62) 62 FORMAT(5X,'enter elevator trailing edge angle in degrees') READ(*,*) PHI WRITE(*,63) 63 FORMAT(5X,'enter 0 if hinge moments are to be calculated',/,5x, 1'and 1 if values are to be read in') READ(*,*) IREAD WRITE(*,64) 64 FORMAT(5X,'enter 0 if values for round nose elevator are used',/, 15X,'and 1 if applicable values are read in') READ(*,*) IREAD1 WRITE(1,65) GEAR,CH0,CHDELT,DELT,DELE0,IGAP,IBAL 65 FORMAT(5F10.3,2I10) WRITE(1,65) CA,CB,CB1,T,PHI,IREAD,IREAD1 IF(IREAD.EQ.0) GO TO 66 WRITE(*,67) 67 FORMAT(5X,'enter the values of CHALP and CHDEL') READ(*,*) CHALP,CHDEL WRITE(1,68) CHALP,CHDEL 68 FORMAT(2F10.7) 66 IF(IREAD1.EQ.0) GO TO 69 WRITE(*,70) 70 FORMAT(5X,'enter the values of FC1 and FC2. See accompanyiny',/, 15x,'figures for definition. ') READ(*,*) FC1,FC2 WRITE(1,71) FC1,FC2 71 FORMAT(2F10.3) 69 IF(IBAL.EQ.0) GO TO 72 WRITE(*,73) 73 FORMAT(5X,'enter the values of the elevator span and the',/,5X, 1'balance span in feet') READ(*,*) BE,BB WRITE(1,71) BE,BB 72 IF(CHDELT.NE.0.0) GO TO 74 WRITE(*,75) 75 FORMAT(5X,'enter the tab chord and the tab span in feet') READ(*,*) CCT,BBT WRITE(1,71) CCT,BBT 74 WRITE(*,76) 76 FORMAT(5X,'enter the maximum elevator deflection in degrees',/, 15x,'and CLMAX') READ(*,*) DELEMX,CLMAX WRITE(1,71) DELEMX,CLMAX 77 STOP C C BEGIN LATERAL PORTION OF COMPUTATIONS C 101 WRITE(*,500) 500 FORMAT(5X,'if you wish to process existing data, enter 10',/, 17X,'if not, enter 0') READ(*,*) LBB IF(LBB.EQ.10) GO TO 177 WRITE(*,102) 102 FORMAT(5X,'enter the airplane lift coefficient') READ(*,*) CL WRITE(*,103) 103 FORMAT(5X,'enter the wing sweep angle in radians') READ(*,*) SA WRITE(*,104) 104 FORMAT(5X,'enter the wing dihedral angle in degrees') READ(*,*) DIH WRITE(*,105) 105 FORMAT(5X,'enter distance from the body c.l. to the wing',/, 110x,'root quarter chord(c/4) in feet') READ(*,*) ZW WRITE(*,106) 106 FORMAT(5X,'enter the max body height at wing-body intersection', 1/,5x,'in feet') READ(*,*) H WRITE(*,107) 107 FORMAT(5X,'enter the wing area in square feet') READ(*,*) S WRITE(*,108) 108 FORMAT(5X,'enter the vertical area in square feet') READ(*,*) SV WRITE(*,109) 109 FORMAT(5X,'enter the vertical tail span in feet') READ(*,*) BV WRITE(*,110) 110 FORMAT(5X,'enter the radius of fuselage in vicinity of vertical', 1/,10x,'tail in feet') READ(*,*) R1 WRITE(*,111) 111 FORMAT(5X,'enter the wing taper ratio') READ(*,*) TR WRITE(*,112) 112 FORMAT(5X,'enter the distance from aircraft x-axis to c.p. of', 1/,10x,'vertical tail in feet') READ(*,*) ZV WRITE(*,113) 113 FORMAT(5X,'enter efficiency factor of vertical tail') READ(*,*) ETAV WRITE(*,114) 114 FORMAT(5X,'enter wing span in feet') READ(*,*) B WRITE(*,115) 115 FORMAT(5X,'enter length of fuselage in feet') READ(*,*) LF WRITE(*,116) 116 FORMAT(5X,'enter distance from cg to c.p. of tail in feet') READ(*,*) LT WRITE(*,117) 117 FORMAT(5X,'enter distance from nose to cg in feet') READ(*,*) XM WRITE(*,118) 118 FORMAT(5X,'enter fuselage height at LF/4 from nose in feet') READ(*,*) H1 WRITE(*,119) 119 FORMAT(5X,'enter fuselage height at 3LF/4 from nose in feet') READ(*,*) H2 WRITE(*,120) 120 FORMAT(5X,'enter maximum fuselage width in feet') READ(*,*) W WRITE(*,121) 121 FORMAT(5X,'enter two-dimensional lift curve slope of wing',/, 15x,'per radian') READ(*,*) CLA2DW WRITE(*,122) 122 FORMAT(5X,'enter sweep angle of horizontal tail in radians') READ(*,*) SAH WRITE(*,123) 123 FORMAT(5X,'enter span of horizontal tail in feet') READ(*,*) BH WRITE(*,124) 124 FORMAT(5X,'enter area of horizontal tail in ft**2') READ(*,*) SH WRITE(*,125) 125 FORMAT(5X,'enter taper ratio of horizontal tail') READ(*,*) TRH WRITE(*,126) 126 FORMAT(5X,'enter 2d lift curve slope of horizontal tail', 1/,5x,'per radian') READ(*,*) CLA2DH WRITE(*,127) 127 FORMAT(5X,'enter span of aileron in feet') READ(*,*) BA WRITE(*,128) 128 FORMAT(5X,'enter aileron chord in feet') READ(*,*) CA WRITE(*,129) 129 FORMAT(5X,'enter rudder area in ft**2') READ(*,*) SR WRITE(*,130) 130 FORMAT(5X,'enter angle of attack in radians') READ(*,*) ALPHA WRITE(*,131) 131 FORMAT(5X,'enter parasite drag coefficient of the aircraft') READ(*,*) CDO WRITE(*,132) 132 FORMAT(5X,'enter atmospheric density in slugs/ft**3') READ(*,*) RHO WRITE(*,133) 133 FORMAT(5X,'enter the distance from body cl to inboard edge of',/, 110x,'aileron in feet') READ(*,*) Y1 WRITE(*,134) 134 FORMAT(5X,'enter airspeed in ft/sec') READ(*,*) U WRITE(*,135) 135 FORMAT(5X,'enter aircraft mass in slugs') READ(*,*) MS WRITE(*,136) 136 FORMAT(5X,'enter G*cosine of flight path angle in ft/sec**2') READ(*,*) GCOSGM WRITE(*,137) 137 FORMAT(5X,'enter G*sine of flight path angle in ft/sec**2') READ(*,*) GSINGM WRITE(*,138) 138 FORMAT(5X,'enter moment of inertia about x-axis in slugs*ft**2') READ(*,*) IXX WRITE(*,139) 139 FORMAT(5X,'enter product of inertia in X-Z plane in slugs*ft**2') READ(*,*) IXZ WRITE(*,140) 140 FORMAT(5X,'enter moment of inertia about Z-axis in slugs*ft**2') READ(*,*) IZZ WRITE(*,141) 141 FORMAT(5X,'enter fuselage height in nose region in feet') READ(*,*) HNOSE WRITE(*,142) 142 FORMAT(5X,'enter fuselage width in nose region in feet') READ(*,*) WNOSE WRITE(*,143) 143 FORMAT(5X,'enter fuselage height in front of canopy in feet') READ(*,*) HFCY WRITE(*,144) 144 FORMAT(5X,'enter fuselage width in front of canopy in feet') READ(*,*) WFCY WRITE(*,145) 145 FORMAT(5X,'enter length of fuselage along center line',/, 110x,'to front of canopy in feet') READ(*,*) LFCY WRITE(*,146) 146 FORMAT(5X,'enter distance along body center line from nose',/, 110x,'to point of max fuselage height in feet') READ(*,*) LMH WRITE(*,147) 147 FORMAT(5X,'enter fuselage height at back of canopy in feet') READ(*,*) HBCY WRITE(*,148) 148 FORMAT(5X,'enter fuselage width at back of canopy in feet') READ(*,*) WBCY WRITE(*,149) 149 FORMAT(5X,'enter distance along cl to back of canopy in feet') READ(*,*) LBCY WRITE(*,150) 150 FORMAT(5X,'Indicate by entering 1 which of the following',/, 110x,'variable values is to be read in:',//, 215x,'CYB,CLB,CNB,CLP,CYP,CNP,CYR,CLR,CNR,',/, 315X,'CYDA,CLDA,CNDA,CYDR,CLDR,CNDR',//, 410X,'enter 0 for the others') READ(*,*) (KEY(JI),JI=1,15) WRITE(*,151) 151 FORMAT(5X,'enter below the values of the derivatives to be read' 1,/,10x,'in(in order)') I=0 DO 152 J=1,15 IF(KEY(J).EQ.0) GO TO 152 I=I+1 READ(*,*) VARI(I) 152 CONTINUE WRITE(*,153) 153 FORMAT(5X,'enter 1 if derivatives with respect to rudder ',/, 110x,'deflection are desired. Enter 2 if derivatives with',/, 210x,'respect to aileron deflection are desired.') READ(*,*) K cjmg OPEN(1,FILE='LADATA',STATUS='NEW') OPEN(1,FILE='LADATA') cjmg WRITE(1,154) CL,SA,DIH,ZW,H,S,SV,BV,R1,TR,ZV,ETAV,B,LF,LT,XM,H1, cjmg 1H2,W,CL2DW,SAH,BH,SH,TRH,CL2DH,BA,CA,SR,ALPHA,CDO,RHO,Y1,U,MS, cjmg 2GCOSGM,GSINGM,IXX,IXZ,IZZ,HNOSE,WNOSE,HFCY,WFCY,LFCY,LMH,HBCY, cjmg 3WBCY,LBCY cjmg 154 FORMAT(8F10.6/8F10.6/8F10.6/8F10.6/6F10.6,F10.5,F10.6/8F10.6) cjmg CL2DW should be CLA2DW cjmg CL2DH should be CLA2DH WRITE(1,154) CL,SA,DIH,ZW,H,S,SV,BV,R1,TR,ZV,ETAV,B,LF,LT,XM,H1, 1H2,W,CLA2DW,SAH,BH,SH,TRH,CLA2DH,BA,CA,SR,ALPHA,CDO,RHO,Y1,U,MS, 2GCOSGM,GSINGM,IXX,IXZ,IZZ,HNOSE,WNOSE,HFCY,WFCY,LFCY,LMH,HBCY, 3WBCY,LBCY 154 FORMAT(8F10.4/8F10.4/8F10.4/8F10.4/ & F10.4,F10.2,F10.4,4F10.0,F10.4/8F10.4) WRITE(1,155) (KEY(JI),JI=1,15) 155 FORMAT(15I5) JI=0 DO 554 J=1,15 IF(KEY(J).EQ.0) GO TO 554 JI=JI+1 WRITE(1,156) VARI(JI) 554 CONTINUE 156 FORMAT(F10.6) ACC=0.0001 J=1 WRITE(1,158) K,J,ACC 158 FORMAT(2I3,E14.7) WRITE(*,400) 400 FORMAT(5X,'enter the amplitude of the forcing function(sine wave)' 1) READ(*,*) AMP WRITE(*,401) 401 FORMAT(5X,'enter the forcing function frequency in radians/sec') READ(*,*) W W0=W IF=5 WRITE(*,402) 402 FORMAT(5X,'enter the value of LBB from the following list:',/,7x, 1'0 -- SOLVE invoked; no BODE plots',/,7x, 2'1,2 -- SOLVE invoked; BODE plots produced',/,7x, 3'3 -- root locus produced; no time solutions',/,7x, 4'5 -- only transfer functions produced; no root locus plot',/,7x, 5'6 -- static stability values calculated; root locus produced',/, 67x,'9 -- static stability values only') READ(*,*) LBB WRITE(*,403) AMP,W,W0,IF,ISET,LK,LBB 403 FORMAT(3F10.5,4I10) WRITE(*,555) 555 FORMAT(/,1X,'The following items are required to performs static', 1/,1x,'stability and rudder and aileron force determinations.',/) IF(LBB.LT.6) GO TO 177 WRITE(*,200) 200 FORMAT(5X,'enter 1 if you wish to calculate aileron-related',/, 15X,'items only, enter 2 if you wish to calculate rudder-',/,5X, 2'related items only, or enter 3 if you wish to calculate both',/, 35X,'rudder-related and aileron-related items.') READ(*,*) IRUD IREAD=0 IREAD1=0 CALL INFO7 WRITE(*,201) 201 FORMAT(5X,'enter, in order, the following information about the', 1/,5X,'rudder: 1. deflection in degrees',/,10X,'2. tab deflection' 2' in degrees',/,10X,'3. rudder gear ratio',/,10X,'4. rudder span' 3,/,10X,'5. rudder tab hinge moment coefficient',/,5x, 4'unless specified differently, lengths are in feet') READ(*,*) DELR,DELTR,GR,BR,CHDELT WRITE(*,202) 202 FORMAT(5X,'enter, in order, the following information:',/,10X, 1'1. aileron deflection',/,10X,'2. sideslip angle(degrees)',/,10X, 2'3. aileron gear ratio',/,10X,'4. time to reach a specified bank' 3,' angle') READ(*,*) DELA,BETA,GEARA,TI WRITE(1,203) DELA,DELR,TI,GEARA,DELTR,GR,BR 203 FORMAT(7F10.3) WRITE(1,204) IRUD,IREAD,IREAD1,BETA,CHDELT 204 FORMAT(3I10,2F10.3) GO TO(321,322,321),IRUD 321 WRITE(*,205) 205 FORMAT(5X,'enter the following aileron-specific information',/, 15X,'in order: 1. distance from hinge line to t. e.',/,10X, 2'2. distance from nose to hinge line',/,10X, 3'3. distance from center of nose radius to hinge line',/,10X, 4'4. thickness at hinge line',/,10X,'5. trailing edge angle(deg)', 5/,10X,'6. 0 if values of hinge moments are to be calculated and', 610X,'1 if hinge moments are to be read in',/,10X, 7'7. 0 if aileron nose is round, 1 if values will read in') READ(*,*) CA,CB,CB1,T,PHI,IREAD,IREAD1 WRITE(1,206) CA,CB,CB1,T,PHI,IREAD,IREAD1 206 FORMAT(5F10.3,2I10) WRITE(*,207) 207 FORMAT(5X,'enter 0 if aileron nose is sealed, 1 if gap is 0.005c') READ(*,*) IGAP WRITE(*,208) 208 FORMAT(5X,'enter 1 if aileron balance is full span',/,10X, 1'enter 0 if balance span and aileron span will be read in') READ(*,*) IBAL IF(IREAD.NE.1) GO TO 212 WRITE(1,209) IBAL,IGAP 209 FORMAT(2I10) WRITE(*,210) 210 FORMAT(5X,'enter CHALP and CHDEL') READ(*,*) CHALP,CHDEL WRITE(1,211) CHALP,CHDEL 211 FORMAT(2F10.7) 212 IF(IREAD1.NE.1) GO TO 215 WRITE(*,213) 213 FORMAT(5X,'enter FC1 and FC2') READ(*,*) FC1,FC2 WRITE(1,214) FC1,FC2 214 FORMAT(2F10.3) 215 IF(IBAL.EQ.1) GO TO 217 WRITE(*,216) 216 FORMAT(5X,'enter the aileron span and the balance span') READ(*,*) BE,BB WRITE(1,214) BE,BB 217 IF(IRUD.LT.3) GO TO 177 322 WRITE(*,218) 218 FORMAT(5X,'enter the following rudder specific information ',/, 15X,'in order: 1. distance from hinge line to t. e.',/,10X, 2'2. distance from nose to hinge line',/,10X,'3. distance from', 3' center of nose radius to hinge line',/,10X, 4'4. thickness at hinge line',/,10X,'5. trailing edge angle(deg)', 5/,10X,'6. 0 if hinge moments are to be calculated, 1 if read in', 6/,10X,'7. 0 if nose is round, 1 if values are to be read in') READ(*,*) CA,CB,CB1,T,PHI,IREAD,IREAD1 WRITE(1,206) CA,CB,CB1,T,PHI,IREAD,IREAD1 WRITE(*,219) 219 FORMAT(5X,'enter 0 if rudder gap is sealed, 1 if gap is 0.005c') READ(*,*) IGAP WRITE(*,220) 220 FORMAT(5X,'enter 1 if rudder balance is full span, 0 if not') READ(*,*) IBAL WRITE(1,209) IBAL,IGAP IF(IREAD.NE.1) GO TO 221 WRITE(*,210) READ(*,*) CHALP,CHDEL WRITE(1,211) CHALP,CHDEL 221 IF(IREAD1.NE.1) GO TO 222 WRITE(*,213) READ(*,*) FC1,FC2 WRITE(1,214) FC1,FC2 222 IF(IBAL.EQ.1) GO TO 225 WRITE(*,223) 223 FORMAT(5X,'enter the rudder span and the balance span') READ(*,*) BE,BB WRITE(1,214) BE,BB 225 IF(CHDELT.NE.0.0D0) GO TO 177 WRITE(*,224) 224 FORMAT(5X,'enter the rudder tab chord and the rudder tab span') READ(*,*) CCT,BBT WRITE(1,214) CCT,BBT 177 STOP END SUBROUTINE INFO1 WRITE(*,1) 1 FORMAT(/,1X,'The symbols used in the following prompts have', 1/,1x,'these definitions:',//,5x,'CG - center of gravity',/, 25x,'c/4 - a position on the wing one quarter', 3/,11x,'of the mean aerodynamic chord aft of its leading edge',/, 45x,'AC - aerodynamic center, the position on the wing',/, 511x,'chord about which the pitching moment coefficient is',/, 611x,'constant.',//) WRITE(*,2) 2 FORMAT(1X,'If you are uncertain as to which of the following',/, 11x,'options to specify, note that options 2 and 8 are the ',/, 21x,'most general and are therefore recommended for the beginner', 3/,1x,'.....strike return when ready.') READ(*,*) RETURN END SUBROUTINE INFO2 WRITE(*,1) 1 FORMAT(//,1X,'If you wish the program to calculate all the',/, 11x,'stability derivative values for you, enter 21 0s separated', 2/,1x,'by commas as 0,0,0,...,etc.') RETURN END SUBROUTINE INFO3 WRITE(*,1) 1 FORMAT(/,1X,'The program works best when input velocity, mass,' 1,/,1x,'wing area,and lift coefficient are consistent, that is',/, 21x,'when lift=weight') RETURN END SUBROUTINE INFO4 WRITE(*,1) 1 FORMAT(/,1X,'Two-dimensional lift coefficient refers to the lift', 1/,1x,'coefficient which would be generated if the wing aspect',/, 21x,'ratio were infinite') RETURN END SUBROUTINE INFO5 WRITE(*,1) 1 FORMAT(/,1X,'Information on the estimation of CDPIE is given in', 1/,1x,'Chapter 5') RETURN END SUBROUTINE INFO6 WRITE(*,1) 1 FORMAT(/,1X,'The amplitude of the forcing function -- a control', 11x,'surface deflection -- should rarely exceed 0.1 radians',/,1x, 2'(about 5.73 degrees). Units on these inputs are radians....',/, 31x,'strike return to continue') READ(*,*) RETURN END SUBROUTINE INFO7 WRITE(*,1) 1 FORMAT(/,1X,'Static stability is concerned with the variation',/, 11x,'in stick force with speed and with normal acceleration; the', 2/,1x,'variation in elevator angle with speed and normal',/,1x, 3'acceleration; how these variations change with changes in',/, 41x,'the c.g. location. The program makes stick force',/,1x, 5'computations according to methods described in NACA TR 868 and', 6/,1x,'the text by Perkins and Hage. To interpret the results',/, 71x,'given by the program, the reader should consult COMPUTER-',/, 81X'ASSISTED ANALYSIS...or the original references.',/) RETURN END