36 SUBROUTINE spgauge(LGAUGE ,GAUGE ,KXSP ,IXSP ,
37 1 SPBUF ,IPARG ,ELBUF_TAB,ISPSYM ,XSPSYM,
38 2 NOD2SP ,X ,ITASK ,WA ,WASIGSM,
49#include "implicit_f.inc"
61 INTEGER LGAUGE(3,*), KXSP(NISP,*), IXSP(KVOISPH,*),
62 . IPARG(NPARG,*), ISPSYM(NSPCOND,*), NOD2SP(*), ITASK
65 . gauge(llgauge,*), spbuf(nspbuf,*), x(3,*),xspsym(3,*),
66 . wa(kwasph,*), wasigsm(6,*), war(10,*)
67 TYPE (ELBUF_STRUCT_),
TARGET,
DIMENSION(NGROUP) :: ELBUF_TAB
68 DOUBLE PRECISION SPHG_F6(4,6,NBGAUGE)
116 INTEGER I,N,INOD,JNOD,J,NVOIS,M,
117 . NVOISS,SM,JS,NC,NS,NN,
118 . IG,NEL,KAD,NG,K,KK,SFGAUGE,FR_RL(NSPMD+2)
120 . xi,yi,zi,di,rhoi,xj,yj,zj,dj,rhoj,vj,
121 . wght,alphai,wcompi,
122 . pp,ee,press,ener,rho
123 TYPE(g_bufel_) ,
POINTER ::
125 . ,
DIMENSION(:),
ALLOCATABLE :: FGAUGE1,FGAUGE2,FGAUGE3,FGAUGE4
130 IF(lgauge(1,ig) > -(numels+1)) cycle
143 sfgauge = kxsp(4,n) + kxsp(6,n)
144 ALLOCATE(fgauge1(sfgauge),fgauge2(sfgauge),fgauge3(sfgauge),fgauge4(sfgauge))
150 IF(kxsp(2,m)<=0) cycle
156 vj=spbuf(12,m)/
max(em20,rhoj)
157 CALL weight0(xi,yi,zi,xj,yj,zj,dj,wght)
159 pp=-third*(wa(1,m)+wa(2,m)+wa(3,m))
161 fgauge2(j) = vj*wght*pp
162 fgauge3(j) = vj*wght*rhoj
170 DO j=kxsp(5,n)+1,kxsp(5,n)+nvoiss
181 vj=spbuf(12,sm)/
max(em20,rhoj)
182 CALL weight0(xi,yi,zi,xj,yj,zj,dj,wght)
184 pp=-third*(wasigsm(1,js)+wasigsm(2,js)+wasigsm(3,js))
187 fgauge2(k) = vj*wght*pp
188 fgauge3(k) = vj*wght*rhoj
196 sphg_f6(1,k,ig) = zero
197 sphg_f6(2,k,ig) = zero
198 sphg_f6(3,k,ig) = zero
199 sphg_f6(4,k,ig) = zero
203 CALL sum_6_float(1 ,sfgauge ,fgauge1, sphg_f6(1,1,ig),4)
204 CALL sum_6_float(1 ,sfgauge ,fgauge2, sphg_f6(2,1,ig),4)
205 CALL sum_6_float(1 ,sfgauge ,fgauge3, sphg_f6(3,1,ig),4)
206 CALL sum_6_float(1 ,sfgauge ,fgauge4, sphg_f6(4,1,ig),4)
210 sphg_f6(1,k,ig) = sphg_f6(1,k,ig) + fgauge1(i)
211 sphg_f6(2,k,ig) = sphg_f6(2,k,ig) + fgauge2(i)
212 sphg_f6(3,k,ig) = sphg_f6(3,k,ig) + fgauge3(i)
213 sphg_f6(4,k,ig) = sphg_f6(4,k,ig) + fgauge4(i)
217 DEALLOCATE(fgauge1,fgauge2,fgauge3,fgauge4)
234 IF(lgauge(1,ig) > -(numels+1)) cycle
235 wcompi = sphg_f6(1,1,ig)+sphg_f6(1,2,ig)+sphg_f6(1,3,ig)+
236 + sphg_f6(1,4,ig)+sphg_f6(1,5,ig)+sphg_f6(1,6,ig
237 press = sphg_f6(2,1,ig)+sphg_f6(2,2,ig)+sphg_f6(2,3,ig)+
238 + sphg_f6(2,4,ig)+sphg_f6(2,5,ig)+sphg_f6(2,6,ig)
239 rho = sphg_f6(3,1,ig)+sphg_f6(3,2,ig)+sphg_f6(3,3,ig)+
240 + sphg_f6(3,4,ig)+sphg_f6(3,5,ig)+sphg_f6(3,6,ig)
241 alphai=one/
max(em20,wcompi)
262#include "implicit_f.inc"
266#include "com08_c.inc"
273 . p(n),p0(n,2),p1(n,2),p2(n,2),ff
279 . PI1,PI8,PI38,SPI8,SPI38,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,
280 , x1,x2,x3,y1,y2,y3,z1,z2,z3,d,dd,d2,dp,e,g,f
293 pi1 = two*atan2(one,zero)
331 y3 = c0 * x3 + c1 * x2 + c2 * x1
332 . + c3 * y2 + c4 * y1
335 z3 = c5 * y3 + c6 * y2 + c7 * y1
336 . + c8 * z2 + c9 * z1