OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
spmd_sd_xv.F File Reference
#include "implicit_f.inc"
#include "spmd.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "com06_c.inc"
#include "com08_c.inc"
#include "scr06_c.inc"
#include "scr07_c.inc"
#include "scr18_c.inc"
#include "task_c.inc"
#include "scr05_c.inc"
#include "rad2r_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine spmd_sd_xv (output, x, d, v, vr, ms, in, iad_elem, fr_elem, weight, imsch, w, isizxv, ilenxv, xdp)

Function/Subroutine Documentation

◆ spmd_sd_xv()

subroutine spmd_sd_xv ( type(output_) output,
x,
d,
v,
vr,
ms,
in,
integer, dimension(2,*) iad_elem,
integer, dimension(*) fr_elem,
integer, dimension(*) weight,
integer imsch,
w,
integer isizxv,
integer ilenxv,
double precision, dimension(3,*) xdp )

Definition at line 38 of file spmd_sd_xv.F.

42C-----------------------------------------------
43C M o d u l e s
44C-----------------------------------------------
45 USE message_mod
46 USE output_mod
47 USE ale_mod
48C-----------------------------------------------
49C I m p l i c i t T y p e s
50C-----------------------------------------------
51 USE spmd_comm_world_mod, ONLY : spmd_comm_world
52#include "implicit_f.inc"
53C-----------------------------------------------------------------
54C M e s s a g e P a s s i n g
55C-----------------------------------------------
56#include "spmd.inc"
57C-----------------------------------------------
58C C o m m o n B l o c k s
59C-----------------------------------------------
60#include "com01_c.inc"
61#include "com04_c.inc"
62#include "com06_c.inc"
63#include "com08_c.inc"
64#include "scr06_c.inc"
65#include "scr07_c.inc"
66#include "scr18_c.inc"
67#include "task_c.inc"
68#include "scr05_c.inc"
69#include "rad2r_c.inc"
70C-----------------------------------------------
71C D u m m y A r g u m e n t s
72C-----------------------------------------------
73 TYPE(OUTPUT_) :: OUTPUT
74 INTEGER IMSCH, ISIZXV, ILENXV,
75 . IAD_ELEM(2,*), FR_ELEM(*), WEIGHT(*)
76
77 double precision
78 . xdp(3,*)
80 . x(3,*),v(3,*),vr(3,*),d(3,*),ms(*),in(*),w(3,*)
81C-----------------------------------------------
82C L o c a l V a r i a b l e s
83C-----------------------------------------------
84#ifdef MPI
85 INTEGER MSGTYP, I, NOD, LOC_PROC, DT_CST,
86 . SIZ,J,L,E_LEN,
87 . NEW_D, IERROR, MSGOFF,MSGOFF2,
88 . STATUS(MPI_STATUS_SIZE), REQ_S(NSPMD),
89 . L2, SIZDP, REQ_S_DP(NSPMD),IERROR1, LEN_DP
90
91 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: SRBUFDP
92
93 DATA msgoff/108/
94 DATA msgoff2/109/
95 my_real, DIMENSION(:), ALLOCATABLE :: srbuf
96C-----------------------------------------------
97C S o u r c e L i n e s
98C-----------------------------------------------
99 loc_proc = ispmd + 1
100 dt_cst = 0
101 IF (idtmin(11)==3.OR.idtmin(11)==8.OR.idtmin(10)==3) THEN
102 IF(imsch>0) dt_cst = 1
103 ENDIF
104 IF ((irad2r==1).AND.(ncycle<2)) dt_cst = 1
105 IF ((ale%SUB%IALESUB/=0).OR.(iale/=0).OR.
106 . (tt>=output%TANIM .AND. tt<=output%TANIM_STOP).OR.tt>=toutp.OR.
107 . (manim>=1.AND.manim<=15)) THEN
108 new_d = 1
109 IF(iale/=0.AND.ninter>0) new_d = 2
110 ELSE
111 new_d = 0
112 ENDIF
113 e_len = 7 + iroddl*3 + dt_cst*2 + new_d*3
114 ALLOCATE(srbuf(isizxv * max(ilenxv,e_len)))
115 len_dp = 3
116
117 IF(iresp==1)THEN
118 ALLOCATE(srbufdp(isizxv*len_dp),stat=ierror1)
119 IF(ierror1/=0) THEN
120 CALL ancmsg(msgid=20,anmode=aninfo)
121 CALL arret(2)
122 ENDIF
123 ELSE
124 ALLOCATE(srbufdp(1),stat=ierror1)
125 ENDIF
126
127 IF(ispmd==0) THEN
128 l = 1
129 l2 = 1
130C
131 DO i=1,nspmd
132 IF (new_d==0) THEN
133 IF(iroddl/=0.AND.dt_cst/=0) THEN
134#include "vectorize.inc"
135 DO j=iad_elem(2,i),iad_elem(1,i+1)-1
136 nod = fr_elem(j)
137 srbuf(l ) = x(1,nod)
138 srbuf(l+1) = x(2,nod)
139 srbuf(l+2) = x(3,nod)
140 srbuf(l+3) = v(1,nod)
141 srbuf(l+4) = v(2,nod)
142 srbuf(l+5) = v(3,nod)
143 srbuf(l+6) = vr(1,nod)
144 srbuf(l+7) = vr(2,nod)
145 srbuf(l+8) = vr(3,nod)
146 srbuf(l+9) = ms(nod)
147 srbuf(l+10)= in(nod)
148 l = l + e_len
149 END DO
150 ELSEIF (iroddl/=0.AND.dt_cst==0) THEN
151#include "vectorize.inc"
152 DO j=iad_elem(2,i),iad_elem(1,i+1)-1
153 nod = fr_elem(j)
154 srbuf(l ) = x(1,nod)
155 srbuf(l+1) = x(2,nod)
156 srbuf(l+2) = x(3,nod)
157 srbuf(l+3) = v(1,nod)
158 srbuf(l+4) = v(2,nod)
159 srbuf(l+5) = v(3,nod)
160 srbuf(l+6) = vr(1,nod)
161 srbuf(l+7) = vr(2,nod)
162 srbuf(l+8) = vr(3,nod)
163 l = l + e_len
164 END DO
165 ELSEIF (iroddl==0.AND.dt_cst/=0) THEN
166#include "vectorize.inc"
167 DO j=iad_elem(2,i),iad_elem(1,i+1)-1
168 nod = fr_elem(j)
169 srbuf(l ) = x(1,nod)
170 srbuf(l+1) = x(2,nod)
171 srbuf(l+2) = x(3,nod)
172 srbuf(l+3) = v(1,nod)
173 srbuf(l+4) = v(2,nod)
174 srbuf(l+5) = v(3,nod)
175 srbuf(l+6) = ms(nod)
176 srbuf(l+7) = in(nod)
177 l = l + e_len
178 END DO
179 ELSE
180#include "vectorize.inc"
181 DO j=iad_elem(2,i),iad_elem(1,i+1)-1
182 nod = fr_elem(j)
183 srbuf(l ) = x(1,nod)
184 srbuf(l+1) = x(2,nod)
185 srbuf(l+2) = x(3,nod)
186 srbuf(l+3) = v(1,nod)
187 srbuf(l+4) = v(2,nod)
188 srbuf(l+5) = v(3,nod)
189 l = l + e_len
190 END DO
191 ENDIF
192C d is to be sent for outputs
193 ELSEIF(new_d==1) THEN
194 IF(iroddl/=0.AND.dt_cst/=0) THEN
195#include "vectorize.inc"
196 DO j=iad_elem(2,i),iad_elem(1,i+1)-1
197 nod = fr_elem(j)
198 srbuf(l ) = x(1,nod)
199 srbuf(l+1) = x(2,nod)
200 srbuf(l+2) = x(3,nod)
201 srbuf(l+3) = d(1,nod)
202 srbuf(l+4) = d(2,nod)
203 srbuf(l+5) = d(3,nod)
204 srbuf(l+6) = v(1,nod)
205 srbuf(l+7) = v(2,nod)
206 srbuf(l+8) = v(3,nod)
207 srbuf(l+9) = vr(1,nod)
208 srbuf(l+10)= vr(2,nod)
209 srbuf(l+11)= vr(3,nod)
210 srbuf(l+12)= ms(nod)
211 srbuf(l+13)= in(nod)
212 l = l + e_len
213 END DO
214 ELSEIF (iroddl/=0.AND.dt_cst==0) THEN
215#include "vectorize.inc"
216 DO j=iad_elem(2,i),iad_elem(1,i+1)-1
217 nod = fr_elem(j)
218 srbuf(l ) = x(1,nod)
219 srbuf(l+1) = x(2,nod)
220 srbuf(l+2) = x(3,nod)
221 srbuf(l+3) = d(1,nod)
222 srbuf(l+4) = d(2,nod)
223 srbuf(l+5) = d(3,nod)
224 srbuf(l+6) = v(1,nod)
225 srbuf(l+7) = v(2,nod)
226 srbuf(l+8) = v(3,nod)
227 srbuf(l+9) = vr(1,nod)
228 srbuf(l+10)= vr(2,nod)
229 srbuf(l+11)= vr(3,nod)
230 l = l + e_len
231 END DO
232 ELSEIF (iroddl==0.AND.dt_cst/=0) THEN
233#include "vectorize.inc"
234 DO j=iad_elem(2,i),iad_elem(1,i+1)-1
235 nod = fr_elem(j)
236 srbuf(l ) = x(1,nod)
237 srbuf(l+1) = x(2,nod)
238 srbuf(l+2) = x(3,nod)
239 srbuf(l+3) = d(1,nod)
240 srbuf(l+4) = d(2,nod)
241 srbuf(l+5) = d(3,nod)
242 srbuf(l+6) = v(1,nod)
243 srbuf(l+7) = v(2,nod)
244 srbuf(l+8) = v(3,nod)
245 srbuf(l+9) = ms(nod)
246 srbuf(l+10)= in(nod)
247 l = l + e_len
248 END DO
249 ELSE
250#include "vectorize.inc"
251 DO j=iad_elem(2,i),iad_elem(1,i+1)-1
252 nod = fr_elem(j)
253 srbuf(l ) = x(1,nod)
254 srbuf(l+1) = x(2,nod)
255 srbuf(l+2) = x(3,nod)
256 srbuf(l+3) = d(1,nod)
257 srbuf(l+4) = d(2,nod)
258 srbuf(l+5) = d(3,nod)
259 srbuf(l+6) = v(1,nod)
260 srbuf(l+7) = v(2,nod)
261 srbuf(l+8) = v(3,nod)
262 l = l + e_len
263 END DO
264 ENDIF
265C NEW_D==2 => Envoyer D et W
266 ELSE
267 IF(iroddl/=0.AND.dt_cst/=0) THEN
268#include "vectorize.inc"
269 DO j=iad_elem(2,i),iad_elem(1,i+1)-1
270 nod = fr_elem(j)
271 srbuf(l ) = x(1,nod)
272 srbuf(l+1) = x(2,nod)
273 srbuf(l+2) = x(3,nod)
274 srbuf(l+3) = d(1,nod)
275 srbuf(l+4) = d(2,nod)
276 srbuf(l+5) = d(3,nod)
277 srbuf(l+6) = v(1,nod)
278 srbuf(l+7) = v(2,nod)
279 srbuf(l+8) = v(3,nod)
280 srbuf(l+9) = vr(1,nod)
281 srbuf(l+10)= vr(2,nod)
282 srbuf(l+11)= vr(3,nod)
283 srbuf(l+12)= ms(nod)
284 srbuf(l+13)= in(nod)
285 srbuf(l+14)= w(1,nod)
286 srbuf(l+15)= w(2,nod)
287 srbuf(l+16)= w(3,nod)
288 l = l + e_len
289 END DO
290 ELSEIF (iroddl/=0.AND.dt_cst==0) THEN
291#include "vectorize.inc"
292 DO j=iad_elem(2,i),iad_elem(1,i+1)-1
293 nod = fr_elem(j)
294 srbuf(l ) = x(1,nod)
295 srbuf(l+1) = x(2,nod)
296 srbuf(l+2) = x(3,nod)
297 srbuf(l+3) = d(1,nod)
298 srbuf(l+4) = d(2,nod)
299 srbuf(l+5) = d(3,nod)
300 srbuf(l+6) = v(1,nod)
301 srbuf(l+7) = v(2,nod)
302 srbuf(l+8) = v(3,nod)
303 srbuf(l+9) = vr(1,nod)
304 srbuf(l+10)= vr(2,nod)
305 srbuf(l+11)= vr(3,nod)
306 srbuf(l+12)= w(1,nod)
307 srbuf(l+13)= w(2,nod)
308 srbuf(l+14)= w(3,nod)
309 l = l + e_len
310 END DO
311 ELSEIF (iroddl==0.AND.dt_cst/=0) THEN
312#include "vectorize.inc"
313 DO j=iad_elem(2,i),iad_elem(1,i+1)-1
314 nod = fr_elem(j)
315 srbuf(l ) = x(1,nod)
316 srbuf(l+1) = x(2,nod)
317 srbuf(l+2) = x(3,nod)
318 srbuf(l+3) = d(1,nod)
319 srbuf(l+4) = d(2,nod)
320 srbuf(l+5) = d(3,nod)
321 srbuf(l+6) = v(1,nod)
322 srbuf(l+7) = v(2,nod)
323 srbuf(l+8) = v(3,nod)
324 srbuf(l+9) = ms(nod)
325 srbuf(l+10)= in(nod)
326 srbuf(l+11)= w(1,nod)
327 srbuf(l+12)= w(2,nod)
328 srbuf(l+13)= w(3,nod)
329 l = l + e_len
330 END DO
331 ELSE
332#include "vectorize.inc"
333 DO j=iad_elem(2,i),iad_elem(1,i+1)-1
334 nod = fr_elem(j)
335 srbuf(l ) = x(1,nod)
336 srbuf(l+1) = x(2,nod)
337 srbuf(l+2) = x(3,nod)
338 srbuf(l+3) = d(1,nod)
339 srbuf(l+4) = d(2,nod)
340 srbuf(l+5) = d(3,nod)
341 srbuf(l+6) = v(1,nod)
342 srbuf(l+7) = v(2,nod)
343 srbuf(l+8) = v(3,nod)
344 srbuf(l+9) = w(1,nod)
345 srbuf(l+10)= w(2,nod)
346 srbuf(l+11)= w(3,nod)
347 l = l + e_len
348 END DO
349 ENDIF
350 ENDIF
351 IF(iresp==1)THEN
352#include "vectorize.inc"
353 DO j=iad_elem(2,i),iad_elem(1,i+1)-1
354 nod = fr_elem(j)
355 srbufdp(l2) = xdp(1,nod)
356 srbufdp(l2+1)= xdp(2,nod)
357 srbufdp(l2+2)= xdp(3,nod)
358 l2= l2 + len_dp
359 ENDDO
360 ENDIF
361 ENDDO
362C
363C Sending messages
364C
365 l = 1
366 l2= 1
367 DO i=1,nspmd
368C----------------------------------------------------------------------------
369 IF(iad_elem(1,i+1)-iad_elem(2,i)>0)THEN
370 msgtyp = msgoff
371 siz = e_len*(iad_elem(1,i+1)-iad_elem(2,i))
372 CALL mpi_isend(
373 s srbuf(l),siz,real,it_spmd(i),msgtyp,
374 g spmd_comm_world,req_s(i),ierror)
375 l = l + siz
376
377 IF(iresp==1)THEN
378 msgtyp = msgoff2
379 sizdp = len_dp*(iad_elem(1,i+1)-iad_elem(2,i))
380 CALL mpi_isend(
381 s srbufdp(l2),sizdp,mpi_double_precision,it_spmd(i),msgtyp,
382 g spmd_comm_world,req_s_dp(i),ierror)
383 l2 = l2 + sizdp
384 ENDIF
385 ENDIF
386C----------------------------------------------------------------------------
387 ENDDO
388C wait terminaison isend
389 DO i = 1, nspmd
390 IF(iad_elem(1,i+1)-iad_elem(2,i)>0)THEN
391 CALL mpi_wait(req_s(i),status,ierror)
392 IF(iresp==1)THEN
393 CALL mpi_wait(req_s_dp(i),status,ierror)
394 ENDIF
395 END IF
396 END DO
397
398 END IF
399C
400C decompactage
401C
402 IF(ispmd/=0) THEN
403 l = 1
404 l2= 1
405 siz = e_len*(iad_elem(1,2)-iad_elem(2,1))
406 IF(iresp==1)sizdp = len_dp*(iad_elem(1,2)-iad_elem(2,1))
407 IF(siz/=0)THEN
408 msgtyp = msgoff
409 CALL mpi_recv(
410 s srbuf(l),siz,real,it_spmd(1),msgtyp,
411 g spmd_comm_world,status,ierror)
412
413 IF(iresp==1)THEN
414 msgtyp = msgoff2
415 CALL mpi_recv(
416 s srbufdp(l2),sizdp,mpi_double_precision,it_spmd(1),msgtyp,
417 g spmd_comm_world,status,ierror)
418 ENDIF
419
420 IF(new_d==0) THEN
421 IF(iroddl/=0.AND.dt_cst/=0) THEN
422#include "vectorize.inc"
423 DO j=iad_elem(2,1),iad_elem(1,2)-1
424 nod = fr_elem(j)
425 x(1,nod) = srbuf(l)
426 x(2,nod) = srbuf(l+1)
427 x(3,nod) = srbuf(l+2)
428 v(1,nod) = srbuf(l+3)
429 v(2,nod) = srbuf(l+4)
430 v(3,nod) = srbuf(l+5)
431 vr(1,nod) = srbuf(l+6)
432 vr(2,nod) = srbuf(l+7)
433 vr(3,nod) = srbuf(l+8)
434 ms(nod) = srbuf(l+9)
435 in(nod) = srbuf(l+10)
436 l = l + e_len
437 END DO
438 ELSEIF (iroddl/=0.AND.dt_cst==0) THEN
439#include "vectorize.inc"
440 DO j=iad_elem(2,1),iad_elem(1,2)-1
441 nod = fr_elem(j)
442 x(1,nod) = srbuf(l)
443 x(2,nod) = srbuf(l+1)
444 x(3,nod) = srbuf(l+2)
445 v(1,nod) = srbuf(l+3)
446 v(2,nod) = srbuf(l+4)
447 v(3,nod) = srbuf(l+5)
448 vr(1,nod) = srbuf(l+6)
449 vr(2,nod) = srbuf(l+7)
450 vr(3,nod) = srbuf(l+8)
451 l = l + e_len
452 END DO
453 ELSEIF (iroddl==0.AND.dt_cst/=0) THEN
454#include "vectorize.inc"
455 DO j=iad_elem(2,1),iad_elem(1,2)-1
456 nod = fr_elem(j)
457 x(1,nod) = srbuf(l)
458 x(2,nod) = srbuf(l+1)
459 x(3,nod) = srbuf(l+2)
460 v(1,nod) = srbuf(l+3)
461 v(2,nod) = srbuf(l+4)
462 v(3,nod) = srbuf(l+5)
463 ms(nod) = srbuf(l+6)
464 in(nod) = srbuf(l+7)
465 l = l + e_len
466 END DO
467 ELSE
468#include "vectorize.inc"
469 DO j=iad_elem(2,1),iad_elem(1,2)-1
470 nod = fr_elem(j)
471 x(1,nod) = srbuf(l)
472 x(2,nod) = srbuf(l+1)
473 x(3,nod) = srbuf(l+2)
474 v(1,nod) = srbuf(l+3)
475 v(2,nod) = srbuf(l+4)
476 v(3,nod) = srbuf(l+5)
477 l = l + e_len
478 END DO
479 ENDIF
480C D a recevoir
481 ELSEIF(new_d==1) THEN
482 IF(iroddl/=0.AND.dt_cst/=0) THEN
483#include "vectorize.inc"
484 DO j=iad_elem(2,1),iad_elem(1,2)-1
485 nod = fr_elem(j)
486 x(1,nod) = srbuf(l)
487 x(2,nod) = srbuf(l+1)
488 x(3,nod) = srbuf(l+2)
489 d(1,nod) = srbuf(l+3)
490 d(2,nod) = srbuf(l+4)
491 d(3,nod) = srbuf(l+5)
492 v(1,nod) = srbuf(l+6)
493 v(2,nod) = srbuf(l+7)
494 v(3,nod) = srbuf(l+8)
495 vr(1,nod) = srbuf(l+9)
496 vr(2,nod) = srbuf(l+10)
497 vr(3,nod) = srbuf(l+11)
498 ms(nod) = srbuf(l+12)
499 in(nod) = srbuf(l+13)
500 l = l + e_len
501 END DO
502 ELSEIF (iroddl/=0.AND.dt_cst==0) THEN
503#include "vectorize.inc"
504 DO j=iad_elem(2,1),iad_elem(1,2)-1
505 nod = fr_elem(j)
506 x(1,nod) = srbuf(l)
507 x(2,nod) = srbuf(l+1)
508 x(3,nod) = srbuf(l+2)
509 d(1,nod) = srbuf(l+3)
510 d(2,nod) = srbuf(l+4)
511 d(3,nod) = srbuf(l+5)
512 v(1,nod) = srbuf(l+6)
513 v(2,nod) = srbuf(l+7)
514 v(3,nod) = srbuf(l+8)
515 vr(1,nod) = srbuf(l+9)
516 vr(2,nod) = srbuf(l+10)
517 vr(3,nod) = srbuf(l+11)
518 l = l + e_len
519 END DO
520 ELSEIF (iroddl==0.AND.dt_cst/=0) THEN
521#include "vectorize.inc"
522 DO j=iad_elem(2,1),iad_elem(1,2)-1
523 nod = fr_elem(j)
524 x(1,nod) = srbuf(l)
525 x(2,nod) = srbuf(l+1)
526 x(3,nod) = srbuf(l+2)
527 d(1,nod) = srbuf(l+3)
528 d(2,nod) = srbuf(l+4)
529 d(3,nod) = srbuf(l+5)
530 v(1,nod) = srbuf(l+6)
531 v(2,nod) = srbuf(l+7)
532 v(3,nod) = srbuf(l+8)
533 ms(nod) = srbuf(l+9)
534 in(nod) = srbuf(l+10)
535 l = l + e_len
536 END DO
537 ELSE
538#include "vectorize.inc"
539 DO j=iad_elem(2,1),iad_elem(1,2)-1
540 nod = fr_elem(j)
541 x(1,nod) = srbuf(l)
542 x(2,nod) = srbuf(l+1)
543 x(3,nod) = srbuf(l+2)
544 d(1,nod) = srbuf(l+3)
545 d(2,nod) = srbuf(l+4)
546 d(3,nod) = srbuf(l+5)
547 v(1,nod) = srbuf(l+6)
548 v(2,nod) = srbuf(l+7)
549 v(3,nod) = srbuf(l+8)
550 l = l + e_len
551 END DO
552 ENDIF
553
554Cfrom and w to receive
555 ELSE
556 IF(iroddl/=0.AND.dt_cst/=0) THEN
557#include "vectorize.inc"
558 DO j=iad_elem(2,1),iad_elem(1,2)-1
559 nod = fr_elem(j)
560 x(1,nod) = srbuf(l)
561 x(2,nod) = srbuf(l+1)
562 x(3,nod) = srbuf(l+2)
563 d(1,nod) = srbuf(l+3)
564 d(2,nod) = srbuf(l+4)
565 d(3,nod) = srbuf(l+5)
566 v(1,nod) = srbuf(l+6)
567 v(2,nod) = srbuf(l+7)
568 v(3,nod) = srbuf(l+8)
569 vr(1,nod) = srbuf(l+9)
570 vr(2,nod) = srbuf(l+10)
571 vr(3,nod) = srbuf(l+11)
572 ms(nod) = srbuf(l+12)
573 in(nod) = srbuf(l+13)
574 w(1,nod) = srbuf(l+14)
575 w(2,nod) = srbuf(l+15)
576 w(3,nod) = srbuf(l+16)
577 l = l + e_len
578 END DO
579 ELSEIF (iroddl/=0.AND.dt_cst==0) THEN
580#include "vectorize.inc"
581 DO j=iad_elem(2,1),iad_elem(1,2)-1
582 nod = fr_elem(j)
583 x(1,nod) = srbuf(l)
584 x(2,nod) = srbuf(l+1)
585 x(3,nod) = srbuf(l+2)
586 d(1,nod) = srbuf(l+3)
587 d(2,nod) = srbuf(l+4)
588 d(3,nod) = srbuf(l+5)
589 v(1,nod) = srbuf(l+6)
590 v(2,nod) = srbuf(l+7)
591 v(3,nod) = srbuf(l+8)
592 vr(1,nod) = srbuf(l+9)
593 vr(2,nod) = srbuf(l+10)
594 vr(3,nod) = srbuf(l+11)
595 w(1,nod) = srbuf(l+12)
596 w(2,nod) = srbuf(l+13)
597 w(3,nod) = srbuf(l+14)
598 l = l + e_len
599 END DO
600 ELSEIF (iroddl==0.AND.dt_cst/=0) THEN
601#include "vectorize.inc"
602 DO j=iad_elem(2,1),iad_elem(1,2)-1
603 nod = fr_elem(j)
604 x(1,nod) = srbuf(l)
605 x(2,nod) = srbuf(l+1)
606 x(3,nod) = srbuf(l+2)
607 d(1,nod) = srbuf(l+3)
608 d(2,nod) = srbuf(l+4)
609 d(3,nod) = srbuf(l+5)
610 v(1,nod) = srbuf(l+6)
611 v(2,nod) = srbuf(l+7)
612 v(3,nod) = srbuf(l+8)
613 ms(nod) = srbuf(l+9)
614 in(nod) = srbuf(l+10)
615 w(1,nod) = srbuf(l+11)
616 w(2,nod) = srbuf(l+12)
617 w(3,nod) = srbuf(l+13)
618 l = l + e_len
619 END DO
620 ELSE
621#include "vectorize.inc"
622 DO j=iad_elem(2,1),iad_elem(1,2)-1
623 nod = fr_elem(j)
624 x(1,nod) = srbuf(l)
625 x(2,nod) = srbuf(l+1)
626 x(3,nod) = srbuf(l+2)
627 d(1,nod) = srbuf(l+3)
628 d(2,nod) = srbuf(l+4)
629 d(3,nod) = srbuf(l+5)
630 v(1,nod) = srbuf(l+6)
631 v(2,nod) = srbuf(l+7)
632 v(3,nod) = srbuf(l+8)
633 w(1,nod) = srbuf(l+9)
634 w(2,nod) = srbuf(l+10)
635 w(3,nod) = srbuf(l+11)
636 l = l + e_len
637 END DO
638 ENDIF
639 ENDIF
640 IF(iresp==1)THEN
641#include "vectorize.inc"
642 DO j=iad_elem(2,1),iad_elem(1,2)-1
643 nod = fr_elem(j)
644 xdp(1,nod)= srbufdp(l2)
645 xdp(2,nod)= srbufdp(l2+1)
646 xdp(3,nod)= srbufdp(l2+2)
647 l2= l2 + len_dp
648 ENDDO
649 ENDIF
650 END IF
651 ENDIF
652 DEALLOCATE(srbuf)
653C
654#endif
655 RETURN
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21
subroutine mpi_recv(buf, cnt, datatype, source, tag, comm, status, ierr)
Definition mpi.f:461
subroutine mpi_isend(buf, cnt, datatype, dest, tag, comm, ireq, ierr)
Definition mpi.f:382
subroutine mpi_wait(ireq, status, ierr)
Definition mpi.f:525
type(ale_) ale
Definition ale_mod.F:253
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
Definition message.F:895
subroutine arret(nn)
Definition arret.F:86