30 . KEY1,KEY2,ID_X2,ID_LIST)
44#include "implicit_f.inc"
52 INTEGER,
INTENT(IN) :: LEADING_DIRECTION
53 INTEGER,
INTENT(IN) :: N1,N2,N3
56 my_real,
DIMENSION(3,N1),
INTENT(IN) :: x1
57 my_real,
DIMENSION(3,N3),
INTENT(IN) :: x2
59 INTEGER,
DIMENSION(N1),
INTENT(IN) :: KEY1
60 INTEGER,
DIMENSION(N2),
INTENT(IN) ::
61 INTEGER,
DIMENSION(N2),
INTENT(IN) :: ID_X2
62 INTEGER,
DIMENSION(N1),
INTENT(INOUT) :: ID_LIST
65 INTEGER :: I,J,ID,info,JMIN
66 INTEGER :: LAST_POSITION
68 my_real :: delta,dx,dy,dz,dxl,dyl,dzl,dl
74 dx =abs(x2(1,id_x2(key2(last_position))) - x1(1,key1(i)))
75 dy =abs(x2(2,id_x2(key2(last_position))) - x1(2,key1(i)))
77 leading_size = abs(x2(leading_direction,id_x2(key2(last_position))) - x1(leading_direction,key1(i)))
88 DO WHILE (j <= n2 .AND. (dxl <= delta .OR. delta < eps))
89 dxl =abs(x2(1,id_x2(key2(j))) - x1(1,key1(i)))
90 dyl =abs(x2(2,id_x2(key2(j))) - x1(2,key1(i)))
91 dzl =abs(x2(3,id_x2(key2(j))) - x1(3,key1(i)))
92 dl = sqrt(dxl*dxl+dyl*dyl+dzl*dzl)
93 IF (dl < delta .AND. dl > eps)
THEN
99 IF (j <= n2) dxl =abs(x2(leading_direction,id_x2(key2(j)))-x1(leading_direction,key1(i)))
105 DO WHILE (j > 0 .AND. (dxl <= delta .OR. delta < eps))
106 dxl =abs(x2(1,id_x2(key2(j))) - x1(1,key1(i)))
107 dyl =abs(x2(2,id_x2(key2(j))) - x1(2,key1(i)))
108 dzl =abs(x2(3,id_x2(key2(j))) - x1(3,key1(i)))
109 dl = sqrt(dxl*dxl+dyl*dyl+dzl*dzl)
110 IF (dl < delta .AND. dl > eps)
THEN
116 IF (j > 0) dxl =abs(x2(leading_direction,id_x2(key2(j)))-x1(leading_direction,key1(i)))
119 id_list(key1(i)) = id
123 id_list(i) = id_x2(id_list(i))
subroutine find_closest_node(leading_direction, n1, n2, n3, x1, x2, eps, key1, key2, id_x2, id_list)