44
45
46
47#include "implicit_f.inc"
48
49
50
51#include "mvsiz_p.inc"
52
53
54
55 INTEGER, INTENT(IN) :: NEL
57 . vol(mvsiz),ksi,eta,zeta
58 double precision
59 . kl(24,24,mvsiz), hh(2,mvsiz),
60 . dn_x(mvsiz,8),dn_y(mvsiz,8),dn_z(mvsiz,8),ktemp(6,24),b(6,24),
61 . hv(6,6),dn_r(8),dn_s(8),dn_t(8),invj(9,mvsiz)
63 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
64 . x5(mvsiz), x6(mvsiz), x7(mvsiz), x8(mvsiz),
65 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
66 . y5(mvsiz), y6(mvsiz), y7(mvsiz), y8(mvsiz),
67 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
68 . z5(mvsiz), z6(mvsiz), z7(mvsiz), z8(mvsiz)
70 . a11(mvsiz), a12(mvsiz), a13(mvsiz
71 . a21(mvsiz), a22(mvsiz), a23(mvsiz),
72 . a31(mvsiz), a32(mvsiz), a33(mvsiz)
73
74
75
76#if defined(MYREAL8) && !defined(WITHOUT_LINALG)
77 INTEGER I, J,JJ,K,JK, IS
78 b(1:6,1:24) = zero
79 hv(1:6,1:6) = zero
80
81 DO i=1,nel
82
83
84
85
86
87
88
89
90
91
92
93
94
95
97 . x1(i),x2(i),x3(i),x4(i),x5(i),x6(i),x7(i),x8(i),
98 . y1(i),y2(i),y3(i),y4(i),y5(i),y6(i),y7(i),y8(i),
99 . z1(i),z2(i),z3(i),z4(i),z5(i),z6(i),z7(i),z8(i),
100 . invj(1,i),ksi,eta,zeta,
101 . a11(i),a12(i),a13(i),
102 . a21(i),a22(i),a23(i),
103 . a31(i),a32(i),a33(i),
104 . dn_r, dn_s, dn_t,b)
105
106 hv(1,1) = (hh(1,i)+two*hh(2,i))*vol(i)
107 hv(2,1) = hh(1,i)*vol(i)
108 hv(3,1) = hh(1,i)*vol(i)
109 hv(1,2) = hh(1,i)*vol(i)
110 hv(2,2) = (hh(1,i)+two*hh(2,i))*vol(i)
111 hv(3,2) = hh(1,i)*vol(i)
112 hv(1,3) = hh(1,i)*vol(i)
113 hv(2,3) = hh(1,i)*vol(i)
114 hv(3,3) = (hh(1,i)+two*hh(2,i))*vol(i)
115 hv(4,4) = hh(2,i)*vol(i)
116 hv(5,5) = hh(2,i)*vol(i)
117 hv(6,6) = hh(2,i)*vol(i)
118
119 ktemp(1:6,1:24)=zero
120
121
122
123
124
125
126
127
128
129 CALL dsymm(
'L',
'U',6,24,one,hv,6,b,6,zero,ktemp,6)
130
131
132
133
134
135
136
137 CALL dgemm(
'T',
'N',24,24,6,one,b,6,ktemp,6,one,kl(1,1,i),24)
138 ENDDO
139#else
141#endif
142 RETURN
subroutine dgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
DGEMM
subroutine dsymm(side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)
DSYMM
subroutine s8sansb(x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, invj, ksi, eta, zeta, a11, a12, a13, a21, a22, a23, a31, a32, a33, dn_r, dn_s, dn_t, bb)