OpenRadioss
2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sorti25.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
!||====================================================================
24
!|| sorti25 ../engine/source/mpi/interfaces/sorti25.F
25
!||--- called by ------------------------------------------------------
26
!|| spmd_i7fcom_pon ../engine/source/mpi/forces/spmd_i7fcom_pon.F
27
!||====================================================================
28
SUBROUTINE
sorti25
(N,ISKY,FSKYI,NFSKYI)
29
C-----------------------------------------------
30
C I m p l i c i t T y p e s
31
C-----------------------------------------------
32
#include "implicit_f.inc"
33
C-----------------------------------------------
34
C D u m m y A r g u m e n t s
35
C-----------------------------------------------
36
INTEGER
N, NFSKYI, ISKY(*)
37
my_real
fskyi(2*nfskyi,*)
38
C-----------------------------------------------
39
C L o c a l V a r i a b l e s
40
C-----------------------------------------------
41
INTEGER
I, J, L, IR, IIA
42
my_real
rra1, rra2, rra3, rra4, rra5, rra6, rra7, rra8, rra9, rra10
43
C-----------------------------------------------
44
C S o u r c e L i n e s
45
C-----------------------------------------------
46
C test sur n=0
47
IF
(n==0)
RETURN
48
l=n/2+1
49
ir=n
50
IF
(nfskyi==4)
THEN
51
10
CONTINUE
52
IF
(l>1)
THEN
53
l=l-1
54
iia =isky(l)
55
rra1=fskyi(1,l)
56
rra2=fskyi(2,l)
57
rra3=fskyi(3,l)
58
rra4=fskyi(4,l)
59
rra5=fskyi(5,l)
60
rra6=fskyi(6,l)
61
rra7=fskyi(7,l)
62
rra8=fskyi(8,l)
63
ELSE
64
iia =isky(ir)
65
rra1=fskyi(1,ir)
66
rra2=fskyi(2,ir)
67
rra3=fskyi(3,ir)
68
rra4=fskyi(4,ir)
69
rra5=fskyi(5,ir)
70
rra6=fskyi(6,ir)
71
rra7=fskyi(7,ir)
72
rra8=fskyi
(8,ir)
73
isky(ir)=isky(1)
74
fskyi(1,ir)=fskyi(1,1)
75
fskyi(2,ir)=fskyi(2,1)
76
fskyi(3,ir)=fskyi(3,1)
77
fskyi(4,ir)=fskyi(4,1)
78
fskyi(5,ir)=fskyi(5,1)
79
fskyi(6,ir)=fskyi(6,1)
80
fskyi(7,ir)=fskyi(7,1)
81
fskyi(8,ir)=fskyi(8,1)
82
ir=ir-1
83
C IF(IR==1)THEN
84
IF
(ir<=1)
THEN
85
isky(1)=iia
86
fskyi(1,1)=rra1
87
fskyi(2,1)=rra2
88
fskyi(3,1)=rra3
89
fskyi(4,1)=rra4
90
fskyi(5,1)=rra5
91
fskyi
(6,1)=rra6
92
fskyi(7,1)=rra7
93
fskyi(8,1)=rra8
94
RETURN
95
ENDIF
96
ENDIF
97
i=l
98
j=l+l
99
20
IF
(j<=ir)
THEN
100
IF
(j<ir)
THEN
101
IF
(isky(j)<isky(j+1))j=j+1
102
ENDIF
103
IF
(iia<isky(j))
THEN
104
isky(i)=isky(j)
105
fskyi(1,i)=fskyi(1,j)
106
fskyi(2,i)=fskyi(2,j)
107
fskyi(3,i)=fskyi(3,j)
108
fskyi(4,i)=fskyi(4,j)
109
fskyi(5,i)=fskyi(5,j)
110
fskyi(6,i)=fskyi(6,j)
111
fskyi(7,i)=fskyi(7,j)
112
fskyi(8,i)=fskyi(8,j)
113
i=j
114
j=j+j
115
ELSE
116
j=ir+1
117
ENDIF
118
GO TO
20
119
ENDIF
120
isky(i)=iia
121
fskyi(1,i)=rra1
122
fskyi(2,i)=rra2
123
fskyi(3,i)=rra3
124
fskyi(4,i)=rra4
125
fskyi(5,i)=rra5
126
fskyi(6,i)=rra6
127
fskyi(7,i)=rra7
128
fskyi(8,i)=rra8
129
GO TO
10
130
ELSE
131
100
CONTINUE
132
IF
(l>1)
THEN
133
l=l-1
134
iia =isky(l)
135
rra1=fskyi(1,l)
136
rra2=fskyi(2,l)
137
rra3=fskyi(3,l)
138
rra4=fskyi(4,l)
139
rra5=fskyi(5,l)
140
rra6=fskyi(6,l)
141
rra7=fskyi(7,l)
142
rra8=fskyi(8,l)
143
rra9=fskyi(9,l)
144
rra10=fskyi(10,l)
145
ELSE
146
iia =isky(ir)
147
rra1=fskyi(1,ir)
148
rra2=fskyi(2,ir)
149
rra3=fskyi(3,ir)
150
rra4=fskyi(4,ir)
151
rra5=fskyi(5,ir)
152
rra6=fskyi(6,ir)
153
rra7=fskyi(7,ir)
154
rra8=fskyi(8,ir)
155
rra9=fskyi(9,ir)
156
rra10=fskyi(10,ir)
157
isky(ir)=isky(1)
158
fskyi(1,ir)=fskyi(1,1)
159
fskyi(2,ir)=fskyi(2,1)
160
fskyi(3,ir)=fskyi(3,1)
161
fskyi(4,ir)=fskyi(4,1)
162
fskyi(5,ir)=fskyi(5,1)
163
fskyi(6,ir)=fskyi(6,1)
164
fskyi(7,ir)=fskyi(7,1)
165
fskyi(8,ir)=fskyi(8,1)
166
fskyi(9,ir)=fskyi(9,1)
167
fskyi(10,ir)=fskyi(10,1)
168
ir=ir-1
169
C IF(IR==1)THEN
170
IF
(ir<=1)
THEN
171
isky(1)=iia
172
fskyi(1,1)=rra1
173
fskyi(2,1)=rra2
174
fskyi(3,1)=rra3
175
fskyi(4,1)=rra4
176
fskyi(5,1)=rra5
177
fskyi(6,1)=rra6
178
fskyi(7,1)=rra7
179
fskyi(8,1)=rra8
180
fskyi(9,1)=rra9
181
fskyi(10,1)=rra10
182
RETURN
183
ENDIF
184
ENDIF
185
i=l
186
j=l+l
187
200
IF
(j<=ir)
THEN
188
IF
(j<ir)
THEN
189
IF
(isky(j)<isky(j+1))j=j+1
190
ENDIF
191
IF
(iia<isky(j))
THEN
192
isky(i)=isky(j)
193
fskyi(1,i
)=fskyi(1,j)
194
fskyi(2,i)=fskyi(2,j)
195
fskyi(3,i)=fskyi(3,j)
196
fskyi(4,i)=fskyi(4,j)
197
fskyi(5,i)=fskyi(5,j)
198
fskyi(6,i)=fskyi(6,j)
199
fskyi(7,i)=fskyi(7,j)
200
fskyi(8,i)=fskyi(8,j)
201
fskyi(9,i)=fskyi(9,j)
202
fskyi(10,i)=fskyi(10,j)
203
i=j
204
j=j+j
205
ELSE
206
j=ir+1
207
ENDIF
208
GO TO
200
209
ENDIF
210
isky(i)=iia
211
fskyi(1,i)=rra1
212
fskyi(2,i)=rra2
213
fskyi(3,i)=rra3
214
fskyi(4,i)=rra4
215
fskyi(5,i)=rra5
216
fskyi(6,i)=rra6
217
fskyi(7,i)=rra7
218
fskyi(8,i)=rra8
219
fskyi(9,i)=rra9
220
fskyi(10,i)=rra10
221
GO TO
100
222
ENDIF
223
C
224
RETURN
225
END
my_real
#define my_real
Definition
cppsort.cpp:32
sorti25
subroutine sorti25(n, isky, fskyi, nfskyi)
Definition
sorti25.F:29
engine
source
mpi
interfaces
sorti25.F
Generated by
1.15.0