1      SUBROUTINE BODYJM
2C
3C***  COMPUTE BODY AERODYNAMICS USING JORGENSEN'S METHOD
4C
5      COMMON /IBODY/  PBODY,  BODY(400)
6      COMMON /BODYI/  XNX, X(20), S(20), P(20), R(20), ZU(20),
7     1                ZL(20), BNOSE, BTAIL, BLN, BLA, DS,
8     2                ITYPE,METHOD,ELLIP
9      COMMON /FLGTCD/ FLC(160)
10      COMMON /OPTION/ SREF, CBARR, ROUGFC, BLREF
11      COMMON /SYNTSS/ XCG, XW, ZW, ALIW, ZCG, XH, ZH, ALIH, XV,
12     1                VERTUP, HINAX, XVF, SCALE, ZV, ZVF, YV, YF,
13     2                PHIV, PHIF
14      LOGICAL VERTUP
15      COMMON /BDATA/  BD(762)
16      COMMON /CONSNT/ PI,DEG,UNUSED,RAD,KAND
17      COMMON /OVERLY/ NLOG,NMACH,II,NALPHA,IG,NF,LF,K
18C
19      DIMENSION CD(20), CL(20), CM(20), CN(20), CA(20), CDC(20)
20      DIMENSION RX(20)
21      DIMENSION REQ(20),CNVIS(20),CNPOT(20),CMVIS(20),CMPOT(20)
22      EQUIVALENCE (CD(1),BODY(1 )), (CL(1),BODY(21)), (CM(1),BODY(41))
23      EQUIVALENCE (CN(1),BODY(61)), (CA(1),BODY(81)), (CDC(1),BD(135))
24      EQUIVALENCE (SB,BD(57)), (SP,BD(275)), (ETA,BD(76)), (LB,BD(1))
25      EQUIVALENCE (CD0,BD(61))
26      EQUIVALENCE (VB,BD(34)),(XC,BD(35))
27      EQUIVALENCE (REQ(1),BD(536)),(CNPOT(1),BD(556)),
28     1 (CNVIS(1),BD(576)),(CMPOT(1),BD(596)),(CMVIS(1),BD(616))
29C
30      REAL LB, METHOD, ITYPE
31C
32C***  CALCULATE VB AND XC
33C
34      NX = XNX+0.5
35      DO 1000 I=1,NX
36         REQ(I)=SQRT(S(I)/PI)
37         RX(I)=REQ(I)*X(I)
38 1000 CONTINUE
39      CALL TRAPZ(REQ,NX,X,VB,-1)
40      CALL TRAPZ(RX ,NX,X,XC, 1)
41      CALL TRAPZ(REQ,NX,X,SP, 1)
42      SP = 2.0*SP
43      XC = 2.0*XC/SP
44C
45C***  CALCULATE CN, CM, CA, CL, AND CD
46C
47      A1 = (VB-SB*(LB-XCG))/(SREF*CBARR)
48      A2 = (SP*(XCG-XC))/(SREF*CBARR)
49      A3 = SB
50      IF(ELLIP .LE. UNUSED) ELLIP = 1.0
51      IF(ELLIP .EQ. 1.0) A1 = BODY(121)*RAD/2.0
52      IF(ELLIP .EQ. 1.0) A3 = BODY(101)*SREF*RAD/2.0
53      DO 1010 I=1,NALPHA
54        ALP = FLC(I+22)/RAD
55        SA  = SIN(ALP)
56        CS  = COS(ALP)
57        FA  = SIN(2.0*ALP)*COS(ALP/2.0)
58        IF(ELLIP.LT.1.)AOB=1./ELLIP
59        IF(ELLIP.GE.1.)AOB=ELLIP
60        IF(ELLIP.GE.1.)CNOCNS=1./AOB
61        IF(ELLIP.LT.1.)CNOCNS=AOB
62        CNOCNN=1.0
63        IF(ELLIP.LT.1.)CNOCNN=1.5*SQRT(AOB)*(-1./AOB**2/(1.-1./AOB**2)
64     1     **1.5*ALOG(AOB*(1.+SQRT(1.-1./AOB**2)))+1./(1.-1./AOB**2))
65        IF(ELLIP.GT.1.)CNOCNN=1.5*SQRT(1./AOB)*(AOB**2/(AOB**2-1.)**1.5
66     1                 *ATAN(SQRT(AOB**2-1.))-1./(AOB**2-1.))
67        CN(I) = (A3*FA*CNOCNS+SP*ETA*CDC(I)*SA*ABS(SA)*CNOCNN)/SREF
68        CM(I) = A1*FA*CNOCNS+A2*ETA*CDC(I)*SA*ABS(SA)*CNOCNN
69        CA(I) = CD0*CS**2
70        CL(I) = CN(I)*CS-CA(I)*SA
71        CD(I) = CA(I)*CS+CN(I)*SA
72        CNPOT(I)=A3*FA*CNOCNS/SREF
73        CNVIS(I)=SP*ETA*CDC(I)*SA*ABS(SA)*CNOCNN/SREF
74        CMPOT(I)=A1*FA*CNOCNS
75        CMVIS(I)=A2*ETA*CDC(I)*SA*ABS(SA)*CNOCNN
76 1010 CONTINUE
77      RETURN
78      END
79