OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s20coor3.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "scr18_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine s20coor3 (x, ixs, ixsp, v, w, iperm1, iperm2, npe, xx, yy, zz, vx, vy, vz, vdxx, vdyy, vdzz, vdx, vdy, vdz, vd2, vis, offg, off, sav, nc, ngl, mxt, ngeo, fx, fy, fz, stig, sigg, eintg, rhog, qg, eplasm, epsdg, g_pla, g_epsd, nel, conden, jale, ismstr, jeul, jlag)

Function/Subroutine Documentation

◆ s20coor3()

subroutine s20coor3 ( x,
integer, dimension(nixs,*) ixs,
integer, dimension(npe-8,*) ixsp,
v,
w,
integer, dimension(npe) iperm1,
integer, dimension(npe) iperm2,
integer npe,
xx,
yy,
zz,
vx,
vy,
vz,
vdxx,
vdyy,
vdzz,
vdx,
vdy,
vdz,
vd2,
vis,
offg,
off,
double precision, dimension(nel,3*npe) sav,
integer, dimension(mvsiz,npe) nc,
integer, dimension(*) ngl,
integer, dimension(*) mxt,
integer, dimension(*) ngeo,
fx,
fy,
fz,
stig,
sigg,
eintg,
rhog,
qg,
eplasm,
epsdg,
integer g_pla,
integer g_epsd,
integer nel,
conden,
integer, intent(in) jale,
integer, intent(in) ismstr,
integer, intent(in) jeul,
integer, intent(in) jlag )

Definition at line 31 of file s20coor3.F.

