47 use element_mod , only : nixs
48
49
50
51#include "implicit_f.inc"
52
53
54
55#include "mvsiz_p.inc"
56
57
58
59
60
61
62 INTEGER, INTENT(IN) :: NEL
63 INTEGER IXS(NIXS,*), IDEGE(*)
65 . volg(*),lat(*),
66 . x1(*), x2(*), x3(*), x4(*), x5(*), x6(*), x7(*), x8(*),
67 . y1(*), y2(*), y3(*), y4(*), y5(*), y6(*), y7(*), y8(*),
68 . z1(*), z2(*), z3(*), z4(*), z5(*), z6(*), z7(*), z8(*)
69
70
71
72
73 INTEGER I,IT
75 . aream(mvsiz),fac,v_g
76
79
80 DO i=1,nel
81
83 aream(i) =em20
84
86 fac=one_over_9
87 ELSEIF (
idege(i)>1)
THEN
88 fac=fourth
89 ELSE
90 fac=one
91 END IF
92 it = 0
93 CALL idege8(x1(i),x2(i),x3(i),x4(i),y1(i),y2(i),y3(i),y4(i),
94 . z1(i),z2(i),z3(i),z4(i),aream(i),fac,it)
95 CALL idege8(x5(i),x6(i),x7(i),x8(i),y5(i),y6(i),y7(i),y8(i),
96 . z5(i),z6(i),z7(i),z8(i),aream(i),fac,it)
97 CALL idege8(x1(i),x2(i),x6(i),x5(i),y1(i),y2(i),y6(i),y5(i),
98 . z1(i),z2(i),z6(i),z5(i),aream(i),fac,it)
99 CALL idege8(x2(i),x3(i),x7(i),x6(i),y2(i),y3(i),y7(i),y6(i),
100 . z2(i),z3(i),z7(i),z6(i),aream(i),fac,it)
101 CALL idege8(x3(i),x4(i),x8(i),x7(i),y3(i),y4(i),y8(i),y7(i),
102 . z3(i),z4(i),z8(i),z7(i),aream(i),fac,it)
103 CALL idege8(x4(i),x1(i),x5(i),x8(i),y4(i),y1(i),y5(i),y8(i),
104 . z4(i),z1(i),z5(i),z8(i),aream(i),fac,it)
105
106 IF (it ==0 ) aream(i)=fac*aream(i)
107 IF (
idege(i)>3 )
THEN
108 aream(i)=aream(i)*fac
110 . x1(i), x2(i), x3(i), x4(i), x5(i), x6(i), x7(i), x8(i),
111 . y1(i), y2(i), y3(i), y4(i), y5(i), y6(i), y7(i), y8(i),
112 . z1(i), z2(i), z3(i), z4(i), z5(i), z6(i), z7(i), z8(i))
113 ELSE
114 v_g=volg(i)
115 END IF
116 lat(i) = four*v_g/sqrt(aream(i))
117
118 ENDIF
119 ENDDO
120
121 RETURN
subroutine degenes8(ixs, idege, nel)
subroutine deges4v(det, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8)
subroutine idege8(x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, amax, fac, it)
subroutine idege(x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, a, amax, fac, it4, it, indx, n_indx)