1 SUBROUTINE CONV(IDIM,SCALE) 2C 3C*** THIS SUBROUTINE PERFORMES THREE FUNCTIONS 4C*** 1. CONVERTS INPUT DIMENSIONS TO FT-LB-SEC SYSTEM 5C*** 2. SCALES DATA 6C*** 3. SHIFTS COORDINATE SYSTEM TO X = 0 AT BODY NOSE 7C 8 COMMON /FLGTCD/ FLC(42), RN(20), NGH, GRDH(10), PINF(20), FLC1(3), 9 1 ALT(20), TINF(20), VINF(20), WT 10 COMMON /OPTION/ SREF, CBARR, ROUGFC, BLREF 11 COMMON /SYNTSS/ SYNA(19) 12 COMMON /BODYI/ XNX, X(20), S(20), P(20), R(20), ZU(20), 13 1 ZL(20), BTY(2), BL(3) 14 COMMON /WINGI/ WGIN(101) 15 COMMON /HTI/ HTIN(154) 16 COMMON /VTI/ VTIN(154), TVTIN(8), VFIN(154) 17 COMMON /POWER/ PWIN(29), LBIN(21) 18 COMMON /FLAPIN/ F(138) 19C 20 COMMON /BDATA/ BD(762) 21 COMMON /CONSNT/ PI, DEG, UNUSED, RAD 22 COMMON /FLOLOG/ FLTC,OPTI,BO,WGPL,WGSC,SYNT,HTPL,HTSC,VTPL,VTSC, 23 1 HEAD,PRPOWR,JETPOW,LOASRT,TVTPAN,SUPERS,SUBSON, 24 2 TRANSN,HYPERS,SYMFP,ASYFP,TRIMC,TRIM,DAMP, 25 3 HYPEF,TRAJET,BUILD,FIRST,DRCONV,PART, 26 4 VFPL,VFSC,CTAB 27C 28 REAL LBIN 29 LOGICAL FLTC,OPTI,BO,WGPL,WGSC,SYNT,HTPL,HTSC,VTPL,VTSC, 30 1 HEAD,PRPOWR,JETPOW,LOASRT,TVTPAN,SUPERS,SUBSON, 31 2 TRANSN,HYPERS,SYMFP,ASYFP,TRIMC,TRIM,DAMP, 32 3 HYPEF,TRAJET,BUILD,FIRST,DRCONV,PART, 33 4 VFPL,VFSC,CTAB 34C 35 EQUIVALENCE (BD(11),X0) 36C 37 DIMENSION IDIMT(8) 38 DATA IDIMT / 4HF ,4HT ,4HI ,4HN , 39 1 4HM ,4H ,4HC ,4HM / 40C 41C 42C*** SET CONVERSION FACTORS 43C 44 XL = 1.0 45 XA = 1.0 46 XR = 1.0 47 XP = 1.0 48 XT = 1.0 49 XW = 1.0 50 XF = 1.0 51 IF(IDIM .NE. 2) GO TO 1000 52 XL = 12.0 53 XA = 144.0 54 XP = 144.0 55 1000 CONTINUE 56 IF(IDIM .LT. 3) GO TO 1010 57 XL = 0.3048 58 XA = 0.09290304 59 XR = 0.3048 60 XP = 0.0208854 61 XT = 1.8 62 XW = 0.2248089 63 XF = 2.54 64 1010 CONTINUE 65 IF(IDIM .NE. 4) GO TO 1020 66 XL = 30.48 67 XA = 929.0304 68 XP = 208.854 69 1020 CONTINUE 70 ASCALE = SCALE**2 71C 72C*** INPUT UNITS CONVERSION AND SCALING 73C 74 IF((IDIM .EQ. 1) .AND. (SCALE .EQ. 1.0)) GO TO 1160 75 DO 1030 I=1,20 76 IF(RN(I) .NE. UNUSED) RN(I) = RN(I)*XR 77 IF(ALT(I) .NE. UNUSED) ALT(I) = ALT(I)/XL 78 IF(PINF(I) .NE. UNUSED) PINF(I) = PINF(I)*XP 79 IF(TINF(I) .NE. UNUSED) TINF(I) = TINF(I)*XT 80 IF(VINF(I) .NE. UNUSED) VINF(I) = VINF(I)/XL 81C AJT IF(I .LE. 10 .AND. GRDH(I) .NE. UNUSED) GRDH(I) = GRDH(I)/XL 82 1030 CONTINUE 83C AJT GRDH TAKEN OUT OF DO 1030 LOOP TO STOP ARRAY BOUND FAIL 84 DO 1031 I=1,10 85 GRDH(I) = GRDH(I)/XL 86 1031 CONTINUE 87 IF(WT .NE. UNUSED) WT = WT*XW 88C 89 IF(ROUGFC .NE. UNUSED) ROUGFC = ROUGFC/XF 90 IF(SREF .NE. UNUSED) SREF = SREF*ASCALE/XA 91 IF(CBARR .NE. UNUSED) CBARR = CBARR*SCALE/XL 92 IF(BLREF .NE. UNUSED) BLREF = BLREF*SCALE/XL 93C 94 DO 1040 I=1,19 95 IF(I .EQ. 4 ) GO TO 1040 96 IF(I .EQ. 8 ) GO TO 1040 97 IF(I .EQ. 10) GO TO 1040 98 IF(I .EQ. 13) GO TO 1040 99 IF(I .EQ. 18) GO TO 1040 100 IF(I .EQ. 19) GO TO 1040 101 IF(SYNA(I) .EQ. UNUSED) GO TO 1040 102 SYNA(I) = SYNA(I)*SCALE/XL 103 1040 CONTINUE 104 IF(BD(33) .NE. UNUSED) BD(33) = BD(33)*SCALE/XL 105 IF(BD(65) .NE. UNUSED) BD(65) = BD(65)*SCALE/XL 106 IF(BD(74) .NE. UNUSED) BD(74) = BD(74)*SCALE/XL 107 IF(BD(82) .NE. UNUSED) BD(82) = BD(82)*SCALE/XL 108C 109 DO 1050 I=1,20 110 IF(X(I) .NE. UNUSED) X(I) = X(I)*SCALE/XL 111 IF(S(I) .NE. UNUSED) S(I) = S(I)*ASCALE/XA 112 IF(P(I) .NE. UNUSED) P(I) = P(I)*SCALE/XL 113 IF(R(I) .NE. UNUSED) R(I) = R(I)*SCALE/XL 114 IF(ZU(I) .NE. UNUSED) ZU(I) = ZU(I)*SCALE/XL 115 IF(ZL(I) .NE. UNUSED) ZL(I) = ZL(I)*SCALE/XL 116C AJT IF((I .LE. 3) .AND. (BL(I) .NE. UNUSED)) 117C AJT 1 BL(I) = BL(I)*SCALE/XL 118 1050 CONTINUE 119C AJT BL TAKEN OUT OF DO 1030 LOOP TO STOP ARRAY BOUND FAIL 120 DO 1051 I=1,3 121 BL(I) = BL(I)*SCALE/XL 122 1051 CONTINUE 123C 124 DO 1060 I=1,6 125 IF(WGIN(I) .NE. UNUSED) WGIN(I) = WGIN(I)*SCALE/XL 126 IF(HTIN(I) .NE. UNUSED) HTIN(I) = HTIN(I)*SCALE/XL 127 IF(VTIN(I) .NE. UNUSED) VTIN(I) = VTIN(I)*SCALE/XL 128 IF(VFIN(I) .NE. UNUSED) VFIN(I) = VFIN(I)*SCALE/XL 129 1060 CONTINUE 130 IF(WGIN(12) .NE. UNUSED) WGIN(12) = WGIN(12)*SCALE/XL 131 IF(HTIN(12) .NE. UNUSED) HTIN(12) = HTIN(12)*SCALE/XL 132 IF(VTIN(12) .NE. UNUSED) VTIN(12) = VTIN(12)*SCALE/XL 133 IF(VFIN(12) .NE. UNUSED) VFIN(12) = VFIN(12)*SCALE/XL 134 DO 1070 I=95,154 135 IF(VTIN(I) .NE. UNUSED) VTIN(I) = VTIN(I)*ASCALE/XA 136 IF(VFIN(I) .NE. UNUSED) VFIN(I) = VFIN(I)*ASCALE/XA 137 IF((I .GE. 115) .AND. (HTIN(I) .NE. UNUSED)) 138 1 HTIN(I) = HTIN(I)*ASCALE/XA 139 IF((I .LE. 114) .AND. (HTIN(I) .NE. UNUSED)) 140 1 HTIN(I) = HTIN(I)*SCALE/XL 141 1070 CONTINUE 142C 143 IF(PWIN(4) .NE. UNUSED) PWIN(4) = PWIN(4)*SCALE/XL 144 IF(PWIN(5) .NE. UNUSED) PWIN(5) = PWIN(5)*SCALE/XL 145 IF(PWIN(6) .NE. UNUSED) PWIN(6) = PWIN(6)*SCALE/XL 146 IF(PWIN(8) .NE. UNUSED) PWIN(8) = PWIN(8)*SCALE/XL 147 IF(PWIN(9) .NE. UNUSED) PWIN(9) = PWIN(9)*SCALE/XL 148 IF(PWIN(10) .NE. UNUSED) PWIN(10) = PWIN(10)*SCALE/XL 149 IF(PWIN(16) .NE. UNUSED) PWIN(16) = PWIN(16)*SCALE/XL 150 IF(PWIN(17) .NE. UNUSED) PWIN(17) = PWIN(17)*SCALE/XL 151 IF(PWIN(18) .NE. UNUSED) PWIN(18) = PWIN(18)*SCALE/XL 152 IF(PWIN(19) .NE. UNUSED) PWIN(19) = PWIN(19)*ASCALE/XA 153 IF(PWIN(21) .NE. UNUSED) PWIN(21) = PWIN(21)/XL 154 IF(PWIN(22) .NE. UNUSED) PWIN(22) = PWIN(22)*XT 155 IF(PWIN(23) .NE. UNUSED) PWIN(23) = PWIN(23)*XT 156 IF(PWIN(24) .NE. UNUSED) PWIN(24) = PWIN(24)*SCALE/XL 157 IF(PWIN(25) .NE. UNUSED) PWIN(25) = PWIN(25)*XP 158 IF(PWIN(26) .NE. UNUSED) PWIN(26) = PWIN(26)*XP 159 IF(PWIN(27) .NE. UNUSED) PWIN(27) = PWIN(27)*SCALE/XL 160 IF(PWIN(28) .NE. UNUSED) PWIN(28) = PWIN(28)*SCALE/XL 161C 162 DO 1080 I=1,4 163 IF(TVTIN(I) .NE. UNUSED) TVTIN(I) = TVTIN(I)*SCALE/XL 164 1080 CONTINUE 165 IF(TVTIN(5) .NE. UNUSED) TVTIN(5) = TVTIN(5)*ASCALE/XA 166 IF(TVTIN(7) .NE. UNUSED) TVTIN(7) = TVTIN(7)*SCALE/XL 167 IF(TVTIN(8) .NE. UNUSED) TVTIN(8) = TVTIN(8)*SCALE/XL 168C 169 IF(.NOT. SYMFP) GO TO 1100 170 DO 1090 I=12,125 171 IF((I .GE. 16) .AND. (I .LE. 38)) GO TO 1090 172 IF((I .GE. 61) .AND. (I .LE. 84)) GO TO 1090 173 IF((I .GE. 105) .AND. (I .LE. 114)) GO TO 1090 174 IF( I .EQ. 117) GO TO 1090 175 IF(F(I) .NE. UNUSED) F(I) = F(I)*SCALE/XL 176 1090 CONTINUE 177 IF(F(133) .NE. UNUSED) F(133) = F(133)*XL 178 IF(F(134) .NE. UNUSED) F(134) = F(134)*XL 179 IF(F(135) .NE. UNUSED) F(135) = F(135)*XP 180 1100 CONTINUE 181 IF(.NOT. ASYFP) GO TO 1120 182 DO 1110 I=12,15 183 IF(F(I) .NE. UNUSED) F(I) = F(I)*SCALE/XL 184 1110 CONTINUE 185 1120 CONTINUE 186 IF(.NOT. TRAJET) GO TO 1140 187 DO 1130 I=12,21 188 IF(F(I) .NE. UNUSED) F(I) = F(I)*XW 189 1130 CONTINUE 190 IF(F(34) .NE. UNUSED) F(34) = F(34)/XL 191 IF(F(38) .NE. UNUSED) F(38) = F(38)/XL 192 1140 CONTINUE 193 IF(.NOT. HYPEF) GO TO 1150 194 IF(F(1) .NE. UNUSED) F(1) = F(1)/XL 195 IF(F(2) .NE. UNUSED) F(2) = F(2)/XL 196 IF(F(4) .NE. UNUSED) F(4) = F(4)/XL 197 1150 CONTINUE 198C 199 IF(LBIN(2) .NE. UNUSED) LBIN(2) = LBIN(2)/XA 200 IF(LBIN(4) .NE. UNUSED) LBIN(4) = LBIN(4)/XA 201 IF(LBIN(9) .NE. UNUSED) LBIN(9) = LBIN(9)/XA 202 IF(LBIN(11) .NE. UNUSED) LBIN(11) = LBIN(11)/XA 203 IF(LBIN(18) .NE. UNUSED) LBIN(18) = LBIN(18)/XA 204 IF(LBIN(19) .NE. UNUSED) LBIN(19) = LBIN(19)/XA 205 IF(LBIN(1) .NE. UNUSED) LBIN(1) = LBIN(1)/XL 206 IF(LBIN(8) .NE. UNUSED) LBIN(8) = LBIN(8)/XL 207 IF(LBIN(10) .NE. UNUSED) LBIN(10) = LBIN(10)/XL 208 IF(LBIN(12) .NE. UNUSED) LBIN(12) = LBIN(12)/XL 209 IF(LBIN(13) .NE. UNUSED) LBIN(13) = LBIN(13)/XL 210 IF(LBIN(15) .NE. UNUSED) LBIN(15) = LBIN(15)/XL 211 IF(LBIN(20) .NE. UNUSED) LBIN(20) = LBIN(20)/XL 212 IF(LBIN(21) .NE. UNUSED) LBIN(21) = LBIN(21)/XL 213 1160 CONTINUE 214C 215C*** SET NOSE LOCATION 216C 217 X0 = X(1) 218 IF(ABS(X0) .LE. UNUSED) GO TO 1180 219 NX = XNX+0.5 220 DO 1170 I=1,NX 221 X(I) = X(I)-X0 222 1170 CONTINUE 223 SYNA(1) = SYNA(1) -X0 224 SYNA(2) = SYNA(2) -X0 225 SYNA(6) = SYNA(6) -X0 226 SYNA(9) = SYNA(9) -X0 227 IF(SYNA(11) .NE. UNUSED) SYNA(11) = SYNA(11)-X0 228 IF(SYNA(12) .NE. UNUSED) SYNA(12) = SYNA(12)-X0 229 PWIN(4) = PWIN(4) -X0 230 PWIN(16) = PWIN(16)-X0 231 PWIN(18) = PWIN(18)-X0 232 BD(33) = BD(33) -X0 233 BD(65) = BD(65) -X0 234 1180 CONTINUE 235 I1 = 1+2*(IDIM-1) 236 I2 = I1+1 237 WRITE(6,1190) (IDIMT(I),I=I1,I2), SCALE 238 RETURN 239 1190 FORMAT(1H0,25H INPUT DIMENSIONS ARE IN ,2A1, 240 1 18H, SCALE FACTOR IS ,F6.4/) 241 END 242