32
33
34
35 USE elbufdef_mod
36
37
38
39#include "implicit_f.inc"
40
41#include "mvsiz_p.inc"
42
43
44
45 INTEGER NLAY,NPTT,LFT,LLT,IXFEM,IR,IS,IREP,IXEL
47 . thkly(*),posly(mvsiz,*)
48
49 TYPE(ELBUF_STRUCT_), TARGET, intent(inout) :: ELBUF_STR
50 TYPE(ELBUF_STRUCT_), TARGET, intent(inout) :: XFEM_STR
51
52
53
54 INTEGER I,II,ILAY,IT,J,IPT,L_DIRA,L_DIRB
56 . thkt
58 . DIMENSION(:) ,POINTER :: dir1,dir2,dir1x,dir2x
59
60 TYPE(G_BUFEL_) , POINTER :: GBUF
61 TYPE(L_BUFEL_) , POINTER :: LBUF
62
63
64
65 IF (nlay > 1) THEN
66 DO ilay=1,nlay
67 DO i=lft,llt
68 j = (ilay-1)*llt + i
69 thkt = elbuf_str%GBUF%THK(i)
70 xfem_str%BUFLY(ilay)%LBUF(1,1,1)%THK(i) = thkly(j)*thkt
71 ENDDO
72 ENDDO
73 ELSE
74
75 ENDIF
76
77
78
79 l_dira = elbuf_str%BUFLY(1)%LY_DIRA
80 l_dirb = elbuf_str%BUFLY(1)%LY_DIRB
81 DO ilay=1,nlay
82 dir1 => elbuf_str%BUFLY(ilay)%DIRA(1:l_dira*llt)
83 dir2 => elbuf_str%BUFLY(ilay)%DIRB(1:l_dirb*llt)
84 dir1x => xfem_str%BUFLY(ilay)%DIRA(1:l_dira*llt)
85 dir2x => xfem_str%BUFLY(ilay)%DIRB(1:l_dirb*llt)
86 DO i=lft,llt
87 ii = 2*(i-1)
88 IF (l_dira == 0) THEN
89 CONTINUE
90 ELSEIF (irep == 0 .OR. irep == 1) THEN
91 dir1x(ii+1) = dir1(ii+1)
92 dir1x(ii+2) = dir1(ii+2)
93 ELSEIF (irep == 2) THEN
94 dir1x(ii+1) = dir1(ii+1)
95 dir1x(ii+2) = dir1(ii+2)
96 dir2x(ii+1) = dir2(ii+1)
97 dir2x(ii+2) = dir2(ii+2)
98 ENDIF
99 ENDDO
100 ENDDO
101
102 IF (nlay > 1) THEN
103 DO ilay=1,nlay
104 lbuf => xfem_str%BUFLY(ilay)%LBUF(1,1,1)
105 DO i=lft,llt
106 lbuf%OFF(i) = -one
107 ENDDO
108 ENDDO
109 ELSE
110 gbuf => xfem_str%GBUF
111 DO i=lft,llt
112 gbuf%OFF(i) = -one
113 ENDDO
114 ENDIF
115
116 RETURN