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

Go to the source code of this file.

Functions/Subroutines

subroutine cd_lab_1spike (pt0zps1, s, b, cd_1spike)
 

Function/Subroutine Documentation

◆ cd_lab_1spike()

subroutine cd_lab_1spike ( real*8  pt0zps1,
real*8  s,
real*8  b,
real*8  cd_1spike 
)
34 !
35  implicit none
36 !
37  integer nx,ny,idx,idy
38 !
39  real*8 pt0zps1,s,b,cd_1spike,z1,z2,z3,z4,xi,et,pdszpus,bzs
40 !
41  real*8 pdszpus_tab(7)
42  data pdszpus_tab
43  & /0.400d0,0.500d0,0.555d0,0.625d0,0.714d0,0.833d0,1.000d0/
44 !
45  real*8 bzs_tab(9)
46  data bzs_tab
47  & /0.250d0,0.285d0,0.330d0,0.400d0,0.5000d0,0.660d0,1d0,2d0,4d0/
48 !
49  real*8 cd_1spike_tab(7,9)
50  data cd_1spike_tab
51  & /0.930d0,0.875d0,0.830d0,0.790d0,0.750d0,0.700d0,0.650d0,
52  & 0.930d0,0.875d0,0.830d0,0.800d0,0.750d0,0.710d0,0.660d0,
53  & 0.930d0,0.875d0,0.830d0,0.800d0,0.750d0,0.710d0,0.660d0,
54  & 0.918d0,0.875d0,0.830d0,0.800d0,0.750d0,0.710d0,0.670d0,
55  & 0.912d0,0.875d0,0.830d0,0.800d0,0.750d0,0.710d0,0.675d0,
56  & 0.900d0,0.875d0,0.830d0,0.800d0,0.750d0,0.710d0,0.687d0,
57  & 0.900d0,0.875d0,0.830d0,0.800d0,0.750d0,0.725d0,0.687d0,
58  & 0.912d0,0.875d0,0.862d0,0.837d0,0.800d0,0.785d0,0.743d0,
59  & 0.912d0,0.880d0,0.870d0,0.860d0,0.860d0,0.855d0,0.850d0/
60  bzs=b/s
61  pdszpus=1/pt0zps1
62  nx=7
63  ny=9
64 !
65  call ident(pdszpus_tab,pdszpus,nx,idx)
66  call ident(bzs_tab,bzs,ny,idy)
67 !
68  if (idx.eq.0) then
69  if(idy.eq.0) then
70  cd_1spike=cd_1spike_tab(1,1)
71  else
72  if(idy.eq.ny) then
73  cd_1spike=cd_1spike_tab(1,ny)
74  else
75  cd_1spike=cd_1spike_tab(1,idy)+(cd_1spike_tab(1,idy+1)
76  & -cd_1spike_tab(1,idy))
77  & *(bzs-bzs_tab(idy))/(bzs_tab(idy+1)-bzs_tab(idy))
78  endif
79  endif
80 !
81  elseif(idx.ge.nx) then
82  if(idy.le.0) then
83  cd_1spike=cd_1spike_tab(nx,1)
84  else
85  if(idy.ge.ny) then
86  cd_1spike=cd_1spike_tab(nx,ny)
87  else
88  cd_1spike=cd_1spike_tab(nx,idy)+
89  & (cd_1spike_tab(nx,idy+1)-cd_1spike_tab(nx,idy))
90  & *(bzs-bzs_tab(idy))/(bzs_tab(idy+1)-bzs_tab(idy))
91  endif
92  endif
93  else
94  if(idy.le.0) then
95 !
96  cd_1spike=cd_1spike_tab(idx,1)+(cd_1spike_tab(idx+1,1)
97  & -cd_1spike_tab(idx,1))
98  & *(pdszpus-pdszpus_tab(idx))/(pdszpus_tab(idx+1)
99  & -pdszpus_tab(idx))
100  elseif(idy.ge.ny) then
101  cd_1spike=cd_1spike_tab(idx,ny)+(cd_1spike_tab(idx+1,ny)
102  & -cd_1spike_tab(idx,ny))
103  & *(pdszpus-pdszpus_tab(idx))/(pdszpus_tab(idx+1)
104  & -pdszpus_tab(idx))
105  else
106  xi=(pdszpus-pdszpus_tab(idx))/(pdszpus_tab(idx+1)
107  & -pdszpus_tab(idx))
108  et=(bzs-bzs_tab(idy))/(bzs_tab(idy+1)-bzs_tab(idy))
109  z1=cd_1spike_tab(idx,idy)
110  z2=cd_1spike_tab(idx+1,idy)
111  z3=cd_1spike_tab(idx,idy+1)
112  z4=cd_1spike_tab(idx+1,idy+1)
113  cd_1spike=(1-xi)*(1-et)*z1+(1-xi)*et*z3
114  & +xi*(1-et)*z2+xi*et*z4
115  endif
116  endif
117 !
118  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)