OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
fxbelnum.F File Reference
#include "implicit_f.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "scr01_c.inc"
#include "param_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine fxbelnum (fxbnod, nsn, iparg, itag, fxbelm, ixs, ixc, ixtg, iparts, ipartc, iparttg, ixt, ixp, ipartt, ipartp)

Function/Subroutine Documentation

◆ fxbelnum()

subroutine fxbelnum ( integer, dimension(*) fxbnod,
integer nsn,
integer, dimension(nparg,*) iparg,
integer, dimension(*) itag,
integer, dimension(*) fxbelm,
integer, dimension(nixs,*) ixs,
integer, dimension(nixc,*) ixc,
integer, dimension(nixtg,*) ixtg,
integer, dimension(*) iparts,
integer, dimension(*) ipartc,
integer, dimension(*) iparttg,
integer, dimension(nixt,*) ixt,
integer, dimension(nixp,*) ixp,
integer, dimension(*) ipartt,
integer, dimension(*) ipartp )

Definition at line 28 of file fxbelnum.F.

32C-----------------------------------------------
33C I m p l i c i t T y p e s
34C-----------------------------------------------
35#include "implicit_f.inc"
36C-----------------------------------------------
37C C o m m o n B l o c k s
38C-----------------------------------------------
39#include "com01_c.inc"
40#include "com04_c.inc"
41#include "scr01_c.inc"
42#include "param_c.inc"
43C-----------------------------------------------
44C D u m m y A r g u m e n t s
45C-----------------------------------------------
46 INTEGER FXBNOD(*), NSN, IPARG(NPARG,*), ITAG(*), FXBELM(*),
47 . IXS(NIXS,*), IXC(NIXC,*), IXTG(NIXTG,*), IPARTS(*),
48 . IPARTC(*), IPARTTG(*), IXT(NIXT,*), IXP(NIXP,*),
49 . IPARTT(*), IPARTP(*)
50C-----------------------------------------------
51C L o c a l V a r i a b l e s
52C-----------------------------------------------
53 INTEGER I,NG,NEL,NFT,ITY,II,NALL,NEL2,J,IAD,MAT,JHBE,IT1,IT2,IT3,IT4,IT5,IT6,IT7,IT8
54C=======================================================================
55 DO i=1,numnod
56 itag(i)=0
57 ENDDO
58 DO i=1,nsn
59 itag(abs(fxbnod(i)))=i
60 ENDDO
61 nel2=0
62C
63 DO ng=1,ngroup
64 nel=iparg(2,ng)
65 nft=iparg(3,ng)
66 iad=iparg(4,ng)
67 ity=iparg(5,ng)
68 jhbe=iparg(23,ng)
69C 1. Solid elements
70 IF(ity == 1)THEN
71 DO i=1,nel
72 ii=i+nft
73 it1=min(1,itag(ixs(2,ii)))
74 it2=min(1,itag(ixs(3,ii)))
75 it3=min(1,itag(ixs(4,ii)))
76 it4=min(1,itag(ixs(5,ii)))
77 it5=min(1,itag(ixs(6,ii)))
78 it6=min(1,itag(ixs(7,ii)))
79 it7=min(1,itag(ixs(8,ii)))
80 it8=min(1,itag(ixs(9,ii)))
81 nall = it1 * it2 * it3 * it4 * it5 * it6 * it7 * it8
82 IF (nall>0) THEN
83 mat=ixs(1,ii)
84 fxbelm(nel2+1)=ng
85 fxbelm(nel2+2)=i
86 DO j=1,8
87 fxbelm(nel2+2+j)=itag(ixs(1+j,ii))
88 ENDDO
89 fxbelm(nel2+13)=iparts(ii)
90 nel2=nel2+13
91 ENDIF
92 ENDDO
93C 3. 4-nodes shell elements
94 ELSEIF(ity == 3)THEN
95 DO i=1,nel
96 ii=i+nft
97 it1=min(1,itag(ixc(2,ii)))
98 it2=min(1,itag(ixc(3,ii)))
99 it3=min(1,itag(ixc(4,ii)))
100 it4=min(1,itag(ixc(5,ii)))
101 nall = it1 * it2 * it3 * it4
102 IF (nall>0) THEN
103 fxbelm(nel2+1)=ng
104 fxbelm(nel2+2)=i
105 DO j=1,4
106 fxbelm(nel2+2+j)=itag(ixc(1+j,ii))
107 ENDDO
108 fxbelm(nel2+10)=ipartc(ii)
109 nel2=nel2+10
110 ENDIF
111 ENDDO
112C 4. Truss elements
113 ELSEIF (ity == 4) THEN
114 DO i=1,nel
115 ii=i+nft
116 it1=min(1,itag(ixt(2,ii)))
117 it2=min(1,itag(ixt(3,ii)))
118 nall = it1 * it2
119 IF (nall>0) THEN
120 nb1=iad
121 nb2=nb1+nel
122 fxbelm(nel2+1)=ng
123 fxbelm(nel2+2)=i
124 DO j=1,2
125 fxbelm(nel2+2+j)=itag(ixt(1+j,ii))
126 ENDDO
127 fxbelm(nel2+5)=nb1+i-1
128 fxbelm(nel2+6)=nb2+i-1
129 fxbelm(nel2+7)=ipartt(ii)
130 nel2=nel2+7
131 ENDIF
132 ENDDO
133C 5. Beam elements
134 ELSEIF (ity == 5) THEN
135 DO i=1,nel
136 ii=i+nft
137 it1=min(1,itag(ixp(2,ii)))
138 it2=min(1,itag(ixp(3,ii)))
139 nall = it1 * it2
140 IF (nall>0) THEN
141 nb1=iad
142 nb2=nb1+nel
143 nb3=nb2+nel*3
144 nb4=nb3+nel*3
145 nb5=nb4+nel*2
146 nb6=nb5+nel
147 nb7=nb6+nel*3
148 fxbelm(nel2+1)=ng
149 fxbelm(nel2+2)=i
150 DO j=1,3
151 fxbelm(nel2+2+j)=itag(ixp(1+j,ii))
152 ENDDO
153 fxbelm(nel2+6)=nb2+3*(i-1)
154 fxbelm(nel2+7)=nb3+3*(i-1)
155 fxbelm(nel2+8)=nb4+2*(i-1)
156 fxbelm(nel2+9)=ipartp(ii)
157 nel2=nel2+9
158 ENDIF
159 ENDDO
160C 7. 3-nodes shell elements
161 ELSEIF(ity == 7)THEN
162 DO i=1,nel
163 ii=i+nft
164 it1=min(1,itag(ixtg(2,ii)))
165 it2=min(1,itag(ixtg(3,ii)))
166 it3=min(1,itag(ixtg(4,ii)))
167 nall = it1 * it2 * it3
168 IF (nall>0) THEN
169 fxbelm(nel2+1)=ng
170 fxbelm(nel2+2)=i
171 DO j=1,3
172 fxbelm(nel2+2+j)=itag(ixtg(1+j,ii))
173 ENDDO
174 fxbelm(nel2+9)=iparttg(ii)
175 nel2=nel2+9
176 ENDIF
177 ENDDO
178 ENDIF
179 ENDDO
180C-----------
181 RETURN
#define min(a, b)
Definition macros.h:20