OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i7trc.F File Reference
#include "implicit_f.inc"
#include "com08_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine i7trc (nsn, i_stok, cand_n, cand_e, cand_p, cand_fx, cand_fy, cand_fz, cand_a, ifpen, inacti, ifq, num_imp, ind_imp, stfns, nin, nsnl, itied, cand_f)
subroutine i24trc (nsn, i_stok, cand_n, cand_e, cand_a, nin, nsnl, irtlm, nsv, itab, mseglo, msegtyp)

Function/Subroutine Documentation

◆ i24trc()

subroutine i24trc ( integer nsn,
integer i_stok,
integer, dimension(*) cand_n,
integer, dimension(*) cand_e,
integer, dimension(*) cand_a,
integer nin,
integer nsnl,
integer, dimension(2,*) irtlm,
integer, dimension(*) nsv,
integer, dimension(*) itab,
integer, dimension(*) mseglo,
integer, dimension(*) msegtyp )

Definition at line 659 of file i7trc.F.

662C-----------------------------------------------
663 USE tri7box
664C-----------------------------------------------
665C I m p l i c i t T y p e s
666C-----------------------------------------------
667#include "implicit_f.inc"
668C-----------------------------------------------
669C C o m m o n B l o c k s
670C-----------------------------------------------
671C role of the routine:
672C ===================
673C sorting on N of CAND_N CAND_E CAND_F
674C and elimination of bouncing nodes
675C-----------------------------------------------
676C D u m m y A r g u m e n t s
677C-----------------------------------------------
678 INTEGER I_STOK,NSN,CAND_T,NIN
679 INTEGER CAND_N(*),CAND_E(*),CAND_A(*),
680 * NSNL,IRTLM(2,*),NSV(*),ITAB(*),MSEGLO(*),MSEGTYP(*)
681C-----------------------------------------------
682C L o c a l V a r i a b l e s
683C-----------------------------------------------
684 INTEGER I,N,NN,K,E,
685 . IGET(I_STOK),IPUT(I_STOK),count,i_st_sav,ISH,SYM_SURF
686C=======================================================================
687C
688
689 DO n=1,nsn+3
690 cand_a(n) = 0
691 ENDDO
692
693 i_st_sav=i_stok
694 count=0
695 DO i=1,i_stok
696 nn = cand_n(i)
697 e = cand_e(i)
698
699C The symmetric surface on shell elements must be kept
700C On solids, the symmetric is the same
701
702 ish = msegtyp(e)
703 IF (ish > 0)THEN
704 sym_surf = mseglo(ish)
705 ELSE
706 sym_surf = mseglo(e)
707 ENDIF
708
709 IF(nn<=nsnl)THEN
710 IF( iabs(irtlm(1,nn))/=mseglo(e) .AND. iabs(irtlm(1,nn)) /= sym_surf ) THEN
711 cand_n(i) = nsn+1
712 ELSE
713 count=count+1
714 ENDIF
715 ELSE
716 IF(iabs(irtlm_fi(nin)%P(1,nn-nsnl)) /= mseglo(e) .AND.
717 * iabs(irtlm_fi(nin)%P(1,nn-nsnl)) /= sym_surf )THEN
718 cand_n(i) = nsn+1
719 ELSE
720 count=count+1
721 ENDIF
722 ENDIF
723 ENDDO
724
725C=======================================================================
726C CAND_A : DENOMBREMENT DE CHAQUE NODE C APRES 300 CAND_A[3:NSN+3] : occurrence DES NODES [1:NSN+1]
727C=======================================================================
728 DO i=1,i_stok
729 nn = cand_n(i) + 2
730 cand_a(nn) = cand_a(nn) + 1
731 ENDDO
732
733C=======================================================================
734C CAND_A : ADDRESS DE CHAQUE NODE C APRES 400 CAND_A[2:NSN+2] : ADDRESS DES NODES [1:NSN+1]
735C=======================================================================
736 cand_a(1) = 1
737 cand_a(2) = 1
738 DO n=3,nsn+2
739 cand_a(n) = cand_a(n) + cand_a(n-1)
740 ENDDO
741C=======================================================================
742C IPUT(I) ADDRESS OU DOIT ALLER I
743C IGET(K) ADDRESS D'OU DOIT VENIR K
744C APRES 500 CAND_A[1:NSN+1] : ADDRESS DES NODES [1:NSN+1]
745C=======================================================================
746 DO i=1,i_stok
747 nn = cand_n(i) + 1
748 k = cand_a(nn)
749 iput(i) = k
750 iget(k) = i
751 cand_a(nn) = cand_a(nn) + 1
752 ENDDO
753C=======================================================================
754C TRI DE CAND_N CAND_E CAND_P
755C on increasing N
756C PERMUTATION 1 PASSE
757C=============================================
758 DO k=1,i_stok
759 i = iget(k)
760C
761 cand_t = cand_n(k)
762 cand_n(k) = cand_n(i)
763 cand_n(i) = cand_t
764C
765 cand_t = cand_e(k)
766 cand_e(k) = cand_e(i)
767 cand_e(i) = cand_t
768C
769 iput(i) = iput(k)
770 iget(iput(i)) = i
771 ENDDO
772C=======================================================================
773C CAND_A[NSN+1] : ADDRESS DE NSN+1
774C=======================================================================
775 i_stok = cand_a(nsn+1) - 1
776 cand_a(nsn+2) = cand_a(nsn+1)
777C
778 RETURN
type(int_pointer2), dimension(:), allocatable irtlm_fi
Definition tri7box.F:533

