36
37
38
39#include "implicit_f.inc"
40
41
42
43#include "mvsiz_p.inc"
44
45
46
47
48
49
50 INTEGER, INTENT(IN) :: NEL,ICS
51 my_real,
DIMENSION(MVSIZ) ,
INTENT(OUT) ::
area,llsh
52 my_real,
DIMENSION(MVSIZ) ,
INTENT(IN) ::
53 . voln,
54 . x1, x2, x3, x4, x5, x6, x7, x8,
55 . y1, y2, y3, y4, y5, y6, y7, y8,
56 . z1, z2, z3, z4, z5, z6, z7, z8
57
58
59
60 INTEGER I, J, N
62 . rx(mvsiz),ry(mvsiz),rz(mvsiz),sx(mvsiz),sy(mvsiz),sz(mvsiz),
63 . xn(mvsiz,4) , yn(mvsiz,4) , zn(mvsiz,4)
65 . al1,al2,e3x,e3y,e3z,det
66
67 SELECT CASE(ics)
68 CASE (1)
69 DO i=1,nel
70 xn(i,1) = half*(x1(i)+x4(i))
71 yn(i,1) = half*(y1(i)+y4(i))
72 zn(i,1) = half*(z1(i)+z4(i))
73 xn(i,2) = half*(x2(i)+x3(i))
74 yn(i,2) = half*(y2(i)+y3(i))
75 zn(i,2) = half*(z2(i)+z3(i))
76 xn(i,3) = half*(x6(i)+x7(i))
77 yn(i,3) = half*(y6(i)+y7(i))
78 zn(i,3) = half*(z6(i)+z7(i))
79 xn(i,4) = half*(x5(i)+x8(i))
80 yn(i,4) = half*(y5(i)+y8(i))
81 zn(i,4) = half*(z5(i)+z8(i))
82 ENDDO
83 CASE (10)
84 DO i=1,nel
85 xn(i,1) = half*(x1(i)+x5(i))
86 yn(i,1) = half*(y1(i)+y5(i))
87 zn(i,1) = half*(z1(i)+z5(i))
88 xn(i,2) = half*(x2(i)+x6(i))
89 yn(i,2) = half*(y2(i)+y6(i))
90 zn(i,2) = half*(z2(i)+z6(i))
91 xn(i,3) = half*(x3(i)+x7(i))
92 yn(i,3) = half*(y3(i)+y7(i))
93 zn(i,3) = half*(z3(i)+z7(i))
94 xn(i,4) = half*(x4(i)+x8(i))
95 yn(i,4) = half*(y4(i)+y8(i))
96 zn(i,4) = half*(z4(i)+z8(i))
97 ENDDO
98 CASE (100)
99 DO i=1,nel
100 xn(i,1) = half*(x1(i)+x2(i))
101 yn(i,1) = half*(y1(i)+y2(i))
102 zn(i,1) = half*(z1(i)+z2(i))
103 xn(i,2) = half*(x5(i)+x6(i))
104 yn(i,2) = half*(y5(i)+y6(i))
105 zn(i,2) = half*(z5(i)+z6(i))
106 xn(i,3) = half*(x8(i)+x7(i))
107 yn(i,3) = half*(y8(i)+y7(i))
108 zn(i,3) = half*(z8(i)+z7(i))
109 xn(i,4) = half*(x4(i)+x3(i))
110 yn(i,4) = half*(y4(i)+y3(i))
111 zn(i,4) = half*(z4(i)+z3(i))
112 ENDDO
113 END SELECT
114
115 DO i=1,nel
116 rx(i)=xn(i,2)+xn(i,3)-xn(i,1)-xn(i,4)
117 ry(i)=yn(i,2)+yn(i,3)-yn(i,1)-yn(i,4)
118 rz(i)=zn(i,2)+zn(i,3)-zn(i,1)-zn(i,4)
119 sx(i)=xn(i,3)+xn(i,4)-xn(i,1)-xn(i,2)
120 sy(i)=yn(i,3)+yn(i,4)-yn(i,1)-yn(i,2)
121 sz(i)=zn(i,3)+zn(i,4)-zn(i,1)-zn(i,2)
122 ENDDO
123 DO i=1,nel
124 e3x = ry(i) * sz(i) - rz(i) * sy(i)
125 e3y = rz(i) * sx(i) - rx(i) * sz(i)
126 e3z = rx(i) * sy(i) - ry(i) * sx(i)
127 det = sqrt(e3x*e3x + e3y*e3y + e3z*e3z)
129 al1 = rx(i)*rx(i) + ry(i)*ry(i)+ rz(i)*rz(i)
130 al2 = sx(i)*sx(i) + sy(i)*sy(i)+ sz(i)*sz(i)
131 llsh(i) = fourth*
max(al1,al2)
132 ENDDO
133
134 RETURN
subroutine area(d1, x, x2, y, y2, eint, stif0)