1      SUBROUTINE DNPAWB
2C
3C     THIS ROUTINE YIELDS THE FOLLOWING WING-BODY DERIVATIVES-
4C       SUB,TRAN,SUPER,HYPERSONIC-  CLQ
5C                                   CMQ
6C                                   CLADOT
7C                                   CMADOT (NOT FOR TRANSONIC)
8C
9      REAL LAMDA,KWB,KBW,MACH
10      COMMON /OVERLY/ NLOG,NMACH,IM,NALPHA
11      COMMON /FLGTCD/ FLC(95)
12      COMMON /SUPWBB/  SWB(61)
13      COMMON /WINGI/  WINGIN(100)
14      COMMON /IBW/    PBW,BW(380)
15      COMMON /WINGD/  A(195)
16      COMMON /IBODY/  PBODY,BODY(400)
17      COMMON /IWING/  PWING,WING(400)
18      COMMON /WHWB/   FF(182),WB(39)
19      COMMON /FLOLOG/ FLTC,OPTI,BO,WGPL,WGSC,SYNT,HTPL,HTSC,VTPL,VTSC,
20     1                HEAD,PRPOWR,JETPOW,LOASRT,TVTPAN,
21     2                SUPERS,SUBSON,TRANSN,HYPERS,
22     3                SYMFP,ASYFP,TRIMC,TRIM
23      LOGICAL         FLTC,OPTI,BO,WGPL,WGSC,SYNT,HTPL,HTSC,VTPL,VTSC,
24     1                HEAD,PRPOWR,JETPOW,LOASRT,TVTPAN,
25     2                SUPERS,SUBSON,TRANSN,HYPERS,
26     3                SYMFP,ASYFP,TRIMC,TRIM
27      DIMENSION ROUTID(2)
28      DIMENSION WTYPE(4)
29      EQUIVALENCE(ASTRW,A(7)),(LAMDA,A(27))
30      EQUIVALENCE(CLQWB,BW(201)),(CMQWB,BW(221)),(CLADWB,BW(241)),
31     1           (CMADWB,BW(261))
32      DATA WTYPE /4HSTRA,4HDOUB,4HCRAN,4HCURV/
33      DATA ROUTID/4HDNPA,4HWB  /
34      TYPE=WINGIN(15)
35      MACH=FLC(IM+2)
36      IF(SUBSON)GO TO 1000
37      IF(TRANSN)GO TO 1010
38      IF(HYPERS)GO TO 1020
39      BETA=SQRT(MACH**2-1.)
40      KWB=SWB(35)
41      KBW=SWB(11)
42      CLQW=WING(201)
43      CLQB=BODY(201)
44      CMQW=WING(221)
45      CMQB=BODY(221)
46      CLADW=WING(241)
47      CLADB=BODY(241)
48      CMADW=WING(261)
49      CMADB=BODY(261)
50      GO TO 1030
51 1000 KWB=WB(2)
52      KBW=WB(3)
53      BETA=SQRT(1.-MACH**2)
54      CLQW=WING(201)
55      CLQB=BODY(201)
56      CMQW=WING(221)
57      CMQB=BODY(221)
58      CLADW=WING(241)
59      CLADB=BODY(241)
60      CMADW=WING(261)
61      CMADB=BODY(261)
62      GO TO 1030
63 1010 IF(TYPE.NE.WTYPE(1))GO TO 1040
64      KWB=SWB(35)
65      KBW=SWB(11)
66      IF(MACH.GT.1.)BETA=SQRT(MACH**2-1.)
67      IF(MACH.LT.1.)BETA=SQRT(1.-MACH**2)
68      IF(MACH.EQ.1.)BETA=0.
69      CLQW=WING(201)
70      CLQB=BODY(201)
71      CMQW=WING(221)
72      CMQB=BODY(221)
73      CLADW=WING(241)
74      CLADB=BODY(241)
75      CMADW=1000.
76      CMADB=BODY(261)
77      GO TO 1030
78 1020 KWB=SWB(35)
79      KBW=SWB(11)
80      BETA=SQRT(MACH**2-1.)
81      CLQW=WING(201)
82      CLQB=BODY(201)
83      CMQW=WING(221)
84      CMQB=BODY(221)
85      CLADW=WING(241)
86      CLADB=0.
87      CMADW=WING(261)
88      CMADB=0.
89 1030 CONTINUE
90C
91C    ---- WING-BODY PITCHING DERIVATIVES,CLQ,CMQ ----
92C
93      CLQWB=(KWB+KBW)*CLQW+CLQB
94      CMQWB=(KWB+KBW)*CMQW+CMQB
95C
96C    ---- WING-BODY ACCELERATION DERIVATIVES,CLAD,CMAD ----
97C
98      BASTRW=BETA*ASTRW
99      IF(.NOT.SUPERS .AND. BASTRW.LT.0.)RETURN
100      IF(.NOT.SUPERS .AND. BASTRW.GT.4.)RETURN
101      IF(.NOT.SUPERS .AND. LAMDA.NE.0.)RETURN
102      CLADWB=(KWB+KBW)*CLADW+CLADB
103      IF(CMADW.EQ.1000.)RETURN
104      CMADWB=(KWB+KBW)*CMADW+CMADB
105 1040 CONTINUE
106      RETURN
107      END
108