34
35
36
37
38
39
40#include "implicit_f.inc"
41
42
43
44#include "com01_c.inc"
45#include "com04_c.inc"
46#include "param_c.inc"
47
48
49
50 INTEGER PROC, NRBE2_L,SLMN_L,NBDDRBE2,
51 . IRBE2(NRBE2L,*), LRBE2(*)
52
53
54
55 INTEGER NLOCAL
57
58
59
60 INTEGER I, J, K, NSN, ILP, N,P,M,NS,PROC1,SPLIST,SLMN_L0
61 INTEGER,DIMENSION(:), ALLOCATABLE :: MAIN_NODES,TAG,PLIST
62
63
64 ALLOCATE(main_nodes(nrbe2))
65 ALLOCATE(tag(numnod))
66 ALLOCATE(plist(nspmd))
67
68
69
70
71
72
73 nrbe2_l = 0
74
75 proc1 = proc + 1
76 slmn_l = 0
77 nbddrbe2 = 0
78 DO i = 1, nrbe2
79 nsn = irbe2(5,i)
80 k = irbe2(1,i)
81 m = irbe2(3,i)
82
83 IF (nsn==0) cycle
84 DO j = 1, nsn
85 ns = lrbe2(k+j)
86 IF(
nlocal(ns,proc1)==1) slmn_l = slmn_l + 1
87 ENDDO
88
89 IF (
nlocal(m,proc1)==1)
THEN
90 nrbe2_l = nrbe2_l+1
91
92 main_nodes(nrbe2_l)=m
93 END IF
94 ENDDO
95
96
97
98
99
100
101
102 tag(1:numnod)=0
103
104 DO i=1,nrbe2_l
105 m=main_nodes(i)
106
107 IF(tag(m)==0)THEN
108 tag(m)=1
109
110
112 DO p=1,splist
113 IF( plist(p) /= proc1)THEN
114 nbddrbe2 = nbddrbe2 + 1
115 ENDIF
116 ENDDO
117 ENDIF
118 ENDDO
119
120 DEALLOCATE(main_nodes)
121 DEALLOCATE(tag)
122
123 RETURN