35 DOUBLE PRECISION A1, A2 ,ALPHA0, D1, D2, PHI, PHI1, PHI2 ,MODPHI
36 DOUBLE PRECISION TETA01, XU1 ,XU2, XV1, XV2, WT0
38 INTRINSIC sqrt, atan2, mod, abs, cos, sin, atan
42 DOUBLE PRECISION,
PARAMETER :: ZERO = 1.d-10
92 a1 = sqrt(
u0%R(i)*
u0%R(i) +
t3%R(i)*
t3%R(i) )
93 phi1 = atan2(
t3%R(i),
u0%R(i) )
94 a2 = sqrt(
v0%R(i)*
v0%R(i) +
t4%R(i)*
t4%R(i) )
95 IF(
t4%R(i).EQ.0.d0.AND.
v0%R(i).EQ.0.d0)
THEN 96 phi2 = 2.d0*atan(1.d0)
98 phi2 = atan2(
t4%R(i),
v0%R(i) )
106 IF (phi.LT.0.d0) phi = phi+
deupi 112 modphi = mod( phi,
pi )
113 IF ( (modphi.LT.zero).OR.((
pi-modphi).LT.zero) )
THEN 115 IF ( (phi.LT.2d0*zero).OR.((
deupi-phi).LT.2d0*zero) )
THEN 116 alpha0 = atan2( a2,a1 )
119 alpha0 =
deupi - atan2( a2,a1 )
124 teta01 = atan2( (a2*a2*sin(2*phi)) ,
125 & (a1*a1 + a2*a2*cos(2*phi)) ) / 2.d0
126 xu1 = a1 * cos( teta01)
127 xv1 = a2 * cos( teta01 - phi )
128 xu2 = -a1 * sin( teta01)
129 xv2 = -a2 * sin( teta01 - phi )
130 d1 = xu1*xu1 + xv1*xv1
131 d2 = xu2*xu2 + xv2*xv2
138 alpha0 = atan2( xv1,xu1 )
151 IF (
inci%R(i).GE.0.d0)
THEN
type(bief_obj), target maskel
double precision, dimension(:), pointer y
type(bief_obj), target phii
type(bief_obj), target v0
type(bief_obj), pointer t2
type(bief_mesh), target mesh
type(bief_obj), target inci
type(bief_obj), pointer t4
type(bief_obj), target phir
double precision, dimension(:), pointer x
type(bief_obj), target sbid
subroutine vector(VEC, OP, FORMUL, IELM1, XMUL, F, G, H, U, V, W, MESH, MSK, MASKEL, LEGO, ASSPAR)
type(bief_obj), pointer t3
subroutine os(OP, X, Y, Z, C, IOPT, INFINI, ZERO)
type(bief_obj), pointer t1
type(bief_obj), target u0