32 . NCLUSTER_L,CEP,PROC,
33 . NUMLOCGROUP, LEN_IA,LEN_AM )
41#include "implicit_f.inc"
51 INTEGER CEP(*),NODLOCAL(*),IPARG(NPARG,*)
52 INTEGER NCLUSTER_L,PROC,LEN_IA,LEN_AM
53 INTEGER :: NUMLOCGROUP(NGROUP)
54 TYPE (CLUSTER_) ,
DIMENSION(NCLUSTER) :: CLUSTER
58 INTEGER I,II,J,K,ID,NEL,NG,NELG,NNOD,NFT,ITY,IFAIL
60 INTEGER ESHIFT(3), ILCLUSTER_MAX, RLCLUSTER_MAX
61 my_real,
DIMENSION(:),
ALLOCATABLE :: rcltab
62 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ICLTAB,,ILCLUSTER,RLCLUSTER
66 eshift(2) = numels+numelq+numelc+numelt+numelp
67 eshift(3) = numels+numelq+numelc+numelt+numelp
68 ALLOCATE(indx(ncluster_l))
69 ALLOCATE(ilcluster(ncluster_l))
70 ALLOCATE(rlcluster(ncluster_l))
72 ilcluster(1:ncluster_l) = 0
73 rlcluster(1:ncluster_l) = 0
79 IF ( cep(cluster(i)%ELEM(1) + eshift(ity)) == proc )
THEN
82 nnod = cluster(i)%NNOD
83 ifail = cluster(i)%IFAIL
84 ilcluster(j) = 8 + 2 * (nel + nnod)
86 IF (ifail > 0) rlcluster(j) = rlcluster(j) + 4
87 IF (ifail == 3) rlcluster(j) = rlcluster(j) + 8
89 IF ( rlcluster_max < rlcluster(j) )
THEN
90 rlcluster_max = rlcluster(j)
92 IF ( ilcluster_max < ilcluster(j) )
THEN
93 ilcluster_max = ilcluster(j)
99 len_ia = len_ia + ncluster_l
101 len_ia = len_ia + ncluster_l
103 ALLOCATE (icltab(ilcluster_max))
104 ALLOCATE (rcltab(rlcluster_max))
113 icltab(il+1) = cluster(ii)%ID
114 icltab(il+2) = cluster(ii)%TYPE
115 icltab(il+3) = cluster(ii)%IFAIL
116 icltab(il+4) = cluster(ii)%IGR
117 icltab(il+5) = cluster(ii)%NEL
118 icltab(il+6) = cluster(ii)%NNOD
119 icltab(il+7) = cluster(ii)%SKEW
120 icltab(il+8) = cluster(ii)%OFF
122 rcltab(rl+1) = cluster(ii)%FAIL
124 nel = cluster(ii)%NEL
125 nnod = cluster(ii)%NNOD
128 id = cluster(ii)%ELEM(j)
134 IF (ity == 1 .AND. cluster(ii)%TYPE == 1)
THEN
136 IF (k <= nelg)
GOTO 100
137 ELSEIF (ity == 6 .AND. cluster(ii)%TYPE == 2)
THEN
139 IF (k <= nelg)
GOTO 100
143 icltab(il + j) = numlocgroup(ng)
144 icltab(il + j+nel) = k
149 icltab(il + j) = nodlocal(cluster(ii)%NOD1(j))
150 icltab(il + j+nnod) = nodlocal(cluster(ii)%NOD2(j))
154 IF (cluster(ii)%IFAIL > 0)
THEN
155 rcltab(rl + 1) = cluster(ii)%FMAX(1)
156 rcltab(rl + 2) = cluster(ii)%FMAX(2)
157 rcltab(rl + 3) = cluster(ii)%MMAX(1)
158 rcltab(rl + 4) = cluster(ii)%MMAX(2)
161 IF (cluster(ii)%IFAIL == 3)
THEN
162 rcltab(rl + 1) = cluster(ii)%AX(1)
163 rcltab(rl + 2) = cluster(ii)%AX(2)
164 rcltab(rl + 3) = cluster(ii)%AX(3)
165 rcltab(rl + 4) = cluster(ii)%AX(4)
166 rcltab(rl + 5) = cluster(ii)%NX(1)
167 rcltab(rl + 6) = cluster(ii)%NX(2)
168 rcltab(rl + 7) = cluster(ii)%NX(3)
169 rcltab(rl + 8) = cluster(ii)%NX(4)
174 IF(il< ilcluster(i)) icltab(il+1:ilcluster(i)) = 0
175 IF(rl<rlcluster(i)) rcltab(rl+1:rlcluster(i)) = zero
179 len_am = len_am + rlcluster(i)
181 len_ia = len_ia + ilcluster(i)
186 DEALLOCATE (ilcluster)
187 DEALLOCATE (rlcluster)