1      SUBROUTINE CMALPO(A,B,WINGIN,DYN)
2C
3C***  COMPUTES LIFTING SURFACE CMA AT MACH=0
4C
5      COMMON /OVERLY/ NLOG,NMACH,I,NALPHA
6      COMMON /CONSNT/ PI,DEG,UNUSED,RAD
7      COMMON /OPTION/ SREF,CBARR,RUFF,BLREF
8      COMMON /FLGTCD/ FLC(95)
9      DIMENSION ROUTID(2)
10      DIMENSION Q41412(3),Q4222A(3),Q4222B(3)
11      LOGICAL CONST
12      DIMENSION C(51),A(195),B(49),WINGIN(101),DYN(213)
13      DIMENSION X21412(22),X11412(5),X31412(3),Y41412(330)
14      DIMENSION Y415A(110),Y415B(110),Y415C(110)
15      DIMENSION XCMOM(15), YCMOM(15), CCMOM(6), QCMOM(3)
16      DIMENSION X322A(6),X222A(6),X122A(6),Y22A(216)
17      DIMENSION X322B(6),X222B(6),X122B(6),Y22B(216)
18      DIMENSION WTYPE(4)
19      DIMENSION X211B(7),Y11B(7)
20      EQUIVALENCE (Y41412(1),Y415A(1)),(Y41412(111),Y415B(1))
21      EQUIVALENCE (Y41412(221),Y415C(1))
22      DATA ROUTID/4HCMAL,4HPO  /
23      DATA Q41412/4H4.1.,4H4.1-,4H5   /,Q4222A/4H4.1.,4H4.2-,4H26A /,
24     1     Q4222B/4H4.1.,4H4.2-,4H26B /,
25     2     QCMOM  /4H4.1.,4H4.1-,4H6    /
26C
27C---------    FIGURE 4.1.4.1-6
28C
29      DATA ICMOM / 0 /
30      DATA XCMOM / 0., .25, .30, .35, .40, .45, .50, .55, .60, .65,
31     1            .70, .75, .80, .85, .90 /
32      DATA YCMOM / 1.000, 1.000, 1.005, 1.017, 1.031, 1.050, 1.072,
33     1             1.101, 1.132, 1.162, 1.197, 1.237, 1.287, 1.355,
34     2             1.445 /
35C
36C---------    FIGURE 4.1.4.1-5
37C     ----Y41412(16,5,3) , X31412=TAPER RATIO  X11416= ASPECT RATIO
38C     ----X21412=QUARTER CHORD SWEEP ANGLE
39C
40      DATA X31412 /0.,.5,1./
41      DATA X11412 /10.,8.,6.,3.5,1.5/
42      DATA X21412 /-45.,-40.,-35.,-30.,-25.,-20.,-15.,-10.,-5.,
43     1             0.,5.,10.,15.,20.,25.,30.,35.,40.,45.,50.,
44     2             55.,60./
45      DATA Y415A /
46     1  .0116,  .0100,  .0085,  .0072,  .0060,  .0048,  .0036,  .0024,
47     2  .0012,  .0000, -.0012, -.0024, -.0037, -.0050, -.0063, -.0076,
48     3 -.0090, -.0104, -.0118, -.0131, -.0145, -.0159,
49     4  .0081,  .0070,  .0061,  .0051,  .0042,  .0034,  .0025,  .0017,
50     5  .0008,  .0000, -.0009, -.0017, -.0026, -.0035, -.0045, -.0055,
51     6 -.0065, -.0076, -.0086, -.0097, -.0108, -.0119,
52     7  .0052,  .0045,  .0039,  .0033,  .0027,  .0022,  .0016,  .0011,
53     8  .0005,  .0000, -.0005, -.0011, -.0017, -.0023, -.0029, -.0035,
54     9 -.0042, -.0049, -.0057, -.0063, -.0070, -.0078,
55     A  .0022,  .0019,  .0016,  .0014,  .0011,  .0009,  .0007,  .0004,
56     B  .0002,  .0000, -.0002, -.0004, -.0007, -.0009, -.0012, -.0014,
57     C -.0017, -.0021, -.0024, -.0027, -.0032, -.0036,
58     D  .0005,  .0004,  .0004,  .0003,  .0002,  .0002,  .0001,  .0001,
59     E  .0000,  .0000, -.0000, -.0001, -.0001, -.0002, -.0002, -.0003,
60     F -.0004, -.0004, -.0005, -.0006, -.0007, -.0008/
61      DATA Y415B /
62     1  .0204,  .0177,  .0152,  .0128,  .0105,  .0083,  .0061,  .0041,
63     2  .0020,  .0000, -.0020, -.0040, -.0060, -.0080, -.0100, -.0121,
64     3 -.0141, -.0162, -.0182, -.0208, -.0232, -.0257,
65     4  .0144,  .0125,  .0107,  .0090,  .0073,  .0058,  .0043,  .0028,
66     5  .0014,  .0000, -.0014, -.0028, -.0042, -.0056, -.0071, -.0086,
67     6 -.0102, -.0117, -.0133, -.0153, -.0172, -.0193,
68     7  .0091,  .0078,  .0066,  .0055,  .0045,  .0035,  .0026,  .0017,
69     8  .0009,  .0000, -.0009, -.0017, -.0026, -.0035, -.0044, -.0054,
70     9 -.0064, -.0075, -.0087, -.0099, -.0113, -.0128,
71     A  .0036,  .0030,  .0026,  .0021,  .0017,  .0013,  .0010,  .0007,
72     B  .0003,  .0000, -.0003, -.0007, -.0010, -.0013, -.0017, -.0021,
73     C -.0025, -.0030, -.0036, -.0043, -.0050, -.0058,
74     D  .0007,  .0006,  .0005,  .0004,  .0003,  .0003,  .0002,  .0001,
75     E  .0001,  .0000, -.0001, -.0001, -.0002, -.0003, -.0003, -.0004,
76     F -.0005, -.0006, -.0007, -.0008, -.0009, -.0010/
77      DATA Y415C /
78     1  .0218,  .0189,  .0162,  .0135,  .0111,  .0087,  .0064,  .0042,
79     2  .0021,  .0000, -.0020, -.0041, -.0061, -.0081, -.0101, -.0121,
80     3 -.0141, -.0162, -.0182, -.0202, -.0222, -.0243,
81     4  .0154,  .0133,  .0113,  .0095,  .0077,  .0060,  .0044,  .0029,
82     5  .0014,  .0000, -.0014, -.0028, -.0043, -.0057, -.0072, -.0087,
83     6 -.0102, -.0117, -.0133, -.0148, -.0163, -.0179,
84     7  .0097,  .0083,  .0070,  .0058,  .0047,  .0037,  .0027,  .0018,
85     8  .0009,  .0000, -.0009, -.0018, -.0027, -.0036, -.0045, -.0055,
86     9 -.0065, -.0075, -.0086, -.0098, -.0108, -.0119,
87     A  .0038,  .0032,  .0027,  .0022,  .0018,  .0014,  .0010,  .0007,
88     B  .0003,  .0000, -.0003, -.0007, -.0010, -.0014, -.0018, -.0022,
89     C -.0026, -.0031, -.0036, -.0043, -.0050, -.0057,
90     D  .0008,  .0006,  .0005,  .0004,  .0003,  .0003,  .0002,  .0001,
91     E  .0001,  .0000, -.0001, -.0001, -.0002, -.0003, -.0003, -.0004,
92     F -.0005, -.0006, -.0007, -.0008, -.0009, -.0010/
93C
94C---------FIGURE  4.1.4.2-26A
95C---------Y22A(6,6,6)  X322A=TAPER RATIO  X122A=A*(L.E.S.A)
96C---------X222A=LEADING EDGE SWEEP ANGLE(L.E.S.A)
97C
98      DATA X322A /0.,.2,.25,.333,.5,1./
99      DATA X122A /6.,5.,4.,3.,2.,1./
100      DATA X222A /0.,.20,.40,.60,.80,1.0/
101      DATA Y22A  /.68,.7,.72,.74,.76,.78,.58,.6,.62,.64,.66,.68,.51,.52,
102     1.53,.54,.55,.56,.42,.425,.435,.44,.445,.445,6*.335,.25,.245,.24,
103     2.235,.230,.225,.87,.88,.89,.905,.915,.925,.75,.76,.775,.785,.8,
104     3.81,.64,.65,.66,.675,.685,.695,.52,.525,.535,.54,.5425,.55,.4,
105     45*.405,.28,.275,.265,.26,.255,.25,.93,.94,.95,.96,.97,.98,.8,.81,
106     5.82,.83,.84,.85,.67,.68,.69,.70,.71,.72,.54,.55,.56,.57,.575,.58,
107     62*.41,2*.42,.428,.43,.3,.29,2*.28,.275,.27,2*1.04,2*1.05,1.06,
108     71.08,2*.89,.90,2*.91,.92,.73,.74,.75,.758,.76,.77,.59,3*.6,.61,
109     8.618,4*.46,2*.45,.32,.318,.31,.308,.30,.29,3*1.2,1.21,1.22,1.23,
110     92*1.04,2*1.05,2*1.06,3*.88,.882,.89,.90,5*.70,.705,2*.53,4*.52,
111     A.36,.35,.34,.335,.33,.32 , 4*1.74,2*1.73,6*1.50,6*1.22,6*1.0,
112     B4*.76,2*.74,.52,.50,.483,.480,.463,.460/
113C
114C---------FIGURE  4.1.4.2-26B
115C---------Y22B(6,6,6)  X322B=TAPER RATIO  X122B=A*(L.E.S.A.)
116C---------X222B=LEADING EDGE SWEEP ANGLE(L.E.S.A.)
117C
118      DATA X322B /0.,.2,.25,.333,.5,1./
119      DATA X122B /6.,5.,4.,3.,2.,1./
120      DATA X222B /1.0,.80,.60,.40,.20,0.0/
121      DATA Y22B /.78,.79,.805,.83,.87,.99,.68,.695,.71,.725,.76,
122     1.83,.56,.57,.58,.595,.62,.66,.455,3*.46,.47,.5,6*.335,.225,.22,
123     2.21,.2,.185,.17,.925,.94,.96,1.,1.05,1.15,.81,.82,.84,.87,.91,.97,
124     3.695,.7,.71,.73,.76,.8,.55,.555,.56,.57,.58,.6,.405,.402,4*.4,
125     4.25,.245,.24,.23,.22,.2,.98,.99,1.01,1.05,1.1,1.25,.85,.86,.88,
126     5.9,.95,1.03,.72,.73,.74,.76,.79,.82,.58,.59,.595,.6,.61,.63,4*.43,
127     6.42,.418,.27,.26,.255,.25,.24,.23,1.08,1.09,1.1,1.12,1.16,1.26,
128     7.92,.93,.94,.96,1.,1.07,.77,.78,.79,.8,.83,.88,.618,.62,.63,.64,
129     8.65,.67,5*.45,.44,.29,.28,.27,.26,.24,.22,1.23,1.23,1.24,1.26,
130     91.3,1.38,1.06,1.07,1.08,1.09,1.12,1.19,3*.9,.91,.94,.98,2*.71,
131     A.715,.72,.73,.75,3*.52, .51,.505,.5,.32,.31,.305,.30,.28,.25,
132     B4*1.72,1.7,1.66,4*1.48,1.46,1.42,4*1.24,1.22,1.2,4*1.,.98,
133     C.94,.74,.723,.72,.72,.70,.66,.46,.44,.42,.40,.38,.32/
134      DATA WTYPE /4HSTRA,4HDOUB,4HCRAN,4HCURV/
135C
136      C(1) = WINGIN(61)
137      C(2)=WINGIN(67)
138      BETA=1.0
139      ZMACH=0.0
140      A170=A(173)/A(10)
141      C(48)=WINGIN(6)/CBARR
142      CONST=.FALSE.
143C
144C-----IF WING IS CONSTANT SECTION,SET CONST EQUAL TO TRUE
145C
146      IF( ABS(C(1)).LT.1.E-10.OR.ABS(C(2)).LT.1.E-10) CONST=.TRUE.
147      IF(.NOT.CONST) C(1)= 0.50*(C(1)+C(2))
148      IF(.NOT.CONST) ATOVCA=0.50*(WINGIN(16)+WINGIN(65))
149      IF(.NOT.CONST) GO TO 1000
150      ATOVCA=WINGIN(16)
151 1000 CONTINUE
152      CALL TBFUNX(B(1), CALM, DYDX, 15, XCMOM, YCMOM, CCMOM,ICMOM,
153     1            MI, NG, 0, 0, QCMOM, 3, ROUTID)
154      CALM = A(3)*A(16)*CALM/(SREF*CBARR)
155      C(5)=(A(7)*A(43)**2/(A(7)+2.0*A(43)))*C(1)*CALM
156C
157C     DETERMINE IF WING IS TWISTED
158C
159      IF(ABS(WINGIN(11)).LT.1.E-20) GO TO 1010
160C
161C     CALL TABLE LOOK-UP FOR CMO/THETA FROM MODIFIED FIG 4.1.4.1-5
162C
163      CALL TLIN3X(X11412,X21412,X31412,Y41412,5,22,3,A(7),A(40),
164     1            A(27),C(4),2,2,0,2,2,0,Q41412,3,ROUTID)
165C
166C     COMPUTE CMOTH (FOR TWISTED WING)
167C
168      C(5)=C(5)+C(4)*WINGIN(11)*CALM
169 1010 CONTINUE
170      B47=C(5)
171C
172C*********     TEST FOR WING TYPE                 **********************
173C
174      C(9)=A(7)*A(38)
175      TYPE=WINGIN(15)
176      IF(WINGIN(15).NE.WTYPE(1)) GO TO 1040
177C
178C*********     PAGE NUMBER 2-2                    **********************
179C+++++++++     STRAIGHT TAPERED OR CONVENTIONAL   ++++++++++++++++++++++
180C
181      C(10)=A(38)/BETA
182      C(11)=BETA/A(38)
183      IF(A(7) .GT. A(125)) GO TO 1030
184C
185C ***** IF WING HAS FORWARD SWEEP, GO TO SUBROUTINE FWDXAC
186C
187      IF (A(38) .LT. 0.0) GO TO 1110
188C
189C--------- IF C(10).GE.1.0 USE FIG. 4.1.4.2-26B
190C
191      IF(C(10).GE.1.0) GO TO 1020
192C
193C---------     FIGURE 4.1.4.2-26A
194C
195      CALL TLIN3X(X122A,X222A,X322A,Y22A,6,6,6,C(9),C(10),A(27),C(6),
196     1            2,0,0,2,0,0,Q4222A,3,ROUTID)
197      GO TO 1120
198C
199C---------     FIGURE 4.1.4.2-26B
200C
201 1020 CALL TLIN3X(X122B,X222B,X322B,Y22B,6,6,6,C(9),C(11),A(27),C(6),
202     1            2,0,0,2,0,0,Q4222B,3,ROUTID)
203      GO TO 1120
204C
205C***  COMPUTE XAC/CR AT QUARTER CHORD OF MAC
206C
207 1030 CONTINUE
208      C(6)=(A(161)-(WINGIN(4)-WINGIN(3))*A(62))/A(10)
209      GO TO 1120
210C
211C*********     PAGE NUMBER 2-3                    **********************
212C+++++++++     DOUBLE-DELTA,CRANKED,OR CURVED     ++++++++++++++++++++++
213C
214 1040 CONTINUE
215      IF(A(62).EQ.0.0) A(62)=1.0E-15
216      C(12)=A(5)*A(62)
217      C(13)=A(62)/BETA
218      C(14)=1.0/C(13)
219      C(15)= A(168)*A(86)
220      C(16)=A(86)/BETA
221      C(17)= 1.0/C(16)
222C
223C ***** IF INBOARD PANEL HAS FORWARD SWEEP, GO TO SUBROUTINE FWDXAC
224C
225      IF (A(62) .LT. 0.0) GO TO 1060
226C
227C*********     IF C(13).GE.1.0, USE FIGURE 4.1.4.2-26B (INBOARD DATA)
228C
229      IF(C(13).GE.1.0) GO TO 1050
230C
231C---------     FIGURE 4.1.4.2-26A
232C
233      CALL TLIN3X(X122A,X222A,X322A,Y22A,6,6,6,C(12),C(13),A(26),C(18),
234     1            2,0,0,2,0,0,Q4222A,3,ROUTID)
235      GO TO 1070
236C
237C---------     FIGURE 4.1.4.2-26B       --------------------------------
238C
239 1050 CALL TLIN3X(X122B,X222B,X322B,Y22B,6,6,6,C(12),C(14),A(26),C(18),
240     1            2,0,0,2,0,0,Q4222B,3,ROUTID)
241      GO TO 1070
242 1060 CALL FWDXAC (C(12),A(26),C(13),B(1),ROUTID,C(18))
243C
244C ***** IF OUTBOARD PANEL HAS FORWARD SWEEP, GO TO SUBROUTINE FWDXAC
245C
246      IF (A(86) .LT. 0.0) GO TO 1090
247C
248C*********     IF C(16).GE.1.0 USE FIGURE 4.1.4.2-26B (OUTBOARD DATA)
249C
250 1070 IF(C(16).GE.1.0) GO TO 1080
251C
252C---------     FIGURE 4.1.4.2-26A
253C
254      CALL TLIN3X(X122A,X222A,X322A,Y22A,6,6,6,C(15),C(16),A(169),C(19),
255     1            2,0,0,2,0,0,Q4222A,3,ROUTID)
256      GO TO 1100
257C
258C---------     FIGURE 4.1.4.2-26B
259C
260 1080 CALL TLIN3X(X122B,X222B,X322B,Y22B,6,6,6,C(15),C(17),A(169),C(19),
261     1            2,0,0,2,0,0,Q4222B,3,ROUTID)
262      GO TO 1100
263 1090 CALL FWDXAC (C(15),A(169),C(16),B(1),ROUTID,C(19))
264 1100 C(20)= C(19)*A(166)/A(10)-A(164)*A(86)/A(10)+A(23)*A(62)/A(10)
265      TEMP1=2.*PI*A(168)*DEG
266      TEMP2=ABS(1.-FLC(3)**2)*(TEMP1/WINGIN(21))**2
267      TEMP3=A(98)**2
268      A172=TEMP1/(2.+SQRT(TEMP2*(1.+TEMP3)+4.))
269      TEMP1=2.*PI*A(5)*DEG
270      TEMP2=ABS(1.-FLC(3)**2)*(TEMP1/WINGIN(21))**2
271      TEMP3=A(74)**2
272      A171=TEMP1/(2.+SQRT(TEMP2*(1.+TEMP3)+4.))
273      ANUM=A171*A(1)*C(18)+A172*A(167)*C(20)
274      ADEN=A171*A(1)+A172*A(167)
275      C(6)=ANUM/ADEN
276      GO TO 1120
277 1110 CALL FWDXAC (C(9),A(27),C(10),B(1),ROUTID,C(6))
278 1120 DCMDCL=(A170-C(6))*(A(10)/CBARR)
279      DYN(21)=DCMDCL
280      RETURN
281      END
282