49 |
|
double precision pxab, pyab, pzab, pabsq, rabsq, diffsq |
50 |
|
double precision rxab, ryab, rzab, rpab, gab |
51 |
|
double precision dx, dy, dz, rma, rmb |
52 |
+ |
double precision prSqr, rpabSqr; |
53 |
|
integer a, b, it, maxit |
54 |
|
parameter (rptol = 1.0d-6, tol = 1.0d-6 ) |
55 |
|
parameter ( maxit = 100 ) |
59 |
|
double precision e_convert |
60 |
|
parameter ( e_convert = 4.184d-4 ) |
61 |
|
|
62 |
< |
|
62 |
> |
|
63 |
|
DT2 = DT / 2.0d0 |
64 |
|
DTSQ2 = DT * DT2 |
65 |
|
|
128 |
|
|
129 |
|
rpab = rxab * pxab + ryab * pyab + rzab * pzab |
130 |
|
|
131 |
< |
if( dabs(rpab) .lt. ( rabsq * rptol ) ) then |
131 |
> |
rpabSqr = rpab * rpab |
132 |
> |
prSqr = - diffsq |
133 |
> |
|
134 |
> |
if( rpabSqr .lt. ( rabsq * prSqr )) then |
135 |
|
write (*, '('' Constraint Failure '')' ) |
136 |
< |
write (*,*) a-1, b-1,rpab, rabsq * rptol |
136 |
> |
write (*,*) a-1, b-1,rpabSqr, rabsq * prSqr |
137 |
|
stop |
138 |
|
end if |
139 |
|
|
198 |
|
enddo |
199 |
|
|
200 |
|
|
197 |
– |
|
201 |
|
RETURN |
202 |
|
end subroutine v_constrain_a |
203 |
|
|