1 SUBROUTINE CHECK 2C 3C CHECK MACH REGIME LIMITS AND SET PRINT FLAGS 4C 5C*** IDEAL OUTPUT MATRIX 6C BLOCK PRINT IOM 7C NAME FLAG ARRAY 8C 9 COMMON /IBODY/ PBODY, BODY(400) 10 COMMON /IWING/ PWING, WING(400) 11 COMMON /IHT/ PHT, HT(380) 12 COMMON /IVT/ PVT, VT(380) 13 COMMON /IVF/ PVF, VF(380) 14 COMMON /IBW/ PBW, BW(380) 15 COMMON /IBH/ PBH, BH(380) 16 COMMON /IBV/ PBV, BV(380) 17 COMMON /IBWH/ PBWH, BWH(380) 18 COMMON /IBWV/ PBWV, BWV(380) 19 COMMON /IBWHV/ PBWHV, BWHV(380) 20 COMMON /IPOWER/ PPOWER, POWER(200) 21 COMMON /IDWASH/ PDWASH, DWASHI(60) 22C 23 LOGICAL PBODY, PWING, PHT, PVT, PVF, PBW, PBH, PBV, PBWH, PBWV, 24 1 PBWHV, PPOWER, PDWASH 25C 26C*** INPUT DATA BLOCKS 27C 28 COMMON /FLGTCD/ FLC(160) 29 COMMON /OPTION/ SREF,CBARR,ROUGFC,BLREF 30 COMMON /SYNTSS/ XCG, XW, ZW, ALIW, ZCG, XH, ZH, ALIH, XV, 31 1 VERTUP, HINAX, XVF, SCALE, ZV, ZVF, YV, YF, 32 2 PHIV, PHIF 33 COMMON /BODYI/ XNX,X(20),S(20),P(20),R(20),ZU(20),ZL(20), 34 1 BNOSE,BTAIL,BLN,BLA,DS,ITYPE,METHOD,ELLIP 35 COMMON /WINGI/ WGIN(101) 36 COMMON /VTI/ VTIN(154), TVTIN(8), VFIN(154) 37 COMMON /HTI/ HTIN(154) 38 COMMON /POWER/ PWIN(29), LBIN(21) 39 COMMON /FLAPIN/ F(138) 40C 41 EQUIVALENCE (F(14),SPANI), (DWASH,WGIN(101)) 42 LOGICAL FLP,FLAG,VERTUP 43 LOGICAL IMACH, IRN, IVEL, IALT, IPT, IATM 44 REAL METHOD 45C 46C*** REFERENCE DATA BLOCKS 47C 48 COMMON /CASEID/ ID(175), IDIM 49 COMMON /CONSNT/ PI,DEG,UNUSED,RAD 50 COMMON /FLOLOG/ FLTC,OPTI,BO,WGPL,WGSC,SYNT,HTPL,HTSC,VTPL,VTSC, 51 1 HEAD,PRPOWR,JETPOW,LOASRT,TVTPAN,SUPERS,SUBSON, 52 2 TRANSN,HYPERS,SYMFP,ASYFP,TRIMC,TRIM,DAMP, 53 3 HYPEF,TRAJET,BUILD,FIRST,DRCONV,PART, 54 4 VFPL,VFSC,CTAB,PLOT 55 COMMON /ERROR/ IERR,GONOGO,IEND,DMPALL,DPB,DPA,DPBD,DPAVF, 56 1 DPFACT,DPWBT,DPBHT,DPAVT,DPAHT,DPC,DPD,DPWB, 57 2 DPCHT,DPDHT,DPDYNH,SAVE,DMPCSE,DPDVT,DPGR,DPLB, 58 3 DPPW,DPSTB,DPSBD,DPSLG,DPSWB,DPSTP,DPDWA,DPSTG, 59 4 DPSLA,DPTRA,DPEXPD,DPDVF,DPFLP,DPFHG,DPFCM,DPTCD, 60 5 DPFLA,DPTRM,DPSPR,DPTRN,DPTRM2,DPHYP,DPDYN,DPJET, 61 6 DPHB,DPSHB,DPTRAH,DPSTBH,DPSEC,DPSLAH,DPINPT, 62 7 DPFLC,DPOPTN,DPSYN,DPBDIN,DPWGIN,DPVTIN,DPTVT, 63 8 DPVFIN,DPHTIN,DPPWIN,DPLBIN,DPF,DPIOM, 64 9 DPIBDY,DPIWG,DPIHT,DPIVT,DPIVF,DPIBW,DPIBH,DPIBV, 65 A DPIBWH,DPIBWV,DPITOT,DPIPWR,DPIDWH 66C 67 LOGICAL FLTC,OPTI,BO,WGPL,WGSC,SYNT,HTPL,HTSC,VTPL,VTSC, 68 1 HEAD,PRPOWR,JETPOW,LOASRT,TVTPAN,SUPERS,SUBSON, 69 2 TRANSN,HYPERS,SYMFP,ASYFP,TRIMC,TRIM,DAMP, 70 3 HYPEF,TRAJET,BUILD,FIRST,DRCONV,PART, 71 4 VFPL,VFSC,CTAB,PLOT 72 LOGICAL IERR,GONOGO,IEND,DMPALL,DPB,DPA,DPBD,DPAVF, 73 1 DPFACT,DPWBT,DPBHT,DPAVT,DPAHT,DPC,DPD,DPWB, 74 2 DPCHT,DPDHT,DPDYNH,SAVE,DMPCSE,DPDVT,DPGR,DPLB, 75 3 DPPW,DPSTB,DPSBD,DPSLG,DPSWB,DPSTP,DPDWA,DPSTG, 76 4 DPSLA,DPTRA,DPEXPD,DPDVF,DPFLP,DPFHG,DPFCM,DPTCD, 77 5 DPFLA,DPTRM,DPSPR,DPTRN,DPTRM2,DPHYP,DPDYN,DPJET, 78 6 DPHB,DPSHB,DPTRAH,DPSTBH,DPSEC,DPSLAH,DPINPT, 79 7 DPFLC,DPOPTN,DPSYN,DPBDIN,DPWGIN,DPVTIN,DPTVT, 80 8 DPVFIN,DPHTIN,DPPWIN,DPLBIN,DPF,DPIOM, 81 9 DPIBDY,DPIWG,DPIHT,DPIVT,DPIVF,DPIBW,DPIBH,DPIBV, 82 A DPIBWH,DPIBWV,DPITOT,DPIPWR,DPIDWH 83C 84C*** CHECK BODY METHOD, ASPECT RATIO CLASSIFICATION, AND DOWNWASH 85C 86 IF(METHOD .LE. 1.5) METHOD = 1.0 87 IF(METHOD .GT. 1.5) METHOD = 2.0 88C 89 IF(WGIN(92) .EQ. UNUSED) WGIN(92) = 3.5 90 IF(WGIN(92) .LT. 3.0) WGIN(92) = 3.0 91 IF(WGIN(92) .GT. 4.0) WGIN(92) = 4.0 92 IF(HTIN(92) .EQ. UNUSED) HTIN(92) = 3.5 93 IF(HTIN(92) .LT. 3.0) HTIN(92) = 3.0 94 IF(HTIN(92) .GT. 4.0) HTIN(92) = 4.0 95 IF(VTIN(92) .EQ. UNUSED) VTIN(92) = 3.5 96 IF(VTIN(92) .LT. 3.0) VTIN(92) = 3.0 97 IF(VTIN(92) .GT. 4.0) VTIN(92) = 4.0 98 IF(VFIN(92) .EQ. UNUSED) VFIN(92) = 3.5 99 IF(VFIN(92) .LT. 3.0) VFIN(92) = 3.0 100 IF(VFIN(92) .GT. 4.0) VFIN(92) = 4.0 101C 102 IF(.NOT. (WGPL .AND. HTPL)) GO TO 1000 103 SPANR = WGIN(4)/HTIN(4) 104 IF((DWASH .EQ. UNUSED) .AND. (SPANR .LT. 1.5)) DWASH = 3.0 105 IF(DWASH .LE. 1.5) DWASH = 1.0 106 IF(DWASH .GE. 2.5) DWASH = 3.0 107 IDWASH = DWASH+0.5 108 IF(IDWASH .EQ. 2 .AND. SPANR .LT. 1.25) IDWASH = 3 109 IF(IDWASH .EQ. 2 .AND. SPANR .GT. 3.60) IDWASH = 1 110 IF(IDWASH .EQ. 1 .AND. SPANR .LE. 1.00) IDWASH = 3 111 IF(IDWASH .EQ. 3 .AND. SPANR .GT. 1.50) IDWASH = 1 112 DWASH = IDWASH 113 1000 CONTINUE 114C 115C*** SET IOM PRINT FLAGS 116C 117 IF(BO .AND. .NOT. BUILD) GO TO 1010 118 IF(BO) PBODY = .TRUE. 119 IF(WGPL) PWING = .TRUE. 120 IF(HTPL) PHT = .TRUE. 121 IF(VFPL) PVF = .TRUE. 122 IF((VTPL .OR. TVTPAN)) PVT = .TRUE. 123 1010 CONTINUE 124 IF(.NOT. BO) GO TO 1040 125 IF(WGPL .AND. .NOT. BUILD) GO TO 1020 126 IF(WGPL) PBW = .TRUE. 127 IF(HTPL) PBH = .TRUE. 128 IF((VTPL .OR. TVTPAN)) PBV = .TRUE. 129 IF(WGPL .AND. HTPL) PBWH = .TRUE. 130 IF(WGPL .AND. (VTPL .OR. TVTPAN)) PBWV = .TRUE. 131 IF(.NOT. HTPL .AND. .NOT. (VTPL .OR. TVTPAN)) PBODY = .TRUE. 132 1020 CONTINUE 133 IF(.NOT. WGPL) GO TO 1030 134 IF(HTPL .AND. (VTPL .OR. TVTPAN)) PBWHV = .TRUE. 135 IF(.NOT. HTPL .AND. (VTPL .OR. TVTPAN)) PBWV = .TRUE. 136 IF(.NOT. (VTPL .OR. TVTPAN) .AND. HTPL) PBWH = .TRUE. 137 IF(.NOT. HTPL .AND. .NOT. (VTPL .OR. TVTPAN)) PBW = .TRUE. 138 1030 CONTINUE 139 IF(WGPL .AND. HTPL) PDWASH = .TRUE. 140 IF(PRPOWR .OR. JETPOW) PPOWER = .TRUE. 141 1040 CONTINUE 142 IF(LOASRT) PBW = .TRUE. 143C 144C*** CHECK FLAP INBOARD STATION 145C 146 FLP = SYMFP .OR. ASYFP 147 IF(.NOT. FLP) GO TO 1070 148 IF(ASYFP .AND. (ABS(F(18)-5.) .LE. 0.1)) GO TO 1070 149 SSPN = WGIN(4) 150 SSPNE = WGIN(3) 151 IF(.NOT. HTPL) GO TO 1050 152 SSPN = HTIN(4) 153 SSPNE = HTIN(3) 154 1050 CONTINUE 155 SBOD = SSPN-SSPNE 156 IF(SPANI .GE. SBOD) GO TO 1070 157 WRITE(6,1060) SPANI, SBOD 158 1060 FORMAT(1H0,35HERROR ** FLAP INBOARD SPAN, SPANI =,E12.5, 159 1 52H, IT IS INSIDE THE BODY AS DEFINED BY SSPN AND SSPNE / 160 2 10X,40HSPANI IS REDEFINED, SPANI = SSPN-SSPNE =,E12.5/) 161 SPANI = SBOD 162 1070 CONTINUE 163C 164C*** CHECK FOR MISSING ESSENTIAL NAMELISTS 165C 166 FLAG = LOASRT .OR. HYPEF .OR. TRAJET 167 IF(.NOT. FLAG) CALL MAJERR 168C 169C*** TEST INPUT UNITS, NOSE LOCATION, AND SCALING 170C*** TEST FLIGHT CONDITION INPUTS 171C 172 IF(SCALE .LE. UNUSED) SCALE = 1.0 173 CALL CONV(IDIM,SCALE) 174C 175 IF(FLC(160) .LT. 1.0) FLC(160) = 1.0 176 IF(FLC(160) .GT. 3.0) FLC(160) = 3.0 177 LOOP = FLC(160)+0.5 178 NMACH = FLC(1) +0.5 179 NALT = FLC(159)+0.5 180 IMACH = FLC(3) .NE. UNUSED 181 IRN = FLC(43) .NE. UNUSED 182 IVEL = FLC(137) .NE. UNUSED 183 IALT = FLC(97) .NE. UNUSED 184 IPT =(FLC(117) .NE. UNUSED) .AND. (FLC(74) .NE. UNUSED) 185 IATM = IALT .OR. IPT 186C 187 IF(IMACH) GO TO 1130 188 IF(IVEL) GO TO 1090 189 WRITE(6,1080) 190 1080 FORMAT(1H0,41H*** ERROR *** NO SPEED REFERENCE IS INPUT, 191 1 27H MACH(1) = VINF(1) = UNUSED/ 192 2 15X,31HTHE NEXT CASE WILL BE ATTEMPTED/) 193 IERR = .TRUE. 194 1090 CONTINUE 195 IF(.NOT. IVEL) GO TO 1120 196 IF(IATM) GO TO 1120 197 WRITE(6,1100) 198 1100 FORMAT(1H0,35H*** ERROR *** VELOCITY IS INPUT AND, 199 1 43H ATMOSPHERIC DATA ARE NOT DEFINED (ALT(1) = , 200 2 27HPINF(1) = TINF(1) = UNUSED)/ 201 3 15X,41HMACH WILL BE CALCULATED USING A SPEED-OF-, 202 4 17HSOUND OF 1000 FPS/) 203 DO 1110 I=1,NMACH 204 FLC(I+2) = FLC(I+136)/1000.0 205 1110 CONTINUE 206 1120 CONTINUE 207 1130 CONTINUE 208 IF(IRN .OR. IATM) GO TO 1160 209 WRITE(6,1140) 210 1140 FORMAT(1H0,43H*** ERROR *** REYNOLDS NUMBER IS NOT INPUT , 211 1 46HAND ATMOSPHERIC DATA ARE NOT DEFINED (ALT(1) =, 212 2 28H PINF(1) = TINF(1) = UNUSED)/ 213 3 15X,38HREYNOLDS NUMBER WILL BE SET TO 5*10**6/) 214 DO 1150 I=1,NMACH 215 FLC(I+42) = 5.0E6 216 1150 CONTINUE 217 1160 CONTINUE 218C 219C*** CHECK PROGRAM LOOPING 220C 221 FLAG = (LOOP .EQ. 1) .AND. IATM 222 IF(.NOT. FLAG) GO TO 1190 223 IF(FLC(159) .EQ. UNUSED) NALT = NMACH 224 IF(NALT .EQ. NMACH) GO TO 1180 225 I = MIN0(NALT,NMACH) 226 WRITE(6,1170) NMACH, NALT, I 227 1170 FORMAT(1H0,39H*** ERROR *** LOOP = 1 AND NALT IS NOT , 228 1 23HEQUAL TO NMACH (NALT = ,I2,10H, NMACH = , 229 2 I2,1H)/15X,31HNMACH AND NALT ARE BOTH SET TO , 230 3 I2/) 231 NMACH = I 232 NALT = I 233 1180 CONTINUE 234 1190 CONTINUE 235C 236 FLAG = (LOOP .GT. 1) .AND. (.NOT. IATM) 237 IF(.NOT. FLAG) GO TO 1210 238 WRITE(6,1200) LOOP 239 1200 FORMAT(1H0,21H*** ERROR *** LOOP = ,I2,16H AND ATMOSPHERIC , 240 1 34HDATA ARE NOT DEFINED, SET LOOP = 1/) 241 LOOP = 1 242 1210 CONTINUE 243 FLC(160) = LOOP 244 FLC(1) = NMACH 245 FLC(159) = NALT 246C 247C*** CALCULATE ATMOSPHERIC PRESSURE AND TEMPERATURE 248C 249 IF(.NOT. IALT) GO TO 1230 250 IF(IPT) GO TO 1230 251 DO 1220 I=1,NALT 252 IF(ABS(FLC(I+96)) .LE. UNUSED) FLC(I+96) = 0.0 253 CALL ATMOS(FLC(I+96), FLC(I+116), FLC(I+73)) 254 1220 CONTINUE 255 1230 CONTINUE 256C 257C*** WRITE ARRAY FLC FOR PLOTTING 258C 259 IF(PLOT) WRITE(13,1240) FLC 260 1240 FORMAT(1P,10E12.4) 261C 262 RETURN 263 END 264