59
60
61
66#ifdef WITH_ASSERT
68#endif
69
70
71
72#include "implicit_f.inc"
73#include "comlock.inc"
74
75
76
77#include "mvsiz_p.inc"
78
79 INTEGER NVECSZ
80 parameter(nvecsz = mvsiz)
81
82
83
84#include "param_c.inc"
85#include "assert.inc"
86#include "i25edge_c.inc"
87
88
89
90
91
92
93
94
95
96 INTEGER I_MEM(2),INACTI,ITASK,IGAP,IEDGE,NEDGE,,NEDGE_T,SSHIFT,NRTM_T,IGAP0,
97 . MULNSNE,MULNSNS,NOINT,NBX,NBY,NBZ,IFQ,
98 . (*),CANDM_E2E(*),
99 . IRECT(4,*), VOXEL(NBX+2,NBY+2,NBZ+2),II_STOK,LL_STOK,ITAB(*),
100 . MBINFLG(*),EBINFLG(*),ILEV,CAND_A(*),LEDGE(NLEDGE,*),ADMSR(4,*),MSEGTYP(*),
101 . CANDM_E2S(*),CANDS_E2S(*),CAND_B(*),IFPEN_E(*),IFPEN_E2S(*)
102
103 INTEGER , INTENT(IN) :: KREMNODE_EDG_SIZ,REMNODE_EDG_SIZ,KREMNODE_E2S_SIZ,REMNODE_E2S_SIZ,
104 . FLAGREMNODE, KREMNODE_EDG(KREMNODE_EDG_SIZ), REMNODE_EDG(REMNODE_EDG_SIZ),
105 . KREMNODE_E2S(KREMNODE_E2S_SIZ), REMNODE_E2S(REMNODE_E2S_SIZ)
106
107 my_real ,
INTENT(IN) :: dgapload ,drad
109 . x(3,*),v(3,*),xyzm(6),stf(*), stfe(nedge), gap_m(*), gap_m_l(*), gape(*), gap_e_l(*),
110 . cand_p(*),cand_ps(*),marge,bgapemx,vmaxdt,
111 . cande2e_fx(*) ,cande2e_fy(*),cande2e_fz(*),
112 . cande2s_fx(4,*) ,cande2s_fy(4,*),cande2s_fz(4,*)
113 real*4 edg_bisector(3,4,*), vtx_bisector(3,2,*)
114 INTEGER, INTENT(IN) :: NEDGE_LOCAL
115
116
117
118 INTEGER I,J,I_STOK, SOL_EDGE, SH_EDGE,
119 . N1,N2,NN,NE,K,L,J_STOK,II,JJ,NA,NB,
120 . PROV_S(MVSIZ),PROV_M(MVSIZ),
121 . M,NS1,NS2,NSE,NS,SIZE,Z_FIRST,Z_LAST
122
124 . dx,dy,dz,xs,ys,zs,xx,sx,sy,sz,s2,
125 . xmin, xmax,ymin,
ymax,zmin, zmax, tz, gapsmx, gapl,
126 . xx1,xx2,xx3,xx4,yy1,yy2,yy3,yy4,zz1,zz2,zz3,zz4,
127 . d1x,d1y,d1z,d2x,d2y,d2z,dd1,dd2,d2,a2,gs,drad2
128
129 INTEGER IX,IY,IZ,IEDG,IE,
130 . M1, M2, M3, M4, MM1,MM2,MM3,MM4,SS1,SS2,
131 . IMS1,IMS2,ISS1,ISS2,
132 . AM1,AM2,,AS2,
133 . IX1,IY1,IZ1,IX2,IY2,IZ2,REMOVE_REMOTE
134 INTEGER, DIMENSION(3) :: TMIN,TMAX
136 . xminb,yminb,zminb,xmaxb,ymaxb,zmaxb,aaa,
137 . xmax_edgs, xmin_edgs,
138 . ymax_edgs, ymin_edgs,
139 . zmax_edgs, zmin_edgs,
140 . xmax_edgm, xmin_edgm,
141 . ymax_edgm, ymin_edgm,
142 . zmax_edgm, zmin_edgm
144 INTEGER, DIMENSION(:), ALLOCATABLE :: TAGEDG
145 INTEGER :: EDGE_TYPE
146 INTEGER :: EID
147 INTEGER FIRST_ADD, PREV_ADD, CHAIN_ADD, CURRENT_ADD, MAX_ADD
148 INTEGER BITGET
150
151
152 INTEGER IDS(4), PROV_IDS(2,MVSIZ)
153
154
155 INTEGER, DIMENSION(:), ALLOCATABLE :: TAGREMLINE
156
157
158 drad2 =zero
159
160 IF(flagremnode==2) THEN
161 ALLOCATE(tagremline(nedge))
162 tagremline(1:nedge) = 0
163 ENDIF
164
165 ids(1:4) = 0
166 prov_ids(1:2,1:mvsiz) = 0
167
168 sol_edge =iedge/10
169 sh_edge =iedge-10*sol_edge
170
177
178
179
180
182 IF(itask==0)THEN
186 END IF
187
188
190
191 xmin = xyzm(1)
192 ymin = xyzm(2)
193 zmin = xyzm(3)
194 xmax = xyzm(4)
196 zmax = xyzm(6)
197
198
199 xminb = xmin
200 yminb = ymin
201 zminb = zmin
202 xmaxb = xmax
204 zmaxb = zmax
205
206
207
208
209
210
211
212 IF(itask == 0)THEN
213
214 current_add=1
216
217 IF(i <= nedge_local) THEN
218 ne = ledge(1,i)
219
220 IF(stfe(i)==zero) cycle
221
222 IF(ledge(7,i) < 0) cycle
223 n1 = ledge(5,i)
224 n2 = ledge(6,i)
225 eid = ledge(8,i)
226
227 xx1=x(1,n1)
228 xx2=x(1,n2)
229 yy1=x(2,n1)
230 yy2=x(2,n2)
231 zz1=x(3,n1)
232 zz2=x(3,n2)
233 debug_e2e(eid == d_es,eid)
234 ELSE IF(i > nedge) THEN
235 xx1=xrem_edge(e_x1,i-nedge)
236 xx2=xrem_edge(e_x2,i-nedge)
237 yy1=xrem_edge(e_y1,i-nedge)
238 yy2=xrem_edge(e_y2,i-nedge)
239 zz1=xrem_edge(e_z1,i-nedge)
240 zz2=xrem_edge(e_z2,i-nedge)
242 debug_e2e(eid == d_es,eid)
243 ELSE
244
245
246 assert(nspmd > 1)
247 cycle
248 ENDIF
249 debug_e2e(eid==d_es,igap0)
250
251 IF(igap0 == 0)THEN
252 xmax_edgs=
max(xx1,xx2);
253 xmin_edgs=
min(xx1,xx2);
254 ymax_edgs=
max(yy1,yy2);
255 ymin_edgs=
min(yy1,yy2);
256 zmax_edgs=
max(zz1,zz2);
257 zmin_edgs=
min(zz1,zz2);
258 debug_e2e(eid==d_es,xmin_edgs)
259 debug_e2e(eid==d_es,ymin_edgs)
260 debug_e2e(eid==d_es,zmin_edgs)
261 debug_e2e(eid==d_es,xmax_edgs)
262 debug_e2e(eid==d_es,ymax_edgs)
263 debug_e2e(eid==d_es,zmax_edgs)
264 debug_e2e(eid==d_es,xmin)
265 debug_e2e(eid==d_es,ymin)
266 debug_e2e(eid==d_es,zmin)
267 debug_e2e(eid==d_es,xmax)
268 debug_e2e(eid==d_es,
ymax)
269 debug_e2e(eid==d_es,zmax)
270 IF(xmax_edgs < xmin) cycle
271 IF(xmin_edgs > xmax) cycle
272 IF(ymax_edgs < ymin) cycle
273 IF(ymin_edgs >
ymax) cycle
274 IF(zmax_edgs < zmin) cycle
275 IF(zmin_edgs > zmax) cycle
276
277 ELSE
278 IF(i <= nedge) THEN
279 g = gape(i)
280 ELSE
281 g = xrem_edge(e_gap,i-nedge)
282 END IF
283
284
285 xmax_edgs=
max(xx1,xx2)+g;
286 xmin_edgs=
min(xx1,xx2)-g;
287 ymax_edgs=
max(yy1,yy2)+g;
288 ymin_edgs=
min(yy1,yy2)-g;
289 zmax_edgs=
max(zz1,zz2)+g;
290 zmin_edgs=
min(zz1,zz2)-g;
291
292
293 debug_e2e(eid==d_es,xmin_edgs)
294 debug_e2e(eid==d_es,ymin_edgs)
295 debug_e2e(eid==d_es,zmin_edgs)
296 debug_e2e(eid==d_es,xmax_edgs)
297 debug_e2e(eid==d_es,ymax_edgs)
298 debug_e2e(eid==d_es,zmax_edgs)
299
300
301 END IF
302
303
304
305
306
307
308
309 ix1=int(nbx*(xmin_edgs-xminb)/(xmaxb-xminb))
310 iy1=int(nby*(ymin_edgs-yminb)/(ymaxb-yminb))
311 iz1=int(nbz*(zmin_edgs-zminb)/(zmaxb-zminb))
315
316 ix2=int(nbx*(xmax_edgs-xminb)/(xmaxb-xminb))
317 iy2=int(nby*(ymax_edgs-yminb)/(ymaxb-yminb))
318 iz2=int(nbz*(zmax_edgs-zminb)/(zmaxb-zminb))
322
323
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358 DO iz = iz1,iz2
359 DO iy = iy1,iy2
360 DO ix = ix1,ix2
361
362 first_add = voxel(ix,iy,iz)
363
364 IF(first_add == 0)THEN
365
366 voxel(ix,iy,iz) = current_add
370 ELSE
371
377 ENDIF
378
379 current_add = current_add+1
380
381 IF( current_add>=max_add)THEN
382
383
384 max_add = 2 * max_add
385
389 ENDIF
390
391 ENDDO
392 ENDDO
393 ENDDO
394
395 ENDDO
396
397 END IF
398
400
401
404
405
406
407 IF(sh_edge==0) GOTO 300
408
409
410
411
412
413
414
415 j_stok = 0
416
417 DO i=1,nedge_t
418
419 iedg=eshift+i
420
421 IF(stfe(iedg)==zero) cycle
422 ne=ledge(1,iedg)
423
424 IF(iabs(ledge(7,iedg))==1) cycle
425
426
427
428
429
430 aaa = marge+bgapemx+gape(iedg)+dgapload
431
432 n1 = ledge(5,iedg)
433 n2 = ledge(6,iedg)
434 mm1 = itab(n1)
435 mm2 = itab(n2)
438
439 IF(ilev==2)THEN
440 ims1 =
bitget(ebinflg(iedg),0)
441 ims2 =
bitget(ebinflg(iedg),1)
442 END IF
443
444
445
446
447
448 xx1=x(1,n1)
449 xx2=x(1,n2)
450 yy1=x(2,n1)
451 yy2=x(2,n2)
452 zz1=x(3,n1)
453 zz2=x(3,n2)
454 xmax_edgm=
max(xx1,xx2)+gape(iedg)
455 xmin_edgm=
min(xx1,xx2)-gape(iedg)
456 ymax_edgm=
max(yy1,yy2)+gape(iedg)
457 ymin_edgm=
min(yy1,yy2)-gape(iedg)
458 zmax_edgm=
max(zz1,zz2)+gape(iedg)
459 zmin_edgm=
min(zz1,zz2)-gape(iedg)
460
461
462
463
464 ix1=int(nbx*(xmin_edgm-aaa-xminb)/(xmaxb-xminb))
465 iy1=int(nby*(ymin_edgm-aaa-yminb)/(ymaxb-yminb))
466 iz1=int(nbz*(zmin_edgm-aaa-zminb)/(zmaxb-zminb))
470
471 ix2=int(nbx*(xmax_edgm+aaa-xminb)/(xmaxb-xminb))
472 iy2=int(nby*(ymax_edgm+aaa-yminb)/(ymaxb-yminb))
473 iz2=int(nbz*(zmax_edgm+aaa-zminb)/(zmaxb-zminb))
477
478
479 IF(flagremnode==2)THEN
480 k = kremnode_edg(2*(iedg-1)+1)
481 l = kremnode_edg(2*(iedg-1)+2)-1
482 DO m=k,l
483 tagremline(remnode_edg(m)) = 1
484 ENDDO
485 ENDIF
486
487 DO iz = iz1,iz2
488 DO iy = iy1,iy2
489 DO ix = ix1,ix2
490
491 chain_add = voxel(ix,iy,iz)
492 DO WHILE(chain_add /= 0)
494
495 IF(tagedg(jj)/=0)THEN
496
498 cycle
499 END IF
500 tagedg(jj)=1
501
502
503 IF (jj<=nedge)THEN
504 ss1= itab(ledge(5,jj))
505 ss2= itab(ledge(6,jj))
506 eid = ledge(8,jj)
507 ELSE
511 END IF
512
513 IF( (ss1==mm1).OR.(ss1==mm2).OR.
514 . (ss2==mm1).OR.(ss2==mm2) )THEN
516 cycle
517 END IF
518
519 IF(ilev==2)THEN
520 IF(jj <= nedge) THEN
521 iss1=
bitget(ebinflg(jj),0)
522 iss2=
bitget(ebinflg(jj),1)
523 ELSE
524
527 ENDIF
528
529 IF(.NOT.((ims1 == 1 .and. iss2==1).or.
530 . (ims2 == 1 .and. iss1==1)))THEN
532 cycle
533 ENDIF
534 ENDIF
535
536 IF( jj <= nedge) THEN
537 edge_type = ledge(7,jj)
538 ELSE
539 edge_type =
irem_edge(e_type ,jj - nedge)
540 ENDIF
541
542 IF(iabs(ledge(7,iedg))/=1 .AND. edge_type /= 1 )THEN
543
544
547
548 IF(am1 < as1 .OR. (am1 == as1 .AND. am2 < as2))THEN
550 cycle
551 ENDIF
552 ENDIF
553
554 IF (flagremnode == 2) THEN
555 IF (jj <= nedge) THEN
556
557 IF(tagremline(jj)==1) THEN
559 cycle
560 ENDIF
561
562 IF(tagremline(jj)==0) THEN
563
564 k = kremnode_edg(2*(iedg-1)+2)
565 l = kremnode_edg(2*(iedg-1)+3)-1
566 remove_remote = 0
567 DO m=k,l,2
568 IF ((ss1==remnode_edg(m)).AND.(ss2==remnode_edg(m+1))) remove_remote = 1
569 ENDDO
570 IF (remove_remote==1) THEN
572 cycle
573 ENDIF
574 ENDIF
575 ELSE
576
577 k = kremnode_edg(2*(iedg-1)+2)
578 l = kremnode_edg(2*(iedg-1)+3)-1
579 remove_remote = 0
580 DO m=k,l,2
581 IF ((ss1==remnode_edg(m
582 ENDDO
583 IF (remove_remote==1) THEN
585 cycle
586 ENDIF
587 ENDIF
588 ENDIF
589
590 j_stok = j_stok + 1
591 assert(jj > 0)
593 prov_s(j_stok) = jj
594 prov_m(j_stok) = iedg
595
596 debug_e2e(ledge(8,iedg) == d_em .AND. eid == d_es,eid)
597
598
599
601
602 IF(j_stok==nvsiz)THEN
604 1 nvsiz ,irect ,x ,ii_stok,inacti,
605 2 cands_e2e,candm_e2e ,mulnsne,noint ,marge ,
606 3 i_mem(1) ,prov_s ,prov_m ,igap0,cand_a,
607 4 nedge ,ledge ,itab ,drad2 ,igap ,
608 5 gape ,gap_e_l,admsr ,edg_bisector,vtx_bisector ,
609 6 cand_p,ifq,cande2e_fx ,cande2e_fy,cande2e_fz,ifpen_e,
610 7 dgapload)
611 IF(i_mem(1)/=0) GOTO 300
612 j_stok = 0
613 ENDIF
614
615
616 ENDDO
617
618 ENDDO
619 ENDDO
620 ENDDO
621
622
623 DO iz = iz1,iz2
624 DO iy = iy1,iy2
625 DO ix = ix1,ix2
626
627 chain_add = voxel(ix,iy,iz)
628 DO WHILE(chain_add /= 0)
629
631 tagedg(jj)=0
632
634
635 END DO
636
637 ENDDO
638 ENDDO
639 ENDDO
640
641
642
643 IF(flagremnode==2)THEN
644 k = kremnode_edg(2*(iedg-1)+1)
645 l = kremnode_edg(2*(iedg-1)+2)-1
646 DO m=k,l
647 tagremline(remnode_edg(m)) = 0
648 ENDDO
649 ENDIF
650
651 ENDDO
652
653
654
655
656
658 1 j_stok ,irect ,x ,ii_stok,inacti,
659 2 cands_e2e,candm_e2e ,mulnsne,noint ,marge ,
660 3 i_mem(1) ,prov_s ,prov_m ,igap0,cand_a,
661 4 nedge ,ledge ,itab ,drad2 ,igap ,
662 5 gape ,gap_e_l,admsr ,edg_bisector,vtx_bisector ,
663 6 cand_p,ifq,cande2e_fx ,cande2e_fy,cande2e_fz,ifpen_e,
664 7 dgapload)
665
666 300 CONTINUE
667
668
669
670 IF(sol_edge==0) GOTO 400
671
672
673
674
675
676
677
678 j_stok = 0
679
680 DO i=1,nrtm_t
681
682 ne =sshift+i
683
684 IF(msegtyp(ne)/=0) cycle
685 IF(stf(ne)==zero) cycle
686
687 m1 = irect(1,ne)
688 m2 = irect(2,ne)
689 m3 = irect(3,ne)
690 m4 = irect(4,ne)
691
692 mm1= itab(m1)
693 mm2= itab(m2)
694 mm3= itab(m3)
695 mm4= itab(m4)
696
697 xx1=x(1,m1)
698 yy1=x(2,m1)
699 zz1=x(3,m1)
700 xx2=x(1,m2)
701 yy2=x(2,m2)
702 zz2=x(3,m2)
703 xx3=x(1,m3)
704 yy3=x(2,m3)
705 zz3=x(3,m3)
706 xx4=x(1,m4)
707 yy4=x(2,m4)
708 zz4=x(3,m4)
709
710 xmax_edgm=
max(xx1,xx2,xx3,xx4)
711 xmin_edgm=
min(xx1,xx2,xx3,xx4)
712 ymax_edgm=
max(yy1,yy2,yy3,yy4)
713 ymin_edgm=
min(yy1,yy2,yy3,yy4)
714 zmax_edgm=
max(zz1,zz2,zz3,zz4)
715 zmin_edgm=
min(zz1,zz2,zz3,zz4)
716
717 dx=em02*(xmax_edgm-xmin_edgm)
718 dy=em02*(ymax_edgm-ymin_edgm)
719 dz=em02*(zmax_edgm-zmin_edgm)
720 xmax_edgm=xmax_edgm+dx
721 xmin_edgm=xmin_edgm-dx
722 ymax_edgm=ymax_edgm+dy
723 ymin_edgm=ymin_edgm-dy
724 zmax_edgm=zmax_edgm+dz
725 zmin_edgm=zmin_edgm-dz
726
727 aaa = marge+bgapemx+dgapload
728
729
730
731
732
733 ix1=int(nbx*(xmin_edgm-aaa-xminb)/(xmaxb-xminb))
734 iy1=int(nby*(ymin_edgm-aaa-yminb)/(ymaxb-yminb))
735 iz1=int(nbz*(zmin_edgm-aaa-zminb)/(zmaxb-zminb))
739
740 ix2=int(nbx*(xmax_edgm+aaa-xminb)/(xmaxb-xminb))
741 iy2=int(nby*(ymax_edgm+aaa-yminb)/(ymaxb-yminb))
742 iz2=int(nbz*(zmax_edgm+aaa-zminb)/(zmaxb-zminb))
746
747 IF(ilev==2)THEN
748 ims1 =
bitget(mbinflg(ne),0)
749 ims2 =
bitget(mbinflg(ne),1)
750 END IF
751
752#ifdef WITH_ASSERT
753
754 ids(1) = itab(irect(1,ne))
755 ids(2) = itab(irect(2,ne))
756 ids(3) = itab(irect(3,ne))
757 ids(4) = itab(irect(4,ne))
764#endif
765
766
767 IF(flagremnode==2)THEN
768 k = kremnode_e2s(2*(ne-1)+1)
769 l = kremnode_e2s(2*(ne-1)+2)-1
770 DO m=k,l
771 tagremline(remnode_e2s(m)) = 1
772 ENDDO
773 ENDIF
774
775 DO iz = iz1,iz2
776 DO iy = iy1,iy2
777 DO ix = ix1,ix2
778
779 chain_add = voxel(ix,iy,iz)
780 DO WHILE(chain_add /= 0)
782
783
784 IF (jj<=nedge)THEN
785 eid = ledge(8,jj)
786 ELSE
788 END IF
789
790 IF(tagedg(jj)/=0)THEN
792 cycle
793 END IF
794 tagedg(jj)=1
795
796
797 IF (jj<=nedge)THEN
798 ss1= itab(ledge(5,jj))
799 ss2= itab(ledge(6,jj))
800 ELSE
803 END IF
804
805 IF((ss1==mm1).OR.(ss1==mm2).OR.(ss1==mm3).OR.(ss1==mm4).OR.
806 . (ss2==mm1).OR.(ss2==mm2).OR.(ss2==mm3).OR.(ss2==mm4))THEN
808 cycle
809 END IF
810
811 IF(ilev==2)THEN
812 IF(jj <= nedge) THEN
813 iss1=
bitget(ebinflg(jj),0)
814 iss2=
bitget(ebinflg(jj),1)
815 ELSE
818 ENDIF
819 IF(.NOT.((ims1 == 1 .and. iss2==1).or.
820 . (ims2 == 1 .and. iss1==1)))THEN
822 cycle
823 ENDIF
824 ENDIF
825
826
827 IF (flagremnode == 2) THEN
828 IF (jj<=nedge)THEN
829
830 IF(tagremline(jj)==1) THEN
832 cycle
833 ENDIF
834 ELSE
835
836 k = kremnode_e2s(2*(ne-1)+2)
837 l = kremnode_e2s(2*(ne-1)+3)-1
838 remove_remote = 0
839 DO m=k,l,2
840 IF ((ss1==remnode_e2s(m)).AND.(ss2==remnode_e2s(m+1))) remove_remote = 1
841 ENDDO
842 IF (remove_remote==1) THEN
844 cycle
845 ENDIF
846 ENDIF
847 ENDIF
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863 j_stok = j_stok + 1
864 prov_s(j_stok) = jj
865 prov_m(j_stok) = ne
866
867
868
869#ifdef WITH_ASSERT
870 prov_ids(2,j_stok) = eid
872#endif
873
874
875 assert(jj > 0)
877
878 IF(j_stok==nvsiz)THEN
880 1 nvsiz ,irect ,x ,ll_stok,inacti,
881 2 cands_e2s,candm_e2s,mulnsns,noint ,marge ,
882 3 i_mem(2) ,prov_s ,prov_m ,igap0 ,cand_b,
883 4 nedge ,ledge ,itab ,drad2 ,igap ,
884 5 gap_m ,gap_m_l,gape ,gap_e_l,admsr ,
885 6 edg_bisector,vtx_bisector ,cand_ps,prov_ids,
886 7 ifq,cande2s_fx ,cande2s_fy,cande2s_fz,ifpen_e2s,
887 8 dgapload)
888
889 IF(i_mem(2)/=0) GOTO 400
890 j_stok = 0
891 ENDIF
892
893
895
896 ENDDO
897
898 ENDDO
899 ENDDO
900 ENDDO
901
902
903 DO iz = iz1,iz2
904 DO iy = iy1,iy2
905 DO ix = ix1,ix2
906
907 chain_add = voxel(ix,iy,iz)
908 DO WHILE(chain_add /= 0)
909
911 tagedg(jj)=0
912
914
915 END DO
916
917 ENDDO
918 ENDDO
919 ENDDO
920
921
922 IF(flagremnode==2)THEN
923 k = kremnode_e2s(2*(ne-1)+1)
924 l = kremnode_e2s(2*(ne-1)+2)-1
925 DO m=k,l
926 tagremline(remnode_e2s(m)) = 0
927 ENDDO
928 ENDIF
929
930 ENDDO
931
932
933
935 1 j_stok ,irect ,x ,ll_stok,inacti,
936 2 cands_e2s,candm_e2s,mulnsns,noint ,marge ,
937 3 i_mem(2) ,prov_s ,prov_m ,igap0 ,cand_b,
938 4 nedge ,ledge ,itab ,drad2 ,igap ,
939 5 gap_m ,gap_m_l,gape ,gap_e_l,admsr ,
940 6 edg_bisector,vtx_bisector ,cand_ps,prov_ids,
941 7 ifq,cande2s_fx ,cande2s_fy,cande2s_fz,ifpen_e2s,
942 8 dgapload)
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967 400 CONTINUE
968
969
970
971
973
977
981
982 IF (itask==0)THEN
983
984 DO k= tmin(3),tmax(3)
985 DO j= tmin(2),tmax(2)
986 DO i= tmin(1),tmax(1)
987 voxel(i,j,k) = 0
988 END DO
989 END DO
990 END DO
991
995 IF(flagremnode==2) DEALLOCATE(tagremline)
996 ENDIF
997
998 DEALLOCATE(tagedg)
999
1000
1001
1002 RETURN
integer function bitget(i, n)
subroutine ymax(idn, fac, npc, pld, stiffmin, stiffmax, stiffini, stiffavg)
pure integer function int_checksum(a, siz1, siz2)
integer function, dimension(:), pointer ireallocate(ptr, new_size)
integer, dimension(:), pointer lchain_elem
integer, dimension(:), pointer lchain_last
integer, dimension(:), pointer lchain_next
integer, dimension(:,:), allocatable irem_edge
subroutine i25sto_e2s(j_stok, irect, x, ii_stok, inacti, cand_s, cand_m, mulnsn, noint, marge, i_mem, prov_s, prov_m, igap0, cand_a, nedge, ledge, itab, drad, igap, gap_m, gap_m_l, gape, gap_e_l, admsr, edg_bisector, vtx_bisector, cand_p, dgapload)
subroutine i25sto_edg(j_stok, irect, x, ii_stok, inacti, cand_s, cand_m, mulnsn, noint, marge, i_mem, prov_s, prov_m, igap0, cand_a, nedge, ledge, itab, drad, igap, gape, gap_e_l, admsr, edg_bisector, vtx_bisector, cand_p, dgapload)