5 &( xk1 , yk1 , xk2 , yk2 , xk3 , yk3 , xk4 , yk4 )
38 DOUBLE PRECISION,
INTENT(IN) :: XK1 , YK1 , XK2 , YK2
39 DOUBLE PRECISION,
INTENT(IN) :: XK3 , YK3 , XK4 , YK4
40 DOUBLE PRECISION COUPLE
44 DOUBLE PRECISION RK1 , RK2 , RK3 , RK4 , WK1 , WK2
45 DOUBLE PRECISION WK3 , WK4 , S12 , S13 , S14 , S23
46 DOUBLE PRECISION S24 , S34 , W1P2 , Q12 , W1M3 , Q13
47 DOUBLE PRECISION W1M4 , Q14 , DDD , COEF , DENO13, NUME13
48 DOUBLE PRECISION DENO14, NUME14, ZERO
53 rk1=sqrt(xk1*xk1+yk1*yk1)
54 rk2=sqrt(xk2*xk2+yk2*yk2)
55 rk3=sqrt(xk3*xk3+yk3*yk3)
56 rk4=sqrt(xk4*xk4+yk4*yk4)
70 w1p2=sqrt((xk1+xk2)*(xk1+xk2)+(yk1+yk2)*(yk1+yk2))
71 w1m3=sqrt((xk1-xk3)*(xk1-xk3)+(yk1-yk3)*(yk1-yk3))
72 w1m4=sqrt((xk1-xk4)*(xk1-xk4)+(yk1-yk4)*(yk1-yk4))
73 q12=(wk1+wk2)*(wk1+wk2)
74 q13=(wk1-wk3)*(wk1-wk3)
75 q14=(wk1-wk4)*(wk1-wk4)
79 ddd=2.00d0*q12*(rk1*rk2-s12)*(rk3*rk4-s34)/(w1p2-q12)
80 & +0.50d0*(s12*s34+s13*s24+s14*s23)
81 & +0.25d0*(s13+s24)*q13*q13
82 & -0.25d0*(s12+s34)*q12*q12
83 & +0.25d0*(s14+s23)*q14*q14
84 & +2.50d0*rk1*rk2*rk3*rk4
85 & +q12*q13*q14*(rk1+rk2+rk3+rk4)
87 nume13=2.00d0*q13*(rk1*rk3+s13)*(rk2*rk4+s24)
88 IF (abs(deno13).LT.zero)
THEN 89 IF (abs(nume13).LT.zero)
THEN 90 WRITE(*,*)
'WARNING DANS COUPLE : (1-3) ON A : 0/0 !' 92 WRITE(*,*)
'WARNING DANS COUPLE : (1-3) ON A : INFINI !' 94 WRITE(*,*)
'TERME (1-3) NON PRIS EN COMPTE DANS LE CALCUL.' 99 nume14=2.00d0*q14*(rk1*rk4+s14)*(rk2*rk3+s23)
100 IF (abs(deno14).LT.zero)
THEN 101 IF (abs(nume14).LT.zero)
THEN 102 WRITE(*,*)
'WARNING DANS COUPLE : (1-4) ON A : 0/0 !' 104 WRITE(*,*)
'WARNING DANS COUPLE : (1-4) ON A : INFINI !' 106 WRITE(*,*)
'TERME (1-4) NON PRIS EN COMPTE DANS LE CALCUL.' 108 ddd=ddd+nume14/deno14
114 couple=coef*ddd*ddd/(wk1*wk2*wk3*wk4)
double precision function couple(XK1, YK1, XK2, YK2, XK3, YK3, XK4, YK4)