33
35
36
37
38#include "implicit_f.inc"
39
40
41
42#include "com04_c.inc"
43#include "com_xfem1.inc"
44
45
46
47 INTEGER NODFT,NODLT
48 INTEGER ADDCNE_CRK(*),INOD_CRK(*),NODENR(*),NODLEVXF(*),ITAB(NUMNOD)
49 TYPE(XFEM_SKY_), DIMENSION(*) :: CRKSKY
50
51
52
53 INTEGER I,KK,NSX,NC_CRK,NCT_CRK,EN0,ILEV,NLEV
54 my_real,
DIMENSION(:,:),
ALLOCATABLE :: xfac0
55
56 ALLOCATE(xfac0(6,ienrnod))
57
58 DO i = nodft,nodlt
59 nsx = inod_crk(i)
60 IF (nsx <= 0) cycle
61 xfac0 = zero
62 nct_crk = addcne_crk(nsx)-1
63 nc_crk = addcne_crk(nsx+1)-addcne_crk(nsx)
64 nlev = nodlevxf(nsx)
65
66 DO ilev=1,nlev
67 DO kk = nct_crk+1, nct_crk+nc_crk
69 IF (en0 > 0) THEN
70 xfac0(1,en0) = xfac0(1,en0) + crksky(ilev)%FSKY(1,kk)
71 xfac0(2,en0) = xfac0(2,en0) + crksky(ilev)%FSKY(2,kk)
72 xfac0(3,en0) = xfac0(3,en0) + crksky(ilev)%FSKY(3,kk)
73 xfac0(4,en0) = xfac0(4,en0) + crksky(ilev)%FSKY(4,kk)
74 xfac0(5,en0) = xfac0(5,en0) + crksky(ilev)%FSKY(5,kk
75 xfac0(6,en0) = xfac0(6,en0) + crksky(ilev)%FSKY(6,kk)
76 END IF
77
78 END DO
79 END DO
80
81 DO ilev=1,nlev
82 DO kk = nct_crk+1, nct_crk+nc_crk
84 IF (en0 > 0) THEN
85 crksky(ilev)%FSKY(1,kk) = xfac0(1,en0)
86 crksky(ilev)%FSKY(2,kk) = xfac0(2,en0)
87 crksky(ilev)%FSKY(3,kk) = xfac0(3,en0)
88 crksky(ilev)%FSKY(4,kk) = xfac0(4,en0)
89 crksky(ilev)%FSKY(5,kk) = xfac0(5,en0)
90 crksky(ilev)%FSKY(6,kk) = xfac0(6,en0)
91 END IF
92 END DO
93 END DO
94
95 END DO
96
97 DEALLOCATE(xfac0)
98
99 RETURN
type(xfem_lvset_), dimension(:), allocatable crklvset