1      SUBROUTINE CORDSP
2C
3C     CALCULATE SUPERSONIC AIRFOIL COORDINATES FROM NACA CARD
4C
5      COMMON /IWING/  PW,X(60)
6      COMMON /IHT/    PHT,XU(60),XL(60),YUU(60),YLL(60)
7      COMMON /IVT/    PVT,YU(60),YL(60)
8      COMMON /IBW/    PBW,L,I,J,K,II,JJ,KK,III,JJJ,KKK,LLL
9      COMMON /WINGI/  WGIN(100)
10      COMMON /HTI/    HTIN(154)
11      COMMON /VTI/    VTIN(154),TVTIN(8),VFIN(154)
12      COMMON /IBWHV/  PBWHV,RHO,TOC
13      COMMON /IBODY/  PB,NACA(80)
14      COMMON /CONSNT/ PI,DEG,UNUSED,RAD
15      REAL KSHARP
16      INTEGER A4HH,A4HV,A4HF,A4HSTR
17      DATA A4HH,A4HV,A4HF,A4HSTR/4HH   ,4HV   ,4HF   ,4HSTRA/
18C
19      XT=(100.*J+10.*K+II)/1000.
20      TOC=(100.*JJ+10.*KK+III)/1000.
21      XF=(100.*JJJ+10.*KKK+LLL)/1000.
22      RHO=0.
23      GO TO (1020,1000,1050), I
24 1000 CONTINUE
25C
26C     HERE FOR BICONVEX (CIRCULAR ARC)
27C
28      XT=0.50
29      KSHARP=16./3.
30      RC=(TOC**2+1.)/(4.*TOC)
31      DO 1010 IL=1,60
32         XU(IL)=X(IL)
33         XL(IL)=X(IL)
34         YU(IL)=TOC/2.-RC+SQRT(RC**2-(X(IL)-.5)**2)
35         YL(IL)=-YU(IL)
36 1010 CONTINUE
37      GO TO 1090
38 1020 CONTINUE
39C
40C     HERE FOR DOUBLE WEDGE
41C
42      KSHARP=(1./XT)/(1.-XT)
43      DO 1040 IL=1,60
44         XU(IL)=X(IL)
45         XL(IL)=X(IL)
46         IF(X(IL).GT.XT)GO TO 1030
47         YU(IL)=X(IL)*TOC/(2.*XT)
48         YL(IL)=-YU(IL)
49         GO TO 1040
50 1030    YU(IL)=TOC/2.-(X(IL)-XT)*TOC/(2.*(1.-XT))
51         YL(IL)=-YU(IL)
52 1040 CONTINUE
53      GO TO 1090
54 1050 CONTINUE
55C
56C     HERE FOR HEXAGONAL
57C
58      KSHARP=(1.-XF)/(XT*(1.-XT-XF))
59      DO 1080 IL=1,60
60         XU(IL)=X(IL)
61         XL(IL)=X(IL)
62         IF(X(IL).GE.(XT+XF))GO TO 1070
63         IF(X(IL).GE.(XT   ))GO TO 1060
64         YU(IL)=X(IL)*TOC/(2.*XT)
65         YL(IL)=-YU(IL)
66         GO TO 1080
67 1060    YU(IL)=TOC/2.
68         YL(IL)=-YU(IL)
69         GO TO 1080
70 1070    YU(IL)=TOC/2.-(X(IL)-XT-XF)*TOC/(2.*(1.-XT-XF))
71         YL(IL)=-YU(IL)
72 1080 CONTINUE
73 1090 CONTINUE
74C
75C     SET SOME OF THE CALCULATED VALUES IN THE INPUT ARRAYS
76C
77      IF(NACA(6).EQ.A4HH)GO TO 1100
78      IF(NACA(6).EQ.A4HV)GO TO 1110
79      IF(NACA(6).EQ.A4HF)GO TO 1120
80C
81C     HERE FOR WING
82C
83      IF(WGIN(16).EQ.UNUSED)WGIN(16)=TOC
84      IF(WGIN(18).EQ.UNUSED)WGIN(18)=XT
85      IF(WGIN(70).EQ.UNUSED)WGIN(70)=TOC
86      IF(WGIN(71).EQ.UNUSED)WGIN(71)=KSHARP
87      IF(WGIN(62).EQ.UNUSED)WGIN(62)=0.
88      IF(WGIN(15).NE.A4HSTR.AND.WGIN(63).EQ.UNUSED)WGIN(63)=0.0
89      GO TO 1130
90 1100 CONTINUE
91C
92C     HERE FOR HORIZONTAL TAIL
93C
94      IF(HTIN(16).EQ.UNUSED)HTIN(16)=TOC
95      IF(HTIN(18).EQ.UNUSED)HTIN(18)=XT
96      IF(HTIN(70).EQ.UNUSED)HTIN(70)=TOC
97      IF(HTIN(71).EQ.UNUSED)HTIN(71)=KSHARP
98      IF(HTIN(62).EQ.UNUSED)HTIN(62)=0.
99      IF(HTIN(15).NE.A4HSTR.AND.HTIN(63).EQ.UNUSED)HTIN(63)=0.0
100      GO TO 1130
101 1110 CONTINUE
102C
103C     HERE FOR VERTICAL TAIL
104C
105      IF(VTIN(16).EQ.UNUSED)VTIN(16)=TOC
106      IF(VTIN(18).EQ.UNUSED)VTIN(18)=XT
107      IF(VTIN(70).EQ.UNUSED)VTIN(70)=TOC
108      IF(VTIN(71).EQ.UNUSED)VTIN(71)=KSHARP
109      IF(VTIN(62).EQ.UNUSED)VTIN(62)=0.
110      IF(VTIN(15).NE.A4HSTR.AND.VTIN(63).EQ.UNUSED)VTIN(63)=0.0
111      GO TO 1130
112 1120 CONTINUE
113C
114C     HERE FOR VENTRAL FIN
115C
116      IF(VFIN(16).EQ.UNUSED)VFIN(16)=TOC
117      IF(VFIN(18).EQ.UNUSED)VFIN(18)=XT
118      IF(VFIN(70).EQ.UNUSED)VFIN(70)=TOC
119      IF(VFIN(71).EQ.UNUSED)VFIN(71)=KSHARP
120      IF(VFIN(62).EQ.UNUSED)VFIN(62)=0.
121      IF(VFIN(15).NE.A4HSTR.AND.VFIN(63).EQ.UNUSED)VFIN(63)=0.0
122 1130 CONTINUE
123      DO 1140 IL=1,60
124         YUU(IL)=YU(IL)
125         YLL(IL)=YL(IL)
126 1140 CONTINUE
127C
128C     REST OF THE SUPERSONIC OUTPUTS ARE SET IN SECO
129C
130      RETURN
131      END
132