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

Go to the source code of this file.

Functions/Subroutines

subroutine sgcoor3 (time, npe, x, ixs, x0, y0, z0, vx0, vy0, vz0, sav, d, off, off0, nel, xdp, mtn, ismstr)

Function/Subroutine Documentation

◆ sgcoor3()

subroutine sgcoor3 ( time,
integer npe,
x,
integer, dimension(nixs,*) ixs,
double precision, dimension(mvsiz,npe) x0,
double precision, dimension(mvsiz,npe) y0,
double precision, dimension(mvsiz,npe) z0,
vx0,
vy0,
vz0,
double precision, dimension(nel,3*(npe-1)) sav,
d,
off,
off0,
integer nel,
double precision, dimension(3,*) xdp,
integer, intent(in) mtn,
integer, intent(in) ismstr )

Definition at line 34 of file sgcoor3.F.

40 use element_mod , only : nixs
41C-----------------------------------------------
42C I m p l i c i t T y p e s
43C-----------------------------------------------
44#include "implicit_f.inc"
45C-----------------------------------------------
46C G l o b a l P a r a m e t e r s
47C-----------------------------------------------
48#include "mvsiz_p.inc"
49C-----------------------------------------------
50C C o m m o n B l o c k s
51C-----------------------------------------------
52#include "scr18_c.inc"
53#include "scr05_c.inc"
54C-----------------------------------------------
55C D u m m y A r g u m e n t s
56C-----------------------------------------------
57 INTEGER, INTENT(IN) :: MTN
58 INTEGER, INTENT(IN) :: ISMSTR
59 INTEGER NPE,NEL
60 INTEGER IXS(NIXS,*)
61C REAL
63 . x(3,*),time,d(3,*),off(*),off0(*),
64 . vx0(mvsiz,npe),vy0(mvsiz,npe),vz0(mvsiz,npe)
65 DOUBLE PRECISION
66 . X0(MVSIZ,NPE), Y0(MVSIZ,NPE), Z0(MVSIZ,NPE),
67 . SAV(NEL,3*(NPE-1)),XDP(3,*),XD,YD,ZD
68C-----------------------------------------------
69C L o c a l V a r i a b l e s
70C-----------------------------------------------
71 INTEGER I,NPE1,N,N2,N3
72 INTEGER NC(MVSIZ,NPE)
73C REAL
74C-----------------------------------------------
75C
76 npe1=npe-1
77 IF (npe==4) THEN
78 DO i=1,nel
79 nc(i,1)=ixs(2,i)
80 nc(i,2)=ixs(4,i)
81 nc(i,3)=ixs(7,i)
82 nc(i,4)=ixs(6,i)
83 ENDDO
84 ELSE
85 DO n=1,npe
86 DO i=1,nel
87 nc(i,n)=ixs(n+1,i)
88 ENDDO
89 ENDDO
90 ENDIF
91C----------------------------
92C NODAL COORDINATES INITIALES |
93C----------------------------
94 DO n=1,npe1
95 n2 = n + npe1
96 n3 = n2 + npe1
97 DO i=1,nel
98 x0(i,n)=sav(i,n)
99 y0(i,n)=sav(i,n2)
100 z0(i,n)=sav(i,n3)
101 ENDDO
102 ENDDO
103C--------ISMSTR == 12 diff format of SAV
104 IF (ismstr == 12.AND.idtmin(1)==3 .AND.mtn==1) THEN
105 DO n=1,npe1
106 n2 = 3*(n-1)+1
107 DO i=1,nel
108 IF (off(i) <= one ) cycle
109 x0(i,n)=sav(i,n2)
110 y0(i,n)=sav(i,n2+1)
111 z0(i,n)=sav(i,n2+2)
112 ENDDO
113 ENDDO
114 END IF !(ISMSTR == 12.AND.IDTMIN(1)==3) THEN
115C----------------------------
116C DISPLACEMENT |
117C----------------------------
118 IF(iresp==1)THEN
119 DO n=1,npe1
120 DO i=1,nel
121 n2 = nc(i,n)
122 n3 = nc(i,npe)
123 xd =xdp(1,n2)-xdp(1,n3)-x0(i,n)
124 yd =xdp(2,n2)-xdp(2,n3)-y0(i,n)
125 zd =xdp(3,n2)-xdp(3,n3)-z0(i,n)
126 vx0(i,n) = xd
127 vy0(i,n) = yd
128 vz0(i,n) = zd
129 ENDDO
130 ENDDO
131 ELSE
132 DO n=1,npe1
133 DO i=1,nel
134 n2 = nc(i,n)
135 n3 = nc(i,npe)
136 vx0(i,n)=x(1,n2)-x(1,n3)-x0(i,n)
137 vy0(i,n)=x(2,n2)-x(2,n3)-y0(i,n)
138 vz0(i,n)=x(3,n2)-x(3,n3)-z0(i,n)
139 ENDDO
140 ENDDO
141 END IF !(IRESP==1)THEN
142C
143 DO i=1,nel
144 x0(i,npe)=zero
145 y0(i,npe)=zero
146 z0(i,npe)=zero
147 vx0(i,npe)=zero
148 vy0(i,npe)=zero
149 vz0(i,npe)=zero
150 ENDDO
151C
152 IF (ismstr == 12.AND.idtmin(1)==3) THEN
153 DO i=1,nel
154 off0(i)=off(i)
155 ENDDO
156C-------law1 special two increment
157 IF (mtn/=1) THEN
158 DO n=1,npe1
159 DO i=1,nel
160 IF (off(i) <= one ) cycle
161 vx0(i,n)=d(1,nc(i,n))-d(1,nc(i,npe))
162 vy0(i,n)=d(2,nc(i,n))-d(2,nc(i,npe))
163 vz0(i,n)=d(3,nc(i,n))-d(3,nc(i,npe))
164 ENDDO
165 ENDDO
166 DO n=1,npe1
167 n2 = 3*(n-1)+1
168 DO i=1,nel
169 IF (off(i) <= one ) cycle
170 x0(i,n)=sav(i,n2)
171 y0(i,n)=sav(i,n2+1)
172 z0(i,n)=sav(i,n2+2)
173 ENDDO
174 ENDDO
175 END IF
176 END IF !(ISMSTR == 10.AND.IDTMIN(1)==3) THEN
177C
178 RETURN
#define my_real
Definition cppsort.cpp:32