33 integer i,j,idx,idy,nx,ny
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)
39 data xpuzpd /1.2d0,1.6d0,2.2d0/
42 data ylzd /0.25d0,0.50d0,1.00d0,2.00d0/
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/
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/
62 call ident(xpuzpd,puzpd,nx,idx)
63 call ident(ylzd,lzd,ny,idy)
65 if (abs(angle-30.d0).le.0.1d0)
then 68 tab_cd(i,j)=tab30(i,j)
72 elseif(abs(angle-45.d0).le.0.1d0)
then 75 tab_cd(i,j)=tab45(i,j)
79 write(*,*)
'*WARNING in cd_chamfer.f :unacceptable angle' 81 write(*,*)
'Chamfer correction is assumed Cd_chamfer=1' 91 cd=tab_cd(1,idy)+(tab_cd(1,idy+1)-tab_cd(1,idy))
92 & *(lzd-ylzd(idy))/(ylzd(idy+1)-ylzd(idy))
96 elseif(idx.ge.nx)
then 103 cd=tab_cd(nx,idy)+(tab_cd(nx,idy+1)-tab_cd(nx,idy))
104 & *(lzd-ylzd(idy))/(ylzd(idy+1)-ylzd(idy))
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))
115 xi=(puzpd-xpuzpd(idx))/(xpuzpd(idx+1)-xpuzpd(idx))
116 et=(lzd-ylzd(idy))/(ylzd(idy+1)-ylzd(idy))
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
subroutine ident(x, px, n, id)
Definition: ident.f:26
static double * z1
Definition: filtermain.c:48