32
34
35
36
37#include "implicit_f.inc"
38
39
40
41#include "com04_c.inc"
42#include "com_xfem1.inc"
43
44
45
46 INTEGER ADDCNE_CRK(*),INOD_CRK(*),NODFT,NODLT,NODENR(*),
47 . ENRTAG(NUMNOD,*),NODLEVXF(*),PROCNE_CRK(*)
48
49
50
51 INTEGER I,KK,N,NSX,,NC_CRK,EN0,ENR,ILEV,NLEV,OK_UP,ENR_MAX
52 INTEGER, DIMENSION(:),ALLOCATABLE :: IFAC0
53
54 ALLOCATE(ifac0(0:ienrnod))
55
56 DO n = nodft,nodlt
57 nsx = inod_crk(n)
58 IF (nsx <= 0) cycle
59 ifac0 = 0
60 nct_crk = addcne_crk(nsx)-1
61 nc_crk = addcne_crk(nsx+1)-addcne_crk(nsx)
62 nlev = nodlevxf(nsx)
63 DO ilev=1,nlev
64 ok_up = 0
65 DO kk = nct_crk+1, nct_crk+nc_crk
67 IF (en0 > 0) THEN
68 enr_max = enrtag(n,en0)
69 IF (enr_max > 0) THEN
70 ifac0(en0) = enr_max
71 ok_up = 1
72 ENDIF
73 ENDIF
74 ENDDO
75
76 IF (ok_up == 1) THEN
77 DO kk = nct_crk+1, nct_crk+nc_crk
79 enr = ifac0(en0)
80 IF (en0 > 0 .and. enr > 0)
crklvset(ilev)%ENR0(1,kk) = enr
81 ENDDO
82 ENDIF
83 ENDDO
84
85 enrtag(n,1:ienrnod) = 0
86 ENDDO
87
88 DEALLOCATE(ifac0)
89
90 RETURN
type(xfem_lvset_), dimension(:), allocatable crklvset