1      SUBROUTINE SLOPE(MACH,CLALPA,RENN,XACM)
2C
3C***  CALCULATES AIRFOIL SECTION CLA,CM0 AND XAC
4C
5      COMMON /IBH/    PBH, THN(60),CAM(60),A0,XC,MCC,CLCC
6      COMMON /IBV/    PBV,ZTNU(32),ZCNU(32),ST1NU(32),ST2NU(32),
7     1                ST3NU(32),ST4NU(32),ST5NU(32),X(32),THNU(32),
8     2                THMU(32)
9      COMMON /IBWH/   PBWH,AI,ALO,CLI,ALPMAX,CMCO4
10      COMMON /IBWHV/  PBWHV,RHO
11      COMMON /CONSNT/ PI,DEG,UNUSED,RAD
12      COMMON /IPOWER/ PP,VXOVU(32),VXOVL(32),CPUM(32),CPLM(32),
13     1                BO(32),CPI(32)
14      DIMENSION CL(2),ALPHA(2),CM(2),XI(32),STNU(32)
15C
16C  WEBER PRESSURE DISTRIBUTION AND CL-ALPHA
17C  METHOD INCLUDES COMPRESSIBILITY
18C
19      REAL LX,MACH,MCC
20      XN=32.
21      N=XN
22      NM1=N-1
23      CLALPA=UNUSED
24      IF(MACH.GE.1.) GO TO 1070
25      ALPHA(1)=ALO
26      ALPHA(2)=ALO+1.
27      BETA=SQRT(1.-MACH**2)
28      A0=SQRT(2.*RHO)
29      TMACH=0.
30      IF(MACH.NE.0.) TMACH=1./(.7*MACH**2)
31 1000 DO 1050 I=1,2
32         COSA=COS(ALPHA(I)*DEG)
33         SINA=SIN(ALPHA(I)*DEG)
34         DO 1020 L=1,NM1
35            CPI(L)=1.-(1.+ST1NU(L))**2/(1.+ST2NU(L)**2)
36            BO(L)=1.-MACH**2*(1.-MACH*CPI(L))
37            IF(BO(L) .LT. 0.) GO TO 1080
38            BO(L)=SQRT(BO(L))
39            VXOVU(L)=(COSA*(1.+ST1NU(L)/BO(L)+ST4NU(L)/BETA)+SINA/BETA*
40     1               (1.+ST3NU(L)/BO(L))*SQRT((1.-X(L))/X(L)))/SQRT(1.
41     2               +((ST2NU(L)+ST5NU(L))/BO(L))**2)
42            VXOVL(L)=(COSA*(1.+ST1NU(L)/BO(L)-ST4NU(L)/BETA)-SINA/BETA*
43     1               (1.+ST3NU(L)/BO(L))*SQRT((1.-X(L))/X(L)))/SQRT(1.
44     2               +((ST2NU(L)-ST5NU(L))/BO(L))**2)
45            IF(MACH .EQ. 0.) GO TO 1010
46            CPUVD=1.+.2*MACH**2*(1.-VXOVU(L)**2)
47            IF(CPUVD .LT. 0.) GO TO 1080
48            CPLVD=1.+.2*MACH**2*(1.-VXOVL(L)**2)
49            IF(CPLVD .LT. 0.) GO TO 1080
50            CPUM(L)=TMACH*((CPUVD)**(3.5)-1.)
51            CPLM(L)=TMACH*((CPLVD)**(3.5)-1.)
52            GO TO 1020
53 1010       CPUM(L)=1.-(VXOVU(L))**2
54            CPLM(L)=1.-(VXOVL(L))**2
55 1020    CONTINUE
56C
57C  PRESSURE COEFFICIENT AT THE LEADING EDGE
58C
59         IF(A0.NE.0.)VXOVU(N)=SINA*((1.+ST3NU(N))/(.5*A0))
60         IF(A0.EQ.0.)VXOVU(N)=0.
61         VXOVL(N)=VXOVU(N)
62         CPUVDN=1.+.2*MACH**2*(1.-(VXOVU(N)/BETA)**2)
63         IF(CPUVDN .LT. 0.) GO TO 1080
64         CPUM(N)=TMACH*((CPUVDN)**(3.5)-1.)
65         IF(TMACH .EQ. 0.) CPUM(N)=1.-(VXOVU(N))**2
66         CPLM(N)=CPUM(N)
67C
68C   INTEGRATE THE CP CURVE AT THIS ALPHA
69C
70         SUMCL=0.0
71         DO 1030 L=1,NM1
72            LX=-(CPUM(L)-CPLM(L))
73            SINTH=SIN(THNU(L))/2.
74            SUMCL=SUMCL+LX*SINTH
75 1030    CONTINUE
76         CL(I)=SUMCL*PI/(COSA*XN)
77C
78C  PITCHING MOMENT COEFFICIENT
79C
80         SUMCM=0.0
81         DO 1040 L=1,NM1
82            LX=CPUM(L)-CPLM(L)
83           DCM=LX*(X(L)-.25)*SIN(THNU(L))/2.
84 1040    SUMCM=SUMCM+DCM
85         CM(I)=SUMCM*PI/XN
86 1050 CONTINUE
87      IF(ABS(CL(1)) .LE. .001) GO TO 1060
88      CLALPA=CL(2)-CL(1)
89      ALO=ALO-CL(1)/CLALPA
90      ALPHA(1)=ALO
91      ALPHA(2)=ALO+1.
92      GO TO 1000
93 1060 CONTINUE
94C
95C  GET CORRECTION FACTOR FOR VISCOUS AFFECTS
96C
97      REN=1.E6
98      IF (RENN.GE.10..AND.MCC.NE.0..AND.MACH.NE.0.) REN=RENN
99      IF(REN .LT. 2.71828E5)WRITE(6,1170)
100      IF(REN .LT. 2.71828E5)REN=2.7182E5
101      PHITE=((ZTNU(6)+ZTNU(7))/2.-ZTNU(2))/.089272624
102      EXPN=-1.+5.*PHITE/2.
103      CON=1.-(ALOG(REN /1.E5))**EXPN*(.232+1.785*PHITE-2.950*PHITE**2)
104      IF(CON .LT. .6896) CON=.6896
105C
106C  GET LIFT CURVE SLOPE FROM THESE TWO ANGLES OF ATTACK
107C
108      CLALPA=(CL(2)-CL(1))*CON*1.05
109C
110C  GET PITCHING MOMENT SLOPE
111C
112      CMALPA=CM(2)-CM(1)
113      IF(MACH.EQ.0.0) CMCO4=CM(1)
114C
115C  NOW THE AERODYNAMIC CENTER
116C
117      XACM=0.25-CMALPA/CLALPA
118 1070 CONTINUE
119      GO TO 1090
120 1080 CONTINUE
121C
122C  ANALYSIS FAILING -- PRINT INFORMATIVE DIAGNOSTIC
123C
124      WRITE(6,1160)
125 1090 CONTINUE
126      IF(MACH .NE. 0.) GO TO 1150
127C
128C  CALCULATE THE CREST CRITICAL CONDITIONS FOR THIS AIRFOIL
129C
130      CLM=CLALPA
131      J=N-1
132      DO 1100 I=1,NM1
133         XI(I)=X(J)
134         STNU(I)=ST2NU(J)+ST5NU(J)
135 1100 J=J-1
136      STC=SINA/COSA
137      DO 1110 I=1,NM1
138         II=I
139         IF(STC .GT. STNU(I)) GO TO 1120
140 1110 CONTINUE
141 1120 XC=(STC-STNU(II))/(STNU(II-1)-STNU(II))*(XI(II-1)-XI(II))+XI(II)
142      DO 1130 I=1,NM1
143         II=I
144         IF(XC .GT. X(I)) GO TO 1140
145 1130 CONTINUE
146 1140 VOVU=(XC-X(II))/(X(II-1)-X(II))*(VXOVU(II-1)-VXOVU(II))+VXOVU(II)
147      CPCC=1.-VOVU**2
148      MCC=1.023-.9507*CPCC-.4140*CPCC**2-.1506*CPCC**3-.0212*CPCC**4
149      MCC=1./MCC
150      BCC=SQRT(1.-MCC**2)
151      CLCC=(ABS(CLM)/(BCC-(MCC**2/(1.+BCC))*ABS(CLM)/2.))*CON
152 1150 CONTINUE
153 1160 FORMAT(56H ********* COMPUTATIONS IN SUBROUTINE SLOPE HAVE FAILED.
154     1,38H ANALYSIS FOR THIS AIRFOIL IMPOSSIBLE.)
155 1170 FORMAT(56H0**** REYNOLDS NUMBER TOO LOW FOR THE AIRFOIL SECTION MO
156     1,61HDULE, SECTION CHARACTERISTICS BASED ON A VALUE OF 2.718E5 ***)
157      RETURN
158      END
159