OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
mpi_comm_mod.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/.
23C generic module intended to pack information needed for asynchronous communications
24C where send and received are not done in the same routine
25!||====================================================================
26!|| mpi_commod ../engine/share/modules/mpi_comm_mod.F
27!||--- called by ------------------------------------------------------
28!|| allocate_comm_struct ../engine/share/modules/mpi_comm_mod.F
29!|| deallocate_comm_struct ../engine/share/modules/mpi_comm_mod.F
30!|| i25main_norm ../engine/source/interfaces/int25/i25main_norm.F
31!|| i25main_slid ../engine/source/interfaces/int25/i25main_slid.F
32!|| i25maind_2 ../engine/source/interfaces/int25/i25maind_2.F
33!|| i25normp ../engine/source/interfaces/int25/i25norm.F
34!|| spmd_i25_slide_exch ../engine/source/mpi/interfaces/spmd_i25slide.F
35!|| spmd_i25front_nor ../engine/source/mpi/interfaces/spmd_i25front.F
36!||====================================================================
39 INTEGER,DIMENSION(:,:), POINTER :: send_rq
40 INTEGER,DIMENSION(:,:), POINTER :: recv_rq
41 INTEGER,DIMENSION(:,:), POINTER :: tag
42 INTEGER,DIMENSION(:,:), POINTER :: siz
43 END TYPE mpi_comm_struct
45 INTEGER, DIMENSION(:), POINTER :: send_rq
46 INTEGER, DIMENSION(:), POINTER :: recv_rq
47 INTEGER, DIMENSION(:), POINTER :: isindex,irindex
48 INTEGER, DIMENSION(:), POINTER :: iad_recv,iad_send
49 INTEGER :: nbirecv,nbisend
50 REAL(kind=4) , dimension(:) , POINTER :: send_buf, recv_buf
51 END TYPE mpi_comm_nor_struct
52
53 END MODULE mpi_commod
54
55!||====================================================================
56!|| allocate_comm_struct ../engine/share/modules/mpi_comm_mod.F
57!||--- called by ------------------------------------------------------
58!|| i25main_slid ../engine/source/interfaces/int25/i25main_slid.F
59!||--- uses -----------------------------------------------------
60!|| mpi_commod ../engine/share/modules/mpi_comm_mod.F
61!||====================================================================
62 SUBROUTINE allocate_comm_struct(OBJECT,S1,S2)
63 USE mpi_commod
64
65C-----------------------------------------------
66C I m p l i c i t T y p e s
67C-----------------------------------------------
68#include "implicit_f.inc"
69 TYPE(mpi_comm_struct) :: object
70 INTEGER, INTENT(IN) :: s1,s2
71 ALLOCATE(object%SEND_RQ(s1,s2))
72 ALLOCATE(object%RECV_RQ(s1,s2))
73 ALLOCATE(object%TAG (s1,s2))
74 ALLOCATE(object%SIZ (s1,s2))
75 END SUBROUTINE
76!||====================================================================
77!|| deallocate_comm_struct ../engine/share/modules/mpi_comm_mod.F
78!||--- called by ------------------------------------------------------
79!|| i25main_slid ../engine/source/interfaces/int25/i25main_slid.f
80!||--- uses -----------------------------------------------------
81!|| mpi_commod ../engine/share/modules/mpi_comm_mod.F
82!||====================================================================
83 SUBROUTINE deallocate_comm_struct(OBJECT,S1,S2)
84 USE mpi_commod
85C-----------------------------------------------
86C I m p l i c i t T y p e s
87C-----------------------------------------------
88#include "implicit_f.inc"
89 TYPE(mpi_comm_struct) :: OBJECT
90 INTEGER, INTENT(IN) :: S1,S2
91 DEALLOCATE(object%SEND_RQ)
92 DEALLOCATE(object%RECV_RQ)
93 DEALLOCATE(object%TAG )
94 DEALLOCATE(object%SIZ )
95 END SUBROUTINE
96
97
subroutine i25main_slid(ipari, iad_elem, fr_elem, itab, sensor_tab, nsensor, intlist25, intbuf_tab, iad_frnor, fr_nor, x, v, ms, temp, kinet, nodnx_sms, jtask, nb_dst2, main_proc, newfront, isendto, ircvfrom, nbintc, intlist, islen7, irlen7, irlen7t, islen7t, nb_dst1, h3d_data, icodt, iskew, parameters, nodadt_therm)
subroutine allocate_comm_struct(object, s1, s2)
subroutine deallocate_comm_struct(object, s1, s2)