├── .gitignore ├── .project ├── .pydevproject ├── README.md ├── fortran_tools ├── __init__.py └── fixed2free.py ├── license.txt └── test ├── __init__.py ├── expected ├── airfol.f90 ├── atmos.f90 ├── auxout.f90 ├── fltcl.f90 ├── outpt2.f90 ├── subryw.f90 └── supryw.f90 ├── input ├── airfol.f ├── atmos.f ├── auxout.f ├── fltcl.f ├── outpt2.f ├── subryw.f └── supryw.f ├── output └── README.md └── test.py /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | -------------------------------------------------------------------------------- /.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | fortran_tools 4 | 5 | 6 | 7 | 8 | 9 | org.python.pydev.PyDevBuilder 10 | 11 | 12 | 13 | 14 | 15 | org.python.pydev.pythonNature 16 | 17 | 18 | -------------------------------------------------------------------------------- /.pydevproject: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | /fortran_tools 7 | 8 | python 2.7 9 | Default 10 | 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | #fortran_tools: Python tools for updating old Fortran code 2 | 3 | ## License 4 | 5 | * fortran_tools Copyright (C) 2012 James Goppert, Lenna Peterson 6 | * License: GPL v3 7 | * This program comes with ABSOLUTELY NO WARRANTY; This is free software, and you are welcome to redistribute it under certain conditions. For details see license.txt. 8 | -------------------------------------------------------------------------------- /fortran_tools/__init__.py: -------------------------------------------------------------------------------- 1 | from fixed2free import Fixed2Free -------------------------------------------------------------------------------- /fortran_tools/fixed2free.py: -------------------------------------------------------------------------------- 1 | ''' 2 | Created on Jul 15, 2012 3 | 4 | @author: jgoppert 5 | ''' 6 | 7 | import argparse 8 | import sys 9 | import re 10 | 11 | class Fixed2Free(object): 12 | ''' 13 | This class converts fixed format fortran code to free format. 14 | ''' 15 | 16 | #misc regex's 17 | re_line_continuation = re.compile('^(\s\s\s\s\s)([^\s])([\s]*)') 18 | re_hollerith = re.compile('[\s,]((\d+)H)') 19 | re_number_spacing = re.compile('([^A-Za-z][\d.]+)[\s]([\d.]+[^A-Za-z])') 20 | re_f77_comment = re.compile('^[cC]') 21 | re_f90_comment = re.compile('^!') 22 | 23 | #variable regex 24 | re_var_end = re.compile('.*[A-Za-z0-9]+$') 25 | re_var_begin = re.compile('(^\s\s\s\s\s)([^\s])([\s]*)([A-Za-z]+[0-9]?)+') 26 | 27 | #number regex 28 | re_number_end = re.compile('.*[\d.eE]+$') 29 | re_number_begin = re.compile('(^\s\s\s\s\s)([^\s])([\s]*)[\d.eE]+') 30 | 31 | #exponent regex 32 | re_exponent_old = re.compile('([\d.]E)[\s]([\d]+)') 33 | 34 | def __init__(self,input_filename,output_filename,style): 35 | ''' 36 | Constructor 37 | ''' 38 | self.input_filename=input_filename 39 | self.output_filename=output_filename 40 | self.style=style 41 | 42 | 43 | 44 | self.process() 45 | 46 | def process(self): 47 | 48 | #read source 49 | with open(self.input_filename, 'rb') as f: 50 | source = f.readlines() 51 | 52 | #fix source code 53 | for i in xrange(len(source)): 54 | line = source[i] 55 | line = self.remove_new_line(line) 56 | line = self.fix_comment(line) 57 | line = self.truncate_extra_linewidth(line) 58 | line = self.fix_exponents(line) 59 | 60 | if self.is_line_continuation(line): 61 | prev_line_index = self.find_prev_line(source,i) 62 | prev_line = source[prev_line_index] 63 | line,prev_line = self.fix_line_continuation(line,prev_line) 64 | source[prev_line_index] = prev_line 65 | 66 | line = self.fix_number_spacing(line) 67 | source[i] = line 68 | 69 | #write new source 70 | with open(self.output_filename, 'wb') as f: 71 | for line in source: 72 | f.write(line+'\n') 73 | 74 | @staticmethod 75 | def is_line_continuation(line): 76 | if len(line) > 5 and Fixed2Free.re_line_continuation.match(line): 77 | return True 78 | return False 79 | 80 | @staticmethod 81 | def find_prev_line(source,i): 82 | ''' 83 | find first non-commented previous line 84 | ''' 85 | if i>0: 86 | for j in range(i-1, -1, -1): # -1 since python uses [i-1,-1) 87 | if not Fixed2Free.is_f90_comment(source[j]): 88 | return j 89 | return None 90 | 91 | @staticmethod 92 | def remove_new_line(line): 93 | return re.sub('[\r\n]','', line) 94 | 95 | @staticmethod 96 | def truncate_extra_linewidth(line): 97 | if len(line) > 72: 98 | line = line[:72] 99 | return line 100 | 101 | @staticmethod 102 | def is_f77_comment(line): 103 | return Fixed2Free.re_f77_comment.match(line) 104 | 105 | @staticmethod 106 | def is_f90_comment(line): 107 | return Fixed2Free.re_f90_comment.match(line) 108 | 109 | @staticmethod 110 | def fix_comment(line): 111 | if Fixed2Free.is_f77_comment(line): 112 | line = re.sub('^[Cc]','!', line, count=1) 113 | return line 114 | 115 | @staticmethod 116 | def fix_line_continuation(line,prev_line): 117 | continuation_type = Fixed2Free.find_continuation_type(line,prev_line) 118 | 119 | #if no line continuation found, return 120 | if not continuation_type: 121 | return (line,prev_line) 122 | 123 | #debug 124 | # if continuation_type != "generic": 125 | # print "continuation_type:", continuation_type 126 | # print "source lines: \n",prev_line+'\n',line+'\n' 127 | 128 | #add appropriate continuation to current line 129 | if continuation_type == "hollerith": 130 | line = Fixed2Free.re_line_continuation.sub('\g<1>&\g<3>', line, count=1) 131 | elif continuation_type == "var" or continuation_type == "number" : 132 | line = Fixed2Free.re_line_continuation.sub('\g<1>\g<3>&', line, count=1) 133 | elif continuation_type == "generic": 134 | line = Fixed2Free.re_line_continuation.sub('\g<1>&\g<3>', line, count=1) 135 | else: 136 | raise Exception("unknown continuation type") 137 | 138 | #add line continuation to previous line 139 | prev_line = prev_line + '&' 140 | 141 | return (line,prev_line) 142 | 143 | @staticmethod 144 | def fix_exponents(line): 145 | return Fixed2Free.re_exponent_old.sub('\g<1>+\g<2>', line) 146 | 147 | @staticmethod 148 | def fix_number_spacing(line): 149 | return Fixed2Free.re_number_spacing.sub('\g<1>\g<2>', line) 150 | 151 | @staticmethod 152 | def find_continuation_type(line,prev_line): 153 | ''' 154 | Finds line continuation type: hollerith, number, or generic 155 | if not a line continuation, return None 156 | ''' 157 | if not Fixed2Free.is_line_continuation(line): 158 | return None 159 | 160 | # test for hollerith continuation 161 | for hollerith in Fixed2Free.re_hollerith.finditer(prev_line): 162 | hollerith_end = hollerith.end(1)+int(hollerith.group(2))+1 163 | prev_line_length = len(prev_line)-1 164 | #print "hollerith wrap detected" 165 | #print "\tline number:", i # note this is prev line number (i-1)+1 since starts at 0 166 | #print "\tline length:", prev_line_length 167 | #print "\thollerith end:", hollerith_end 168 | if (hollerith_end > prev_line_length): 169 | # print "hollerith wrap detected" 170 | # print "\tline number:", i # note this is prev line number (i-1)+1 since starts at 0 171 | # print "\tline length:", prev_line_length 172 | # print "\thollerith end:", hollerith_end 173 | return "hollerith" 174 | 175 | #var continuation 176 | if Fixed2Free.re_var_begin.match(line) and Fixed2Free.re_var_end.match(prev_line): 177 | return "var" 178 | 179 | #number continuation 180 | if Fixed2Free.re_number_begin.match(line) and Fixed2Free.re_number_end.match(prev_line): 181 | return "number" 182 | 183 | return "generic" 184 | 185 | @classmethod 186 | def from_argv(cls,argv): 187 | ''' 188 | Constructor from command line arguments 189 | ''' 190 | sys.argv = argv 191 | parser = argparse.ArgumentParser(description='Process some integers.') 192 | parser.add_argument('input_filename', metavar='input_file', help='the input filename') 193 | parser.add_argument('output_filename', metavar='output_file', help='the output filename') 194 | parser.add_argument('--style', dest='style', action='store_const', 195 | const=True,default="test", help='style option') 196 | args = parser.parse_args() 197 | return cls(args.input_filename,args.output_filename,args.style) 198 | 199 | if __name__ == '__main__': 200 | Fixed2Free.from_argv(sys.argv) -------------------------------------------------------------------------------- /test/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arktools/fortran_tools/a4749bec40a7577c22283eb2694345bee8e179e3/test/__init__.py -------------------------------------------------------------------------------- /test/expected/airfol.f90: -------------------------------------------------------------------------------- 1 | SUBROUTINE AIRFOL 2 | ! 3 | ! CALCULATE NACA DESIGNATED AIRFOIL COORDINATES 4 | ! 5 | REAL A/1.0000000000000000000000000000000& 6 | &111111111111111111/ 7 | COMMON /& 8 | &TEST/ C 9 | COMMON /IBODY/ PB,NACA(80) 10 | COMMON /IWING/ PW, X(60) 11 | COMMON / IHT / PHT, XU(60),XL(60) 12 | COMMON / IVT / PVT, YUN(60),YLN(60) 13 | COMMON / IBW / PBW,L,I,J,K,II,JJ,KK,III,JJJ,KKK,LLL 14 | COMMON / IBH / PBH, THN(60),CAM(60) 15 | COMMON /IBWHV/ PBWHV, RHO,TMAX 16 | COMMON /FLOLOG/ DUM(29),PART 17 | LOGICAL DUM,PART 18 | INTEGER A4HW,A4HH,A4HV,A4HF 19 | DIMENSION THN2(60) 20 | DATA A4HW,A4HH,A4HV,A4HF/4HW ,4HH ,4HV ,4HF / 21 | ! 22 | ! DECODE THE USERS INPUT NACA DESIGNATION 23 | ! 24 | CALL DECODE(NACA,NA) 25 | ! 26 | ! CALCULATE THE AIRFOIL COORDINATES 27 | ! 28 | IF(PART)WRITE(6,1100) 29 | IF(PART .AND. NACA(6).EQ.A4HW)WRITE(6,1230) 30 | IF(PART .AND. NACA(6).EQ.A4HH)WRITE(6,1240) 31 | IF(PART .AND. NACA(6).EQ.A4HV)WRITE(6,1250) 32 | IF(PART .AND. NACA(6).EQ.A4HF)WRITE(6,1260) 33 | ! 34 | GO TO (1000,1010,1020,1030,1040,1050,1060), NA 35 | ! 36 | 1000 IF(PART)WRITE(6,1110)I,J,K,II 37 | ! 38 | !** CALCULATE NACA 4-DIGIT AIRFOIL COORDINATES 39 | ! 40 | CALL COORD4 41 | GO TO 1080 42 | 1010 IF(PART)WRITE(6,1120)I,J,K,II,KK,III 43 | ! 44 | !** CALCULATE NACA MODIFIED 4-DIGIT AIRFOIL COORDINATES 45 | ! 46 | CALL CORD4M 47 | GO TO 1080 48 | 1020 IF(PART)WRITE(6,1130)I,J,K,II,JJ 49 | ! 50 | !** CALCULATE NACA 5-DIGIT AIRFOIL COORDINATES 51 | ! 52 | CALL COORD5 53 | GO TO 1080 54 | 1030 IF(PART)WRITE(6,1140)I,J,K,II,JJ,III,JJJ 55 | ! 56 | !** CALCULATE NACA MODIFIED 5-DIGIT AIRFOIL COORDINATES 57 | ! 58 | CALL CORD5M 59 | GO TO 1080 60 | 1040 IF(PART)WRITE(6,1150)I,J,II,JJ,KK 61 | ! 62 | !** CALCULATE NACA 1-SERIES AIRFOIL COORDINATES 63 | ! 64 | CALL COORD1 65 | GO TO 1080 66 | 1050 IF(PART .AND. (K .EQ. 0 .AND. II .EQ. 0))& 67 | & WRITE(6,1160)I,J,JJ,KK,III 68 | IF(PART .AND. (K .NE. 0 .AND. II .EQ. 0))& 69 | & WRITE(6,1170)I,J,K,JJ,KK,III 70 | IF(PART .AND. (K .EQ. 0 .AND. II .NE. 0))& 71 | & WRITE(6,1180)I,J,JJ,KK,III 72 | IF(PART .AND. (K .NE. 0 .AND. II .NE. 0))& 73 | & WRITE(6,1190)I,J,K,JJ,KK,III 74 | IF(PART .AND. (JJJ .GE. 1)) WRITE(6,1200)JJJ 75 | ! 76 | !** CALCULATE NACA 6-SERIES AIRFOIL COORDINATES 77 | ! 78 | CALL COORD6 79 | GO TO 1080 80 | 1060 IF(I.NE.2)GO TO 1070 81 | J=5 82 | K=0 83 | II=0 84 | 1070 IF(PART)WRITE(6,1270)I,J,K,II,JJ,KK,III,JJJ,KKK,LLL 85 | ! 86 | !** CALCULATE GEOMTRY FOR SUPERSONIC AIRFOILS 87 | ! 88 | CALL CORDSP 89 | ! 90 | !** CALCULATE AIRFIOL SECTION X Y COORDINATES OR THICKNESS/CAMBER 91 | ! DISTRIBUTION 92 | ! 93 | CALL XYCORD(0,0) 94 | 1080 IF(PART)WRITE(6,1210) 95 | ! 96 | DO 1090 M=1,L 97 | THN2(M)=2.*THN(M) 98 | 1090 CONTINUE 99 | IF(PART)WRITE(6,1220)(XU(M),YUN(M),XL(M),YLN(M),X(M),CAM(M),& 100 | & THN2(M),M=1,L) 101 | RETURN 102 | ! 103 | 1100 FORMAT(1H1,29X,75HAUTOMATED STABILITY AND CONTROL METHODS PER APRI& 104 | &L 1976 VERSION OF DATCOM ) 105 | 1110 FORMAT(1H ,62X,6H NACA ,4I1) 106 | 1120 FORMAT(1H ,60X,6H NACA ,4I1,3H - ,2I1) 107 | 1130 FORMAT(1H ,62X,6H NACA ,5I1) 108 | 1140 FORMAT(1H ,60X,6H NACA ,5I1,3H - ,2I1) 109 | 1150 FORMAT(1H ,61X,6H NACA ,2I1,3H - ,3I1) 110 | 1160 FORMAT(1H ,62X,6H NACA ,2I1,1H-,3I1) 111 | 1170 FORMAT(1H ,60X,6H NACA ,2I1,1H,,I1,1H-,3I1) 112 | 1180 FORMAT(1H ,61X,6H NACA ,2I1,1HA,3I1) 113 | 1190 FORMAT(1H ,60X,6H NACA ,2I1,1H,,I1,1HA,3I1) 114 | 1200 FORMAT(1H ,65X,4HA=0.,I1) 115 | 1210 FORMAT(1H ,3X,15H UPPER ABSCISSA,4X,15H UPPER ORDINATE,4X,& 116 | & 15H LOWER ABSCISSA,4X,15H LOWER ORDINATE,6X,& 117 | & 16HX-FRACTION CHORD,4X,9HMEAN LINE,4X,9HTHICKNESS) 118 | 1220 FORMAT(8X,F8.5,11X,F8.5,10X,F8.5,10X,F8.5,13X,F8.5,10X,& 119 | & F8.5,6X,F8.5) 120 | 1230 FORMAT(1H ,55X,23HWING SECTION DEFINITION) 121 | 1240 FORMAT(1H ,50X,34HHORIZONTAL TAIL SECTION DEFINITION) 122 | 1250 FORMAT(1H ,51X,32HVERTICAL TAIL SECTION DEFINITION) 123 | 1260 FORMAT(1H ,52X,30HVENTRAL FIN SECTION DEFINITION ) 124 | 1270 FORMAT(1H ,54X,8H NACA S-,I1,1H-,2I1,1H.,I1,1H-,2I1,1H.,I1,& 125 | & 1H-,2I1,1H.,I1) 126 | END 127 | -------------------------------------------------------------------------------- /test/expected/atmos.f90: -------------------------------------------------------------------------------- 1 | SUBROUTINE ATMOS (A3,A8,A4) 2 | ! 3 | ! THIS ROUTINE CALCULATES ATMOSPHERIC PROPERTIES OF THE 4 | ! US STANDARD ATMOSPHERE,1962,ASSUMING AN INVERSE SQUARE 5 | ! GRAVITATIONAL FIELD. THIS ASSUMPTION YIELDS DATA THAT 6 | ! AGREES WITH THE COESA DOCUMENT WITHIN 1 PER CENT AT 7 | ! ALL ALTITUDES UP TO 700 KILOMETERS (2296588 FEET). THE 8 | ! DATA IS ARRANGED IN THE ATMOSPHERE ARRAY, A, AS 9 | ! FOLLOWS 10 | ! A(1) = CS, SPEED OF SOUND, FT/SEC 11 | ! A(2) = (1/CS)(DCS/DZ), SOUND DERIVATIVE, 1/FT 12 | ! A(3) = Z, GEOMETRIC ALTITUDE, FT 13 | ! A(4) = P, PRESSURE, LB/FT2 14 | ! A(5) = DP/DZ, PRESSURE DERIVATIVE, LB/FT3 15 | ! A(6) = RHO, DENSITY, SLUGS/FT3 16 | ! A(7) = (1/RHO)(DRHO/DZ), DENSITY DERIVATIVE, 1/FT 17 | ! A(8) = T, TEMPERATURE, DEG RANKINE 18 | ! A(9) = DT/DZ, TEMPERATURE DERIVATIVE, DEG RANKINE/FT 19 | ! 20 | ! VARIOUS CONSTANTS USED 21 | ! EARTH RADIUS = 20890855 FT 22 | ! SPECIFIC HEAT RATIO FOR AIR = 1.4 23 | ! SEA LEVEL VALUES 24 | ! GRAVITATIONAL ACCELERATION = 32.1740484 FT/SEC2 25 | ! MOLECULAR WEIGHT = 28.9644 26 | ! GO*MO/R* = 0.018743418 DEG RANK/FT 27 | ! 28 | DIMENSION A( 9),HG(10),ZM(14),WM(14),TM(23),PM(22) 29 | ! 30 | ! SET ARRAYS AND CONSTANT VALUES 31 | DATA G0,WM0,R0,GMRS/32.1740484,28.9644,20890855.0,& 32 | & 0.018743418/,HG/-16404.,0.0& 33 | & ,36089.,65617.,104987.,154199.,170604.,200131.,& 34 | & 250186.,291160./,ZM/295276.,328084.,& 35 | & 360892.,393701.,492126.,524934.,557743.,623360.,& 36 | & 754593.,984252.,1312336.,1640420.,1968504.,& 37 | & 2296588./,WM/28.9644,28.88,28.56,& 38 | & 28.07,26.92,26.66,26.4,25.85,24.7,22.66,19.94,& 39 | & 17.94,16.84,16.17/ 40 | ! 41 | DATA TM/577.17,518.67,389.97,389.97,411.57& 42 | & ,487.17,487.17,454.77,325.17,325.17,379.17,469.17& 43 | & ,649.17,1729.17,1999.17,2179.17,2431.17,2791.17& 44 | & ,3295.17,3889.17,4357.17,4663.17,4861.17/,PM/& 45 | & 3711.0839,2116.2165,472.67563,114.34314,& 46 | & 18.128355,2.3162178,1.2321972,3.8030279E-01,& 47 | & 2.1671352E-02,3.4313478E-03,6.2773411E-04,1.53490& 48 | &91E-04,5.2624212E-05,1.0561806E-05,7.7083076E-06,& 49 | & 5.8267151E-06,3.5159854E-06,1.4520255E-06,3.92905& 50 | &63E-07,8.4030242E-08,2.2835256E-08,7.1875452E-09/ 51 | ! 52 | A(3) = A3 53 | ! 54 | ! CALCULATE G, Z, AND CHECK 55 | ! 56 | 1000 Z = A(3) 57 | G = G0*(R0/(R0+Z))**2 58 | IF (Z .GT. 295276.0) GO TO 1040 59 | ! 60 | ! TMS LINEAR WITH GEOPOTENTIAL. CALCULATE H AND SEARCH 61 | ! 62 | H = R0*Z/(R0+Z) 63 | DO 1010 I= 2,10 64 | J = I - 1 65 | IF (HG(I) .GE. H) GO TO 1020 66 | 1010 CONTINUE 67 | ! 68 | ! CALCULATE TMS SLOPE,TMS, AND SET MOL WT STUFF 69 | ! 70 | 1020 ELH = (TM(J+1) - TM(J))/(HG(J+1) - HG(J)) 71 | TMS = TM(J) + ELH*(H - HG(J)) 72 | ELZ = ELH*G/G0 73 | DMDZ = 0.0 74 | EM = WM0 75 | ! 76 | ! CHECK TMS SLOPE AND CALCULATE PRESSURE 77 | ! 78 | IF (ELH .EQ. 0.0) GO TO 1030 79 | ! 80 | ! NON - ZERO SLOPE PRESSURE EQUATION 81 | ! 82 | A(4) = PM(J)*(TM(J)/TMS)**(GMRS/ELH) 83 | GO TO 1070 84 | ! 85 | ! ZERO SLOPE PRESSURE EQUATION 86 | ! 87 | 1030 A(4) = PM(J)*EXP(GMRS*(HG(J)-H)/TMS) 88 | GO TO 1070 89 | ! 90 | ! TMS LINEAR WITH Z. SEARCH MATRIX 91 | ! 92 | 1040 DO 1050 I = 2,14 93 | J = I + 8 94 | K = I - 1 95 | IF (ZM(I) .GE. Z) GO TO 1060 96 | 1050 CONTINUE 97 | ! 98 | ! CALCULATE TMS, SLOPE, AND STUFF 99 | ! 100 | 1060 ELZ = (TM(J+1) - TM(J))/(ZM(K+1) - ZM(K)) 101 | TMS = TM(J) + ELZ*(Z - ZM(K)) 102 | DMDZ = (WM(K+1) - WM(K))/(ZM(K+1) - ZM(K)) 103 | EM = WM(K) + DMDZ*(Z - ZM(K)) 104 | ZLZ = Z - TMS/ELZ 105 | ! 106 | ! PRESSURE EQUATION FOR TMS LINEAR WITH Z 107 | ! 108 | A(4) = PM(J)*EXP(GMRS/ELZ*(R0/(R0+ZLZ))**2*((Z-ZM(K))*& 109 | & (R0+ZLZ)/(R0+Z)/(R0+ZM(K)) - ALOG(TMS*(R0+ZM(K)& 110 | & )/TM(J)/(R0+Z)))) 111 | ! 112 | ! CALCULATE SOUND SPEED AND DERIVATIVE 113 | ! 114 | 1070 A(1) = 49.022164*SQRT(TMS) 115 | A(2) = 0.5*ELZ/TMS 116 | ! 117 | ! CALCULATE DENSITY, DERIVATIVE, AND PRESSURE DERIVATIVE 118 | ! 119 | A(6) = GMRS*A(4)/G0/TMS 120 | A(7) = - (A(6)*G/A(4) + ELZ/TMS) 121 | A(5) = -A(6)*G 122 | ! 123 | ! CALCULATE TEMPERATURE, DERIVATIVE, AND LEAVE 124 | ! 125 | A(8) = EM*TMS/WM0 126 | A(9) = (EM*ELZ + TMS*DMDZ)/WM0 127 | A8 = A(8) 128 | A4 = A(4) 129 | A1 = A(1) 130 | A6 = A(6) 131 | RETURN 132 | END 133 | -------------------------------------------------------------------------------- /test/expected/auxout.f90: -------------------------------------------------------------------------------- 1 | SUBROUTINE AUXOUT 2 | ! 3 | ! WRITE AUXILIARY AND PARTIAL OUTPUTS 4 | ! 5 | COMMON /OVERLY/ NLOG,NMACH,I,NALPHA,IG,NF,LF,K 6 | COMMON /IWING/ PWING, WING(400) 7 | COMMON /IHT/ PHT, HT(380) 8 | COMMON /IVT/ PVT, VT(380) 9 | COMMON /IVF/ PVF, VF(380) 10 | COMMON /FLGTCD/ FLC(160) 11 | COMMON /OPTION/ SREF, CBARR, ROUGFC, BLREF 12 | COMMON /SYNTSS/ SYNA(19) 13 | COMMON /POWR/ DYN(213) 14 | COMMON /WINGI/ WINGIN(100) 15 | COMMON /HTI/ HTIN(154) 16 | COMMON /VTI/ VTIN(154), TVTIN(8), VFIN(154) 17 | COMMON /WINGD/ A(195) 18 | COMMON /SBETA/ STB(135), TRA(108), TRAH(108), STBH(135) 19 | COMMON /BDATA/ BD(762) 20 | COMMON /WHWB/ FACT(182), WB(39), HB(39) 21 | COMMON /WBHCAL/ WBT(156) 22 | COMMON /HTDATA/ AHT(195) 23 | COMMON /VTDATA/ AVT(195), AVF(195) 24 | COMMON /WHAERO/ C(51), D(55), CHT(51), DHT(55), DVT(55), DVF(55) 25 | COMMON /SUPWBB/ SWB(61), SHB(61) 26 | COMMON /SUPBOD/ SBD(229) 27 | COMMON /SUPWH/ SLG(141), STG(141) 28 | COMMON /FLOLOG/ FLTC,OPTI,BO,WGPL,WGSC,SYNT,HTPL,HTSC,VTPL,VTSC,& 29 | & HEAD,PRPOWR,JETPOW,LOASRT,TVTPAN,SUPERS,SUBSON,& 30 | & TRANSN,HYPERS,SYMFP,ASYFP,TRIMC,TRIM,DAMP,& 31 | & HYPEF,TRAJET,BUILD,FIRST,DRCONV,PART,& 32 | & VFPL,VFSC,CTAB 33 | COMMON /CONSNT/ PI, DEG, UNUSED, RAD 34 | COMMON /LEVEL2/ SECOND(23) 35 | COMMON /CASEID/ IDCASE(74),KOUNT,NAMSV(100),IDIM 36 | ! 37 | DIMENSION STP(155),FOR1(34),FOR2(26),ICON(8),JCON(6),FOR3(14) 38 | DIMENSION H(1),O(1),P(1),Q(1),R(1),S(1),T(1),ANONE(20),KCON(3) 39 | DIMENSION SLA(31),FOR3A(3) 40 | DIMENSION ICONT(11), FOR(46), OPT(4) 41 | ! 42 | EQUIVALENCE (OPT(1),SREF) 43 | EQUIVALENCE (WBT(1),STP(1)) 44 | EQUIVALENCE (SLA(1),STB(1)),(DOL2,SECOND(16)) 45 | LOGICAL FLTC,OPTI,BO,WGPL,WGSC,SYNT,HTPL,HTSC,VTPL,VTSC,& 46 | & HEAD,PRPOWR,JETPOW,LOASRT,TVTPAN,SUPERS,SUBSON,& 47 | & TRANSN,HYPERS,SYMFP,ASYFP,TRIMC,TRIM,DAMP,& 48 | & HYPEF,TRAJET,BUILD,FIRST,DRCONV,PART,& 49 | & VFPL,VFSC,CTAB 50 | LOGICAL NN,NM,DOL2,SUPHYP 51 | CHARACTER*4 FOR,FOR1,FOR2,FOR3,FOR3A,FORSAV,FORSAW,FORSAX 52 | DATA FOR / 4H( ,4H1H0 ,& 53 | & 4H,0P ,4HF6.3,4H,1X ,4H,1X , 4H,1X,,4HF8.2,4H,1X ,4H,1X ,& 54 | & 4H,1X,,4HF8.2,4H,1X ,4H,2X , 4H,1P ,4HE10.,4H4 ,4H,3X ,& 55 | & 4H,0P ,4HF9.3,4H,1X ,4H,4X , 4H,1P ,4HE10.,4H4 ,4H,9X ,& 56 | & 4H,0P ,4HF9.3,4H,1X ,4H,1X , 4H,1X,,4HF8.3,4H,1X ,4H ,& 57 | & 4H,1X,,4HF8.3,4H,1X ,4H , 4H,1X,,4HF8.3,4H,1X ,4H ,& 58 | & 4H,1X,,4HF8.3,4H,1X ,4H) / 59 | DATA FOR1 /& 60 | & 4H(1H , 4H,10X, 4H,1X,, 4HE11.,& 61 | & 4H4,1X, 4H,1X , 4H,1X,, 4HF6. ,& 62 | & 4H2,1X, 4H,1X , 4H,1X,, 4HF5. ,& 63 | & 4H2,1X, 4H,2X , 4H,1X,, 4HF9. ,& 64 | & 4H4,1X, 4H,5X , 4H,1X,, 4HE11.,& 65 | & 4H4,1X, 4H,1X , 4H,1X,, 4HE11.,& 66 | & 4H4,1X, 4H,1X , 4H,1X,, 4HE11.,& 67 | & 4H4,1X, 4H,3X , 4H,1X,, 4HE11.,& 68 | & 4H4 , 4H) / 69 | DATA FOR2 /& 70 | & 4H(1H , 4H,13X, 4H,1X,, 4HF7. ,& 71 | & 4H3,1X, 4H,4X , 4H,1X,, 4HE11.,& 72 | & 4H4,1X, 4H,4X , 4H,1X,, 4HE11.,& 73 | & 4H4,1X, 4H,4X , 4H,1X,, 4HE11.,& 74 | & 4H4,1X, 4H,4X , 4H,1X,, 4HE11.,& 75 | & 4H4,1X, 4H,12X, 4H,1X,, 4HE11.,& 76 | & 4H4 , 4H) / 77 | DATA FOR3 /& 78 | & 4H( , 4H44X , 4H,1X,, 4HF7. ,& 79 | & 4H3,1X, 4H,5X , 4H,1X,, 4HE11.,& 80 | & 4H4,1X, 4H,5X , 4H,1X,, 4HE11.,& 81 | & 4H4 , 4H) / 82 | DATA ICON / 13,7,7,11,4*13 / 83 | DATA JCON / 9,5*13 / 84 | DATA KCON / 9,2*13 / 85 | DATA ICONT / 7, 10*10 / 86 | DATA FOR3A/4HE11.,4H4,1X,4H,5X / 87 | ! 88 | ! WRITE AUXILIARY OUTPUTS 89 | ! 90 | NN = .FALSE. 91 | NM = .FALSE. 92 | SUPHYP = SUPERS .OR. HYPERS 93 | ANA = 2.*UNUSED 94 | DO 1000 J=1,NALPHA 95 | 1000 ANONE(J) = ANA 96 | IF(BO) LAST=1 97 | IF(WGPL) LAST=2 98 | IF(HTPL) LAST=3 99 | IF(VTPL .OR. VFPL) LAST=4 100 | IF(BO .AND. WGPL) LAST=5 101 | IF(BO .AND. HTPL) LAST=6 102 | IF(BO .AND. (VTPL .OR. VFPL)) LAST=7 103 | IF(BO .AND. WGPL .AND. HTPL) LAST=8 104 | IF(BO .AND. WGPL .AND. (VTPL .OR. VFPL)) LAST=9 105 | IF(BO .AND. WGPL .AND. HTPL .AND. (VTPL .OR. VFPL)) LAST=10 106 | WRITE(6,1550 ) 107 | WRITE(6,1560 ) 108 | GO TO (1010 ,1020 ,1030 ,1040 ,1050 ,1060 ,1070 ,1080 ,109& 109 | &0 ,1100 ), LAST 110 | 1010 WRITE(6,1570 ) 111 | GO TO 1110 112 | 1020 WRITE(6,1580 ) 113 | GO TO 1110 114 | 1030 WRITE(6,1590 ) 115 | GO TO 1110 116 | 1040 WRITE(6,1600 ) 117 | GO TO 1110 118 | 1050 WRITE(6,1610 ) 119 | GO TO 1110 120 | 1060 WRITE(6,1620 ) 121 | GO TO 1110 122 | 1070 WRITE(6,1630 ) 123 | GO TO 1110 124 | 1080 WRITE(6,1640 ) 125 | GO TO 1110 126 | 1090 WRITE(6,1650 ) 127 | GO TO 1110 128 | 1100 WRITE(6,1660 ) 129 | 1110 IF(HEAD) CALL PRCSID 130 | WRITE(6,1670 ) 131 | IF(IDIM .EQ. 1) WRITE(6,1680 ) 132 | IF(IDIM .EQ. 2) WRITE(6,1690 ) 133 | IF(IDIM .EQ. 3) WRITE(6,1700 ) 134 | IF(IDIM .EQ. 4) WRITE(6,1710 ) 135 | SC = SYNA(13) 136 | XL = 1.0 137 | XR = 1.0 138 | XP = 1.0 139 | XT = 1.0 140 | IF(IDIM .EQ. 2) XL = 12.0 141 | IF(IDIM .EQ. 2) XP = 144.0 142 | IF(IDIM .GE. 3) XP = 0.0208854 143 | IF(IDIM .GE. 3) XR = 0.3048 144 | IF(IDIM .GE. 3) XT = 1.8 145 | IF(IDIM .EQ. 3) XL = 0.3048 146 | IF(IDIM .EQ. 4) XL = 30.48 147 | ALT = FLC(K+96) 148 | VINF = FLC(I+136) 149 | PINF = FLC(K+73) 150 | TINF = FLC(K+116) 151 | IF(ALT .NE. -UNUSED) ALT = ALT *XL 152 | IF(VINF .NE. -UNUSED) VINF = VINF*XL 153 | IF(PINF .NE. -UNUSED) PINF = PINF/XP 154 | IF(TINF .NE. -UNUSED) TINF = TINF/XT 155 | RN = FLC(I+42)/XR 156 | SRF = OPT(1)*XL*XL/(SC*SC) 157 | CBAR = OPT(2)*XL/SC 158 | BLRF = OPT(4)*XL/SC 159 | XCG = SYNA(1) 160 | ZCG = SYNA(5) 161 | IF(XCG .EQ. UNUSED) XCG = 0.0 162 | IF(ZCG .EQ. UNUSED) ZCG = 0.0 163 | IF(BD(11) .NE. UNUSED) XCG = XCG+BD(11) 164 | XBN = BD(11) 165 | XCG = XCG*XL/SC 166 | ZCG = ZCG*XL/SC 167 | CALL SWRITE(11,FOR,46,ICONT,1,FLC(I+2),ALT,VINF,PINF,& 168 | & TINF,RN,SRF,CBAR,BLRF,XCG,ZCG,DUM,& 169 | & DUM,DUM,NDMF,NAF) 170 | IF(VTPL) XCGMAC=(XCG-SYNA(9)*XL/SC-AVT(195)*XL/SC)-XBN*XL/SC 171 | IF(HTPL) XCGMAC=(XCG-SYNA(6)*XL/SC-AHT(195)*XL/SC)-XBN*XL/SC 172 | IF(WGPL) XCGMAC=(XCG-SYNA(2)*XL/SC-A (195)*XL/SC)-XBN*XL/SC 173 | IF(.NOT. BO) GO TO 1120 174 | ! 175 | ! WRITE BODY AUXILIARY OUTPUTS IF BODY PRESENT 176 | ! 177 | BD93 = BD(93)*XL*XL/(SC*SC) 178 | BD57 = BD(57)*XL*XL/(SC*SC) 179 | SBD19 = SBD(19)*XL*XL/(SC*SC) 180 | SBD111 = SBD(111)*XL*XL/(SC*SC) 181 | WRITE(6,1470 ) 182 | IF(SUBSON)CALL SWRITE(8,FOR1,34,ICON,1,BD93,XCG,ZCG,BD57,& 183 | & BD(61),BD(60),BD(59),ANA,O,P,Q,R,S,T,NN,NM) 184 | IF(TRANSN)CALL SWRITE(8,FOR1,34,ICON,1,BD93,XCG,ZCG,BD57,& 185 | & TRA(78),TRA(76),TRA(79),TRA(80),O,P,Q,R,S,T,NN,NM) 186 | IF(SUPHYP)CALL SWRITE(8,FOR1,34,ICON,1,SBD111,XCG,ZCG,SBD19,& 187 | & SBD(124),SBD(123),SBD(115),ANA,O,P,Q,R,S,T,NN,NM) 188 | 1120 IF(WGPL .OR. HTPL .OR. VTPL) WRITE(6,1480 ) XCGMAC 189 | ! 190 | ! WRITE WING DATA IF WING PRESENT 191 | ! 192 | IF(.NOT. WGPL) GO TO 1130 193 | WRITE(6,1490 ) 194 | IF(SUBSON)& 195 | & CALL AXPRNT(A,WINGIN,D(11),D(12),D(20),D(10),SYNA(2),& 196 | & NN,NM,XL,SC,XBN) 197 | IF(TRANSN)& 198 | & CALL AXPRNT(A,WINGIN,ANA,ANA,WING(1),TRA(42),SYNA(2),& 199 | & NN,NM,XL,SC,XBN) 200 | IF(SUPHYP)& 201 | & CALL AXPRNT(A,WINGIN,SLG(84),SLG(83),SLG(80),SLG(88),SYNA(2),& 202 | & NN,NM,XL,SC,XBN) 203 | ! 204 | ! WRITE H.T. DATA IF H.T. PRESENT 205 | ! 206 | 1130 IF(.NOT. HTPL) GO TO 1140 207 | WRITE(6,1500 ) 208 | IF(SUBSON)& 209 | & CALL AXPRNT(AHT,HTIN,DHT(11),DHT(12),DHT(20),DHT(10),SYNA(6),& 210 | & NN,NM,XL,SC,XBN) 211 | IF(TRANSN)& 212 | & CALL AXPRNT(AHT,HTIN,ANA,ANA,HT(1),TRAH(42),SYNA(6),& 213 | & NN,NM,XL,SC,XBN) 214 | IF(SUPHYP)& 215 | & CALL AXPRNT(AHT,HTIN,STG(84),STG(83),STG(80),STG(88),SYNA(6),& 216 | & NN,NM,XL,SC,XBN) 217 | ! 218 | ! WRITE V.T. DATA IF V.T. PRESENT 219 | ! 220 | 1140 IF(.NOT. VTPL) GO TO 1150 221 | WRITE(6,1510 ) 222 | IF(SUBSON)& 223 | & CALL AXPRNT(AVT,VTIN,DVT(11),DVT(12),DVT(20),DVT(10),SYNA(9),& 224 | & NN,NM,XL,SC,XBN) 225 | IF(TRANSN)& 226 | & CALL AXPRNT(AVT,VTIN,ANA,ANA,ANA,ANA,SYNA(9),& 227 | & NN,NM,XL,SC,XBN) 228 | IF(SUPHYP)& 229 | & CALL AXPRNT(AVT,VTIN,ANA,ANA,VT(1),ANA,SYNA(9),& 230 | & NN,NM,XL,SC,XBN) 231 | ! 232 | ! WRITE V.F. DATA IF V.F. PRESENT 233 | ! 234 | 1150 IF(.NOT. VFPL) GO TO 1160 235 | WRITE(6,1520 ) 236 | IF(SUBSON)& 237 | & CALL AXPRNT(AVF,VFIN,DVF(11),DVF(12),DVF(20),DVF(10),SYNA(12),& 238 | & NN,NM,XL,SC,XBN) 239 | IF(TRANSN)& 240 | & CALL AXPRNT(AVF,VFIN,ANA,ANA,ANA,ANA,SYNA(12),& 241 | & NN,NM,XL,SC,XBN) 242 | IF(SUPHYP)& 243 | & CALL AXPRNT(AVF,VFIN,ANA,ANA,VF(1),ANA,SYNA(12),& 244 | & NN,NM,XL,SC,XBN) 245 | 1160 IF(NN) WRITE(6,1770 ) 246 | IF(NM) WRITE(6,1780 ) 247 | NN = .FALSE. 248 | NM = .FALSE. 249 | ! 250 | !**** WRITE PARTIAL OUTPUTS 251 | ! 252 | IF(.NOT. BO) GO TO 1340 253 | IF(LAST .EQ. 1 .OR. LAST .EQ. 7) GO TO 1340 254 | WRITE(6,1550 ) 255 | WRITE(6,1560 ) 256 | GO TO (1170 ,1180 ,1190 ,1200 ,1210 ,1220 ,1230 ,1240 ,1250 ,1260& 257 | &), LAST 258 | 1170 WRITE(6,1570 ) 259 | GO TO 1270 260 | 1180 WRITE(6,1580 ) 261 | GO TO 1270 262 | 1190 WRITE(6,1590 ) 263 | GO TO 1270 264 | 1200 WRITE(6,1600 ) 265 | GO TO 1270 266 | 1210 WRITE(6,1610 ) 267 | GO TO 1270 268 | 1220 WRITE(6,1620 ) 269 | GO TO 1270 270 | 1230 WRITE(6,1630 ) 271 | GO TO 1270 272 | 1240 WRITE(6,1640 ) 273 | GO TO 1270 274 | 1250 WRITE(6,1650 ) 275 | GO TO 1270 276 | 1260 WRITE(6,1660 ) 277 | 1270 IF(HEAD) CALL PRCSID 278 | WRITE(6,1670 ) 279 | IF(IDIM .EQ. 1) WRITE(6,1680 ) 280 | IF(IDIM .EQ. 2) WRITE(6,1690 ) 281 | IF(IDIM .EQ. 3) WRITE(6,1700 ) 282 | IF(IDIM .EQ. 4) WRITE(6,1710 ) 283 | CALL SWRITE(11,FOR,46,ICONT,1,FLC(I+2),ALT,VINF,PINF,& 284 | & TINF,RN,SRF,CBAR,BLRF,XCG,ZCG,DUM,& 285 | & DUM,DUM,NDMF,NAF) 286 | IF(.NOT. WGPL) GO TO 1280 287 | IF(SUBSON)WRITE(6,1720 )WB(5),WB(4),WB(3),WB(2),WB(13) 288 | IF(TRANSN)WRITE(6,1720 )TRA(72),TRA(71),SWB(11),SWB(35),TRA(106) 289 | IF(SUPHYP)WRITE(6,1720 )SWB(7),SWB(33),SWB(11),SWB(35),SWB(8) 290 | 1280 IF(.NOT. HTPL) GO TO 1290 291 | IF(SUBSON)WRITE(6,1730 )WBT(4),WBT(3),WBT(2),WBT(1),HB(13) 292 | IF(TRANSN)WRITE(6,1730 )TRAH(72),TRAH(71),SHB(11),SHB(35),TRAH(106& 293 | &) 294 | IF(SUPHYP)WRITE(6,1730 )STP(68),STP(67),STP(65),STP(66),SHB(8) 295 | 1290 IF(.NOT. (WGPL .OR. HTPL)) GO TO 1340 296 | IF(STB(117) .EQ. UNUSED) GO TO 1300 297 | IF(WGPL .AND. (SUBSON .OR. TRANSN)) WRITE(6,1540 ) STB(117) 298 | 1300 IF(.NOT. SUBSON) GO TO 1310 299 | WRITE(6,1740 ) 300 | IF(WGPL .AND. HTPL)& 301 | & CALL SWRITE(6,FOR2,26,JCON,NALPHA,FLC(23),FACT(2),FACT(42),& 302 | & FACT(143),FACT(22),WBT(46),H,H,O,P,Q,R,S,T,NN,NM) 303 | IF(WGPL .AND. .NOT. HTPL)& 304 | & CALL SWRITE(6,FOR2,26,JCON,NALPHA,FLC(23),FACT(2),ANONE,& 305 | & ANONE,FACT(22),ANONE,H,H,O,P,Q,R,S,T,NN,NM) 306 | GO TO 1320 307 | 1310 IF(TRANSN) GO TO 1320 308 | WRITE(6,1740 ) 309 | IF(WGPL .AND. HTPL)& 310 | & CALL SWRITE(6,FOR2,26,JCON,NALPHA,FLC(23),SWB(12),STP(71),& 311 | & STP(133),SWB(40),STP(111),H,H,O,P,Q,R,S,T,NN,NM) 312 | IF(WGPL .AND. .NOT. HTPL)& 313 | & CALL SWRITE(6,FOR2,26,JCON,NALPHA,FLC(23),SWB(12),ANONE,& 314 | & ANONE,SWB(40),ANONE,H,H,O,P,Q,R,S,T,NN,NM) 315 | 1320 CONTINUE 316 | IF(TRANSN .OR. HYPERS .OR. .NOT. DAMP) GO TO 1330 317 | WRITE(6,1760 )DYN(176),DYN(68),DYN(95),DYN(177),DYN(180) 318 | WRITE(6,1790 ) 319 | KSAVE=KCON(1) 320 | KCON(1)=11 321 | FORSAV=FOR3(4) 322 | FORSAW=FOR3(5) 323 | FORSAX=FOR3(6) 324 | FOR3(4)=FOR3A(1) 325 | FOR3(5)=FOR3A(2) 326 | FOR3(6)=FOR3A(3) 327 | STB67=STB(67) 328 | SLA9=SLA(9) 329 | C4=C(4) 330 | CHT4=CHT(4) 331 | IF(STB(67) .EQ. UNUSED) STB67=2.*UNUSED 332 | IF(SLA(9) .EQ. UNUSED) SLA9=2.*UNUSED 333 | IF(C(4) .EQ. UNUSED) C4=2.*UNUSED 334 | IF(CHT(4) .EQ. UNUSED) CHT4=2.*UNUSED 335 | IF(SUBSON)CALL SWRITE(3,FOR3,14,KCON,1,STB67,C4,CHT4,& 336 | & H,O,P,Q,R,S,T,Q,R,S,T,NN,NM) 337 | IF(SUPERS)CALL SWRITE(3,FOR3,14,KCON,1,SLA9,C4,CHT4,& 338 | & H,O,P,Q,R,S,T,Q,R,S,T,NN,NM) 339 | KCON(1)=KSAVE 340 | FOR3(4)=FORSAV 341 | FOR3(5)=FORSAW 342 | FOR3(6)=FORSAX 343 | 1330 CONTINUE 344 | IF(.NOT. (WGPL .AND. HTPL)) GO TO 1340 345 | IF(WINGIN(4)/HTIN(4) .GE. 1.5) GO TO 1340 346 | WRITE(6,1750 ) 347 | CALL SWRITE(3,FOR3,14,KCON,NALPHA,FLC(23),FACT(102),FACT(122),& 348 | & H,O,P,Q,R,S,T,Q,R,S,T,NN,NM) 349 | 1340 CONTINUE 350 | IF(NN) WRITE(6,1770 ) 351 | IF(NM) WRITE(6,1780 ) 352 | IF(LAST .EQ. 1 .OR. LAST .EQ. 4 .OR. LAST .EQ. 7) GO TO 1460 353 | ! 354 | ! WRITE SECOND LEVEL METHOD DATA IF AVAILABLE 355 | ! 356 | IF(.NOT. TRANSN) GO TO 1460 357 | IF(.NOT. DOL2) GO TO 1460 358 | WRITE(6,1550 ) 359 | WRITE(6,1560 ) 360 | GO TO (1350 ,1360 ,1370 ,1380 ,1390 ,1400 ,1410 ,1420 ,1430 ,1440& 361 | &), LAST 362 | 1350 WRITE(6,1570 ) 363 | GO TO 1450 364 | 1360 WRITE(6,1580 ) 365 | GO TO 1450 366 | 1370 WRITE(6,1590 ) 367 | GO TO 1450 368 | 1380 WRITE(6,1600 ) 369 | GO TO 1450 370 | 1390 WRITE(6,1610 ) 371 | GO TO 1450 372 | 1400 WRITE(6,1620 ) 373 | GO TO 1450 374 | 1410 WRITE(6,1630 ) 375 | GO TO 1450 376 | 1420 WRITE(6,1640 ) 377 | GO TO 1450 378 | 1430 WRITE(6,1650 ) 379 | GO TO 1450 380 | 1440 WRITE(6,1660 ) 381 | 1450 IF(HEAD) CALL PRCSID 382 | WRITE(6,1670 ) 383 | IF(IDIM .EQ. 1) WRITE(6,1680 ) 384 | IF(IDIM .EQ. 2) WRITE(6,1690 ) 385 | IF(IDIM .EQ. 3) WRITE(6,1700 ) 386 | IF(IDIM .EQ. 4) WRITE(6,1710 ) 387 | CALL SWRITE(11,FOR,46,ICONT,1,FLC(I+2),ALT,VINF,PINF,& 388 | & TINF,RN,SRF,CBAR,BLRF,XCG,ZCG,DUM,& 389 | & DUM,DUM,NDMF,NAF) 390 | CALL PRNSEC(LAST) 391 | 1460 WRITE(6,1530 ) 392 | ! 393 | RETURN 394 | 1470 FORMAT(//55X,21HBASIC BODY PROPERTIES//12X,11HWETTED AREA,6X,& 395 | & 3HXCG,5X,3HZCG,5X,9HBASE AREA,5X,14HZERO LIFT DRAG,3X,& 396 | & 9HBASE DRAG,3X,13HFRICTION DRAG,3X,13HPRESSURE DRAG) 397 | 1480 FORMAT(//41X,45HXCG RELATIVE TO THEORETICAL LEADING EDGE MAC=,F7.2& 398 | & ///55X,25HBASIC PLANFORM PROPERTIES//36X,5HTAPER,5X,6HASPECT,3X,& 399 | & 13HQUARTER CHORD,13X,13HQUARTER CHORD,14X,9HZERO LIFT,4X,& 400 | & 8HFRICTION/25X,4HAREA,7X,5HRATIO,6X,5HRATIO,7X,5HSWEEP,8X,& 401 | & 3HMAC,8X,6HX(MAC),7X,6HY(MAC),8X,4HDRAG,5X,11HCOEFFICIENT) 402 | 1490 FORMAT(1H0,6X,4HWING) 403 | 1500 FORMAT(1H0,2X,15HHORIZONTAL TAIL) 404 | 1510 FORMAT(1H0,3X,13HVERTICAL TAIL) 405 | 1520 FORMAT(1H0,4X,11HVENTRAL FIN) 406 | 1530 FORMAT(1H1) 407 | 1540 FORMAT(1H0,38X,38HSIDEWASH, (1 + D(SIGMA)/D(BETA))QV/Q =,1PE14.7) 408 | 1550 FORMAT(1H1,29X,72HAUTOMATED STABILITY AND CONTROL METHODS PER APRI& 409 | &L 1976 VERSION OF DATCOM) 410 | 1560 FORMAT(45X,42HCONFIGURATION AUXILIARY AND PARTIAL OUTPUT) 411 | 1570 FORMAT(51X,31HDATCOM BODY ALONE CONFIGURATION) 412 | 1580 FORMAT(54X,24HWING ALONE CONFIGURATION) 413 | 1590 FORMAT(52X,29HHORIZONTAL TAIL CONFIGURATION) 414 | 1600 FORMAT(53X,27HVERTICAL TAIL CONFIGURATION) 415 | 1610 FORMAT(55X,23HWING-BODY CONFIGURATION) 416 | 1620 FORMAT(49X,34HBODY-HORIZONTAL TAIL CONFIGURATION) 417 | 1630 FORMAT(50X,32HBODY-VERTICAL TAIL CONFIGURATION) 418 | 1640 FORMAT(47X,39HWING-BODY-HORIZONTAL TAIL CONFIGURATION) 419 | 1650 FORMAT(48X,37HWING-BODY-VERTICAL TAIL CONFIGURATION) 420 | 1660 FORMAT(40X,53HWING-BODY-VERTICAL TAIL-HORIZONTAL TAIL CONFIGURATIO& 421 | &N) 422 | 1670 FORMAT(55H ----------------------- FLIGHT CONDITIONS ----------,& 423 | & 14H--------------,11X,25H-------------- REFERENCE,& 424 | & 25H DIMENSIONS ------------/2X,16HMACH ALTITUDE,& 425 | & 3X,48HVELOCITY PRESSURE TEMPERATURE REYNOLDS,& 426 | & 13X,47HREF. REFERENCE LENGTH MOMENT REF. CENTER/& 427 | & 7H NUMBER,55X,6HNUMBER,14X,4HAREA,7X,5HLONG.,5X,4HLAT.,& 428 | & 5X,15HHORIZ VERT) 429 | 1680 FORMAT(13X,2HFT,7X,6HFT/SEC,5X,8HLB/FT**2,7X,5HDEG R,9X,4H1/FT,& 430 | & 15X,5HFT**2,1X,4(7X,2HFT,1X)) 431 | 1690 FORMAT(13X,2HIN,7X,6HIN/SEC,5X,8HLB/IN**2,7X,5HDEG R,9X,4H1/FT,& 432 | & 15X,5HIN**2,1X,4(7X,2HIN,1X)) 433 | 1700 FORMAT(13X,2H M,7X,6H M/SEC,5X,8H N/ M**2,7X,5HDEG K,9X,4H1/ M,& 434 | & 15X,5H M**2,1X,4(7X,2H M,1X)) 435 | 1710 FORMAT(13X,2HCM,7X,6HCM/SEC,5X,8H N/CM**2,7X,5HDEG K,9X,4H1/ M,& 436 | & 15X,5HCM**2,1X,4(7X,2HCM,1X)) 437 | 1720 FORMAT(1H0,10X,9HCLA-B(W)=,1PE10.3,5X,9HCLA-W(B)=,E10.3,5X,& 438 | & 7HK-B(W)=,E10.3,5X,7HK-W(B)=,E10.3,5X,11HXAC/C-B(W)=,E10.3) 439 | 1730 FORMAT(1H0,10X,9HCLA-B(H)=,1PE10.3,5X,9HCLA-H(B)=,E10.3,5X,& 440 | & 7HK-B(H)=,E10.3,5X,7HK-H(B)=,E10.3,5X,11HXAC/C-B(H)=,E10.3) 441 | 1740 FORMAT(///16X,5HALPHA,9X,7HIV-B(W),10X,7HIV-W(H),& 442 | & 10X,7HIV-B(H),10X,6HGAMMA/,18X,6HGAMMA//78X,14H2*PI*ALPHA*V*R,& 443 | & 9X,17H(2*PI*ALPHA*V*R)T) 444 | 1750 FORMAT(///55X,25HCANARD EFFECTIVE DOWNWASH/47X,5HALPHA,6X,& 445 | & 12H(EPSOLN)EFF.,5X,23HD(EPSOLN)/D(ALPHA) EFF.) 446 | 1760 FORMAT(//50X,31HDYNAMIC DERIVATIVE INCREMENTALS /& 447 | & 10X,17HCLP(GAMMA=CL=0) =,1PE11.4,& 448 | & 5X,26HCLP(GAMMA)/CLP (GAMMA=0) =,E11.4,& 449 | & 6X,11HCNP/THETA =,E11.4/& 450 | & 30X,11HCYP/GAMMA =,E11.4,& 451 | & 20X,15HCYP/CL (CL=0) =,E11.4/) 452 | 1770 FORMAT(45H0*** NDM PRINTED WHEN NO DATCOM METHODS EXIST) 453 | 1780 FORMAT(42H0*** NA PRINTED WHEN METHOD NOT APPLICABLE) 454 | 1790 FORMAT(45X,9HCLB/GAMMA,8X,12H(CMO/THETA)W,5X,12H(CMO/THETA)H) 455 | END 456 | -------------------------------------------------------------------------------- /test/expected/fltcl.f90: -------------------------------------------------------------------------------- 1 | SUBROUTINE FLTCL(FOT,IFOT,NTRIM,CLUT,CDUT,CMUT,DELT,& 2 | & DCLT,DCLMT,DCDIT,DCDMT,CDHT,CLT,CDT,& 3 | & ICASE) 4 | ! 5 | COMMON /OPTION/ SREF,CBARR,ROUGFC,BLREF 6 | COMMON /CONSNT/ PI,DEG,UNUSED,RAD 7 | COMMON /FLGTCD/ FLC(156),WT,GAM,NALT,LOOP 8 | COMMON /OVERLY/ NLOG,NMACH,IM,NALPHA,IG,NF,LF,IALT 9 | COMMON /CASEID/ JCASE(175),IDIM 10 | ! 11 | DIMENSION FOT(46),IFOT(11),CLUT(20),CDUT(20),CMUT(20) 12 | DIMENSION DELT(20),DCLT(20),DCLMT(20),DCDIT(20),DCDMT(20) 13 | DIMENSION CDHT(20),CLT(20),CDT(20) 14 | DIMENSION CWT(20),MACH(20),PINF(20) 15 | DIMENSION ALP(1),CL(1),CD(1),CLUE(1),CDUE(1),CMUE(1) 16 | DIMENSION DELE(1),DCLE(1),CLME(1),CLIE(1),CDME(1),CHDE(1) 17 | DIMENSION CHAE(1),WDIM(4),ROUTID(2),CC(6) 18 | ! 19 | LOGICAL FLAG 20 | CHARACTER*4 FOT 21 | REAL MACH 22 | EQUIVALENCE (MACH(1),FLC(3)),(PINF(1),FLC(74)) 23 | ! 24 | DATA WDIM / 4H LB., 4H LB., 4H N. , 4H N. / 25 | DATA ROUTID / 4HFLTC, 4HL / 26 | ! 27 | !*** ICASE = 1 - TRIM WITH FLAPS 28 | !*** ICASE = 2 - ALL MOVEABLE HORIZONTAL TAIL TRIM 29 | ! 30 | IF(ICASE .NE. 1) GO TO 1010 31 | DO 1000 I=1,NTRIM 32 | CLT(I) = CLUT(I)+DCLT(I) 33 | CDT(I) = CDUT(I)+DCDMT(I)+DCDIT(I) 34 | 1000 CONTINUE 35 | 1010 CONTINUE 36 | ! 37 | !*** CALCULATE CW AND TEST FOR CWT RANGE 38 | ! 39 | QS = SREF*(0.7*PINF(IALT)*MACH(IM)**2) 40 | CW = WT/QS 41 | DO 1020 I=1,NTRIM 42 | CWT(I) = CLT(I)*COS(GAM/RAD)-CDT(I)*SIN(GAM/RAD) 43 | 1020 CONTINUE 44 | FLAG = (CW .GT. CWT(NTRIM)) .OR. (CW .LT. CWT(1)) 45 | IF(FLAG) WRITE(6,1060)WT,WDIM(IDIM),CW 46 | ! 47 | !*** FIND EQUILIBRIUM ANGLE OF ATTACK AND TRIM DATA 48 | ! 49 | IF(FLAG) GO TO 1050 50 | IN=0 51 | CALL TBFUNX(CW,ALP(1),DYDX,NTRIM,CWT,FLC(23),CC,IN,& 52 | & MI,NG,0,0,4HALPE,1,ROUTID) 53 | IN=0 54 | CALL TBFUNX(ALP(1),CL(1),DYDX,NTRIM,FLC(23),CLT,CC,IN,& 55 | & MI,NG,0,0,4HCLTE,1,ROUTID) 56 | IN=0 57 | CALL TBFUNX(ALP(1),CD(1),DYDX,NTRIM,FLC(23),CDT,CC,IN,& 58 | & MI,NG,0,0,4HCDTE,1,ROUTID) 59 | IF(ICASE .NE. 1)GO TO 1030 60 | IN = 0 61 | CALL TBFUNX(ALP(1),CLUE(1),DYDX,NTRIM,FLC(23),CLUT,CC,IN,& 62 | & MI,NG,0,0,4HCLUE,1,ROUTID) 63 | IN = 0 64 | CALL TBFUNX(ALP(1),CDUE(1),DYDX,NTRIM,FLC(23),CDUT,CC,IN,& 65 | & MI,NG,0,0,4HCDUE,1,ROUTID) 66 | IN = 0 67 | CALL TBFUNX(ALP(1),CMUE(1),DYDX,NTRIM,FLC(23),CMUT,CC,IN,& 68 | & MI,NG,0,0,4HCMUE,1,ROUTID) 69 | IN = 0 70 | CALL TBFUNX(ALP(1),DELE(1),DYDX,NTRIM,FLC(23),DELT,CC,IN,& 71 | & MI,NG,0,0,4HDELE,1,ROUTID) 72 | IN = 0 73 | CALL TBFUNX(ALP(1),DCLE(1),DYDX,NTRIM,FLC(23),DCLT,CC,IN,& 74 | & MI,NG,0,0,4HDCLE,1,ROUTID) 75 | IN = 0 76 | CALL TBFUNX(ALP(1),CLME(1),DYDX,NTRIM,FLC(23),DCLMT,CC,IN,& 77 | & MI,NG,0,0,4HCLME,1,ROUTID) 78 | IN = 0 79 | CALL TBFUNX(ALP(1),CLIE(1),DYDX,NTRIM,FLC(23),DCLIT,CC,IN,& 80 | & MI,NG,0,0,4HCLIE,1,ROUTID) 81 | IN = 0 82 | CALL TBFUNX(ALP(1),CDME(1),DYDX,NTRIM,FLC(23),DCDMT,CC,IN,& 83 | & MI,NG,0,0,4HCDME,1,ROUTID) 84 | IN = 0 85 | CALL TBFUNX(ALP(1),CHDE(1),DYDX,NTRIM,FLC(23),CHDT,CC,IN,& 86 | & MI,NG,0,0,4HCHDE,1,ROUTID) 87 | CHAE(1) = 0.0 88 | WRITE(6,1070) 89 | CALL SWRITE(11,FOT,46,IFOT,1,ALP,CLUE,CDUE,CMUE,& 90 | & DELE,DCLE,CLME,CDIE,CDME,CHAE,CHDE,& 91 | & X,X,X,NDM,NAF) 92 | 1030 CONTINUE 93 | IF(ICASE .NE. 2) GO TO 1040 94 | WRITE(6,1070) 95 | WRITE(6,1080) ALP(1),CL,CD 96 | 1040 CONTINUE 97 | 1050 CONTINUE 98 | RETURN 99 | 1060 FORMAT(39H0*** REQUIRED LIFT COEFFICIENT EXCEEDS ,& 100 | & 18HRANGE OF TRIM DATA /& 101 | & 22H0*** VEHICLE WEIGHT = ,F9.2,A4/& 102 | & 36H0*** LEVEL FLIGHT LIFT COEFFICIENT = ,F8.5) 103 | 1070 FORMAT(1H ) 104 | 1080 FORMAT(1H0,52X,F5.1,3X,F6.3,3X,F6.3) 105 | END 106 | -------------------------------------------------------------------------------- /test/expected/outpt2.f90: -------------------------------------------------------------------------------- 1 | SUBROUTINE OUTPT2 2 | ! 3 | ! THIS SUBROUTINE WRITES THE HIGH LIFT AND CONTROL DATA 4 | ! 5 | COMMON /FLAPIN/ F(138) 6 | COMMON /SYNTSS/ SYNA(19) 7 | COMMON /FLGTCD/ FLC(160) 8 | COMMON /OPTION/ OPT(4) 9 | COMMON /CONSNT/ PI, DEG, UNUSED, RAD 10 | COMMON /POWR/ PW(315) 11 | COMMON /OVERLY/ NLOG,NMACH,M,NALPHA,IG,NF,LF,K 12 | COMMON /WINGI/ WINGIN(101) 13 | COMMON /HTI/ HTIN(131) 14 | COMMON /BDATA/ BD(762) 15 | COMMON /CASEID/ IDCASE(74),KOUNT,NAMSV(100),IDIM 16 | COMMON /FLOLOG/ FLTC,OPTI,BO,WGPL,WGSC,SYNT,HTPL,HTSC,VTPL,VTSC,& 17 | & HEAD,PRPOWR,JETPOW,LOASRT,TVTPAN,SUPERS,SUBSON,& 18 | & TRANSN,HYPERS,SYMFP,ASYFP,TRIMC,TRIM,DAMP,& 19 | & HYPEF,TRAJET,BUILD,FIRST,DRCONV,PART,& 20 | & VFPL,VFSC,CTAB 21 | DIMENSION TRM(22), TRM2(22), ALPHA(20) 22 | EQUIVALENCE (TRM(1),TRM2(1),PW(294)), (ALPHA(1),FLC(23)) 23 | LOGICAL FLTC,OPTI,BO,WGPL,WGSC,SYNT,HTPL,HTSC,VTPL,VTSC,& 24 | & HEAD,PRPOWR,JETPOW,LOASRT,TVTPAN,SUPERS,SUBSON,& 25 | & TRANSN,HYPERS,SYMFP,ASYFP,TRIMC,TRIM,DAMP,& 26 | & HYPEF,TRAJET,BUILD,FIRST,DRCONV,PART,& 27 | & VFPL,VFSC,CTAB 28 | LOGICAL NDMF,NAF,FLAG 29 | ! 30 | COMMON /IBODY/ PBODY, BODY(400) 31 | COMMON /IWING/ PWING, WING(400) 32 | COMMON /IHT/ PHT, HT(380) 33 | COMMON /IVT/ PVT, VT(380) 34 | COMMON /IBW/ PBW, BW(380) 35 | COMMON /IBH/ PBH, BH(380) 36 | COMMON /IBV/ PBV, BV(380) 37 | COMMON /IBWH/ PBWH, BWH(380) 38 | COMMON /IBWHV/ PBWHV, BWHV(380) 39 | ! 40 | ! SYMMETRICAL FLAP DATA DEFINITION 41 | ! 42 | DIMENSION DCDI(200), DCL(10), DCM(10), DCLMAX(10), DCDMIN(10),& 43 | & DCLAD(10), CHA(10), CHD(10) 44 | DIMENSION DELTA(10) 45 | EQUIVALENCE (DCDI(1),BODY(201)), (DCL(1),WING(201)),& 46 | & (DCM(1),WING(211)), (DCLMAX(1),WING(221)),& 47 | & (DCDMIN(1),WING(231)), (DCLAD(1),WING(241)),& 48 | & (CHA(1),WING(251)), (CHD(1),WING(261)) 49 | EQUIVALENCE (DELTA(1),F(1)), (FTYPE,F(17)) 50 | ! 51 | ! CONTROL TAB DATA DEFINITION 52 | ! 53 | DIMENSION CHCTF(20,9),CHCTL(20,9),DCHCG(20,9),CFC(20,9),& 54 | & FC(20,9),DTT(20,9) 55 | EQUIVALENCE (CFC(1,1),FC(1,1),BW(201)),(CHCTF(1,1),BH(201)),& 56 | & (CHCTL(1,1),BV(201)),(DCHCG(1,1),BWH(201)),& 57 | & (DTT(1,1),BWHV(201)) 58 | ! 59 | ! ASYMMETRICAL FLAP DATA DEFINITION 60 | ! 61 | DIMENSION CNAD(200), CLAD(200), DDELTA(10), CLD(10), CND(10) 62 | DIMENSION DELTAD(10), DELTAL(10), DELTAR(10), DELTAS(10),& 63 | & XSOC(10), HSOC(10) 64 | EQUIVALENCE (CNAD(1),BODY(201)), (CLAD(1),WING(201)),& 65 | & (DELTAD(1),F(1)), (STYPE,F(18)), (DELTAL(1),F(19)),& 66 | & (DELTAR(1),F(29)), (DELTAS(1),F(39)),& 67 | & (XSOC(1),F(49)), (HSOC(1),F(60)), (DDELTA(1),HT(201)),& 68 | & (CLD(1),HT(211)), (CND(1),HT(221)) 69 | ! 70 | ! TRIM DATA DEFINITION 71 | ! 72 | DIMENSION CLUT(20), CDUT(20), CMUT(20), DELT(20), DCLT(20),& 73 | & DCLMT(20), DCDIT(20), DCDMT(20), CHAT(20), CHDT(20) 74 | DIMENSION HMUNT(20), ALINT(20), CDTRM(20), CLTRM(20), CMTRM(20),& 75 | & HMTRM(20), CDWBT(20), CLWBT(20) 76 | EQUIVALENCE (CLUT(1),HT(201)), (CDUT(1),HT(221)),& 77 | & (CMUT(1),HT(241)), (DELT(1),VT(201)), (DCLT(1),VT(221)),& 78 | & (DCLMT(1),VT(241)), (DCDIT(1),VT(261)),& 79 | & (DCDMT(1),VT(281)), (CHAT(1),VT(301)),& 80 | & (CHDT(1),VT(321)) 81 | EQUIVALENCE (HMUNT(1),HT(201)), (ALINT(1),HT(221)),& 82 | & (CDTRM(1),HT(241)), (CLTRM(1),HT(261)),& 83 | & (CMTRM(1),HT(281)), (HMTRM(1),HT(301)),& 84 | & (CDWBT(1),VT(201)), (CLWBT(1),VT(221)) 85 | DIMENSION FOR(34), IFOR(8) 86 | DIMENSION FOT(46), IFOT(11) 87 | DIMENSION IFOH(11), FOH(46) 88 | CHARACTER*4 FOR,FOT,FOH 89 | ! 90 | DATA FOR /& 91 | & 4H(0P , 4H5X , 4H,1X , 4H,F5., 4H1,1X, 4H,2X ,& 92 | & 4H,1X , 4H,F6., 4H3 , 4H,4X ,& 93 | & 4H , 4H,F7., 4H4 , 4H,3X ,& 94 | & 4H,1X , 4H,F6., 4H3 , 4H,6X ,& 95 | & 4H , 4H,F7., 4H5 , 4H,15X,& 96 | & 4H,1P , 4H E10, 4H.3 , 4H,2X ,& 97 | & 4H,1P , 4H E10, 4H.3 , 4H,2X ,& 98 | & 4H,1P , 4H E10, 4H.3 , 4H) / 99 | DATA IFOR / 5*7, 3*10 / 100 | ! 101 | DATA FOT /& 102 | & 4H(0P , 4H4X , 4H,1X , 4H,F5., 4H1,1X, 4H,1X ,& 103 | & 4H,1X , 4H,F6., 4H3 , 4H,3X ,& 104 | & 4H,1X , 4H,F6., 4H3 , 4H,3X ,& 105 | & 4H , 4H,F7., 4H4 , 4H,2X ,& 106 | & 4H,1X , 4H,F5., 4H1,1X, 4H,1X ,& 107 | & 4H,1X , 4H,F6., 4H3 , 4H,4X ,& 108 | & 4H,1X , 4H,F6., 4H3 , 4H,5X ,& 109 | & 4H,1P , 4H E9., 4H2 , 4H,2X ,& 110 | & 4H,0P , 4H F8., 4H5,1X, 4H,2X ,& 111 | & 4H,1P , 4H E10, 4H.3 , 4H,3X ,& 112 | & 4H,1P , 4H E10, 4H.3 , 4H) / 113 | DATA IFOT / 7*7, 2*9, 2*10 / 114 | DATA IFOH / 8, 10*10 / 115 | DATA FOH / 4H( ,4H1H0 ,& 116 | & 4H,0P ,4HF6.3,4H,1X ,4H,1X , 4H,1X,,4HF8.2,4H,1X ,4H,1X ,& 117 | & 4H,1X,,4HF8.2,4H,1X ,4H,2X , 4H,1P ,4HE10.,4H4 ,4H,3X ,& 118 | & 4H,0P ,4HF9.3,4H,1X ,4H,4X , 4H,1P ,4HE10.,4H4 ,4H,9X ,& 119 | & 4H,0P ,4HF9.3,4H,1X ,4H,1X , 4H,1X,,4HF8.3,4H,1X ,4H ,& 120 | & 4H,1X,,4HF8.3,4H,1X ,4H , 4H,1X,,4HF8.3,4H,1X ,4H ,& 121 | & 4H,1X,,4HF8.3,4H,1X ,4H) / 122 | ! 123 | ! 124 | DATA WINGP / 4HWING /, TAILP / 4HTAIL /, STRA / 4HSTRA / 125 | ! 126 | NDELTA = F(16)+0.5 127 | SC = SYNA(13) 128 | XL = 1.0 129 | XR = 1.0 130 | XP = 1.0 131 | XT = 1.0 132 | IF(IDIM .EQ. 2) XL = 12.0 133 | IF(IDIM .EQ. 2) XP = 144.0 134 | IF(IDIM .GE. 3) XP = 0.0208854 135 | IF(IDIM .GE. 3) XR = 0.3048 136 | IF(IDIM .GE. 3) XT = 1.8 137 | IF(IDIM .EQ. 3) XL = 0.3048 138 | IF(IDIM .EQ. 4) XL = 30.48 139 | ALT = FLC(K+96) 140 | VINF = FLC(M+136) 141 | PINF = FLC(K+73) 142 | TINF = FLC(K+116) 143 | IF(ALT .NE. -UNUSED) ALT = ALT *XL 144 | IF(VINF .NE. -UNUSED) VINF = VINF*XL 145 | IF(PINF .NE. -UNUSED) PINF = PINF*XP 146 | IF(TINF .NE. -UNUSED) TINF = TINF*XT 147 | RN = FLC(M+42)*XR 148 | SREF = OPT(1)*XL*XL/(SC*SC) 149 | CBAR = OPT(2)*XL/SC 150 | BLRF = OPT(4)*XL/SC 151 | XCG = SYNA(1) 152 | ZCG = SYNA(5) 153 | IF(XCG .EQ. UNUSED) XCG = 0.0 154 | IF(ZCG .EQ. UNUSED) ZCG = 0.0 155 | IF(BD(11) .NE. UNUSED) XCG = XCG+BD(11) 156 | XCG = XCG*XL/SC 157 | ZCG = ZCG*XL/SC 158 | ! 159 | ! SYMMETRICAL FLAP DATA 160 | ! 161 | FLAG = (FLC(157) .NE. UNUSED) .AND. (FLC(K+72) .NE. UNUSED) 162 | NDMF = .FALSE. 163 | NAF = .FALSE. 164 | IF (.NOT. SYMFP) GO TO 1020 165 | WRITE(6,1340) 166 | VWGTL = WINGP 167 | IF(WGPL .AND. HTPL) VWGTL = TAILP 168 | IF(FTYPE .EQ. 1.0) WRITE(6,1350) VWGTL 169 | IF(FTYPE .EQ. 2.0) WRITE(6,1360) VWGTL 170 | IF(FTYPE .EQ. 3.0) WRITE(6,1370) VWGTL 171 | IF(FTYPE .EQ. 4.0) WRITE(6,1380) VWGTL 172 | IF(FTYPE .EQ. 5.0) WRITE(6,1390) VWGTL 173 | IF(FTYPE .EQ. 6.0) WRITE(6,1400) VWGTL 174 | IF(FTYPE .EQ. 7.0) WRITE(6,1410) VWGTL 175 | IF(HEAD) CALL PRCSID 176 | WRITE(6,1420) 177 | IF(IDIM .EQ. 1) WRITE(6,1430) 178 | IF(IDIM .EQ. 2) WRITE(6,1440) 179 | IF(IDIM .EQ. 3) WRITE(6,1450) 180 | IF(IDIM .EQ. 4) WRITE(6,1460) 181 | CALL SWRITE(11,FOH,46,IFOH,1,FLC(M+2),ALT,VINF,PINF,& 182 | & TINF,RN,SREF,CBAR,BLRF,XCG,ZCG,DUM,& 183 | & DUM,DUM,NDMF,NAF) 184 | ! 185 | WRITE(6,1470) 186 | CALL SWRITE(8,FOR,34,IFOR,NDELTA,DELTA,DCL,DCM,DCLMAX,& 187 | & DCDMIN,DCLAD,CHA,CHD,X,X,X,X,X,X,NDMF,NAF) 188 | IF(.NOT. SUBSON .OR. FTYPE .GE. 7) GO TO 1010 189 | WRITE(6,1480) 190 | WRITE(6,1490) (DELTA(I),I=1,NDELTA) 191 | WRITE(6,1500) 192 | IS = NALPHA*NDELTA 193 | DO 1000 I=1,NALPHA 194 | WRITE(6,1510) ALPHA(I), (DCDI(J),J=I,IS,NALPHA) 195 | 1000 CONTINUE 196 | 1010 IF(.NOT. SUPERS) GO TO 1020 197 | WRITE(6,1310) 198 | WRITE(6,1320) 199 | WRITE(6,1330) 200 | 1020 CONTINUE 201 | ! 202 | ! CONTROL TAB OUTPUT 203 | ! 204 | IF(.NOT. CTAB) GO TO 1030 205 | ITYPE=F(116)+0.5 206 | WRITE(6,1340) 207 | IF(ITYPE .EQ. 1)WRITE(6,1770) 208 | IF(ITYPE .EQ. 2)WRITE(6,1780) 209 | IF(ITYPE .EQ. 3)WRITE(6,1790) 210 | IF(HEAD)CALL PRCSID 211 | WRITE(6,1420) 212 | IF(IDIM .EQ. 1) WRITE(6,1430) 213 | IF(IDIM .EQ. 2) WRITE(6,1440) 214 | IF(IDIM .EQ. 3) WRITE(6,1450) 215 | IF(IDIM .EQ. 4) WRITE(6,1460) 216 | CALL SWRITE(11,FOH,46,IFOH,1,FLC(M+2),ALT,VINF,PINF,& 217 | & TINF,RN,SREF,CBAR,BLRF,XCG,ZCG,DUM,& 218 | & DUM,DUM,NDMF,NAF) 219 | IF(FLC(M+73) .NE. UNUSED) WRITE(6,1800) 220 | IF(FLC(M+73) .EQ. UNUSED) WRITE(6,1810) 221 | WRITE(6,1490) (DELTA(I),I=1,NDELTA) 222 | WRITE(6,1500) 223 | WRITE(6,1510) ((FC(I,J),J=1,NDELTA), I=1,NALPHA) 224 | WRITE(6,1820) 225 | ! 226 | WRITE(6,1830) 227 | WRITE(6,1490) (DELTA(I), I=1,NDELTA) 228 | WRITE(6,1500) 229 | WRITE(6,1510) ((CHCTF(I,J), J=1,NDELTA), I=1,NALPHA) 230 | ! 231 | WRITE(6,1340) 232 | IF(ITYPE .EQ. 1)WRITE(6,1770) 233 | IF(ITYPE .EQ. 2)WRITE(6,1780) 234 | IF(ITYPE .EQ. 3)WRITE(6,1790) 235 | IF(HEAD)CALL PRCSID 236 | WRITE(6,1420) 237 | IF(IDIM .EQ. 1) WRITE(6,1430) 238 | IF(IDIM .EQ. 2) WRITE(6,1440) 239 | IF(IDIM .EQ. 3) WRITE(6,1450) 240 | IF(IDIM .EQ. 4) WRITE(6,1460) 241 | CALL SWRITE(11,FOH,46,IFOH,1,FLC(M+2),ALT,VINF,PINF,& 242 | & TINF,RN,SREF,CBAR,BLRF,XCG,ZCG,DUM,& 243 | & DUM,DUM,NDMF,NAF) 244 | WRITE(6,1840) 245 | WRITE(6,1490) (DELTA(I), I=1,NDELTA) 246 | WRITE(6,1500) 247 | WRITE(6,1510) ((CHCTL(I,J), J=1,NDELTA), I=1,NALPHA) 248 | WRITE(6,1820) 249 | ! 250 | WRITE(6,1850) 251 | WRITE(6,1490) (DELTA(I), I=1,NDELTA) 252 | WRITE(6,1500) 253 | WRITE(6,1510) ((DCHCG(I,J), J=1,NDELTA), I=1,NALPHA) 254 | ! 255 | IF(ITYPE .EQ. 1) GO TO 1030 256 | WRITE(6,1340) 257 | IF(ITYPE .EQ. 1)WRITE(6,1770) 258 | IF(ITYPE .EQ. 2)WRITE(6,1780) 259 | IF(ITYPE .EQ. 3)WRITE(6,1790) 260 | IF(HEAD)CALL PRCSID 261 | WRITE(6,1420) 262 | IF(IDIM .EQ. 1) WRITE(6,1430) 263 | IF(IDIM .EQ. 2) WRITE(6,1440) 264 | IF(IDIM .EQ. 3) WRITE(6,1450) 265 | IF(IDIM .EQ. 4) WRITE(6,1460) 266 | CALL SWRITE(11,FOH,46,IFOH,1,FLC(M+2),ALT,VINF,PINF,& 267 | & TINF,RN,SREF,CBAR,BLRF,XCG,ZCG,DUM,& 268 | & DUM,DUM,NDMF,NAF) 269 | WRITE(6,1860) 270 | WRITE(6,1490) (DELTA(I), I=1,NDELTA) 271 | WRITE(6,1500) 272 | WRITE(6,1510) ((DTT(I,J), J=1,NDELTA), I=1,NALPHA) 273 | 1030 CONTINUE 274 | ! 275 | ! ASYMMETRICAL FLAP OUTPUT 276 | ! 277 | IF(.NOT. ASYFP) GO TO 1120 278 | WRITE(6,1340) 279 | IF(STYPE .EQ. 1.0) WRITE(6,1570) 280 | IF(STYPE .EQ. 2.0) WRITE(6,1580) 281 | IF(STYPE .EQ. 3.0) WRITE(6,1590) 282 | IF(STYPE .EQ. 4.0) WRITE(6,1600) 283 | IF(STYPE .EQ. 5.0) WRITE(6,1520) 284 | IF(HEAD) CALL PRCSID 285 | WRITE(6,1420) 286 | IF(IDIM .EQ. 1) WRITE(6,1430) 287 | IF(IDIM .EQ. 2) WRITE(6,1440) 288 | IF(IDIM .EQ. 3) WRITE(6,1450) 289 | IF(IDIM .EQ. 4) WRITE(6,1460) 290 | CALL SWRITE(11,FOH,46,IFOH,1,FLC(M+2),ALT,VINF,PINF,& 291 | & TINF,RN,SREF,CBAR,BLRF,XCG,ZCG,DUM,& 292 | & DUM,DUM,NDMF,NAF) 293 | ! 294 | IF(STYPE .GT. 2) GO TO 1050 295 | IF(SUPERS) GO TO 1040 296 | WRITE(6,1700) 297 | IF(SUBSON) WRITE(6,1710) (XSOC(I), HSOC(I),& 298 | & DELTAS(I), CLD(I), CND(I), I=1,NDELTA) 299 | IF(TRANSN) WRITE(6,1290) (XSOC(I), HSOC(I),& 300 | & DELTAS(I), CLD(I), I=1,NDELTA) 301 | GO TO 1050 302 | 1040 WRITE(6,1260) 303 | WRITE(6,1270) (DELTAS(I), CLD(I), CND(I), I=1,NDELTA) 304 | 1050 CONTINUE 305 | IF(STYPE .NE. 3.0) GO TO 1060 306 | IF(SUPERS) WRITE(6,1280) 307 | IF(SUPERS) GO TO 1060 308 | WRITE(6,1680) 309 | IF(SUBSON) WRITE(6,1690) (XSOC(I), HSOC(I), DELTAD(I),& 310 | & DELTAS(I), CLD(I), CND(I), I=1,NDELTA) 311 | IF(TRANSN) WRITE(6,1300) (XSOC(I), HSOC(I), DELTAD(I),& 312 | & DELTAS(I), CLD(I), I=1,NDELTA) 313 | 1060 CONTINUE 314 | IF(STYPE .NE. 4.0) GO TO 1090 315 | WRITE(6,1610) 316 | WRITE(6,1540) (DDELTA(I), I=1,NDELTA) 317 | WRITE(6,1550) 318 | IF(CLD(1) .EQ. UNUSED) GO TO 1080 319 | IS = 1 320 | ISS = NDELTA 321 | IDEL = NDELTA 322 | IF(SUPERS) IDEL = 10 323 | DO 1070 I=1,NALPHA 324 | WRITE(6,1560) ALPHA(I), (CNAD(J), J=IS,ISS) 325 | IS = IS+IDEL 326 | ISS = ISS+IDEL 327 | 1070 CONTINUE 328 | WRITE(6,1620) (DELTAL(I), DELTAR(I), CLD(I),& 329 | & I=1,NDELTA) 330 | IF(.NOT. SUPERS) GO TO 1090 331 | WRITE(6,1310) 332 | WRITE(6,1320) 333 | GO TO 1090 334 | 1080 WRITE(6,1280) 335 | 1090 CONTINUE 336 | IF(STYPE .NE. 5.0) GO TO 1120 337 | IF(TRANSN) GO TO 1110 338 | WRITE(6,1530) 339 | WRITE(6,1540) (DDELTA(I), I=1,NDELTA) 340 | WRITE(6,1550) 341 | IS = 1 342 | ISS = NDELTA 343 | DO 1100 I=1,NALPHA 344 | WRITE(6,1560) ALPHA(I), (CLAD(J), J=IS,ISS) 345 | IS = IS+10 346 | ISS = ISS+10 347 | 1100 CONTINUE 348 | GO TO 1120 349 | 1110 WRITE(6,1620) (DELTAL(I), DELTAR(I), CLD(I),& 350 | & I=1,NDELTA) 351 | 1120 CONTINUE 352 | IF(NDMF) WRITE(6,1740) 353 | IF(NAF) WRITE(6,1750) 354 | NDMF = .FALSE. 355 | NAF = .FALSE. 356 | ! 357 | ! TRIM DATA OUTPUT 358 | ! 359 | IF(ASYFP .OR. .NOT. TRIM .OR. .NOT. SUBSON) GO TO 1160 360 | NTRIM = TRM(21) + 0.5 361 | IF(.NOT. SYMFP) GO TO 1130 362 | WRITE(6,1340) 363 | IF(BO .AND. WGPL .AND. HTPL) WRITE(6,1650) 364 | IF(BO .AND. WGPL .AND. .NOT. HTPL) WRITE(6,1640) 365 | IF(WGPL .AND. .NOT. (BO .OR. HTPL)) WRITE(6,1630) 366 | WRITE(6,1420) 367 | IF(IDIM .EQ. 1) WRITE(6,1430) 368 | IF(IDIM .EQ. 2) WRITE(6,1440) 369 | IF(IDIM .EQ. 3) WRITE(6,1450) 370 | IF(IDIM .EQ. 4) WRITE(6,1460) 371 | CALL SWRITE(11,FOH,46,IFOH,1,FLC(M+2),ALT,VINF,PINF,& 372 | & TINF,RN,SREF,CBAR,BLRF,XCG,ZCG,DUM,& 373 | & DUM,DUM,NDMF,NAF) 374 | ! 375 | WRITE(6,1670) 376 | WRITE(6,1660) 377 | CALL SWRITE(11,FOT,46,IFOT,NTRIM,ALPHA,CLUT,CDUT,CMUT,& 378 | & DELT,DCLT,DCLMT,DCDIT,DCDMT,CHAT,CHDT,& 379 | & X,X,X,NDMF,NAF) 380 | IF(FLAG) CALL FLTCL(FOT,IFOT,NTRIM,CLUT,CDUT,CMUT,DELT,& 381 | & DCLT,DCLMT,DCDIT,DCDMT,CHDT,CLWBT,& 382 | & CDWBT,1) 383 | IF((TRM(22) .EQ. 1.0) .OR. (NTRIM .EQ. 0)) WRITE(6,1720) 384 | ITRM = TRM(22) + 0.5 385 | IF(ITRM .EQ. 2) WRITE(6,1730) 386 | 1130 CONTINUE 387 | IF(SYMFP .OR. .NOT. HTPL) GO TO 1160 388 | IF(WINGIN(101).GT.2.0) GO TO 1160 389 | WRITE(6,1340) 390 | IF(VTPL) WRITE(6,1180) 391 | IF(.NOT. VTPL) WRITE(6,1170) 392 | WRITE(6,1420) 393 | IF(IDIM .EQ. 1) WRITE(6,1430) 394 | IF(IDIM .EQ. 2) WRITE(6,1440) 395 | IF(IDIM .EQ. 3) WRITE(6,1450) 396 | IF(IDIM .EQ. 4) WRITE(6,1460) 397 | CALL SWRITE(11,FOH,46,IFOH,1,FLC(M+2),ALT,VINF,PINF,& 398 | & TINF,RN,SREF,CBAR,BLRF,XCG,ZCG,DUM,& 399 | & DUM,DUM,NDMF,NAF) 400 | ! 401 | WRITE(6,1190) 402 | WRITE(6,1200) 403 | NTM = 0 404 | DO 1140 I=1,NTRIM 405 | IF(ALINT(I) .NE. -1000.)WRITE(6,1240) ALPHA(I)& 406 | & ,HT(I), HT(I+20), HT(I+40), HMUNT(I), ALINT(I)& 407 | & ,CDTRM(I), CLTRM(I), CMTRM(I), HMTRM(I) 408 | IF(ALINT(I) .NE. -1000.) NTM = NTM+1 409 | IF(ALINT(I) .EQ. -1000.)WRITE(6,1240) ALPHA(I)& 410 | & ,HT(I), HT(I+20), HT(I+40) 411 | 1140 CONTINUE 412 | WRITE(6,1210) 413 | WRITE(6,1220) 414 | DO 1150 I=1,NTRIM 415 | IF(ALINT(I) .NE. -1000.) WRITE(6,1230) ALPHA(I),& 416 | & CDWBT(I), CLWBT(I) 417 | IF(ALINT(I) .EQ. -1000.) WRITE(6,1230) ALPHA(I) 418 | 1150 CONTINUE 419 | IF(FLAG) CALL FLTCL(FOT,IFOT,NTM,CLUT,CDUT,CMUT,DELT,& 420 | & DCLT,DCLMT,DCDIT,DCDMT,CHDT,CLWBT,& 421 | & CDWBT,2) 422 | IF(TRM2(22).EQ.1.) WRITE(6,1250) 423 | IF(TRM2(22).EQ.2.) WRITE(6,1730) 424 | IF(TRM2(22).EQ.3.) WRITE(6,1735) 425 | 1160 CONTINUE 426 | IF(NDMF) WRITE(6,1740) 427 | IF(NAF) WRITE(6,1750) 428 | 1170 FORMAT(33X,62HWING-BODY-ALL MOVABLE HORIZONTAL STABILIZER TRIM CON& 429 | &FIGURATION) 430 | 1180 FORMAT(26X,76HWING-BODY-VERTICAL TAIL-ALL MOVABLE HORIZONTAL STABI& 431 | &LIZER TRIM CONFIGURATION) 432 | 1190 FORMAT(1H0,46H-----------------UNTRIMMED--------------------,& 433 | &34HHORIZONTAL STABILIZER COEFFICIENTS,45H----------------AT TRIM I& 434 | &NCIDENCE------------/) 435 | 1200 FORMAT(7H0 ALPHA,5X,2HCD,7X,2HCL,7X,2HCM,7X,2HHM,41X,5HALIHT,4X,& 436 | &2HCD,7X,2HCL,7X,2HCM,7X,2HHM/) 437 | 1210 FORMAT(/1H0,41X,45HWING-BODY-TAIL COEFFICIENTS AT TRIM INCIDENCE/) 438 | 1220 FORMAT(1H0,52X,5HALPHA,5X,2HCD,7X,2HCL/1H0) 439 | 1230 FORMAT(53X,F5.1,3X,F6.3,3X,F6.3) 440 | 1240 FORMAT(2X,0PF5.1,3X,F6.3,3X,F6.3,3X,F7.4,2X,1PE10.3,35X,0PF5.1,& 441 | & 2X,F6.3,3X,F6.3,3X,F7.4,2X,1PE10.3) 442 | 1250 FORMAT( 81H0*NOTE** ANGLES OF ATTACK WHERE NO OUTPUT EXISTS INDICA& 443 | &TES LACK OF CONTROL MOMENT) 444 | 1260 FORMAT(1H0,46X,4HDS/C,9X,8H(CL)ROLL,12X,2HCN/1H0) 445 | 1270 FORMAT(45X,0PF7.4,6X,1PE11.4,7X,E10.3) 446 | 1280 FORMAT( 82H0*NOTE* NO OUTPUT AVAILABLE FOR THIS COMBINATION OF MAC& 447 | &H NUMBER AND CONFIGURATION.) 448 | 1290 FORMAT(1X,33X,0PF7.4,5X,F7.4,5X,F7.4,5X,1PE11.4,8X,3HNDM) 449 | 1300 FORMAT(1X,27X,0PF7.4,5X,F7.4,5X,F7.4,5X,F7.4,5X,1PE11.4,8X,3HNDM) 450 | 1310 FORMAT(131H0*NOTE* METHODS VALID FOR CONFIGURATIONS WITH LEADING(H& 451 | &INGE LINE) AND TRAILING EDGES OF THE CONTROL SURFACE SWEPT AHEAD O& 452 | &F THE MACH/8X,34HLINES FROM THE DEFLECTED CONTROLS.) 453 | 1320 FORMAT(103H0*NOTE* OTHER RESTRICTIONS USED IN THE DERIVATION OF TH& 454 | &E METHODS ARE PRESENTED IN VOL. II AND/OR DATCOM) 455 | 1330 FORMAT(126H0*NOTE* CH(A) AND CH(D) DERIVATIVES ARE FOR STRAIGHT SI& 456 | &DED SYMMETRICAL BICONVEX AIRFOILS BASED ON TWICE THE AREA-MOMENT O& 457 | &F THE/8X,29HCONTROL ABOUT ITS HINGE LINE.) 458 | 1340 FORMAT(1H1,28X,48HAUTOMATED STABILITY AND CONTROL METHODS PER APRI& 459 | &,24HL 1976 VERSION OF DATCOM,/,41X,& 460 | &48HCHARACTERISTICS OF HIGH LIFT AND CONTROL DEVICES) 461 | 1350 FORMAT(44X,A4,39H PLAIN TRAILING-EDGE FLAP CONFIGURATION) 462 | 1360 FORMAT(46X,A4,34H SINGLE-SLOTTED FLAP CONFIGURATION) 463 | 1370 FORMAT(50X,A4,26H FOWLER FLAP CONFIGURATION) 464 | 1380 FORMAT(46X,A4,34H DOUBLE-SLOTTED FLAP CONFIGURATION) 465 | 1390 FORMAT(51X,A4,25H SPLIT FLAP CONFIGURATION) 466 | 1400 FORMAT(47X,A4,32H LEADING-EDGE FLAP CONFIGURATION) 467 | 1410 FORMAT(47X,A4,32H LEADING-EDGE SLAT CONFIGURATION) 468 | 1420 FORMAT(55H ----------------------- FLIGHT CONDITIONS ----------,& 469 | & 14H--------------,11X,25H-------------- REFERENCE,& 470 | & 25H DIMENSIONS ------------/2X,16HMACH ALTITUDE,& 471 | & 3X,48HVELOCITY PRESSURE TEMPERATURE REYNOLDS,& 472 | & 13X,47HREF. REFERENCE LENGTH MOMENT REF. CENTER/& 473 | & 7H NUMBER,55X,6HNUMBER,14X,4HAREA,7X,5HLONG.,5X,4HLAT.,& 474 | & 5X,15HHORIZ VERT) 475 | 1430 FORMAT(13X,2HFT,7X,6HFT/SEC,5X,8HLB/FT**2,7X,5HDEG R,9X,4H1/FT,& 476 | & 15X,5HFT**2,1X,4(7X,2HFT,1X)) 477 | 1440 FORMAT(13X,2HIN,7X,6HIN/SEC,5X,8HLB/IN**2,7X,5HDEG R,9X,4H1/FT,& 478 | & 15X,5HIN**2,1X,4(7X,2HIN,1X)) 479 | 1450 FORMAT(13X,2H M,7X,6H M/SEC,5X,8H N/ M**2,7X,5HDEG K,9X,4H1/ M,& 480 | & 15X,5H M**2,1X,4(7X,2H M,1X)) 481 | 1460 FORMAT(13X,2HCM,7X,6HCM/SEC,5X,8H N/CM**2,7X,5HDEG K,9X,4H1/ M,& 482 | & 15X,5HCM**2,1X,4(7X,2HCM,1X)) 483 | 1470 FORMAT(1H0,12X,46H---------INCREMENTS DUE TO DEFLECTION---------& 484 | &,14X,30H---DERIVATIVES (PER DEGREE)---/1H0,5X,5HDELTA,& 485 | &5X,5HD(CL),5X,5HD(CM),4X,9HD(CL MAX),4X,9HD(CD MIN),16X,6H(CLA)D,& 486 | & 5X,5H(CH)A,7X,5H(CH)D//) 487 | 1480 FORMAT(1H0,2X,106H*** NOTE * HINGE MOMENT DERIVATIVES ARE BASED ON& 488 | & TWICE THE AREA-MOMENT OF THE CONTROL ABOUT ITS HINGE LINE//1H0,12& 489 | &X,83H--------- INDUCED DRAG COEFFICIENT INCREMENT , D(CDI) , DUE T& 490 | &O DEFLECTION ---------) 491 | 1490 FORMAT(1H0,7X,8HDELTA = ,F5.1,5X,F5.1,5X,F5.1,5X,F5.1,5X,F5.1,5X,& 492 | &F5.1,5X,F5.1,5X,F5.1,5X,F5.1,5X,F5.1) 493 | 1500 FORMAT(3X,5HALPHA/1H0) 494 | 1510 FORMAT(3X,0PF5.1,7X,1PE9.2,1X,E9.2,1X,E9.2,1X,E9.2,1X,E9.2,1X,& 495 | & E9.2,1X,E9.2,1X,E9.2,1X,E9.2,1X,E9.2) 496 | 1520 FORMAT(30X, 60HDIFFERENTIALLY DEFLECTED HORIZONTAL STABILIZER CONF& 497 | &IGURATION) 498 | 1530 FORMAT(1H0,33X, 64H----------ROLLING-MOMENT COEFFICIENT DUE TO DEF& 499 | &LECTION----------) 500 | 1540 FORMAT( 17H0(DELTAL-DELTAR)=,F5.1,7X,F5.1,7X,F5.1,7X,F5.1,7X,F5.1,& 501 | &7X,F5.1,7X,F5.1,7X,F5.1,7X,F5.1,7X,F5.1) 502 | 1550 FORMAT( 6H0ALPHA/1H0) 503 | 1560 FORMAT(1X,0PF5.1,8X,1PE10.3,2X,E10.3,2X,E10.3,2X,E10.3,2X,& 504 | & E10.3,2X,E10.3,2X,E10.3,2X,E10.3,2X,E10.3,2X,E10.3) 505 | 1570 FORMAT(47X, 36HWING WITH FLAP SPOILER CONFIGURATION) 506 | 1580 FORMAT(47X, 36HWING WITH PLUG SPOILER CONFIGURATION) 507 | 1590 FORMAT(42X, 46HWING WITH SPOILER-SLOT-DEFLECTOR CONFIGURATION) 508 | 1600 FORMAT(44X, 43HWING PLAIN TRAILING-EDGE FLAP CONFIGURATION) 509 | 1610 FORMAT(1H0,27X, 74H----------YAWING MOMENT COEFFICIENT,CN,DUE TO C& 510 | &ONTROL DEFLECTION----------) 511 | 1620 FORMAT(1H0/& 512 | & 1H0,44X,6HDELTAL,10X,6HDELTAR,10X,8H(CL)ROLL/1H0/(45X,& 513 | & 0PF5.1,11X,F5.1,11X,1PE11.4)) 514 | 1630 FORMAT(47X,37HWING TRIM WITH CONTROL DEVICE ON WING) 515 | 1640 FORMAT(44X,42HWING-BODY TRIM WITH CONTROL DEVICE ON WING) 516 | 1650 FORMAT(42X,47HWING-BODY-TAIL TRIM WITH CONTROL DEVICE ON TAIL) 517 | 1660 FORMAT(1H0,4X,5HALPHA,5X,2HCL,9X,2HCD,7X,2HCM,5X,6HDELTAT,3X,5HD(C& 518 | &L),4X,9HD(CL MAX),5X,6HD(CDI),4X,9HD(CD MIN),3X,5HCH(A),8X,5HCH(D)& 519 | &/1H0) 520 | 1670 FORMAT(1H0,9X,29H----------UNTRIMMED----------,12X,64H------------& 521 | &-----------AT TRIM DEFLECTION-----------------------) 522 | 1680 FORMAT(1H0 ,29X,4HXS/C,8X,4HHS/C,8X,4HDD/C,8X,4HDS/C,8X,8H(CL)ROLL& 523 | &,10X,2HCN/1H0) 524 | 1690 FORMAT(1X,27X,0PF7.4,5X,F7.4,5X,F7.4,5X,F7.4,5X,1PE11.4,5X,E10.3) 525 | 1700 FORMAT(1H0,35X,4HXS/C,8X,4HHS/C,8X,4HDS/C,8X,8H(CL)ROLL,10X,2HCN/1& 526 | &H0) 527 | 1710 FORMAT(1X,33X,0PF7.4,5X,F7.4,5X,F7.4,5X,1PE11.4,5X,E10.3) 528 | 1720 FORMAT(73H0*NOTE** TRIM RESULTS HAVE BEEN TERMINATED DUE TO LACK O& 529 | &F CONTROL MOMENT.) 530 | 1730 FORMAT(99H0*NOTE** TRIM RESULTS HAVE BEEN TERMINATED BECAUSE THE N& 531 | &EXT ANGLE OF ATTACK EXCEEDS ALPHA (CL) MAX.) 532 | 1735 FORMAT(78H0*NOTE** TRIM RESULTS TERMINATED BECAUSE WING-BODY MOMEN& 533 | &T DATA WAS UNAVAILABLE) 534 | 1740 FORMAT(44H0***NDM PRINTED WHEN NO DATCOM METHODS EXIST) 535 | 1750 FORMAT(41H0***NA PRINTED WHEN METHOD NOT APPLICABLE) 536 | 1770 FORMAT(45X,39HCONTROL TAB ON PLAIN TRAILING EDGE FLAP ) 537 | 1780 FORMAT(50X,30HTRIM TAB ON TRAILING EDGE FLAP ) 538 | 1790 FORMAT(42X,48HCONTROL AND TRIM TAB ON PLAIN TRAILING EDGE FLAP) 539 | 1800 FORMAT(1H0,31X,44HSTICK FORCE, F(C), LB (TRIM TAB DEFL. = 0.0) ) 540 | 1810 FORMAT(1H0,27X,53HSTICK FORCE COEFFICIENT, CF(C) (TRIM TAB DEFL. =& 541 | & 0.0)) 542 | 1820 FORMAT(1H0) 543 | 1830 FORMAT(1H0,22X,63HFLAP HINGE MOMENT COEFFICIENT - TAB FREE (TRIM T& 544 | &AB DEFL. = 0.0)) 545 | 1840 FORMAT(1H0,21X,65HFLAP HINGE MOMENT COEFFICIENT - TAB LOCKED (TRIM& 546 | & TAB DEFL. = 0.0)) 547 | 1850 FORMAT(1H0,18X,69HFLAP HINGE MOMENT COEFFICIENT - DUE TO GEARING (& 548 | &TRIM TAB DEFL. = 0.0)) 549 | 1860 FORMAT(1H0,30X,46HTRIM TAB DEFLECTION FOR ZERO STICK FORCE, DEG.) 550 | RETURN 551 | END 552 | -------------------------------------------------------------------------------- /test/expected/subryw.f90: -------------------------------------------------------------------------------- 1 | SUBROUTINE SUBRYW 2 | ! 3 | ! THIS ROUTINE YIELDS THE SUBSONIC WING,WING-BODY 4 | ! ROLLING DERIVATIVES,CLP CNP CNR AND 5 | ! YAWING DERIVATIVE , CYP 6 | ! 7 | COMMON /OVERLY/ NLOG,NMACH,IM,NALPHA 8 | COMMON /OPTION/ SR,CBARR,RUFF,BLREF 9 | COMMON /CONSNT/ PI,DR,UNUSED,RAD 10 | COMMON /FLGTCD/ FLC(93) 11 | COMMON /SYNTSS/ SYNA(19) 12 | COMMON /WINGD/ A(195),B(49) 13 | COMMON /WINGI/ WINGIN(77) 14 | COMMON /IWING/ PWING, WING(400) 15 | COMMON /POWR/ DYN(213) 16 | COMMON /WHAERO/ C(51) 17 | COMMON /SBETA/ STB(135) 18 | COMMON /FLOLOG/ FLTC,OPTI,BO,WGPL,WGSC,SYNT,HTPL,HTSC,VTPL,VTSC,& 19 | & HEAD,PRPOWR,JETPOW,LOASRT,TVTPAN,& 20 | & SUPERS,SUBSON,TRANSN,HYPERS,& 21 | & SYMFP,ASYFP,TRIMC,TRIM 22 | LOGICAL FLTC,OPTI,BO,WGPL,WGSC,SYNT,HTPL,HTSC,VTPL,VTSC,& 23 | & HEAD,PRPOWR,JETPOW,LOASRT,TVTPAN,& 24 | & SUPERS,SUBSON,TRANSN,HYPERS,& 25 | & SYMFP,ASYFP,TRIMC,TRIM 26 | INTEGER Y71336,D11336,D21336,D31336,Y71337,D11337,D21337,D31337,& 27 | & Y2220A,D1220A,D2220A,Y2220B,Y2220C,Y2220D,D1220D,D2220D,Y12224,& 28 | & Y12312,Y1219B,Y1219C 29 | INTEGER Y7133A 30 | REAL LAMCO4,MACOE 31 | REAL MACH,LAMB,KAY(20),K,LAMDA 32 | DIMENSION ROUTID(2),ALMALO(20) 33 | ! AJT DIMENSION CL(20),ALSCHD(20),Z(6),CLSUB(20),ALSCH2(20),CD(20), 34 | ! AJT1 DCLPD(20),CLPWBS(20),CLTAN(20),CDCDO(20),CL2PAW(20) 35 | DIMENSION CL(20),ALSCHD(20),Z(6),CLSUB(21),ALSCH2(21),CD(20),& 36 | & DCLPD(20),CLPWBS(20),CLTAN(20),CDCDO(20),CL2PAW(20) 37 | DIMENSION Y(6),D(6),E(6),G(6),H(6),O(6),P(6) 38 | DIMENSION CLA(20),DCDDA(20),DCADA(20) 39 | DIMENSION CLPTAN(20),DCLDA(20),CDOO(20) 40 | DIMENSION CYPWBS(20),I2A219(4),QEXPD(5),& 41 | & QIMPR1(4),QIMPR2(4),QIMPR3(4),Q71336(3),Q71337(3) 42 | DIMENSION X11336(4),X21336(15),X31336(3),Y71336( 90),& 43 | & D11336(30),D21336(30),D31336(30) 44 | DIMENSION X1133A(2),X2133A(2),Y7133A(2) 45 | DIMENSION X11337(4),X21337(9),X31337(3),Y71337( 54),& 46 | & D11337(18),D21337(18),D31337(18) 47 | DIMENSION X1220A( 13),X2220A( 17),Y2220A( 111),Q2220A(3) 48 | DIMENSION D1220A( 97),D2220A(14) 49 | DIMENSION X1220B( 13),X2220B( 10),Y2220B( 65),Q2220B(3) 50 | DIMENSION X1220C( 13),X2220C( 10),Y2220C( 65),Q2220C(3) 51 | DIMENSION X1220D( 13),X2220D( 18),Y2220D( 117),Q2220D(3) 52 | DIMENSION D1220D( 97),D2220D(20) 53 | DIMENSION X12224( 8),X22224( 10),Y12224( 40),Q12224(3) 54 | DIMENSION X12312( 6),X22312( 8),Y12312( 24),Q12312(3) 55 | DIMENSION X1219A( 10),Y1219A( 10),Q1219A(3) 56 | DIMENSION X1219B( 8),X2219B( 2),Y1219B( 8),Q1219B(3) 57 | DIMENSION X1219C( 3),X2219C( 2),Y1219C( 3),Q1219C(3) 58 | DIMENSION CNPWBS(20) 59 | DIMENSION CNRWBS(20) 60 | EQUIVALENCE(DCMDCL,DYN(21)),(MACOE,A(16)) 61 | EQUIVALENCE(CL(1),WING(21)),(THETA,WINGIN(11)) 62 | EQUIVALENCE(ZW,SYNA(3)),(ZCG,SYNA(5)),(GEG,STB(122)),& 63 | & (ALSCHD(1),FLC(23)),(SSPN,WINGIN(4)),(SSPNE,WINGIN(3)),& 64 | & (LAMCO4,A(64)),(SW,A(4)),(TANCO4,A(68)),& 65 | & (LAMDA,A(27)),(COSLO4,A(67)),(CD(1),WING(1)),(ASTRW,A(120)) 66 | EQUIVALENCE(ALSD,DYN(44)),(CLACLO,DYN(45)),(CDO,DYN(94)),& 67 | & (CLA(1),DYN(47)),(ZEE,DYN(67)),(CLPCLP,DYN(68)),& 68 | & (CLPCL2,DYN(69)),(BAOK,DYN(70)),(BCLPCL,DYN(71)),& 69 | & (DCLPD(1),DYN(72)),(CLPWBS(1),WING(281)),(CNPCLO,DYN(92)),& 70 | & (BEE,DYN(93)),(CNPCLM,DYN(46)),(CNPTHE,DYN(95)),& 71 | & (DCLDA(1),DYN(96)),(DCDDA(1),DYN(116)),(DCADA(1),DYN(136)),& 72 | & (KAY(1),DYN(156)),(CNPWBS(1),WING(321)) 73 | EQUIVALENCE(CLPG,DYN(176)),(DCYPG,DYN(177)),(TRANS,DYN(178)),& 74 | & (CHANGE,DYN(179)),(CYPCLM,DYN(180)),(CYPWBS(1),WING(301)),& 75 | & (TRADE,DYN(181)),(CNRCL2,DYN(182)),(CNRCDO,DYN(183)),& 76 | & (CDOO(1),DYN(184)),(CNRWBS(1),WING(341)) 77 | EQUIVALENCE (D11336(1),Y71336(1)),(D21336(1),Y71336(31)),& 78 | & (D31336(1),Y71336( 61)) 79 | EQUIVALENCE (D11337(1),Y71337(1)),(D21337(1),Y71337(19)),& 80 | & (D31337(1),Y71337(37)) 81 | EQUIVALENCE(D1220A(1),Y2220A(1)),(D2220A(1),Y2220A( 98)) 82 | EQUIVALENCE(D1220D(1),Y2220D(1)),(D2220D(1),Y2220D( 98)) 83 | DATA ROUTID /4HSUBR,4HYW / 84 | DATA I2A219 /10,3*0/ 85 | DATA IN/0/, IX/0/, IO/0/, IP/0/, IQ/0/, IR/0/, IS/0/, IT/0/ 86 | DATA QEXPD /4HEXPE,4HRIME,4HNTAL,4H DAT,4HA / 87 | DATA Q12224 /4H7.1.,4H2.2-,4H24 / 88 | DATA Q12312 /4H7.1.,4H2.3-,4H12 / 89 | DATA QIMPR1 /4HCLTA,4HN VS,4H ALS,4HCHD / 90 | DATA QIMPR2 /4HCDCD,4HO VS,4H ALS,4HCHD / 91 | DATA QIMPR3 /4HCL2P,4HAW V,4HS AL,4HSCHD/ 92 | DATA Q71336 /4H7.1.,4H3.3-,4H6 / 93 | DATA Q71337 /4H7.1.,4H3.3-,4H7 / 94 | ! 95 | ! ----FIGURE 7.1.2.2-20A 96 | ! 97 | DATA Q2220A /4H7.1.,4H2.2-,4H20A / 98 | DATA X1220A / .100E+02, .900E+01, .800E+01, .700E+01,& 99 | & .600E+01, .500E+01, .450E+01, .400E+01, .350E+01, .300E+01,& 100 | & .250E+01, .200E+01, .150E+01/ 101 | DATA X2220A / -.193E+02, -.989E+01, -.437E+01, .134E-01,& 102 | & .104E+02, .143E+02, .203E+02, .251E+02, .300E+02, .355E+02,& 103 | & .402E+02, .445E+02, .505E+02, .547E+02, .598E+02, .651E+02,& 104 | & .702E+02/ 105 | ! 106 | ! ----FIGURE 7.1.2.2-20B 107 | ! 108 | DATA Q2220B/4H7.1.,4H2.2-,4H20B / 109 | DATA X1220B/ .100E+02, .900E+01, .800E+01, .700E+01,& 110 | & .600E+01, .500E+01, .450E+01, .400E+01, .350E+01, .300E+01,& 111 | & .250E+01, .200E+01, .150E+01/ 112 | DATA X2220B/ -.201E+02, -.105E+02, .230E+00, .994E+01,& 113 | & .197E+02, .300E+02, .403E+02, .499E+02, .604E+02, .703E+02/ 114 | ! 115 | ! ----FIGURE 7.1.2.2-20C 116 | ! 117 | DATA Q2220C/4H7.1.,4H2.2-,4H20C / 118 | DATA X1220C/ .100E+02, .900E+01, .800E+01, .700E+01,& 119 | & .600E+01, .500E+01, .450E+01, .400E+01, .350E+01, .300E+01,& 120 | & .250E+01, .200E+01, .150E+01/ 121 | DATA X2220C/ -.193E+02, -.937E+01, .893E-01, .105E+02,& 122 | & .208E+02, .304E+02, .405E+02, .505E+02, .607E+02, .704E+02/ 123 | ! 124 | ! ----FIGURE 7.1.2.2-20D 125 | ! 126 | DATA Q2220D/4H7.1.,4H2.2-,4H20D / 127 | DATA X1220D/ .100E+02, .900E+01, .800E+01, .700E+01,& 128 | & .600E+01, .500E+01, .450E+01, .400E+01, .350E+01, .300E+01,& 129 | & .250E+01, .200E+01, .150E+01/ 130 | DATA X2220D/ -.200E+02, -.965E+01, -.458E+01, .293E-01,& 131 | & .556E+01, .995E+01, .148E+02, .203E+02, .245E+02, .301E+02,& 132 | & .354E+02, .400E+02, .447E+02, .502E+02, .553E+02, .602E+02,& 133 | & .646E+02, .698E+02/ 134 | ! 135 | ! ----FIGURE 7.1.2.2-24 136 | ! 137 | DATA X12224/ .700E+02, .600E+02, .500E+02, .400E+02,& 138 | & .300E+02, .200E+02, .100E+02, .000E+00/ 139 | DATA X22224/ .196E+01, .252E+01, .302E+01, .350E+01,& 140 | & .402E+01, .505E+01, .599E+01, .700E+01, .804E+01, .100E+02/ 141 | ! 142 | ! ----FIGURE 7.1.2.3-12 143 | ! 144 | DATA X12312/ .100E+01, .800E+00, .600E+00, .400E+00,& 145 | & .200E+00, .000E+00/ 146 | DATA X22312/ .202E+01, .307E+01, .404E+01, .502E+01,& 147 | & .603E+01, .808E+01, .100E+02, .120E+02/ 148 | ! 149 | ! ----FIGURE 7.1.2.1-9A 150 | ! 151 | DATA Q1219A/4H7.1.,4H2.1-,4H9A / 152 | DATA X1219A/ .822E+00, .109E+01, .144E+01, .207E+01,& 153 | & .257E+01, .316E+01, .398E+01, .462E+01, .531E+01, .600E+01/ 154 | DATA Y1219A/ .452E+01, .381E+01, .297E+01, .215E+01,& 155 | & .147E+01, .966E+00, .486E+00, .279E+00, .117E+00, .154E-06/ 156 | ! 157 | ! ----FIGURE 7.1.2.1-9B 158 | ! 159 | DATA Q1219B/4H7.1.,4H2.1-,4H9B / 160 | DATA X1219B/ .700E+02, .650E+02, .600E+02, .450E+02,& 161 | & .300E+02, .000E+00, -.300E+02, -.450E+02/ 162 | DATA X2219B/ 0.0,4.5/ 163 | ! 164 | ! ----FIGURE 7.1.2.1-9C 165 | ! 166 | DATA Q1219C/4H7.1.,4H2.1-,4H9C / 167 | DATA X1219C/ .000E+00, .500E+00, .100E+01/ 168 | DATA X2219C/ .453E+01, -.963E+00/ 169 | DATA X11336/ .600E+02, .500E+02, .400E+02, .000E+00/ 170 | DATA X21336/ .101E+01, .126E+01, .151E+01, .178E+01,& 171 | & .201E+01, .244E+01, .299E+01, .352E+01, .400E+01, .501E+01,& 172 | & .599E+01, .698E+01, .799E+01, .902E+01, .994E+01/ 173 | DATA X31336/0.0,0.2,0.4/ 174 | ! 175 | ! ----FIGURE 7.1.3.3-6D 176 | ! 177 | DATA X1133A /0.0,1.0/ 178 | DATA X2133A /0.0,4.0/ 179 | DATA X11337 / .000E+00, .400E+02, .500E+02, .600E+02/ 180 | DATA X21337 / .103E+01, .144E+01, .197E+01, .297E+01,& 181 | & .397E+01, .503E+01, .606E+01, .706E+01, .803E+01/ 182 | DATA X31337 /0.0,0.2,0.4/ 183 | ! 184 | ! IN THE FOLLOWING DATA STATEMENTS 2 FLOATING POINT NUMBERS,WITH 185 | ! 3 SIGNIFICANT DIGITS EACH,ARE PACKED IN 1 FIXED POINT WORD. 186 | ! 187 | ! THE FORMAT IS AS FOLLOWS- 188 | ! 189 | ! SIGN1,NS2,NSPS,NP1,NP2,ND1,ND2 190 | ! 191 | ! WHERE- 192 | ! 193 | ! SIGN1 IS THE ACTUAL SIGN OF THE 1ST NUMBER 194 | ! NS2 REPRESENTS THE SIGN OF THE 2ND NUMBER.0 IF + , 1 IF - 195 | ! NSPS REPRESENTS THE SIGNS OF THE POWERS OF 10 FOR BOTH NUMBERS 196 | ! 0 IF ++ , 1 IF -- , 2 IF +- , 3 IF -+ 197 | ! NP1 IS THE POWER OF 10 FOR THE 1ST NUMBER. LIMITED TO 1 DIGIT 198 | ! NP2 IS THE POWER OF 10 FOR THE 2ND NUMBER. LIMITED TO 1 DIGIT 199 | ! ND1 3 DIGITS OF THE 1ST NUMBER (DECIMAL POINT AT END) 200 | ! ND2 3 DIGITS OF THE 2ND NUMBER (DECIMAL POINT AT END) 201 | ! 202 | DATA D11336/ 122392378, 122366359, 122352345, 122335325,& 203 | & 122320318, 122314315, 122313316, 122317157, 122167177,& 204 | & 122181187, 122204212, 122218226, 122234241, 122241242,& 205 | & 122240239, 133758974, 122116132, 122142160, 122176185,& 206 | & 122200209, 122216221, 122224222, 124225341, 133325655,& 207 | & 132872102, 122127147, 122160173, 122189201, 122206206,& 208 | & 122207205/ 209 | DATA D21336/ 122762654, 122584539, 122499463, 122436427,& 210 | & 122418408, 122404404, 122402403, 122403381, 122349331,& 211 | & 122322312, 122300299, 122297295, 122290289, 122282283,& 212 | & 122279279, 122253253, 122253253, 122253256, 122258261,& 213 | & 122265270, 122273273, 122272272, 122268175, 122180185,& 214 | & 122191196, 122209218, 122222229, 122245253, 122255260,& 215 | & 122261261/ 216 | DATA D31336/ 111160130, 122950630, 122572509, 122462437,& 217 | & 122416388, 122379371, 122370371, 121373150, 122450447,& 218 | & 122369347, 112112630, 122291284, 122281278, 122280281,& 219 | & 122280283, 122351293, 122272247, 122242230, 122225225,& 220 | & 122224223, 122222228, 122236242, 123259951, 132994111,& 221 | & 122125130, 122141159, 122169178, 122196204, 122206206,& 222 | & 122206205/ 223 | DATA D11337/-1133563462,-1133383332,-1133310299,-1133293293,& 224 | &-1133293569,-1133501468,-1133451456,-1133456456,-1133456451,& 225 | &-1133670644,-1133608608,-1133619631,-1133631637,-1133642975,& 226 | &-1133953952,-1132979101,-1122102103,-1122103103/ 227 | DATA D21337/-1133743503,-1133440371,-1133331297,-1133291291,& 228 | &-1133291759,-1133560480,-1133457451,-1133457457,-1133463469,& 229 | &-1133806669,-1133623606,-1133611623,-1133634640,-1132646106,& 230 | &-1133985949,-1133971988,-1122101101,-1122102102/ 231 | DATA D31337/-1133978712,-1133518417,-1133364346,-1133340334,& 232 | &-1132340102,-1133712538,-1133500472,-1133465465,-1133471471,& 233 | &-1123107796,-1133664614,-1133626638,-1133644650,-1132656121,& 234 | &-1123104979,-1132995101,-1122101103,-1122104105/ 235 | DATA D1220A/-1133347366,-1133375377,-1133379378,-1133376372,& 236 | &-1133361354,-1133338321,-1133298280,-1133248215,-1133177339,& 237 | &-1133357361,-1133365369,-1133368363,-1133359353,-1133339325,& 238 | &-1133308288,-1133267237,-1133211175,-1133326340,-1133345353,& 239 | &-1133355355,-1133353347,-1133339329,-1133316301,-1133281258,& 240 | &-1133230206,-1133170310,-1133323329,-1133334338,-1133338336,& 241 | &-1133332326,-1133319305,-1133290268,-1133251227,-1133198169,& 242 | &-1133289303,-1133307311,-1133318318,-1133316310,-1133305298,& 243 | &-1133287276,-1133256241,-1133214192,-1133160267,-1133283286,& 244 | &-1133289289,-1133292289,-1133286284,-1133280268,-1133261247,& 245 | &-1133230208,-1133184157,-1133254266,-1133273277,-1133281281,& 246 | &-1133279277,-1133270267,-1133259250,-1133233222,-1133198179,& 247 | &-1133151242,-1133250255,-1133261263,-1133263263,-1133262256,& 248 | &-1133253247,-1133241228,-1133214193,-1133175150,-1133227232,& 249 | &-1133238242,-1133245246,-1133245243,-1133239233,-1133230224,& 250 | &-1133212203,-1133184169,-1133140205,-1133211214,-1133216220,& 251 | &-1133222222,-1133222219,-1133218213,-1133209198,-1133192176,& 252 | &-1133159139,-1133184190,-1133191193,-1133194194,-1133195195,& 253 | &-1133194193,-1133193191,-1133184176,-1133161151,-1133131159,& 254 | &-1133162164,-1133164168,-1133169169/ 255 | DATA D2220A/-1133169169,-1133165164,-1133161157,-1133156150,& 256 | &-1133137120,-1133133132,-1133133134,-1133133134,-1133133133,& 257 | &-1133133134,-1133133132,-1133129124,-1133120114, -330102000/ 258 | DATA Y2220B/-1133464486,-1133500494,-1133484457,-1133419364,& 259 | &-1133298218,-1133445465,-1133479473,-1133463441,-1133407354,& 260 | &-1133291215,-1133428444,-1133450449,-1133437419,-1133388344,& 261 | &-1133287209,-1133407414,-1133422422,-1133415398,-1133372331,& 262 | &-1133276202,-1133375386,-1133391392,-1133385377,-1133353320,& 263 | &-1133270199,-1133340353,-1133358358,-1133353342,-1133325296,& 264 | &-1133255189,-1133325330,-1133334334,-1133331324,-1133310299,& 265 | &-1133247190,-1133300304,-1133312307,-1133305301,-1133288270,& 266 | &-1133237183,-1133278280,-1133282282,-1133281276,-1133268251,& 267 | &-1133221178,-1133245248,-1133251251,-1133250248,-1133241232,& 268 | &-1133208167,-1133221221,-1133222221,-1133220217,-1133215206,& 269 | &-1133192161,-1133183182,-1133182181,-1133180180,-1133178174,& 270 | &-1133162140,-1133138139,-1133141141,-1133141141,-1133142141,& 271 | &-1133134124/ 272 | DATA Y2220C/-1133523535,-1133539534,-1133519496,-1133456407,& 273 | &-1133337245,-1133503509,-1133513505,-1133499475,-1133441390,& 274 | &-1133317234,-1133470483,-1133486483,-1133470454,-1133421375,& 275 | &-1133312228,-1133445451,-1133453451,-1133445428,-1133400355,& 276 | &-1133298223,-1133410415,-1133420414,-1133409392,-1133370338,& 277 | &-1133287213,-1133371376,-1133377375,-1133371358,-1133338314,& 278 | &-1133269204,-1133343349,-1133354353,-1133349339,-1133321299,& 279 | &-1133260204,-1133320320,-1133322322,-1133319316,-1133300280,& 280 | &-1133245199,-1133293297,-1133298297,-1133295286,-1133278264,& 281 | &-1133238189,-1133264264,-1133263264,-1133262259,-1133248239,& 282 | &-1133220180,-1133226226,-1133225226,-1133224222,-1133219207,& 283 | &-1133191165,-1133188188,-1133189187,-1133186186,-1133180172,& 284 | &-1133163145,-1133149149,-1133149149,-1133148147,-1133146142,& 285 | &-1133134121/ 286 | DATA D1220D/-1133560573,-1133575575,-1133573567,-1133560546,& 287 | &-1133539520,-1133502481,-1133461430,-1133398367,-1133335280,& 288 | &-1133538545,-1133546546,-1133544542,-1133537525,-1133518501,& 289 | &-1133484464,-1133446415,-1133384353,-1133319269,-1133508517,& 290 | &-1133519517,-1133515512,-1133507499,-1133487475,-1133462442,& 291 | &-1133425396,-1133367339,-1133305266,-1133469477,-1133480480,& 292 | &-1133477471,-1133469463,-1133454448,-1133434418,-1133401376,& 293 | &-1133350321,-1133290246,-1133431434,-1133435435,-1133433431,& 294 | &-1133428423,-1133416409,-1133397383,-1133371350,-1133322299,& 295 | &-1133273232,-1133385390,-1133391390,-1133389386,-1133384378,& 296 | &-1133375368,-1133360353,-1133340325,-1133304284,-1133260224,& 297 | &-1133359361,-1133361362,-1133362360,-1133360356,-1133354347,& 298 | &-1133339334,-1133323307,-1133288271,-1133249216,-1133332334,& 299 | &-1133334334,-1133333333,-1133331329,-1133325322,-1133317310,& 300 | &-1133302290,-1133276257,-1133237208,-1133265266,-1133266266,& 301 | &-1133266265,-1133265264,-1133262261,-1133258255,-1133250246,& 302 | &-1133234222,-1133209183,-1133298300,-1133302302,-1133302301,& 303 | &-1133300298,-1133298293,-1133289284,-1133280267,-1133255243,& 304 | &-1133225197,-1133230230,-1133230230,-1133230231,-1133230230,& 305 | &-1133229228,-1133224223,-1133219216/ 306 | DATA D2220D/-1133208198,-1133188170,-1133189190,-1133190190,& 307 | &-1133190189,-1133188187,-1133187184,-1133183181,-1133179175,& 308 | &-1133171163,-1133156143,-1133148146,-1133146145,-1133145145,& 309 | &-1133146146,-1133145145,-1133144142,-1133142141,-1133141139,& 310 | &-1133135122/ 311 | DATA Y12224/-1133407331,-1133278240,-1133216175,-1133146127,& 312 | &-1134112891,-1133171137,-1133116103,-1144901734,-1144620532,& 313 | &-1144456365,-1144918736,-1144606535,-1144467381,-1144344280,& 314 | &-1144239183,-1144567428,-1144382349,-1144297232,-1144183177,& 315 | &-1144160125,-1144400303,-1144267223,-1144193165,-1144149120,& 316 | &-1144114103,-1144302225,-1144199187,-1144159131,-1145103856,& 317 | &-1155683804,-1144230201,-1144165141,-1145136843,-1155686624,& 318 | &-1155338463,-1144221179,-1144153141,-1145113850,-1155687398,& 319 | &-1155341456/ 320 | DATA Y12312/-1166968781,-1166626494,-1166388197, -176319113,& 321 | &-1166941724,-1166541382, -168238339, 166218422,-1166885655,& 322 | &-1166450256, -176949195, 166454705,-1166777520,-1166300113,& 323 | & 176533337, 166590825,-1166548303, -177979781, 166231499,& 324 | & 166724919, -176387127, 166264371, 166473661, 166827994/ 325 | DATA Y1219B/ 122468642 , 122368554 , 122300494 , 122176413,& 326 | & 122111372 , 132160292 , -132680236 ,-122168172/ 327 | DATA Y1219C/ 1123153677, 1123161573 , 1123182380 / 328 | DATA Y7133A/-133110100,-134127830/ 329 | BETA=B(2) 330 | IF( WGPL.AND.(.NOT.BO))GO TO 1000 331 | DB=(SSPN-SSPNE)/SSPN 332 | IF(DB.GT.0.3)RETURN 333 | 1000 K=BETA*WINGIN(IM+20)*RAD/(2.*PI) 334 | MACH=FLC(IM+2) 335 | XYZ=0. 336 | ! 337 | ! WING-BODY ROLLING DERIVATIVE,CLP--- 338 | ! 339 | CALL TBFUNX(XYZ,ALSD,DYDX,NALPHA,CL,ALSCHD,Y,IN,MI,NG,1,1,QEXPD,5,& 340 | & ROUTID) 341 | CALL TBFUNX(XYZ,CDO,DYDX,NALPHA,CL,CD,D,IO,MI,NG,2,2,& 342 | & QEXPD,5,ROUTID) 343 | IF(CL(1).LE.0..AND.CL(NALPHA).GE.0.) GO TO 1050 344 | NNALPH=NALPHA+1 345 | IF(CL(1).LT.0.) GO TO 1020 346 | CLSUB(1)=0. 347 | ALSCH2(1)=ALSD 348 | DO 1010 J=1,NALPHA 349 | CLSUB(J+1)=CL(J) 350 | 1010 ALSCH2(J+1)=ALSCHD(J) 351 | GO TO 1040 352 | 1020 CLSUB(NNALPH)=0. 353 | ALSCH2(NNALPH)=ALSD 354 | DO 1030 J=1,NALPHA 355 | CLSUB(J)=CL(J) 356 | 1030 ALSCH2(J)=ALSCHD(J) 357 | 1040 CALL TBFUNX(ALSD,ABCD,CLACLO,NNALPH,ALSCH2,CLSUB,E,IX,MI,& 358 | & NG,1,1,QEXPD,5,ROUTID) 359 | GO TO 1060 360 | 1050 CALL TBFUNX(ALSD,ABCD,CLACLO,NALPHA,ALSCHD,CL,Z,IX,MI,& 361 | & NG,1,1,QEXPD,5,ROUTID) 362 | 1060 CONTINUE 363 | XBOCB=-DCMDCL*CBARR/MACOE 364 | DO 1070 I=1,NALPHA 365 | CALL TBFUNX(ALSCHD(I),CDEF,CLA(I),NALPHA,ALSCHD,CL,G,IQ,MI,NG,& 366 | & 0,0,QEXPD,5,ROUTID) 367 | 1070 CONTINUE 368 | ZEE=ZW-ZCG 369 | SINGEG=SIN(GEG/RAD) 370 | CLPCLP=1.-2.*ZEE*SINGEG/SSPN+3.*(ZEE/SSPN)**2*SINGEG**2 371 | LAMB=RAD*ATAN(TANCO4/BETA) 372 | ! 373 | ! -- FIGURE 7.1.2.2-24 -- 374 | ! 375 | CALL TLIP2X(X12224,X22224,Y12224,8,10,LAMCO4,ASTRW,CLPCL2,& 376 | & 1,1,1,1,Q12224,3,ROUTID) 377 | SRSW=SR/SW 378 | AAAA=4.*SSPN**2/(RAD*SRSW*BLREF**2) 379 | BAOK =BETA*ASTRW/K 380 | ! 381 | ! FIGURE 7.1.2.2-20 A-D 382 | ! 383 | CALL INTEP3(BAOK,LAMB,LAMDA,X1220A,X2220A,Y2220A,13,17,Q2220A,& 384 | & X1220B,X2220B,Y2220B,13,10,Q2220B,& 385 | & X1220C,X2220C,Y2220C,13,10,Q2220C,& 386 | & 1,1,1,1,1,1,& 387 | & X1220D,X2220D,Y2220D,13,18,Q2220D,BCLPCL) 388 | BBBB=AAAA*BCLPCL*K*CLPCLP/(BETA*CLACLO) 389 | DO 1080 I=1,NALPHA 390 | CLT=CL(I)*SRSW 391 | DCLPD(I)=CLPCL2*CLT**2-CDO/8.*SRSW 392 | CLPWBS(I)=BBBB*CLA(I)+AAAA*DCLPD(I) 393 | 1080 CONTINUE 394 | ! 395 | ! ---WING-BODY ROLLING DERIVATIVE,CNP--- 396 | ! 397 | DO 1090 I=1,NALPHA 398 | 1090 ALMALO(I) = ALSCHD(I)-ALSD 399 | BEE=SQRT(1.-MACH**2*COSLO4**2) 400 | CCCC=(ASTRW+4.*COSLO4)/(ASTRW*BEE+4.*COSLO4) 401 | DDDD=(ASTRW*BEE+.5*(ASTRW*BEE+COSLO4)*TANCO4**2) 402 | EEEE=ASTRW+.5*(ASTRW+COSLO4)*TANCO4**2 403 | ! AJT IF NALPHA=20 IT WILL NOW BE 21 AFTER DO LOOP AND CL(I) WILL BE 404 | ! AJT OUTSIDE ARRAY BOUND 405 | 406 | ! AJT IF(CL(I).EQ.0.0)GO TO 1100 407 | 408 | ! AJT PAGE 7.1.2.3-1 OF DATCOM SAYS NO ESTIMATE OF CNP VARIATION WITH CL 409 | ! AJT SHOULD BE MADE IF CL AND CD DATA NOT AVAILABLE 410 | IF(CL(1).EQ.0.0)GO TO 1100 411 | CNPCLO=-(ASTRW+6.*(ASTRW+COSLO4)*(XBOCB*TANCO4/ASTRW+TANCO4**2/12.& 412 | & ))/((ASTRW+4.*COSLO4)*6.) 413 | CNPCLM =CCCC*DDDD*CNPCLO/EEEE 414 | GO TO 1110 415 | 1100 CNPCLM=0. 416 | 1110 CONTINUE 417 | DO 1120 I=1,NALPHA 418 | CLTAN(I)=CL(I)*SRSW*TAN(ALMALO(I)/RAD) 419 | CDCDO(I)=(CD(I)-CDO)*SRSW 420 | CL2PAW(I)=(CL(I)*SRSW)**2/(ASTRW*PI) 421 | 1120 CONTINUE 422 | ! 423 | ! -- FIGURE 7.1.2.3-12 -- 424 | ! 425 | CALL TLIP2X(X12312,X22312,Y12312,6, 8,LAMDA,ASTRW,CNPTHE,2,1,2,1,& 426 | & Q12312,3,ROUTID) 427 | CNP=CNPTHE*THETA 428 | FFFF=AAAA*BLREF/(2.*SSPN) 429 | DO 1150 I=1,NALPHA 430 | CLPTAN(I)=CLPWBS(I)*TAN(ALMALO(I)/RAD) 431 | IF(CL(I).EQ.0.0)GO TO 1130 432 | CALL TBFUNX(ALSCHD(I),ABC,DCLDA(I),NALPHA,ALSCHD,CLTAN,H,IR,& 433 | & MI,NG,1,1,QIMPR1,4,ROUTID) 434 | CALL TBFUNX(ALSCHD(I),ABC,DCDDA(I),NALPHA,ALSCHD,CDCDO,O,IS,& 435 | & MI,NG,1,1,QIMPR2,4,ROUTID) 436 | CALL TBFUNX(ALSCHD(I),ABC,DCADA(I),NALPHA,ALSCHD,CL2PAW,P,IT,& 437 | & MI,NG,1,1,QIMPR3,4,ROUTID) 438 | KAY(I)=(DCLDA(I)-DCDDA(I))/(DCLDA(I)-DCADA(I)) 439 | GO TO 1140 440 | 1130 CONTINUE 441 | KAY(I)=1. 442 | 1140 CONTINUE 443 | CNPWBS(I)=(KAY(I)-1.)*CLPTAN(I)+(KAY(I)*(CNPCLM*CL(I)*SRSW)& 444 | & +CNP)*AAAA 445 | 1150 CONTINUE 446 | ! 447 | ! WING-BODY YAWING DERIVATIVE,CYP--- 448 | ! 449 | CLPG=BCLPCL*K/BETA 450 | DCYPG=(3.*SINGEG*(1.-2.*ZEE*SINGEG/SSPN))*CLPG 451 | ! 452 | ! -- FIGURE 7.1.2.1-9 -- 453 | ! 454 | CALL INTERX(1,X1219A,ASTRW,I2A219,Y1219A,TRANS,10,10,1,0,0,0,0,0& 455 | & ,0,0,Q1219A,3,ROUTID) 456 | CALL TLIP2X(X1219B,X2219B,Y1219B,8,2,LAMCO4,TRANS,CHANGE,1& 457 | & ,1,1,1,Q1219B,3,ROUTID) 458 | CALL TLIP2X(X1219C,X2219C,Y1219C,3,2,LAMDA,CHANGE,CYPCLO,& 459 | & 0,0,1,1,Q1219C,3,ROUTID) 460 | AABB=ASTRW+4.*COSLO4 461 | BBCC=ASTRW*BEE+4.*COSLO4 462 | CCDD=ASTRW*BEE+COSLO4 463 | DDEE=ASTRW+COSLO4 464 | CYPCLM=AABB*CCDD*CYPCLO/(BBCC*DDEE) 465 | FFPG=FFFF*DCYPG 466 | DO 1160 I=1,NALPHA 467 | CYPWBS(I)=FFPG+FFFF*CYPCLM*SRSW*KAY(I)*CL(I) 468 | 1160 CONTINUE 469 | ! 470 | ! WING-BODY ROLLING DERIVATIVE,CNR--- 471 | ! --- FIGURE 7.1.3.3-7 -- 472 | ! -- FIGURE 7.1.3.3-6 -- 473 | ! 474 | CALL TLIP3X(X11336,X21336,X31336,Y71336,4,15,3,LAMCO4,ASTRW,XBOCB,& 475 | & TRADE,0,1,0,2,1,1,Q71336,3,ROUTID) 476 | CALL TLIP2X(X1133A,X2133A,Y7133A,2,2,LAMDA,TRADE,CNRCL2,0,1,0,1,& 477 | & Q71336,3,ROUTID) 478 | CALL TLIP3X(X11337,X21337,X31337,Y71337,4, 9,3,ABS(LAMCO4),& 479 | & ASTRW,XBOCB,CNRCDO,0,1,0,2,1,1,Q71337,3,ROUTID) 480 | DO 1170 I=1,NALPHA 481 | CDOO(I)=CD(I)*SRSW-CL2PAW(I) 482 | CNRWBS(I)=AAAA*((CNRCL2*(CL(I)*SRSW)**2)+CNRCDO*CDOO(I)) 483 | 1170 CONTINUE 484 | RETURN 485 | END 486 | -------------------------------------------------------------------------------- /test/expected/supryw.f90: -------------------------------------------------------------------------------- 1 | SUBROUTINE SUPRYW 2 | ! 3 | ! THIS ROUTINE YIELDS THE SUPERSONIC WING,WING-BODY 4 | ! ROLLING DERIVATIVES,CLP AND CNP,AND 5 | ! YAWING DERIVATIVE , CYP 6 | ! 7 | COMMON /OVERLY/ NLOG,NMACH,IM,NALPHA 8 | COMMON /CONSNT/ PI,DR,UNUSED,RAD 9 | COMMON /OPTION/ SR,CBARR,RUFF,BLREF 10 | COMMON /WINGD/ A(195) 11 | COMMON /WINGI/ WINGIN(77) 12 | COMMON /FLGTCD/ FLC(93) 13 | COMMON /POWR/ DYN(213) 14 | COMMON /SUPWH/ SLG(141) 15 | COMMON /IBW/ PBW,BW(380) 16 | COMMON /SYNTSS/ SYNA(19) 17 | COMMON /IWING/ PWING, WING(400) 18 | COMMON /FLOLOG/ FLTC,OPTI,BO,WGPL,WGSC,SYNT,HTPL,HTSC,VTPL,VTSC,& 19 | & HEAD,PRPOWR,JETPOW,LOASRT,TVTPAN,& 20 | & SUPERS,SUBSON,TRANSN,HYPERS,& 21 | & SYMFP,ASYFP,TRIMC,TRIM 22 | LOGICAL FLTC,OPTI,BO,WGPL,WGSC,SYNT,HTPL,HTSC,VTPL,VTSC,& 23 | & HEAD,PRPOWR,JETPOW,LOASRT,TVTPAN,& 24 | & SUPERS,SUBSON,TRANSN,HYPERS,& 25 | & SYMFP,ASYFP,TRIMC,TRIM 26 | INTEGER Y2225A,Y2225B,Y2225C,Y2225D,Y2225E,Y2110A,Y2110C,Y2110B,& 27 | & Y2314A,Y2314B,Y2314C,Y2314D,Y2317A,Y2317B,Y2317C,Y2317D 28 | REAL MACH,LAMLE,LAMDA 29 | DIMENSION ALSCHD(20),CYPWBH(20),CNPWBH(20),CYPWSP(20) 30 | DIMENSION ROUTID(2) 31 | DIMENSION X1225A( 7),X2225A( 17),Y2225A( 60),Q2225A(3) 32 | DIMENSION X1225B( 7),X2225B( 13),Y2225B( 46),Q2225B(3) 33 | DIMENSION X1225C( 7),X2225C( 13),Y2225C( 46),Q2225C(3) 34 | DIMENSION X1225D( 7),X2225D( 14),Y2225D( 49),Q2225D(3) 35 | DIMENSION X1225E( 7),X2225E( 17),Y2225E( 60),Q2225E(3) 36 | DIMENSION X1110A( 14),X2110A( 9),Y2110A( 63),Q2110A(3) 37 | DIMENSION X1110C( 5),X2110C( 5),Y2110C( 13),Q2110C(3) 38 | DIMENSION X1110B( 7),X2110B( 19),Y2110B( 67),Q2110B(3) 39 | DIMENSION X1314A( 10),X2314A( 14),Y2314A( 70),Q2314A(3) 40 | DIMENSION X1314B( 10),X2314B( 14),Y2314B( 70),Q2314B(3) 41 | DIMENSION X1314C( 10),X2314C( 13),Y2314C( 65),Q2314C(3) 42 | DIMENSION X1314D( 10),X2314D( 13),Y2314D( 65),Q2314D(3) 43 | DIMENSION X12316( 9),Y12316( 9),Q12316(3) 44 | DIMENSION X13170( 2),X23170( 4),Y23170(2) 45 | DIMENSION X1317A( 5),X2317A( 15),Y2317A( 38),Q2317A(3) 46 | DIMENSION X1317B( 5),X2317B( 13),Y2317B( 33),Q2317B(3) 47 | DIMENSION X1317C( 5),X2317C( 15),Y2317C( 38),Q2317C(3) 48 | DIMENSION X1317D( 5),X2317D( 14),Y2317D( 35),Q2317D(3) 49 | EQUIVALENCE(CNACNA,SLG(3)),(TANCO2,A(74)),(LAMLE,A(58)),(SW,A(4))& 50 | & ,(XCG,SYNA(1)),(SSPNE,WINGIN(3)),(SSPN,WINGIN(4)),& 51 | &(AW,A(120)),(LAMDA,A(118)),(BETA,SLG(1)),(ALSCHD(1),FLC(23)),& 52 | &(TANLE,A(62)) 53 | EQUIVALENCE(CLPWBH,WING(281)),(TRENS,DYN(204)),(CHENGE,DYN(205)),& 54 | & (CYPA,DYN(206)),(CYPWSP(1),WING(301)),(CNPTAS,DYN(207)),& 55 | & (CNPA1,DYN(208)),(CNPA2,DYN(209)),(CNPA3,DYN(210)),& 56 | & (CNPA,DYN(211)),(CNPAE,DYN(212)),(CNPWBH(1),WING(321)),& 57 | & (CNPBA,DYN(213)),(XW,SYNA(1)),(CR,WINGIN(6)) 58 | DATA ROUTID/4HSUPR,4HYW / 59 | ! 60 | ! ----FIGURE 7.1.2.2-25A 61 | ! 62 | DATA Q2225A/4H7.1.,4H2.2-,4H25A / 63 | DATA X1225A/ .000E+00, .100E+01, .200E+01, .300E+01,& 64 | & .400E+01, .500E+01, .600E+01/ 65 | DATA X2225A/ -.699E-01, .100E+01, .147E+01, .203E+01,& 66 | & .250E+01, .291E+01, .403E+01, .445E+01, .503E+01, .541E+01,& 67 | & .597E+01, .646E+01, .706E+01, .797E+01, .858E+01, .909E+01,& 68 | & .100E+02/ 69 | ! 70 | ! ----FIGURE 7.1.2.2-25B 71 | ! 72 | DATA Q2225B/4H7.1.,4H2.2-,4H25B / 73 | DATA X1225B/ .000E+00, .100E+01, .200E+01, .300E+01,& 74 | & .400E+01, .500E+01, .600E+01/ 75 | DATA X2225B/ .296E-01, .202E+01, .279E+01, .330E+01,& 76 | & .428E+01, .526E+01, .571E+01, .625E+01, .697E+01,& 77 | & .748E+01, .805E+01, .903E+01, .100E+02/ 78 | ! 79 | ! ----FIGURE 7.1.2.2-25C 80 | ! 81 | DATA Q2225C/4H7.1.,4H2.2-,4H25C / 82 | DATA X1225C/ .000E+00, .100E+01, .200E+01, .300E+01,& 83 | & .400E+01, .500E+01, .600E+01/ 84 | DATA X2225C/ .125E-01, .199E+01, .268E+01, .332E+01,& 85 | & .369E+01, .433E+01, .468E+01, .539E+01, .571E+01, .668E+01,& 86 | & .802E+01, .903E+01, .100E+02/ 87 | ! 88 | ! ----FIGURE 7.1.2.2-25D 89 | ! 90 | DATA Q2225D/4H7.1.,4H2.2-,4H25D / 91 | DATA X1225D/ .000E+00, .100E+01, .200E+01, .300E+01,& 92 | & .400E+01, .500E+01, .600E+01/ 93 | DATA X2225D/ .140E-01, .199E+01, .224E+01, .256E+01,& 94 | & .275E+01, .328E+01, .371E+01, .433E+01, .502E+01, .560E+01,& 95 | & .698E+01, .802E+01, .901E+01, .100E+02/ 96 | ! 97 | ! ----FIGURE 7.1.2.2-25E 98 | ! 99 | DATA Q2225E/4H7.1.,4H2.2-,4H25E / 100 | DATA X1225E/ .000E+00, .100E+01, .200E+01, .300E+01,& 101 | & .400E+01, .500E+01, .600E+01/ 102 | DATA X2225E/ .180E-01, .205E+01, .217E+01, .237E+01,& 103 | & .258E+01, .284E+01, .302E+01, .353E+01, .402E+01, .449E+01,& 104 | & .504E+01, .546E+01, .602E+01, .701E+01, .803E+01, .900E+01,& 105 | & .100E+02/ 106 | ! 107 | ! ----FIGURE 7.1.2.1-10A 108 | ! 109 | DATA Q2110A/4H7.1.,4H2.1-,4H10A / 110 | DATA X1110A/ .100E+02, .150E+02, .200E+02, .250E+02,& 111 | & .300E+02, .350E+02, .400E+02, .450E+02, .500E+02, .550E+02,& 112 | & .600E+02, .650E+02, .700E+02, .750E+02/ 113 | DATA X2110A/ .134E+01, .149E+01, .160E+01, .179E+01,& 114 | & .200E+01, .240E+01, .297E+01, .349E+01, .399E+01/ 115 | ! 116 | ! ----FIGURE 7.1.2.1-10B 117 | ! 118 | DATA Q2110B/4H7.1.,4H2.1-,4H10B / 119 | DATA X1110B/ .100E+01, .200E+01, .300E+01, .400E+01,& 120 | & .800E+01, .120E+02, .200E+02/ 121 | DATA X2110B/ .238E+00, .550E+00, .842E+00, .127E+01,& 122 | & .216E+01, .282E+01, .325E+01, .398E+01, .430E+01, .464E+01,& 123 | & .498E+01, .543E+01, .596E+01, .694E+01, .795E+01, .901E+01,& 124 | & .999E+01, .110E+02, .120E+02/ 125 | ! 126 | ! ----FIGURE 7.1.2.1-10C 127 | ! 128 | DATA Q2110C/4H7.1.,4H2.1-,4H10C / 129 | DATA X1110C/ .000E+00, .250E+00, .500E+00, .750E+00,& 130 | & .100E+01/ 131 | DATA X2110C/ -.600E+01, -.243E+01, -.197E+01, -.102E+01,& 132 | & .000E+00/ 133 | ! 134 | ! ----FIGURE 7.1.2.3-14A 135 | ! 136 | DATA Q2314A/4H7.1.,4H2.3-,4H14A / 137 | DATA X1314A/ .200E+01, .300E+01, .400E+01, .500E+01,& 138 | & .600E+01, .700E+01, .800E+01, .100E+02, .150E+02, .200E+02/ 139 | DATA X2314A/ .323E+00, .399E+00, .451E+00, .493E+00,& 140 | & .527E+00, .537E+00, .553E+00, .584E+00, .631E+00, .651E+00,& 141 | & .700E+00, .802E+00, .902E+00, .100E+01/ 142 | ! 143 | ! ----FIGURE 7.1.2.3-14B 144 | ! 145 | DATA Q2314B/4H7.1.,4H2.3-,4H14B / 146 | DATA X1314B/ .200E+01, .300E+01, .400E+01, .500E+01,& 147 | & .600E+01, .700E+01, .800E+01, .100E+02, .150E+02, .200E+02/ 148 | DATA X2314B/ .326E+00, .393E+00, .443E+00, .478E+00,& 149 | & .502E+00, .519E+00, .552E+00, .569E+00, .616E+00, .647E+00,& 150 | & .700E+00, .799E+00, .900E+00, .100E+01/ 151 | ! 152 | ! ----FIGURE 7.1.2.3-14C 153 | ! 154 | DATA Q2314C/4H7.1.,4H2.3-,4H14C / 155 | DATA X1314C/ .200E+01, .300E+01, .400E+01, .500E+01,& 156 | & .600E+01, .700E+01, .800E+01, .100E+02, .150E+02, .200E+02/ 157 | DATA X2314C/ .369E+00, .444E+00, .492E+00, .532E+00,& 158 | & .563E+00, .585E+00, .615E+00, .641E+00, .675E+00, .747E+00,& 159 | & .795E+00, .898E+00, .100E+01/ 160 | ! 161 | ! ----FIGURE 7.1.2.3-14D 162 | ! 163 | DATA Q2314D/4H7.1.,4H2.3-,4H14D / 164 | DATA X1314D/ .200E+01, .300E+01, .400E+01, .500E+01,& 165 | & .600E+01, .700E+01, .800E+01, .100E+02, .150E+02, .200E+02/ 166 | DATA X2314D/ .401E+00, .492E+00, .546E+00, .589E+00,& 167 | & .611E+00, .639E+00, .666E+00, .693E+00, .731E+00, .753E+00,& 168 | & .804E+00, .902E+00, .100E+01/ 169 | ! 170 | ! ----FIGURE 7.1.2.3-16 171 | ! 172 | DATA Q12316/4H7.1.,4H2.3-,4H16 / 173 | DATA I22316 /9/ 174 | DATA X12316/ .301E+00, .498E+00, .750E+00, .846E+00,& 175 | & .922E+00, .949E+00, .974E+00, .987E+00, .997E+00/ 176 | DATA Y12316/ -.168E+00, -.135E+00, -.851E-01, -.626E-01,& 177 | & -.385E-01, -.293E-01, -.190E-01, -.115E-01, -.575E-03/ 178 | ! 179 | ! ----FIGURE 7.1.2.3-17A 180 | ! 181 | DATA Q2317A/4H7.1.,4H2.3-,4H17A / 182 | DATA X1317A/ .200E+01, .300E+01, .400E+01, .800E+01,& 183 | & .120E+02/ 184 | DATA X2317A/ .100E+01, .115E+01, .125E+01, .138E+01,& 185 | & .153E+01, .175E+01, .201E+01, .249E+01, .301E+01, .351E+01,& 186 | & .397E+01, .449E+01, .549E+01, .648E+01, .698E+01/ 187 | ! 188 | ! ----FIGURE 7.1.2.3-17B 189 | ! 190 | DATA Q2317B/4H7.1.,4H2.3-,4H17B / 191 | DATA X1317B/ .200E+01, .300E+01, .400E+01, .800E+01,& 192 | & .120E+02/ 193 | DATA X2317B/ .101E+01, .127E+01, .150E+01, .167E+01,& 194 | & .184E+01, .202E+01, .253E+01, .303E+01, .352E+01, .403E+01,& 195 | & .502E+01, .603E+01, .700E+01/ 196 | ! 197 | ! ----FIGURE 7.1.2.3-17C 198 | ! 199 | DATA Q2317C/4H7.1.,4H2.3-,4H17C / 200 | DATA X1317C/ .200E+01, .300E+01, .400E+01, .800E+01,& 201 | & .120E+02/ 202 | DATA X2317C/ .100E+01, .113E+01, .131E+01, .150E+01,& 203 | & .164E+01, .181E+01, .198E+01, .220E+01, .250E+01, .299E+01,& 204 | & .347E+01, .398E+01, .496E+01, .597E+01, .693E+01/ 205 | ! 206 | ! ----FIGURE 7.1.2.3-17D 207 | ! 208 | DATA Q2317D/4H7.1.,4H2.3-,4H17D / 209 | DATA X1317D/ .200E+01, .300E+01, .400E+01, .800E+01,& 210 | & .120E+02/ 211 | DATA X2317D/ .100E+01, .110E+01, .125E+01, .136E+01,& 212 | & .149E+01, .174E+01, .200E+01, .251E+01, .303E+01, .351E+01,& 213 | & .400E+01, .501E+01, .603E+01, .699E+01/ 214 | ! 215 | ! IN THE FOLLOWING DATA STATEMENTS 2 FLOATING POINT NUMBERS,WITH 216 | ! 3 SIGNIFICANT DIGITS EACH,ARE PACKED IN 1 FIXED POINT WORD. 217 | ! 218 | ! THE FORMAT IS AS FOLLOWS- 219 | ! 220 | ! SIGN1,NS2,NSPS,NP1,NP2,ND1,ND2 221 | ! 222 | ! WHERE- 223 | ! 224 | ! SIGN1 IS THE ACTUAL SIGN OF THE 1ST NUMBER 225 | ! NS2 REPRESENTS THE SIGN OF THE 2ND NUMBER.0 IF + , 1 IF - 226 | ! NSPS REPRESENTS THE SIGNS OF THE POWERS OF 10 FOR BOTH NUMBERS 227 | ! 0 IF ++ , 1 IF -- , 2 IF +- , 3 IF -+ 228 | ! NP1 IS THE POWER OF 10 FOR THE 1ST NUMBER. LIMITED TO 1 DIGIT 229 | ! NP2 IS THE POWER OF 10 FOR THE 2ND NUMBER. LIMITED TO 1 DIGIT 230 | ! ND1 3 DIGITS OF THE 1ST NUMBER (DECIMAL POINT AT END) 231 | ! ND2 3 DIGITS OF THE 2ND NUMBER (DECIMAL POINT AT END) 232 | ! 233 | DATA Y2225A/-1143985102,-1133105107,-1134109960,-1144760690,& 234 | &-1144620570,-1144530490,-1144460410,-1144390370,-1144330990,& 235 | &-1143990100,-1133101101,-1144990760,-1144710630,-1144580540,& 236 | &-1144510470,-1144420400,-1144380340,-1144990960,-1144940930,& 237 | &-1144910890,-1144830750,-1144670610,-1144560520,-1144490430,& 238 | &-1144410390,-1144350860,-1144830820,-1144810810,-1144800760,& 239 | &-1144750730,-1144660600,-1144560510,-1144440420,-1144400350,& 240 | &-1144750740,-1144740730,-1144730730,-1144710710,-1144690680,& 241 | &-1144650590,-1144540460,-1144440410,-1144360670,-1144670670,& 242 | &-1144670680,-1144680670,-1144660650,-1144640630,-1144620600,& 243 | &-1144510460,-1144430380,-1144580590,-1144590600,-1144610620,& 244 | &-1144630620,-1144620610,-1144600590,-1144580560,-1144500460,& 245 | & -340410000/ 246 | DATA Y2225B/-1143988134,-1133123114,-1144938780,-1144725671,& 247 | &-1144615576,-1144541485,-1144441988,-1133124119,-1134113954,& 248 | &-1144806743,-1144681623,-1144588551,-1144488445,-1143987113,& 249 | &-1133111110,-1144969827,-1144771701,-1144632594,-1144557495,& 250 | &-1144448928,-1133102102,-1134101967,-1144857802,-1144741660,& 251 | &-1144622578,-1144514461,-1144839906,-1144938933,-1144903876,& 252 | &-1144825776,-1144697650,-1144601544,-1144487771,-1144791824,& 253 | &-1144843862,-1144828815,-1144797737,-1144690640,-1144565505,& 254 | &-1144691708,-1144732747,-1144780787,-1144778764,-1144738713,& 255 | &-1144674602, -340533000/ 256 | DATA Y2225C/-1143987137,-1133127116,-1133111100,-1144944855,& 257 | &-1144809713,-1144615562,-1144511982,-1133131124,-1133116110,& 258 | &-1134100944,-1144853814,-1144720619,-1144563511,-1143982119,& 259 | &-1133118112,-1133109102,-1144976883,-1144839734,-1144628566,& 260 | &-1144516943,-1133107109,-1133108107,-1134102974,-1144901860,& 261 | &-1144761640,-1144576523,-1144877935,-1144968999,-1144991974,& 262 | &-1144972913,-1144880791,-1144677605,-1144546820,-1144827854,& 263 | &-1144878891,-1144913904,-1144886880,-1144809700,-1144633566,& 264 | &-1144738726,-1144749773,-1144786809,-1144826850,-1144844830,& 265 | &-1144730656, -340594000/ 266 | DATA Y2225D/-1143985141,-1133136132,-1133128119,-1133112103,& 267 | &-1144940869,-1144731654,-1144592541,-1143985131,-1133128125,& 268 | &-1133123117,-1133111105,-1144953871,-1144735654,-1144592541,& 269 | &-1143985117,-1133120120,-1133119114,-1133109104,-1144952887,& 270 | &-1144747666,-1144599544,-1143953103,-1133104106,-1133106110,& 271 | &-1133107103,-1144966906,-1144767687,-1144617566,-1144893908,& 272 | &-1144938958,-1144968985,-1143998101,-1144975917,-1144800723,& 273 | &-1144651578,-1144822803,-1144824843,-1144857889,-1144911929,& 274 | &-1144938917,-1144820741,-1144671594,-1144760724,-1144735757,& 275 | &-1144770804,-1144831846,-1144864871,-1144819755,-1144685615/ 276 | DATA Y2225E/-1143988129,-1133129130,-1133129128,-1133125117,& 277 | &-1133110102,-1144960910,-1144850760,-1144680620,-1144570980,& 278 | &-1133125126,-1133126126,-1133125123,-1133117109,-1134103960,& 279 | &-1144910850,-1144760680,-1144630570,-1143990113,-1133116118,& 280 | &-1133118118,-1133118115,-1133109105,-1144980930,-1144870780,& 281 | &-1144700640,-1144580960,-1133104105,-1133107109,-1133112114,& 282 | &-1133112108,-1134104990,-1144940890,-1144790720,-1144650600,& 283 | &-1144900930,-1144930950,-1144970980,-1144000102,-1133104102,& 284 | &-1144980940,-1144900820,-1144730670,-1144610840,-1144820830,& 285 | &-1144850860,-1144880890,-1144920940,-1144960960,-1144950920,& 286 | &-1144820750,-1144680630,-1144770730,-1144740750,-1144770780,& 287 | &-1144790820,-1144850860,-1144880890,-1144900850,-1144770710,& 288 | & -340650000/ 289 | DATA Y2110A/ 111106130, 111148177, 111211274, 111364445,& 290 | & 112525828, 121994112, 111134162, 111223327, 111438563,& 291 | & 122706802, 121879100, 111115142, 111179209, 112237582,& 292 | & 122661713, 122817930, 111115144, 111168189, 122508572,& 293 | & 122628699, 122787958, 111118137, 112155445, 122498552,& 294 | & 122618695, 122824999, 111116130, 122410452, 122491540,& 295 | & 122602713, 122861997, 112112330, 122408429, 122485533,& 296 | & 122637755, 122868969, 122262342, 122399436, 122485565,& 297 | & 122669757, 122855209, 122272314, 122395436, 122503587,& 298 | & 122665731, 122140215, 122260338, 122398450, 122525588,& 299 | & 123651831, 122136166, 122228288, 122392452, 122505560,& 300 | & 133466831, 122108150, 122196291, 122388445, 123487464,& 301 | & 133531715, 132877125, 122192271, 122344413/ 302 | DATA Y2110B/ 122439402, 122374346, 122310295, 122278249,& 303 | & 122230218, 122199189, 122184161, 122152147, 122145136,& 304 | & 122138599, 122532489, 122425344, 122306285, 122249228,& 305 | & 122202190, 122172157, 122145138, 122127118, 122115113,& 306 | & 122728659, 122599519, 122384335, 122304247, 122219188,& 307 | & 122160136, 122121111, 133976951, 133974909, 132771910,& 308 | & 122804715, 122600426, 122351320, 122252199, 122158133,& 309 | & 122117107, 133821749, 133679679, 133680679, 122778767,& 310 | & 122751716, 122601478, 122380249, 122190135, 123111797,& 311 | & 133625482, 133409385, 133363363, 132318951, 122938919,& 312 | & 122877741, 122596481, 122251164, 123116790, 133517433,& 313 | & 133388364, 133340317, 133318295, 111346307, 111272224,& 314 | & 112140889, 122612244, 123123675, 133449356, 133185206,& 315 | & 133138114, 133136137, 330136000/ 316 | DATA Y2110C/ 124358230, 340230000, 142230505, 122145106,& 317 | & 134413230, 122610248, 122209106, 142230677, 122324285,& 318 | & 124161230, 122728367, 122326220, 340230000/ 319 | DATA Y2314A/-1133828841,-1133849855,-1133858858,-1133859862,& 320 | &-1133866866,-1133867869,-1133869870,-1133818817,-1133819824,& 321 | &-1133826824,-1133825826,-1133826826,-1133825817,-1133813805,& 322 | &-1133808808,-1133808808,-1133808806,-1133807806,-1133806805,& 323 | &-1133800793,-1133783772,-1133767788,-1133796799,-1133798796,& 324 | &-1133796796,-1133793791,-1133786776,-1133765753,-1133666739,& 325 | &-1133770784,-1133788790,-1133790788,-1133785785,-1133779767,& 326 | &-1133754742,-1133797793,-1133790788,-1133787787,-1133785784,& 327 | &-1133779776,-1133772761,-1133746733,-1133799796,-1133792789,& 328 | &-1133786785,-1133784780,-1133775774,-1133767754,-1133741723,& 329 | &-1133826809,-1133798790,-1133784783,-1133780775,-1133769766,& 330 | &-1133759745,-1133732714,-1133847821,-1133806794,-1133785783,& 331 | &-1133779772,-1133762758,-1133751736,-1133721702,-1133824805,& 332 | &-1133793783,-1133776774,-1133771765,-1133756753,-1133745730,& 333 | &-1133713697/ 334 | DATA Y2314B/-1122138141,-1122143144,-1122145145,-1122147147,& 335 | &-1122149149,-1122151153,-1122155157,-1122137136,-1122137138,& 336 | &-1122138139,-1122139139,-1122140140,-1122141141,-1122141142,& 337 | &-1122133134,-1122134135,-1122134135,-1122135135,-1122136136,& 338 | &-1122136136,-1122135135,-1122133133,-1122132132,-1122133133,& 339 | &-1122133133,-1122133132,-1122132132,-1122132130,-1122126130,& 340 | &-1122131132,-1122132132,-1122132131,-1122131131,-1122131130,& 341 | &-1122129127,-1122140135,-1122133131,-1122131131,-1122130130,& 342 | &-1122130130,-1122129128,-1122126126,-1122127129,-1122129130,& 343 | &-1122130130,-1122130129,-1122129128,-1122128127,-1122126124,& 344 | &-1122121125,-1122126127,-1122128128,-1122128128,-1122128127,& 345 | &-1122126125,-1122123122,-1122118122,-1122124125,-1122126126,& 346 | &-1122126126,-1122126126,-1122124123,-1122121119,-1122124124,& 347 | &-1122125125,-1122125125,-1122125125,-1122124124,-1122123122,& 348 | &-1122119117/ 349 | DATA Y2314C/-1122189195,-1122198201,-1122202204,-1122206206,& 350 | &-1122209213,-1122215220,-1122225177,-1122185187,-1122188188,& 351 | &-1122189190,-1122191192,-1122193195,-1122196199,-1122171178,& 352 | &-1122181182,-1122182182,-1122182183,-1122183184,-1122185186,& 353 | &-1122186178,-1122178178,-1122178178,-1122178178,-1122178178,& 354 | &-1122178178,-1122178178,-1122163169,-1122172174,-1122174174,& 355 | &-1122174174,-1122174174,-1122173173,-1122172185,-1122179176,& 356 | &-1122175174,-1122173173,-1122173173,-1122172172,-1122169168,& 357 | &-1122146158,-1122163167,-1122168169,-1122170170,-1122169169,& 358 | &-1122168167,-1122165144,-1122156161,-1122164166,-1122167168,& 359 | &-1122168168,-1122167166,-1122164162,-1122139150,-1122155159,& 360 | &-1122161162,-1122163164,-1122164163,-1122162159,-1122156201,& 361 | &-1122188181,-1122177173,-1122171168,-1122166164,-1122160159,& 362 | &-1122156154/ 363 | DATA Y2314D/-1122228237,-1122242245,-1122247249,-1122252254,& 364 | &-1122256258,-1122262269,-1122276210,-1122221225,-1122226227,& 365 | &-1122229229,-1122230233,-1122233234,-1122238242,-1122211215,& 366 | &-1122216217,-1122217218,-1122219219,-1122220220,-1122220223,& 367 | &-1122223206,-1122208209,-1122210211,-1122211211,-1122211211,& 368 | &-1122212212,-1122212213,-1122208207,-1122207207,-1122207207,& 369 | &-1122207207,-1122207207,-1122207206,-1122205203,-1122203203,& 370 | &-1122202202,-1122204204,-1122203203,-1122203202,-1122201200,& 371 | &-1122202202,-1122202202,-1122202201,-1122201201,-1122201201,& 372 | &-1122200198,-1122196176,-1122186191,-1122194195,-1122196196,& 373 | &-1122197197,-1122197196,-1122194191,-1122145167,-1122176182,& 374 | &-1122185187,-1122189190,-1122191191,-1122190187,-1122183173,& 375 | &-1122180183,-1122185186,-1122187187,-1122188188,-1122188187,& 376 | &-1122183181/ 377 | DATA Y2317A/-1133142138,-1133130121,-1134113991,-1144879753,& 378 | &-1144692655,-1144625609,-1144580559,-1144552943,-1144881812,& 379 | &-1144672580,-1144475431,-1144371338,-1144317297,-1144288278,& 380 | &-1144258256,-1144696641,-1144534411,-1144349288,-1144250211,& 381 | &-1144187178,-1144174167,-1144151150,-1144148354,-1144249182,& 382 | &-1144130104,-1155776710,-1155639593,-1155572459,-1155412365,& 383 | &-1155342342,-1144214123,-1155900662,-1155525365,-1155343320,& 384 | &-1155274274,-1155252229,-1155205205, -350205000/ 385 | DATA Y2317B/-1133410391,-1133366353,-1133340326,-1133302281,& 386 | &-1133267262,-1133248240,-1133233267,-1133247215,-1133197181,& 387 | &-1133175156,-1133140134,-1133126120,-1133119115,-1133198175,& 388 | &-1133143123,-1133108103,-1144904847,-1144810751,-1144678663,& 389 | &-1143659102,-1144668473,-1144368329,-1144318281,-1144267231,& 390 | &-1144206202,-1144163159,-1144660362,-1144221184,-1144159147,& 391 | &-1144134131,-1144118116,-1144111107, -340102000/ 392 | DATA Y2317C/-1133681675,-1133659642,-1133624608,-1133591577,& 393 | &-1133562537,-1133521509,-1133490480,-1133469455,-1133434413,& 394 | &-1133387371,-1133354341,-1133319301,-1133279265,-1133257244,& 395 | &-1133239229,-1133330321,-1133296275,-1133258239,-1133220200,& 396 | &-1133183166,-1133158151,-1133147138,-1133135159,-1133143111,& 397 | &-1144869740,-1144667597,-1144538511,-1144455406,-1144392388,& 398 | &-1144385371,-1134114888,-1144571374,-1144322307,-1144278278,& 399 | &-1144198187,-1144186172,-1144191188, -340207000/ 400 | DATA Y2317D/-1133932927,-1133914898,-1133889860,-1133836807,& 401 | &-1133778754,-1133743717,-1133707690,-1133612602,-1133576568,& 402 | &-1133550529,-1133495457,-1133425406,-1133389379,-1133360357,& 403 | &-1133460449,-1133424413,-1133382348,-1133319283,-1133266247,& 404 | &-1133241227,-1133214211,-1133234209,-1133179162,-1133134121,& 405 | &-1134101918,-1144849702,-1144686654,-1144645636,-1133177118,& 406 | &-1144927838,-1144648592,-1144524394,-1144398339,-1144323314,& 407 | &-1144305295/ 408 | DATA X13170/2.,12./,X23170/0.,7.,0.,7./,Y23170/0.,0./ 409 | ! 410 | MACH=FLC(IM+2) 411 | COTLE=1./TANLE 412 | IF(WGPL.AND.(.NOT.BO))GO TO 1000 413 | DB=(SSPN-SSPNE)/SSPN 414 | IF(DB.GT.0.3)RETURN 415 | 1000 ASTAN2=AW*TANCO2 416 | BAW=BETA*AW 417 | ! ---SUPER WING,WING-BODY ROLLING DERIVATIVE,CLP--- 418 | ! 419 | ! FIGURE 7.1.2.2-25 A-E 420 | CALL INTEP3(ASTAN2,BAW,LAMDA,X1225A,X2225A,Y2225A,7,17,Q2225A,& 421 | ! 422 | &X1225B,X2225B,Y2225B,7,13,Q2225B,& 423 | & X1225C,X2225C,Y2225C,7,13,Q2225C,& 424 | & X1225D,X2225D,Y2225D,7,14,Q2225D,& 425 | & X1225E,X2225E,Y2225E,7,17,Q2225E,CLPA) 426 | SAVE=4.*SW*SSPN**2/(RAD*SR*BLREF**2) 427 | CLPWBH=CLPA*CNACNA*SAVE*AW 428 | ! 429 | ! ---SUPER WING,WING-BODY YAWING DERIVATIVE,CYP--- 430 | ! -- FIGURE 7.1.2.1-10 -- 431 | ! 432 | CALL TLIP2X(X1110A,X2110A,Y2110A,14, 9,LAMLE,MACH,TRENS,2,1,2,1,& 433 | & Q2110A,3,ROUTID) 434 | CALL TLIP2X(X1110B,X2110B,Y2110B,7,19,BAW,TRENS,CHENGE,2,1,2,1,& 435 | & Q2110B,3,ROUTID) 436 | CHENGE=-CHENGE 437 | CALL TLIP2X(X1110C,X2110C,Y2110C,5,5,LAMDA,CHENGE,CYPA,1,1,2,1,& 438 | & Q2110C,3,ROUTID) 439 | TEMP=CYPA*SW*SSPN/(SR*BLREF*1641.645) 440 | DO 1010 I=1,NALPHA 441 | CYPWSP(I)=TEMP*ALSCHD(I) 442 | 1010 CONTINUE 443 | ! 444 | ! ----SUPER WING,WING-BODY ROLLING DERIVATIVE,CNP--- 445 | ! 446 | BCOTLE=BETA*COTLE 447 | IF(BCOTLE.GE.1.)GO TO 1030 448 | ! 449 | ! FIGURE 7.1.2.3-14 A-D 450 | ! 451 | CALL INTEP3( BAW, BCOTLE, LAMDA, 0, 0, 0, 1, 1, 0& 452 | & ,X1314A,X2314A,Y2314A,10,14,Q2314A& 453 | & ,X1314B,X2314B,Y2314B,10,14,Q2314B& 454 | & ,X1314C,X2314C,Y2314C,10,13,Q2314C& 455 | & ,X1314D,X2314D,Y2314D,10,13,Q2314D,CNPTAS) 456 | CNPA1 =CNPTAS*TANLE 457 | ! 458 | ! -- FIGURE 7.1.2.3-16 -- 459 | ! 460 | CALL INTERX(1,X12316,BCOTLE,I22316,Y12316,CNPAAS,9,9,1,0,0,0,1,& 461 | & 0,0,0,Q12316,3,ROUTID) 462 | CNPA2=CNPAAS*AW 463 | CNPA3=CNPAAS*AW*TANLE**2 464 | CNPA=CNPA1+CNPA2+CNPA3 465 | CNAPE=SAVE*(CNPA+CYPA*(XCG-XW)/CR*AW*(1.+LAMDA)) 466 | DO 1020 I=1,NALPHA 467 | 1020 CNPWBH(I)=(CNPAE-CLPWBH)*ALSCHD(I)/RAD 468 | GO TO 1050 469 | 1030 CONTINUE 470 | ! 471 | ! FIGURE 7.1.2.3-17 A-D 472 | ! 473 | CALL INTEP3( BAW, BCOTLE, LAMDA, 0, 0, 0, 1, 1, 0,& 474 | & X1317A,X2317A,Y2317A,5,15,Q2317A,& 475 | & X1317B,X2317B,Y2317B,5,13,Q2317B,& 476 | & X1317C,X2317C,Y2317C,5,15,Q2317C,& 477 | & X1317D,X2317D,Y2317D,5,14,Q2317D,CNPBA) 478 | AAAAA=BETA*CNPBA 479 | BBBBB=2.*XCG/(BLREF*AW*(1.+LAMDA))-.5*TANLE 480 | CCCCC=(AAAAA+BBBBB*CYPA*BLREF/(2.*SSPN))*SAVE 481 | DO 1040 I=1,NALPHA 482 | CNPWBH(I)=(CCCCC-CLPWBH)*ALSCHD(I)/RAD 483 | 1040 CONTINUE 484 | 1050 CONTINUE 485 | RETURN 486 | END 487 | -------------------------------------------------------------------------------- /test/input/airfol.f: -------------------------------------------------------------------------------- 1 | SUBROUTINE AIRFOL 2 | C 3 | C CALCULATE NACA DESIGNATED AIRFOIL COORDINATES 4 | C 5 | REAL A/1.0000000000000000000000000000000 6 | 1111111111111111111/ 7 | COMMON / 8 | 1TEST/ C 9 | COMMON /IBODY/ PB,NACA(80) 10 | COMMON /IWING/ PW, X(60) 11 | COMMON / IHT / PHT, XU(60),XL(60) 12 | COMMON / IVT / PVT, YUN(60),YLN(60) 13 | COMMON / IBW / PBW,L,I,J,K,II,JJ,KK,III,JJJ,KKK,LLL 14 | COMMON / IBH / PBH, THN(60),CAM(60) 15 | COMMON /IBWHV/ PBWHV, RHO,TMAX 16 | COMMON /FLOLOG/ DUM(29),PART 17 | LOGICAL DUM,PART 18 | INTEGER A4HW,A4HH,A4HV,A4HF 19 | DIMENSION THN2(60) 20 | DATA A4HW,A4HH,A4HV,A4HF/4HW ,4HH ,4HV ,4HF / 21 | C 22 | C DECODE THE USERS INPUT NACA DESIGNATION 23 | C 24 | CALL DECODE(NACA,NA) 25 | C 26 | C CALCULATE THE AIRFOIL COORDINATES 27 | C 28 | IF(PART)WRITE(6,1100) 29 | IF(PART .AND. NACA(6).EQ.A4HW)WRITE(6,1230) 30 | IF(PART .AND. NACA(6).EQ.A4HH)WRITE(6,1240) 31 | IF(PART .AND. NACA(6).EQ.A4HV)WRITE(6,1250) 32 | IF(PART .AND. NACA(6).EQ.A4HF)WRITE(6,1260) 33 | C 34 | GO TO (1000,1010,1020,1030,1040,1050,1060), NA 35 | C 36 | 1000 IF(PART)WRITE(6,1110)I,J,K,II 37 | C 38 | C** CALCULATE NACA 4-DIGIT AIRFOIL COORDINATES 39 | C 40 | CALL COORD4 41 | GO TO 1080 42 | 1010 IF(PART)WRITE(6,1120)I,J,K,II,KK,III 43 | C 44 | C** CALCULATE NACA MODIFIED 4-DIGIT AIRFOIL COORDINATES 45 | C 46 | CALL CORD4M 47 | GO TO 1080 48 | 1020 IF(PART)WRITE(6,1130)I,J,K,II,JJ 49 | C 50 | C** CALCULATE NACA 5-DIGIT AIRFOIL COORDINATES 51 | C 52 | CALL COORD5 53 | GO TO 1080 54 | 1030 IF(PART)WRITE(6,1140)I,J,K,II,JJ,III,JJJ 55 | C 56 | C** CALCULATE NACA MODIFIED 5-DIGIT AIRFOIL COORDINATES 57 | C 58 | CALL CORD5M 59 | GO TO 1080 60 | 1040 IF(PART)WRITE(6,1150)I,J,II,JJ,KK 61 | C 62 | C** CALCULATE NACA 1-SERIES AIRFOIL COORDINATES 63 | C 64 | CALL COORD1 65 | GO TO 1080 66 | 1050 IF(PART .AND. (K .EQ. 0 .AND. II .EQ. 0)) 67 | 1 WRITE(6,1160)I,J,JJ,KK,III 68 | IF(PART .AND. (K .NE. 0 .AND. II .EQ. 0)) 69 | 1 WRITE(6,1170)I,J,K,JJ,KK,III 70 | IF(PART .AND. (K .EQ. 0 .AND. II .NE. 0)) 71 | 1 WRITE(6,1180)I,J,JJ,KK,III 72 | IF(PART .AND. (K .NE. 0 .AND. II .NE. 0)) 73 | 1 WRITE(6,1190)I,J,K,JJ,KK,III 74 | IF(PART .AND. (JJJ .GE. 1)) WRITE(6,1200)JJJ 75 | C 76 | C** CALCULATE NACA 6-SERIES AIRFOIL COORDINATES 77 | C 78 | CALL COORD6 79 | GO TO 1080 80 | 1060 IF(I.NE.2)GO TO 1070 81 | J=5 82 | K=0 83 | II=0 84 | 1070 IF(PART)WRITE(6,1270)I,J,K,II,JJ,KK,III,JJJ,KKK,LLL 85 | C 86 | C** CALCULATE GEOMTRY FOR SUPERSONIC AIRFOILS 87 | C 88 | CALL CORDSP 89 | C 90 | C** CALCULATE AIRFIOL SECTION X Y COORDINATES OR THICKNESS/CAMBER 91 | C DISTRIBUTION 92 | C 93 | CALL XYCORD(0,0) 94 | 1080 IF(PART)WRITE(6,1210) 95 | C 96 | DO 1090 M=1,L 97 | THN2(M)=2.*THN(M) 98 | 1090 CONTINUE 99 | IF(PART)WRITE(6,1220)(XU(M),YUN(M),XL(M),YLN(M),X(M),CAM(M), 100 | 1 THN2(M),M=1,L) 101 | RETURN 102 | C 103 | 1100 FORMAT(1H1,29X,75HAUTOMATED STABILITY AND CONTROL METHODS PER APRI 104 | 1L 1976 VERSION OF DATCOM ) 105 | 1110 FORMAT(1H ,62X,6H NACA ,4I1) 106 | 1120 FORMAT(1H ,60X,6H NACA ,4I1,3H - ,2I1) 107 | 1130 FORMAT(1H ,62X,6H NACA ,5I1) 108 | 1140 FORMAT(1H ,60X,6H NACA ,5I1,3H - ,2I1) 109 | 1150 FORMAT(1H ,61X,6H NACA ,2I1,3H - ,3I1) 110 | 1160 FORMAT(1H ,62X,6H NACA ,2I1,1H-,3I1) 111 | 1170 FORMAT(1H ,60X,6H NACA ,2I1,1H,,I1,1H-,3I1) 112 | 1180 FORMAT(1H ,61X,6H NACA ,2I1,1HA,3I1) 113 | 1190 FORMAT(1H ,60X,6H NACA ,2I1,1H,,I1,1HA,3I1) 114 | 1200 FORMAT(1H ,65X,4HA=0.,I1) 115 | 1210 FORMAT(1H ,3X,15H UPPER ABSCISSA,4X,15H UPPER ORDINATE,4X, 116 | 1 15H LOWER ABSCISSA,4X,15H LOWER ORDINATE,6X, 117 | 2 16HX-FRACTION CHORD,4X,9HMEAN LINE,4X,9HTHICKNESS) 118 | 1220 FORMAT(8X,F8.5,11X,F8.5,10X,F8.5,10X,F8.5,13X,F8.5,10X, 119 | 1 F8.5,6X,F8.5) 120 | 1230 FORMAT(1H ,55X,23HWING SECTION DEFINITION) 121 | 1240 FORMAT(1H ,50X,34HHORIZONTAL TAIL SECTION DEFINITION) 122 | 1250 FORMAT(1H ,51X,32HVERTICAL TAIL SECTION DEFINITION) 123 | 1260 FORMAT(1H ,52X,30HVENTRAL FIN SECTION DEFINITION ) 124 | 1270 FORMAT(1H ,54X,8H NACA S-,I1,1H-,2I1,1H.,I1,1H-,2I1,1H.,I1, 125 | 1 1H-,2I1,1H.,I1) 126 | END 127 | -------------------------------------------------------------------------------- /test/input/atmos.f: -------------------------------------------------------------------------------- 1 | SUBROUTINE ATMOS (A3,A8,A4) 2 | C 3 | C THIS ROUTINE CALCULATES ATMOSPHERIC PROPERTIES OF THE 4 | C US STANDARD ATMOSPHERE,1962,ASSUMING AN INVERSE SQUARE 5 | C GRAVITATIONAL FIELD. THIS ASSUMPTION YIELDS DATA THAT 6 | C AGREES WITH THE COESA DOCUMENT WITHIN 1 PER CENT AT 7 | C ALL ALTITUDES UP TO 700 KILOMETERS (2296588 FEET). THE 8 | C DATA IS ARRANGED IN THE ATMOSPHERE ARRAY, A, AS 9 | C FOLLOWS 10 | C A(1) = CS, SPEED OF SOUND, FT/SEC 11 | C A(2) = (1/CS)(DCS/DZ), SOUND DERIVATIVE, 1/FT 12 | C A(3) = Z, GEOMETRIC ALTITUDE, FT 13 | C A(4) = P, PRESSURE, LB/FT2 14 | C A(5) = DP/DZ, PRESSURE DERIVATIVE, LB/FT3 15 | C A(6) = RHO, DENSITY, SLUGS/FT3 16 | C A(7) = (1/RHO)(DRHO/DZ), DENSITY DERIVATIVE, 1/FT 17 | C A(8) = T, TEMPERATURE, DEG RANKINE 18 | C A(9) = DT/DZ, TEMPERATURE DERIVATIVE, DEG RANKINE/FT 19 | C 20 | C VARIOUS CONSTANTS USED 21 | C EARTH RADIUS = 20890855 FT 22 | C SPECIFIC HEAT RATIO FOR AIR = 1.4 23 | C SEA LEVEL VALUES 24 | C GRAVITATIONAL ACCELERATION = 32.1740484 FT/SEC2 25 | C MOLECULAR WEIGHT = 28.9644 26 | C GO*MO/R* = 0.018743418 DEG RANK/FT 27 | C 28 | DIMENSION A( 9),HG(10),ZM(14),WM(14),TM(23),PM(22) 29 | C 30 | C SET ARRAYS AND CONSTANT VALUES 31 | DATA G0,WM0,R0,GMRS/32.1740484,28.9644,20890855.0, 32 | 1 0.018743418/,HG/-16404.,0.0 33 | 2 ,36089.,65617.,104987.,154199.,170604.,200131., 34 | 3 250186.,291160./,ZM/295276.,328084., 35 | 4 360892.,393701.,492126.,524934.,557743.,623360., 36 | 5 754593.,984252.,1312336.,1640420.,1968504., 37 | 6 2296588./,WM/28.9644,28.88,28.56, 38 | 7 28.07,26.92,26.66,26.4,25.85,24.7,22.66,19.94, 39 | 8 17.94,16.84,16.17/ 40 | C 41 | DATA TM/577.17,518.67,389.97,389.97,411.57 42 | 1 ,487.17,487.17,454.77,325.17,325.17,379.17,469.17 43 | 2 ,649.17,1729.17,1999.17,2179.17,2431.17,2791.17 44 | 3 ,3295.17,3889.17,4357.17,4663.17,4861.17/,PM/ 45 | 4 3711.0839,2116.2165,472.67563,114.34314, 46 | 5 18.128355,2.3162178,1.2321972,3.8030279E-01, 47 | 6 2.1671352E-02,3.4313478E-03,6.2773411E-04,1.53490 48 | 7 91E-04,5.2624212E-05,1.0561806E-05,7.7083076E-06, 49 | 8 5.8267151E-06,3.5159854E-06,1.4520255E-06,3.92905 50 | 9 63E-07,8.4030242E-08,2.2835256E-08,7.1875452E-09/ 51 | C 52 | A(3) = A3 53 | C 54 | C CALCULATE G, Z, AND CHECK 55 | C 56 | 1000 Z = A(3) 57 | G = G0*(R0/(R0+Z))**2 58 | IF (Z .GT. 295276.0) GO TO 1040 59 | C 60 | C TMS LINEAR WITH GEOPOTENTIAL. CALCULATE H AND SEARCH 61 | C 62 | H = R0*Z/(R0+Z) 63 | DO 1010 I= 2,10 64 | J = I - 1 65 | IF (HG(I) .GE. H) GO TO 1020 66 | 1010 CONTINUE 67 | C 68 | C CALCULATE TMS SLOPE,TMS, AND SET MOL WT STUFF 69 | C 70 | 1020 ELH = (TM(J+1) - TM(J))/(HG(J+1) - HG(J)) 71 | TMS = TM(J) + ELH*(H - HG(J)) 72 | ELZ = ELH*G/G0 73 | DMDZ = 0.0 74 | EM = WM0 75 | C 76 | C CHECK TMS SLOPE AND CALCULATE PRESSURE 77 | C 78 | IF (ELH .EQ. 0.0) GO TO 1030 79 | C 80 | C NON - ZERO SLOPE PRESSURE EQUATION 81 | C 82 | A(4) = PM(J)*(TM(J)/TMS)**(GMRS/ELH) 83 | GO TO 1070 84 | C 85 | C ZERO SLOPE PRESSURE EQUATION 86 | C 87 | 1030 A(4) = PM(J)*EXP(GMRS*(HG(J)-H)/TMS) 88 | GO TO 1070 89 | C 90 | C TMS LINEAR WITH Z. SEARCH MATRIX 91 | C 92 | 1040 DO 1050 I = 2,14 93 | J = I + 8 94 | K = I - 1 95 | IF (ZM(I) .GE. Z) GO TO 1060 96 | 1050 CONTINUE 97 | C 98 | C CALCULATE TMS, SLOPE, AND STUFF 99 | C 100 | 1060 ELZ = (TM(J+1) - TM(J))/(ZM(K+1) - ZM(K)) 101 | TMS = TM(J) + ELZ*(Z - ZM(K)) 102 | DMDZ = (WM(K+1) - WM(K))/(ZM(K+1) - ZM(K)) 103 | EM = WM(K) + DMDZ*(Z - ZM(K)) 104 | ZLZ = Z - TMS/ELZ 105 | C 106 | C PRESSURE EQUATION FOR TMS LINEAR WITH Z 107 | C 108 | A(4) = PM(J)*EXP(GMRS/ELZ*(R0/(R0+ZLZ))**2*((Z-ZM(K))* 109 | 1 (R0+ZLZ)/(R0+Z)/(R0+ZM(K)) - ALOG(TMS*(R0+ZM(K) 110 | 2 )/TM(J)/(R0+Z)))) 111 | C 112 | C CALCULATE SOUND SPEED AND DERIVATIVE 113 | C 114 | 1070 A(1) = 49.022164*SQRT(TMS) 115 | A(2) = 0.5*ELZ/TMS 116 | C 117 | C CALCULATE DENSITY, DERIVATIVE, AND PRESSURE DERIVATIVE 118 | C 119 | A(6) = GMRS*A(4)/G0/TMS 120 | A(7) = - (A(6)*G/A(4) + ELZ/TMS) 121 | A(5) = -A(6)*G 122 | C 123 | C CALCULATE TEMPERATURE, DERIVATIVE, AND LEAVE 124 | C 125 | A(8) = EM*TMS/WM0 126 | A(9) = (EM*ELZ + TMS*DMDZ)/WM0 127 | A8 = A(8) 128 | A4 = A(4) 129 | A1 = A(1) 130 | A6 = A(6) 131 | RETURN 132 | END 133 | -------------------------------------------------------------------------------- /test/input/auxout.f: -------------------------------------------------------------------------------- 1 | SUBROUTINE AUXOUT 2 | C 3 | C WRITE AUXILIARY AND PARTIAL OUTPUTS 4 | C 5 | COMMON /OVERLY/ NLOG,NMACH,I,NALPHA,IG,NF,LF,K 6 | COMMON /IWING/ PWING, WING(400) 7 | COMMON /IHT/ PHT, HT(380) 8 | COMMON /IVT/ PVT, VT(380) 9 | COMMON /IVF/ PVF, VF(380) 10 | COMMON /FLGTCD/ FLC(160) 11 | COMMON /OPTION/ SREF, CBARR, ROUGFC, BLREF 12 | COMMON /SYNTSS/ SYNA(19) 13 | COMMON /POWR/ DYN(213) 14 | COMMON /WINGI/ WINGIN(100) 15 | COMMON /HTI/ HTIN(154) 16 | COMMON /VTI/ VTIN(154), TVTIN(8), VFIN(154) 17 | COMMON /WINGD/ A(195) 18 | COMMON /SBETA/ STB(135), TRA(108), TRAH(108), STBH(135) 19 | COMMON /BDATA/ BD(762) 20 | COMMON /WHWB/ FACT(182), WB(39), HB(39) 21 | COMMON /WBHCAL/ WBT(156) 22 | COMMON /HTDATA/ AHT(195) 23 | COMMON /VTDATA/ AVT(195), AVF(195) 24 | COMMON /WHAERO/ C(51), D(55), CHT(51), DHT(55), DVT(55), DVF(55) 25 | COMMON /SUPWBB/ SWB(61), SHB(61) 26 | COMMON /SUPBOD/ SBD(229) 27 | COMMON /SUPWH/ SLG(141), STG(141) 28 | COMMON /FLOLOG/ FLTC,OPTI,BO,WGPL,WGSC,SYNT,HTPL,HTSC,VTPL,VTSC, 29 | 1 HEAD,PRPOWR,JETPOW,LOASRT,TVTPAN,SUPERS,SUBSON, 30 | 2 TRANSN,HYPERS,SYMFP,ASYFP,TRIMC,TRIM,DAMP, 31 | 3 HYPEF,TRAJET,BUILD,FIRST,DRCONV,PART, 32 | 4 VFPL,VFSC,CTAB 33 | COMMON /CONSNT/ PI, DEG, UNUSED, RAD 34 | COMMON /LEVEL2/ SECOND(23) 35 | COMMON /CASEID/ IDCASE(74),KOUNT,NAMSV(100),IDIM 36 | C 37 | DIMENSION STP(155),FOR1(34),FOR2(26),ICON(8),JCON(6),FOR3(14) 38 | DIMENSION H(1),O(1),P(1),Q(1),R(1),S(1),T(1),ANONE(20),KCON(3) 39 | DIMENSION SLA(31),FOR3A(3) 40 | DIMENSION ICONT(11), FOR(46), OPT(4) 41 | C 42 | EQUIVALENCE (OPT(1),SREF) 43 | EQUIVALENCE (WBT(1),STP(1)) 44 | EQUIVALENCE (SLA(1),STB(1)),(DOL2,SECOND(16)) 45 | LOGICAL FLTC,OPTI,BO,WGPL,WGSC,SYNT,HTPL,HTSC,VTPL,VTSC, 46 | 1 HEAD,PRPOWR,JETPOW,LOASRT,TVTPAN,SUPERS,SUBSON, 47 | 2 TRANSN,HYPERS,SYMFP,ASYFP,TRIMC,TRIM,DAMP, 48 | 3 HYPEF,TRAJET,BUILD,FIRST,DRCONV,PART, 49 | 4 VFPL,VFSC,CTAB 50 | LOGICAL NN,NM,DOL2,SUPHYP 51 | CHARACTER*4 FOR,FOR1,FOR2,FOR3,FOR3A,FORSAV,FORSAW,FORSAX 52 | DATA FOR / 4H( ,4H1H0 , 53 | 1 4H,0P ,4HF6.3,4H,1X ,4H,1X , 4H,1X,,4HF8.2,4H,1X ,4H,1X , 54 | 2 4H,1X,,4HF8.2,4H,1X ,4H,2X , 4H,1P ,4HE10.,4H4 ,4H,3X , 55 | 3 4H,0P ,4HF9.3,4H,1X ,4H,4X , 4H,1P ,4HE10.,4H4 ,4H,9X , 56 | 4 4H,0P ,4HF9.3,4H,1X ,4H,1X , 4H,1X,,4HF8.3,4H,1X ,4H , 57 | 5 4H,1X,,4HF8.3,4H,1X ,4H , 4H,1X,,4HF8.3,4H,1X ,4H , 58 | 6 4H,1X,,4HF8.3,4H,1X ,4H) / 59 | DATA FOR1 / 60 | 1 4H(1H , 4H,10X, 4H,1X,, 4HE11., 61 | 2 4H4,1X, 4H,1X , 4H,1X,, 4HF6. , 62 | 3 4H2,1X, 4H,1X , 4H,1X,, 4HF5. , 63 | 4 4H2,1X, 4H,2X , 4H,1X,, 4HF9. , 64 | 5 4H4,1X, 4H,5X , 4H,1X,, 4HE11., 65 | 6 4H4,1X, 4H,1X , 4H,1X,, 4HE11., 66 | 7 4H4,1X, 4H,1X , 4H,1X,, 4HE11., 67 | 8 4H4,1X, 4H,3X , 4H,1X,, 4HE11., 68 | 9 4H4 , 4H) / 69 | DATA FOR2 / 70 | 1 4H(1H , 4H,13X, 4H,1X,, 4HF7. , 71 | 2 4H3,1X, 4H,4X , 4H,1X,, 4HE11., 72 | 3 4H4,1X, 4H,4X , 4H,1X,, 4HE11., 73 | 4 4H4,1X, 4H,4X , 4H,1X,, 4HE11., 74 | 5 4H4,1X, 4H,4X , 4H,1X,, 4HE11., 75 | 6 4H4,1X, 4H,12X, 4H,1X,, 4HE11., 76 | 7 4H4 , 4H) / 77 | DATA FOR3 / 78 | 1 4H( , 4H44X , 4H,1X,, 4HF7. , 79 | 2 4H3,1X, 4H,5X , 4H,1X,, 4HE11., 80 | 3 4H4,1X, 4H,5X , 4H,1X,, 4HE11., 81 | 4 4H4 , 4H) / 82 | DATA ICON / 13,7,7,11,4*13 / 83 | DATA JCON / 9,5*13 / 84 | DATA KCON / 9,2*13 / 85 | DATA ICONT / 7, 10*10 / 86 | DATA FOR3A/4HE11.,4H4,1X,4H,5X / 87 | C 88 | C WRITE AUXILIARY OUTPUTS 89 | C 90 | NN = .FALSE. 91 | NM = .FALSE. 92 | SUPHYP = SUPERS .OR. HYPERS 93 | ANA = 2.*UNUSED 94 | DO 1000 J=1,NALPHA 95 | 1000 ANONE(J) = ANA 96 | IF(BO) LAST=1 97 | IF(WGPL) LAST=2 98 | IF(HTPL) LAST=3 99 | IF(VTPL .OR. VFPL) LAST=4 100 | IF(BO .AND. WGPL) LAST=5 101 | IF(BO .AND. HTPL) LAST=6 102 | IF(BO .AND. (VTPL .OR. VFPL)) LAST=7 103 | IF(BO .AND. WGPL .AND. HTPL) LAST=8 104 | IF(BO .AND. WGPL .AND. (VTPL .OR. VFPL)) LAST=9 105 | IF(BO .AND. WGPL .AND. HTPL .AND. (VTPL .OR. VFPL)) LAST=10 106 | WRITE(6,1550 ) 107 | WRITE(6,1560 ) 108 | GO TO (1010 ,1020 ,1030 ,1040 ,1050 ,1060 ,1070 ,1080 ,109 109 | 10 ,1100 ), LAST 110 | 1010 WRITE(6,1570 ) 111 | GO TO 1110 112 | 1020 WRITE(6,1580 ) 113 | GO TO 1110 114 | 1030 WRITE(6,1590 ) 115 | GO TO 1110 116 | 1040 WRITE(6,1600 ) 117 | GO TO 1110 118 | 1050 WRITE(6,1610 ) 119 | GO TO 1110 120 | 1060 WRITE(6,1620 ) 121 | GO TO 1110 122 | 1070 WRITE(6,1630 ) 123 | GO TO 1110 124 | 1080 WRITE(6,1640 ) 125 | GO TO 1110 126 | 1090 WRITE(6,1650 ) 127 | GO TO 1110 128 | 1100 WRITE(6,1660 ) 129 | 1110 IF(HEAD) CALL PRCSID 130 | WRITE(6,1670 ) 131 | IF(IDIM .EQ. 1) WRITE(6,1680 ) 132 | IF(IDIM .EQ. 2) WRITE(6,1690 ) 133 | IF(IDIM .EQ. 3) WRITE(6,1700 ) 134 | IF(IDIM .EQ. 4) WRITE(6,1710 ) 135 | SC = SYNA(13) 136 | XL = 1.0 137 | XR = 1.0 138 | XP = 1.0 139 | XT = 1.0 140 | IF(IDIM .EQ. 2) XL = 12.0 141 | IF(IDIM .EQ. 2) XP = 144.0 142 | IF(IDIM .GE. 3) XP = 0.0208854 143 | IF(IDIM .GE. 3) XR = 0.3048 144 | IF(IDIM .GE. 3) XT = 1.8 145 | IF(IDIM .EQ. 3) XL = 0.3048 146 | IF(IDIM .EQ. 4) XL = 30.48 147 | ALT = FLC(K+96) 148 | VINF = FLC(I+136) 149 | PINF = FLC(K+73) 150 | TINF = FLC(K+116) 151 | IF(ALT .NE. -UNUSED) ALT = ALT *XL 152 | IF(VINF .NE. -UNUSED) VINF = VINF*XL 153 | IF(PINF .NE. -UNUSED) PINF = PINF/XP 154 | IF(TINF .NE. -UNUSED) TINF = TINF/XT 155 | RN = FLC(I+42)/XR 156 | SRF = OPT(1)*XL*XL/(SC*SC) 157 | CBAR = OPT(2)*XL/SC 158 | BLRF = OPT(4)*XL/SC 159 | XCG = SYNA(1) 160 | ZCG = SYNA(5) 161 | IF(XCG .EQ. UNUSED) XCG = 0.0 162 | IF(ZCG .EQ. UNUSED) ZCG = 0.0 163 | IF(BD(11) .NE. UNUSED) XCG = XCG+BD(11) 164 | XBN = BD(11) 165 | XCG = XCG*XL/SC 166 | ZCG = ZCG*XL/SC 167 | CALL SWRITE(11,FOR,46,ICONT,1,FLC(I+2),ALT,VINF,PINF, 168 | 1 TINF,RN,SRF,CBAR,BLRF,XCG,ZCG,DUM, 169 | 2 DUM,DUM,NDMF,NAF) 170 | IF(VTPL) XCGMAC=(XCG-SYNA(9)*XL/SC-AVT(195)*XL/SC)-XBN*XL/SC 171 | IF(HTPL) XCGMAC=(XCG-SYNA(6)*XL/SC-AHT(195)*XL/SC)-XBN*XL/SC 172 | IF(WGPL) XCGMAC=(XCG-SYNA(2)*XL/SC-A (195)*XL/SC)-XBN*XL/SC 173 | IF(.NOT. BO) GO TO 1120 174 | C 175 | C WRITE BODY AUXILIARY OUTPUTS IF BODY PRESENT 176 | C 177 | BD93 = BD(93)*XL*XL/(SC*SC) 178 | BD57 = BD(57)*XL*XL/(SC*SC) 179 | SBD19 = SBD(19)*XL*XL/(SC*SC) 180 | SBD111 = SBD(111)*XL*XL/(SC*SC) 181 | WRITE(6,1470 ) 182 | IF(SUBSON)CALL SWRITE(8,FOR1,34,ICON,1,BD93,XCG,ZCG,BD57, 183 | 1 BD(61),BD(60),BD(59),ANA,O,P,Q,R,S,T,NN,NM) 184 | IF(TRANSN)CALL SWRITE(8,FOR1,34,ICON,1,BD93,XCG,ZCG,BD57, 185 | 1 TRA(78),TRA(76),TRA(79),TRA(80),O,P,Q,R,S,T,NN,NM) 186 | IF(SUPHYP)CALL SWRITE(8,FOR1,34,ICON,1,SBD111,XCG,ZCG,SBD19, 187 | 1 SBD(124),SBD(123),SBD(115),ANA,O,P,Q,R,S,T,NN,NM) 188 | 1120 IF(WGPL .OR. HTPL .OR. VTPL) WRITE(6,1480 ) XCGMAC 189 | C 190 | C WRITE WING DATA IF WING PRESENT 191 | C 192 | IF(.NOT. WGPL) GO TO 1130 193 | WRITE(6,1490 ) 194 | IF(SUBSON) 195 | 1 CALL AXPRNT(A,WINGIN,D(11),D(12),D(20),D(10),SYNA(2), 196 | 2 NN,NM,XL,SC,XBN) 197 | IF(TRANSN) 198 | 1 CALL AXPRNT(A,WINGIN,ANA,ANA,WING(1),TRA(42),SYNA(2), 199 | 2 NN,NM,XL,SC,XBN) 200 | IF(SUPHYP) 201 | 1 CALL AXPRNT(A,WINGIN,SLG(84),SLG(83),SLG(80),SLG(88),SYNA(2), 202 | 2 NN,NM,XL,SC,XBN) 203 | C 204 | C WRITE H.T. DATA IF H.T. PRESENT 205 | C 206 | 1130 IF(.NOT. HTPL) GO TO 1140 207 | WRITE(6,1500 ) 208 | IF(SUBSON) 209 | 1 CALL AXPRNT(AHT,HTIN,DHT(11),DHT(12),DHT(20),DHT(10),SYNA(6), 210 | 2 NN,NM,XL,SC,XBN) 211 | IF(TRANSN) 212 | 1 CALL AXPRNT(AHT,HTIN,ANA,ANA,HT(1),TRAH(42),SYNA(6), 213 | 2 NN,NM,XL,SC,XBN) 214 | IF(SUPHYP) 215 | 1 CALL AXPRNT(AHT,HTIN,STG(84),STG(83),STG(80),STG(88),SYNA(6), 216 | 2 NN,NM,XL,SC,XBN) 217 | C 218 | C WRITE V.T. DATA IF V.T. PRESENT 219 | C 220 | 1140 IF(.NOT. VTPL) GO TO 1150 221 | WRITE(6,1510 ) 222 | IF(SUBSON) 223 | 1 CALL AXPRNT(AVT,VTIN,DVT(11),DVT(12),DVT(20),DVT(10),SYNA(9), 224 | 2 NN,NM,XL,SC,XBN) 225 | IF(TRANSN) 226 | 1 CALL AXPRNT(AVT,VTIN,ANA,ANA,ANA,ANA,SYNA(9), 227 | 2 NN,NM,XL,SC,XBN) 228 | IF(SUPHYP) 229 | 1 CALL AXPRNT(AVT,VTIN,ANA,ANA,VT(1),ANA,SYNA(9), 230 | 2 NN,NM,XL,SC,XBN) 231 | C 232 | C WRITE V.F. DATA IF V.F. PRESENT 233 | C 234 | 1150 IF(.NOT. VFPL) GO TO 1160 235 | WRITE(6,1520 ) 236 | IF(SUBSON) 237 | 1 CALL AXPRNT(AVF,VFIN,DVF(11),DVF(12),DVF(20),DVF(10),SYNA(12), 238 | 2 NN,NM,XL,SC,XBN) 239 | IF(TRANSN) 240 | 1 CALL AXPRNT(AVF,VFIN,ANA,ANA,ANA,ANA,SYNA(12), 241 | 2 NN,NM,XL,SC,XBN) 242 | IF(SUPHYP) 243 | 1 CALL AXPRNT(AVF,VFIN,ANA,ANA,VF(1),ANA,SYNA(12), 244 | 2 NN,NM,XL,SC,XBN) 245 | 1160 IF(NN) WRITE(6,1770 ) 246 | IF(NM) WRITE(6,1780 ) 247 | NN = .FALSE. 248 | NM = .FALSE. 249 | C 250 | C**** WRITE PARTIAL OUTPUTS 251 | C 252 | IF(.NOT. BO) GO TO 1340 253 | IF(LAST .EQ. 1 .OR. LAST .EQ. 7) GO TO 1340 254 | WRITE(6,1550 ) 255 | WRITE(6,1560 ) 256 | GO TO (1170 ,1180 ,1190 ,1200 ,1210 ,1220 ,1230 ,1240 ,1250 ,1260 257 | 1), LAST 258 | 1170 WRITE(6,1570 ) 259 | GO TO 1270 260 | 1180 WRITE(6,1580 ) 261 | GO TO 1270 262 | 1190 WRITE(6,1590 ) 263 | GO TO 1270 264 | 1200 WRITE(6,1600 ) 265 | GO TO 1270 266 | 1210 WRITE(6,1610 ) 267 | GO TO 1270 268 | 1220 WRITE(6,1620 ) 269 | GO TO 1270 270 | 1230 WRITE(6,1630 ) 271 | GO TO 1270 272 | 1240 WRITE(6,1640 ) 273 | GO TO 1270 274 | 1250 WRITE(6,1650 ) 275 | GO TO 1270 276 | 1260 WRITE(6,1660 ) 277 | 1270 IF(HEAD) CALL PRCSID 278 | WRITE(6,1670 ) 279 | IF(IDIM .EQ. 1) WRITE(6,1680 ) 280 | IF(IDIM .EQ. 2) WRITE(6,1690 ) 281 | IF(IDIM .EQ. 3) WRITE(6,1700 ) 282 | IF(IDIM .EQ. 4) WRITE(6,1710 ) 283 | CALL SWRITE(11,FOR,46,ICONT,1,FLC(I+2),ALT,VINF,PINF, 284 | 1 TINF,RN,SRF,CBAR,BLRF,XCG,ZCG,DUM, 285 | 2 DUM,DUM,NDMF,NAF) 286 | IF(.NOT. WGPL) GO TO 1280 287 | IF(SUBSON)WRITE(6,1720 )WB(5),WB(4),WB(3),WB(2),WB(13) 288 | IF(TRANSN)WRITE(6,1720 )TRA(72),TRA(71),SWB(11),SWB(35),TRA(106) 289 | IF(SUPHYP)WRITE(6,1720 )SWB(7),SWB(33),SWB(11),SWB(35),SWB(8) 290 | 1280 IF(.NOT. HTPL) GO TO 1290 291 | IF(SUBSON)WRITE(6,1730 )WBT(4),WBT(3),WBT(2),WBT(1),HB(13) 292 | IF(TRANSN)WRITE(6,1730 )TRAH(72),TRAH(71),SHB(11),SHB(35),TRAH(106 293 | 1) 294 | IF(SUPHYP)WRITE(6,1730 )STP(68),STP(67),STP(65),STP(66),SHB(8) 295 | 1290 IF(.NOT. (WGPL .OR. HTPL)) GO TO 1340 296 | IF(STB(117) .EQ. UNUSED) GO TO 1300 297 | IF(WGPL .AND. (SUBSON .OR. TRANSN)) WRITE(6,1540 ) STB(117) 298 | 1300 IF(.NOT. SUBSON) GO TO 1310 299 | WRITE(6,1740 ) 300 | IF(WGPL .AND. HTPL) 301 | 1 CALL SWRITE(6,FOR2,26,JCON,NALPHA,FLC(23),FACT(2),FACT(42), 302 | 2 FACT(143),FACT(22),WBT(46),H,H,O,P,Q,R,S,T,NN,NM) 303 | IF(WGPL .AND. .NOT. HTPL) 304 | 1 CALL SWRITE(6,FOR2,26,JCON,NALPHA,FLC(23),FACT(2),ANONE, 305 | 2 ANONE,FACT(22),ANONE,H,H,O,P,Q,R,S,T,NN,NM) 306 | GO TO 1320 307 | 1310 IF(TRANSN) GO TO 1320 308 | WRITE(6,1740 ) 309 | IF(WGPL .AND. HTPL) 310 | 1 CALL SWRITE(6,FOR2,26,JCON,NALPHA,FLC(23),SWB(12),STP(71), 311 | 2 STP(133),SWB(40),STP(111),H,H,O,P,Q,R,S,T,NN,NM) 312 | IF(WGPL .AND. .NOT. HTPL) 313 | 1 CALL SWRITE(6,FOR2,26,JCON,NALPHA,FLC(23),SWB(12),ANONE, 314 | 2 ANONE,SWB(40),ANONE,H,H,O,P,Q,R,S,T,NN,NM) 315 | 1320 CONTINUE 316 | IF(TRANSN .OR. HYPERS .OR. .NOT. DAMP) GO TO 1330 317 | WRITE(6,1760 )DYN(176),DYN(68),DYN(95),DYN(177),DYN(180) 318 | WRITE(6,1790 ) 319 | KSAVE=KCON(1) 320 | KCON(1)=11 321 | FORSAV=FOR3(4) 322 | FORSAW=FOR3(5) 323 | FORSAX=FOR3(6) 324 | FOR3(4)=FOR3A(1) 325 | FOR3(5)=FOR3A(2) 326 | FOR3(6)=FOR3A(3) 327 | STB67=STB(67) 328 | SLA9=SLA(9) 329 | C4=C(4) 330 | CHT4=CHT(4) 331 | IF(STB(67) .EQ. UNUSED) STB67=2.*UNUSED 332 | IF(SLA(9) .EQ. UNUSED) SLA9=2.*UNUSED 333 | IF(C(4) .EQ. UNUSED) C4=2.*UNUSED 334 | IF(CHT(4) .EQ. UNUSED) CHT4=2.*UNUSED 335 | IF(SUBSON)CALL SWRITE(3,FOR3,14,KCON,1,STB67,C4,CHT4, 336 | 1 H,O,P,Q,R,S,T,Q,R,S,T,NN,NM) 337 | IF(SUPERS)CALL SWRITE(3,FOR3,14,KCON,1,SLA9,C4,CHT4, 338 | 1 H,O,P,Q,R,S,T,Q,R,S,T,NN,NM) 339 | KCON(1)=KSAVE 340 | FOR3(4)=FORSAV 341 | FOR3(5)=FORSAW 342 | FOR3(6)=FORSAX 343 | 1330 CONTINUE 344 | IF(.NOT. (WGPL .AND. HTPL)) GO TO 1340 345 | IF(WINGIN(4)/HTIN(4) .GE. 1.5) GO TO 1340 346 | WRITE(6,1750 ) 347 | CALL SWRITE(3,FOR3,14,KCON,NALPHA,FLC(23),FACT(102),FACT(122), 348 | 1 H,O,P,Q,R,S,T,Q,R,S,T,NN,NM) 349 | 1340 CONTINUE 350 | IF(NN) WRITE(6,1770 ) 351 | IF(NM) WRITE(6,1780 ) 352 | IF(LAST .EQ. 1 .OR. LAST .EQ. 4 .OR. LAST .EQ. 7) GO TO 1460 353 | C 354 | C WRITE SECOND LEVEL METHOD DATA IF AVAILABLE 355 | C 356 | IF(.NOT. TRANSN) GO TO 1460 357 | IF(.NOT. DOL2) GO TO 1460 358 | WRITE(6,1550 ) 359 | WRITE(6,1560 ) 360 | GO TO (1350 ,1360 ,1370 ,1380 ,1390 ,1400 ,1410 ,1420 ,1430 ,1440 361 | 1), LAST 362 | 1350 WRITE(6,1570 ) 363 | GO TO 1450 364 | 1360 WRITE(6,1580 ) 365 | GO TO 1450 366 | 1370 WRITE(6,1590 ) 367 | GO TO 1450 368 | 1380 WRITE(6,1600 ) 369 | GO TO 1450 370 | 1390 WRITE(6,1610 ) 371 | GO TO 1450 372 | 1400 WRITE(6,1620 ) 373 | GO TO 1450 374 | 1410 WRITE(6,1630 ) 375 | GO TO 1450 376 | 1420 WRITE(6,1640 ) 377 | GO TO 1450 378 | 1430 WRITE(6,1650 ) 379 | GO TO 1450 380 | 1440 WRITE(6,1660 ) 381 | 1450 IF(HEAD) CALL PRCSID 382 | WRITE(6,1670 ) 383 | IF(IDIM .EQ. 1) WRITE(6,1680 ) 384 | IF(IDIM .EQ. 2) WRITE(6,1690 ) 385 | IF(IDIM .EQ. 3) WRITE(6,1700 ) 386 | IF(IDIM .EQ. 4) WRITE(6,1710 ) 387 | CALL SWRITE(11,FOR,46,ICONT,1,FLC(I+2),ALT,VINF,PINF, 388 | 1 TINF,RN,SRF,CBAR,BLRF,XCG,ZCG,DUM, 389 | 2 DUM,DUM,NDMF,NAF) 390 | CALL PRNSEC(LAST) 391 | 1460 WRITE(6,1530 ) 392 | C 393 | RETURN 394 | 1470 FORMAT(//55X,21HBASIC BODY PROPERTIES//12X,11HWETTED AREA,6X, 395 | 1 3HXCG,5X,3HZCG,5X,9HBASE AREA,5X,14HZERO LIFT DRAG,3X, 396 | 2 9HBASE DRAG,3X,13HFRICTION DRAG,3X,13HPRESSURE DRAG) 397 | 1480 FORMAT(//41X,45HXCG RELATIVE TO THEORETICAL LEADING EDGE MAC=,F7.2 398 | 1 ///55X,25HBASIC PLANFORM PROPERTIES//36X,5HTAPER,5X,6HASPECT,3X, 399 | 2 13HQUARTER CHORD,13X,13HQUARTER CHORD,14X,9HZERO LIFT,4X, 400 | 3 8HFRICTION/25X,4HAREA,7X,5HRATIO,6X,5HRATIO,7X,5HSWEEP,8X, 401 | 4 3HMAC,8X,6HX(MAC),7X,6HY(MAC),8X,4HDRAG,5X,11HCOEFFICIENT) 402 | 1490 FORMAT(1H0,6X,4HWING) 403 | 1500 FORMAT(1H0,2X,15HHORIZONTAL TAIL) 404 | 1510 FORMAT(1H0,3X,13HVERTICAL TAIL) 405 | 1520 FORMAT(1H0,4X,11HVENTRAL FIN) 406 | 1530 FORMAT(1H1) 407 | 1540 FORMAT(1H0,38X,38HSIDEWASH, (1 + D(SIGMA)/D(BETA))QV/Q =,1PE14.7) 408 | 1550 FORMAT(1H1,29X,72HAUTOMATED STABILITY AND CONTROL METHODS PER APRI 409 | 1L 1976 VERSION OF DATCOM) 410 | 1560 FORMAT(45X,42HCONFIGURATION AUXILIARY AND PARTIAL OUTPUT) 411 | 1570 FORMAT(51X,31HDATCOM BODY ALONE CONFIGURATION) 412 | 1580 FORMAT(54X,24HWING ALONE CONFIGURATION) 413 | 1590 FORMAT(52X,29HHORIZONTAL TAIL CONFIGURATION) 414 | 1600 FORMAT(53X,27HVERTICAL TAIL CONFIGURATION) 415 | 1610 FORMAT(55X,23HWING-BODY CONFIGURATION) 416 | 1620 FORMAT(49X,34HBODY-HORIZONTAL TAIL CONFIGURATION) 417 | 1630 FORMAT(50X,32HBODY-VERTICAL TAIL CONFIGURATION) 418 | 1640 FORMAT(47X,39HWING-BODY-HORIZONTAL TAIL CONFIGURATION) 419 | 1650 FORMAT(48X,37HWING-BODY-VERTICAL TAIL CONFIGURATION) 420 | 1660 FORMAT(40X,53HWING-BODY-VERTICAL TAIL-HORIZONTAL TAIL CONFIGURATIO 421 | 1N) 422 | 1670 FORMAT(55H ----------------------- FLIGHT CONDITIONS ----------, 423 | 1 14H--------------,11X,25H-------------- REFERENCE, 424 | 2 25H DIMENSIONS ------------/2X,16HMACH ALTITUDE, 425 | 3 3X,48HVELOCITY PRESSURE TEMPERATURE REYNOLDS, 426 | 4 13X,47HREF. REFERENCE LENGTH MOMENT REF. CENTER/ 427 | 5 7H NUMBER,55X,6HNUMBER,14X,4HAREA,7X,5HLONG.,5X,4HLAT., 428 | 6 5X,15HHORIZ VERT) 429 | 1680 FORMAT(13X,2HFT,7X,6HFT/SEC,5X,8HLB/FT**2,7X,5HDEG R,9X,4H1/FT, 430 | 1 15X,5HFT**2,1X,4(7X,2HFT,1X)) 431 | 1690 FORMAT(13X,2HIN,7X,6HIN/SEC,5X,8HLB/IN**2,7X,5HDEG R,9X,4H1/FT, 432 | 1 15X,5HIN**2,1X,4(7X,2HIN,1X)) 433 | 1700 FORMAT(13X,2H M,7X,6H M/SEC,5X,8H N/ M**2,7X,5HDEG K,9X,4H1/ M, 434 | 1 15X,5H M**2,1X,4(7X,2H M,1X)) 435 | 1710 FORMAT(13X,2HCM,7X,6HCM/SEC,5X,8H N/CM**2,7X,5HDEG K,9X,4H1/ M, 436 | 1 15X,5HCM**2,1X,4(7X,2HCM,1X)) 437 | 1720 FORMAT(1H0,10X,9HCLA-B(W)=,1PE10.3,5X,9HCLA-W(B)=,E10.3,5X, 438 | 1 7HK-B(W)=,E10.3,5X,7HK-W(B)=,E10.3,5X,11HXAC/C-B(W)=,E10.3) 439 | 1730 FORMAT(1H0,10X,9HCLA-B(H)=,1PE10.3,5X,9HCLA-H(B)=,E10.3,5X, 440 | 1 7HK-B(H)=,E10.3,5X,7HK-H(B)=,E10.3,5X,11HXAC/C-B(H)=,E10.3) 441 | 1740 FORMAT(///16X,5HALPHA,9X,7HIV-B(W),10X,7HIV-W(H), 442 | 1 10X,7HIV-B(H),10X,6HGAMMA/,18X,6HGAMMA//78X,14H2*PI*ALPHA*V*R, 443 | 2 9X,17H(2*PI*ALPHA*V*R)T) 444 | 1750 FORMAT(///55X,25HCANARD EFFECTIVE DOWNWASH/47X,5HALPHA,6X, 445 | 1 12H(EPSOLN)EFF.,5X,23HD(EPSOLN)/D(ALPHA) EFF.) 446 | 1760 FORMAT(//50X,31HDYNAMIC DERIVATIVE INCREMENTALS / 447 | 1 10X,17HCLP(GAMMA=CL=0) =,1PE11.4, 448 | 2 5X,26HCLP(GAMMA)/CLP (GAMMA=0) =,E11.4, 449 | 3 6X,11HCNP/THETA =,E11.4/ 450 | 4 30X,11HCYP/GAMMA =,E11.4, 451 | 5 20X,15HCYP/CL (CL=0) =,E11.4/) 452 | 1770 FORMAT(45H0*** NDM PRINTED WHEN NO DATCOM METHODS EXIST) 453 | 1780 FORMAT(42H0*** NA PRINTED WHEN METHOD NOT APPLICABLE) 454 | 1790 FORMAT(45X,9HCLB/GAMMA,8X,12H(CMO/THETA)W,5X,12H(CMO/THETA)H) 455 | END 456 | -------------------------------------------------------------------------------- /test/input/fltcl.f: -------------------------------------------------------------------------------- 1 | SUBROUTINE FLTCL(FOT,IFOT,NTRIM,CLUT,CDUT,CMUT,DELT, 2 | 1 DCLT,DCLMT,DCDIT,DCDMT,CDHT,CLT,CDT, 3 | 2 ICASE) 4 | C 5 | COMMON /OPTION/ SREF,CBARR,ROUGFC,BLREF 6 | COMMON /CONSNT/ PI,DEG,UNUSED,RAD 7 | COMMON /FLGTCD/ FLC(156),WT,GAM,NALT,LOOP 8 | COMMON /OVERLY/ NLOG,NMACH,IM,NALPHA,IG,NF,LF,IALT 9 | COMMON /CASEID/ JCASE(175),IDIM 10 | C 11 | DIMENSION FOT(46),IFOT(11),CLUT(20),CDUT(20),CMUT(20) 12 | DIMENSION DELT(20),DCLT(20),DCLMT(20),DCDIT(20),DCDMT(20) 13 | DIMENSION CDHT(20),CLT(20),CDT(20) 14 | DIMENSION CWT(20),MACH(20),PINF(20) 15 | DIMENSION ALP(1),CL(1),CD(1),CLUE(1),CDUE(1),CMUE(1) 16 | DIMENSION DELE(1),DCLE(1),CLME(1),CLIE(1),CDME(1),CHDE(1) 17 | DIMENSION CHAE(1),WDIM(4),ROUTID(2),CC(6) 18 | C 19 | LOGICAL FLAG 20 | CHARACTER*4 FOT 21 | REAL MACH 22 | EQUIVALENCE (MACH(1),FLC(3)),(PINF(1),FLC(74)) 23 | C 24 | DATA WDIM / 4H LB., 4H LB., 4H N. , 4H N. / 25 | DATA ROUTID / 4HFLTC, 4HL / 26 | C 27 | C*** ICASE = 1 - TRIM WITH FLAPS 28 | C*** ICASE = 2 - ALL MOVEABLE HORIZONTAL TAIL TRIM 29 | C 30 | IF(ICASE .NE. 1) GO TO 1010 31 | DO 1000 I=1,NTRIM 32 | CLT(I) = CLUT(I)+DCLT(I) 33 | CDT(I) = CDUT(I)+DCDMT(I)+DCDIT(I) 34 | 1000 CONTINUE 35 | 1010 CONTINUE 36 | C 37 | C*** CALCULATE CW AND TEST FOR CWT RANGE 38 | C 39 | QS = SREF*(0.7*PINF(IALT)*MACH(IM)**2) 40 | CW = WT/QS 41 | DO 1020 I=1,NTRIM 42 | CWT(I) = CLT(I)*COS(GAM/RAD)-CDT(I)*SIN(GAM/RAD) 43 | 1020 CONTINUE 44 | FLAG = (CW .GT. CWT(NTRIM)) .OR. (CW .LT. CWT(1)) 45 | IF(FLAG) WRITE(6,1060)WT,WDIM(IDIM),CW 46 | C 47 | C*** FIND EQUILIBRIUM ANGLE OF ATTACK AND TRIM DATA 48 | C 49 | IF(FLAG) GO TO 1050 50 | IN=0 51 | CALL TBFUNX(CW,ALP(1),DYDX,NTRIM,CWT,FLC(23),CC,IN, 52 | 1 MI,NG,0,0,4HALPE,1,ROUTID) 53 | IN=0 54 | CALL TBFUNX(ALP(1),CL(1),DYDX,NTRIM,FLC(23),CLT,CC,IN, 55 | 1 MI,NG,0,0,4HCLTE,1,ROUTID) 56 | IN=0 57 | CALL TBFUNX(ALP(1),CD(1),DYDX,NTRIM,FLC(23),CDT,CC,IN, 58 | 1 MI,NG,0,0,4HCDTE,1,ROUTID) 59 | IF(ICASE .NE. 1)GO TO 1030 60 | IN = 0 61 | CALL TBFUNX(ALP(1),CLUE(1),DYDX,NTRIM,FLC(23),CLUT,CC,IN, 62 | 1 MI,NG,0,0,4HCLUE,1,ROUTID) 63 | IN = 0 64 | CALL TBFUNX(ALP(1),CDUE(1),DYDX,NTRIM,FLC(23),CDUT,CC,IN, 65 | 1 MI,NG,0,0,4HCDUE,1,ROUTID) 66 | IN = 0 67 | CALL TBFUNX(ALP(1),CMUE(1),DYDX,NTRIM,FLC(23),CMUT,CC,IN, 68 | 1 MI,NG,0,0,4HCMUE,1,ROUTID) 69 | IN = 0 70 | CALL TBFUNX(ALP(1),DELE(1),DYDX,NTRIM,FLC(23),DELT,CC,IN, 71 | 1 MI,NG,0,0,4HDELE,1,ROUTID) 72 | IN = 0 73 | CALL TBFUNX(ALP(1),DCLE(1),DYDX,NTRIM,FLC(23),DCLT,CC,IN, 74 | 1 MI,NG,0,0,4HDCLE,1,ROUTID) 75 | IN = 0 76 | CALL TBFUNX(ALP(1),CLME(1),DYDX,NTRIM,FLC(23),DCLMT,CC,IN, 77 | 1 MI,NG,0,0,4HCLME,1,ROUTID) 78 | IN = 0 79 | CALL TBFUNX(ALP(1),CLIE(1),DYDX,NTRIM,FLC(23),DCLIT,CC,IN, 80 | 1 MI,NG,0,0,4HCLIE,1,ROUTID) 81 | IN = 0 82 | CALL TBFUNX(ALP(1),CDME(1),DYDX,NTRIM,FLC(23),DCDMT,CC,IN, 83 | 1 MI,NG,0,0,4HCDME,1,ROUTID) 84 | IN = 0 85 | CALL TBFUNX(ALP(1),CHDE(1),DYDX,NTRIM,FLC(23),CHDT,CC,IN, 86 | 1 MI,NG,0,0,4HCHDE,1,ROUTID) 87 | CHAE(1) = 0.0 88 | WRITE(6,1070) 89 | CALL SWRITE(11,FOT,46,IFOT,1,ALP,CLUE,CDUE,CMUE, 90 | 1 DELE,DCLE,CLME,CDIE,CDME,CHAE,CHDE, 91 | 2 X,X,X,NDM,NAF) 92 | 1030 CONTINUE 93 | IF(ICASE .NE. 2) GO TO 1040 94 | WRITE(6,1070) 95 | WRITE(6,1080) ALP(1),CL,CD 96 | 1040 CONTINUE 97 | 1050 CONTINUE 98 | RETURN 99 | 1060 FORMAT(39H0*** REQUIRED LIFT COEFFICIENT EXCEEDS , 100 | 1 18HRANGE OF TRIM DATA / 101 | 2 22H0*** VEHICLE WEIGHT = ,F9.2,A4/ 102 | 3 36H0*** LEVEL FLIGHT LIFT COEFFICIENT = ,F8.5) 103 | 1070 FORMAT(1H ) 104 | 1080 FORMAT(1H0,52X,F5.1,3X,F6.3,3X,F6.3) 105 | END 106 | -------------------------------------------------------------------------------- /test/input/outpt2.f: -------------------------------------------------------------------------------- 1 | SUBROUTINE OUTPT2 2 | C 3 | C THIS SUBROUTINE WRITES THE HIGH LIFT AND CONTROL DATA 4 | C 5 | COMMON /FLAPIN/ F(138) 6 | COMMON /SYNTSS/ SYNA(19) 7 | COMMON /FLGTCD/ FLC(160) 8 | COMMON /OPTION/ OPT(4) 9 | COMMON /CONSNT/ PI, DEG, UNUSED, RAD 10 | COMMON /POWR/ PW(315) 11 | COMMON /OVERLY/ NLOG,NMACH,M,NALPHA,IG,NF,LF,K 12 | COMMON /WINGI/ WINGIN(101) 13 | COMMON /HTI/ HTIN(131) 14 | COMMON /BDATA/ BD(762) 15 | COMMON /CASEID/ IDCASE(74),KOUNT,NAMSV(100),IDIM 16 | COMMON /FLOLOG/ FLTC,OPTI,BO,WGPL,WGSC,SYNT,HTPL,HTSC,VTPL,VTSC, 17 | 1 HEAD,PRPOWR,JETPOW,LOASRT,TVTPAN,SUPERS,SUBSON, 18 | 2 TRANSN,HYPERS,SYMFP,ASYFP,TRIMC,TRIM,DAMP, 19 | 3 HYPEF,TRAJET,BUILD,FIRST,DRCONV,PART, 20 | 4 VFPL,VFSC,CTAB 21 | DIMENSION TRM(22), TRM2(22), ALPHA(20) 22 | EQUIVALENCE (TRM(1),TRM2(1),PW(294)), (ALPHA(1),FLC(23)) 23 | LOGICAL FLTC,OPTI,BO,WGPL,WGSC,SYNT,HTPL,HTSC,VTPL,VTSC, 24 | 1 HEAD,PRPOWR,JETPOW,LOASRT,TVTPAN,SUPERS,SUBSON, 25 | 2 TRANSN,HYPERS,SYMFP,ASYFP,TRIMC,TRIM,DAMP, 26 | 3 HYPEF,TRAJET,BUILD,FIRST,DRCONV,PART, 27 | 4 VFPL,VFSC,CTAB 28 | LOGICAL NDMF,NAF,FLAG 29 | C 30 | COMMON /IBODY/ PBODY, BODY(400) 31 | COMMON /IWING/ PWING, WING(400) 32 | COMMON /IHT/ PHT, HT(380) 33 | COMMON /IVT/ PVT, VT(380) 34 | COMMON /IBW/ PBW, BW(380) 35 | COMMON /IBH/ PBH, BH(380) 36 | COMMON /IBV/ PBV, BV(380) 37 | COMMON /IBWH/ PBWH, BWH(380) 38 | COMMON /IBWHV/ PBWHV, BWHV(380) 39 | C 40 | C SYMMETRICAL FLAP DATA DEFINITION 41 | C 42 | DIMENSION DCDI(200), DCL(10), DCM(10), DCLMAX(10), DCDMIN(10), 43 | 1 DCLAD(10), CHA(10), CHD(10) 44 | DIMENSION DELTA(10) 45 | EQUIVALENCE (DCDI(1),BODY(201)), (DCL(1),WING(201)), 46 | 1 (DCM(1),WING(211)), (DCLMAX(1),WING(221)), 47 | 2 (DCDMIN(1),WING(231)), (DCLAD(1),WING(241)), 48 | 3 (CHA(1),WING(251)), (CHD(1),WING(261)) 49 | EQUIVALENCE (DELTA(1),F(1)), (FTYPE,F(17)) 50 | C 51 | C CONTROL TAB DATA DEFINITION 52 | C 53 | DIMENSION CHCTF(20,9),CHCTL(20,9),DCHCG(20,9),CFC(20,9), 54 | 1 FC(20,9),DTT(20,9) 55 | EQUIVALENCE (CFC(1,1),FC(1,1),BW(201)),(CHCTF(1,1),BH(201)), 56 | 1 (CHCTL(1,1),BV(201)),(DCHCG(1,1),BWH(201)), 57 | 2 (DTT(1,1),BWHV(201)) 58 | C 59 | C ASYMMETRICAL FLAP DATA DEFINITION 60 | C 61 | DIMENSION CNAD(200), CLAD(200), DDELTA(10), CLD(10), CND(10) 62 | DIMENSION DELTAD(10), DELTAL(10), DELTAR(10), DELTAS(10), 63 | 1 XSOC(10), HSOC(10) 64 | EQUIVALENCE (CNAD(1),BODY(201)), (CLAD(1),WING(201)), 65 | 1 (DELTAD(1),F(1)), (STYPE,F(18)), (DELTAL(1),F(19)), 66 | 2 (DELTAR(1),F(29)), (DELTAS(1),F(39)), 67 | 3 (XSOC(1),F(49)), (HSOC(1),F(60)), (DDELTA(1),HT(201)), 68 | 4 (CLD(1),HT(211)), (CND(1),HT(221)) 69 | C 70 | C TRIM DATA DEFINITION 71 | C 72 | DIMENSION CLUT(20), CDUT(20), CMUT(20), DELT(20), DCLT(20), 73 | 1 DCLMT(20), DCDIT(20), DCDMT(20), CHAT(20), CHDT(20) 74 | DIMENSION HMUNT(20), ALINT(20), CDTRM(20), CLTRM(20), CMTRM(20), 75 | 1 HMTRM(20), CDWBT(20), CLWBT(20) 76 | EQUIVALENCE (CLUT(1),HT(201)), (CDUT(1),HT(221)), 77 | 1 (CMUT(1),HT(241)), (DELT(1),VT(201)), (DCLT(1),VT(221)), 78 | 2 (DCLMT(1),VT(241)), (DCDIT(1),VT(261)), 79 | 3 (DCDMT(1),VT(281)), (CHAT(1),VT(301)), 80 | 4 (CHDT(1),VT(321)) 81 | EQUIVALENCE (HMUNT(1),HT(201)), (ALINT(1),HT(221)), 82 | 1 (CDTRM(1),HT(241)), (CLTRM(1),HT(261)), 83 | 2 (CMTRM(1),HT(281)), (HMTRM(1),HT(301)), 84 | 3 (CDWBT(1),VT(201)), (CLWBT(1),VT(221)) 85 | DIMENSION FOR(34), IFOR(8) 86 | DIMENSION FOT(46), IFOT(11) 87 | DIMENSION IFOH(11), FOH(46) 88 | CHARACTER*4 FOR,FOT,FOH 89 | C 90 | DATA FOR / 91 | 1 4H(0P , 4H5X , 4H,1X , 4H,F5., 4H1,1X, 4H,2X , 92 | 2 4H,1X , 4H,F6., 4H3 , 4H,4X , 93 | 3 4H , 4H,F7., 4H4 , 4H,3X , 94 | 4 4H,1X , 4H,F6., 4H3 , 4H,6X , 95 | 5 4H , 4H,F7., 4H5 , 4H,15X, 96 | 6 4H,1P , 4H E10, 4H.3 , 4H,2X , 97 | 7 4H,1P , 4H E10, 4H.3 , 4H,2X , 98 | 8 4H,1P , 4H E10, 4H.3 , 4H) / 99 | DATA IFOR / 5*7, 3*10 / 100 | C 101 | DATA FOT / 102 | 1 4H(0P , 4H4X , 4H,1X , 4H,F5., 4H1,1X, 4H,1X , 103 | 2 4H,1X , 4H,F6., 4H3 , 4H,3X , 104 | 3 4H,1X , 4H,F6., 4H3 , 4H,3X , 105 | 4 4H , 4H,F7., 4H4 , 4H,2X , 106 | 5 4H,1X , 4H,F5., 4H1,1X, 4H,1X , 107 | 6 4H,1X , 4H,F6., 4H3 , 4H,4X , 108 | 7 4H,1X , 4H,F6., 4H3 , 4H,5X , 109 | 8 4H,1P , 4H E9., 4H2 , 4H,2X , 110 | 9 4H,0P , 4H F8., 4H5,1X, 4H,2X , 111 | A 4H,1P , 4H E10, 4H.3 , 4H,3X , 112 | B 4H,1P , 4H E10, 4H.3 , 4H) / 113 | DATA IFOT / 7*7, 2*9, 2*10 / 114 | DATA IFOH / 8, 10*10 / 115 | DATA FOH / 4H( ,4H1H0 , 116 | 1 4H,0P ,4HF6.3,4H,1X ,4H,1X , 4H,1X,,4HF8.2,4H,1X ,4H,1X , 117 | 2 4H,1X,,4HF8.2,4H,1X ,4H,2X , 4H,1P ,4HE10.,4H4 ,4H,3X , 118 | 3 4H,0P ,4HF9.3,4H,1X ,4H,4X , 4H,1P ,4HE10.,4H4 ,4H,9X , 119 | 4 4H,0P ,4HF9.3,4H,1X ,4H,1X , 4H,1X,,4HF8.3,4H,1X ,4H , 120 | 5 4H,1X,,4HF8.3,4H,1X ,4H , 4H,1X,,4HF8.3,4H,1X ,4H , 121 | 6 4H,1X,,4HF8.3,4H,1X ,4H) / 122 | C 123 | C 124 | DATA WINGP / 4HWING /, TAILP / 4HTAIL /, STRA / 4HSTRA / 125 | C 126 | NDELTA = F(16)+0.5 127 | SC = SYNA(13) 128 | XL = 1.0 129 | XR = 1.0 130 | XP = 1.0 131 | XT = 1.0 132 | IF(IDIM .EQ. 2) XL = 12.0 133 | IF(IDIM .EQ. 2) XP = 144.0 134 | IF(IDIM .GE. 3) XP = 0.0208854 135 | IF(IDIM .GE. 3) XR = 0.3048 136 | IF(IDIM .GE. 3) XT = 1.8 137 | IF(IDIM .EQ. 3) XL = 0.3048 138 | IF(IDIM .EQ. 4) XL = 30.48 139 | ALT = FLC(K+96) 140 | VINF = FLC(M+136) 141 | PINF = FLC(K+73) 142 | TINF = FLC(K+116) 143 | IF(ALT .NE. -UNUSED) ALT = ALT *XL 144 | IF(VINF .NE. -UNUSED) VINF = VINF*XL 145 | IF(PINF .NE. -UNUSED) PINF = PINF*XP 146 | IF(TINF .NE. -UNUSED) TINF = TINF*XT 147 | RN = FLC(M+42)*XR 148 | SREF = OPT(1)*XL*XL/(SC*SC) 149 | CBAR = OPT(2)*XL/SC 150 | BLRF = OPT(4)*XL/SC 151 | XCG = SYNA(1) 152 | ZCG = SYNA(5) 153 | IF(XCG .EQ. UNUSED) XCG = 0.0 154 | IF(ZCG .EQ. UNUSED) ZCG = 0.0 155 | IF(BD(11) .NE. UNUSED) XCG = XCG+BD(11) 156 | XCG = XCG*XL/SC 157 | ZCG = ZCG*XL/SC 158 | C 159 | C SYMMETRICAL FLAP DATA 160 | C 161 | FLAG = (FLC(157) .NE. UNUSED) .AND. (FLC(K+72) .NE. UNUSED) 162 | NDMF = .FALSE. 163 | NAF = .FALSE. 164 | IF (.NOT. SYMFP) GO TO 1020 165 | WRITE(6,1340) 166 | VWGTL = WINGP 167 | IF(WGPL .AND. HTPL) VWGTL = TAILP 168 | IF(FTYPE .EQ. 1.0) WRITE(6,1350) VWGTL 169 | IF(FTYPE .EQ. 2.0) WRITE(6,1360) VWGTL 170 | IF(FTYPE .EQ. 3.0) WRITE(6,1370) VWGTL 171 | IF(FTYPE .EQ. 4.0) WRITE(6,1380) VWGTL 172 | IF(FTYPE .EQ. 5.0) WRITE(6,1390) VWGTL 173 | IF(FTYPE .EQ. 6.0) WRITE(6,1400) VWGTL 174 | IF(FTYPE .EQ. 7.0) WRITE(6,1410) VWGTL 175 | IF(HEAD) CALL PRCSID 176 | WRITE(6,1420) 177 | IF(IDIM .EQ. 1) WRITE(6,1430) 178 | IF(IDIM .EQ. 2) WRITE(6,1440) 179 | IF(IDIM .EQ. 3) WRITE(6,1450) 180 | IF(IDIM .EQ. 4) WRITE(6,1460) 181 | CALL SWRITE(11,FOH,46,IFOH,1,FLC(M+2),ALT,VINF,PINF, 182 | 1 TINF,RN,SREF,CBAR,BLRF,XCG,ZCG,DUM, 183 | 2 DUM,DUM,NDMF,NAF) 184 | C 185 | WRITE(6,1470) 186 | CALL SWRITE(8,FOR,34,IFOR,NDELTA,DELTA,DCL,DCM,DCLMAX, 187 | 1 DCDMIN,DCLAD,CHA,CHD,X,X,X,X,X,X,NDMF,NAF) 188 | IF(.NOT. SUBSON .OR. FTYPE .GE. 7) GO TO 1010 189 | WRITE(6,1480) 190 | WRITE(6,1490) (DELTA(I),I=1,NDELTA) 191 | WRITE(6,1500) 192 | IS = NALPHA*NDELTA 193 | DO 1000 I=1,NALPHA 194 | WRITE(6,1510) ALPHA(I), (DCDI(J),J=I,IS,NALPHA) 195 | 1000 CONTINUE 196 | 1010 IF(.NOT. SUPERS) GO TO 1020 197 | WRITE(6,1310) 198 | WRITE(6,1320) 199 | WRITE(6,1330) 200 | 1020 CONTINUE 201 | C 202 | C CONTROL TAB OUTPUT 203 | C 204 | IF(.NOT. CTAB) GO TO 1030 205 | ITYPE=F(116)+0.5 206 | WRITE(6,1340) 207 | IF(ITYPE .EQ. 1)WRITE(6,1770) 208 | IF(ITYPE .EQ. 2)WRITE(6,1780) 209 | IF(ITYPE .EQ. 3)WRITE(6,1790) 210 | IF(HEAD)CALL PRCSID 211 | WRITE(6,1420) 212 | IF(IDIM .EQ. 1) WRITE(6,1430) 213 | IF(IDIM .EQ. 2) WRITE(6,1440) 214 | IF(IDIM .EQ. 3) WRITE(6,1450) 215 | IF(IDIM .EQ. 4) WRITE(6,1460) 216 | CALL SWRITE(11,FOH,46,IFOH,1,FLC(M+2),ALT,VINF,PINF, 217 | 1 TINF,RN,SREF,CBAR,BLRF,XCG,ZCG,DUM, 218 | 2 DUM,DUM,NDMF,NAF) 219 | IF(FLC(M+73) .NE. UNUSED) WRITE(6,1800) 220 | IF(FLC(M+73) .EQ. UNUSED) WRITE(6,1810) 221 | WRITE(6,1490) (DELTA(I),I=1,NDELTA) 222 | WRITE(6,1500) 223 | WRITE(6,1510) ((FC(I,J),J=1,NDELTA), I=1,NALPHA) 224 | WRITE(6,1820) 225 | C 226 | WRITE(6,1830) 227 | WRITE(6,1490) (DELTA(I), I=1,NDELTA) 228 | WRITE(6,1500) 229 | WRITE(6,1510) ((CHCTF(I,J), J=1,NDELTA), I=1,NALPHA) 230 | C 231 | WRITE(6,1340) 232 | IF(ITYPE .EQ. 1)WRITE(6,1770) 233 | IF(ITYPE .EQ. 2)WRITE(6,1780) 234 | IF(ITYPE .EQ. 3)WRITE(6,1790) 235 | IF(HEAD)CALL PRCSID 236 | WRITE(6,1420) 237 | IF(IDIM .EQ. 1) WRITE(6,1430) 238 | IF(IDIM .EQ. 2) WRITE(6,1440) 239 | IF(IDIM .EQ. 3) WRITE(6,1450) 240 | IF(IDIM .EQ. 4) WRITE(6,1460) 241 | CALL SWRITE(11,FOH,46,IFOH,1,FLC(M+2),ALT,VINF,PINF, 242 | 1 TINF,RN,SREF,CBAR,BLRF,XCG,ZCG,DUM, 243 | 2 DUM,DUM,NDMF,NAF) 244 | WRITE(6,1840) 245 | WRITE(6,1490) (DELTA(I), I=1,NDELTA) 246 | WRITE(6,1500) 247 | WRITE(6,1510) ((CHCTL(I,J), J=1,NDELTA), I=1,NALPHA) 248 | WRITE(6,1820) 249 | C 250 | WRITE(6,1850) 251 | WRITE(6,1490) (DELTA(I), I=1,NDELTA) 252 | WRITE(6,1500) 253 | WRITE(6,1510) ((DCHCG(I,J), J=1,NDELTA), I=1,NALPHA) 254 | C 255 | IF(ITYPE .EQ. 1) GO TO 1030 256 | WRITE(6,1340) 257 | IF(ITYPE .EQ. 1)WRITE(6,1770) 258 | IF(ITYPE .EQ. 2)WRITE(6,1780) 259 | IF(ITYPE .EQ. 3)WRITE(6,1790) 260 | IF(HEAD)CALL PRCSID 261 | WRITE(6,1420) 262 | IF(IDIM .EQ. 1) WRITE(6,1430) 263 | IF(IDIM .EQ. 2) WRITE(6,1440) 264 | IF(IDIM .EQ. 3) WRITE(6,1450) 265 | IF(IDIM .EQ. 4) WRITE(6,1460) 266 | CALL SWRITE(11,FOH,46,IFOH,1,FLC(M+2),ALT,VINF,PINF, 267 | 1 TINF,RN,SREF,CBAR,BLRF,XCG,ZCG,DUM, 268 | 2 DUM,DUM,NDMF,NAF) 269 | WRITE(6,1860) 270 | WRITE(6,1490) (DELTA(I), I=1,NDELTA) 271 | WRITE(6,1500) 272 | WRITE(6,1510) ((DTT(I,J), J=1,NDELTA), I=1,NALPHA) 273 | 1030 CONTINUE 274 | C 275 | C ASYMMETRICAL FLAP OUTPUT 276 | C 277 | IF(.NOT. ASYFP) GO TO 1120 278 | WRITE(6,1340) 279 | IF(STYPE .EQ. 1.0) WRITE(6,1570) 280 | IF(STYPE .EQ. 2.0) WRITE(6,1580) 281 | IF(STYPE .EQ. 3.0) WRITE(6,1590) 282 | IF(STYPE .EQ. 4.0) WRITE(6,1600) 283 | IF(STYPE .EQ. 5.0) WRITE(6,1520) 284 | IF(HEAD) CALL PRCSID 285 | WRITE(6,1420) 286 | IF(IDIM .EQ. 1) WRITE(6,1430) 287 | IF(IDIM .EQ. 2) WRITE(6,1440) 288 | IF(IDIM .EQ. 3) WRITE(6,1450) 289 | IF(IDIM .EQ. 4) WRITE(6,1460) 290 | CALL SWRITE(11,FOH,46,IFOH,1,FLC(M+2),ALT,VINF,PINF, 291 | 1 TINF,RN,SREF,CBAR,BLRF,XCG,ZCG,DUM, 292 | 2 DUM,DUM,NDMF,NAF) 293 | C 294 | IF(STYPE .GT. 2) GO TO 1050 295 | IF(SUPERS) GO TO 1040 296 | WRITE(6,1700) 297 | IF(SUBSON) WRITE(6,1710) (XSOC(I), HSOC(I), 298 | 1 DELTAS(I), CLD(I), CND(I), I=1,NDELTA) 299 | IF(TRANSN) WRITE(6,1290) (XSOC(I), HSOC(I), 300 | 1 DELTAS(I), CLD(I), I=1,NDELTA) 301 | GO TO 1050 302 | 1040 WRITE(6,1260) 303 | WRITE(6,1270) (DELTAS(I), CLD(I), CND(I), I=1,NDELTA) 304 | 1050 CONTINUE 305 | IF(STYPE .NE. 3.0) GO TO 1060 306 | IF(SUPERS) WRITE(6,1280) 307 | IF(SUPERS) GO TO 1060 308 | WRITE(6,1680) 309 | IF(SUBSON) WRITE(6,1690) (XSOC(I), HSOC(I), DELTAD(I), 310 | 1 DELTAS(I), CLD(I), CND(I), I=1,NDELTA) 311 | IF(TRANSN) WRITE(6,1300) (XSOC(I), HSOC(I), DELTAD(I), 312 | 1 DELTAS(I), CLD(I), I=1,NDELTA) 313 | 1060 CONTINUE 314 | IF(STYPE .NE. 4.0) GO TO 1090 315 | WRITE(6,1610) 316 | WRITE(6,1540) (DDELTA(I), I=1,NDELTA) 317 | WRITE(6,1550) 318 | IF(CLD(1) .EQ. UNUSED) GO TO 1080 319 | IS = 1 320 | ISS = NDELTA 321 | IDEL = NDELTA 322 | IF(SUPERS) IDEL = 10 323 | DO 1070 I=1,NALPHA 324 | WRITE(6,1560) ALPHA(I), (CNAD(J), J=IS,ISS) 325 | IS = IS+IDEL 326 | ISS = ISS+IDEL 327 | 1070 CONTINUE 328 | WRITE(6,1620) (DELTAL(I), DELTAR(I), CLD(I), 329 | 1 I=1,NDELTA) 330 | IF(.NOT. SUPERS) GO TO 1090 331 | WRITE(6,1310) 332 | WRITE(6,1320) 333 | GO TO 1090 334 | 1080 WRITE(6,1280) 335 | 1090 CONTINUE 336 | IF(STYPE .NE. 5.0) GO TO 1120 337 | IF(TRANSN) GO TO 1110 338 | WRITE(6,1530) 339 | WRITE(6,1540) (DDELTA(I), I=1,NDELTA) 340 | WRITE(6,1550) 341 | IS = 1 342 | ISS = NDELTA 343 | DO 1100 I=1,NALPHA 344 | WRITE(6,1560) ALPHA(I), (CLAD(J), J=IS,ISS) 345 | IS = IS+10 346 | ISS = ISS+10 347 | 1100 CONTINUE 348 | GO TO 1120 349 | 1110 WRITE(6,1620) (DELTAL(I), DELTAR(I), CLD(I), 350 | 1 I=1,NDELTA) 351 | 1120 CONTINUE 352 | IF(NDMF) WRITE(6,1740) 353 | IF(NAF) WRITE(6,1750) 354 | NDMF = .FALSE. 355 | NAF = .FALSE. 356 | C 357 | C TRIM DATA OUTPUT 358 | C 359 | IF(ASYFP .OR. .NOT. TRIM .OR. .NOT. SUBSON) GO TO 1160 360 | NTRIM = TRM(21) + 0.5 361 | IF(.NOT. SYMFP) GO TO 1130 362 | WRITE(6,1340) 363 | IF(BO .AND. WGPL .AND. HTPL) WRITE(6,1650) 364 | IF(BO .AND. WGPL .AND. .NOT. HTPL) WRITE(6,1640) 365 | IF(WGPL .AND. .NOT. (BO .OR. HTPL)) WRITE(6,1630) 366 | WRITE(6,1420) 367 | IF(IDIM .EQ. 1) WRITE(6,1430) 368 | IF(IDIM .EQ. 2) WRITE(6,1440) 369 | IF(IDIM .EQ. 3) WRITE(6,1450) 370 | IF(IDIM .EQ. 4) WRITE(6,1460) 371 | CALL SWRITE(11,FOH,46,IFOH,1,FLC(M+2),ALT,VINF,PINF, 372 | 1 TINF,RN,SREF,CBAR,BLRF,XCG,ZCG,DUM, 373 | 2 DUM,DUM,NDMF,NAF) 374 | C 375 | WRITE(6,1670) 376 | WRITE(6,1660) 377 | CALL SWRITE(11,FOT,46,IFOT,NTRIM,ALPHA,CLUT,CDUT,CMUT, 378 | 1 DELT,DCLT,DCLMT,DCDIT,DCDMT,CHAT,CHDT, 379 | 2 X,X,X,NDMF,NAF) 380 | IF(FLAG) CALL FLTCL(FOT,IFOT,NTRIM,CLUT,CDUT,CMUT,DELT, 381 | 1 DCLT,DCLMT,DCDIT,DCDMT,CHDT,CLWBT, 382 | 2 CDWBT,1) 383 | IF((TRM(22) .EQ. 1.0) .OR. (NTRIM .EQ. 0)) WRITE(6,1720) 384 | ITRM = TRM(22) + 0.5 385 | IF(ITRM .EQ. 2) WRITE(6,1730) 386 | 1130 CONTINUE 387 | IF(SYMFP .OR. .NOT. HTPL) GO TO 1160 388 | IF(WINGIN(101).GT.2.0) GO TO 1160 389 | WRITE(6,1340) 390 | IF(VTPL) WRITE(6,1180) 391 | IF(.NOT. VTPL) WRITE(6,1170) 392 | WRITE(6,1420) 393 | IF(IDIM .EQ. 1) WRITE(6,1430) 394 | IF(IDIM .EQ. 2) WRITE(6,1440) 395 | IF(IDIM .EQ. 3) WRITE(6,1450) 396 | IF(IDIM .EQ. 4) WRITE(6,1460) 397 | CALL SWRITE(11,FOH,46,IFOH,1,FLC(M+2),ALT,VINF,PINF, 398 | 1 TINF,RN,SREF,CBAR,BLRF,XCG,ZCG,DUM, 399 | 2 DUM,DUM,NDMF,NAF) 400 | C 401 | WRITE(6,1190) 402 | WRITE(6,1200) 403 | NTM = 0 404 | DO 1140 I=1,NTRIM 405 | IF(ALINT(I) .NE. -1000.)WRITE(6,1240) ALPHA(I) 406 | 1 ,HT(I), HT(I+20), HT(I+40), HMUNT(I), ALINT(I) 407 | 2 ,CDTRM(I), CLTRM(I), CMTRM(I), HMTRM(I) 408 | IF(ALINT(I) .NE. -1000.) NTM = NTM+1 409 | IF(ALINT(I) .EQ. -1000.)WRITE(6,1240) ALPHA(I) 410 | 1 ,HT(I), HT(I+20), HT(I+40) 411 | 1140 CONTINUE 412 | WRITE(6,1210) 413 | WRITE(6,1220) 414 | DO 1150 I=1,NTRIM 415 | IF(ALINT(I) .NE. -1000.) WRITE(6,1230) ALPHA(I), 416 | 1 CDWBT(I), CLWBT(I) 417 | IF(ALINT(I) .EQ. -1000.) WRITE(6,1230) ALPHA(I) 418 | 1150 CONTINUE 419 | IF(FLAG) CALL FLTCL(FOT,IFOT,NTM,CLUT,CDUT,CMUT,DELT, 420 | 1 DCLT,DCLMT,DCDIT,DCDMT,CHDT,CLWBT, 421 | 2 CDWBT,2) 422 | IF(TRM2(22).EQ.1.) WRITE(6,1250) 423 | IF(TRM2(22).EQ.2.) WRITE(6,1730) 424 | IF(TRM2(22).EQ.3.) WRITE(6,1735) 425 | 1160 CONTINUE 426 | IF(NDMF) WRITE(6,1740) 427 | IF(NAF) WRITE(6,1750) 428 | 1170 FORMAT(33X,62HWING-BODY-ALL MOVABLE HORIZONTAL STABILIZER TRIM CON 429 | 1FIGURATION) 430 | 1180 FORMAT(26X,76HWING-BODY-VERTICAL TAIL-ALL MOVABLE HORIZONTAL STABI 431 | 1LIZER TRIM CONFIGURATION) 432 | 1190 FORMAT(1H0,46H-----------------UNTRIMMED--------------------, 433 | 134HHORIZONTAL STABILIZER COEFFICIENTS,45H----------------AT TRIM I 434 | 2NCIDENCE------------/) 435 | 1200 FORMAT(7H0 ALPHA,5X,2HCD,7X,2HCL,7X,2HCM,7X,2HHM,41X,5HALIHT,4X, 436 | 12HCD,7X,2HCL,7X,2HCM,7X,2HHM/) 437 | 1210 FORMAT(/1H0,41X,45HWING-BODY-TAIL COEFFICIENTS AT TRIM INCIDENCE/) 438 | 1220 FORMAT(1H0,52X,5HALPHA,5X,2HCD,7X,2HCL/1H0) 439 | 1230 FORMAT(53X,F5.1,3X,F6.3,3X,F6.3) 440 | 1240 FORMAT(2X,0PF5.1,3X,F6.3,3X,F6.3,3X,F7.4,2X,1PE10.3,35X,0PF5.1, 441 | 1 2X,F6.3,3X,F6.3,3X,F7.4,2X,1PE10.3) 442 | 1250 FORMAT( 81H0*NOTE** ANGLES OF ATTACK WHERE NO OUTPUT EXISTS INDICA 443 | 1TES LACK OF CONTROL MOMENT) 444 | 1260 FORMAT(1H0,46X,4HDS/C,9X,8H(CL)ROLL,12X,2HCN/1H0) 445 | 1270 FORMAT(45X,0PF7.4,6X,1PE11.4,7X,E10.3) 446 | 1280 FORMAT( 82H0*NOTE* NO OUTPUT AVAILABLE FOR THIS COMBINATION OF MAC 447 | 1H NUMBER AND CONFIGURATION.) 448 | 1290 FORMAT(1X,33X,0PF7.4,5X,F7.4,5X,F7.4,5X,1PE11.4,8X,3HNDM) 449 | 1300 FORMAT(1X,27X,0PF7.4,5X,F7.4,5X,F7.4,5X,F7.4,5X,1PE11.4,8X,3HNDM) 450 | 1310 FORMAT(131H0*NOTE* METHODS VALID FOR CONFIGURATIONS WITH LEADING(H 451 | 1INGE LINE) AND TRAILING EDGES OF THE CONTROL SURFACE SWEPT AHEAD O 452 | 2F THE MACH/8X,34HLINES FROM THE DEFLECTED CONTROLS.) 453 | 1320 FORMAT(103H0*NOTE* OTHER RESTRICTIONS USED IN THE DERIVATION OF TH 454 | 1E METHODS ARE PRESENTED IN VOL. II AND/OR DATCOM) 455 | 1330 FORMAT(126H0*NOTE* CH(A) AND CH(D) DERIVATIVES ARE FOR STRAIGHT SI 456 | 1DED SYMMETRICAL BICONVEX AIRFOILS BASED ON TWICE THE AREA-MOMENT O 457 | 2F THE/8X,29HCONTROL ABOUT ITS HINGE LINE.) 458 | 1340 FORMAT(1H1,28X,48HAUTOMATED STABILITY AND CONTROL METHODS PER APRI 459 | 1,24HL 1976 VERSION OF DATCOM,/,41X, 460 | 248HCHARACTERISTICS OF HIGH LIFT AND CONTROL DEVICES) 461 | 1350 FORMAT(44X,A4,39H PLAIN TRAILING-EDGE FLAP CONFIGURATION) 462 | 1360 FORMAT(46X,A4,34H SINGLE-SLOTTED FLAP CONFIGURATION) 463 | 1370 FORMAT(50X,A4,26H FOWLER FLAP CONFIGURATION) 464 | 1380 FORMAT(46X,A4,34H DOUBLE-SLOTTED FLAP CONFIGURATION) 465 | 1390 FORMAT(51X,A4,25H SPLIT FLAP CONFIGURATION) 466 | 1400 FORMAT(47X,A4,32H LEADING-EDGE FLAP CONFIGURATION) 467 | 1410 FORMAT(47X,A4,32H LEADING-EDGE SLAT CONFIGURATION) 468 | 1420 FORMAT(55H ----------------------- FLIGHT CONDITIONS ----------, 469 | 1 14H--------------,11X,25H-------------- REFERENCE, 470 | 2 25H DIMENSIONS ------------/2X,16HMACH ALTITUDE, 471 | 3 3X,48HVELOCITY PRESSURE TEMPERATURE REYNOLDS, 472 | 4 13X,47HREF. REFERENCE LENGTH MOMENT REF. CENTER/ 473 | 5 7H NUMBER,55X,6HNUMBER,14X,4HAREA,7X,5HLONG.,5X,4HLAT., 474 | 6 5X,15HHORIZ VERT) 475 | 1430 FORMAT(13X,2HFT,7X,6HFT/SEC,5X,8HLB/FT**2,7X,5HDEG R,9X,4H1/FT, 476 | 1 15X,5HFT**2,1X,4(7X,2HFT,1X)) 477 | 1440 FORMAT(13X,2HIN,7X,6HIN/SEC,5X,8HLB/IN**2,7X,5HDEG R,9X,4H1/FT, 478 | 1 15X,5HIN**2,1X,4(7X,2HIN,1X)) 479 | 1450 FORMAT(13X,2H M,7X,6H M/SEC,5X,8H N/ M**2,7X,5HDEG K,9X,4H1/ M, 480 | 1 15X,5H M**2,1X,4(7X,2H M,1X)) 481 | 1460 FORMAT(13X,2HCM,7X,6HCM/SEC,5X,8H N/CM**2,7X,5HDEG K,9X,4H1/ M, 482 | 1 15X,5HCM**2,1X,4(7X,2HCM,1X)) 483 | 1470 FORMAT(1H0,12X,46H---------INCREMENTS DUE TO DEFLECTION--------- 484 | 1,14X,30H---DERIVATIVES (PER DEGREE)---/1H0,5X,5HDELTA, 485 | 25X,5HD(CL),5X,5HD(CM),4X,9HD(CL MAX),4X,9HD(CD MIN),16X,6H(CLA)D, 486 | 3 5X,5H(CH)A,7X,5H(CH)D//) 487 | 1480 FORMAT(1H0,2X,106H*** NOTE * HINGE MOMENT DERIVATIVES ARE BASED ON 488 | 1 TWICE THE AREA-MOMENT OF THE CONTROL ABOUT ITS HINGE LINE//1H0,12 489 | 2X,83H--------- INDUCED DRAG COEFFICIENT INCREMENT , D(CDI) , DUE T 490 | 3O DEFLECTION ---------) 491 | 1490 FORMAT(1H0,7X,8HDELTA = ,F5.1,5X,F5.1,5X,F5.1,5X,F5.1,5X,F5.1,5X, 492 | 1F5.1,5X,F5.1,5X,F5.1,5X,F5.1,5X,F5.1) 493 | 1500 FORMAT(3X,5HALPHA/1H0) 494 | 1510 FORMAT(3X,0PF5.1,7X,1PE9.2,1X,E9.2,1X,E9.2,1X,E9.2,1X,E9.2,1X, 495 | 1 E9.2,1X,E9.2,1X,E9.2,1X,E9.2,1X,E9.2) 496 | 1520 FORMAT(30X, 60HDIFFERENTIALLY DEFLECTED HORIZONTAL STABILIZER CONF 497 | 1IGURATION) 498 | 1530 FORMAT(1H0,33X, 64H----------ROLLING-MOMENT COEFFICIENT DUE TO DEF 499 | 1LECTION----------) 500 | 1540 FORMAT( 17H0(DELTAL-DELTAR)=,F5.1,7X,F5.1,7X,F5.1,7X,F5.1,7X,F5.1, 501 | 17X,F5.1,7X,F5.1,7X,F5.1,7X,F5.1,7X,F5.1) 502 | 1550 FORMAT( 6H0ALPHA/1H0) 503 | 1560 FORMAT(1X,0PF5.1,8X,1PE10.3,2X,E10.3,2X,E10.3,2X,E10.3,2X, 504 | 1 E10.3,2X,E10.3,2X,E10.3,2X,E10.3,2X,E10.3,2X,E10.3) 505 | 1570 FORMAT(47X, 36HWING WITH FLAP SPOILER CONFIGURATION) 506 | 1580 FORMAT(47X, 36HWING WITH PLUG SPOILER CONFIGURATION) 507 | 1590 FORMAT(42X, 46HWING WITH SPOILER-SLOT-DEFLECTOR CONFIGURATION) 508 | 1600 FORMAT(44X, 43HWING PLAIN TRAILING-EDGE FLAP CONFIGURATION) 509 | 1610 FORMAT(1H0,27X, 74H----------YAWING MOMENT COEFFICIENT,CN,DUE TO C 510 | 1ONTROL DEFLECTION----------) 511 | 1620 FORMAT(1H0/ 512 | 1 1H0,44X,6HDELTAL,10X,6HDELTAR,10X,8H(CL)ROLL/1H0/(45X, 513 | 2 0PF5.1,11X,F5.1,11X,1PE11.4)) 514 | 1630 FORMAT(47X,37HWING TRIM WITH CONTROL DEVICE ON WING) 515 | 1640 FORMAT(44X,42HWING-BODY TRIM WITH CONTROL DEVICE ON WING) 516 | 1650 FORMAT(42X,47HWING-BODY-TAIL TRIM WITH CONTROL DEVICE ON TAIL) 517 | 1660 FORMAT(1H0,4X,5HALPHA,5X,2HCL,9X,2HCD,7X,2HCM,5X,6HDELTAT,3X,5HD(C 518 | 1L),4X,9HD(CL MAX),5X,6HD(CDI),4X,9HD(CD MIN),3X,5HCH(A),8X,5HCH(D) 519 | 2/1H0) 520 | 1670 FORMAT(1H0,9X,29H----------UNTRIMMED----------,12X,64H------------ 521 | 1-----------AT TRIM DEFLECTION-----------------------) 522 | 1680 FORMAT(1H0 ,29X,4HXS/C,8X,4HHS/C,8X,4HDD/C,8X,4HDS/C,8X,8H(CL)ROLL 523 | 1,10X,2HCN/1H0) 524 | 1690 FORMAT(1X,27X,0PF7.4,5X,F7.4,5X,F7.4,5X,F7.4,5X,1PE11.4,5X,E10.3) 525 | 1700 FORMAT(1H0,35X,4HXS/C,8X,4HHS/C,8X,4HDS/C,8X,8H(CL)ROLL,10X,2HCN/1 526 | 1H0) 527 | 1710 FORMAT(1X,33X,0PF7.4,5X,F7.4,5X,F7.4,5X,1PE11.4,5X,E10.3) 528 | 1720 FORMAT(73H0*NOTE** TRIM RESULTS HAVE BEEN TERMINATED DUE TO LACK O 529 | 1F CONTROL MOMENT.) 530 | 1730 FORMAT(99H0*NOTE** TRIM RESULTS HAVE BEEN TERMINATED BECAUSE THE N 531 | 1EXT ANGLE OF ATTACK EXCEEDS ALPHA (CL) MAX.) 532 | 1735 FORMAT(78H0*NOTE** TRIM RESULTS TERMINATED BECAUSE WING-BODY MOMEN 533 | 1T DATA WAS UNAVAILABLE) 534 | 1740 FORMAT(44H0***NDM PRINTED WHEN NO DATCOM METHODS EXIST) 535 | 1750 FORMAT(41H0***NA PRINTED WHEN METHOD NOT APPLICABLE) 536 | 1770 FORMAT(45X,39HCONTROL TAB ON PLAIN TRAILING EDGE FLAP ) 537 | 1780 FORMAT(50X,30HTRIM TAB ON TRAILING EDGE FLAP ) 538 | 1790 FORMAT(42X,48HCONTROL AND TRIM TAB ON PLAIN TRAILING EDGE FLAP) 539 | 1800 FORMAT(1H0,31X,44HSTICK FORCE, F(C), LB (TRIM TAB DEFL. = 0.0) ) 540 | 1810 FORMAT(1H0,27X,53HSTICK FORCE COEFFICIENT, CF(C) (TRIM TAB DEFL. = 541 | 1 0.0)) 542 | 1820 FORMAT(1H0) 543 | 1830 FORMAT(1H0,22X,63HFLAP HINGE MOMENT COEFFICIENT - TAB FREE (TRIM T 544 | 1AB DEFL. = 0.0)) 545 | 1840 FORMAT(1H0,21X,65HFLAP HINGE MOMENT COEFFICIENT - TAB LOCKED (TRIM 546 | 1 TAB DEFL. = 0.0)) 547 | 1850 FORMAT(1H0,18X,69HFLAP HINGE MOMENT COEFFICIENT - DUE TO GEARING ( 548 | 1TRIM TAB DEFL. = 0.0)) 549 | 1860 FORMAT(1H0,30X,46HTRIM TAB DEFLECTION FOR ZERO STICK FORCE, DEG.) 550 | RETURN 551 | END 552 | -------------------------------------------------------------------------------- /test/input/subryw.f: -------------------------------------------------------------------------------- 1 | SUBROUTINE SUBRYW 2 | C 3 | C THIS ROUTINE YIELDS THE SUBSONIC WING,WING-BODY 4 | C ROLLING DERIVATIVES,CLP CNP CNR AND 5 | C YAWING DERIVATIVE , CYP 6 | C 7 | COMMON /OVERLY/ NLOG,NMACH,IM,NALPHA 8 | COMMON /OPTION/ SR,CBARR,RUFF,BLREF 9 | COMMON /CONSNT/ PI,DR,UNUSED,RAD 10 | COMMON /FLGTCD/ FLC(93) 11 | COMMON /SYNTSS/ SYNA(19) 12 | COMMON /WINGD/ A(195),B(49) 13 | COMMON /WINGI/ WINGIN(77) 14 | COMMON /IWING/ PWING, WING(400) 15 | COMMON /POWR/ DYN(213) 16 | COMMON /WHAERO/ C(51) 17 | COMMON /SBETA/ STB(135) 18 | COMMON /FLOLOG/ FLTC,OPTI,BO,WGPL,WGSC,SYNT,HTPL,HTSC,VTPL,VTSC, 19 | 1 HEAD,PRPOWR,JETPOW,LOASRT,TVTPAN, 20 | 2 SUPERS,SUBSON,TRANSN,HYPERS, 21 | 3 SYMFP,ASYFP,TRIMC,TRIM 22 | LOGICAL FLTC,OPTI,BO,WGPL,WGSC,SYNT,HTPL,HTSC,VTPL,VTSC, 23 | 1 HEAD,PRPOWR,JETPOW,LOASRT,TVTPAN, 24 | 2 SUPERS,SUBSON,TRANSN,HYPERS, 25 | 3 SYMFP,ASYFP,TRIMC,TRIM 26 | INTEGER Y71336,D11336,D21336,D31336,Y71337,D11337,D21337,D31337, 27 | 1 Y2220A,D1220A,D2220A,Y2220B,Y2220C,Y2220D,D1220D,D2220D,Y12224, 28 | 2 Y12312,Y1219B,Y1219C 29 | INTEGER Y7133A 30 | REAL LAMCO4,MACOE 31 | REAL MACH,LAMB,KAY(20),K,LAMDA 32 | DIMENSION ROUTID(2),ALMALO(20) 33 | C AJT DIMENSION CL(20),ALSCHD(20),Z(6),CLSUB(20),ALSCH2(20),CD(20), 34 | C AJT1 DCLPD(20),CLPWBS(20),CLTAN(20),CDCDO(20),CL2PAW(20) 35 | DIMENSION CL(20),ALSCHD(20),Z(6),CLSUB(21),ALSCH2(21),CD(20), 36 | 1 DCLPD(20),CLPWBS(20),CLTAN(20),CDCDO(20),CL2PAW(20) 37 | DIMENSION Y(6),D(6),E(6),G(6),H(6),O(6),P(6) 38 | DIMENSION CLA(20),DCDDA(20),DCADA(20) 39 | DIMENSION CLPTAN(20),DCLDA(20),CDOO(20) 40 | DIMENSION CYPWBS(20),I2A219(4),QEXPD(5), 41 | 1 QIMPR1(4),QIMPR2(4),QIMPR3(4),Q71336(3),Q71337(3) 42 | DIMENSION X11336(4),X21336(15),X31336(3),Y71336( 90), 43 | 1 D11336(30),D21336(30),D31336(30) 44 | DIMENSION X1133A(2),X2133A(2),Y7133A(2) 45 | DIMENSION X11337(4),X21337(9),X31337(3),Y71337( 54), 46 | 1 D11337(18),D21337(18),D31337(18) 47 | DIMENSION X1220A( 13),X2220A( 17),Y2220A( 111),Q2220A(3) 48 | DIMENSION D1220A( 97),D2220A(14) 49 | DIMENSION X1220B( 13),X2220B( 10),Y2220B( 65),Q2220B(3) 50 | DIMENSION X1220C( 13),X2220C( 10),Y2220C( 65),Q2220C(3) 51 | DIMENSION X1220D( 13),X2220D( 18),Y2220D( 117),Q2220D(3) 52 | DIMENSION D1220D( 97),D2220D(20) 53 | DIMENSION X12224( 8),X22224( 10),Y12224( 40),Q12224(3) 54 | DIMENSION X12312( 6),X22312( 8),Y12312( 24),Q12312(3) 55 | DIMENSION X1219A( 10),Y1219A( 10),Q1219A(3) 56 | DIMENSION X1219B( 8),X2219B( 2),Y1219B( 8),Q1219B(3) 57 | DIMENSION X1219C( 3),X2219C( 2),Y1219C( 3),Q1219C(3) 58 | DIMENSION CNPWBS(20) 59 | DIMENSION CNRWBS(20) 60 | EQUIVALENCE(DCMDCL,DYN(21)),(MACOE,A(16)) 61 | EQUIVALENCE(CL(1),WING(21)),(THETA,WINGIN(11)) 62 | EQUIVALENCE(ZW,SYNA(3)),(ZCG,SYNA(5)),(GEG,STB(122)), 63 | 1 (ALSCHD(1),FLC(23)),(SSPN,WINGIN(4)),(SSPNE,WINGIN(3)), 64 | 2 (LAMCO4,A(64)),(SW,A(4)),(TANCO4,A(68)), 65 | 3 (LAMDA,A(27)),(COSLO4,A(67)),(CD(1),WING(1)),(ASTRW,A(120)) 66 | EQUIVALENCE(ALSD,DYN(44)),(CLACLO,DYN(45)),(CDO,DYN(94)), 67 | 1 (CLA(1),DYN(47)),(ZEE,DYN(67)),(CLPCLP,DYN(68)), 68 | 2 (CLPCL2,DYN(69)),(BAOK,DYN(70)),(BCLPCL,DYN(71)), 69 | 3 (DCLPD(1),DYN(72)),(CLPWBS(1),WING(281)),(CNPCLO,DYN(92)), 70 | 4 (BEE,DYN(93)),(CNPCLM,DYN(46)),(CNPTHE,DYN(95)), 71 | 5 (DCLDA(1),DYN(96)),(DCDDA(1),DYN(116)),(DCADA(1),DYN(136)), 72 | 6 (KAY(1),DYN(156)),(CNPWBS(1),WING(321)) 73 | EQUIVALENCE(CLPG,DYN(176)),(DCYPG,DYN(177)),(TRANS,DYN(178)), 74 | 1 (CHANGE,DYN(179)),(CYPCLM,DYN(180)),(CYPWBS(1),WING(301)), 75 | 2 (TRADE,DYN(181)),(CNRCL2,DYN(182)),(CNRCDO,DYN(183)), 76 | 3 (CDOO(1),DYN(184)),(CNRWBS(1),WING(341)) 77 | EQUIVALENCE (D11336(1),Y71336(1)),(D21336(1),Y71336(31)), 78 | 1 (D31336(1),Y71336( 61)) 79 | EQUIVALENCE (D11337(1),Y71337(1)),(D21337(1),Y71337(19)), 80 | 1 (D31337(1),Y71337(37)) 81 | EQUIVALENCE(D1220A(1),Y2220A(1)),(D2220A(1),Y2220A( 98)) 82 | EQUIVALENCE(D1220D(1),Y2220D(1)),(D2220D(1),Y2220D( 98)) 83 | DATA ROUTID /4HSUBR,4HYW / 84 | DATA I2A219 /10,3*0/ 85 | DATA IN/0/, IX/0/, IO/0/, IP/0/, IQ/0/, IR/0/, IS/0/, IT/0/ 86 | DATA QEXPD /4HEXPE,4HRIME,4HNTAL,4H DAT,4HA / 87 | DATA Q12224 /4H7.1.,4H2.2-,4H24 / 88 | DATA Q12312 /4H7.1.,4H2.3-,4H12 / 89 | DATA QIMPR1 /4HCLTA,4HN VS,4H ALS,4HCHD / 90 | DATA QIMPR2 /4HCDCD,4HO VS,4H ALS,4HCHD / 91 | DATA QIMPR3 /4HCL2P,4HAW V,4HS AL,4HSCHD/ 92 | DATA Q71336 /4H7.1.,4H3.3-,4H6 / 93 | DATA Q71337 /4H7.1.,4H3.3-,4H7 / 94 | C 95 | C ----FIGURE 7.1.2.2-20A 96 | C 97 | DATA Q2220A /4H7.1.,4H2.2-,4H20A / 98 | DATA X1220A / .100E 02, .900E 01, .800E 01, .700E 01, 99 | 1 .600E 01, .500E 01, .450E 01, .400E 01, .350E 01, .300E 01, 100 | 2 .250E 01, .200E 01, .150E 01/ 101 | DATA X2220A / -.193E 02, -.989E 01, -.437E 01, .134E-01, 102 | 1 .104E 02, .143E 02, .203E 02, .251E 02, .300E 02, .355E 02, 103 | 2 .402E 02, .445E 02, .505E 02, .547E 02, .598E 02, .651E 02, 104 | 3 .702E 02/ 105 | C 106 | C ----FIGURE 7.1.2.2-20B 107 | C 108 | DATA Q2220B/4H7.1.,4H2.2-,4H20B / 109 | DATA X1220B/ .100E 02, .900E 01, .800E 01, .700E 01, 110 | 1 .600E 01, .500E 01, .450E 01, .400E 01, .350E 01, .300E 01, 111 | 2 .250E 01, .200E 01, .150E 01/ 112 | DATA X2220B/ -.201E 02, -.105E 02, .230E 00, .994E 01, 113 | 1 .197E 02, .300E 02, .403E 02, .499E 02, .604E 02, .703E 02/ 114 | C 115 | C ----FIGURE 7.1.2.2-20C 116 | C 117 | DATA Q2220C/4H7.1.,4H2.2-,4H20C / 118 | DATA X1220C/ .100E 02, .900E 01, .800E 01, .700E 01, 119 | 1 .600E 01, .500E 01, .450E 01, .400E 01, .350E 01, .300E 01, 120 | 2 .250E 01, .200E 01, .150E 01/ 121 | DATA X2220C/ -.193E 02, -.937E 01, .893E-01, .105E 02, 122 | 1 .208E 02, .304E 02, .405E 02, .505E 02, .607E 02, .704E 02/ 123 | C 124 | C ----FIGURE 7.1.2.2-20D 125 | C 126 | DATA Q2220D/4H7.1.,4H2.2-,4H20D / 127 | DATA X1220D/ .100E 02, .900E 01, .800E 01, .700E 01, 128 | 1 .600E 01, .500E 01, .450E 01, .400E 01, .350E 01, .300E 01, 129 | 2 .250E 01, .200E 01, .150E 01/ 130 | DATA X2220D/ -.200E 02, -.965E 01, -.458E 01, .293E-01, 131 | 1 .556E 01, .995E 01, .148E 02, .203E 02, .245E 02, .301E 02, 132 | 2 .354E 02, .400E 02, .447E 02, .502E 02, .553E 02, .602E 02, 133 | 3 .646E 02, .698E 02/ 134 | C 135 | C ----FIGURE 7.1.2.2-24 136 | C 137 | DATA X12224/ .700E 02, .600E 02, .500E 02, .400E 02, 138 | 1 .300E 02, .200E 02, .100E 02, .000E 00/ 139 | DATA X22224/ .196E 01, .252E 01, .302E 01, .350E 01, 140 | 1 .402E 01, .505E 01, .599E 01, .700E 01, .804E 01, .100E 02/ 141 | C 142 | C ----FIGURE 7.1.2.3-12 143 | C 144 | DATA X12312/ .100E 01, .800E 00, .600E 00, .400E 00, 145 | 1 .200E 00, .000E 00/ 146 | DATA X22312/ .202E 01, .307E 01, .404E 01, .502E 01, 147 | 1 .603E 01, .808E 01, .100E 02, .120E 02/ 148 | C 149 | C ----FIGURE 7.1.2.1-9A 150 | C 151 | DATA Q1219A/4H7.1.,4H2.1-,4H9A / 152 | DATA X1219A/ .822E 00, .109E 01, .144E 01, .207E 01, 153 | 1 .257E 01, .316E 01, .398E 01, .462E 01, .531E 01, .600E 01/ 154 | DATA Y1219A/ .452E 01, .381E 01, .297E 01, .215E 01, 155 | 1 .147E 01, .966E 00, .486E 00, .279E 00, .117E 00, .154E-06/ 156 | C 157 | C ----FIGURE 7.1.2.1-9B 158 | C 159 | DATA Q1219B/4H7.1.,4H2.1-,4H9B / 160 | DATA X1219B/ .700E 02, .650E 02, .600E 02, .450E 02, 161 | 1 .300E 02, .000E 00, -.300E 02, -.450E 02/ 162 | DATA X2219B/ 0.0,4.5/ 163 | C 164 | C ----FIGURE 7.1.2.1-9C 165 | C 166 | DATA Q1219C/4H7.1.,4H2.1-,4H9C / 167 | DATA X1219C/ .000E 00, .500E 00, .100E 01/ 168 | DATA X2219C/ .453E 01, -.963E 00/ 169 | DATA X11336/ .600E 02, .500E 02, .400E 02, .000E 00/ 170 | DATA X21336/ .101E 01, .126E 01, .151E 01, .178E 01, 171 | 1 .201E 01, .244E 01, .299E 01, .352E 01, .400E 01, .501E 01, 172 | 2 .599E 01, .698E 01, .799E 01, .902E 01, .994E 01/ 173 | DATA X31336/0.0,0.2,0.4/ 174 | C 175 | C ----FIGURE 7.1.3.3-6D 176 | C 177 | DATA X1133A /0.0,1.0/ 178 | DATA X2133A /0.0,4.0/ 179 | DATA X11337 / .000E 00, .400E 02, .500E 02, .600E 02/ 180 | DATA X21337 / .103E 01, .144E 01, .197E 01, .297E 01, 181 | 1 .397E 01, .503E 01, .606E 01, .706E 01, .803E 01/ 182 | DATA X31337 /0.0,0.2,0.4/ 183 | C 184 | C IN THE FOLLOWING DATA STATEMENTS 2 FLOATING POINT NUMBERS,WITH 185 | C 3 SIGNIFICANT DIGITS EACH,ARE PACKED IN 1 FIXED POINT WORD. 186 | C 187 | C THE FORMAT IS AS FOLLOWS- 188 | C 189 | C SIGN1,NS2,NSPS,NP1,NP2,ND1,ND2 190 | C 191 | C WHERE- 192 | C 193 | C SIGN1 IS THE ACTUAL SIGN OF THE 1ST NUMBER 194 | C NS2 REPRESENTS THE SIGN OF THE 2ND NUMBER.0 IF + , 1 IF - 195 | C NSPS REPRESENTS THE SIGNS OF THE POWERS OF 10 FOR BOTH NUMBERS 196 | C 0 IF ++ , 1 IF -- , 2 IF +- , 3 IF -+ 197 | C NP1 IS THE POWER OF 10 FOR THE 1ST NUMBER. LIMITED TO 1 DIGIT 198 | C NP2 IS THE POWER OF 10 FOR THE 2ND NUMBER. LIMITED TO 1 DIGIT 199 | C ND1 3 DIGITS OF THE 1ST NUMBER (DECIMAL POINT AT END) 200 | C ND2 3 DIGITS OF THE 2ND NUMBER (DECIMAL POINT AT END) 201 | C 202 | DATA D11336/ 122392378, 122366359, 122352345, 122335325, 203 | 1 122320318, 122314315, 122313316, 122317157, 122167177, 204 | 2 122181187, 122204212, 122218226, 122234241, 122241242, 205 | 3 122240239, 133758974, 122116132, 122142160, 122176185, 206 | 4 122200209, 122216221, 122224222, 124225341, 133325655, 207 | 5 132872102, 122127147, 122160173, 122189201, 122206206, 208 | 6 122207205/ 209 | DATA D21336/ 122762654, 122584539, 122499463, 122436427, 210 | 1 122418408, 122404404, 122402403, 122403381, 122349331, 211 | 2 122322312, 122300299, 122297295, 122290289, 122282283, 212 | 3 122279279, 122253253, 122253253, 122253256, 122258261, 213 | 4 122265270, 122273273, 122272272, 122268175, 122180185, 214 | 5 122191196, 122209218, 122222229, 122245253, 122255260, 215 | 6 122261261/ 216 | DATA D31336/ 111160130, 122950630, 122572509, 122462437, 217 | 1 122416388, 122379371, 122370371, 121373150, 122450447, 218 | 2 122369347, 112112630, 122291284, 122281278, 122280281, 219 | 3 122280283, 122351293, 122272247, 122242230, 122225225, 220 | 4 122224223, 122222228, 122236242, 123259951, 132994111, 221 | 5 122125130, 122141159, 122169178, 122196204, 122206206, 222 | 6 122206205/ 223 | DATA D11337/-1133563462,-1133383332,-1133310299,-1133293293, 224 | 1-1133293569,-1133501468,-1133451456,-1133456456,-1133456451, 225 | 2-1133670644,-1133608608,-1133619631,-1133631637,-1133642975, 226 | 3-1133953952,-1132979101,-1122102103,-1122103103/ 227 | DATA D21337/-1133743503,-1133440371,-1133331297,-1133291291, 228 | 1-1133291759,-1133560480,-1133457451,-1133457457,-1133463469, 229 | 2-1133806669,-1133623606,-1133611623,-1133634640,-1132646106, 230 | 3-1133985949,-1133971988,-1122101101,-1122102102/ 231 | DATA D31337/-1133978712,-1133518417,-1133364346,-1133340334, 232 | 1-1132340102,-1133712538,-1133500472,-1133465465,-1133471471, 233 | 2-1123107796,-1133664614,-1133626638,-1133644650,-1132656121, 234 | 3-1123104979,-1132995101,-1122101103,-1122104105/ 235 | DATA D1220A/-1133347366,-1133375377,-1133379378,-1133376372, 236 | 1-1133361354,-1133338321,-1133298280,-1133248215,-1133177339, 237 | 2-1133357361,-1133365369,-1133368363,-1133359353,-1133339325, 238 | 3-1133308288,-1133267237,-1133211175,-1133326340,-1133345353, 239 | 4-1133355355,-1133353347,-1133339329,-1133316301,-1133281258, 240 | 5-1133230206,-1133170310,-1133323329,-1133334338,-1133338336, 241 | 6-1133332326,-1133319305,-1133290268,-1133251227,-1133198169, 242 | 7-1133289303,-1133307311,-1133318318,-1133316310,-1133305298, 243 | 8-1133287276,-1133256241,-1133214192,-1133160267,-1133283286, 244 | 9-1133289289,-1133292289,-1133286284,-1133280268,-1133261247, 245 | A-1133230208,-1133184157,-1133254266,-1133273277,-1133281281, 246 | B-1133279277,-1133270267,-1133259250,-1133233222,-1133198179, 247 | C-1133151242,-1133250255,-1133261263,-1133263263,-1133262256, 248 | D-1133253247,-1133241228,-1133214193,-1133175150,-1133227232, 249 | E-1133238242,-1133245246,-1133245243,-1133239233,-1133230224, 250 | F-1133212203,-1133184169,-1133140205,-1133211214,-1133216220, 251 | G-1133222222,-1133222219,-1133218213,-1133209198,-1133192176, 252 | H-1133159139,-1133184190,-1133191193,-1133194194,-1133195195, 253 | I-1133194193,-1133193191,-1133184176,-1133161151,-1133131159, 254 | J-1133162164,-1133164168,-1133169169/ 255 | DATA D2220A/-1133169169,-1133165164,-1133161157,-1133156150, 256 | 1-1133137120,-1133133132,-1133133134,-1133133134,-1133133133, 257 | 2-1133133134,-1133133132,-1133129124,-1133120114, -330102000/ 258 | DATA Y2220B/-1133464486,-1133500494,-1133484457,-1133419364, 259 | 1-1133298218,-1133445465,-1133479473,-1133463441,-1133407354, 260 | 2-1133291215,-1133428444,-1133450449,-1133437419,-1133388344, 261 | 3-1133287209,-1133407414,-1133422422,-1133415398,-1133372331, 262 | 4-1133276202,-1133375386,-1133391392,-1133385377,-1133353320, 263 | 5-1133270199,-1133340353,-1133358358,-1133353342,-1133325296, 264 | 6-1133255189,-1133325330,-1133334334,-1133331324,-1133310299, 265 | 7-1133247190,-1133300304,-1133312307,-1133305301,-1133288270, 266 | 8-1133237183,-1133278280,-1133282282,-1133281276,-1133268251, 267 | 9-1133221178,-1133245248,-1133251251,-1133250248,-1133241232, 268 | A-1133208167,-1133221221,-1133222221,-1133220217,-1133215206, 269 | B-1133192161,-1133183182,-1133182181,-1133180180,-1133178174, 270 | C-1133162140,-1133138139,-1133141141,-1133141141,-1133142141, 271 | D-1133134124/ 272 | DATA Y2220C/-1133523535,-1133539534,-1133519496,-1133456407, 273 | 1-1133337245,-1133503509,-1133513505,-1133499475,-1133441390, 274 | 2-1133317234,-1133470483,-1133486483,-1133470454,-1133421375, 275 | 3-1133312228,-1133445451,-1133453451,-1133445428,-1133400355, 276 | 4-1133298223,-1133410415,-1133420414,-1133409392,-1133370338, 277 | 5-1133287213,-1133371376,-1133377375,-1133371358,-1133338314, 278 | 6-1133269204,-1133343349,-1133354353,-1133349339,-1133321299, 279 | 7-1133260204,-1133320320,-1133322322,-1133319316,-1133300280, 280 | 8-1133245199,-1133293297,-1133298297,-1133295286,-1133278264, 281 | 9-1133238189,-1133264264,-1133263264,-1133262259,-1133248239, 282 | A-1133220180,-1133226226,-1133225226,-1133224222,-1133219207, 283 | B-1133191165,-1133188188,-1133189187,-1133186186,-1133180172, 284 | C-1133163145,-1133149149,-1133149149,-1133148147,-1133146142, 285 | D-1133134121/ 286 | DATA D1220D/-1133560573,-1133575575,-1133573567,-1133560546, 287 | 1-1133539520,-1133502481,-1133461430,-1133398367,-1133335280, 288 | 2-1133538545,-1133546546,-1133544542,-1133537525,-1133518501, 289 | 3-1133484464,-1133446415,-1133384353,-1133319269,-1133508517, 290 | 4-1133519517,-1133515512,-1133507499,-1133487475,-1133462442, 291 | 5-1133425396,-1133367339,-1133305266,-1133469477,-1133480480, 292 | 6-1133477471,-1133469463,-1133454448,-1133434418,-1133401376, 293 | 7-1133350321,-1133290246,-1133431434,-1133435435,-1133433431, 294 | 8-1133428423,-1133416409,-1133397383,-1133371350,-1133322299, 295 | 9-1133273232,-1133385390,-1133391390,-1133389386,-1133384378, 296 | A-1133375368,-1133360353,-1133340325,-1133304284,-1133260224, 297 | B-1133359361,-1133361362,-1133362360,-1133360356,-1133354347, 298 | C-1133339334,-1133323307,-1133288271,-1133249216,-1133332334, 299 | D-1133334334,-1133333333,-1133331329,-1133325322,-1133317310, 300 | E-1133302290,-1133276257,-1133237208,-1133265266,-1133266266, 301 | F-1133266265,-1133265264,-1133262261,-1133258255,-1133250246, 302 | G-1133234222,-1133209183,-1133298300,-1133302302,-1133302301, 303 | H-1133300298,-1133298293,-1133289284,-1133280267,-1133255243, 304 | I-1133225197,-1133230230,-1133230230,-1133230231,-1133230230, 305 | J-1133229228,-1133224223,-1133219216/ 306 | DATA D2220D/-1133208198,-1133188170,-1133189190,-1133190190, 307 | 1-1133190189,-1133188187,-1133187184,-1133183181,-1133179175, 308 | 2-1133171163,-1133156143,-1133148146,-1133146145,-1133145145, 309 | 3-1133146146,-1133145145,-1133144142,-1133142141,-1133141139, 310 | 4-1133135122/ 311 | DATA Y12224/-1133407331,-1133278240,-1133216175,-1133146127, 312 | 1-1134112891,-1133171137,-1133116103,-1144901734,-1144620532, 313 | 2-1144456365,-1144918736,-1144606535,-1144467381,-1144344280, 314 | 3-1144239183,-1144567428,-1144382349,-1144297232,-1144183177, 315 | 4-1144160125,-1144400303,-1144267223,-1144193165,-1144149120, 316 | 5-1144114103,-1144302225,-1144199187,-1144159131,-1145103856, 317 | 6-1155683804,-1144230201,-1144165141,-1145136843,-1155686624, 318 | 7-1155338463,-1144221179,-1144153141,-1145113850,-1155687398, 319 | 8-1155341456/ 320 | DATA Y12312/-1166968781,-1166626494,-1166388197, -176319113, 321 | 1-1166941724,-1166541382, -168238339, 166218422,-1166885655, 322 | 2-1166450256, -176949195, 166454705,-1166777520,-1166300113, 323 | 3 176533337, 166590825,-1166548303, -177979781, 166231499, 324 | 4 166724919, -176387127, 166264371, 166473661, 166827994/ 325 | DATA Y1219B/ 122468642 , 122368554 , 122300494 , 122176413, 326 | 1 122111372 , 132160292 , -132680236 ,-122168172/ 327 | DATA Y1219C/ 1123153677, 1123161573 , 1123182380 / 328 | DATA Y7133A/-133110100,-134127830/ 329 | BETA=B(2) 330 | IF( WGPL.AND.(.NOT.BO))GO TO 1000 331 | DB=(SSPN-SSPNE)/SSPN 332 | IF(DB.GT.0.3)RETURN 333 | 1000 K=BETA*WINGIN(IM+20)*RAD/(2.*PI) 334 | MACH=FLC(IM+2) 335 | XYZ=0. 336 | C 337 | C WING-BODY ROLLING DERIVATIVE,CLP--- 338 | C 339 | CALL TBFUNX(XYZ,ALSD,DYDX,NALPHA,CL,ALSCHD,Y,IN,MI,NG,1,1,QEXPD,5, 340 | 1 ROUTID) 341 | CALL TBFUNX(XYZ,CDO,DYDX,NALPHA,CL,CD,D,IO,MI,NG,2,2, 342 | 1 QEXPD,5,ROUTID) 343 | IF(CL(1).LE.0..AND.CL(NALPHA).GE.0.) GO TO 1050 344 | NNALPH=NALPHA+1 345 | IF(CL(1).LT.0.) GO TO 1020 346 | CLSUB(1)=0. 347 | ALSCH2(1)=ALSD 348 | DO 1010 J=1,NALPHA 349 | CLSUB(J+1)=CL(J) 350 | 1010 ALSCH2(J+1)=ALSCHD(J) 351 | GO TO 1040 352 | 1020 CLSUB(NNALPH)=0. 353 | ALSCH2(NNALPH)=ALSD 354 | DO 1030 J=1,NALPHA 355 | CLSUB(J)=CL(J) 356 | 1030 ALSCH2(J)=ALSCHD(J) 357 | 1040 CALL TBFUNX(ALSD,ABCD,CLACLO,NNALPH,ALSCH2,CLSUB,E,IX,MI, 358 | 1 NG,1,1,QEXPD,5,ROUTID) 359 | GO TO 1060 360 | 1050 CALL TBFUNX(ALSD,ABCD,CLACLO,NALPHA,ALSCHD,CL,Z,IX,MI, 361 | 1 NG,1,1,QEXPD,5,ROUTID) 362 | 1060 CONTINUE 363 | XBOCB=-DCMDCL*CBARR/MACOE 364 | DO 1070 I=1,NALPHA 365 | CALL TBFUNX(ALSCHD(I),CDEF,CLA(I),NALPHA,ALSCHD,CL,G,IQ,MI,NG, 366 | 1 0,0,QEXPD,5,ROUTID) 367 | 1070 CONTINUE 368 | ZEE=ZW-ZCG 369 | SINGEG=SIN(GEG/RAD) 370 | CLPCLP=1.-2.*ZEE*SINGEG/SSPN+3.*(ZEE/SSPN)**2*SINGEG**2 371 | LAMB=RAD*ATAN(TANCO4/BETA) 372 | C 373 | C -- FIGURE 7.1.2.2-24 -- 374 | C 375 | CALL TLIP2X(X12224,X22224,Y12224,8,10,LAMCO4,ASTRW,CLPCL2, 376 | 1 1,1,1,1,Q12224,3,ROUTID) 377 | SRSW=SR/SW 378 | AAAA=4.*SSPN**2/(RAD*SRSW*BLREF**2) 379 | BAOK =BETA*ASTRW/K 380 | C 381 | C FIGURE 7.1.2.2-20 A-D 382 | C 383 | CALL INTEP3(BAOK,LAMB,LAMDA,X1220A,X2220A,Y2220A,13,17,Q2220A, 384 | 1 X1220B,X2220B,Y2220B,13,10,Q2220B, 385 | 2 X1220C,X2220C,Y2220C,13,10,Q2220C, 386 | 3 1,1,1,1,1,1, 387 | 4 X1220D,X2220D,Y2220D,13,18,Q2220D,BCLPCL) 388 | BBBB=AAAA*BCLPCL*K*CLPCLP/(BETA*CLACLO) 389 | DO 1080 I=1,NALPHA 390 | CLT=CL(I)*SRSW 391 | DCLPD(I)=CLPCL2*CLT**2-CDO/8.*SRSW 392 | CLPWBS(I)=BBBB*CLA(I)+AAAA*DCLPD(I) 393 | 1080 CONTINUE 394 | C 395 | C ---WING-BODY ROLLING DERIVATIVE,CNP--- 396 | C 397 | DO 1090 I=1,NALPHA 398 | 1090 ALMALO(I) = ALSCHD(I)-ALSD 399 | BEE=SQRT(1.-MACH**2*COSLO4**2) 400 | CCCC=(ASTRW+4.*COSLO4)/(ASTRW*BEE+4.*COSLO4) 401 | DDDD=(ASTRW*BEE+.5*(ASTRW*BEE+COSLO4)*TANCO4**2) 402 | EEEE=ASTRW+.5*(ASTRW+COSLO4)*TANCO4**2 403 | C AJT IF NALPHA=20 IT WILL NOW BE 21 AFTER DO LOOP AND CL(I) WILL BE 404 | C AJT OUTSIDE ARRAY BOUND 405 | 406 | C AJT IF(CL(I).EQ.0.0)GO TO 1100 407 | 408 | C AJT PAGE 7.1.2.3-1 OF DATCOM SAYS NO ESTIMATE OF CNP VARIATION WITH CL 409 | C AJT SHOULD BE MADE IF CL AND CD DATA NOT AVAILABLE 410 | IF(CL(1).EQ.0.0)GO TO 1100 411 | CNPCLO=-(ASTRW+6.*(ASTRW+COSLO4)*(XBOCB*TANCO4/ASTRW+TANCO4**2/12. 412 | 1 ))/((ASTRW+4.*COSLO4)*6.) 413 | CNPCLM =CCCC*DDDD*CNPCLO/EEEE 414 | GO TO 1110 415 | 1100 CNPCLM=0. 416 | 1110 CONTINUE 417 | DO 1120 I=1,NALPHA 418 | CLTAN(I)=CL(I)*SRSW*TAN(ALMALO(I)/RAD) 419 | CDCDO(I)=(CD(I)-CDO)*SRSW 420 | CL2PAW(I)=(CL(I)*SRSW)**2/(ASTRW*PI) 421 | 1120 CONTINUE 422 | C 423 | C -- FIGURE 7.1.2.3-12 -- 424 | C 425 | CALL TLIP2X(X12312,X22312,Y12312,6, 8,LAMDA,ASTRW,CNPTHE,2,1,2,1, 426 | 1 Q12312,3,ROUTID) 427 | CNP=CNPTHE*THETA 428 | FFFF=AAAA*BLREF/(2.*SSPN) 429 | DO 1150 I=1,NALPHA 430 | CLPTAN(I)=CLPWBS(I)*TAN(ALMALO(I)/RAD) 431 | IF(CL(I).EQ.0.0)GO TO 1130 432 | CALL TBFUNX(ALSCHD(I),ABC,DCLDA(I),NALPHA,ALSCHD,CLTAN,H,IR, 433 | 1 MI,NG,1,1,QIMPR1,4,ROUTID) 434 | CALL TBFUNX(ALSCHD(I),ABC,DCDDA(I),NALPHA,ALSCHD,CDCDO,O,IS, 435 | 1 MI,NG,1,1,QIMPR2,4,ROUTID) 436 | CALL TBFUNX(ALSCHD(I),ABC,DCADA(I),NALPHA,ALSCHD,CL2PAW,P,IT, 437 | 1 MI,NG,1,1,QIMPR3,4,ROUTID) 438 | KAY(I)=(DCLDA(I)-DCDDA(I))/(DCLDA(I)-DCADA(I)) 439 | GO TO 1140 440 | 1130 CONTINUE 441 | KAY(I)=1. 442 | 1140 CONTINUE 443 | CNPWBS(I)=(KAY(I)-1.)*CLPTAN(I)+(KAY(I)*(CNPCLM*CL(I)*SRSW) 444 | 1 +CNP)*AAAA 445 | 1150 CONTINUE 446 | C 447 | C WING-BODY YAWING DERIVATIVE,CYP--- 448 | C 449 | CLPG=BCLPCL*K/BETA 450 | DCYPG=(3.*SINGEG*(1.-2.*ZEE*SINGEG/SSPN))*CLPG 451 | C 452 | C -- FIGURE 7.1.2.1-9 -- 453 | C 454 | CALL INTERX(1,X1219A,ASTRW,I2A219,Y1219A,TRANS,10,10,1,0,0,0,0,0 455 | 1 ,0,0,Q1219A,3,ROUTID) 456 | CALL TLIP2X(X1219B,X2219B,Y1219B,8,2,LAMCO4,TRANS,CHANGE,1 457 | 1 ,1,1,1,Q1219B,3,ROUTID) 458 | CALL TLIP2X(X1219C,X2219C,Y1219C,3,2,LAMDA,CHANGE,CYPCLO, 459 | 1 0,0,1,1,Q1219C,3,ROUTID) 460 | AABB=ASTRW+4.*COSLO4 461 | BBCC=ASTRW*BEE+4.*COSLO4 462 | CCDD=ASTRW*BEE+COSLO4 463 | DDEE=ASTRW+COSLO4 464 | CYPCLM=AABB*CCDD*CYPCLO/(BBCC*DDEE) 465 | FFPG=FFFF*DCYPG 466 | DO 1160 I=1,NALPHA 467 | CYPWBS(I)=FFPG+FFFF*CYPCLM*SRSW*KAY(I)*CL(I) 468 | 1160 CONTINUE 469 | C 470 | C WING-BODY ROLLING DERIVATIVE,CNR--- 471 | C --- FIGURE 7.1.3.3-7 -- 472 | C -- FIGURE 7.1.3.3-6 -- 473 | C 474 | CALL TLIP3X(X11336,X21336,X31336,Y71336,4,15,3,LAMCO4,ASTRW,XBOCB, 475 | 1 TRADE,0,1,0,2,1,1,Q71336,3,ROUTID) 476 | CALL TLIP2X(X1133A,X2133A,Y7133A,2,2,LAMDA,TRADE,CNRCL2,0,1,0,1, 477 | 1 Q71336,3,ROUTID) 478 | CALL TLIP3X(X11337,X21337,X31337,Y71337,4, 9,3,ABS(LAMCO4), 479 | 1 ASTRW,XBOCB,CNRCDO,0,1,0,2,1,1,Q71337,3,ROUTID) 480 | DO 1170 I=1,NALPHA 481 | CDOO(I)=CD(I)*SRSW-CL2PAW(I) 482 | CNRWBS(I)=AAAA*((CNRCL2*(CL(I)*SRSW)**2)+CNRCDO*CDOO(I)) 483 | 1170 CONTINUE 484 | RETURN 485 | END 486 | -------------------------------------------------------------------------------- /test/input/supryw.f: -------------------------------------------------------------------------------- 1 | SUBROUTINE SUPRYW 2 | C 3 | C THIS ROUTINE YIELDS THE SUPERSONIC WING,WING-BODY 4 | C ROLLING DERIVATIVES,CLP AND CNP,AND 5 | C YAWING DERIVATIVE , CYP 6 | C 7 | COMMON /OVERLY/ NLOG,NMACH,IM,NALPHA 8 | COMMON /CONSNT/ PI,DR,UNUSED,RAD 9 | COMMON /OPTION/ SR,CBARR,RUFF,BLREF 10 | COMMON /WINGD/ A(195) 11 | COMMON /WINGI/ WINGIN(77) 12 | COMMON /FLGTCD/ FLC(93) 13 | COMMON /POWR/ DYN(213) 14 | COMMON /SUPWH/ SLG(141) 15 | COMMON /IBW/ PBW,BW(380) 16 | COMMON /SYNTSS/ SYNA(19) 17 | COMMON /IWING/ PWING, WING(400) 18 | COMMON /FLOLOG/ FLTC,OPTI,BO,WGPL,WGSC,SYNT,HTPL,HTSC,VTPL,VTSC, 19 | 1 HEAD,PRPOWR,JETPOW,LOASRT,TVTPAN, 20 | 2 SUPERS,SUBSON,TRANSN,HYPERS, 21 | 3 SYMFP,ASYFP,TRIMC,TRIM 22 | LOGICAL FLTC,OPTI,BO,WGPL,WGSC,SYNT,HTPL,HTSC,VTPL,VTSC, 23 | 1 HEAD,PRPOWR,JETPOW,LOASRT,TVTPAN, 24 | 2 SUPERS,SUBSON,TRANSN,HYPERS, 25 | 3 SYMFP,ASYFP,TRIMC,TRIM 26 | INTEGER Y2225A,Y2225B,Y2225C,Y2225D,Y2225E,Y2110A,Y2110C,Y2110B, 27 | 1 Y2314A,Y2314B,Y2314C,Y2314D,Y2317A,Y2317B,Y2317C,Y2317D 28 | REAL MACH,LAMLE,LAMDA 29 | DIMENSION ALSCHD(20),CYPWBH(20),CNPWBH(20),CYPWSP(20) 30 | DIMENSION ROUTID(2) 31 | DIMENSION X1225A( 7),X2225A( 17),Y2225A( 60),Q2225A(3) 32 | DIMENSION X1225B( 7),X2225B( 13),Y2225B( 46),Q2225B(3) 33 | DIMENSION X1225C( 7),X2225C( 13),Y2225C( 46),Q2225C(3) 34 | DIMENSION X1225D( 7),X2225D( 14),Y2225D( 49),Q2225D(3) 35 | DIMENSION X1225E( 7),X2225E( 17),Y2225E( 60),Q2225E(3) 36 | DIMENSION X1110A( 14),X2110A( 9),Y2110A( 63),Q2110A(3) 37 | DIMENSION X1110C( 5),X2110C( 5),Y2110C( 13),Q2110C(3) 38 | DIMENSION X1110B( 7),X2110B( 19),Y2110B( 67),Q2110B(3) 39 | DIMENSION X1314A( 10),X2314A( 14),Y2314A( 70),Q2314A(3) 40 | DIMENSION X1314B( 10),X2314B( 14),Y2314B( 70),Q2314B(3) 41 | DIMENSION X1314C( 10),X2314C( 13),Y2314C( 65),Q2314C(3) 42 | DIMENSION X1314D( 10),X2314D( 13),Y2314D( 65),Q2314D(3) 43 | DIMENSION X12316( 9),Y12316( 9),Q12316(3) 44 | DIMENSION X13170( 2),X23170( 4),Y23170(2) 45 | DIMENSION X1317A( 5),X2317A( 15),Y2317A( 38),Q2317A(3) 46 | DIMENSION X1317B( 5),X2317B( 13),Y2317B( 33),Q2317B(3) 47 | DIMENSION X1317C( 5),X2317C( 15),Y2317C( 38),Q2317C(3) 48 | DIMENSION X1317D( 5),X2317D( 14),Y2317D( 35),Q2317D(3) 49 | EQUIVALENCE(CNACNA,SLG(3)),(TANCO2,A(74)),(LAMLE,A(58)),(SW,A(4)) 50 | 1 ,(XCG,SYNA(1)),(SSPNE,WINGIN(3)),(SSPN,WINGIN(4)), 51 | 2(AW,A(120)),(LAMDA,A(118)),(BETA,SLG(1)),(ALSCHD(1),FLC(23)), 52 | 3(TANLE,A(62)) 53 | EQUIVALENCE(CLPWBH,WING(281)),(TRENS,DYN(204)),(CHENGE,DYN(205)), 54 | 1 (CYPA,DYN(206)),(CYPWSP(1),WING(301)),(CNPTAS,DYN(207)), 55 | 2 (CNPA1,DYN(208)),(CNPA2,DYN(209)),(CNPA3,DYN(210)), 56 | 3 (CNPA,DYN(211)),(CNPAE,DYN(212)),(CNPWBH(1),WING(321)), 57 | 4 (CNPBA,DYN(213)),(XW,SYNA(1)),(CR,WINGIN(6)) 58 | DATA ROUTID/4HSUPR,4HYW / 59 | C 60 | C ----FIGURE 7.1.2.2-25A 61 | C 62 | DATA Q2225A/4H7.1.,4H2.2-,4H25A / 63 | DATA X1225A/ .000E 00, .100E 01, .200E 01, .300E 01, 64 | 1 .400E 01, .500E 01, .600E 01/ 65 | DATA X2225A/ -.699E-01, .100E 01, .147E 01, .203E 01, 66 | 1 .250E 01, .291E 01, .403E 01, .445E 01, .503E 01, .541E 01, 67 | 2 .597E 01, .646E 01, .706E 01, .797E 01, .858E 01, .909E 01, 68 | 3 .100E 02/ 69 | C 70 | C ----FIGURE 7.1.2.2-25B 71 | C 72 | DATA Q2225B/4H7.1.,4H2.2-,4H25B / 73 | DATA X1225B/ .000E 00, .100E 01, .200E 01, .300E 01, 74 | 1 .400E 01, .500E 01, .600E 01/ 75 | DATA X2225B/ .296E-01, .202E 01, .279E 01, .330E 01, 76 | 1 .428E 01, .526E 01, .571E 01, .625E 01, .697E 01, 77 | 2 .748E 01, .805E 01, .903E 01, .100E 02/ 78 | C 79 | C ----FIGURE 7.1.2.2-25C 80 | C 81 | DATA Q2225C/4H7.1.,4H2.2-,4H25C / 82 | DATA X1225C/ .000E 00, .100E 01, .200E 01, .300E 01, 83 | 1 .400E 01, .500E 01, .600E 01/ 84 | DATA X2225C/ .125E-01, .199E 01, .268E 01, .332E 01, 85 | 1 .369E 01, .433E 01, .468E 01, .539E 01, .571E 01, .668E 01, 86 | 2 .802E 01, .903E 01, .100E 02/ 87 | C 88 | C ----FIGURE 7.1.2.2-25D 89 | C 90 | DATA Q2225D/4H7.1.,4H2.2-,4H25D / 91 | DATA X1225D/ .000E 00, .100E 01, .200E 01, .300E 01, 92 | 1 .400E 01, .500E 01, .600E 01/ 93 | DATA X2225D/ .140E-01, .199E 01, .224E 01, .256E 01, 94 | 1 .275E 01, .328E 01, .371E 01, .433E 01, .502E 01, .560E 01, 95 | 2 .698E 01, .802E 01, .901E 01, .100E 02/ 96 | C 97 | C ----FIGURE 7.1.2.2-25E 98 | C 99 | DATA Q2225E/4H7.1.,4H2.2-,4H25E / 100 | DATA X1225E/ .000E 00, .100E 01, .200E 01, .300E 01, 101 | 1 .400E 01, .500E 01, .600E 01/ 102 | DATA X2225E/ .180E-01, .205E 01, .217E 01, .237E 01, 103 | 1 .258E 01, .284E 01, .302E 01, .353E 01, .402E 01, .449E 01, 104 | 2 .504E 01, .546E 01, .602E 01, .701E 01, .803E 01, .900E 01, 105 | 3 .100E 02/ 106 | C 107 | C ----FIGURE 7.1.2.1-10A 108 | C 109 | DATA Q2110A/4H7.1.,4H2.1-,4H10A / 110 | DATA X1110A/ .100E 02, .150E 02, .200E 02, .250E 02, 111 | 1 .300E 02, .350E 02, .400E 02, .450E 02, .500E 02, .550E 02, 112 | 2 .600E 02, .650E 02, .700E 02, .750E 02/ 113 | DATA X2110A/ .134E 01, .149E 01, .160E 01, .179E 01, 114 | 1 .200E 01, .240E 01, .297E 01, .349E 01, .399E 01/ 115 | C 116 | C ----FIGURE 7.1.2.1-10B 117 | C 118 | DATA Q2110B/4H7.1.,4H2.1-,4H10B / 119 | DATA X1110B/ .100E 01, .200E 01, .300E 01, .400E 01, 120 | 1 .800E 01, .120E 02, .200E 02/ 121 | DATA X2110B/ .238E 00, .550E 00, .842E 00, .127E 01, 122 | 1 .216E 01, .282E 01, .325E 01, .398E 01, .430E 01, .464E 01, 123 | 2 .498E 01, .543E 01, .596E 01, .694E 01, .795E 01, .901E 01, 124 | 3 .999E 01, .110E 02, .120E 02/ 125 | C 126 | C ----FIGURE 7.1.2.1-10C 127 | C 128 | DATA Q2110C/4H7.1.,4H2.1-,4H10C / 129 | DATA X1110C/ .000E 00, .250E 00, .500E 00, .750E 00, 130 | 1 .100E 01/ 131 | DATA X2110C/ -.600E 01, -.243E 01, -.197E 01, -.102E 01, 132 | 1 .000E 00/ 133 | C 134 | C ----FIGURE 7.1.2.3-14A 135 | C 136 | DATA Q2314A/4H7.1.,4H2.3-,4H14A / 137 | DATA X1314A/ .200E 01, .300E 01, .400E 01, .500E 01, 138 | 1 .600E 01, .700E 01, .800E 01, .100E 02, .150E 02, .200E 02/ 139 | DATA X2314A/ .323E 00, .399E 00, .451E 00, .493E 00, 140 | 1 .527E 00, .537E 00, .553E 00, .584E 00, .631E 00, .651E 00, 141 | 2 .700E 00, .802E 00, .902E 00, .100E 01/ 142 | C 143 | C ----FIGURE 7.1.2.3-14B 144 | C 145 | DATA Q2314B/4H7.1.,4H2.3-,4H14B / 146 | DATA X1314B/ .200E 01, .300E 01, .400E 01, .500E 01, 147 | 1 .600E 01, .700E 01, .800E 01, .100E 02, .150E 02, .200E 02/ 148 | DATA X2314B/ .326E 00, .393E 00, .443E 00, .478E 00, 149 | 1 .502E 00, .519E 00, .552E 00, .569E 00, .616E 00, .647E 00, 150 | 2 .700E 00, .799E 00, .900E 00, .100E 01/ 151 | C 152 | C ----FIGURE 7.1.2.3-14C 153 | C 154 | DATA Q2314C/4H7.1.,4H2.3-,4H14C / 155 | DATA X1314C/ .200E 01, .300E 01, .400E 01, .500E 01, 156 | 1 .600E 01, .700E 01, .800E 01, .100E 02, .150E 02, .200E 02/ 157 | DATA X2314C/ .369E 00, .444E 00, .492E 00, .532E 00, 158 | 1 .563E 00, .585E 00, .615E 00, .641E 00, .675E 00, .747E 00, 159 | 2 .795E 00, .898E 00, .100E 01/ 160 | C 161 | C ----FIGURE 7.1.2.3-14D 162 | C 163 | DATA Q2314D/4H7.1.,4H2.3-,4H14D / 164 | DATA X1314D/ .200E 01, .300E 01, .400E 01, .500E 01, 165 | 1 .600E 01, .700E 01, .800E 01, .100E 02, .150E 02, .200E 02/ 166 | DATA X2314D/ .401E 00, .492E 00, .546E 00, .589E 00, 167 | 1 .611E 00, .639E 00, .666E 00, .693E 00, .731E 00, .753E 00, 168 | 2 .804E 00, .902E 00, .100E 01/ 169 | C 170 | C ----FIGURE 7.1.2.3-16 171 | C 172 | DATA Q12316/4H7.1.,4H2.3-,4H16 / 173 | DATA I22316 /9/ 174 | DATA X12316/ .301E 00, .498E 00, .750E 00, .846E 00, 175 | 1 .922E 00, .949E 00, .974E 00, .987E 00, .997E 00/ 176 | DATA Y12316/ -.168E 00, -.135E 00, -.851E-01, -.626E-01, 177 | 1 -.385E-01, -.293E-01, -.190E-01, -.115E-01, -.575E-03/ 178 | C 179 | C ----FIGURE 7.1.2.3-17A 180 | C 181 | DATA Q2317A/4H7.1.,4H2.3-,4H17A / 182 | DATA X1317A/ .200E 01, .300E 01, .400E 01, .800E 01, 183 | 1 .120E 02/ 184 | DATA X2317A/ .100E 01, .115E 01, .125E 01, .138E 01, 185 | 1 .153E 01, .175E 01, .201E 01, .249E 01, .301E 01, .351E 01, 186 | 2 .397E 01, .449E 01, .549E 01, .648E 01, .698E 01/ 187 | C 188 | C ----FIGURE 7.1.2.3-17B 189 | C 190 | DATA Q2317B/4H7.1.,4H2.3-,4H17B / 191 | DATA X1317B/ .200E 01, .300E 01, .400E 01, .800E 01, 192 | 1 .120E 02/ 193 | DATA X2317B/ .101E 01, .127E 01, .150E 01, .167E 01, 194 | 1 .184E 01, .202E 01, .253E 01, .303E 01, .352E 01, .403E 01, 195 | 2 .502E 01, .603E 01, .700E 01/ 196 | C 197 | C ----FIGURE 7.1.2.3-17C 198 | C 199 | DATA Q2317C/4H7.1.,4H2.3-,4H17C / 200 | DATA X1317C/ .200E 01, .300E 01, .400E 01, .800E 01, 201 | 1 .120E 02/ 202 | DATA X2317C/ .100E 01, .113E 01, .131E 01, .150E 01, 203 | 1 .164E 01, .181E 01, .198E 01, .220E 01, .250E 01, .299E 01, 204 | 2 .347E 01, .398E 01, .496E 01, .597E 01, .693E 01/ 205 | C 206 | C ----FIGURE 7.1.2.3-17D 207 | C 208 | DATA Q2317D/4H7.1.,4H2.3-,4H17D / 209 | DATA X1317D/ .200E 01, .300E 01, .400E 01, .800E 01, 210 | 1 .120E 02/ 211 | DATA X2317D/ .100E 01, .110E 01, .125E 01, .136E 01, 212 | 1 .149E 01, .174E 01, .200E 01, .251E 01, .303E 01, .351E 01, 213 | 2 .400E 01, .501E 01, .603E 01, .699E 01/ 214 | C 215 | C IN THE FOLLOWING DATA STATEMENTS 2 FLOATING POINT NUMBERS,WITH 216 | C 3 SIGNIFICANT DIGITS EACH,ARE PACKED IN 1 FIXED POINT WORD. 217 | C 218 | C THE FORMAT IS AS FOLLOWS- 219 | C 220 | C SIGN1,NS2,NSPS,NP1,NP2,ND1,ND2 221 | C 222 | C WHERE- 223 | C 224 | C SIGN1 IS THE ACTUAL SIGN OF THE 1ST NUMBER 225 | C NS2 REPRESENTS THE SIGN OF THE 2ND NUMBER.0 IF + , 1 IF - 226 | C NSPS REPRESENTS THE SIGNS OF THE POWERS OF 10 FOR BOTH NUMBERS 227 | C 0 IF ++ , 1 IF -- , 2 IF +- , 3 IF -+ 228 | C NP1 IS THE POWER OF 10 FOR THE 1ST NUMBER. LIMITED TO 1 DIGIT 229 | C NP2 IS THE POWER OF 10 FOR THE 2ND NUMBER. LIMITED TO 1 DIGIT 230 | C ND1 3 DIGITS OF THE 1ST NUMBER (DECIMAL POINT AT END) 231 | C ND2 3 DIGITS OF THE 2ND NUMBER (DECIMAL POINT AT END) 232 | C 233 | DATA Y2225A/-1143985102,-1133105107,-1134109960,-1144760690, 234 | 1-1144620570,-1144530490,-1144460410,-1144390370,-1144330990, 235 | 2-1143990100,-1133101101,-1144990760,-1144710630,-1144580540, 236 | 3-1144510470,-1144420400,-1144380340,-1144990960,-1144940930, 237 | 4-1144910890,-1144830750,-1144670610,-1144560520,-1144490430, 238 | 5-1144410390,-1144350860,-1144830820,-1144810810,-1144800760, 239 | 6-1144750730,-1144660600,-1144560510,-1144440420,-1144400350, 240 | 7-1144750740,-1144740730,-1144730730,-1144710710,-1144690680, 241 | 8-1144650590,-1144540460,-1144440410,-1144360670,-1144670670, 242 | 9-1144670680,-1144680670,-1144660650,-1144640630,-1144620600, 243 | A-1144510460,-1144430380,-1144580590,-1144590600,-1144610620, 244 | B-1144630620,-1144620610,-1144600590,-1144580560,-1144500460, 245 | C -340410000/ 246 | DATA Y2225B/-1143988134,-1133123114,-1144938780,-1144725671, 247 | 1-1144615576,-1144541485,-1144441988,-1133124119,-1134113954, 248 | 2-1144806743,-1144681623,-1144588551,-1144488445,-1143987113, 249 | 3-1133111110,-1144969827,-1144771701,-1144632594,-1144557495, 250 | 4-1144448928,-1133102102,-1134101967,-1144857802,-1144741660, 251 | 5-1144622578,-1144514461,-1144839906,-1144938933,-1144903876, 252 | 6-1144825776,-1144697650,-1144601544,-1144487771,-1144791824, 253 | 7-1144843862,-1144828815,-1144797737,-1144690640,-1144565505, 254 | 8-1144691708,-1144732747,-1144780787,-1144778764,-1144738713, 255 | 9-1144674602, -340533000/ 256 | DATA Y2225C/-1143987137,-1133127116,-1133111100,-1144944855, 257 | 1-1144809713,-1144615562,-1144511982,-1133131124,-1133116110, 258 | 2-1134100944,-1144853814,-1144720619,-1144563511,-1143982119, 259 | 3-1133118112,-1133109102,-1144976883,-1144839734,-1144628566, 260 | 4-1144516943,-1133107109,-1133108107,-1134102974,-1144901860, 261 | 5-1144761640,-1144576523,-1144877935,-1144968999,-1144991974, 262 | 6-1144972913,-1144880791,-1144677605,-1144546820,-1144827854, 263 | 7-1144878891,-1144913904,-1144886880,-1144809700,-1144633566, 264 | 8-1144738726,-1144749773,-1144786809,-1144826850,-1144844830, 265 | 9-1144730656, -340594000/ 266 | DATA Y2225D/-1143985141,-1133136132,-1133128119,-1133112103, 267 | 1-1144940869,-1144731654,-1144592541,-1143985131,-1133128125, 268 | 2-1133123117,-1133111105,-1144953871,-1144735654,-1144592541, 269 | 3-1143985117,-1133120120,-1133119114,-1133109104,-1144952887, 270 | 4-1144747666,-1144599544,-1143953103,-1133104106,-1133106110, 271 | 5-1133107103,-1144966906,-1144767687,-1144617566,-1144893908, 272 | 6-1144938958,-1144968985,-1143998101,-1144975917,-1144800723, 273 | 7-1144651578,-1144822803,-1144824843,-1144857889,-1144911929, 274 | 8-1144938917,-1144820741,-1144671594,-1144760724,-1144735757, 275 | 9-1144770804,-1144831846,-1144864871,-1144819755,-1144685615/ 276 | DATA Y2225E/-1143988129,-1133129130,-1133129128,-1133125117, 277 | 1-1133110102,-1144960910,-1144850760,-1144680620,-1144570980, 278 | 2-1133125126,-1133126126,-1133125123,-1133117109,-1134103960, 279 | 3-1144910850,-1144760680,-1144630570,-1143990113,-1133116118, 280 | 4-1133118118,-1133118115,-1133109105,-1144980930,-1144870780, 281 | 5-1144700640,-1144580960,-1133104105,-1133107109,-1133112114, 282 | 6-1133112108,-1134104990,-1144940890,-1144790720,-1144650600, 283 | 7-1144900930,-1144930950,-1144970980,-1144000102,-1133104102, 284 | 8-1144980940,-1144900820,-1144730670,-1144610840,-1144820830, 285 | 9-1144850860,-1144880890,-1144920940,-1144960960,-1144950920, 286 | A-1144820750,-1144680630,-1144770730,-1144740750,-1144770780, 287 | B-1144790820,-1144850860,-1144880890,-1144900850,-1144770710, 288 | C -340650000/ 289 | DATA Y2110A/ 111106130, 111148177, 111211274, 111364445, 290 | 1 112525828, 121994112, 111134162, 111223327, 111438563, 291 | 2 122706802, 121879100, 111115142, 111179209, 112237582, 292 | 3 122661713, 122817930, 111115144, 111168189, 122508572, 293 | 4 122628699, 122787958, 111118137, 112155445, 122498552, 294 | 5 122618695, 122824999, 111116130, 122410452, 122491540, 295 | 6 122602713, 122861997, 112112330, 122408429, 122485533, 296 | 7 122637755, 122868969, 122262342, 122399436, 122485565, 297 | 8 122669757, 122855209, 122272314, 122395436, 122503587, 298 | 9 122665731, 122140215, 122260338, 122398450, 122525588, 299 | A 123651831, 122136166, 122228288, 122392452, 122505560, 300 | B 133466831, 122108150, 122196291, 122388445, 123487464, 301 | C 133531715, 132877125, 122192271, 122344413/ 302 | DATA Y2110B/ 122439402, 122374346, 122310295, 122278249, 303 | 1 122230218, 122199189, 122184161, 122152147, 122145136, 304 | 2 122138599, 122532489, 122425344, 122306285, 122249228, 305 | 3 122202190, 122172157, 122145138, 122127118, 122115113, 306 | 4 122728659, 122599519, 122384335, 122304247, 122219188, 307 | 5 122160136, 122121111, 133976951, 133974909, 132771910, 308 | 6 122804715, 122600426, 122351320, 122252199, 122158133, 309 | 7 122117107, 133821749, 133679679, 133680679, 122778767, 310 | 8 122751716, 122601478, 122380249, 122190135, 123111797, 311 | 9 133625482, 133409385, 133363363, 132318951, 122938919, 312 | A 122877741, 122596481, 122251164, 123116790, 133517433, 313 | B 133388364, 133340317, 133318295, 111346307, 111272224, 314 | C 112140889, 122612244, 123123675, 133449356, 133185206, 315 | D 133138114, 133136137, 330136000/ 316 | DATA Y2110C/ 124358230, 340230000, 142230505, 122145106, 317 | 1 134413230, 122610248, 122209106, 142230677, 122324285, 318 | 2 124161230, 122728367, 122326220, 340230000/ 319 | DATA Y2314A/-1133828841,-1133849855,-1133858858,-1133859862, 320 | 1-1133866866,-1133867869,-1133869870,-1133818817,-1133819824, 321 | 2-1133826824,-1133825826,-1133826826,-1133825817,-1133813805, 322 | 3-1133808808,-1133808808,-1133808806,-1133807806,-1133806805, 323 | 4-1133800793,-1133783772,-1133767788,-1133796799,-1133798796, 324 | 5-1133796796,-1133793791,-1133786776,-1133765753,-1133666739, 325 | 6-1133770784,-1133788790,-1133790788,-1133785785,-1133779767, 326 | 7-1133754742,-1133797793,-1133790788,-1133787787,-1133785784, 327 | 8-1133779776,-1133772761,-1133746733,-1133799796,-1133792789, 328 | 9-1133786785,-1133784780,-1133775774,-1133767754,-1133741723, 329 | A-1133826809,-1133798790,-1133784783,-1133780775,-1133769766, 330 | B-1133759745,-1133732714,-1133847821,-1133806794,-1133785783, 331 | C-1133779772,-1133762758,-1133751736,-1133721702,-1133824805, 332 | D-1133793783,-1133776774,-1133771765,-1133756753,-1133745730, 333 | E-1133713697/ 334 | DATA Y2314B/-1122138141,-1122143144,-1122145145,-1122147147, 335 | 1-1122149149,-1122151153,-1122155157,-1122137136,-1122137138, 336 | 2-1122138139,-1122139139,-1122140140,-1122141141,-1122141142, 337 | 3-1122133134,-1122134135,-1122134135,-1122135135,-1122136136, 338 | 4-1122136136,-1122135135,-1122133133,-1122132132,-1122133133, 339 | 5-1122133133,-1122133132,-1122132132,-1122132130,-1122126130, 340 | 6-1122131132,-1122132132,-1122132131,-1122131131,-1122131130, 341 | 7-1122129127,-1122140135,-1122133131,-1122131131,-1122130130, 342 | 8-1122130130,-1122129128,-1122126126,-1122127129,-1122129130, 343 | 9-1122130130,-1122130129,-1122129128,-1122128127,-1122126124, 344 | A-1122121125,-1122126127,-1122128128,-1122128128,-1122128127, 345 | B-1122126125,-1122123122,-1122118122,-1122124125,-1122126126, 346 | C-1122126126,-1122126126,-1122124123,-1122121119,-1122124124, 347 | D-1122125125,-1122125125,-1122125125,-1122124124,-1122123122, 348 | E-1122119117/ 349 | DATA Y2314C/-1122189195,-1122198201,-1122202204,-1122206206, 350 | 1-1122209213,-1122215220,-1122225177,-1122185187,-1122188188, 351 | 2-1122189190,-1122191192,-1122193195,-1122196199,-1122171178, 352 | 3-1122181182,-1122182182,-1122182183,-1122183184,-1122185186, 353 | 4-1122186178,-1122178178,-1122178178,-1122178178,-1122178178, 354 | 5-1122178178,-1122178178,-1122163169,-1122172174,-1122174174, 355 | 6-1122174174,-1122174174,-1122173173,-1122172185,-1122179176, 356 | 7-1122175174,-1122173173,-1122173173,-1122172172,-1122169168, 357 | 8-1122146158,-1122163167,-1122168169,-1122170170,-1122169169, 358 | 9-1122168167,-1122165144,-1122156161,-1122164166,-1122167168, 359 | A-1122168168,-1122167166,-1122164162,-1122139150,-1122155159, 360 | B-1122161162,-1122163164,-1122164163,-1122162159,-1122156201, 361 | C-1122188181,-1122177173,-1122171168,-1122166164,-1122160159, 362 | D-1122156154/ 363 | DATA Y2314D/-1122228237,-1122242245,-1122247249,-1122252254, 364 | 1-1122256258,-1122262269,-1122276210,-1122221225,-1122226227, 365 | 2-1122229229,-1122230233,-1122233234,-1122238242,-1122211215, 366 | 3-1122216217,-1122217218,-1122219219,-1122220220,-1122220223, 367 | 4-1122223206,-1122208209,-1122210211,-1122211211,-1122211211, 368 | 5-1122212212,-1122212213,-1122208207,-1122207207,-1122207207, 369 | 6-1122207207,-1122207207,-1122207206,-1122205203,-1122203203, 370 | 7-1122202202,-1122204204,-1122203203,-1122203202,-1122201200, 371 | 8-1122202202,-1122202202,-1122202201,-1122201201,-1122201201, 372 | 9-1122200198,-1122196176,-1122186191,-1122194195,-1122196196, 373 | A-1122197197,-1122197196,-1122194191,-1122145167,-1122176182, 374 | B-1122185187,-1122189190,-1122191191,-1122190187,-1122183173, 375 | C-1122180183,-1122185186,-1122187187,-1122188188,-1122188187, 376 | D-1122183181/ 377 | DATA Y2317A/-1133142138,-1133130121,-1134113991,-1144879753, 378 | 1-1144692655,-1144625609,-1144580559,-1144552943,-1144881812, 379 | 2-1144672580,-1144475431,-1144371338,-1144317297,-1144288278, 380 | 3-1144258256,-1144696641,-1144534411,-1144349288,-1144250211, 381 | 4-1144187178,-1144174167,-1144151150,-1144148354,-1144249182, 382 | 5-1144130104,-1155776710,-1155639593,-1155572459,-1155412365, 383 | 6-1155342342,-1144214123,-1155900662,-1155525365,-1155343320, 384 | 7-1155274274,-1155252229,-1155205205, -350205000/ 385 | DATA Y2317B/-1133410391,-1133366353,-1133340326,-1133302281, 386 | 1-1133267262,-1133248240,-1133233267,-1133247215,-1133197181, 387 | 2-1133175156,-1133140134,-1133126120,-1133119115,-1133198175, 388 | 3-1133143123,-1133108103,-1144904847,-1144810751,-1144678663, 389 | 4-1143659102,-1144668473,-1144368329,-1144318281,-1144267231, 390 | 5-1144206202,-1144163159,-1144660362,-1144221184,-1144159147, 391 | 6-1144134131,-1144118116,-1144111107, -340102000/ 392 | DATA Y2317C/-1133681675,-1133659642,-1133624608,-1133591577, 393 | 1-1133562537,-1133521509,-1133490480,-1133469455,-1133434413, 394 | 2-1133387371,-1133354341,-1133319301,-1133279265,-1133257244, 395 | 3-1133239229,-1133330321,-1133296275,-1133258239,-1133220200, 396 | 4-1133183166,-1133158151,-1133147138,-1133135159,-1133143111, 397 | 5-1144869740,-1144667597,-1144538511,-1144455406,-1144392388, 398 | 6-1144385371,-1134114888,-1144571374,-1144322307,-1144278278, 399 | 7-1144198187,-1144186172,-1144191188, -340207000/ 400 | DATA Y2317D/-1133932927,-1133914898,-1133889860,-1133836807, 401 | 1-1133778754,-1133743717,-1133707690,-1133612602,-1133576568, 402 | 2-1133550529,-1133495457,-1133425406,-1133389379,-1133360357, 403 | 3-1133460449,-1133424413,-1133382348,-1133319283,-1133266247, 404 | 4-1133241227,-1133214211,-1133234209,-1133179162,-1133134121, 405 | 5-1134101918,-1144849702,-1144686654,-1144645636,-1133177118, 406 | 6-1144927838,-1144648592,-1144524394,-1144398339,-1144323314, 407 | 7-1144305295/ 408 | DATA X13170/2.,12./,X23170/0.,7.,0.,7./,Y23170/0.,0./ 409 | C 410 | MACH=FLC(IM+2) 411 | COTLE=1./TANLE 412 | IF(WGPL.AND.(.NOT.BO))GO TO 1000 413 | DB=(SSPN-SSPNE)/SSPN 414 | IF(DB.GT.0.3)RETURN 415 | 1000 ASTAN2=AW*TANCO2 416 | BAW=BETA*AW 417 | C ---SUPER WING,WING-BODY ROLLING DERIVATIVE,CLP--- 418 | C 419 | C FIGURE 7.1.2.2-25 A-E 420 | CALL INTEP3(ASTAN2,BAW,LAMDA,X1225A,X2225A,Y2225A,7,17,Q2225A, 421 | C 422 | 1X1225B,X2225B,Y2225B,7,13,Q2225B, 423 | 2 X1225C,X2225C,Y2225C,7,13,Q2225C, 424 | 3 X1225D,X2225D,Y2225D,7,14,Q2225D, 425 | 4 X1225E,X2225E,Y2225E,7,17,Q2225E,CLPA) 426 | SAVE=4.*SW*SSPN**2/(RAD*SR*BLREF**2) 427 | CLPWBH=CLPA*CNACNA*SAVE*AW 428 | C 429 | C ---SUPER WING,WING-BODY YAWING DERIVATIVE,CYP--- 430 | C -- FIGURE 7.1.2.1-10 -- 431 | C 432 | CALL TLIP2X(X1110A,X2110A,Y2110A,14, 9,LAMLE,MACH,TRENS,2,1,2,1, 433 | 1 Q2110A,3,ROUTID) 434 | CALL TLIP2X(X1110B,X2110B,Y2110B,7,19,BAW,TRENS,CHENGE,2,1,2,1, 435 | 1 Q2110B,3,ROUTID) 436 | CHENGE=-CHENGE 437 | CALL TLIP2X(X1110C,X2110C,Y2110C,5,5,LAMDA,CHENGE,CYPA,1,1,2,1, 438 | 1 Q2110C,3,ROUTID) 439 | TEMP=CYPA*SW*SSPN/(SR*BLREF*1641.645) 440 | DO 1010 I=1,NALPHA 441 | CYPWSP(I)=TEMP*ALSCHD(I) 442 | 1010 CONTINUE 443 | C 444 | C ----SUPER WING,WING-BODY ROLLING DERIVATIVE,CNP--- 445 | C 446 | BCOTLE=BETA*COTLE 447 | IF(BCOTLE.GE.1.)GO TO 1030 448 | C 449 | C FIGURE 7.1.2.3-14 A-D 450 | C 451 | CALL INTEP3( BAW, BCOTLE, LAMDA, 0, 0, 0, 1, 1, 0 452 | 1 ,X1314A,X2314A,Y2314A,10,14,Q2314A 453 | 2 ,X1314B,X2314B,Y2314B,10,14,Q2314B 454 | 3 ,X1314C,X2314C,Y2314C,10,13,Q2314C 455 | 4 ,X1314D,X2314D,Y2314D,10,13,Q2314D,CNPTAS) 456 | CNPA1 =CNPTAS*TANLE 457 | C 458 | C -- FIGURE 7.1.2.3-16 -- 459 | C 460 | CALL INTERX(1,X12316,BCOTLE,I22316,Y12316,CNPAAS,9,9,1,0,0,0,1, 461 | 1 0,0,0,Q12316,3,ROUTID) 462 | CNPA2=CNPAAS*AW 463 | CNPA3=CNPAAS*AW*TANLE**2 464 | CNPA=CNPA1+CNPA2+CNPA3 465 | CNAPE=SAVE*(CNPA+CYPA*(XCG-XW)/CR*AW*(1.+LAMDA)) 466 | DO 1020 I=1,NALPHA 467 | 1020 CNPWBH(I)=(CNPAE-CLPWBH)*ALSCHD(I)/RAD 468 | GO TO 1050 469 | 1030 CONTINUE 470 | C 471 | C FIGURE 7.1.2.3-17 A-D 472 | C 473 | CALL INTEP3( BAW, BCOTLE, LAMDA, 0, 0, 0, 1, 1, 0, 474 | 1 X1317A,X2317A,Y2317A,5,15,Q2317A, 475 | 2 X1317B,X2317B,Y2317B,5,13,Q2317B, 476 | 3 X1317C,X2317C,Y2317C,5,15,Q2317C, 477 | 4 X1317D,X2317D,Y2317D,5,14,Q2317D,CNPBA) 478 | AAAAA=BETA*CNPBA 479 | BBBBB=2.*XCG/(BLREF*AW*(1.+LAMDA))-.5*TANLE 480 | CCCCC=(AAAAA+BBBBB*CYPA*BLREF/(2.*SSPN))*SAVE 481 | DO 1040 I=1,NALPHA 482 | CNPWBH(I)=(CCCCC-CLPWBH)*ALSCHD(I)/RAD 483 | 1040 CONTINUE 484 | 1050 CONTINUE 485 | RETURN 486 | END 487 | -------------------------------------------------------------------------------- /test/output/README.md: -------------------------------------------------------------------------------- 1 | This is an empty directory to hold test results. All other files in this directory are ignored. 2 | -------------------------------------------------------------------------------- /test/test.py: -------------------------------------------------------------------------------- 1 | ''' 2 | Created on Jul 15, 2012 3 | 4 | @author: jgoppert 5 | ''' 6 | import unittest 7 | import sys 8 | import os 9 | from fortran_tools import Fixed2Free 10 | import tempfile 11 | print tempfile.gettempdir() 12 | 13 | class Test(unittest.TestCase): 14 | 15 | def setUp(self): 16 | self.path = os.path.abspath(os.path.dirname(__file__)) 17 | print self.path 18 | 19 | def test_outpt2(self): 20 | 21 | filenames=['airfol','atmos','auxout','fltcl','outpt2','subryw','supryw'] 22 | 23 | print "current directory: ", os.path.abspath(os.path.curdir) 24 | 25 | for filename in filenames: 26 | 27 | input_path=os.path.join(self.path, 'input', filename+'.f') 28 | output_path=os.path.join(self.path, 'output', filename+'.f90') 29 | 30 | 31 | print "checking file:", input_path 32 | 33 | Fixed2Free.from_argv(['', input_path, output_path, '--style']) 34 | 35 | expected_path=os.path.join(self.path, 'expected', filename+'.f90') 36 | 37 | with open(output_path, 'rb') as output_file: 38 | output = output_file.readlines() 39 | with open(expected_path, 'rb') as expected_file: 40 | expected = expected_file.readlines() 41 | 42 | for i in xrange(len(expected)): 43 | if output[i] != expected[i]: 44 | raise Exception(output_path+": line " +str(i)+" does not match " + expected_path) 45 | 46 | if __name__ == "__main__": 47 | #if len(sys.argv) == 1: 48 | sys.argv = ['', 'Test.testfixed2free'] 49 | unittest.main() --------------------------------------------------------------------------------