OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
spmd_th.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| spmd_all_dmin ../engine/source/mpi/interfaces/spmd_th.F
25!||--- calls -----------------------------------------------------
26!||--- uses -----------------------------------------------------
27!|| spmd_comm_world_mod ../engine/source/mpi/spmd_comm_world.F90
28!||====================================================================
29 SUBROUTINE spmd_all_dmin(V,LEN)
30C min table V of size LEN of type my_real
31C result in VTMP of size LEN
32C-----------------------------------------------
33C I m p l i c i t T y p e s
34C-----------------------------------------------
35 USE spmd_comm_world_mod, ONLY : spmd_comm_world
36#include "implicit_f.inc"
37C-----------------------------------------------------------------
38C M e s s a g e P a s s i n g
39C-----------------------------------------------
40#include "spmd.inc"
41C-----------------------------------------------
42C C o m m o n B l o c k s
43C-----------------------------------------------
44#include "task_c.inc"
45C-----------------------------------------------
46C D u m m y A r g u m e n t s
47C-----------------------------------------------
48 INTEGER LEN
50 . v(len)
51C-----------------------------------------------
52C L o c a l V a r i a b l e s
53C-----------------------------------------------
54#ifdef MPI
55 INTEGER I, IERROR
57 . vtmp(len)
58C-----------------------------------------------
59C S o u r c e L i n e s
60C-----------------------------------------------
61 IF (len > 0) THEN
62 CALL mpi_allreduce(v,vtmp,len,real,mpi_min,
63 . spmd_comm_world,ierror)
64 IF(ispmd==0)THEN
65 DO i = 1, len
66 v(i) = vtmp(i)
67 END DO
68 END IF
69 ENDIF
70C
71#endif
72 RETURN
73 END
74
75!||====================================================================
76!|| spmd_glob_dsum ../engine/source/mpi/interfaces/spmd_th.F
77!||--- called by ------------------------------------------------------
78!|| get_u_nod_a ../engine/source/user_interface/uaccess.F
79!|| get_u_nod_d ../engine/source/user_interface/uaccess.F
80!|| get_u_nod_v ../engine/source/user_interface/uaccess.F
81!|| get_u_nod_x ../engine/source/user_interface/uaccess.F
82!||--- calls -----------------------------------------------------
83!||--- uses -----------------------------------------------------
84!|| spmd_comm_world_mod ../engine/source/mpi/spmd_comm_world.F90
85!||====================================================================
86 SUBROUTINE spmd_glob_dsum(V,LEN,VTMP)
87C gather table V of size LEN of type my_real
88C-----------------------------------------------
89C I m p l i c i t T y p e s
90C-----------------------------------------------
91 USE spmd_comm_world_mod, ONLY : spmd_comm_world
92#include "implicit_f.inc"
93C-----------------------------------------------------------------
94C M e s s a g e P a s s i n g
95C-----------------------------------------------
96#include "spmd.inc"
97C-----------------------------------------------
98C C o m m o n B l o c k s
99C-----------------------------------------------
100#include "task_c.inc"
101C-----------------------------------------------
102C D u m m y A r g u m e n t s
103C-----------------------------------------------
104 INTEGER LEN
105 my_real v(len),vtmp(*)
106C-----------------------------------------------
107C L o c a l V a r i a b l e s
108C-----------------------------------------------
109#ifdef MPI
110 INTEGER I
111 INTEGER IERROR
112C-----------------------------------------------
113C S o u r c e L i n e s
114C-----------------------------------------------
115 IF (len > 0) THEN
116 CALL mpi_reduce(v,vtmp,len,
117 . real,mpi_sum,it_spmd(1),
118 . spmd_comm_world,ierror)
119 ENDIF
120 IF (ispmd==0) THEN
121 DO i=1,len
122 v(i) = vtmp(i)
123 END DO
124 ENDIF
125C
126#endif
127 RETURN
128 END
129C
130!||====================================================================
131!|| spmd_glob_dpsum ../engine/source/mpi/interfaces/spmd_th.F
132!||--- calls -----------------------------------------------------
133!||--- uses -----------------------------------------------------
134!|| spmd_comm_world_mod ../engine/source/mpi/spmd_comm_world.F90
135!||====================================================================
136 SUBROUTINE spmd_glob_dpsum(V,LEN,VTMP)
137C gather table V of size LEN of type my_dp
138C-----------------------------------------------
139C I m p l i c i t T y p e s
140C-----------------------------------------------
141 USE spmd_comm_world_mod, ONLY : spmd_comm_world
142#include "implicit_f.inc"
143
144C-----------------------------------------------------------------
145C M e s s a g e P a s s i n g
146C-----------------------------------------------
147#include "spmd.inc"
148C-----------------------------------------------
149C C o m m o n B l o c k s
150C-----------------------------------------------
151#include "task_c.inc"
152C-----------------------------------------------
153C D u m m y A r g u m e n t s
154C-----------------------------------------------
155 INTEGER LEN
156 DOUBLE PRECISION V(LEN),VTMP(*)
157C-----------------------------------------------
158C L o c a l V a r i a b l e s
159C-----------------------------------------------
160#ifdef MPI
161 INTEGER I
162 INTEGER IERROR
163C-----------------------------------------------
164C S o u r c e L i n e s
165C-----------------------------------------------
166 IF (len > 0) THEN
167 CALL mpi_reduce(v,vtmp,len,
168 . mpi_double_precision,mpi_sum,it_spmd(1),
169 . spmd_comm_world,ierror)
170 ENDIF
171 IF (ispmd==0) THEN
172 DO i=1,len
173 v(i) = vtmp(i)
174 END DO
175 ENDIF
176C
177#endif
178 RETURN
179 END
180C
181!||====================================================================
182!|| spmd_glob_fsum ../engine/source/mpi/interfaces/spmd_th.F
183!||--- calls -----------------------------------------------------
184!||--- uses -----------------------------------------------------
185!|| spmd_comm_world_mod ../engine/source/mpi/spmd_comm_world.f90
186!||====================================================================
187 SUBROUTINE spmd_glob_fsum(V,LEN,VTMP)
188C gather tableau V de taille LEN de type REAL*4
189C-----------------------------------------------
190C I m p l i c i t T y p e s
191C-----------------------------------------------
192 USE spmd_comm_world_mod, ONLY : spmd_comm_world
193#include "implicit_f.inc"
194C-----------------------------------------------------------------
195C M e s s a g e P a s s i n g
196C-----------------------------------------------
197#include "spmd.inc"
198C-----------------------------------------------
199C C o m m o n B l o c k s
200C-----------------------------------------------
201#include "task_c.inc"
202C-----------------------------------------------
203C D u m m y A r g u m e n t s
204C-----------------------------------------------
205 INTEGER LEN
206 real*4 v(len),vtmp(*)
207C-----------------------------------------------
208C L o c a l V a r i a b l e s
209C-----------------------------------------------
210#ifdef MPI
211 INTEGER I
212 INTEGER IERROR
213C-----------------------------------------------
214C S o u r c e L i n e s
215C-----------------------------------------------
216 IF (len > 0) THEN
217 CALL mpi_reduce(v,vtmp,len,
218 . mpi_real4,mpi_sum,it_spmd(1),
219 . spmd_comm_world,ierror)
220 ENDIF
221 IF (ispmd==0) THEN
222 DO i=1,len
223 v(i) = vtmp(i)
224 END DO
225 ENDIF
226C
227#endif
228 RETURN
229 END
230C
231!||====================================================================
232!|| spmd_part_com ../engine/source/mpi/interfaces/spmd_th.f
233!||--- called by ------------------------------------------------------
234!|| rbypid ../engine/source/constraints/general/rbody/rbypid.F
235!||--- calls -----------------------------------------------------
236!||--- uses -----------------------------------------------------
237!|| spmd_comm_world_mod ../engine/source/mpi/spmd_comm_world.F90
238!||====================================================================
239 SUBROUTINE spmd_part_com(TAG,MAIN,ICOMV)
240C fills on pmain the table ICOMV according to the value of local TAG
241C ie on main : ICOMV(P) = "TAG on p"
242C-----------------------------------------------
243C I m p l i c i t T y p e s
244C-----------------------------------------------
245 USE spmd_comm_world_mod, ONLY : spmd_comm_world
246#include "implicit_f.inc"
247C-----------------------------------------------------------------
248C M e s s a g e P a s s i n g
249C-----------------------------------------------
250#include "spmd.inc"
251C-----------------------------------------------
252C C o m m o n B l o c k s
253C-----------------------------------------------
254#include "com01_c.inc"
255#include "task_c.inc"
256C-----------------------------------------------
257C D u m m y A r g u m e n t s
258C-----------------------------------------------
259 INTEGER TAG, MAIN, ICOMV(*)
260C-----------------------------------------------
261C L o c a l V a r i a b l e s
262C-----------------------------------------------
263#ifdef MPI
264 INTEGER MSGOFF,MSGTYP,K,LOC_PROC
265 DATA msgoff/8001/
266 INTEGER STATUS(MPI_STATUS_SIZE),IERROR
267C-----------------------------------------------
268C S o u r c e L i n e s
269C-----------------------------------------------
270 loc_proc = ispmd+1
271 IF (loc_proc/=main) THEN
272 msgtyp=msgoff
273 CALL mpi_send(tag,1,mpi_integer,it_spmd(main),
274 . msgtyp,spmd_comm_world,ierror)
275 ELSE
276 icomv(main) = tag
277 DO k=1,nspmd
278 IF(k/=main) THEN
279 msgtyp=msgoff
280 CALL mpi_recv(tag,1,mpi_integer,it_spmd(k),
281 . msgtyp,spmd_comm_world,status,ierror)
282 icomv(k) = tag
283 END IF
284 END DO
285 ENDIF
286C
287#endif
288 RETURN
289 END
290C
291
292!||====================================================================
293!|| spmd_glob_fsum9 ../engine/source/mpi/interfaces/spmd_th.F
294!||--- called by ------------------------------------------------------
295!|| velvecc ../engine/source/output/anim/generate/velvec.F
296!||--- calls -----------------------------------------------------
297!||--- uses -----------------------------------------------------
298!|| my_alloc_mod ../common_source/tools/memory/my_alloc.F90
299!|| spmd_comm_world_mod ../engine/source/mpi/spmd_comm_world.F90
300!||====================================================================
301 SUBROUTINE spmd_glob_fsum9(V,LEN)
302C gather table V of size LEN of type real
303C-----------------------------------------------
304C I m p l i c i t T y p e s
305C-----------------------------------------------
306 USE my_alloc_mod
307 USE spmd_comm_world_mod, ONLY : spmd_comm_world
308#include "implicit_f.inc"
309C-----------------------------------------------------------------
310C M e s s a g e P a s s i n g
311C-----------------------------------------------
312#include "spmd.inc"
313C-----------------------------------------------
314C C o m m o n B l o c k s
315C-----------------------------------------------
316#include "task_c.inc"
317C-----------------------------------------------
318C D u m m y A r g u m e n t s
319C-----------------------------------------------
320 INTEGER LEN
321 real
322 . v(len)
323C-----------------------------------------------
324C L o c a l V a r i a b l e s
325C-----------------------------------------------
326#ifdef MPI
327 INTEGER I, IERROR
328 REAL, DIMENSION(:),ALLOCATABLE :: VTMP
329C-----------------------------------------------
330C S o u r c e L i n e s
331C-----------------------------------------------
332 CALL my_alloc(vtmp,len)
333 IF (len > 0) THEN
334 CALL mpi_reduce(v,vtmp,len,
335 . mpi_real,mpi_sum,it_spmd(1),
336 . spmd_comm_world,ierror)
337 ENDIF
338 IF (ispmd==0) THEN
339 DO i=1,len
340 v(i) = vtmp(i)
341 END DO
342 ENDIF
343C
344 DEALLOCATE(vtmp)
345#endif
346 RETURN
347 END
348C
349!||====================================================================
350!|| spmd_glob_dsum9 ../engine/source/mpi/interfaces/spmd_th.F
351!||--- called by ------------------------------------------------------
352!|| alelin ../engine/source/ale/grid/alelin.f
353!|| ani_pcont21 ../engine/source/output/anim/generate/ani_pcont.F
354!|| ecrit ../engine/source/output/ecrit.F
355!|| hist2 ../engine/source/output/th/hist2.F
356!|| i9wal2 ../engine/source/interfaces/int09/i9wal2.F
357!|| i9wal3 ../engine/source/interfaces/int09/i9wal3.F
358!|| intstamp_ass ../engine/source/interfaces/int21/intstamp_ass.F
359!|| noise ../engine/source/general_controls/computation/noise.F
360!|| outp_mt ../engine/source/output/sty/outp_mt.F
361!|| outp_n_v2 ../engine/source/output/sty/outp_n_v.F
362!|| outp_n_vc ../engine/source/output/sty/outp_n_v.F
363!|| pnoise ../engine/source/general_controls/computation/pnoise.F
364!|| section_io ../engine/source/tools/sect/section_io.f
365!|| sensor_spmd ../engine/source/tools/sensor/sensor_spmd.F
366!|| sms_pcg ../engine/source/ams/sms_pcg.F
367!|| sms_produt3 ../engine/source/ams/sms_proj.f
368!|| sortie_error ../engine/source/output/sortie_error.F
369!|| thcluster ../engine/source/output/th/thcluster.f
370!|| velvec2 ../engine/source/output/anim/generate/velvec.F
371!|| velvecc21 ../engine/source/output/anim/generate/velvec.F
372!|| wrrestp ../engine/source/output/restart/wrrestp.F
373!|| wrtdes0 ../engine/source/output/th/wrtdes0.F
374!||--- calls -----------------------------------------------------
375!||--- uses -----------------------------------------------------
376!|| spmd_comm_world_mod ../engine/source/mpi/spmd_comm_world.F90
377!||====================================================================
378 SUBROUTINE spmd_glob_dsum9(V,LEN)
379C gather table V of size LEN of type my_real
380C-----------------------------------------------
381C I m p l i c i t T y p e s
382C-----------------------------------------------
383 USE spmd_comm_world_mod, ONLY : spmd_comm_world
384#include "implicit_f.inc"
385C-----------------------------------------------------------------
386C M e s s a g e P a s s i n g
387C-----------------------------------------------
388#include "spmd.inc"
389C-----------------------------------------------
390C C o m m o n B l o c k s
391C-----------------------------------------------
392#include "task_c.inc"
393C-----------------------------------------------
394C D u m m y A r g u m e n t s
395C-----------------------------------------------
396 INTEGER LEN
397 my_real
398 . v(len)
399C-----------------------------------------------
400C L o c a l V a r i a b l e s
401C-----------------------------------------------
402#ifdef MPI
403 INTEGER I, IERROR
404 my_real
405 . vtmp(len)
406C-----------------------------------------------
407C S o u r c e L i n e s
408C-----------------------------------------------
409 IF (len > 0) THEN
410 CALL mpi_reduce(v,vtmp,len,
411 . real,mpi_sum,it_spmd(1),
412 . spmd_comm_world,ierror)
413 ENDIF
414 IF (ispmd==0) THEN
415 DO i=1,len
416 v(i) = vtmp(i)
417 END DO
418 ENDIF
419C
420#endif
421 RETURN
422 END
423!||====================================================================
424!|| spmd_glob_dpsum9 ../engine/source/mpi/interfaces/spmd_th.f
425!||--- called by ------------------------------------------------------
426!|| intstamp_ass ../engine/source/interfaces/int21/intstamp_ass.f
427!|| sms_pcg ../engine/source/ams/sms_pcg.F
428!|| sms_produt3 ../engine/source/ams/sms_proj.F
429!|| sms_produt_h ../engine/source/ams/sms_proj.F
430!||--- calls -----------------------------------------------------
431!||--- uses -----------------------------------------------------
432!|| spmd_comm_world_mod ../engine/source/mpi/spmd_comm_world.F90
433!||====================================================================
434 SUBROUTINE spmd_glob_dpsum9(V,LEN)
435C Gather Table V of Double precision type size
436C-----------------------------------------------
437C I m p l i c i t T y p e s
438C-----------------------------------------------
439 USE spmd_comm_world_mod, ONLY : spmd_comm_world
440#include "implicit_f.inc"
441C-----------------------------------------------------------------
442C M e s s a g e P a s s i n g
443C-----------------------------------------------
444#include "spmd.inc"
445C-----------------------------------------------
446C C o m m o n B l o c k s
447C-----------------------------------------------
448#include "task_c.inc"
449C-----------------------------------------------
450C D u m m y A r g u m e n t s
451C-----------------------------------------------
452 INTEGER LEN
453 double precision
454 . v(len)
455C-----------------------------------------------
456C L o c a l V a r i a b l e s
457C-----------------------------------------------
458#ifdef MPI
459 INTEGER I, IERROR
460 double precision
461 . vtmp(len)
462C-----------------------------------------------
463C S o u r c e L i n e s
464C-----------------------------------------------
465 IF (len > 0) THEN
466 CALL mpi_reduce(v,vtmp,len,
467 . mpi_double_precision,mpi_sum,it_spmd(1),
468 . spmd_comm_world,ierror)
469 ENDIF
470 IF (ispmd==0) THEN
471 DO i=1,len
472 v(i) = vtmp(i)
473 END DO
474 ENDIF
475C
476#endif
477 RETURN
478 END
479!||====================================================================
480!|| spmd_glob_isum9 ../engine/source/mpi/interfaces/spmd_th.F
481!||--- called by ------------------------------------------------------
482!|| cntskew ../engine/source/output/anim/generate/aniskewf.F
483!|| donesec ../engine/source/output/anim/generate/donesec.F
484!|| drbe2cnt ../engine/source/output/anim/generate/drbe2cnt.F
485!|| drbe3cnt ../engine/source/output/anim/generate/drbe3cnt.F
486!|| drbycnt ../engine/source/output/anim/generate/drbycnt.F
487!|| dseccnt ../engine/source/output/anim/generate/dseccnt.F
488!|| dsphcnt ../engine/source/output/anim/generate/dsphcnt.F
489!|| dynain_size_c ../engine/source/output/dynain/dynain_size.f
490!|| find_dt_for_targeted_added_mass ../engine/source/time_step/find_dt_for_targeted_added_mass.F
491!|| fr_rlale ../engine/source/mpi/kinematic_conditions/fr_rlink1.F
492!|| fr_rlink1 ../engine/source/mpi/kinematic_conditions/fr_rlink1.F
493!|| fxbypid ../engine/source/constraints/fxbody/fxbypid.F
494!|| genani ../engine/source/output/anim/generate/genani.F
495!|| h3d_create_rbe2_impi ../engine/source/output/h3d/h3d_build_fortran/h3d_create_rbe2_impi.F
496!|| h3d_create_rbe3_impi ../engine/source/output/h3d/h3d_build_fortran/h3d_create_rbe3_impi.F
497!|| h3d_create_rbodies_impi ../engine/source/output/h3d/h3d_build_fortran/h3d_create_rbodies_impi.F
498!|| i21_icrit ../engine/source/interfaces/intsort/i21_icrit.F
499!|| i9wal2 ../engine/source/interfaces/int09/i9wal2.F
500!|| i9wal3 ../engine/source/interfaces/int09/i9wal3.F
501!|| lcbcsf ../engine/source/constraints/general/bcs/lcbcsf.f
502!|| lecnoise ../engine/source/general_controls/computation/lecnoise.F
503!|| lectur ../engine/source/input/lectur.F
504!|| pnoise ../engine/source/general_controls/computation/pnoise.F
505!|| printime ../engine/source/system/timer.F
506!|| rbyonf ../engine/source/constraints/general/rbody/rbyonf.F
507!|| rbypid ../engine/source/constraints/general/rbody/rbypid.F
508!|| resol ../engine/source/engine/resol.f
509!|| sensor_spmd ../engine/source/tools/sensor/sensor_spmd.F
510!|| spmd_dparrbe2 ../engine/source/mpi/anim/spmd_dparrbe2.F
511!|| spmd_dparrbe3 ../engine/source/mpi/anim/spmd_dparrbe3.f
512!|| spmd_dparrby ../engine/source/mpi/anim/spmd_dparrby.F
513!|| stat_size_c ../engine/source/output/sta/stat_size.F
514!|| sz_print ../engine/source/output/restart/arralloc.F
515!||--- calls -----------------------------------------------------
516!||--- uses -----------------------------------------------------
517!|| spmd_comm_world_mod ../engine/source/mpi/spmd_comm_world.F90
518!||====================================================================
519 SUBROUTINE spmd_glob_isum9(V,LEN)
520C gather table V of size LEN of type integer
521C-----------------------------------------------
522C I m p l i c i t T y p e s
523C-----------------------------------------------
524 USE spmd_comm_world_mod, ONLY : spmd_comm_world
525#include "implicit_f.inc"
526C-----------------------------------------------------------------
527C M e s s a g e P a s s i n g
528C-----------------------------------------------
529#include "spmd.inc"
530C-----------------------------------------------
531C C o m m o n B l o c k s
532C-----------------------------------------------
533#include "task_c.inc"
534C-----------------------------------------------
535C D u m m y A r g u m e n t s
536C-----------------------------------------------
537 INTEGER LEN, V(LEN)
538C-----------------------------------------------
539C L o c a l V a r i a b l e s
540C-----------------------------------------------
541#ifdef MPI
542 INTEGER I, IERROR,
543 . VTMP(LEN)
544C-----------------------------------------------
545C S o u r c e L i n e s
546C-----------------------------------------------
547 IF (len > 0) THEN
548 CALL mpi_reduce(v,vtmp,len,
549 . mpi_integer,mpi_sum,it_spmd(1),
550 . spmd_comm_world,ierror)
551 ENDIF
552 IF (ispmd==0) THEN
553 DO i=1,len
554 v(i) = vtmp(i)
555 END DO
556 ENDIF
557C
558#endif
559 RETURN
560 END
561C
562!||====================================================================
563!|| spmd_glob_min ../engine/source/mpi/interfaces/spmd_th.F
564!||--- calls -----------------------------------------------------
565!||--- uses -----------------------------------------------------
566!|| spmd_comm_world_mod ../engine/source/mpi/spmd_comm_world.F90
567!||====================================================================
568 SUBROUTINE spmd_glob_min(V,LEN)
569C gather table V of size LEN of type reel
570C-----------------------------------------------
571C I m p l i c i t T y p e s
572C-----------------------------------------------
573 USE spmd_comm_world_mod, ONLY : spmd_comm_world
574#include "implicit_f.inc"
575C-----------------------------------------------------------------
576C M e s s a g e P a s s i n g
577C-----------------------------------------------
578#include "spmd.inc"
579C-----------------------------------------------
580C C o m m o n B l o c k s
581C-----------------------------------------------
582#include "task_c.inc"
583C-----------------------------------------------
584C D u m m y A r g u m e n t s
585C-----------------------------------------------
586 INTEGER LEN
587 my_real
588 . v(len),vtmp(len)
589C-----------------------------------------------
590C L o c a l V a r i a b l e s
591C-----------------------------------------------
592#ifdef MPI
593 INTEGER I, IERROR
594C-----------------------------------------------
595C S o u r c e L i n e s
596C-----------------------------------------------
597 IF (len > 0) THEN
598 CALL mpi_reduce(v,vtmp,len,
599 . real,mpi_min,it_spmd(1),
600 . spmd_comm_world,ierror)
601 ENDIF
602 IF (ispmd==0) THEN
603 DO i=1,len
604 v(i) = vtmp(i)
605 END DO
606 ENDIF
607C
608#endif
609 RETURN
610 END
611!||====================================================================
612!|| spmd_glob_max ../engine/source/mpi/interfaces/spmd_th.F
613!||--- calls -----------------------------------------------------
614!||--- uses -----------------------------------------------------
615!|| spmd_comm_world_mod ../engine/source/mpi/spmd_comm_world.F90
616!||====================================================================
617 SUBROUTINE spmd_glob_max(V,LEN)
618C gather table V of size LEN of type reel
619C-----------------------------------------------
620C I m p l i c i t T y p e s
621C-----------------------------------------------
622 USE spmd_comm_world_mod, ONLY : spmd_comm_world
623#include "implicit_f.inc"
624C-----------------------------------------------------------------
625C M e s s a g e P a s s i n g
626C-----------------------------------------------
627#include "spmd.inc"
628C-----------------------------------------------
629C C o m m o n B l o c k s
630C-----------------------------------------------
631#include "task_c.inc"
632C-----------------------------------------------
633C D u m m y A r g u m e n t s
634C-----------------------------------------------
635 INTEGER LEN
636 my_real
637 . v(len),vtmp(len)
638C-----------------------------------------------
639C L o c a l V a r i a b l e s
640C-----------------------------------------------
641#ifdef MPI
642
643 INTEGER I, IERROR
644C-----------------------------------------------
645C S o u r c e L i n e s
646C-----------------------------------------------
647 IF (len > 0) THEN
648 CALL mpi_reduce(v,vtmp,len,
649 . real,mpi_max,it_spmd(1),
650 . spmd_comm_world,ierror)
651 ENDIF
652 IF (ispmd==0) THEN
653 DO i=1,len
654 v(i) = vtmp(i)
655 END DO
656 ENDIF
657C
658#endif
659 RETURN
660 END
661C
subroutine alelin(nalelk, linale, w, weight, igrnod)
Definition alelin.F:34
#define my_real
Definition cppsort.cpp:32
subroutine dynain_size_c(iparg, elbuf_tab, p0ars, wasz, dynain_data)
Definition dynain_size.F:34
subroutine intstamp_ass(intstamp, ms, in, a, ar, stifn, stifr, weight, wfext)
subroutine lcbcsf(icode, iskew, numbcsn, itab, itabm1, npby, iskwn, weight)
Definition lcbcsf.F:36
subroutine mpi_recv(buf, cnt, datatype, source, tag, comm, status, ierr)
Definition mpi.f:461
subroutine mpi_reduce(sendbuf, recvbuf, cnt, datatype, op, root, comm, ierr)
Definition mpi.f:120
subroutine mpi_send(buf, cnt, datatype, dest, tag, comm, ierr)
Definition mpi.f:480
subroutine mpi_allreduce(sendbuf, recvbuf, cnt, datatype, operation, comm, ierr)
Definition mpi.f:103
subroutine resol(timers, element, nodes, coupling, af, iaf, iskwn, neth, ipart, nom_opt, kxx, ixx, ixtg, ixs, ixq, ixt, ixp, ixr, ifill, mat_elem, ims, npc, ibcl, ibfv, idum, las, laccelm, nnlink, lnlink, iparg, dd_iad, igrv, iexlnk, ipari, iconx, npby, lpby, lrivet, nstrf, ljoint, nodpor, monvol, ilink, llink, linale, neflsw, nnflsw, icut, cluster, itask, inoise, thke, damp, pm, skews, geo, eani, bufmat, bufgeo, bufsf, w, veul, fill, dfill, alph, wb, dsave, asave, msnf, tf, forc, vel, fsav, fzero, xlas, accelm, agrv, fr_wave, failwave, parts0, elbuf, sensors, rby, rivet, secbuf, volmon, lambda, wa, fv, partsav, uwa, val2, phi, segvar, r, crflsw, flsw, xcut, tani, secfcum, bufnois, idata, rdata, iframe, kxsp, ixsp, nod2sp, ispsym, ispcond, xframe, spbuf, xspsym, vspsym, pv, fsavd, ibvel, lbvel, wasph, w16, isphio, lprtsph, lonfsph, vsphio, fbvel, lagbuf, ibcslag, iactiv, dampr, gjbufi, gjbufr, rbmpc, ibmpc, sphveln, nbrcvois, nbsdvois, lnrcvois, lnsdvois, nercvois, nesdvois, lercvois, lesdvois, npsegcom, lsegcom, nporgeo, ixtg1, npbyl, lpbyl, rbyl, igeo, ipm, madprt, madsh4, madsh3, madsol, madnod, madfail, iad_rby, fr_rby, iad_rby2, fr_rby2, iad_i2m, fr_i2m, addcni2, procni2, iadi2, fr_mv, iadmv2, fr_ll, fr_rl, iadcj, fr_cj, fr_sec, iad_sec, iad_cut, fr_cut, rg_cut, newfront, fr_mad, fxbipm, fxbrpm, fxbnod, fxbmod, fxbglm, fxbcpm, fxbcps, fxblm, fxbfls, fxbdls, fxbdep, fxbvit, fxbacc, fxbelm, fxbsig, fxbgrvi, fxbgrvr, eigipm, eigibuf, eigrpm, lnodpor, fr_i18, graphe, iflow, rflow, lgrav, dd_r2r, fasolfr, fr_lagf, llagf, icontact, rcontact, sh4tree, sh3tree, ipadmesh, padmesh, msc, mstg, inc, intg, ptg, iskwp, nskwp, isensp, nsensp, iaccp, naccp, ipart_state, acontact, pcontact, factiv, sh4trim, sh3trim, mscnd, incnd, ibfflux, fbfflux, rbym, irbym, lnrbym, icodrbym, ibcv, fconv, ibftemp, fbftemp, iad_rbym, fr_rbym, weight_rm, ms_ply, zi_ply, inod_pxfem, iel_pxfem, iadc_pxfem, adsky_pxfem, icode_ply, icodt_ply, iskew_ply, admsms, madclnod, nom_sect, mcpc, mcptg, dmelc, dmeltg, mssa, dmels, mstr, dmeltr, msp, dmelp, msrt, dmelrt, ibcr, fradia, res_sms, table, irbe2, lrbe2, iad_rbe2, fr_rbe2, phie, msf, procne_pxfem, iadsdp_pxfem, iadrcp_pxfem, icfield, lcfield, cfield, msz2, diag_sms, iloadp, lloadp, loadp, inod_crk, iel_crk, iadc_crk, adsky_crk, cne_crk, procne_crk, iadsdp_crk, iadrcp_crk, ibufssg_io, ibc_ply, dmint2, ibordnode, elbuf_tab, por, nodedge, iad_edge, fr_edge, fr_nbedge, crknodiad, lgauge, gauge, igaup, ngaup, nodlevxf, dd_r2r_elem, nodglobxfe, sph2sol, sol2sph, irst, dmsph, wagap, xfem_tab, elcutc, nodenr, kxfenod2elc, enrtag, rthbu f, kxig3d, ixig3d, knot, wige, wsmcomp, stack, cputime_mp_glob, cputime_mp, tab_ump, poin_ump, sol2sph_typ, irunn_bis, addcsrect, iad_frnor, fr_nor, procnor, iad_fredg, fr_edg, drape_sh4n, drape_sh3n, tab_mat, nativ0_sms, multi_fvm, segquadfr, ms_2d, h3d_data, subsets, igrnod, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, igrpart, igrsurf, forneqs, nloc_dmg, iskwp_l, knotlocpc, knotlocel, pinch_data, tag_skins6, ale_connectivity, xcell, xface, ne_nercvois, ne_nesdvois, ne_lercvois, ne_lesdvois, ibcscyc, lbcscyc, t_monvol, id_global_vois, face_vois, dynain_data, fcont_max, ebcs_tab, diffusion, kloadpinter, loadpinter, dgaploadint, drapeg, user_windows, output, interfaces, dt, loads, python, dpl0cld, vel0cld, ndamp_vrel, id_damp_vrel, fr_damp_vrel, ndamp_vrel_rbyg, names_and_titles, unitab, liflow, lrflow, glob_therm, pblast, rbe3, rwall)
Definition resol.F:648
subroutine section_io(nstrf, d, dr, v, vr, fsav, secfcum, a, ar, secbuf, ms, in, x, fani, weight, xsec, iad_elem, fr_elem, rg_cut, iad_cut, fr_cut, weight_md, ioldsect, stabsen, dimfb, tabs, fbsav6, wfext)
Definition section_io.F:46
subroutine sms_produt3(nodft, nodlt, x, y, weight, r, itask)
Definition sms_proj.F:784
subroutine spmd_dparrbe3(lrbe3, irbe3, nodglob, weight, nerbe3y, nerbe3t)
subroutine spmd_all_dmin(v, len)
Definition spmd_th.F:30
subroutine spmd_glob_dsum9(v, len)
Definition spmd_th.F:379
subroutine spmd_glob_dpsum9(v, len)
Definition spmd_th.F:435
subroutine spmd_glob_fsum(v, len, vtmp)
Definition spmd_th.F:188
subroutine spmd_glob_isum9(v, len)
Definition spmd_th.F:520
subroutine spmd_glob_max(v, len)
Definition spmd_th.F:618
subroutine spmd_glob_fsum9(v, len)
Definition spmd_th.F:302
subroutine spmd_part_com(tag, main, icomv)
Definition spmd_th.F:240
subroutine spmd_glob_dpsum(v, len, vtmp)
Definition spmd_th.F:137
subroutine spmd_glob_dsum(v, len, vtmp)
Definition spmd_th.F:87
subroutine spmd_glob_min(v, len)
Definition spmd_th.F:569
subroutine thcluster(wa, iad, iadv, nn, nvar, ittyp, ithbuf, cluster, skew, x, ixs, iparg)
Definition thcluster.F:42