OpenRadioss
2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
mpi_comm_mod.F
Go to the documentation of this file.
1
Copyright> OpenRadioss
2
Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3
Copyright>
4
Copyright> This program is free software: you can redistribute it and/or modify
5
Copyright> it under the terms of the GNU Affero General Public License as published by
6
Copyright> the Free Software Foundation, either version 3 of the License, or
7
Copyright> (at your option) any later version.
8
Copyright>
9
Copyright> This program is distributed in the hope that it will be useful,
10
Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11
Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
Copyright> GNU Affero General Public License for more details.
13
Copyright>
14
Copyright> You should have received a copy of the GNU Affero General Public License
15
Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16
Copyright>
17
Copyright>
18
Copyright> Commercial Alternative: Altair Radioss Software
19
Copyright>
20
Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21
Copyright> software under a commercial license. Contact Altair to discuss further if the
22
Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23
C generic module intended to pack information needed for asynchronous communications
24
C 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
!||====================================================================
37
MODULE
mpi_commod
38
TYPE
mpi_comm_struct
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
44
TYPE
mpi_comm_nor_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
65
C-----------------------------------------------
66
C I m p l i c i t T y p e s
67
C-----------------------------------------------
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
85
C-----------------------------------------------
86
C I m p l i c i t T y p e s
87
C-----------------------------------------------
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
allocate_comm_struct
subroutine allocate_comm_struct(object, s1, s2)
Definition
mpi_comm_mod.F:63
deallocate_comm_struct
subroutine deallocate_comm_struct(object, s1, s2)
Definition
mpi_comm_mod.F:84
mpi_commod
Definition
mpi_comm_mod.F:37
mpi_commod::mpi_comm_nor_struct
Definition
mpi_comm_mod.F:44
mpi_commod::mpi_comm_struct
Definition
mpi_comm_mod.F:38
engine
share
modules
mpi_comm_mod.F
Generated by
1.15.0