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