OpenRadioss
2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
reduce_mmx.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
24
!||====================================================================
25
!|| reduce_mmx ../engine/source/mpi/interfaces/reduce_mmx.F
26
!||====================================================================
27
SUBROUTINE
reduce_mmx
(RIN,RINOUT,LEN,TYPE)
28
C-----------------------------------------------
29
C I m p l i c i t T y p e s
30
C-----------------------------------------------
31
#include "implicit_f.inc"
32
C-----------------------------------------------
33
C D u m m y A r g u m e n t s
34
C-----------------------------------------------
35
INTEGER
LEN, TYPE
36
my_real
37
. rin(*), rinout(*)
38
C-----------------------------------------------
39
C L o c a l V a r i a b l e s
40
C-----------------------------------------------
41
#ifdef MPI
42
INTEGER
I, L, I_LEN
43
parameter(i_len = 46)
44
C-----------------------------------------------
45
C S o u r c e L i n e s
46
C-----------------------------------------------
47
l = 1
48
DO
i=1,len
49
C X MIN/MAX
50
rinout(l) =
max
(rinout(l),rin(l))
51
rinout(l+1) =
max
(rinout(l+1),rin(l+1))
52
rinout(l+2) =
max
(rinout(l+2),rin(l+2))
53
rinout(l+3) =
min
(rinout(l+3),rin(l+3))
54
rinout(l+4) =
min
(rinout(l+4),rin(l+4))
55
rinout(l+5) =
min
(rinout(l+5),rin(l+5))
56
57
rinout(l+6) =
max
(rinout(l+6),rin(l+6))
58
rinout(l+7) =
max
(rinout(l+7),rin(l+7))
59
rinout(l+8) =
max
(rinout(l+8),rin(l+8))
60
61
rinout(l+ 9) =
min
(rinout(l+9),rin(l+9))
62
rinout(l+10) =
min
(rinout(l+10),rin(l+10))
63
rinout(l+11) =
min
(rinout(l+11),rin(l+11))
64
65
rinout(l+12) =
max
(rinout(l+12),rin(l+12))
66
rinout(l+13) =
max
(rinout(l+13),rin(l+13))
67
rinout(l+14) =
max
(rinout(l+14),rin(l+14))
68
69
rinout(l+15) =
min
(rinout(l+15),rin(l+15))
70
rinout(l+16) =
min
(rinout(l+16),rin(l+16))
71
rinout(l+17) =
min
(rinout(l+17),rin(l+17))
72
73
l = l + 18
74
C
75
rinout(l) =
max
(rinout(l),rin(l))
76
rinout(l+1) =
max
(rinout(l+1),rin(l+1))
77
rinout(l+2) =
max
(rinout(l+2),rin(l+2))
78
rinout(l+3) =
min
(rinout(l+3),rin(l+3))
79
rinout(l+4) =
min
(rinout(l+4),rin(l+4))
80
rinout(l+5) =
min
(rinout(l+5),rin(l+5))
81
rinout(l+6) =
max
(rinout(l+6),rin(l+6))
82
rinout(l+7) =
max
(rinout(l+7),rin(l+7))
83
rinout(l+8) =
max
(rinout(l+8),rin(l+8))
84
rinout(l+9) =
min
(rinout(l+9),rin(l+9))
85
rinout(l+10) =
min
(rinout(l+10),rin(l+10))
86
rinout(l+11) =
min
(rinout(l+11),rin(l+11))
87
88
l = l + 12
89
C V MIN/MAX
90
rinout(l) =
max
(rinout(l),rin(l))
91
rinout(l+1) =
max
(rinout(l+1),rin(l+1))
92
rinout(l+2) =
max
(rinout(l+2),rin(l+2))
93
rinout(l+3) =
min
(rinout(l+3),rin(l+3))
94
rinout(l+4) =
min
(rinout(l+4),rin(l+4))
95
rinout(l+5) =
min
(rinout(l+5),rin(l+5))
96
l = l + 6
97
C
98
rinout(l) =
max
(rinout(l),rin(l))
99
rinout(l+1) =
max
(rinout(l+1),rin(l+1))
100
rinout(l+2) =
max
(rinout(l+2),rin(l+2))
101
rinout(l+3) =
min
(rinout(l+3),rin(l+3))
102
rinout(l+4) =
min
(rinout(l+4),rin(l+4))
103
rinout(l+5) =
min
(rinout(l+5),rin(l+5))
104
l = l + 6
105
C NEWFRONT / SIZE
106
rinout(l) = rinout(l)+rin(l)
107
l = l + 1
108
C TZINF
109
rinout(l) =
min
(rinout(l),rin(l))
110
l = l + 1
111
C TZINF
112
rinout(l) =
max
(rinout(l),rin(l))
113
l = l + 1
114
C T25 main gap changes with thickness change
115
rinout(l) =
max
(rinout(l),rin(l))
116
l = l + 1
117
END DO
118
C
119
#endif
120
RETURN
121
END
my_real
#define my_real
Definition
cppsort.cpp:32
min
#define min(a, b)
Definition
macros.h:20
max
#define max(a, b)
Definition
macros.h:21
reduce_mmx
subroutine reduce_mmx(rin, rinout, len, type)
Definition
reduce_mmx.F:28
engine
source
mpi
interfaces
reduce_mmx.F
Generated by
1.15.0