38#include "implicit_f.inc"
50 INTEGER,
INTENT(IN) :: IXC(NIXC,NUMELC),NEL,JFT,JLT,NFT
51 my_real,
INTENT(IN) :: x(3,numnod)
52 TYPE (ELBUF_STRUCT_),
INTENT(INOUT),
TARGET :: ELBUF_STR
56 INTEGER I,J,K,N1,N2,N3,N4,POS,POS_B,,CORES(MVSIZ+1),FLAG,NODE_CORES_DIR2(4)
59 TYPE(g_bufel_) ,
POINTER :: GBUF
62 gbuf => elbuf_str%GBUF
70#include "vectorize.inc"
72 flag =
min(1,abs(gbuf%UPDATE(i)))
74 cores(1+nel_l*flag) = i
83 IF (gbuf%UPDATE(i) /= zero)
THEN
85 IF (gbuf%ADD_NODE(i) == ixc(3,j))
THEN
87 node_cores_dir2(1) = 4
88 node_cores_dir2(2) = 3
89 node_cores_dir2(3) = 2
90 node_cores_dir2(4) = 1
93 node_cores_dir2(1) = 2
94 node_cores_dir2(2) = 1
95 node_cores_dir2(3) = 4
96 node_cores_dir2(4) = 3
99 pos = abs(gbuf%UPDATE(i))
100 pos_b = node_cores_dir2(pos)
102 n2 = gbuf%ADD_NODE(nel*pos+i)
104 n4 = gbuf%ADD_NODE(nel*pos_b+i)
106 dist = sqrt(
max(em20,(x(1,n1)-x(1,n2))**2+(x(2,n1)-x(2,n2))**2+(x(3,n1)-x(3,n2))**2))
107 distb = sqrt(
max(em20,(x(1,n3)-x(1,n4))**2+(x(2,n3)-x(2,n4))**2+(x(3,n3)-x(3,n4))**2))
108 dist =
min(dist,distb)
109 gbuf%INTVAR(i) = log(one + 1.72*dist/gbuf%INTVAR(nel+i))
110 gbuf%INTVAR(i) =
max(zero,gbuf%INTVAR(i))
111 gbuf%INTVAR(i) =
min(one