31
32
33
35 USE matparam_def_mod
36 use element_mod , only : nixs,nixc,nixtg
37
38
39
40#include "implicit_f.inc"
41
42
43
44#include "com04_c.inc"
45#include "param_c.inc"
46
47
48
49 INTEGER, INTENT(IN) :: IXC(NIXC,NUMELC),IXTG(NIXTG,NUMELTG),IXS(NIXS,NUMELS),IXS10(6,NUMELS10),
50 . IXS20(12,NUMELS20),IXS16(8,NUMELS16)
51 INTEGER, INTENT(INOUT) :: TAG_NLOCAL(NUMNOD)
52 TYPE (MATPARAM_STRUCT_) ,DIMENSION(NUMMAT) ,INTENT(IN) :: MAT_PARAM
53
54
55
56 INTEGER I,J,L,MID
57
58
59
60
61
62
63
64 DO j=1,numelc
65 mid = ixc(1,j)
66 IF (mat_param(mid)%NLOC > 0)THEN
67 DO l=2,5
68 tag_nlocal(ixc(l,j))=1
69 ENDDO
70 ENDIF
71 ENDDO
72
73 DO j=1,numeltg
74 mid = ixtg(1,j)
75 IF (mat_param(mid)%NLOC > 0)THEN
76 DO l=2,4
77 tag_nlocal(ixtg(l,j))=1
78 ENDDO
79 ENDIF
80 ENDDO
81
82 DO j=1,numels8
83 mid = ixs(1,j)
84 IF (mat_param(mid)%NLOC > 0)THEN
85 DO l=2,9
86 tag_nlocal(ixs(l,j))=1
87 ENDDO
88 ENDIF
89 ENDDO
90
91 DO i=1,numels10
92 j = i + numels8
93 mid = ixs(1,j)
94 IF (mat_param(mid)%NLOC > 0)THEN
95 DO l=2,9
96 tag_nlocal(ixs(l,j))=1
97 ENDDO
98 DO l=1,6
99 IF (ixs10(l,i) /= 0) THEN
100 tag_nlocal(ixs10(l,i))=1
101 ENDIF
102 ENDDO
103 ENDIF
104 ENDDO
105
106 DO i=1,numels20
107 j = i + numels8 + numels10
108 mid = ixs(1,j)
109 IF (mat_param(mid)%NLOC > 0)THEN
110 DO l=2,9
111 tag_nlocal(ixs(l,j))=1
112 ENDDO
113 DO l=1,12
114 IF (ixs20(l,i) /= 0) THEN
115 tag_nlocal(ixs20(l,i))=1
116 ENDIF
117 ENDDO
118 ENDIF
119 ENDDO
120
121 DO i=1,numels16
122 j = i + numels8 + numels10 + numels20
123 mid = ixs(1,j)
124 IF (mat_param(mid)%NLOC > 0)THEN
125 DO l=2,9
126 tag_nlocal(ixs(l,j))=0
127 ENDDO
128 DO l=1,8
129 IF (ixs16(l,i) /= 0) THEN
130 tag_nlocal(ixs16(l,i))=0
131 ENDIF
132 ENDDO
133 ENDIF
134 ENDDO
135
136 RETURN
137