One-Dimensional Compressible Flow Analysis: Isentropic and Normal Shock
One-Dimensional Compressible Flow Analysis: Isentropic and Normal Shock
One-Dimensional Compressible Flow Analysis: Isentropic and Normal Shock
Spring 1983
Recommended Citation
Wong, Su-Bo, "One-dimensional compressible flow analysis : isentropic and normal shock" (1983). Theses. 1478.
https://digitalcommons.njit.edu/theses/1478
This Thesis is brought to you for free and open access by the Theses and Dissertations at Digital Commons @ NJIT. It has been accepted for inclusion
in Theses by an authorized administrator of Digital Commons @ NJIT. For more information, please contact digitalcommons@njit.edu.
Copyright Warning & Restrictions
Printing note: If you do not wish to print this page, then select
“Pages from: first page # to: last page #” on the print dialog screen
The Van Houten library has removed some of the
personal information and all signatures from the
approval page and biographical sketches of theses
and dissertations in order to protect the identity of
NJIT graduates and faculty.
ABSTRACT
1983.
by
Su-Bo Wong
Engineering
Signature of other members
of the thesis committee.
VITA
Chapter Page
1. INTRODUCTION 1
2. ANALYSIS 6
3. METHOD OF SOLUTIONS 22
3.1 Introduction 22
3.2 Techniques of Programming the Program 23
3.3.1 Program (1) 28
3.3.2 Program (2) 29
3.3.3 Program (3). 29
4. CONCLUSION 33
5. RECOMMENDATIONS 35
APPENDIX A Fortran IV Computer Program 38
APPENDIX B Sample of Example 60
REFERENCES 64
NOTATION
a Speed of sound
A Cross-sectional area of duct
h Specific enthalpy
K Specific gas ratio
M Mach number
Ṁ Mass flow rate
MF Mass flux = Ṁ/A
P Static pressure
R Specific heat constant
s Specific entropy
T Static temperature
V Velocity of the fluid flow
v Specific volume
X Position coordinate
ρ Density
max Maximum
○ Stagnation condition
*ConditonatM=1
1. INTRODUCTION
become pronounced.
2. ANALYSIS
ρVA=consta
(B) Newton's second law of motion
1/ρdp+V=0
(C) The first law of thermodynamics
h + V 2 /2 = conatant
or in terms of T, we have
yields
yields
Squaring both sides of equation (14) and solving for M2
the other hand, the pressure ratio P2/P1 (see equation (18) )
increases continuously with Ml.
those sections.
flow).
fig.2.1. Flow Through a Converging nozzle
15
vary the back pressure, Pb. It was pointed out that for
fig.2.3a
fig.2.3c fig.2.3d
fig.2.3e
It is important to realize that for all back pressures below
termed underexpanded.
fig. 2.3f
fig.2.3g
21
3. METHOD OF SOLUTIONS
3.1 Introduction
"COMBINATION ".
Combination formula :
this situation appears, the output will print " NOT ENOUGH
INFORMATION".
To - 1 T 3 DN - 5 M - 7
Po - 2 P - 4 DNO- 6 V - 8
Solving for M,
M=MF*(1+C2)**PW5/DUMMY
DO 111 I=1,30
MP=MF*(1+C2*M*M)**PW5/DUMMY
EP=ABS(1-MP/M)
IF (EP.LT.0.00001) GO TO 1000
M=MP
111 CONTINUE
1000
28
in ascending order.
4. Input the values of the known properties.
29
3.3.2 Program ( 2 )
1. Input K and R
2. Input To, Po and Pb ( Back pressure )
3.3.3 Program ( 3 )
1.Input K and R
2.Input To, Po and Pb ( Back pressure )
(g) Pb = Pe4
(h) Regime IV ( Pe4 > Pb )
assume the normal shock wave occurs half way between the
CONCLUSION
5. RECOMMENDATIONS
APPENDIX A
C--------------------
C--------------------
C---------------------------------------------------------
C MAIN PROGRAM
FORMAT(//,3X,'ENTER MF')
IF (JJ.EQ.1) READ ,MF
C1=2/(K-1)
C2=(K-1)/2
C3=(K-1)/(K+1)
C4=2/(K+1)
PW1=K-1
PW2=1/(K-1)
PW3=K/(K-1)
PW4=(K-1)/K
PW5=(K+1)/(2*(K-1))
KNOR=0
IF ((J1.EQ.2).OR.(J1.EQ.3)) GO TO 2001
WRITE(2,3)
3 FORMAT(//,1X,'SELECT THE CONDITIONS :',//,
$3X,'ENTERING THE CODE OF THE GIVEN CONDITIONS IN ASCENDI
NG ORDER'CODES
$11,12X,'### ###',//,
$11X,'TO - 1',6X,'DN - 5 ' 5, //,
$11X,'PO - 2",6X,'DNO- 6',//,
$11)(,'T 3',6X,' M - 7',//,
$11X,'P - 4',6X,' V - 8',//)
READ ,N
WRITE(2,4)N
4 FORMAT(//,1X,'THE CONDITIONS GIVEN ARE CODES ##',1X,I4,1
X,'##',//)
KK=1
IF ((JJ#E0.1).AND.,(N.GT.100)) GO TO 9996
IF ((JJ,EQ.2).AND.(N.GT.100)) GO TO 9998
IF ((JJ.EQ.2).AND.(N.LT.100)) GO TO 9996
C PROGRAM FOR GIVEN MF & TWO PROPERTIES
IF (N.EQ.12) GO TO 100
IF (N.EQ.14) GO TO 150
IF (N.EQ.23) GO TO 200
IF (N.EQ.34) GO TO 250
IF (N.EQ.35) GO TO 300
IF (N.EQ.45) GO TO 350
IF (19..E0.38) GO TO 400
IF (N.EQ.48) GO TO 450
IF (N.EQ.13) GO TO 500
IF(N.EQ15)GOT20
IF (N.EQ.18) GO TO 540
IF (N.EQ.78) GO TO 560
IF (N.EQ.57) 60 TO 580
IF (N.EQ,17) GO TO 600
IF (N.EQ.37) GO TO 620
IF (N.EQ.28) GO TO 640
IF (N.EQ.25) GO TO 660
IF (N.EQ.24) GO TO 680
IF (N.EQ.27) GO TO 700
40
IF (N.EQ.47) GO TO 720
IF (N.EQ.67) GO TO 740
IF (N.EQ.56) GO TO 760
IF (N.EQ.68) GO TO 780
IF (N.EQ.16) GO TO 782
IF (N.EQ.26) GO TO 785
IF (N.EQ.36) GO TO 787
IF (N.EQ.46) GO TO 1111
IF (N.EQ.58) 00 TO 1111
100 CONTINUE
WRITE(2,8)
8 FORMAT(1X,'INPUT TO,PO')
READ, TO,PO
CALL ISEN7
GO TO 2222
150 WRITE(2,15)
15 FORMAT(IX,'INPUT TO,P')
READ ,TO,P
M=MF/SQRT(1+C2)/(P*SQRT(K/R/TO))
DO 155 I=1,30
MP=MF/SQRT(1+C2*M*M)/(P*SQRT(K/R/TO))
EP=ABS(1-MP/M)
IF (EP.LT00.00001) GO TO 1500
M=MP
155 CONTINUE
1500 T=TO/(1+C2*M*M)
CALL ISENT1
PO=P*(1+C2*M*M)**PW3
GOTO 2222
200 WRITE(2,20)
20 FORMAT(1X,'INPUT PO,T')
READ , PO,T
M=MF*(1+C2)**PW3/(PO*SQRT(K/R/T))
DO 205 I=1,30
MP=MF*(1+C2*M*M)**PW3/(PO*SORT(K/R/T))
EP=ABS(1-MP/M)
IF(EP.LT.0000001) GO TO 2000
M=MP
205 CONTINUE
2000 TO=T*(1+C2*M*M)
CALL ISENT1
P=PO/(1+C2*M*M)**PW3
GO TO 2222
250 WRITE(2,25)
25 FORMAT(1X,'INPUT T,P')
READ. ,T,P
M=MF/(P*SQRT(K/R/T))
CALL ISENT1
*M)PW3 C2 PO=*(1+
TO=T*(1+C2*M*M)
GO TO 2222
300 CONTINUE
WRITE(2,30)
30 FORMAT(1X,'INPUT T,DN')
READ,TN
P=DN*R*T
36 M=MF/(P*SQRT(K/R/T))
V=M*SQRT(K*R*T)
DNO=DN*(1+C2*M*M)**PW2
PO=P*(1+C2*M*M)**PW3
TO=T*(1+C2*M*M)
GO TO 2222
350 WRITE(2,35)
35 FORMAT(1X,'INPUT P,DN')
READ ,P,DN
T=P/(DN*R)
GO TO 36
400 WRITE(2,40)
40 FORMAT(1X,'INPUT T,V')
READ TRY
DN=MF/V
P=DN*R*T
46 M=V/(K*R*T)**0.5
PO=P*(1+C2*M*M)**PW3
TO=T*(1+C2*M*M)
DNO=DN*(1+C2*M*M)**PW2
GO TO 2222
450 WRITE(2,45)
45 FORMAT(1X,'INPUT P,V')
READ ,P,V
DN=MF/V
T=P/(DN*R)
GO TO 46
500 WRITE(2,50)
50 FORMAT(1X,'INPUT TO,T')
READ 'TORT
TOT=TO/T
M=((2*(TOT-1))/(K-1))**0.5
V=M*(K*R*T)**0.5
DN=MF/V
CALL ISENT2
GO TO 2222
520 WRITE(2,52)
52 FORMAT(1X,'INPUT TO,DN')
READ,TON
V=MF/DN
55 M=SQRT(V*V/((TO*K*R)-(V*V*C2)))
T=TO/(1+C2*M*M)
CALL ISENT2
GO TO 2222
42
540 WRITE(2,54)
54 FORMAT(1X,'INPUT TO,V')
READ ,TO,V
DN=MF/V
CO TO 55
560 WRITE(2,56)
56 FORMAT(1X,'INPUT M,V')
REAL' ,M,V
DN=MF/V
59 T=V*V/(M*M*K*R)
TO=T*(1+C2*M*M)
CALL ISENT2
GO TO 2222
580 WRITE(2,58)
58 FORMAT(1X,'INPUT DN,M')
READ ,DN,M
V=MF/DN
GO TO 59
600 WRITE(2,60)
6() FORMAT(lX,'INPUT TO,M")
READ ,TO,M
CALL ISEN8
GO TO 2222
620 WRITE(2,62)
62 FORMAT(lX,'INPUT T,M')
READ ,T,M
790 TO=T*(1+C2*M*M)
CALL ISEN8
GO TO 2222
640 WRITE(2,641)
641 FORMAT(1X,'INPUT PO,V')
REAL' ,PO,V
DN=MF/V
662 M=V*(1+C2)**(0,5*PW3)*SQRT(DN/PO/K)
DO 644 I=1,30
MP=V*(1+C2*M*M)**(0.5*PW3)*SQRT(DN/PO/K)
EP=ABS(1-MP/M)
IF (EP.LT.0.00001) GO TO 645
M=MP
644 CONTINUE
645 P=P0/(1+C2*M*M)**PW3
T=P/(DN*R)
TO=T*(1+C2*M*M)
DNO=DN*(1+C2*M*M)**PW2
GO TO 2222
660 WRITE(2,661)
661 FORMAT(lX,'INPUT PO,DN')
READ ,PO,DN
V=MF/DN
GO TO 662
680 WRITE(2,681)
681 FORMAT(1X,'INPUT POW')
READ ,PO,P
M=SORT(C1C(PO/P)**PW4-1))
688 T=M*M*P*P*K/(MF*MF*R)
V=M*SQRT(K*R*T)
TO=T*(1+C2*M*M)
DN=MF/V
DNO=DN*(1+C2*M*M)**PW2
GO TO 2222
700 WRITE(2,701)
701 FORMAT(1X,INPUT PO,M')
READ ,PO,M
P=PQ/(1+C2*M*M)**PW3
GO TO 688
720 WRITE(2,721)
721 FORMAT(1X,'INPUT
READ ,P,M
PO=P*(1+C2*M*M)**PW3
GO TO 688
740 WRITE(2,741)
741 FORMAT(1X,'INPUT DNO,M')
READ f DN=DNO/(1+C2*M*M)**PW2
DNO,M
766 V=MF/DN
T=V*V/(M*M*K*R)
TO=T*(1+C2*M*M)
P=DN*R*T
PO=P*(1+C2*M*M)**PW3
GO TO 2222
760 WRITE(2,761)
761 FORMAT(1X,'INPUT DN,DNO')
READ ,DN,DNO
767 DO=(DNO/DN)**(K-1)-1
M=SQRT(2*DU/(K-1))
GO TO 766
780 WRITE(2,781)
781 FORMAT(1X,'INPUT DNO,V ' )
READ ,DNO,V
DN=MF/V
GO TO 767
782 WRITE(2,783)
783 FORMAT(1X,'INPUT TO,DNO')
READ ,TO,DNO
PO=DNO*R*TO
CALL ISEN7
GO TO 2222
785 WRITE(2,786)
786 FORMAT(1X,'INPUT PO,DNO')
READ ,POyDNO
44
TO=PO/R/DNO
CALL ISEN7
GO TO 2222
787 WRITE(2,788)
788 FORMAT(1X,'INPUT T,DNO ' )
READ ,T,DNO
M=MF*(1+C2)**PW2/(DNO*SQRT(K*R*T))
DO 789 I=1,30
MP=MF*(1+C2*M*M)**PW2/(DNO*SQRT(K*R*T))
EP=ABS(1-MP/M)
IF (EP.LT.0.00001) GO TO 790
M=MP
789 CONTINUE
C PROGRAM FOR GIVEN THREE PROPERTIES WITHOUT MASS FLUX
C----------------------------------------------------
9998 CONTINUE
IF(N.EQ123)GOT80
IF (N.EQ.134) GO TO 802
IF (N.EQ.135) GO TO 804
IF (N.EQ.136) GO TO 806
IF (N.EQ.137) GO TO 1111
IF (N.EQ.138) GO TO 1111
IF (N.EQ.246) GO TO 808
IF (N.EQ.248) GO TO 810
IF (N.EQ.247) GO TO 1111
IF (N.EQ.234) GO TO 812
IF (N.EQ.245) GO TO 814
IF (N.EQ.456) GO TO 816
IF (N.EQ.256) GO TO 818
IF (N.EQ.356) GO TO 820
IF (N.EQ.156) GO TO 822
IF (N.EQ.568) GO TO 824
IF (N.EQ.567) GO TO 1111
IF (N.EQ.125) GO TO 826
IF (N.EQ.126) GO TO 1111
IF (N.EQ.128) GO TO 828
IF (N.EQ.127) GO TO 632
IF (N.EQ.124) GO TO 634
IF (N.EQ.345) GO TO 1111
IF (N.EQ.346) GO TO 836
IF (N.EQ.348) GO TO 838
IF .(N.EQ.347) 60 TO 842
IF (N.EQ.146) GO TO 844
IF (N.EQ.168) GO TO 846
IF(N.EQ167)GOT84
IF (N.EQ.145) GO TO 850
IF (N.EQ.148) GO TO 852
IF(N.EQ147)GOT85
IF(N.EQ236)GOT857
45
IF (N.EQ,235) GO TO 860
IF (N.EQ.238) GO TO 863
IF (N.EQ.237) GO TO 866
IF (N.EQ.158) GO TO 868
IF (N.EQ.157) GO TO 871
IF (N.EQ.258) GO TO 873
IF (N.EQ.257) GO TO 878
IF (N.EQ.268) GO TO 880
IF (N.EQ.267) GO TO 882
IF (N.EQ.358) GO TO 885
IF (N.EQ.357) GO TO 887
IF (N.EQ.368) GO TO 889
IF (N.EQ.237) GO TO 892
IF (N.EQ.458) GO TO 894
IF (N.EQ.457) GO TO 896
IF (N.EQ.468) GO TO 898
IF (N.EQ.467) GO TO 903
IF (N.EQ.178) GO TO 1111
IF (N.EQ.378) GO TO 1111
IF (N.EQ.478) GO TO 905
IF (N.EQ.278) GO TO 907
IF (N.EQ.578) GO TO 913
IF (N.EQ.678) GO TO 910
800 WRITE(2,801)
801 FORMAT(1X,'INPUT TO,PO,T')
READ ,TO,PO,T
M=SQRT(C1*(TO/T-1))
P=PO/(1+C2*M*M)**PW3
CALL ISEN1
GO TO 2222
802 WRITE(2,803)
803 FORMAT(1X,'INPUT TO,T,P')
READ ,TO,T,P
PO=P*(1+C2*M*M)**PW3
M=SQRT(C1*(TO/T-1))
CALL ISEN1
GO TO 2222
804 WRITE(2,805)
805 FORMAT(1X,'INPUT TO,T,DN')
READ ,TO,T,DN
920 M=SQRT(C1*(TO/T-1))
P=DN*R*T
PO=P*(1+C2*M*M)**PW3
CALL ISEN1
GO TO 2222
806 WRITE(2,807)
807 FORMAT(1X,'INPUT TO,T,DNO')
READ ,TO,T,DNO
M=SQRT(C1*(TO/T-1))
DN=O/(1+C2*M)PW2
4-6
CALL ISEN2
GO TO 2222
808 WRITE(2,809)
P=DN*R*T
809 FORMAT(1X,'INPUT PO,P,DNO')
READ ,PO,P,DNO
M=SQRT(C1*PO/P)**PW4-1))
DN=DNO/(1+C2*M*M)**PW2
CALL ISEN5
GO TO 2222
810 WRITE(2,811)
811 FORMAT(1X,'INPUT PO,P,V)
READ ,PO,P,V
M=SQRT(C1*((PO/P)**PW4-1))
T=V*V/(M*M*R*R)
TO=T*(1+C2*M*M)
CALL ISEN1
GO TO 2222
812 WRITE(2,813)
813 FORMAT(1X,'INPUT PO,T,P')
READ ,PO,T,P
M=SQRT(C1*((PO/P)**PW4-1))
TO=T*(1+C2*M*M)
CALL ISEN1
GO TO 2222
814 WRITE(2,815)
815 FORMAT(1X,'INPUT PO,P,DN')
READ ,PO,P,DN
M=SQRT(C1*((PO/P)**PW4-1))
972 DNO=DN*(1+C2*M*M)**PW2
CALL ISEN5
G0 TO 2222
816 WRITE(2,817)
817 FORMAT(1X,'INPUT P,DN,DNO')
READ ,P,DN,DNO
M=SQRT(C1*(DNO/DN)**PW1-1))
PO=P*(1+C2*M*M)**PW3
CALL ISEN5
GO TO 2222
818 WRITE(2,819)
819 FORMAT(1X,'INPUT PO,DN,DNO')
M=SQRT(C1*((DNO/D4)**PW1-1))
READ ,PO,DN,DNO
P=PO/(1+C2*M*M)**PW3
CALL ISEN5
GO TO 2222
820 WRITE(2,821)
821 FORMAT(1X,'INPUT T,DN,DNO')
READ ,T,DN,DNO
M=SQRT(C1*((DNO/DN)**PW1-1))
47
TO=T*(1+C2*M*M)
CALL ISEN2
GO TO 2222
822 WRITE(21,823)
823 FORMAT(1X,'INPUT TO,DN,DNO')
READ ,TO,DN,DNO
922 M=SQRT(C1*((DNO/DN)**PW1-1))
T=TO/(1+C2*M*M)
CALL ISEN2
GO TO 2222
824 WRITE(2,825)
825 FORMAT(1X,'INPUT DN,DNO,V')
READ ,DN,DNO,V
M=SQRT(C1*(DNO/DN)**PW1-1))
T=V*V/(M*M*K*R)
TO=T*(1+C2*M*M)
CALL ISEN2
GO TO 2222
826 WRITE(2,827)
827 FORMAT(1X,'INPUT TO,PO,DN')
READ ,TO,POON
DNO=PO/(R*TO)
M=SORT(C1*(DNO/DN)**PW1-1))
CALL ISEN3
GO TO 2222
828 WRITE(2,829)
829 FORMAT(1X,'INPUT TO,PO,V')
READ ,TO,PO,VDNO=P/RT
CALL ISEN1
IF (J1.EQ.2) GO TO 2005
IF (J1.EQ.3) GO TO 2042
GO TO 2222
836 WRITE(2,837)
837 FORMAT(1X,'INPUT T,P,DNO')
READ ,T,P,DNO
DN=P/R/T
M=SQRT(C1((DNO/DN)**PW1-1))
CALL ISEN4
GO TO 2222
838 WRITE(2,839)
839 FORMAT(1X,'INPUT
READ,TPV)
DN=P/R/T
M=V/SQRT(K*R*T)
840 DNO=DN*(1+C2*M*M)**PW2
CALL ISEN4
GO TO 2222
842 WRITE(2,843)
843 FORMAT(1X,'INPUT T,P,M')
READ ,T,P,M
DN=P/R/T
00 TO 840
844 WRITE(2,845)
845 FORMAT(1X,'INPUT TO,P,DNO ' )
READ ,TO,P,DNO
921 PO=DNO*R*TO
M=SQRT(C1*((PO/P)**PW4-1))
T=TO/(1+C2*M*M)
CALL ISEN1
GO TO 2222
846 WRITE(2,847)
847 FORMAT(1X,'INPUT TO,DNO,V')
READ ,TO,DNO,V
PO=DNO*R*TO
GO TO 841
848 WRITE(2,849)
849 FORMAT(1X,'INPUT TO,DNO,M')
READ ,TO,NO,M
923 PO=DNO*R*TO
DN=DNO/(1+C2*M*M)**PW2
CALL ISEN3
GO TO 2222
850 WRITE(2,851)
851 FORMAT(1X,'INPUT TO,P,DN')
READ ,TO,P,DN
T=P/(R*DN)
M=SQRT(C1*((TO/T)-1))
PO=P*(1+C2*M*M)**PW3
CALL ISEN1
GO TO 2222
852 WRITE(2,853)
853 FORMAT(1X,'INPUT TO,P,V')
READ ,TO,P,V
CALL ISENM1
854 PO=P*(1+C2*M*M)**PW3
T=TO/(1+C2*M*M))
CALL ISEN1
GO TO 2222
855 WRITE(2,856)
856 FORMAT(1X,'INPUT TO,P,M')
READ ,TOW,M
2010 CONTINUE
T=TO/(1+C2*M*M)
GO TO 854
857 WRITE(2,858)
858 FORMAT(1X,'INPUT PO,T,DNO')
READ ,PO,T,DNO
TO=PO/R/DNO
M=SQRT(C1*(TO/T-1))
859 P=PO/(1+C2*M*M)**PW3
CALL ISEN1
GO TO 2222
860 WRITE(2,861)
861 FORMAT(1X,'INPUT PO,T,DN')
READ ,PO,T,DN
P=R*DN*T
M=SQRT(C1*((PO/P)**PW4-1))
862 TO=T*(1+C2*M*M)
CALL ISEN1
GO TO 2222
863 WRITE(2,864)
864 FORMAT(1X,'INPUT PO,T,V')
READ ,PO,T,V
M=V/SQRT(K*R*T)
865 TO=T*(1+C2*M*M)
GO TO 859
866 WRITE(2,867)
867 FORMAT(1X,'INPUT PO,T,M ' )
READ ,PO5, 1- 01
GO TO 865
868 WRITE(2,869)
869 FORMAT(1X,'INPUT TO,DN,V')
READ ,TO,DN,V
CALL ISENM1
T=V*V/(K*R*M*M)
870 DNO=DN*(1+C2*M*M)**PW2
CALL ISEN2
GO TO 2222
871 WRITE(2,872)
872 FORMAT(1X'INPUT TO,DN,M')
READ ,TO,DN,M
T=TO/(1+-C2*M*M)
GO. TO 870
873 WRITE(2,874)
50
CALL ISEN2
GO TO 2222
892 WRITE(2,893)
893 FORMAT(1X,'INPUT PO,T,M')
READ ,T,PO,M
GO TO 891
894 WRITE(2,895)
895 FORMAT(1X,'INPUT P,DN,V')
T=P/RDN
READ ,P,DN,V
M=V/SQRT(K*R*T)
DNO=DN*(1+C2*M*M)**PW2
CALL ISEN4
GO TO 2222
896 WRITE(2,897)
897 FORMAT(1X,'INPUT P,DN,M')
READ ,P,DN,M
PO=P*(1+C2*M*M)**PW3
GO TO 972
898 WRITE(2,899)
899 FORMAT(1X,'INPUT P,DNO,V')
READ .,P,DNO,V
M=SQRT(DNO*V*V/(K*P*(1+C2)**PW2))
DO 900 I=1,30
MP=SQRT(DNO*V*V/(K*P*(1+C2*M*M)**PW2))
EP=ABS(1-MP/M)
IF (EP.EQ.0.00001) GO TO 901
M=MP
900 CONTINUE
901 T=V*V/(M*M*R*K)
TO=T*(1+C2*M*M)
902 PO=P*(1+C2*(M*M)**PW3
CALL ISEN1
GO TO 2222
903 WRITE(2,904)
904 FORMAT(1X,'INPUT P,DNO,M')
READ ,P,DNO,M
PO=P*(1+C2*M*M)**PW3
GO TO 884
905 WRITE(2,906)
906 FORMAT(1X,'INPUT P,M,V')
READ ,P,M,V
T=V*V/(M*M*R*K)
TO=T*(1+C2*M*M)
GO TO 854
907 WRITE(2,908)
908 FORMAT(1X,'INPUT PO,M,V')
READ ,PO,MPV
T=V*W/(M*M*R*K)
TO=*(1+C2M)
52
P=PO/(1+C2*M*M)**PW3
CALL ISEN1
GO TO 2222
913 WRITE(2,909)
909 FORMAT(1X,'INPUT DN,M,V')
READ ,DN,M,V
T=V*V/(M*M*R*K)
TO=T*(1+C2*M*M)
GO TO 870
910 WRITE(2,911)
911 FORMAT(1X,'INPUT DNO,M,V')
READ ,DNO,M,V
T=V*V/(M*M*R*K)
GO TO 891
C-----------------------------------
C PROGRAM FOR CONVERGING NOZZLE AND
CONVERGING-DIVERGING NOZZLE
2001 KK=0
WRITE (2,2003)
2003 FORMAT(1X,'INPUT TO,PO,PB(BACK PRESSURE)')
READ ,TO,PO,PB
IF (PO.EQ.PB) WRITE (2,2002)
2002 FORMAT(//,4X,'### FLUID IS REMAIN STATIONARY ***',//)
2007 FORMAT(//,3X,'## UNCHOKED CONDITION (SUBSONIC FLOW) 4
I')
2008 FORMAT(//,3X,'## CRITICAL CONDITION (SONIC FLOW) It
)
2009 FORMAT(//,3X,'## CHOKED CONDITION ##')
IF (PO.EQ.PB) GO TO 9997
IF (PO.LT.PB) GO TO 9996
M=1
IF (J1.EQ.3) GO TO 2020
CALL ISEN6
WRITE (2,2006)
2006 FORMAT(//,3X,'## PROPERTIES AT THE EXIT PLANE ##',//)
IF (PB.EQ.P) WRITE (2,2008)
IF (PB.LT.P) WRITE (2,2009)
IF (PB.LE.P) GO TO 2222
P=PB
GO TO 2004
2005 CONTINUE
IF ((M.GT.0.9995).AND.(M.LT.1.0005)) M=1
IF (M.NE.1) GO TO 2040
CALL ISEN6
WRITE (2,2008)
P=PB
GO TO 2222
2040 WRITE (2,2007)
GO TO 2222
2020 WRITE(2,2021)
2021 FORMAT(//,1X,'INPUT AREA RATIO BETWEEN EXIT X THROAT (AE
/AT)',//)
53
READ ,ARIO
AR=ARIO
C------------------------------------------------
C TO FIND MACH NUMBERS,ME2 & ME4 AT THE EXIT PLANE
ME2=((C4+C3)**PW5)/AR
DO 2030 1=1,30
MP=((C4+ME2*ME2*C3)**PW5)/AR
EP=ABS(1-MP/ME2)
IF (EP.LT.0.00001) GO TO 2031
ME2=MP
2030 CONTINUE
2031 ME4=SQRT((AR**(1/PW5)-C4)*(K+1)/(K-1))
DO 2032 I=1,30
MP=SQRT(((ME4*AR)**(1/PW5)-C4)*(K+1)/(K-1))
EP=ABS(1-MP/ME4)
IF (EP*LT.0.00001) GO TO 2033
ME4=MP
2032 CONTINUE
2033 CONTINUE
IF (ME2+GT.1) ME4=ME2
IF (ME4.LT.1) ME2=ME4
M=ME2
C TO DETERMINE PE2,PE3,PE4
CALL ISEN6
PE2=P
ME3=ME4
M=ME4
CALL ISEN6
PE4=P
ME5=SQRT((ME3*ME3+C1)/(2*PW3*ME3*ME3-1))
PE3=PE4*((2*K*ME3*ME3)/(K+1)-C3)
IF ((PE3.GT.PB).AND.(PB.GT.PE4)) WRITE (2,2035)
IF (PB.LT.PE4) WRITE (2,2035)
IF (PB.GT.PE2) WRITE(2,2007)
IF (PB.EQ.PE4) WRITE (2,2027)
IF (PB.EQ.PE3) WRITE (2,2036)
IF (PB.LT.PE4) WRITE (2,2045)
2045 FORMAT(8X,'**44 UNDEREXPANDED #####',//)
IF ((PE3.GT.PB)*AND.(PB.GT.PE4)) WRITE (2,2048)
2035 FORMAT(//,3X,'*## SHOCK WAVE OCCURED OUTSIDE THE NOZZLE
P=PB
(3O TO 2004
2042 CONTINUE
IF (PB.NE.PE3) GO TO 2047
WRITE (2,2036)
WRITE (2,2043)
2043 FORMAT(//,3X,'## PROPERTIES BEFORE THE NORMAL SHOCK WAY
E W,//)
WRITE (2,7) MF,TO,PO,T,P,DN,DNO,M,V
PO=P0/((C3+C4/M/M)**K*(K*C4*M*M-C3))**PW2
M=SQRT((M*M+C1)/(K*C1*M*M-1))
P=P1*C4*K*M*M-C3
UM=(K+1)*M*M/(2+(K-1)*M*M)
V=V/DUM
DN=DNB1*DUM
1=T*(K*C4*M*M-C3)*(C3+C4/M/M)
WRITE (22044)
2044 FORMAT(//,3X,'## PROPERTIES AFTER THE NORMAL SHOCK WAVE
#',/)
GO TO 2222
2047 IF ((PE2.GT.PB).AND.(PB.GT.PE3)) GO TO 2049
WRITE (2,7) MF,TO,PO,T,P,DN,DNO,M,V
IF (PB.LE.PE2) WRITE (2,2023)
IF (PB.LE.PE2) M=1
IF (PB.LE.PE2) CALL ISEN6
IF (PB.LE.PE2) GO TO 2222
WRITE (2,2024)
MF=MF*AR
CALISEN7
GO TO 2222
2049 WRITE (2,2037)
PP=PO
ARR=ARIO
ARL=1.0
DO 2050 I=1,30
M=1
PO=PP
CALL ISEN6
AR=(ARR+ARL)/2
M=SQRT((AR**(1/PW5)-C4)*(K+1)/(K-1))
DO 2056 I1=1,30
MP=SQRTMM*AR)**(1/PW5)-C4)*(K+1)/(K-1))
EP=ABS(1-MP/M)
IF (EP.LT.0.00001) GO TO 2057
M=MP
2056 CONTINUE
2057 CONTINUE
CALL ISEN6 MB1=
DNOB1=
TOB1=TO
55
MFB1=MF
P=O
P1=P
VB1=
DNB1=DN
TB 1=T
IF (M.LT.1) GO TO 2070
PO=PP/((C3+C4/MB1/MB1)**K*(K*C4*MB1*MB1-C3))**PW2
M=SQRT((M*M+C1)/(K*C1*M*M-1))
P=P1*C4*K*MB1.*MB1-C3
DUM=(K+1)*MB1*MB1/(2+(K-1)*MB1*MB1)
V=VB1/DUM
DN=DNB1*DUM
T=TB1*(K*C4*MB1*MB1-C3)*(C3+C4/MB1/MB1)
PO2=
Mr:12=M MFB2=
P2=P
VB2=V
DNB2=DN
TE2=
MF=*AR/IO)
CALL. ISEN7
EP=ABS(1-P/PB)
IF (EP.LT.0.001) GO TO 2051
2070 IF (P.GT.PB) ARL=AR
IF (P.LT.PB) ARR=AR
M=1
P (3
2050 CONTINUE
P=PB
2051 WRITE(2,2071) AR
2071 FORMAT(//,3X,'NORMAL SHOCK WAVE OCCURS AT AREA RATIO =',
F6.3,//)
WRITE (2,2043)
WRITE (2,7)MFB1,TO,PP,TB1,P1,DNB1,DNO,MB1,VB1
WRITE (2,2044)
WRITE (2,7) MFB2,TO,PO2,TB2,P2,DNB2,DNO,MB2,VB2
WRITE (2,2006)
P=PB
WRITE(2,7) MF,TO,PO,T,P,DN,DNO,M,V
WRITE (2,2023)
M=1
PO=PP
CALL ISEN6
2222 CONTINUE
IF (KK.EQ.1) WRITE(2,1200)
IF (KK.GE.2) WRITE(2,1201) KK
1200 FORMAT(//,3X,'THE RESULTS FOR INITIAL SECTION 44 STATION
1 44:',//)
1201 FORMAT(//,3X,'RESULTS FOR OTHER SECTION. **STATION',I2,'
411: )
56
WRITE(2,7) MF,TO,PO,T,P,DN,DNO,M,V
7 FORMAT(//,6X,'MASS FLUX =',F12.3,//,
$6X,'STAGNATION TEMPERATURE =',F12.3,//,
$6X,'STAGNATION PRESSURE=',F12.3,//,
$6X,'STATIC TEMPERATURE=',F12.3,//,
$6X,'STATIC PRESSURE=',F12.3,//
$6X,'STATIC DENSITY=',F12+3,//,
$6X,'STAGNATION DENSITY=",F12.3,//,
$6X,'MACH NUMBER=',F12.3,//,
$6X,'LOCAL FLUID VELOCITY=',F12.3,//)
IF ((J1.EQ.2).OR.(J1.EQ.3)) GO TO 9997
GO TO 998
1111 WRITE(2,1112)
1112 FORMAT(/,2X,'NOT ENOUGH INFORMATION TO GET ALL THE PROPS
RTIES')
GO TO 9997
998 WRITE(2,999)
999 FORMAT(//,2X,'CONTINUE T YES-- ENTER 1 : NO-- ENTER 0
s)
READ ,J
IF (J.EQ.0) GO TO 9997
SUBROUTINE ISENT1
COMMON V,DN,DNO,K,R,M,MF,TO,T,P,PO,C2,PW2,PW3,PW5
REAL*4 MF,M,K,MP
V=M*SQRT(K*R*T)
DN=MF/V
DNO=DN*(1+C2*M*M)**PW2
RETURN
END
SUBROUTINE ISENT2
COMMON V,DNONO,K,R,M,MF,TO,T,P,P0,C2,PW2,PW3,PW5
REAL*4 MF,M,K,MP
P=DN*R*T
PO=P*(1+C2*M*M)**PW3
DNO=DN*(1+C2*M*M)**PW2
RETURN
END
SUBROUTINE ISENM1
COMMON V,DN,DNO,K,RIM,MF,TO,T,P,PO,C2,PW2,PW3,PW5
REAL*4 MF,M,K,MP
M=V*SQRT((1-1-C2)/(K*R*TO))
DO 830 1=1,30
MP=V*SQRT((1+C2*M*M)/(K*R*TO))
EP=ABS(1-MP/M)
IF (EP.LT.0.00001) GO TO 912
M=MP
830 CONTINUE'
912 CONTINUE
RETURN
58
END
SUBROUTINE ISEN1
COMMON V,DN,DNO,K,R,M,MF,TO,T,P,PO,C2,PW2,PW3,PW5
REAL*4 M,K,MF
DN=P/(R*T)
DNO=PO/(R*TO)
V=M*SQRT(K*R*T)
MF=DN*V
RETURN
END
SUBROUTINE ISEN2
COMMON V,DN,DNO,K,R,M,MF,TO,T,P,PO,C2,PW2,PW3,PW5
REAL*4 M,K,MF
P=DN*R*T
PO=DNO*R*TO
V=M*SQRT(K*R*T)
MF=DN*V
RETURN
END
SUBROUTINE ISEN3
COMMON V,DNF,DNO,K,R,M,MF,TO,T,P,PO,C2,PW2,PW3,PW5
REAL*4 M,K,MF
T=TO/(1+C2*M*M)
P=DN*R*T
V=M*SQRT(K*R*T)
MF=DN*V
RETURN
END
SUBROUTINE ISEN4
COMMON V,DN,DNO,K,R,M,MF,TO,T,P,PO,C2,PW2,PW3,PW5
REAL*4 M,K,MF
TO=T*(1+C2*M*M)
PO=DNO*R*TO
V=M*SQRT(K*R*T)
MF=DN*V
RETURN
END
SUBROUTINE ISEN5
COMMON V,DN,DNO,K,R,M,MF,TO,T,P,PO,C2,PW2,PW3,PW5
REAL*4 M,K,MF
T=P/(R*DN)
TO=PO/(R*DNO)
V=M*SQRT(K*R*T)
MF=DN*V
RETURN
END
SUBROUTINE ISEN6
COMMON V,DN,DNO,K,R,M,MF,TO,T,P,PO,C2,PW2,PW3,PW5
REAL*4 MF,M,K,MP
DNO=PO/R/TO
59
CALL ISEN3
RETURN
END DN=DNO/(1+C2*M*M)**PW2
SUBROUTINE ISEN7
COMMON V,DN,DNO,K,R,M,MF,TO,T,P,PO,C2,PW2,PW3,PW5
REAL*4 MF,M,K,MP
DUMMY=PO*SQRT(K/R/TO)
M=MF*(1+C2)**PW5/DUMMY
DO 111 .1=1,30
MP=MF*(1+C2*M*M)**PW5/DUMMY
EP=ABS(1-MP/M)
IF(EP.LT.0.00001) GO TO 1000
M=MP
111 CONTINUE
1000 T=TO/(1+C2*M*M)
CALL ISENT1
P=PO/(1+C2*M*M)**PW3
RETURN
END
SUBROUTINE ISEN8
COMMON V,DN,DNO,K,R,M,MF,TO,T,P,P0,C2,PW2,PW3,PW5
REAL*4 MF,M,K,MP
T=TO/(1+C2*M*M)
63 V=M*SQRT(K*R*T)
DN=MF/V
CALL ISENT2
RETURN
END
APPENDIX B
Sample of Example
Problem : Air flows through a frictionless adiabatic
converging-diverging nozzle. The air stagnation temperature
and pressure are 500K and 7.0 x 10 5 N/ M 2 respectively. The
diverging portion of the nozzle has an area ratio between
MF = MASS FLUX
R=SPEC.HATON
K = SPEC.GAS RATIO.
M = MACH NO.
T=SAICEMPRTU
P = STATIC PRESSURE
DN = STATIC DENSITY
TO = STAGNATION TEMPERATURE
PO = STAGNATION PRESSURE
DNO=STAGIDENY
61
SELECT PROGRAM :
ENTER K,R
*1.4,287.04
*11.91
44 SHOCK INSIDE 44
REFERENCES