1 SUBROUTINE DFLCON(AA,DD,AFORLF,BETA,INBORD,TAPERD) 2C 3C*** CALCULATES SUPERSONIC LIFT, ROLL MOMENT AND HINGE MOMENT 4C DERIVATIVES 5C 6 COMMON /CONSNT/ PI,DR,UNUSED,RAD 7 COMMON /POWR/ SPR(59) 8 LOGICAL INBORD,TAPERD 9 DIMENSION P(2),TCP(2),PA(2),TCPA(2),PB(2),RCPB(2),PC(2),TCPC(2) 10 DIMENSION PR(16) 11 EQUIVALENCE (SPR(12),CLD),(SPR(13),CLLD),(SPR(17),CMD), 12 1 (SPR(18),CHD) 13 EQUIVALENCE (PSL1,PR(1 )),(PSLX1,PR(2)),(PSLY1,PR(3)),(PSLX1A, 14 1 PR(4)),(PSLX1B,PR(5)),(PSLX1C,PR(6)),(PSL2,PSL3, 15 2 PR(7)),(PSLY2,PSLY3,PR(8)),(PSLX2A,PSLX3A,PR(9)), 16 3 (PSLX2B,PSLX3B,PR(10)),(PSLX2C,PSLX3,PR(11)),(PSLX2, 17 4 PR(12)),(PSL1A,PR(13)),(PSL1B,PR(14)),(PSLY1A,PR(15)) 18 5 ,(PSLY1B,PR(16)) 19C 20 SQRA(X)=SQRT(ABS(X)) 21 P(1)=0.5 22 P(2)=0.5 23 P3=0.5 24 A=AA 25 D=DD 26 TWO3RD=2./3. 27 A2=A**2 28 OPA2=1.+A2 29 OMA2=1.-A2 30 TCP0OD=4./(RAD*BETA*SQRA(OMA2)) 31 A4=A2**2 32 SQ3=SQRA(OMA2) 33 OMA4=1.-A4 34 IF(.NOT.TAPERD)GO TO 1110 35 FLD=AFORLF 36C 37C ----HERE FOR TAPERED 38C 39 IF(ABS(D).LE.1.0)GO TO 1000 40 GO TO 1320 41 1000 IF(FLD.EQ.0.0) FLD=1.E-04 42 D2=D**2 43 OMD2=1.-D2 44 SQ1=SQRA(OMA2*OMD2) 45 SQ2=SQRA(OMA2/OMD2) 46 OPD2=1.+D2 47 SAVFLD=FLD 48 DO 1080 K=1,2 49 APD=A+D 50 OPA=1.+A 51 OPD=1.+D 52 AMD=A-D 53 OMA=1.-A 54 OMD=1.-D 55 FLD2=FLD**2 56 AD=A*D 57 OPAD=1.+AD 58 OMAD=1.-AD 59 OMFLD=1.-FLD 60 AMD2=AMD**2 61C 62C ----SIGN LOGIC 63C 64 IF(AMD.LT.0.0)GO TO 1020 65 SIGN=-1. 66 SIGN2=1. 67 GO TO 1030 68 1020 SIGN=1. 69 SIGN2=-1. 70C 71C ----COMPUTE INTERMEDIATE STUFF. 72C 73 1030 G1=1./(FLD*OMD-OMA) 74 G2=FLD*OMAD 75 G3=FLD*AMD 76 G4=FLD/PI*ARCCOS((OMA2-G2)/G3) 77 G5=SQ2/PI*ARCCOS((OMAD-FLD*OMD2)/AMD) 78 G6=2.*FLD*OMAD-FLD2*OMD2-OMA2 79 G7=OMFLD*SQ3/PI*ALOG(ABS((A-FLD*D+SIGN*SQRA(G6))/OMFLD)) 80 G8=ARCCOS(D)/PI 81 G9=ARCCOS(A)/PI 82 G10=1.+3.*(AD-D2)-AD*D2 83 G11=OPD/OMD*(OMA2*OMD2-2.*D*OMA**2) 84 G115=.5/(FLD*OMD-OMA) 85 G12=G115/OPD 86 G13=AMD*OPD 87 G14=2.*FLD*OPAD 88 G15=SQRA(OMA2*G6)/PI 89 G16=1./(OPD*AMD2) 90 G17=SQ2*(1.-G8) 91 P(K)=.5*(SQ1-OMA*OPD)/AMD 92 PA(K)=OMD*G1*(G4-G5) 93 PB(K)=(AMD*G4+G7)*G1 94 PC(K)=OMD/AMD*(G17+G9-OMA/OMD) 95 TCP(K)=.25/(P(K)*AMD2)*(SQ2*G10-G11) 96 TCPA(K)=G12/(PA(K)*AMD)*(OMD2*(2.*OPAD-FLD*OPD2)*G4-G5*G10+ 97 1 SIGN*OPD2*G15) 98 RCPB(K)=G115/PB(K)*(AMD*(2.*A-FLD*APD)*G4/OMFLD+SIGN *G15+A*G7) 99 TCPC(K)=.5*G16/PC(K)*(G10*G17+AMD*OPD2*SQ3/PI-G11+OMD2*(1.+2.* 100 1 AD-D2)*G9) 101 IF(K.EQ.2)GO TO 1070 102C 103C ----BYPASS 3S IF CONTROL INBOARD OF WING TIP. 104C 105 IF(INBORD)GO TO 1040 106 T2=2.+A+D 107 SQ4=SQRA(OPA*OPD) 108 T1=1.0/(OPD-FLD*OPA) 109 T3=ARCCOS((T2-2.*FLD*OPA)/AMD)/PI 110 T4=FLD*ARCCOS((2.*OPD-FLD*T2)/(FLD*AMD))/PI 111 T45=OMFLD*(FLD*OPA-OPD) 112 SQ5=2.*SQRA(OPA*T45)/PI 113 T5=(2.- AMD)*OMD2+2.*(AD*OPD+D*OPA) 114 P3=(OPA-SQ4)/AMD 115 P3A=T1*(OPD*T3-SQ4*T4) 116 P3B=-T1*(AMD*T3+SIGN *SQ5) 117 TCP3=.25*G16/P3 *(SQ4*T5-2.*(OMA2*OMD2+2.*D*(OPA**2))) 118 TCP3A=-.25*T1/AMD*(2.*OPD/FLD*(2.*FLD*(1.+AD)-OPD2)*T3+SIGN2* 119 1 OPD2*SQ5-T4*SQRA(OPA/OPD)*T5) /P3A 120 RCP3B=1./(6.*P3B*T45)*(3.*AMD*(2.*A*FLD-(A+D))*T3+SIGN2*(2.* 121 1 FLD*(1.-2.*A)-(2.-3.*A-D))*SQ5) 122 1040 OPFLD=1.+FLD 123 OMFLD2=1.-FLD2 124 SL1=2.*AMD/(OMFLD2*OMD2) 125 SL2=FLD2*SL1 126 SL1A=FLD*OMD-OMA 127 SL1B=SL1A/(OPFLD*AMD) 128 SL1A=SL1A/(OMFLD2*OMD) 129 SL3=.5*OMD2*SL2/OPD 130 SL0=(OMA/OMD-FLD2*OPA/OPD)/OMFLD2 131 H1=TWO3RD*AMD/(OMFLD*OPD2) 132 SLBY1=SL1*H1*(TCP(1)-D) 133 SLBY1A=SL1A*H1*(TCPA(1)-D) 134 SLBY1B=TWO3RD*SL1B 135 IF(INBORD)GO TO 1050 136 SLBY3=SL3*(1.-H1*FLD*(TCP3+D)) 137 1050 SLY0=(OPA*OMFLD-AMD2*AMD/((OMFLD*OMD)**2)-(OPD-FLD*OPA)**3/ 138 1 ((OMFLD*OPD)**2))/(3.*AMD*OPFLD) 139 FLD3=FLD2*FLD 140 OMFLD3=1.-FLD3 141 RAT=OMFLD2/OMFLD3 142 RAT1=RAT/OPD2 143 RAT2=AMD/(OMFLD3*OPD2) 144 RAT3=1./(OMFLD3*OPD*OPD2) 145 SLX0=.5*((OMA/OMD)**2-FLD3*(OPA/OPD)**2)/OMFLD3 146 SLBX1=SL1*RAT1*(OPAD-AMD*TCP(1)) 147 SLBX1A=SL1A*RAT1*(OPAD-AMD*TCPA(1)) 148 SLBX1B=SL1B*RAT*(OMFLD*(RCPB(1)-A))/AMD 149 SLBX1C=RAT2*(OPAD-AMD*TCPC(1))/OMD 150 IF(INBORD)GO TO 1060 151 SLBX3=FLD3*RAT2*(OPAD+AMD*TCP3)/OPD 152 SLBX3A=RAT3*FLD2*(FLD*OPA-OPD)*(OPAD+AMD*TCP3A) 153 SLBX3B=OMFLD**2*(FLD*OPA-OPD)*(RCP3B+A)/(OMFLD3*(AMD**2)) 154C 155C ----BYPASS 2S IF WING TIP CONTROL. 156C 157 GO TO 1160 158 1060 FLD=1./FLD 159 1070 A=-A 160 D=-D 161 1080 CONTINUE 162 FLD=SAVFLD 163 FLD2=FLD**2 164 OMFLD=1.-FLD 165 OPAD=1.+A*D 166 AMD=A-D 167 OPD2=1.+D**2 168 OPA=1.+A 169 OPD=1.+D 170 SLBY2=SL2*(1.-H1*FLD*(TCP(2)+D)) 171 SLBX2=SL2*FLD*RAT*(OPAD+AMD*TCP(2))/OPD2 172 TMP=FLD*OPA-OPD 173 SLBX2A=FLD2*TMP*(OPAD+AMD*TCPA(2))*RAT3 174 SLBX2B=OMFLD**2*TMP*(RCPB(2)+A)/(OMFLD3*(AMD**2)) 175 SLBX2C=FLD3*AMD*(OPAD+AMD*TCPC(2))*RAT3 176 GO TO 1160 177C 178C ----HERE FOR UNTAPERED. 179C 180 1110 FLD=AFORLF 181 FLD2=FLD**2 182 DO 1140 K=1,2 183 OPA=1.+A 184 OMA=1.-A 185 G1=1.+2.*A*FLD-OMA2*FLD2 186 G2=OMA2*FLD-A 187 G3=ARCCOS(G2) 188 G4=1./((1.-OMA*FLD)*PI) 189 G5=FLD*SQ3 190 G6=SQRA(G1) 191 G7=SQRA(OMA2*G1) 192 G8=G4/OPA 193 G9=ALOG(ABS(1.+A*FLD-G6)/FLD) 194 G10=ARCCOS(A) 195 G11=1.+A/PI*G10-SQ3/PI 196 G12=G8/(4.*OMA2) 197 G13=7.*A2-2.*A4+1. 198 G14=2.*A+OPA2*FLD 199 G15=2.*FLD*OMA2**2 200 G16=A*(7.-A2) 201 G17=1./(OPA*OMA2) 202 PA(K)=G8*(G7-G2*G3) 203 PB(K)=G4*(G3+G5*G9) 204 PC(K)=G11/OPA 205 TCP(K)=(8.*A+OPA2)/(4.*OMA2) 206 TCPA(K)=G12/PA(K)*((G13-G14*G15)*G3+(G16+OMA4*FLD)*G7) 207 RCPB(K)=G4/(2.*PB(K))*((1.+2.*A*FLD)*G3/FLD-G7+A*G5*G9) 208 TCPC(K)=G17/(4.*PC(K))*(8.*A+OPA2+G13/PI*G10-G16/PI*SQ3) 209 IF(K.EQ.2) GO TO 1130 210 IF(INBORD) GO TO 1120 211 T1=1.-OPA*FLD 212 T2=2.*FLD*OPA-1. 213 T3=5.*A2+8.*A-3. 214 T4=OPA*T1 215 T45=SQRA(T4*FLD) 216 T5=ARCCOS(T2) 217 P3A=0.5/(T1*PI)*(2.*T45-T2*T5) 218 P3B=1./(PI*T1)*(T5-2.*T45) 219 TCP3=(5.-8.*A-3.*A2)/(8.*OPA) 220 TCP3A=-1./(T4*16.*P3A*PI)*((T3+8.*FLD*OPA**2*(FLD*OPA2-2.*A)) 221 1 *T5+2.*(T3-2.*FLD*OPA*OPA2)*T45) 222 RCP3B=1./(6.*P3B*FLD*T1*PI)*(3.*(1.-2.*A*FLD)*T5-2.*(1.+2.*FLD* 223 1 (1.-2.*A))*T45) 224 SL3=1./(2.*FLD*OPA) 225 SLBY3=SL3*(1.-(5./(12.*FLD*OPA))) 226 SLBX3=TWO3RD*SL3 227 SLBX3A=(1.-FLD*OPA)/(3.*FLD*OPA) 228 SLBX3B=FLD*(RCP3B+A)*(1.-FLD*OPA)/3. 229 1120 SL1=1./(FLD*OMA2) 230 SL1A=(1.-FLD*OMA)/(2.*FLD*OMA) 231 SL1B=(1.-FLD*OMA)/2. 232 SLBY1=SL1*(1.+4.*A)/(6.*FLD*OMA2) 233 SLBY1A=SL1A*TWO3RD*(TCPA(1)-A)/(FLD*OPA2) 234 SLBY1B=TWO3RD*SL1B 235 SLBX1=TWO3RD*SL1 236 SLBX1B=TWO3RD*SL1B*FLD*(RCPB(1)-A) 237 SLBX1A=TWO3RD*SL1A 238 SLBX1C=1./(3.*FLD*OMA) 239 IF(.NOT.INBORD) GO TO 1150 240 A=-A 241 GO TO 1140 242 1130 A=-A 243 OMA=1.-A 244 OPA=1.+A 245 SL2=SL1 246 SLBY2=SL2*(1.-(1.-4.*A)/(6.*FLD*OMA2)) 247 SLBX2=TWO3RD*SL2 248 SLBX2A=(1.-FLD*OPA)/(3.*FLD*OPA) 249 SLBX2B=FLD*(RCPB(2)+A)*(1.-FLD*OPA)/3. 250 SLBX2C=1./(3.*FLD*OPA) 251 1140 CONTINUE 252 1150 SL0=(FLD*OMA2-1.)/(FLD*OMA2) 253 SLY0=(3.*FLD*OMA*OMA2*(FLD*OPA-1.) -4.*A)/(6.*FLD2*OMA2**2) 254 SLX0=(3.*FLD*OMA2-4.)/(6.*FLD*OMA2) 255C 256C ----SET ALL PARTS OF GENERAL EQUATION TO 0. 257C 258 1160 DO 1170 I=1,16 259 PR(I)=0. 260 1170 CONTINUE 261 PSL1=P(1)*SL1 262 PSLX1=P(1)*SLBX1 263 PSLY1=P(1)*SLBY1 264 PSLX1C=PC(1)*SLBX1C 265 PSLX1A=PA(1)*SLBX1A 266 PSLX1B=PB(1)*SLBX1B 267 IF(.NOT.TAPERD) FLD=1./FLD 268 TESTR1=1.-A 269 TESTR2=1.+A 270 IF(.NOT.TAPERD)GO TO 1180 271 TESTR1=(1.-A)/(1.-D) 272 TESTR2=(1.+D)/(1.+A) 273 1180 IF(.NOT.INBORD)GO TO 1250 274C 275C ----HERE FOR CONTROL LOCATED INBOARD FROM WING TIP. 276C 277 PSL2=P(2)*SL2 278 PSLY2=P(2)*SLBY2 279 PSLX2=P(2)*SLBX2 280 PSLX2C=PC(2)*SLBX2C 281 PSLX2A=PA(2)*SLBX2A 282 PSLX2B=PB(2)*SLBX2B 283 CLD=SL0+PSL1+PSL2 284 CMD=-(SLX0+PSLX1+PSLX2) 285 CLLD=SLY0+PSLY1+PSLY2 286 CHD=-(SLX0+PSLX1C+PSLX2C) 287 IF(.NOT.TAPERD) GO TO 1190 288 IF(FLD.LT.1.) GO TO 1190 289 IF(FLD.GE.TESTR1) GO TO 1210 290 GO TO 1200 291 1190 IF(FLD.LE.TESTR1) GO TO 1210 292 1200 CHD=CHD-(PSLX1A-PSLX1B) 293 1210 IF (.NOT.TAPERD) GO TO 1220 294 IF(FLD.LT.1.) GO TO 1220 295 IF(FLD.GE.TESTR2) GO TO 1240 296 GO TO 1230 297 1220 IF(TESTR2.GE. FLD) GO TO 1240 298 1230 CHD=CHD-(PSLX2A-PSLX2B) 299 1240 CONTINUE 300 CMD=TCP0OD*CMD 301 CLD=TCP0OD*CLD 302 CLLD=TCP0OD*CLLD 303 CHD=TCP0OD*CHD 304 GO TO 1320 305C 306C ----HERE FOR CONTROL LOCATED AT THE WING TIP. 307C 308 1250 PSL1A=PA(1)*SL1A 309 PSL1B=PB(1)*SL1B 310 PSL3=P3*SL3 311 PSLX3=P3*SLBX3 312 PSLY1A=PA(1)*SLBY1A 313 PSLY1B=PB(1)*SLBY1B 314 PSLY3=P3*SLBY3 315 PSLX3A=P3A*SLBX3A 316 PSLX3B=P3B*SLBX3B 317 CLD=SL0+PSL1+PSL3 318 CMD=-(SLX0+PSLX1+PSLX3) 319 CLLD=SLY0+PSLY1+PSLY3 320 CHD=-(SLX0+PSLX1C+PSLX3) 321 IF(.NOT.TAPERD) GO TO 1270 322 IF(FLD.LT.1.) GO TO 1270 323 IF(FLD.GE.TESTR1) GO TO 1290 324 GO TO 1280 325 1270 IF(FLD.LE.TESTR1) GO TO 1290 326 1280 CLD=CLD+PSL1A-PSL1B 327 CMD=CMD-(PSLX1A-PSLX1B) 328 CLLD=CLLD+PSLY1A-PSLY1B 329 CHD=CHD-(PSLX1A-PSLX1B) 330 1290 IF(.NOT.TAPERD) GO TO 1300 331 IF(FLD.LT.1.) GOTO 1300 332 IF(FLD.GE.TESTR2) GO TO 1240 333 GO TO 1310 334 1300 IF(TESTR2.GE.FLD) GO TO 1240 335 1310 CHD=CHD-(PSLX3A-PSLX3B) 336 GO TO 1240 337 1320 RETURN 338 END 339