92 int i,j,k,index,offset,count;
98 int *count2offset_e = NULL;
101 int *count2offset_l = NULL;
125 head_e = xNew<int>(localnumnodes);
for(i=0;i<localnumnodes;i++) head_e[i]=-1;
137 _assert_(index>=0 && index<numnodes);
140 next_e[k]=head_e[index];
145 xDelete<int>(lidlist);
149 head_l = xNew<int>(localnumnodes);
for(i=0;i<localnumnodes;i++) head_l[i]=-1;
160 _assert_(index>=0 && index<numnodes);
163 next_l[k]=head_l[index];
168 xDelete<int>(lidlist);
172 bool *flags = xNew<bool>(localnumnodes);
173 int *flagsindices = xNew<int>(localnumnodes);
174 int *d_connectivity = xNewZeroInit<int>(localnumnodes);
175 int *o_connectivity = xNewZeroInit<int>(localnumnodes);
181 for(i = 0;i<localnumnodes;i++) flags[i] =
false;
182 for(i = 0;i<localnumnodes;i++) flagsindices[i] = -1;
190 while(j<localnumnodes){
191 if(flagsindices[j]>=0){
192 flags[flagsindices[j]] =
false;
193 flagsindices[j] = -1;
207 for(j=head_e[node->
Lid()];j!=-1;j=next_e[j]){
208 offset=count2offset_e[j];
215 d_connectivity[node->
Lid()]+=d_nz;
216 o_connectivity[node->
Lid()]+=o_nz;
219 for(j=head_l[node->
Lid()];j!=-1;j=next_l[j]){
220 offset=count2offset_l[j];
227 d_connectivity[node->
Lid()]+=d_nz;
228 o_connectivity[node->
Lid()]+=o_nz;
232 xDelete<bool>(flags);
233 xDelete<int>(flagsindices);
234 xDelete<int>(count2offset_e);
235 xDelete<int>(head_e);
236 xDelete<int>(next_e);
237 xDelete<int>(count2offset_l);
238 xDelete<int>(head_l);
239 xDelete<int>(next_l);
245 delete connectivity_clone;
254 for(j=0;j<node->
fsize;j++){
256 d_nnz[count]=numberofdofspernode*(d_connectivity[node->
Lid()] + reCast<int>(serial_connectivity_clone[node->
Lid()]));
257 o_nnz[count]=numberofdofspernode*(o_connectivity[node->
Lid()] + reCast<int>(serial_connectivity_clone[node->
Lid()]));
258 if(d_nnz[count]>n) d_nnz[count]=n;
259 if(o_nnz[count]>N-n) o_nnz[count]=N-n;
267 _error_(
"STOP not implemented");
269 xDelete<int>(d_connectivity);
270 xDelete<int>(o_connectivity);
271 xDelete<IssmDouble>(serial_connectivity_clone);