◆ i7trc()

subroutine i7trc ( integer nsn,
integer i_stok,
integer, dimension(*) cand_n,
integer, dimension(*) cand_e,
cand_p,
cand_fx,
cand_fy,
cand_fz,
integer, dimension(*) cand_a,
integer, dimension(*) ifpen,
integer inacti,
integer ifq,
integer num_imp,
integer, dimension(*) ind_imp,
stfns,
integer nin,
integer nsnl,
integer itied,
cand_f )

Definition at line 32 of file i7trc.F.

38C-----------------------------------------------
39C M o d u l e s
40C-----------------------------------------------
41 USE tri7box
42C-----------------------------------------------
43C I m p l i c i t T y p e s
44C-----------------------------------------------
45#include "implicit_f.inc"
46C-----------------------------------------------
47C C o m m o n B l o c k s
48C-----------------------------------------------
49#include "com08_c.inc"
50C-----------------------------------------------
51C role of the routine:
52C ===================
53C sorting on N of CAND_N CAND_E CAND_F
54C and elimination of bouncing nodes
55C-----------------------------------------------
56C D u m m y A r g u m e n t s
57C-----------------------------------------------
58 INTEGER I_STOK,NSN,INACTI,IFQ,NUM_IMP,IND_IMP(*),
59 . NIN, NSNL, ITIED
60 INTEGER CAND_N(*),CAND_E(*),CAND_A(*), IFPEN(*),
61 . CAND_T
62C REAL
64 . cand_fx(*),cand_fy(*),cand_fz(*),cand_p(*),cand_tf,
65 . stfns(*),cand_f(8,*)
66C-----------------------------------------------
67C L o c a l V a r i a b l e s
68C-----------------------------------------------
69 INTEGER I,N,NN,K,NI,
70 . IGET(I_STOK),IPUT(I_STOK)
71C=======================================================================
72C
73 DO 100 n=1,nsn+3
74 100 cand_a(n) = 0
75C=======================================================================
76C LES NODES DELETES DEVIENNENT NSN+1
77C=======================================================================
78C------for travelling nodes detected in imp_solv-----
79 IF(num_imp>0)THEN
80 DO i=1,i_stok
81 iput(i)=0
82 END DO
83 DO n=1,num_imp
84 i= ind_imp(n)
85 iput(i)=1
86 END DO
87 IF(ifq>0)THEN
88C
89 IF((inacti==5.OR.inacti==6.OR.inacti==7)
90 . .AND.tt==zero)THEN
91 DO i=1,i_stok
92 ifpen(i)=1
93 END DO
94 END IF
95C
96 DO i=1,i_stok
97 IF(ifpen(i) == 0.AND.iput(i)==0) THEN
98 cand_n(i) = nsn+1
99 ELSEIF(tt>zero)THEN
100 !case IDEL>0 + IFQ if element is deleted
101 !at previous cycle IFEN should be updated
102 ni = cand_n(i)
103 IF(ni>nsnl) THEN
104 !remote node
105 ni = ni-nsnl
106 IF((stifi(nin)%P(ni) == 0.0).AND.iput(i)==0)THEN
107 ifpen(i) = 0
108 cand_n(i) = nsn+1
109 ENDIF
110 ELSE
111 !local node
112 IF((stfns(ni) == 0.0).AND.iput(i)==0)THEN
113 ifpen(i) = 0
114 cand_n(i) = nsn+1
115 ENDIF
116 ENDIF
117 ENDIF
118 ENDDO
119 ELSEIF(inacti==5.OR.inacti==6.OR.inacti==7)THEN
120 DO i=1,i_stok
121 IF(cand_p(i)==zero.AND.iput(i)==0)THEN
122 cand_n(i) = nsn+1
123 ENDIF
124 ENDDO
125 ELSE
126 DO i=1,i_stok
127 IF(iput(i) == 0) THEN
128 cand_n(i) = nsn+1
129 ENDIF
130 ENDDO
131 ENDIF
132 ELSEIF(ifq>0)THEN
133C
134 IF((inacti==5.OR.inacti==6.OR.inacti==7)
135 . .AND.tt==zero)THEN
136 DO i=1,i_stok
137 ifpen(i)=1
138 END DO
139 END IF
140
141 IF(itied==0)THEN
142 DO i=1,i_stok
143
144 IF(ifpen(i) == 0) THEN
145 cand_n(i) = nsn+1
146 ELSEIF(tt>zero)THEN
147 !case IDEL>0 + IFQ if element is deleted
148 !at previous cycle IFEN should be updated
149 ni = cand_n(i)
150 IF(ni>nsnl) THEN
151 !remote node
152 ni = ni-nsnl
153 IF(stifi(nin)%P(ni) == zero)THEN
154 ifpen(i) = 0
155 cand_n(i) = nsn+1
156 ENDIF
157 ELSE
158 !local node
159 IF(stfns(ni) == zero)THEN
160 ifpen(i) = 0
161 cand_n(i) = nsn+1
162 ENDIF
163 ENDIF
164 ENDIF
165 ENDDO
166 ELSE
167 DO i=1,i_stok
168
169 IF(ifpen(i) == 0 .AND. cand_f(1,i) == zero) THEN
170 cand_n(i) = nsn+1
171 ELSEIF(tt>zero)THEN
172 !case IDEL>0 + IFQ if element is deleted
173 !at previous cycle IFEN should be updated
174 ni = cand_n(i)
175 IF(ni>nsnl) THEN
176 !remote node
177 ni = ni-nsnl
178 IF(stifi(nin)%P(ni) == zero)THEN
179 ifpen(i) = 0
180 cand_f(1,i) = zero
181 cand_n(i) = nsn+1
182 ENDIF
183 ELSE
184 !local node
185 IF(stfns(ni) == zero)THEN
186 ifpen(i) = 0
187 cand_f(1,i) = zero
188 cand_n(i) = nsn+1
189 ENDIF
190 ENDIF
191 ENDIF
192 ENDDO
193 END IF
194
195 ELSEIF(inacti==5.OR.inacti==6.OR.inacti==7)THEN
196 IF(itied == 0)THEN
197 DO i=1,i_stok
198 IF(cand_p(i)==zero)THEN
199 cand_n(i) = nsn+1
200 ENDIF
201 ENDDO
202 ELSE
203 DO i=1,i_stok
204 IF(cand_p(i)==zero .AND. cand_f(1,i) == zero)THEN
205 cand_n(i) = nsn+1
206 ELSEIF(tt>zero)THEN
207 !case IDEL>0 + ITIED if element is deleted
208 !at previous cycle CAND_F should be updated
209 ni = cand_n(i)
210 IF(ni>nsnl) THEN
211 !remote node
212 ni = ni-nsnl
213 IF(stifi(nin)%P(ni) == zero)THEN
214 cand_f(1,i) = zero
215 cand_n(i) = nsn+1
216 ENDIF
217 ELSE
218 !local node
219 IF(stfns(ni) == zero)THEN
220 cand_f(1,i) = zero
221 cand_n(i) = nsn+1
222 ENDIF
223 ENDIF
224 ENDIF
225 ENDDO
226 END IF
227 ELSEIF(itied/=0)THEN
228 DO i=1,i_stok
229 IF(cand_f(1,i)==zero)THEN
230 cand_n(i) = nsn+1
231 ELSEIF(tt>zero)THEN
232 !case IDEL>0 + ITIED if element is deleted
233 !at previous cycle CAND_F should be updated
234 ni = cand_n(i)
235 IF(ni>nsnl) THEN
236 !remote node
237 ni = ni-nsnl
238 IF(stifi(nin)%P(ni) == zero)THEN
239 cand_f(1,i) = zero
240 cand_n(i) = nsn+1
241 ENDIF
242 ELSE
243 !local node
244 IF(stfns(ni) == zero)THEN
245 cand_f(1,i) = zero
246 cand_n(i) = nsn+1
247 ENDIF
248 ENDIF
249 ENDIF
250 ENDDO
251 ELSE
252 DO i=1,i_stok
253
254 cand_n(i) = nsn+1
255 ENDDO
256 ENDIF
257C=======================================================================
258C CAND_A : DENOMBREMENT DE CHAQUE NODE C APRES 300 CAND_A[3:NSN+3] : occurrence DES NODES [1:NSN+1]
259C=======================================================================
260 DO 300 i=1,i_stok
261 nn = cand_n(i) + 2
262 cand_a(nn) = cand_a(nn) + 1
263 300 CONTINUE
264C=======================================================================
265C CAND_A : ADDRESS DE CHAQUE NODE C APRES 400 CAND_A[2:NSN+2] : ADDRESS DES NODES [1:NSN+1]
266C=======================================================================
267 cand_a(1) = 1
268 cand_a(2) = 1
269 DO 400 n=3,nsn+2
270 400 cand_a(n) = cand_a(n) + cand_a(n-1)
271C=======================================================================
272C IPUT(I) ADDRESS OU DOIT ALLER I
273C IGET(K) ADDRESS D'OU DOIT VENIR K
274C APRES 500 CAND_A[1:NSN+1] : ADDRESS DES NODES [1:NSN+1]
275C=======================================================================
276 DO 500 i=1,i_stok
277 nn = cand_n(i) + 1
278 k = cand_a(nn)
279 iput(i) = k
280 iget(k) = i
281 cand_a(nn) = cand_a(nn) + 1
282 500 CONTINUE
283C=======================================================================
284C TRI DE CAND_N CAND_E CAND_P
285C on increasing N
286C PERMUTATION 1 PASSE
287C=======================================================================
288 DO n=1,num_imp
289 k=ind_imp(n)
290 i = iput(k)
291 ind_imp(n)=i
292 END DO
293
294 IF(ifq>0.AND.(inacti==5.OR.inacti==6.OR.inacti==7).AND.itied/=0)THEN
295 DO k=1,i_stok
296 i = iget(k)
297C
298 cand_t = cand_n(k)
299 cand_n(k) = cand_n(i)
300 cand_n(i) = cand_t
301C
302 cand_t = cand_e(k)
303 cand_e(k) = cand_e(i)
304 cand_e(i) = cand_t
305C------
306 cand_tf = cand_f(1,k)
307 cand_f(1,k) = cand_f(1,i)
308 cand_f(1,i) = cand_tf
309C
310 cand_tf = cand_f(2,k)
311 cand_f(2,k) = cand_f(2,i)
312 cand_f(2,i) = cand_tf
313C
314 cand_tf = cand_f(3,k)
315 cand_f(3,k) = cand_f(3,i)
316 cand_f(3,i) = cand_tf
317C
318 cand_tf = cand_f(4,k)
319 cand_f(4,k) = cand_f(4,i)
320 cand_f(4,i) = cand_tf
321C
322 cand_tf = cand_f(5,k)
323 cand_f(5,k) = cand_f(5,i)
324 cand_f(5,i) = cand_tf
325C
326 cand_tf = cand_f(6,k)
327 cand_f(6,k) = cand_f(6,i)
328 cand_f(6,i) = cand_tf
329C
330 cand_tf = cand_f(7,k)
331 cand_f(7,k) = cand_f(7,i)
332 cand_f(7,i) = cand_tf
333C
334 cand_tf = cand_f(8,k)
335 cand_f(8,k) = cand_f(8,i)
336 cand_f(8,i) = cand_tf
337C------ Fx
338 cand_tf = cand_fx(k)
339 cand_fx(k) = cand_fx(i)
340 cand_fx(i) = cand_tf
341C------ Fy
342 cand_tf = cand_fy(k)
343 cand_fy(k) = cand_fy(i)
344 cand_fy(i) = cand_tf
345C------ Fz
346 cand_tf = cand_fz(k)
347 cand_fz(k) = cand_fz(i)
348 cand_fz(i) = cand_tf
349C
350 cand_tf = cand_p(k)
351 cand_p(k) = cand_p(i)
352 cand_p(i) = cand_tf
353C
354 cand_t = ifpen(k)
355 ifpen(k) = ifpen(i)
356 ifpen(i) = cand_t
357C
358 iput(i) = iput(k)
359 iget(iput(i)) = i
360 ENDDO
361 ELSEIF(ifq>0.AND.(inacti==5.OR.inacti==6.OR.inacti==7))THEN
362 DO k=1,i_stok
363 i = iget(k)
364C
365 cand_t = cand_n(k)
366 cand_n(k) = cand_n(i)
367 cand_n(i) = cand_t
368C
369 cand_t = cand_e(k)
370 cand_e(k) = cand_e(i)
371 cand_e(i) = cand_t
372C------ Fx
373 cand_tf = cand_fx(k)
374 cand_fx(k) = cand_fx(i)
375 cand_fx(i) = cand_tf
376C------ Fy
377 cand_tf = cand_fy(k)
378 cand_fy(k) = cand_fy(i)
379 cand_fy(i) = cand_tf
380C------ Fz
381 cand_tf = cand_fz(k)
382 cand_fz(k) = cand_fz(i)
383 cand_fz(i) = cand_tf
384C
385 cand_tf = cand_p(k)
386 cand_p(k) = cand_p(i)
387 cand_p(i) = cand_tf
388C
389 cand_t = ifpen(k)
390 ifpen(k) = ifpen(i)
391 ifpen(i) = cand_t
392C
393 iput(i) = iput(k)
394 iget(iput(i)) = i
395 ENDDO
396 ELSEIF(ifq>0.AND.itied/=0)THEN
397 DO k=1,i_stok
398 i = iget(k)
399C
400 cand_t = cand_n(k)
401 cand_n(k) = cand_n(i)
402 cand_n(i) = cand_t
403C
404 cand_t = cand_e(k)
405 cand_e(k) = cand_e(i)
406 cand_e(i) = cand_t
407C------
408 cand_tf = cand_f(1,k)
409 cand_f(1,k) = cand_f(1,i)
410 cand_f(1,i) = cand_tf
411C
412 cand_tf = cand_f(2,k)
413 cand_f(2,k) = cand_f(2,i)
414 cand_f(2,i) = cand_tf
415C
416 cand_tf = cand_f(3,k)
417 cand_f(3,k) = cand_f(3,i)
418 cand_f(3,i) = cand_tf
419C
420 cand_tf = cand_f(4,k)
421 cand_f(4,k) = cand_f(4,i)
422 cand_f(4,i) = cand_tf
423C
424 cand_tf = cand_f(5,k)
425 cand_f(5,k) = cand_f(5,i)
426 cand_f(5,i) = cand_tf
427C
428 cand_tf = cand_f(6,k)
429 cand_f(6,k) = cand_f(6,i)
430 cand_f(6,i) = cand_tf
431C
432 cand_tf = cand_f(7,k)
433 cand_f(7,k) = cand_f(7,i)
434 cand_f(7,i) = cand_tf
435C
436 cand_tf = cand_f(8,k)
437 cand_f(8,k) = cand_f(8,i)
438 cand_f(8,i) = cand_tf
439C------ Fx
440 cand_tf = cand_fx(k)
441 cand_fx(k) = cand_fx(i)
442 cand_fx(i) = cand_tf
443C------ Fy
444 cand_tf = cand_fy(k)
445 cand_fy(k) = cand_fy(i)
446 cand_fy(i) = cand_tf
447C------ Fz
448 cand_tf = cand_fz(k)
449 cand_fz(k) = cand_fz(i)
450 cand_fz(i) = cand_tf
451C
452 cand_t = ifpen(k)
453 ifpen(k) = ifpen(i)
454 ifpen(i) = cand_t
455C
456 iput(i) = iput(k)
457 iget(iput(i)) = i
458 ENDDO
459 ELSEIF(ifq>0)THEN
460 DO k=1,i_stok
461 i = iget(k)
462C
463 cand_t = cand_n(k)
464 cand_n(k) = cand_n(i)
465 cand_n(i) = cand_t
466C
467 cand_t = cand_e(k)
468 cand_e(k) = cand_e(i)
469 cand_e(i) = cand_t
470C------ Fx
471 cand_tf = cand_fx(k)
472 cand_fx(k) = cand_fx(i)
473 cand_fx(i) = cand_tf
474C------ Fy
475 cand_tf = cand_fy(k)
476 cand_fy(k) = cand_fy(i)
477 cand_fy(i) = cand_tf
478C------ Fz
479 cand_tf = cand_fz(k)
480 cand_fz(k) = cand_fz(i)
481 cand_fz(i) = cand_tf
482 cand_t = ifpen(k)
483 ifpen(k) = ifpen(i)
484 ifpen(i) = cand_t
485C
486 iput(i) = iput(k)
487 iget(iput(i)) = i
488 ENDDO
489 ELSEIF((inacti==5.OR.inacti==6.OR.inacti==7).AND.itied/=0)THEN
490 DO k=1,i_stok
491 i = iget(k)
492C
493 cand_t = cand_n(k)
494 cand_n(k) = cand_n(i)
495 cand_n(i) = cand_t
496C
497 cand_t = cand_e(k)
498 cand_e(k) = cand_e(i)
499 cand_e(i) = cand_t
500C------
501 cand_tf = cand_f(1,k)
502 cand_f(1,k) = cand_f(1,i)
503 cand_f(1,i) = cand_tf
504C
505 cand_tf = cand_f(2,k)
506 cand_f(2,k) = cand_f(2,i)
507 cand_f(2,i) = cand_tf
508C
509 cand_tf = cand_f(3,k)
510 cand_f(3,k) = cand_f(3,i)
511 cand_f(3,i) = cand_tf
512C
513 cand_tf = cand_f(4,k)
514 cand_f(4,k) = cand_f(4,i)
515 cand_f(4,i) = cand_tf
516C
517 cand_tf = cand_f(5,k)
518 cand_f(5,k) = cand_f(5,i)
519 cand_f(5,i) = cand_tf
520C
521 cand_tf = cand_f(6,k)
522 cand_f(6,k) = cand_f(6,i)
523 cand_f(6,i) = cand_tf
524C
525 cand_tf = cand_f(7,k)
526 cand_f(7,k) = cand_f(7,i)
527 cand_f(7,i) = cand_tf
528C
529 cand_tf = cand_f(8,k)
530 cand_f(8,k) = cand_f(8,i)
531 cand_f(8,i) = cand_tf
532C
533 cand_tf = cand_p(k)
534 cand_p(k) = cand_p(i)
535 cand_p(i) = cand_tf
536C
537 iput(i) = iput(k)
538 iget(iput(i)) = i
539 ENDDO
540 ELSEIF(inacti==5.OR.inacti==6.OR.inacti==7)THEN
541 DO k=1,i_stok
542 i = iget(k)
543C
544 cand_t = cand_n(k)
545 cand_n(k) = cand_n(i)
546 cand_n(i) = cand_t
547C
548 cand_t = cand_e(k)
549 cand_e(k) = cand_e(i)
550 cand_e(i) = cand_t
551C
552 cand_tf = cand_p(k)
553 cand_p(k) = cand_p(i)
554 cand_p(i) = cand_tf
555C
556 iput(i) = iput(k)
557 iget(iput(i)) = i
558 ENDDO
559 ELSEIF(itied/=0)THEN
560 DO k=1,i_stok
561 i = iget(k)
562C
563 cand_t = cand_n(k)
564 cand_n(k) = cand_n(i)
565 cand_n(i) = cand_t
566C
567 cand_t = cand_e(k)
568 cand_e(k) = cand_e(i)
569 cand_e(i) = cand_t
570C------
571 cand_tf = cand_f(1,k)
572 cand_f(1,k) = cand_f(1,i)
573 cand_f(1,i) = cand_tf
574C
575 cand_tf = cand_f(2,k)
576 cand_f(2,k) = cand_f(2,i)
577 cand_f(2,i) = cand_tf
578C
579 cand_tf = cand_f(3,k)
580 cand_f(3,k) = cand_f(3,i)
581 cand_f(3,i) = cand_tf
582C
583 cand_tf = cand_f(4,k)
584 cand_f(4,k) = cand_f(4,i)
585 cand_f(4,i) = cand_tf
586C
587 cand_tf = cand_f(5,k)
588 cand_f(5,k) = cand_f(5,i)
589 cand_f(5,i) = cand_tf
590C
591 cand_tf = cand_f(6,k)
592 cand_f(6,k) = cand_f(6,i)
593 cand_f(6,i) = cand_tf
594C
595 cand_tf = cand_f(7,k)
596 cand_f(7,k) = cand_f(7,i)
597 cand_f(7,i) = cand_tf
598C
599 cand_tf = cand_f(8,k)
600 cand_f(8,k) = cand_f(8,i)
601 cand_f(8,i) = cand_tf
602C
603 iput(i) = iput(k)
604 iget(iput(i)) = i
605 ENDDO
606 ELSEIF(num_imp>0)THEN
607 DO k=1,i_stok
608 i = iget(k)
609C
610 cand_t = cand_n(k)
611 cand_n(k) = cand_n(i)
612 cand_n(i) = cand_t
613C
614 cand_t = cand_e(k)
615 cand_e(k) = cand_e(i)
616 cand_e(i) = cand_t
617C
618 cand_tf = cand_p(k)
619 cand_p(k) = cand_p(i)
620 cand_p(i) = cand_tf
621C
622 iput(i) = iput(k)
623 iget(iput(i)) = i
624 ENDDO
625 ELSE
626 DO k=1,i_stok
627 i = iget(k)
628C
629 cand_t = cand_n(k)
630 cand_n(k) = cand_n(i)
631 cand_n(i) = cand_t
632C
633 cand_t = cand_e(k)
634 cand_e(k) = cand_e(i)
635 cand_e(i) = cand_t
636C
637 iput(i) = iput(k)
638 iget(iput(i)) = i
639 ENDDO
640
641 ENDIF
642C=======================================================================
643C CAND_A[NSN+1] : ADDRESS DE NSN+1
644C=======================================================================
645 i_stok = cand_a(nsn+1) - 1
646 cand_a(nsn+2) = cand_a(nsn+1)
647C
648 RETURN
#define my_real
Definition cppsort.cpp:32
type(real_pointer), dimension(:), allocatable stifi
Definition tri7box.F:449