OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sgcoor3.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| sgcoor3 ../engine/source/elements/solid/solide/sgcoor3.F
25!||--- called by ------------------------------------------------------
26!|| s4forc3 ../engine/source/elements/solid/solide4/s4forc3.F
27!|| s8eforc3 ../engine/source/elements/solid/solide8e/s8eforc3.F
28!|| s8zforc3 ../engine/source/elements/solid/solide8z/s8zforc3.f
29!|| sforc3 ../engine/source/elements/solid/solide/sforc3.F
30!|| szforc3 ../engine/source/elements/solid/solidez/szforc3.F
31!||--- uses -----------------------------------------------------
32!|| element_mod ../common_source/modules/elements/element_mod.F90
33!||====================================================================
34 SUBROUTINE sgcoor3(
35 1 TIME, NPE, X, IXS,
36 2 X0, Y0, Z0, VX0,
37 3 VY0, VZ0, SAV, D,
38 4 OFF, OFF0, NEL, XDP,
39 5 MTN, ISMSTR)
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
179 END
#define my_real
Definition cppsort.cpp:32
subroutine s8zforc3(timers, output, elbuf_tab, ng, pm, geo, ixs, x, a, v, ms, w, flux, flu1, veul, fv, ale_connect, iparg, tf, npf, bufmat, partsav, nloc_dmg, dt2t, neltst, ityptst, stifn, fsky, iads, offset, eani, iparts, icp, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, nel, icsig, smr, sms, smt, mfxx, mfxy, mfxz, mfyx, mfyy, mfyz, mfzx, mfzy, mfzz, nvc, ipm, itask, istrain, temp, fthe, fthesky, iexpan, igeo, nnpt, gresav, grth, igrth, mssa, dmels, table, xdp, voln, condn, condnsky, jfac, d, sensors, ioutprt, mat_elem, h3d_strain, dt, snpc, stf, sbufmat, svis, nsvois, idtmins, iresp, maxfunc, userl_avail, glob_therm, impl_s, idyna)
Definition s8zforc3.F:124
subroutine sgcoor3(time, npe, x, ixs, x0, y0, z0, vx0, vy0, vz0, sav, d, off, off0, nel, xdp, mtn, ismstr)
Definition sgcoor3.F:40