OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
ass2sort.F File Reference
#include "implicit_f.inc"
#include "comlock.inc"
#include "parit_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine ass2sort (fskyi, jj1, jj2, fskyt, nfsk)
subroutine ass2sort_pxfem (fskyi, jj1, jj2, fskyt, nfsk)

Function/Subroutine Documentation

◆ ass2sort()

subroutine ass2sort ( fskyi,
integer jj1,
integer jj2,
fskyt,
integer nfsk )

Definition at line 33 of file ass2sort.F.

34C FSKYI : IN/OUT : TABLEAU DE FORCES A TRIER EN ENTREE,
35C TABLEAU DE FORCES TRIE EN SORTIE
36C JJ1 : IN : INDICE DE DEBUT DANS FSKYI
37C JJ2 : IN : INDICE DE FIN DANS FSKYI
38C FSKYT : IN/OUT : TABLEAU TEMPORAIRE
39C NFSK : IN : Dimension de FSKYI
40C-----------------------------------------------
41C M o d u l e s
42C-----------------------------------------------
43 USE message_mod
44C-----------------------------------------------
45C I m p l i c i t T y p e s
46C-----------------------------------------------
47#include "implicit_f.inc"
48#include "comlock.inc"
49C-----------------------------------------------
50C C o m m o n B l o c k s
51C-----------------------------------------------
52#include "parit_c.inc"
53C-----------------------------------------------
54C D u m m y A r g u m e n t s
55C-----------------------------------------------
56 INTEGER JJ1, JJ2, NFSK
57C REAL
58 my_real
59 . fskyi(lskyi,nfsk), fskyt(*)
60C-----------------------------------------------
61C L o c a l V a r i a b l e s
62C-----------------------------------------------
63 INTEGER K, L, ERROR, PERM(JJ2-JJ1+1)
64C-----------------------------------------------
65 DO l = 1, nfsk
66 DO k = jj1, jj2
67 fskyt(k-jj1+1) = fskyi(k,l)
68 ENDDO
69 CALL stlsort(jj2-jj1+1,fskyt)
70 DO k = jj1, jj2
71 fskyi(k,l) = fskyt(jj2-k+1)
72 ENDDO
73 ENDDO
74
75C
76 RETURN
void stlsort(int *len, my_real *array)
Definition cppsort.cpp:57
#define my_real
Definition cppsort.cpp:32

◆ ass2sort_pxfem()

subroutine ass2sort_pxfem ( fskyi,
integer jj1,
integer jj2,
fskyt,
integer nfsk )

Definition at line 87 of file ass2sort.F.

88C FSKYI : IN/OUT : TABLEAU DE FORCES A TRIER EN ENTREE,
89C TABLEAU DE FORCES TRIE EN SORTIE
90C JJ1 : IN : INDICE DE DEBUT DANS FSKYI
91C JJ2 : IN : INDICE DE FIN DANS FSKYI
92C FSKYT : IN/OUT : TABLEAU TEMPORAIRE
93C NFSK : IN : Dimension de FSKYI
94C-----------------------------------------------
95C M o d u l e s
96C-----------------------------------------------
97 USE message_mod
98C-----------------------------------------------
99C I m p l i c i t T y p e s
100C-----------------------------------------------
101#include "implicit_f.inc"
102#include "comlock.inc"
103C-----------------------------------------------
104C C o m m o n B l o c k s
105C-----------------------------------------------
106#include "parit_c.inc"
107C-----------------------------------------------
108C D u m m y A r g u m e n t s
109C-----------------------------------------------
110 INTEGER JJ1, JJ2, NFSK
111C REAL
112 my_real
113 . fskyi(lskyi,nfsk), fskyt(*)
114C-----------------------------------------------
115C L o c a l V a r i a b l e s
116C-----------------------------------------------
117 INTEGER K, L, ERROR, PERM(JJ2-JJ1+1),
118 . IDX1(JJ2-JJ1+1),IDX2(JJ2-JJ1+1),N1,N2,IPLY,
119 . IPLY1,KK
120C-----------------------------------------------
121 n1 = 1
122 n2 = 0
123 kk = jj1
124 DO WHILE(fskyi(kk,5)== zero .AND. kk <= jj2)
125 kk = kk + 1
126 ENDDO
127 iply = int(fskyi(kk,5))
128 idx1(1) = kk
129 IF(iply == 0) n1 = 0
130C
131 IF(iply /= 0) THEN
132 DO k = jj1+1, jj2
133 iply1 = int(fskyi(k,5))
134 IF(iply1 == iply) THEN
135 n1 = n1 + 1
136 idx1(n1) = k
137 ELSEIF(iply1 /= 0) THEN
138 n2 = n2 + 1
139 idx2(n2) = k
140 ENDIF
141 ENDDO
142 ENDIF
143C
144 IF(n1 > 0) THEN
145 DO l = 1, nfsk-1
146 DO k = 1, n1
147 kk = idx1(k)
148 fskyt(k) = fskyi(kk,l)
149 ENDDO
150 CALL stlsort(n1, fskyt)
151 DO k = 1, n1
152 kk = idx1(k)
153 fskyi(kk,l) = fskyt(n1-k+1)
154 ENDDO
155 ENDDO
156 ENDIF
157C
158 IF(n2 > 0) THEN
159 DO l = 1, nfsk-1
160 DO k = 1, n2
161 kk = idx2(k)
162 fskyt(k) = fskyi(kk,l)
163 ENDDO
164 CALL stlsort(n2, fskyt)
165 DO k = 1, n2
166 kk = idx2(k)
167 fskyi(kk,l) = fskyt(n2-k+1)
168 ENDDO
169 ENDDO
170 ENDIF
171C
172 RETURN