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

Go to the source code of this file.

Functions/Subroutines

subroutine cd_chamfer (l, d, p_up, p_down, angle, cd)
 

Function/Subroutine Documentation

◆ cd_chamfer()

subroutine cd_chamfer ( real*8  l,
real*8  d,
real*8  p_up,
real*8  p_down,
real*8  angle,
real*8  cd 
)
20 !
21 ! calculates the discharge coefficient of holes with chamfered inlets
22 ! using N. Hay and A.Spencer
23 ! "Disharge coefficient of Cooling holes with radiused and chamfered
24 ! inlets" ASME 91-GT-269
25 !
26 ! Nota:the radius correction is not used here due to the unreliability
27 ! of the results proposed check first line of table 1
28 !
29 ! author: Yannick Muller
30 !
31  implicit none
32 !
33  integer i,j,idx,idy,nx,ny
34 !
35  real*8 l,d,p_up,p_down,angle,puzpd,lzd,xi,et,z1,z2,z3,z4,
36  & cd, tab_cd(3,4), tab30(3,4),tab45(3,4)
37 !
38  real*8 xpuzpd(3)
39  data xpuzpd /1.2d0,1.6d0,2.2d0/
40 !
41  real*8 ylzd (4)
42  data ylzd /0.25d0,0.50d0,1.00d0,2.00d0/
43 !
44  data ((tab30(i,j),i=1,3),j=1,4)
45  & /1.45d0,1.31d0,1.24d0,
46  & 1.35d0,1.28d0,1.21d0,
47  & 1.23d0,1.19d0,1.13d0,
48  & 1.20d0,1.18d0,1.10d0/
49 !
50  data ((tab45(i,j),i=1,3),j=1,4)
51  & /1.19d0,1.19d0,1.16d0,
52  & 1.23d0,1.19d0,1.13d0,
53  & 1.14d0,1.11d0,1.07d0,
54  & 1.11d0,1.09d0,1.03d0/
55 !
56  nx=3
57  ny=4
58 !
59  lzd=l/d
60  puzpd=p_up/p_down
61 !
62  call ident(xpuzpd,puzpd,nx,idx)
63  call ident(ylzd,lzd,ny,idy)
64 !
65  if (abs(angle-30.d0).le.0.1d0) then
66  do i=1,3
67  do j=1,4
68  tab_cd(i,j)=tab30(i,j)
69  enddo
70  enddo
71 !
72  elseif(abs(angle-45.d0).le.0.1d0) then
73  do i=1,3
74  do j=1,4
75  tab_cd(i,j)=tab45(i,j)
76  enddo
77  enddo
78  else
79  write(*,*) '*WARNING in cd_chamfer.f :unacceptable angle'
80  &,angle,'grad'
81  write(*,*) 'Chamfer correction is assumed Cd_chamfer=1'
82  endif
83 !
84  if (idx.eq.0) then
85  if(idy.eq.0) then
86  cd=tab_cd(1,1)
87  else
88  if(idy.eq.ny) then
89  cd=tab_cd(1,ny)
90  else
91  cd=tab_cd(1,idy)+(tab_cd(1,idy+1)-tab_cd(1,idy))
92  & *(lzd-ylzd(idy))/(ylzd(idy+1)-ylzd(idy))
93  endif
94  endif
95 !
96  elseif(idx.ge.nx) then
97  if(idy.le.0) then
98  cd=tab_cd(nx,1)
99  else
100  if(idy.ge.ny) then
101  cd=tab_cd(nx,ny)
102  else
103  cd=tab_cd(nx,idy)+(tab_cd(nx,idy+1)-tab_cd(nx,idy))
104  & *(lzd-ylzd(idy))/(ylzd(idy+1)-ylzd(idy))
105  endif
106  endif
107  else
108  if(idy.le.0) then
109  cd=tab_cd(idx,1)+(tab_cd(idx+1,1)-tab_cd(idx,1))
110  & *(puzpd-xpuzpd(idx))/(xpuzpd(idx+1)-xpuzpd(idx))
111  elseif(idy.ge.ny) then
112  cd=tab_cd(idx,ny)+(tab_cd(idx+1,ny)-tab_cd(idx,ny))
113  & *(puzpd-xpuzpd(idx))/(xpuzpd(idx+1)-xpuzpd(idx))
114  else
115  xi=(puzpd-xpuzpd(idx))/(xpuzpd(idx+1)-xpuzpd(idx))
116  et=(lzd-ylzd(idy))/(ylzd(idy+1)-ylzd(idy))
117  z1=tab_cd(idx,idy)
118  z2=tab_cd(idx+1,idy)
119  z3=tab_cd(idx,idy+1)
120  z4=tab_cd(idx+1,idy+1)
121  cd=(1-xi)*(1-et)*z1+(1-xi)*et*z3
122  & +xi*(1-et)*z2+xi*et*z4
123  endif
124  endif
125 !
126 ! write(*,*)'chamfer correction equals to',cd
127 !
128  return
subroutine ident(x, px, n, id)
Definition: ident.f:26
static double * z1
Definition: filtermain.c:48
Hosted by OpenAircraft.com, (Michigan UAV, LLC)