44 use element_mod , only : nixs
45C-----------------------------------------------
46C I m p l i c i t T y p e s
47C-----------------------------------------------
48#include "implicit_f.inc"
49C-----------------------------------------------
50C G l o b a l P a r a m e t e r s
51C-----------------------------------------------
52#include "mvsiz_p.inc"
53C-----------------------------------------------
54C C o m m o n B l o c k s
55C-----------------------------------------------
56#include "scr18_c.inc"
57C-----------------------------------------------
58C D u m m y A r g u m e n t s
59C-----------------------------------------------
60 INTEGER, INTENT(IN) :: JALE
61 INTEGER, INTENT(IN) :: ISMSTR
62 INTEGER, INTENT(IN) :: JEUL
63 INTEGER, INTENT(IN) :: JLAG
64 INTEGER NPE,G_PLA,G_EPSD,NEL,
65 . NC(MVSIZ,NPE), MXT(*), NGL(*),NGEO(*),
66 . IXS(NIXS,*),IXSP(NPE-8,*), IPERM1(NPE),IPERM2(NPE)
67C REAL
69 . x(3,*),v(3,*),w(3,*), vis(*),
70 . xx(mvsiz,npe), yy(mvsiz,npe), zz(mvsiz,npe),
71 . vx(mvsiz,npe),vy(mvsiz,npe),vz(mvsiz,npe),
72 . vdxx(mvsiz,npe), vdyy(mvsiz,npe), vdzz(mvsiz,npe),
73 . vdx(*), vdy(*), vdz(*),vd2(*),offg(*),off(*),
74 . fx(mvsiz,npe), fy(mvsiz,npe), fz(mvsiz,npe), epsdg(*),
75 . sigg(nel,6),eintg(*),rhog(*),qg(*),stig(mvsiz,npe),eplasm(*),
76 . conden(mvsiz,npe)
77 DOUBLE PRECISION
78 . SAV(NEL,3*NPE)
79C-----------------------------------------------
80C L o c a l V a r i a b l e s
81C-----------------------------------------------
82 INTEGER I,N,N1,N2,NN,IUN,MXT_1
84 . off_l
85C-----------------------------------------------
86 off_l = zero
87 iun=1
88C
89 mxt_1 = ixs(1,1)
90 DO i=1,nel
91 vis(i)=zero
92 vd2(i)=zero
93 ngeo(i)=ixs(10,i)
94 ngl(i) =ixs(11,i)
95 mxt(i) =mxt_1
96 nc(i,1)=ixs(2,i)
97 nc(i,2)=ixs(3,i)
98 nc(i,3)=ixs(4,i)
99 nc(i,4)=ixs(5,i)
100 nc(i,5)=ixs(6,i)
101 nc(i,6)=ixs(7,i)
102 nc(i,7)=ixs(8,i)
103 nc(i,8)=ixs(9,i)
104 eintg(i)=zero
105 rhog(i)=zero
106 qg(i)=zero
107 sigg(i,1)=zero
108 sigg(i,2)=zero
109 sigg(i,3)=zero
110 sigg(i,4)=zero
111 sigg(i,5)=zero
112 sigg(i,6)=zero
113 stig(i,1)=zero
114 stig(i,2)=zero
115 stig(i,3)=zero
116 stig(i,4)=zero
117 stig(i,5)=zero
118 stig(i,6)=zero
119 stig(i,7)=zero
120 stig(i,8)=zero
121 conden(i,1:8)=zero
122 ENDDO
123 IF (g_pla > 0) THEN
124 DO i=1,nel
125 eplasm(i)=zero
126 ENDDO
127 ENDIF
128 IF (g_epsd > 0) THEN
129 DO i=1,nel
130 epsdg(i)=zero
131 ENDDO
132 ENDIF
133C
134 DO n=9,npe
135 DO i=1,nel
136 nc(i,n) =ixsp(n-8,i)
137 stig(i,n)=zero
138 conden(i,n)=zero
139 ENDDO
140 ENDDO
141C
142 IF (jlag==0)THEN
143 DO i=1,nel
144 vdx(i)=zero
145 vdy(i)=zero
146 vdz(i)=zero
147 ENDDO
148 ENDIF
149C
150 DO n=1,npe
151C----------------------------
152C NODAL COORDINATES |
153C----------------------------
154 IF(ismstr==1.OR.(ismstr==2.AND.idtmin(1)==3))THEN
155C
156 DO i=1,nel
157 IF(offg(i)>one)THEN
158 xx(i,n)=sav(i,n)
159 yy(i,n)=sav(i,n+npe)
160 zz(i,n)=sav(i,n+2*npe)
161 off(i) = offg(i)-one
162 ELSE
163 nn = max(iun,nc(i,n))
164 xx(i,n)=x(1,nn)
165 yy(i,n)=x(2,nn)
166 zz(i,n)=x(3,nn)
167 sav(i,n) =xx(i,n)
168 sav(i,n+npe) =yy(i,n)
169 sav(i,n+npe*2)=zz(i,n)
170 off(i) = offg(i)
171 ENDIF
172 ENDDO
173C
174 ELSE
175C
176 DO i=1,nel
177 nn = max(iun,nc(i,n))
178 xx(i,n)=x(1,nn)
179 yy(i,n)=x(2,nn)
180 zz(i,n)=x(3,nn)
181 off(i) = min(one,abs(offg(i)))
182 off_l = min(off_l,offg(i))
183 ENDDO
184C
185 ENDIF
186C
187 DO i=1,nel
188 nn = max(iun,nc(i,n))
189 vx(i,n)=v(1,nn)
190 vy(i,n)=v(2,nn)
191 vz(i,n)=v(3,nn)
192 fx(i,n)=zero
193 fy(i,n)=zero
194 fz(i,n)=zero
195 ENDDO
196 IF(off_l<0.)THEN
197 DO i=1,nel
198 IF(offg(i)<0.)THEN
199 vx(i,n)=zero
200 vy(i,n)=zero
201 vz(i,n)=zero
202 ENDIF
203 ENDDO
204 ENDIF
205C
206 IF (jlag==0)THEN
207C
208 IF(jale/=0)THEN
209 DO i=1,nel
210 nn = max(iun,nc(i,n))
211 vdxx(i,n)=vx(i,n)-w(1,nn)
212 vdyy(i,n)=vy(i,n)-w(2,nn)
213 vdzz(i,n)=vz(i,n)-w(3,nn)
214 ENDDO
215 ELSEIF(jeul/=0)THEN
216 DO i=1,nel
217 vdxx(i,n)=vx(i,n)
218 vdyy(i,n)=vy(i,n)
219 vdzz(i,n)=vz(i,n)
220 ENDDO
221 ENDIF
222C
223 DO i=1,nel
224 vdx(i)=vdx(i)+vdxx(i,n)
225 vdy(i)=vdy(i)+vdyy(i,n)
226 vdz(i)=vdz(i)+vdzz(i,n)
227 ENDDO
228 ENDIF
229 ENDDO
230C
231 IF (jlag==0)THEN
232 DO i=1,nel
233 vdx(i)=fourth*vdx(i)
234 vdy(i)=fourth*vdy(i)
235 vdz(i)=fourth*vdz(i)
236 vd2(i)=(vdx(i)**2+vdy(i)**2+vdz(i)**2)
237 ENDDO
238 ENDIF
239C
240 DO n=9,npe
241 n1=iperm1(n)
242 n2=iperm2(n)
243 DO i=1,nel
244 IF(nc(i,n)==0)THEN
245 xx(i,n) = half*(xx(i,n1)+xx(i,n2))
246 yy(i,n) = half*(yy(i,n1)+yy(i,n2))
247 zz(i,n) = half*(zz(i,n1)+zz(i,n2))
248 vx(i,n) = half*(vx(i,n1)+vx(i,n2))
249 vy(i,n) = half*(vy(i,n1)+vy(i,n2))
250 vz(i,n) = half*(vz(i,n1)+vz(i,n2))
251 ENDIF
252 ENDDO
253 ENDDO
254C-----------
255 RETURN
#define my_real
Definition cppsort.cpp:32
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21