OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sysfus.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23C REAL
24#include "my_real.inc"
25!||====================================================================
26!|| sysfus ../engine/source/system/sysfus.F
27!||--- called by ------------------------------------------------------
28!|| leccut ../engine/source/tools/sect/leccut.F
29!||--- calls -----------------------------------------------------
30!|| ancmsg ../engine/source/output/message/message.F
31!||--- uses -----------------------------------------------------
32!|| message_mod ../engine/share/message_module/message_mod.F
33!||====================================================================
34 my_real FUNCTION sysfus(IU,ITABM1,NUMNOD,MESS)
35C-----------------------------------------------
36C M o d u l e s
37C-----------------------------------------------
38 USE message_mod
39C-----------------------------------------------
40C I m p l i c i t T y p e s
41C-----------------------------------------------
42#include "implicit_f.inc"
43C-----------------------------------------------
44C D u m m y A r g u m e n t s
45C-----------------------------------------------
46 INTEGER iu, numnod
47 CHARACTER mess*40
48 INTEGER itabm1(*)
49C-----------------------------------------------
50C C o m m o n B l o c k s
51C-----------------------------------------------
52#include "warn_c.inc"
53C-----------------------------------------------
54C L o c a l V a r i a b l e s
55C-----------------------------------------------
56 INTEGER jinf, jsup, j
57C-----------------------------------------------
58c
59 jinf=1
60 jsup=numnod
61C 045 J=NUMNOD/2
62 j=min(1,numnod/2)
63 10 IF(jsup<=jinf.AND.(iu-itabm1(j))/=0) THEN
64 CALL ancmsg(msgid=187,anmode=aninfo,
65 . i1=iu,c1=mess)
66 ierr=ierr+1
67 sysfus=1.1
68 RETURN
69 ENDIF
70 IF((iu-itabm1(j))==0)THEN
71C >CAS IU=TABM FIN DE LA RECHERCHE
72 sysfus=itabm1(j+numnod)+0.1
73 RETURN
74 ELSE IF (iu-itabm1(j)<0) THEN
75C >CAS IU<TABM
76 jsup=j-1
77 ELSE
78C >CAS IU>TABM
79 jinf=j+1
80 ENDIF
81 j=(jsup+jinf)/2
82 GO TO 10
83 END
84C
85C REAL
86!||====================================================================
87!|| sysfus2 ../engine/source/system/sysfus.F
88!||--- called by ------------------------------------------------------
89!|| ale51_spmd2 ../engine/source/ale/ale51/ale51_spmd2.F
90!|| ale51_spmd3 ../engine/source/ale/ale51/ale51_spmd3.F
91!|| forcefingeo ../engine/source/loads/general/forcefingeo.f
92!|| fr_rlale ../engine/source/mpi/kinematic_conditions/fr_rlink1.F
93!|| fr_rlink1 ../engine/source/mpi/kinematic_conditions/fr_rlink1.F
94!|| genh3d ../engine/source/output/h3d/h3d_results/genh3d.F
95!|| lcbcsf ../engine/source/constraints/general/bcs/lcbcsf.f
96!|| lecnoise ../engine/source/general_controls/computation/lecnoise.F
97!||====================================================================
98 INTEGER FUNCTION sysfus2(IU,ITABM1,NUMNOD)
99C cette fonction retourne le no interne correspondant a un no user ou 0
100C si le noeud n'existe pas
101C-----------------------------------------------
102C I m p l i c i t T y p e s
103C-----------------------------------------------
104#include "implicit_f.inc"
105C-----------------------------------------------
106C D u m m y A r g u m e n t s
107C-----------------------------------------------
108 INTEGER iu, numnod
109 INTEGER itabm1(*)
110C-----------------------------------------------
111C L o c a l V a r i a b l e s
112C-----------------------------------------------
113 INTEGER jinf, jsup, j
114C-----------------------------------------------
115C
116 ! Check exit parameters
117
118 ! 1st NUMNOD=0
119 IF (numnod==0) THEN
120 sysfus2=0
121 RETURN
122 END IF
123
124 ! 2nd NodeID is lower than smallest NodeID.
125 IF ( iu-itabm1(1)<0 ) THEN
126 sysfus2=0
127 RETURN
128 ENDIF
129
130
131 jinf=1
132 jsup=numnod
133 j=min(1,numnod/2)
134 10 IF(jsup<=jinf.AND.(iu-itabm1(j))/=0) THEN
135C >CAS NOEUD non trouve
136 sysfus2=0
137 RETURN
138 ENDIF
139 IF((iu-itabm1(j))==0)THEN
140C >CAS IU=TABM FIN DE LA RECHERCHE
141 sysfus2=itabm1(j+numnod)
142 RETURN
143 ELSE IF (iu-itabm1(j)<0) THEN
144C >CAS IU<TABM
145 jsup=j-1
146 ELSE
147C >CAS IU>TABM
148 jinf=j+1
149 ENDIF
150 j=(jsup+jinf)/2
151 GO TO 10
152 END
#define my_real
Definition cppsort.cpp:32
integer function sysfus2(iu, itabm1, numnod)
Definition sysfus.F:99
subroutine forcefingeo(ibfv, npc, tf, a, v, x, vel, sensor_tab, fsky, fext, itabm1, h3d_data, nsensor, python, wfext, nodes)
Definition forcefingeo.F:41
subroutine lcbcsf(icode, iskew, numbcsn, itab, itabm1, npby, iskwn, weight)
Definition lcbcsf.F:36
#define min(a, b)
Definition macros.h:20
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