34 1 A, ADP ,AR ,STIFN,STIFR ,MS ,
35 2 IAD_ELEM ,FR_ELEM,MSNF ,IFSUBM,SIZE,
36 3 LENR ,FTHE ,MCP ,DMSPH ,CONDN,
38 5 FORNEQS ,NFACNIT,LENC ,FCONT ,H3D_DATA ,
39 6 FNCONT ,FTCONT, GLOB_THERM)
46 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
47#include "implicit_f.inc"
62#include "intstamp_c.inc"
66 INTEGER IAD_ELEM(2,*),FR_ELEM(*), SIZE, LENR, IFSUBM,
69 . AR(3,*),STIFN(*),STIFR(*),MS(*),MSNF(*),
70 . FTHE(*),MCP(*), DMSPH(*),CONDN(*)
71 my_real,
DIMENSION(3,*),
INTENT(inout),
TARGET :: A
72 REAL(kind=8), dimension(3,*),
INTENT(inout),
TARGET :: adp
75 . ms_2d(*),mcp_off(*),
77 my_real ,
INTENT(INOUT) :: fcont(3,numnod),fncont(3,numnod),
80 TYPE(glob_therm_) ,
INTENT(IN) :: GLOB_THERM
85 INTEGER MSGTYP,I,NOD,LOC_PROC,IERROR,MSGOFF,
86 . siz,j,k,l,nb_nod,iadmsph,
87 . status(mpi_status_size),
88 . iad_send(nspmd+1),iad_recv(nspmd+1),
89 . req_r(nspmd),req_s(nspmd)
93 . rbuf(size*lenr + nfacnit*lenr + lenc*lenr),
94 . sbuf(size*lenr + nfacnit*lenr + lenc*lenr)
95 REAL(kind=8), dimension(:,:),
POINTER :: acc_pointer
100 acc_pointer=>adp(1:3,1:numnod)
102 acc_pointer=>a(1:3,1:numnod)
108 siz = (size+nfacnit+lenc)*(iad_elem(1,i+1)-iad_elem(1,i))
112 s rbuf(l),siz,mpi_double_precision,it_spmd(i),msgtyp,
113 g spmd_comm_world,req_r(i),ierror)
119 IF(sol2sph_flag/=0)
THEN
121 IF(iroddl/=0)iadmsph=iadmsph+4
122 IF(glob_therm%INTHEAT /= 0 .OR. glob_therm%ITHERM_FE /= 0) iadmsph=iadmsph+1
126#include "vectorize.inc"
127 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
129 sbuf(l + iadmsph - 1) = dmsph(nod)
137 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
139 acc_pointer(1,nod) = a(1,nod)
140 acc_pointer(2,nod) = a(2,nod)
141 acc_pointer(3,nod) = a(3,nod)
151 IF(glob_therm%INTHEAT == 0 .AND. glob_therm%ITHERM_FE == 0 )
THEN
152 IF (n2d==0.AND.ifsubm==0)
THEN
154#include
"vectorize.inc"
155 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
157 sbuf(l ) = acc_pointer(1,nod)
158 sbuf(l+1) = acc_pointer(2,nod)
159 sbuf(l+2) = acc_pointer(3,nod)
160 sbuf(l+3) = ar(1,nod)
161 sbuf(l+4) = ar(2,nod)
162 sbuf(l+5) = ar(3,nod)
163 sbuf(l+6) = stifn(nod)
164 sbuf(l+7) = stifr(nod)
168#include "vectorize.inc"
169 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
171 sbuf(l ) = acc_pointer(1,nod)
172 sbuf(l+1) = acc_pointer(2,nod)
173 sbuf(l+2) = acc_pointer(3,nod)
174 sbuf(l+3) = stifn(nod)
179 ELSEIF(n2d/=0.AND.ifsubm==1)
THEN
181#include "vectorize.inc"
182 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
184 sbuf(l ) = acc_pointer(1,nod)
185 sbuf(l+1) = acc_pointer(2,nod)
186 sbuf(l+2) = acc_pointer(3,nod)
187 sbuf(l+3) = ar(1,nod)
188 sbuf(l+4) = ar(2,nod)
189 sbuf(l+5) = ar(3,nod)
190 sbuf(l+6) = stifn(nod)
191 sbuf(l+7) = stifr(nod)
193 sbuf(l+9) = ms_2d(nod)
197#include "vectorize.inc"
198 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
200 sbuf(l ) = acc_pointer(1,nod)
201 sbuf(l+1) = acc_pointer(2,nod)
202 sbuf(l+2) = acc_pointer(3,nod)
203 sbuf(l+3) = stifn(nod)
205 sbuf(l+5) = ms_2d(nod)
209 ELSEIF(n2d/=0.AND.ifsubm==0)
THEN
211#include "vectorize.inc"
212 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
214 sbuf(l ) = acc_pointer(1,nod)
215 sbuf(l+1) = acc_pointer(2,nod)
216 sbuf(l+2) = acc_pointer(3,nod)
217 sbuf(l+3) = ar(1,nod)
218 sbuf(l+4) = ar(2,nod)
219 sbuf(l+5) = ar(3,nod)
220 sbuf(l+6) = stifn(nod)
221 sbuf(l+7) = stifr(nod)
226#include "vectorize.inc"
227 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
229 sbuf(l ) = acc_pointer(1,nod)
230 sbuf(l+1) = acc_pointer(2,nod)
231 sbuf(l+2) = acc_pointer(3,nod)
232 sbuf(l+3) = stifn(nod)
238 ELSEIF(n2d==0.AND.ifsubm==1)
THEN
240#include "vectorize.inc"
241 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
243 sbuf(l ) = acc_pointer(1,nod)
244 sbuf(l+1) = acc_pointer(2,nod)
245 sbuf(l+2) = acc_pointer(3,nod)
246 sbuf(l+3) = ar(1,nod)
247 sbuf(l+4) = ar(2,nod)
248 sbuf(l+5) = ar(3,nod)
249 sbuf(l+6) = stifn(nod)
250 sbuf(l+7) = stifr(nod)
252 sbuf(l+9) = msnf(nod)
256#include
"vectorize.inc"
257 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
259 sbuf(l ) = acc_pointer(1,nod)
260 sbuf(l+1) = acc_pointer(2,nod)
261 sbuf(l+2) = acc_pointer(3,nod)
262 sbuf(l+3) = stifn(nod)
264 sbuf(l+5) = msnf(nod)
273 IF (n2d==0.AND.ifsubm==0)
THEN
275#include "vectorize.inc"
276 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
278 sbuf(l ) = acc_pointer(1,nod)
279 sbuf(l+1) = acc_pointer(2,nod)
280 sbuf(l+2) = acc_pointer(3,nod)
281 sbuf(l+3) = ar(1,nod)
282 sbuf(l+4) = ar(2,nod)
283 sbuf(l+5) = ar(3,nod)
284 sbuf(l+6) = stifn(nod)
285 sbuf(l+7) = stifr(nod)
286 sbuf(l+8) = fthe(nod)
287 IF(glob_therm%ITHERM_FE == 1) sbuf(l+9) = mcp(nod)
288 IF(glob_therm%ITHERM_FE == 1) sbuf(l+10) = mcp_off(nod)
292 IF(glob_therm%NODADT_THERM ==1 )
THEN
293#include "vectorize.inc"
294 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
296 sbuf(l ) = acc_pointer(1,nod)
297 sbuf(l+1) = acc_pointer(2,nod)
298 sbuf(l+2) = acc_pointer(3,nod)
299 sbuf(l+3) = stifn(nod)
300 sbuf(l+4) = fthe(nod)
301 sbuf(l+5) = condn(nod)
302 IF(glob_therm%ITHERM_FE == 1) sbuf(l+6) = mcp(nod)
303 IF(glob_therm%ITHERM_FE == 1) sbuf(l+7) = mcp_off(nod)
307#include "vectorize.inc"
308 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
310 sbuf(l ) = acc_pointer(1,nod)
311 sbuf(l+1) = acc_pointer(2,nod)
312 sbuf(l+2) = acc_pointer(3,nod)
313 sbuf(l+3) = stifn(nod)
314 sbuf(l+4) = fthe(nod)
315 IF(glob_therm%ITHERM_FE == 1) sbuf(l+5) = mcp(nod)
316 IF(glob_therm%ITHERM_FE == 1) sbuf(l+6) = mcp_off(nod)
322 ELSEIF(n2d/=0.AND.ifsubm==1)
THEN
324#include "vectorize.inc"
325 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
327 sbuf(l ) = acc_pointer(1,nod)
328 sbuf(l+1) = acc_pointer(2,nod)
329 sbuf(l+2) = acc_pointer(3,nod)
330 sbuf(l+3) = ar(1,nod)
331 sbuf(l+4) = ar(2,nod)
332 sbuf(l+5) = ar(3,nod)
333 sbuf(l+6) = stifn(nod)
334 sbuf(l+7) = stifr(nod)
336 sbuf(l+9) = fthe(nod)
337 sbuf(l+10) = mcp(nod)
338 sbuf(l+11) = ms_2d(nod)
342#include "vectorize.inc"
343 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
345 sbuf(l ) = acc_pointer(1,nod)
346 sbuf(l+1) = acc_pointer(2,nod)
347 sbuf(l+2) = acc_pointer(3,nod)
348 sbuf(l+3) = stifn(nod)
350 sbuf(l+5) = fthe(nod)
352 sbuf(l+7) = ms_2d(nod)
356 ELSEIF(n2d/=0.AND.ifsubm==0)
THEN
358#include "vectorize.inc"
359 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
361 sbuf(l ) = acc_pointer(1,nod)
362 sbuf(l+1) = acc_pointer(2,nod)
363 sbuf(l+2) = acc_pointer(3,nod)
364 sbuf(l+3) = ar(1,nod)
365 sbuf(l+4) = ar(2,nod)
366 sbuf(l+5) = ar(3,nod)
367 sbuf(l+6) = stifn(nod)
368 sbuf(l+7) = stifr(nod)
370 sbuf(l+9) = fthe(nod)
371 sbuf(l+10) = mcp(nod)
375#include "vectorize.inc"
376 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
378 sbuf(l ) = acc_pointer(1,nod)
379 sbuf(l+1) = acc_pointer(2,nod)
380 sbuf(l+2) = acc_pointer(3,nod)
381 sbuf(l+3) = stifn(nod)
383 sbuf(l+5) = fthe(nod)
388 ELSEIF(n2d==0.AND.ifsubm==1)
THEN
390#include "vectorize.inc"
391 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
393 sbuf(l ) = acc_pointer(1,nod)
394 sbuf(l+1) = acc_pointer(2,nod)
395 sbuf(l+2) = acc_pointer(3,nod)
396 sbuf(l+3) = ar(1,nod)
397 sbuf(l+4) = ar(2,nod)
398 sbuf(l+5) = ar(3,nod)
399 sbuf(l+6) = stifn(nod)
400 sbuf(l+7) = stifr(nod)
402 sbuf(l+9) = msnf(nod)
403 sbuf(l+10) = fthe(nod)
404 sbuf(l+11) = mcp(nod)
408#include "vectorize.inc"
409 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
411 sbuf(l ) = acc_pointer(1,nod)
412 sbuf(l+1) = acc_pointer(2,nod)
413 sbuf(l+2) = acc_pointer(3,nod)
414 sbuf(l+3) = stifn(nod)
416 sbuf(l+5) = msnf(nod)
417 sbuf(l+6) = fthe(nod)
429#include "vectorize.inc"
430 DO j=iad_elem(1,i),iad_elem
432 sbuf(l ) = forneqs(1,nod)
433 sbuf(l+1) = forneqs(2,nod)
434 sbuf(l+2) = forneqs(3,nod)
439 IF(anim_v(26)+h3d_data%N_VECT_CONT_MAX /=0.AND.nintstamp==0)
THEN
440#include "vectorize.inc"
441 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
443 sbuf(l ) = fcont(1,nod)
444 sbuf(l+1) = fcont(2,nod)
445 sbuf(l+2) = fcont(3,nod)
451 IF(h3d_data%N_VECT_CONT_MAX /=0.AND.nintstamp==0)
THEN
452#include
"vectorize.inc"
453 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
455 sbuf(l ) = fncont(1,nod)
456 sbuf(l+1) = fncont(2,nod)
457 sbuf(l+2) = fncont(3,nod)
458 sbuf(l+3) = ftcont(1,nod)
459 sbuf(l+4) = ftcont(2,nod)
460 sbuf(l+5) = ftcont(3,nod)
474 IF(iad_elem(1,i+1)-iad_elem(1,i)>0)
THEN
476 siz = iad_send(i+1)-iad_send(i)
479 s sbuf(l),siz,mpi_double_precision,it_spmd(i),msgtyp,
480 g spmd_comm_world,req_s(i),ierror)
487 IF(sol2sph_flag/=0)
THEN
489 IF(iroddl/=0)iadmsph=iadmsph+4
490 IF (glob_therm%INTHEAT /= 0 .OR. glob_therm%ITHERM_FE /= 0) iadmsph=iadmsph+1
492 nb_nod = iad_elem(1,i+1)-iad_elem(1,i)
494 CALL mpi_wait(req_r(i),status,ierror)
496#include "vectorize.inc"
497 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
499 dmsph(nod) = dmsph(nod) + rbuf(l+iadmsph-1)
508 nb_nod = iad_elem(1,i+1)-iad_elem(1,i)
510 CALL mpi_wait(req_r(i),status,ierror)
513 IF (glob_therm%ITHERM_FE == 0 .AND. glob_therm%INTHEAT == 0 )
THEN
514 IF (n2d==0.AND.ifsubm==0)
THEN
516#include "vectorize.inc"
517 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
519 acc_pointer(1,nod) = acc_pointer(1,nod) + rbuf(l)
520 acc_pointer(2,nod) = acc_pointer(2,nod) + rbuf(l+1)
521 acc_pointer(3,nod) = acc_pointer(3,nod) + rbuf(l+2)
522 ar(1,nod)= ar(1,nod)+ rbuf(l+3)
523 ar(2,nod)= ar(2,nod)+ rbuf(l+4)
524 ar(3,nod)= ar(3,nod)+ rbuf(l+5)
525 stifn(nod)= stifn(nod)+ rbuf(l+6)
526 stifr(nod)= stifr(nod)+ rbuf(l+7)
530#include "vectorize.inc"
531 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
533 acc_pointer(1,nod) = acc_pointer(1,nod) + rbuf(l)
534 acc_pointer(2,nod) = acc_pointer(2,nod) + rbuf(l+1)
535 acc_pointer(3,nod) = acc_pointer(3,nod) + rbuf(l+2)
536 stifn(nod)= stifn(nod)+ rbuf(l+3)
541 ELSEIF(n2d/=0.AND.ifsubm==1)
THEN
543#include "vectorize.inc"
544 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
546 acc_pointer(1,nod) = acc_pointer(1,nod) + rbuf(l)
547 acc_pointer(2,nod) = acc_pointer(2,nod) + rbuf(l+1)
548 acc_pointer(3,nod) = acc_pointer(3,nod) + rbuf(l+2)
549 ar(1,nod)= ar(1,nod)+ rbuf(l+3)
550 ar(2,nod)= ar(2,nod)+ rbuf
551 ar(3,nod)= ar(3,nod)+ rbuf(l+5)
553 stifr(nod)= stifr(nod)+ rbuf(l+7)
554 ms(nod) = ms(nod)+ rbuf(l+8)
555 ms_2d(nod) = ms_2d(nod)+ rbuf(l+9)
559#include "vectorize.inc"
560 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
562 acc_pointer(1,nod) = acc_pointer(1,nod) + rbuf(l)
563 acc_pointer(2,nod) = acc_pointer(2,nod) + rbuf(l+1)
564 acc_pointer(3,nod) = acc_pointer
565 stifn(nod)= stifn(nod)+ rbuf(l+3)
566 ms(nod) = ms(nod)+ rbuf(l+4)
567 ms_2d(nod) = ms_2d(nod)+ rbuf(l+5)
571 ELSEIF(n2d/=0.AND.ifsubm==0)
THEN
573#include "vectorize.inc"
574 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
576 acc_pointer(1,nod) = acc_pointer(1,nod) + rbuf(l)
577 acc_pointer(2,nod) = acc_pointer(2,nod) + rbuf(l+1)
578 acc_pointer(3,nod) = acc_pointer(3,nod) + rbuf(l+2)
579 ar(1,nod)= ar(1,nod)+ rbuf(l+3)
580 ar(2,nod)= ar(2,nod)+ rbuf(l+4)
581 ar(3,nod)= ar(3,nod)+ rbuf(l+5)
582 stifn(nod)= stifn(nod)+ rbuf(l+6)
583 stifr(nod)= stifr(nod)+ rbuf(l+7)
584 ms(nod) = ms(nod)+ rbuf(l+8)
588#include "vectorize.inc"
589 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
591 acc_pointer(1,nod) = acc_pointer(1,nod) + rbuf(l)
592 acc_pointer(2,nod) = acc_pointer(2,nod) + rbuf(l+1)
593 acc_pointer(3,nod) = acc_pointer(3,nod) + rbuf(l+2)
594 stifn(nod)= stifn(nod)+ rbuf(l+3)
595 ms(nod) = ms(nod)+ rbuf(l+4)
599 ELSEIF(n2d==0.AND.ifsubm==1)
THEN
601#include "vectorize.inc"
602 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
604 acc_pointer(1,nod) = acc_pointer(1,nod) + rbuf(l)
605 acc_pointer(2,nod) = acc_pointer(2,nod) + rbuf(l+1)
606 acc_pointer(3,nod) = acc_pointer(3,nod) + rbuf(l+2)
607 ar(1,nod)= ar(1,nod)+ rbuf(l+3)
608 ar(2,nod)= ar(2,nod)+ rbuf(l+4)
609 ar(3,nod)= ar(3,nod)+ rbuf(l+5)
610 stifn(nod)= stifn(nod)+ rbuf(l+6)
611 stifr(nod)= stifr(nod)+ rbuf(l+7)
612 ms(nod) = ms(nod)+ rbuf(l+8)
613 msnf(nod) = msnf(nod) + rbuf(l+9)
617#include "vectorize.inc"
618 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
620 acc_pointer(1,nod) = acc_pointer(1,nod) + rbuf(l)
621 acc_pointer(2,nod) = acc_pointer(2,nod) + rbuf(l+1)
622 acc_pointer(3,nod) = acc_pointer(3,nod) + rbuf(l+2)
623 stifn(nod)= stifn(nod)+ rbuf(l+3)
624 ms(nod) = ms(nod)+ rbuf(l+4)
625 msnf(nod) = msnf(nod) + rbuf(l+5)
634 IF (n2d==0.AND.ifsubm==0)
THEN
636#include "vectorize.inc"
637 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
639 acc_pointer(1,nod) = acc_pointer(1,nod) + rbuf(l)
640 acc_pointer(2,nod) = acc_pointer(2,nod) + rbuf(l+1)
641 acc_pointer(3,nod) = acc_pointer(3,nod) + rbuf(l+2)
642 ar(1,nod)= ar(1,nod)+ rbuf(l
643 ar(2,nod)= ar(2,nod)+ rbuf(l+4)
644 ar(3,nod)= ar(3,nod)+ rbuf(l+5)
645 stifn(nod)= stifn(nod)+ rbuf(l+6)
646 stifr(nod)= stifr(nod)+ rbuf(l+7)
647 fthe(nod) = fthe(nod) + rbuf(l+8)
648 IF(glob_therm%ITHERM_FE == 1) mcp(nod) = mcp(nod) + rbuf(l+9)
649 IF(glob_therm%ITHERM_FE == 1) mcp_off(nod) =
max(mcp_off(nod),rbuf(l+10))
653 IF(glob_therm%NODADT_THERM == 1)
THEN
654#include "vectorize.inc"
655 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
657 acc_pointer(1,nod) = acc_pointer(1,nod) + rbuf(l)
658 acc_pointer(2,nod) = acc_pointer(2,nod) + rbuf(l+1)
659 acc_pointer(3,nod) = acc_pointer(3,nod) + rbuf(l+2)
660 stifn(nod)= stifn(nod)+ rbuf(l+3)
661 fthe(nod) = fthe(nod) + rbuf(l+4)
662 condn(nod) = condn(nod) + rbuf(l+5)
663 IF(glob_therm%ITHERM_FE == 1) mcp(nod) = mcp(nod) + rbuf(l+6)
664 IF(glob_therm%ITHERM_FE == 1) mcp_off(nod) =
max(mcp_off(nod),rbuf(l+7))
668#include
"vectorize.inc"
669 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
671 acc_pointer(1,nod) = acc_pointer(1,nod) + rbuf(l)
672 acc_pointer(2,nod) = acc_pointer(2,nod) + rbuf(l+1)
673 acc_pointer(3,nod) = acc_pointer(3,nod) + rbuf(l+2)
674 stifn(nod)= stifn(nod)+ rbuf(l+3)
675 fthe(nod) = fthe(nod) + rbuf(l+4)
676 IF(glob_therm%ITHERM_FE == 1) mcp(nod) = mcp(nod) + rbuf(l+5)
677 IF(glob_therm%ITHERM_FE == 1) mcp_off(nod) =
max(mcp_off(nod),rbuf(l+6))
683 ELSEIF(n2d/=0.AND.ifsubm==1)
THEN
685#include "vectorize.inc"
686 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
688 acc_pointer(1,nod) = acc_pointer(1,nod) + rbuf(l)
689 acc_pointer(2,nod) = acc_pointer(2,nod) + rbuf(l+1)
690 acc_pointer(3,nod) = acc_pointer(3,nod) + rbuf(l+2)
691 ar(1,nod)= ar(1,nod)+ rbuf(l+3)
692 ar(2,nod)= ar(2,nod)+ rbuf(l+4)
693 ar(3,nod)= ar(3,nod)+ rbuf(l+5)
694 stifn(nod)= stifn(nod)+ rbuf(l+6)
695 stifr(nod)= stifr(nod)+ rbuf(l+7)
696 ms(nod) = ms(nod)+ rbuf(l+8)
697 fthe(nod) = fthe(nod) + rbuf(l+9)
698 mcp(nod) = mcp(nod) + rbuf(l+10)
699 ms_2d(nod) = ms_2d(nod)+ rbuf(l+11)
703#include "vectorize.inc"
704 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
706 acc_pointer(1,nod) = acc_pointer(1,nod) + rbuf(l)
707 acc_pointer(2,nod) = acc_pointer(2,nod) + rbuf(l+1)
708 acc_pointer(3,nod) = acc_pointer(3,nod) + rbuf(l+2)
709 stifn(nod)= stifn(nod)+ rbuf(l+3)
710 ms(nod) = ms(nod)+ rbuf(l+4)
711 fthe(nod) = fthe(nod) + rbuf(l+5)
712 mcp(nod) = mcp(nod) + rbuf(l+6)
713 ms_2d(nod) = ms_2d(nod)+ rbuf(l+7)
717 ELSEIF(n2d/=0.AND.ifsubm==0)
THEN
719#include "vectorize.inc"
720 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
722 acc_pointer(1,nod) = acc_pointer(1,nod) + rbuf(l)
723 acc_pointer(2,nod) = acc_pointer(2,nod) + rbuf(l+1)
724 acc_pointer(3,nod) = acc_pointer(3,nod) + rbuf(l+2)
725 ar(1,nod)= ar(1,nod)+ rbuf(l+3)
726 ar(2,nod)= ar(2,nod)+ rbuf(l+4)
727 ar(3,nod)= ar(3,nod)+ rbuf(l+5)
728 stifn(nod)= stifn(nod)+ rbuf(l+6)
729 stifr(nod)= stifr(nod)+ rbuf(l+7)
730 ms(nod) = ms(nod)+ rbuf(l+8)
731 fthe(nod) = fthe(nod) + rbuf(l+9)
732 mcp(nod) = mcp(nod) + rbuf(l+10)
736#include "vectorize.inc"
737 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
739 acc_pointer(1,nod) = acc_pointer(1,nod) + rbuf(l)
740 acc_pointer(2,nod) = acc_pointer(2,nod) + rbuf(l+1)
741 acc_pointer(3,nod) = acc_pointer(3,nod) + rbuf(l+2)
742 stifn(nod)= stifn(nod)+ rbuf(l+3)
743 ms(nod) = ms(nod)+ rbuf(l+4)
744 fthe(nod) = fthe(nod) + rbuf(l+5)
745 mcp(nod) = mcp(nod) + rbuf(l+6)
749 ELSEIF(n2d==0.AND.ifsubm==1)
THEN
751#include "vectorize.inc"
752 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
754 acc_pointer(1,nod) = acc_pointer(1,nod) + rbuf(l)
755 acc_pointer(2,nod) = acc_pointer(2,nod) + rbuf(l+1)
756 acc_pointer(3,nod) = acc_pointer(3,nod) + rbuf(l+2)
757 ar(1,nod)= ar(1,nod)+ rbuf(l+3)
758 ar(2,nod)= ar(2,nod)+ rbuf(l+4)
759 ar(3,nod)= ar(3,nod)+ rbuf(l+5)
760 stifn(nod)= stifn(nod)+ rbuf(l+6)
761 stifr(nod)= stifr(nod)+ rbuf(l+7)
762 ms(nod) = ms(nod)+ rbuf(l+8)
763 msnf(nod) = msnf(nod) + rbuf(l+9)
764 fthe(nod) = fthe(nod) + rbuf(l+10)
765 mcp(nod) = mcp(nod) + rbuf(l+11)
769#include "vectorize.inc"
770 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
772 acc_pointer(1,nod) = acc_pointer(1,nod) + rbuf(l)
773 acc_pointer(2,nod) = acc_pointer(2,nod) + rbuf(l+1)
774 acc_pointer(3,nod) = acc_pointer(3,nod) + rbuf(l+2)
775 stifn(nod)= stifn(nod)+ rbuf(l+3)
776 ms(nod) = ms(nod)+ rbuf(l+4)
777 msnf(nod) = msnf(nod) + rbuf(l+5)
778 fthe(nod) = fthe(nod) + rbuf(l+6)
779 mcp(nod) = mcp(nod) + rbuf(l+7)
805#include "vectorize.inc"
806 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
808 forneqs(1,nod) = forneqs(1,nod) + rbuf(l)
809 forneqs(2,nod) = forneqs(2,nod) + rbuf(l+1)
810 forneqs(3,nod) = forneqs(3,nod) + rbuf(l+2)
815 IF(anim_v(26)+h3d_data%N_VECT_CONT_MAX /=0.AND.nintstamp==0)
THEN
816#include "vectorize.inc"
817 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
819 fcont(1,nod) = fcont(1,nod) + rbuf(l)
820 fcont(2,nod) = fcont(2,nod) + rbuf(l+1)
821 fcont(3,nod) = fcont(3,nod) + rbuf(l+2)
827 IF(h3d_data%N_VECT_PCONT_MAX /=0.AND.nintstamp==0)
THEN
828#include "vectorize.inc"
829 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
831 fncont(1,nod) = fncont(1,nod) + rbuf(l)
832 fncont(2,nod) = fncont(2,nod) + rbuf(l+1)
833 fncont(3,nod) = fncont(3,nod) + rbuf(l+2)
834 ftcont(1,nod) = ftcont(1,nod) + rbuf(l+3)
835 ftcont(2,nod) = ftcont(2,nod) + rbuf(l+4)
836 ftcont(3,nod) = ftcont(3,nod) + rbuf(l+5)
850 nb_nod = iad_elem(1,i+1)-iad_elem(1,i)
852 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
854 a(1,nod) = acc_pointer(1,nod)
855 a(2,nod) = acc_pointer(2,nod)
856 a(3,nod) = acc_pointer(3,nod)
863 IF(iad_elem(1,i+1)-iad_elem(1,i)>0)
THEN
864 CALL mpi_wait(req_s(i),status,ierror)