OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
nboxlist.F File Reference

Go to the source code of this file.

Functions/Subroutines

integer function nboxlst (list, nlist, iboxtmp, nbbox, ix1, ix2, index, kk, id, titr)

Function/Subroutine Documentation

◆ nboxlst()

integer function nboxlst ( integer, dimension(nlist) list,
integer nlist,
integer, dimension(nbbox) iboxtmp,
integer nbbox,
integer, dimension(nbbox) ix1,
integer, dimension(nbbox) ix2,
integer, dimension(nbbox*3) index,
integer kk,
integer id,
character(len=nchartitle), intent(in) titr )

Definition at line 32 of file nboxlist.F.

34C-----------------------------------------------
35C M o d u l e s
36C-----------------------------------------------
37 USE message_mod
39C FONCTION DONNE N0 SYSTEME D'UNE LISTE DE BOXES USER
40C-----------------------------------------------
41C I m p l i c i t T y p e s
42C-----------------------------------------------
43#include "implicit_f.inc"
44C-----------------------------------------------
45C C o m m o n B l o c k s
46C-----------------------------------------------
47C-----------------------------------------------
48C D u m m y A r g u m e n t s
49C-----------------------------------------------
50 INTEGER NLIST,KK,NBBOX,ID
51 INTEGER LIST(NLIST),INDEX(NBBOX*3),IBOXTMP(NBBOX),IX1(NBBOX),IX2(NBBOX)
52 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
53C-----------------------------------------------
54C L o c a l V a r i a b l e s
55C-----------------------------------------------
56 INTEGER I,J,NBOX,NOLD,K,K0,K1,KALL,ID0,
57 . IWORK(70000),ISIGN(NLIST),ISIGN1(NLIST),
58 . SIGNOLD,FAC(NLIST+1),INDXOLD,FAC1(NLIST+1),
59 . FACX,LIST1(NLIST),IDEL(NLIST),IDBL(NLIST)
60 CHARACTER BOX*3
61C-----------------------
62C TRI DE LIST EN ORDRE CROISSANT
63C-----------------------
64 DO i=1,nlist
65 isign(i) = sign(1,list(i))
66 list(i) = abs(list(i))
67 ENDDO
68C---
69 CALL my_orders(0,iwork,list,index,nlist,1)
70 DO i=1,nlist
71 index(nlist+i) = list(index(i))
72 isign1(i)= isign(index(i))
73 ENDDO
74C---
75 DO i=1,nlist
76 list(i) = index(nlist+i)
77 isign(i) = isign1(i)
78 ENDDO
79C---
80 nbox = nlist
81C-----------------------
82C TRI DE IBOX() EN ORDRE CROISSANT si KK = 0
83C-----------------------
84 IF (kk == 0) THEN
85 DO i=1,nbbox
86 ix2(i) = iboxtmp(i)
87 ENDDO
88 CALL my_orders(0,iwork,ix2,index,nbbox,1)
89 DO i=1,nbbox
90 ix1(i) = ix2(index(i))
91 ENDDO
92 DO i=1,nbbox
93 ix2(i) = index(i)
94 ENDDO
95 ENDIF
96C-----------------------
97C RECHERCHE DES ELEMENTS DE LIST() DANS IBOX()
98C ALGO < NLIST+NBBOX
99C-----------------------
100 i=1
101 j=1
102 DO i=1,nbox
103 DO WHILE(abs(list(i)) > ix1(j).AND. j < nbbox)
104 j=j+1
105 ENDDO
106 IF (abs(list(i)) == ix1(j))THEN
107 list(i) = ix2(j)*isign(i)
108 ELSE
109 CALL ancmsg(msgid=795,
110 . msgtype=msgerror,
111 . anmode=aninfo,
112 . i1=id,
113 . c1=titr,
114 . i2=list(i))
115 nboxlst=i-1
116 RETURN
117 ENDIF
118 ENDDO
119C---
120 nboxlst = nbox
121C---
122 RETURN
initmumps id
void my_orders(int *mode, int *iwork, int *data, int *index, int *n, int *irecl)
Definition my_orders.c:82
integer, parameter nchartitle
integer function nboxlst(list, nlist, iboxtmp, nbbox, ix1, ix2, index, kk, id, titr)
Definition nboxlist.F:34
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
Definition message.F:889