32 use element_mod , only : nixs,nixq,nixc,nixt,nixp,nixr,nixtg,nixtg
33
34
35
36#include "implicit_f.inc"
37
38
39
40#include "com04_c.inc"
41#include "param_c.inc"
42#include "scr23_c.inc"
43#include "sms_c.inc"
44
45
46
47 INTEGER NDOF(*), IXS(NIXS,*), IXQ(NIXQ,*), IXC(NIXC,*),
48 . IXT(NIXT,*), IXP(NIXP,*), IXR(NIXR,*),
49 . IXTG(NIXTG,*), KXX(NIXX,*), IXX(*)
51 . geo(npropg,*)
52
53
54
55 INTEGER I, IEL, J, N, IGTYP, NN
56 INTEGER, DIMENSION(:), ALLOCATABLE :: TAG8
57
58 ALLOCATE(tag8(numnod))
59
60
61
62 DO i=1,numnod
63 ndof(i)=0
64 ENDDO
65
66 IF(isms==0)THEN
67
68 DO iel=1,numels
69 DO j=1,8
70 n=ixs(j+1,iel)
71 IF(n/=0)ndof(n)=3
72 ENDDO
73 ENDDO
74 DO iel=1,numelt
75 DO j=1,2
76 n=ixt(j+1,iel)
77 IF(n/=0)ndof(n)=3
78 ENDDO
79 ENDDO
80 DO iel=1,numelc
81 DO j=1,4
82 n=ixc(j+1,iel)
83 IF(n/=0)ndof(n)=6
84 ENDDO
85 ENDDO
86 DO iel=1,numeltg
87 DO j=1,3
88 n=ixtg(j+1,iel)
89 IF(n/=0)ndof(n)=6
90 ENDDO
91 ENDDO
92 DO iel=1,numelp
93 DO j=1,2
94 n=ixp(j+1,iel)
95 IF(n/=0)ndof(n)=6
96 ENDDO
97 ENDDO
98 DO iel=1,numelr
99 igtyp= nint(geo(12,ixr(1,iel)))
100 IF (igtyp==8.OR.igtyp==13 .OR. igtyp == 23) THEN
101 DO j=1,2
102 n=ixr(j+1,iel)
103 IF(n/=0)ndof(n)=6
104 ENDDO
105 ELSEIF (igtyp==4) THEN
106 DO j=1,2
107 n=ixr(j+1,iel)
108 IF(n/=0)ndof(n)=
max(ndof(n),3)
109 ENDDO
110 ENDIF
111 ENDDO
112
113
114
115
116
117
118 ELSE
119
120 DO iel=1,numels
121 DO j=1,8
122 n = ixs(j+1,iel)
123 IF(n/=0)tag8(n)=0
124 ENDDO
125 nn=0
126 DO j=1,8
127 n = ixs(j+1,iel)
128 IF(n/=0)THEN
129 IF(tag8(n)==0)THEN
130 nn=nn+1
131 tag8(n)=1
132 END IF
133 END IF
134 ENDDO
135 DO j=1,8
136 n = ixs(j+1,iel)
137 IF(n/=0)tag8(n)=0
138 ENDDO
139 DO j=1,8
140 n = ixs(j+1,iel)
141 IF(n/=0)THEN
142 IF(tag8(n)==0)THEN
143 ndof(n)=nn-1
144 tag8(n)=1
145 END IF
146 END IF
147 ENDDO
148 ENDDO
149 DO iel=1,numelt
150 DO j=1,2
151 n=ixt(j+1,iel)
152 IF(n/=0)ndof(n)=1
153 ENDDO
154 ENDDO
155 DO iel=1,numelc
156 DO j=1,4
157 n=ixc(j+1,iel)
158 IF(n/=0)ndof(n)=3
159 ENDDO
160 ENDDO
161 DO iel=1,numeltg
162 DO j=1,3
163 n=ixtg(j+1,iel)
164 IF(n/=0)ndof(n)=2
165 ENDDO
166 ENDDO
167 DO iel=1,numelp
168 DO j=1,2
169 n=ixp(j+1,iel)
170 IF(n/=0)ndof(n)=1
171 ENDDO
172 ENDDO
173 DO iel=1,numelr
174 igtyp= nint(geo(12,ixr(1,iel)))
175 IF (igtyp==8.OR.igtyp==13 .OR. igtyp == 23) THEN
176 DO j=1,2
177 n=ixr(j+1,iel)
178 IF(n/=0)ndof(n)=1
179 ENDDO
180 ELSEIF (igtyp==4) THEN
181 DO j=1,2
182 n=ixr(j+1,iel)
183 IF(n/=0)ndof(n)=1
184 ENDDO
185 ENDIF
186 ENDDO
187 END IF
188 DEALLOCATE(tag8)
189 RETURN