30 SUBROUTINE newskw(SKEW ,ISKWN ,X ,ISKWP_L ,NSKWP,
31 1 NUMSKW_L,NUMSKW_L_SEND,ISKWP_L_SEND,RECVCOUNT,ISKWP)
35#include "implicit_f.inc"
39 INTEGER ISKWN(LISKN,*), NSKWP(*),ISKWP(*)
40 INTEGER,
DIMENSION(NUMSKW),
INTENT(IN) :: ISKWP_L,ISKWP_L_SEND
41 INTEGER,
DIMENSION(NSPMD),
INTENT(IN) :: RECVCOUNT
42 INTEGER,
INTENT(IN) :: NUMSKW_L,NUMSKW_L_SEND
45 . skew(lskew,*), x(3,*)
69! x : real ; dimension=3*numnod
82 INTEGER N, N1, N2, N3, K, I, J, LOC_PROC,IMOV,IDIR,NN
85 . p(12), pp1, pp3, pp2
112 IF (n1+n2+n3/=0)
THEN
123 ELSEIF (idir == 2)
THEN
127 ELSEIF (idir == 3)
THEN
139 ELSEIF (idir == 2)
THEN
143 ELSEIF (idir == 3)
THEN
165 pp1=sqrt(p(1)*p(1)+p(2)*p(2)+p(3)*p(3))
172 ELSE IF (idir == 2)
THEN
173 pp2=sqrt(p(4)*p(4)+p(5)*p(5)+p(6)*p(6))
180 ELSE IF (idir == 3)
THEN
181 pp3=sqrt(p(7)*p(7)+p(8)*p(8)+p(9)*p(9))
193 p(7)=p(2)*p(6)-p(3)*p(5)
194 p(8)=p(3)*p(4)-p(1)*p(6)
195 p(9)=p(1)*p(5)-p(2)*p(4)
196 pp3=sqrt(p(7)*p(7)+p(8)*p(8)+p(9)*p(9))
197 ELSEIF (idir == 2)
THEN
198 p(1)=p(5)*p(9)-p(6)*p(8)
199 p(2)=p(6)*p(7)-p(4)*p(9)
200 p(3)=p(4)*p(8)-p(5)*p(7)
201 pp1=sqrt(p(1)*p(1)+p(2)*p(2)+p(3)*p(3))
202 ELSEIF (idir == 3)
THEN
203 p(4)=p(8)*p(3)-p(9)*p(2)
204 p(5)=p(9)*p(1)-p(7)*p(3)
205 p(6)=p(7)*p(2)-p(8)*p(1)
206 pp2=sqrt(p(4)*p(4)+p(5)*p(5)+p(6)*p(6))
226 p(7)=p(2)*p(6)-p(3)*p(5)
227 p(8)=p(3)*p(4)-p(1)*p(6)
228 p(9)=p(1)*p(5)-p(2)*p(4)
229 pp3=sqrt(p(7)*p(7)+p(8)*p(8)+p(9)*p(9))
231 ELSEIF (idir == 2)
THEN
241 p(1)=p(5)*p(9)-p(6)*p(8)
242 p(2)=p(6)*p(7)-p(4)*p(9)
243 p(3)=p(4)*p(8)-p(5)*p(7)
244 pp1=sqrt(p(1)*p(1)+p(2)*p(2)+p(3)*p(3))
246 ELSEIF (idir == 3)
THEN
256 p(4)=p(8)*p(3)-p(9)*p(2)
257 p(5)=p(9)*p(1)-p(7)*p(3)
258 p(6)=p(7)*p(2)-p(8)*p(1)
259 pp2=sqrt(p(4)*p(4)+p(5)*p(5)+p(6)*p(6))
266 p(4)=p(8)*p(3)-p(9)*p(2)
267 p(5)=p(9)*p(1)-p(7)*p(3)
268 p(6)=p(7)*p(2)-p(8)*p(1)
269 pp2=sqrt(p(4)*p(4)+p(5)*p(5)+p(6)*p(6))
270 ELSEIF (idir == 2)
THEN
271 p(7)=p(2)*p(6)-p(3)*p(5)
272 p(8)=p(3)*p(4)-p(1)*p(6)
273 p(9)=p(1)*p(5)-p(2)*p(4)
274 pp3=sqrt(p(7)*p(7)+p(8)*p(8)+p(9)*p(9))
275 ELSEIF (idir == 3)
THEN
276 p(1)=p(5)*p(9)-p(6)*p(8)
277 p(2)=p(6)*p(7)-p(4)*p(9)
278 p(3)=p(4)*p(8)-p(5)*p(7)
279 pp1=sqrt(p(1)*p(1)+p(2)*p(2)+p(3)*p(3))
282 ELSEIF(imov == 2)
THEN
299 pp3=sqrt(p(7)*p(7)+p(8)*p(8)+p(9)*p(9))
309 p(4)=p(8)*p(3)-p(9)*p(2)
310 p(5)=p(9)*p(1)-p(7)*p(3)
311 p(6)=p(7)*p(2)-p(8)*p(1)
312 pp2=sqrt(p(4)*p(4)+p(5)*p(5)+p(6)*p(6))
326 p(4)=p(8)*p(3)-p(9)*p(2)
327 p(5)=p(9)*p(1)-p(7)*p(3)
328 p(6)=p(7)*p(2)-p(8)*p(1)
329 pp2=sqrt(p(4)*p(4)+p(5)*p(5)+p(6)*p(6))
334 p(1)=p(5)*p(9)-p(6)*p(8)
335 p(2)=p(6)*p(7)-p(4)*p(9)
336 p(3)=p(4)*p(8)-p(5)*p(7)
337 pp1=sqrt(p(1)*p(1)+p(2)*p(2)+p(3)*p(3))
368 CALL spmd_sd_skw(skew,iskwp_l_send,numskw_l_send,recvcount)
378 SUBROUTINE newskw_init(ISKWP ,NUMSKW_L,NSKWP,NUMSKW_L_SEND,ISKWP_L_SEND,RECVCOUNT)
382#include "implicit_f.inc"
387 INTEGER,
DIMENSION(NSPMD),
INTENT(IN) :: NSKWP
388 INTEGER,
DIMENSION(NSPMD),
INTENT(INOUT) :: RECVCOUNT
389 INTEGER,
DIMENSION(NUMSKW),
INTENT(INOUT) :: ISKWP_L_SEND
390 INTEGER,
INTENT(OUT) :: NUMSKW_L,NUMSKW_L_SEND
391! -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*
408! -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*
413#include "com01_c.inc"
414#include "com04_c.inc"
416#include "lagmult.inc"
420 INTEGER N, N1, N2, N3, K, I, J, ,IMOV,IDIR,NN,NN2
423 . p(12), pp1, pp3, pp2
438! communicate
the skew arrays
447 recvcount(1:nspmd) = 0
452 IF(lag_ncf+lag_ncl>0)
THEN
453 IF(abs(iskwp(n+1))==loc_proc)
THEN
455 iskwp_l_send(nn2) = n
457 IF(iskwp(n+1)/=0) recvcount(abs(iskwp(n+1))) = recvcount(abs(iskwp(n+1))) + 10
460 IF(iskwp(n+1)==loc_proc)
THEN
462 iskwp_l_send(nn2) = n
464 IF(iskwp(n+1)>0) recvcount(iskwp(n+1)) = recvcount(iskwp(n+1)) + 10
468 numskw_l = nskwp(ispmd+1)
subroutine newskw_init(iskwp, numskw_l, nskwp, numskw_l_send, iskwp_l_send, recvcount)
subroutine newskw(skew, iskwn, x, iskwp_l, nskwp, numskw_l, numskw_l_send, iskwp_l_send, recvcount, iskwp)