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