OpenRadioss
2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sysfus.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
C 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)
35
C-----------------------------------------------
36
C M o d u l e s
37
C-----------------------------------------------
38
USE
message_mod
39
C-----------------------------------------------
40
C I m p l i c i t T y p e s
41
C-----------------------------------------------
42
#include "implicit_f.inc"
43
C-----------------------------------------------
44
C D u m m y A r g u m e n t s
45
C-----------------------------------------------
46
INTEGER
iu, numnod
47
CHARACTER
mess*40
48
INTEGER
itabm1(*)
49
C-----------------------------------------------
50
C C o m m o n B l o c k s
51
C-----------------------------------------------
52
#include
"warn_c.inc"
53
C-----------------------------------------------
54
C L o c a l V a r i a b l e s
55
C-----------------------------------------------
56
INTEGER
jinf, jsup, j
57
C-----------------------------------------------
58
C
59
jinf=1
60
jsup=numnod
61
C 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
71
C >CASE IU=TABM END OF SEARCH
72
sysfus=itabm1(j+numnod)+0.1
73
RETURN
74
ELSE
IF
(iu-itabm1(j)<0)
THEN
75
C >CAS IU<TABM
76
jsup=j-1
77
ELSE
78
C >CAS IU>TABM
79
jinf=j+1
80
ENDIF
81
j=(jsup+jinf)/2
82
GO TO
10
83
END
84
C
85
C 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
!|| fr_rlale ../engine/source/mpi/kinematic_conditions/fr_rlink1.F
92
!|| fr_rlink1 ../engine/source/mpi/kinematic_conditions/fr_rlink1.F
93
!|| genh3d ../engine/source/output/h3d/h3d_results/genh3d.F
94
!|| lcbcsf ../engine/source/constraints/general/bcs/lcbcsf.F
95
!|| lecnoise ../engine/source/general_controls/computation/lecnoise.F
96
!||====================================================================
97
INTEGER
FUNCTION
sysfus2
(IU,ITABM1,NUMNOD)
98
C this function returns the internal number corresponding to a user number or 0
99
C If the node does not exist
100
C-----------------------------------------------
101
C I m p l i c i t T y p e s
102
C-----------------------------------------------
103
#include "implicit_f.inc"
104
C-----------------------------------------------
105
C D u m m y A r g u m e n t s
106
C-----------------------------------------------
107
INTEGER
iu, numnod
108
INTEGER
itabm1(*)
109
C-----------------------------------------------
110
C L o c a l V a r i a b l e s
111
C-----------------------------------------------
112
INTEGER
jinf, jsup, j
113
C-----------------------------------------------
114
C
115
! Check exit parameters
116
117
! 1st NUMNOD=0
118
IF
(numnod==0)
THEN
119
sysfus2
=0
120
RETURN
121
END IF
122
123
! 2nd NodeID is lower than smallest NodeID.
124
IF
( iu-itabm1(1)<0 )
THEN
125
sysfus2
=0
126
RETURN
127
ENDIF
128
129
130
jinf=1
131
jsup=numnod
132
j=
min
(1,numnod/2)
133
10
IF
(jsup<=jinf.AND.(iu-itabm1(j))/=0)
THEN
134
C > Noise case not found
135
sysfus2
=0
136
RETURN
137
ENDIF
138
IF
((iu-itabm1(j))==0)
THEN
139
C >CASE IU=TABM END OF SEARCH
140
sysfus2
=itabm1(j+numnod)
141
RETURN
142
ELSE
IF
(iu-itabm1(j)<0)
THEN
143
C >CAS IU<TABM
144
jsup=j-1
145
ELSE
146
C >CAS IU>TABM
147
jinf=j+1
148
ENDIF
149
j=(jsup+jinf)/2
150
GO TO
10
151
END
my_real
#define my_real
Definition
cppsort.cpp:32
sysfus2
integer function sysfus2(iu, itabm1, numnod)
Definition
sysfus.F:98
min
#define min(a, b)
Definition
macros.h:20
message_mod
Definition
message_mod.F:1257
ancmsg
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:895
engine
source
system
sysfus.F
Generated by
1.15.0