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

Go to the source code of this file.

Functions/Subroutines

subroutine f_nodloc2 (numnod, p, nodglob, nodlocal, igeo, iparg, ixs, ixq, ixc, ixtg, ixt, ixp, ixr, geo, numnod_l)

Function/Subroutine Documentation

◆ f_nodloc2()

subroutine f_nodloc2 ( integer numnod,
integer p,
integer, dimension(*) nodglob,
integer, dimension(*) nodlocal,
integer, dimension(npropgi,*) igeo,
integer, dimension(nparg,*) iparg,
integer, dimension(nixs,*) ixs,
integer, dimension(nixq,*) ixq,
integer, dimension(nixc,*) ixc,
integer, dimension(nixtg,*) ixtg,
integer, dimension(nixt,*) ixt,
integer, dimension(nixp,*) ixp,
integer, dimension(nixr,*) ixr,
geo,
integer numnod_l )

Definition at line 32 of file f_nodloc2.F.

35 use element_mod , only : nixs,nixq,nixc,nixp,nixt,nixr,nixtg
36C-----------------------------------------------
37C I m p l i c i t T y p e s
38C-----------------------------------------------
39#include "implicit_f.inc"
40C-----------------------------------------------
41C C o m m o n B l o c k s
42C-----------------------------------------------
43#include "param_c.inc"
44#include "com01_c.inc"
45C-----------------------------------------------
46C D u m m y A r g u m e n t s
47C-----------------------------------------------
48 INTEGER NUMNOD,P,NUMNOD_L,
49 + NODGLOB(*), NODLOCAL(*), IGEO(NPROPGI,*),
50 + IPARG(NPARG,*), IXS(NIXS,*), IXQ(NIXQ,*), IXC(NIXC,*),
51 + IXTG(NIXTG,*), IXT(NIXT,*), IXP(NIXP,*), IXR(NIXR,*)
53 + geo(npropg,*)
54C-----------------------------------------------
55C F u n c t i o n
56C-----------------------------------------------
57 INTEGER NLOCAL
58 EXTERNAL nlocal
59C-----------------------------------------------
60C L o c a l V a r i a b l e s
61C-----------------------------------------------
62 INTEGER I, N_L, NG, NEL, ITY, NFT, K, N, IE
63 INTEGER, DIMENSION(:), ALLOCATABLE :: ITAG
64C
65! ----------------------
66! allocate 1d array
67 ALLOCATE( itag(numnod) )
68! ----------------------
69 DO n = 1, numnod
70 itag(n) = 0
71 END DO
72C
73 n_l = 0
74 DO ng=1,ngroup
75 IF(iparg(32,ng)==p-1) THEN
76 nel = iparg(2,ng)
77 nft = iparg(3,ng)
78 ity = iparg(5,ng)
79 IF(ity==1) THEN
80C solid (remains to be solid 10, 16, 20)
81 DO i = 1, nel
82 ie = i+nft
83 DO k = 1, 8
84 n = ixs(k+1,ie)
85 IF(itag(n)==0) THEN
86 n_l = n_l + 1
87 nodlocal(n) = n_l
88 nodglob(n_l) = n
89 itag(n) = 1
90 END IF
91 END DO
92 END DO
93C cas 2D
94 ELSEIF(ity==2)THEN
95 DO i = 1, nel
96 ie = i+nft
97 DO k = 1, 4
98 n = ixq(k+1,ie)
99 IF(itag(n)==0) THEN
100 n_l = n_l + 1
101 nodlocal(n) = n_l
102 nodglob(n_l) = n
103 itag(n) = 1
104 END IF
105 END DO
106 END DO
107 ELSEIF(ity==3)THEN
108C coques
109 DO i = 1, nel
110 ie = i+nft
111 DO k = 1, 4
112 n = ixc(k+1,ie)
113 IF(itag(n)==0) THEN
114 n_l = n_l + 1
115 nodlocal(n) = n_l
116 nodglob(n_l) = n
117 itag(n) = 1
118 END IF
119 END DO
120 END DO
121 ELSEIF(ity==4)THEN
122C trusses
123 DO i = 1, nel
124 ie = i+nft
125 DO k = 1, 2
126 n = ixt(k+1,ie)
127 IF(itag(n)==0) THEN
128 n_l = n_l + 1
129 nodlocal(n) = n_l
130 nodglob(n_l) = n
131 itag(n) = 1
132 END IF
133 END DO
134 END DO
135 ELSEIF(ity==5)THEN
136C poutres
137 DO i = 1, nel
138 ie = i+nft
139 DO k = 1, 2
140 n = ixp(k+1,ie)
141 IF(itag(n)==0) THEN
142 n_l = n_l + 1
143 nodlocal(n) = n_l
144 nodglob(n_l) = n
145 itag(n) = 1
146 END IF
147 END DO
148 END DO
149 ELSEIF(ity==6)THEN
150C ressorts
151 DO i = 1, nel
152 ie = i+nft
153 DO k = 1, 2
154 n = ixr(k+1,ie)
155 IF(itag(n)==0) THEN
156 n_l = n_l + 1
157 nodlocal(n) = n_l
158 nodglob(n_l) = n
159 itag(n) = 1
160 END IF
161 END DO
162 IF(igeo(11,ixr(1,ie))==12)THEN
163 n = ixr(4,ie)
164 IF(itag(n)==0) THEN
165 n_l = n_l + 1
166 nodlocal(n) = n_l
167 nodglob(n_l) = n
168 itag(n) = 1
169 END IF
170 END IF
171 END DO
172 ELSEIF(ity==7)THEN
173C probably confusion between int_type and element ELSEIF(ITY==7.OR.ITY==22)THEN
174C triangles
175 DO i = 1, nel
176 ie = i+nft
177 DO k = 1, 3
178 n = ixtg(k+1,ie)
179 IF(itag(n)==0) THEN
180 n_l = n_l + 1
181 nodlocal(n) = n_l
182 nodglob(n_l) = n
183 itag(n) = 1
184 END IF
185 END DO
186 END DO
187 ELSEIF(ity==50)THEN
188C ur to do
189 END IF
190 END IF
191 END DO
192C
193 DO i = 1, numnod
194 IF(itag(i)==0) THEN
195 IF(nlocal(i,p)==1)THEN
196 n_l = n_l + 1
197 nodlocal(i) = n_l
198 nodglob(n_l)= i
199 ELSE
200 nodlocal(i) = 0
201 ENDIF
202 END IF
203 ENDDO
204C
205! ----------------------
206! deallocate 1d array
207 DEALLOCATE( itag )
208! ----------------------
209 RETURN
#define my_real
Definition cppsort.cpp:32
integer function nlocal(n, p)
Definition ddtools.F:350