CalculiX  2.13
A Free Software Three-Dimensional Structural Finite Element Program
cd_bleedtapping.f File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine cd_bleedtapping (ps2, ps1, ps1pt1, nummer, curve, x_tab, y_tab, cd)
 

Function/Subroutine Documentation

◆ cd_bleedtapping()

subroutine cd_bleedtapping ( real*8  ps2,
real*8  ps1,
real*8  ps1pt1,
integer  nummer,
integer  curve,
real*8, dimension(15)  x_tab,
real*8, dimension(15)  y_tab,
real*8  cd 
)
24 !
25 !
26 ! in : SImultation of the secondary air system of aero engines
27 ! K.J.KUTZ T.M. SPEER
28 ! Transactions of the ASME vol.116 April 1994
29 !
30 ! author: Yannick Muller
31 !
32  implicit none
33 !
34  integer nummer,id,i,number,curve,index
35  real*8 x_tab(15),y_tab(15)
36 !
37 ! Fig.7 tapping with lip
38 !
39  real*8 cdx1(9)
40  data cdx1
41  & /0.24d0,0.52d0,0.8d0,1.14d0,1.42d0,1.9d0,2.5d0,3d0,3.4d0/
42 !
43 
44  real*8 cdy1(9)
45  data cdy1
46  & /0.167d0,0.310d0,0.467d0,0.611d0,0.711d0,0.789d0,0.833d0,
47  & 0.866d0,0.888d0/
48 !
49 ! Fig.7 tapping without lip
50 !
51  real*8 cdx2(7)
52  data cdx2
53  & /1.0d0,1.14d0,1.42d0,1.9d0,2.5d0,3.0d0,3.4d0/
54 
55  real*8 cdy2(7)
56  data cdy2
57  & /0.d0,0.122d0,0.377d0,0.7d0,0.766d0,0.769d0,0.772d0/
58 
59  real*8 ps2,ps1,dab,ps2pt1,ps1pt1,cdy(15),cd,cdx(20),
60  & dabmax
61 !
62  ps2pt1=ps2/ps1
63  dabmax=100.d0
64 !
65  if(nummer.eq.0) then
66  if (curve.eq.1) then
67  index=9
68  write(*,*)
69  write(*,*) 'Cd calculations will be performed using'
70  write(*,*) 'Cd-Kurven HP3 Schlitz;Kurve Nr. 1'
71  do i=1,index
72  cdx(i)=cdx1(i)
73  cdy(i)=cdy1(i)
74  enddo
75 !
76  elseif(curve.eq.2) then
77  index=7
78  write(*,*)
79  write(*,*) 'Cd calculations will be performed using'
80  write(*,*) 'Cd-Kurven HP3 Schlitz;Kurve Nr. 2'
81  do i=1,index
82  cdx(i)=cdx2(i)
83  cdy(i)=cdy2(i)
84  enddo
85 !
86  elseif(curve.gt.2) then
87  write(*,*)
88  write(*,*) 'no characteristic available under this index'
89  write(*,*) 'cd is implicitely assumed equal to 1'
90  cd=1.d0
91  return
92  endif
93 !
94 ! psvptv ratio between the static pressure in the main canal
95 ! and the total pressure in the main canal
96 !
97 ! check whether ps1/pt1 less than 1 , if not then a warning is sent and
98 ! the calculation will peroceed with an "oversized" dab
99 !
100  if(abs(1.d0-ps2pt1).le.dabmax*(1.d0-ps1pt1)) then
101  dab=(1.d0-ps2pt1)/(1.d0-ps1pt1)
102  else
103  dab=dabmax
104  write(*,*) 'in cd_bleedtapping.f: ps1/pt1=',ps1pt1
105  write(*,*) 'the calculation will proceed with DAB=100.'
106  endif
107 !
108 ! determination of cd with the caracteristics
109 !
110  call ident(cdx,dab,index,id)
111  if(id.eq.1) then
112  cd=cdy(1)
113  elseif(id.ge.index) then
114  cd=cdy(index)
115  else
116  cd=cdy(id)+(cdy(id+1)-cdy(id))
117  & *(dab-cdx(id))/(cdx(id+1)-cdx(id))
118  endif
119 !
120  else
121  if(abs(1.d0-ps2pt1).le.dabmax*(1.d0-ps1pt1)) then
122  dab=(1.d0-ps2pt1)/(1.d0-ps1pt1)
123  else
124  dab=dabmax
125  write(*,*) 'in cd_bleedtapping.f: ps1/pt1=',ps1pt1
126  write(*,*) 'the calculation will proceed with DAB=100.'
127  endif
128 
129  call ident(x_tab,dab,nummer,id)
130  if(id.le.1d0) then
131  cd=y_tab(1)
132  elseif(id.ge.nummer) then
133  cd=y_tab(nummer)
134  else
135  cd=y_tab(id)+(y_tab(id+1)-y_tab(id))
136  & *(dab-x_tab(id))/(x_tab(id+1)-x_tab(id))
137  endif
138  endif
139  return
subroutine ident(x, px, n, id)
Definition: ident.f:26
Hosted by OpenAircraft.com, (Michigan UAV, LLC)