OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
spadasm.F File Reference
#include "implicit_f.inc"
#include "sphcom.inc"
#include "param_c.inc"
#include "task_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine spadasm0 (x, v, ms, spbuf, itab, kxsp, ixsp, nod2sp, ispcond, ispsym, xframe, xspsym, wsp2sort, itask)
subroutine spadasm (x, v, ms, spbuf, itab, kxsp, ixsp, nod2sp, ispcond, ispsym, xframe, vspsym, wsp2sort, itask)

Function/Subroutine Documentation

◆ spadasm()

subroutine spadasm ( x,
v,
ms,
spbuf,
integer, dimension(*) itab,
integer, dimension(nisp,*) kxsp,
integer, dimension(kvoisph,*) ixsp,
integer, dimension(*) nod2sp,
integer, dimension(nispcond,*) ispcond,
integer, dimension(nspcond,*) ispsym,
xframe,
vspsym,
integer, dimension(*) wsp2sort,
integer itask )

Definition at line 125 of file spadasm.F.

129C-----------------------------------------------
130C M o d u l e s
131C-----------------------------------------------
132 USE sphbox
133C-----------------------------------------------
134C I m p l i c i t T y p e s
135C-----------------------------------------------
136#include "implicit_f.inc"
137C-----------------------------------------------
138C C o m m o n B l o c k s
139C-----------------------------------------------
140#include "sphcom.inc"
141#include "param_c.inc"
142#include "task_c.inc"
143C-----------------------------------------------
144C D u m m y A r g u m e n t s
145C-----------------------------------------------
146 INTEGER KXSP(NISP,*),IXSP(KVOISPH,*),NOD2SP(*),ITAB(*),
147 . ISPCOND(NISPCOND,*),ISPSYM(NSPCOND,*),WSP2SORT(*),
148 . ITASK
149 my_real
150 . x(3,*), v(3,*), ms(*), spbuf(nspbuf,*),
151 . xframe(nxframe,*), vspsym(3,*)
152C-----------------------------------------------
153C L o c a l V a r i a b l e s
154C-----------------------------------------------
155 INTEGER K,N,INOD,JS,
156 . IS,IC,NC,ISLIDE,NS
157 my_real
158 . vxi,vyi,vzi,
159 . nx,ny,nz,
160 . vxs,vys,vzs,vn
161C-----------------------------------------------
162C routine simplifiee (traitement sur XSPSYM effectue ds SPADASM0)
163 DO nc=1,nspcond
164 is=ispcond(3,nc)
165 ic=ispcond(2,nc)
166 islide=ispcond(5,nc)
167 nx=xframe(3*(ic-1)+1,is)
168 ny=xframe(3*(ic-1)+2,is)
169 nz=xframe(3*(ic-1)+3,is)
170 DO ns =1+itask,nsp2sort,nthread
171 n=wsp2sort(ns)
172 js=ispsym(nc,n)
173 IF(js>0)THEN
174 inod=kxsp(3,n)
175 vxi=v(1,inod)
176 vyi=v(2,inod)
177 vzi=v(3,inod)
178C
179 IF(islide==0)THEN
180 vxs=-vxi
181 vys=-vyi
182 vzs=-vzi
183 ELSE
184 vn=vxi*nx+vyi*ny+vzi*nz
185 vxs=vxi-two*vn*nx
186 vys=vyi-two*vn*ny
187 vzs=vzi-two*vn*nz
188 ENDIF
189 vspsym(1,js)=vxs
190 vspsym(2,js)=vys
191 vspsym(3,js)=vzs
192 ENDIF
193 ENDDO
194C
195C Particules symetriques de particules remotes
196C
197 DO ns = 1+itask,nsphr,nthread
198 js=ispsymr(nc,ns)
199 IF(js>0)THEN
200 vxi=xsphr(9,ns)
201 vyi=xsphr(10,ns)
202 vzi=xsphr(11,ns)
203C
204 IF(islide==0)THEN
205 vxs=-vxi
206 vys=-vyi
207 vzs=-vzi
208 ELSE
209 vn=vxi*nx+vyi*ny+vzi*nz
210 vxs=vxi-two*vn*nx
211 vys=vyi-two*vn*ny
212 vzs=vzi-two*vn*nz
213 END IF
214 vspsym(1,js)=vxs
215 vspsym(2,js)=vys
216 vspsym(3,js)=vzs
217 END IF
218 END DO
219 ENDDO
220C-------------------------------------------
221 RETURN
#define my_real
Definition cppsort.cpp:32
integer, dimension(:,:), allocatable ispsymr
Definition sphbox.F:93
integer nsphr
Definition sphbox.F:83

◆ spadasm0()

subroutine spadasm0 ( x,
v,
ms,
spbuf,
integer, dimension(*) itab,
integer, dimension(nisp,*) kxsp,
integer, dimension(kvoisph,*) ixsp,
integer, dimension(*) nod2sp,
integer, dimension(nispcond,*) ispcond,
integer, dimension(nspcond,*) ispsym,
xframe,
xspsym,
integer, dimension(*) wsp2sort,
integer itask )

Definition at line 30 of file spadasm.F.

34C-----------------------------------------------
35C M o d u l e s
36C-----------------------------------------------
37 USE sphbox
38C-----------------------------------------------
39C I m p l i c i t T y p e s
40C-----------------------------------------------
41#include "implicit_f.inc"
42C-----------------------------------------------
43C C o m m o n B l o c k s
44C-----------------------------------------------
45#include "sphcom.inc"
46#include "param_c.inc"
47#include "task_c.inc"
48C-----------------------------------------------
49C D u m m y A r g u m e n t s
50C-----------------------------------------------
51 INTEGER KXSP(NISP,*),IXSP(KVOISPH,*),NOD2SP(*),ITAB(*),
52 . ISPCOND(NISPCOND,*),ISPSYM(NSPCOND,*),WSP2SORT(*),
53 . ITASK
55 . x(3,*), v(3,*), ms(*), spbuf(nspbuf,*),
56 . xframe(nxframe,*), xspsym(3,*)
57C-----------------------------------------------
58C L o c a l V a r i a b l e s
59C-----------------------------------------------
60 INTEGER K,N,INOD,JS,
61 . IS,IC,NC,NS
63 . xi,yi,zi,
64 . ox,oy,oz,nx,ny,nz,
65 . xs,ys,zs,vxs,vys,vzs,vn,dd
66C-----------------------------------------------
67 DO nc=1,nspcond
68 is=ispcond(3,nc)
69 ic=ispcond(2,nc)
70 ox=xframe(10,is)
71 oy=xframe(11,is)
72 oz=xframe(12,is)
73 nx=xframe(3*(ic-1)+1,is)
74 ny=xframe(3*(ic-1)+2,is)
75 nz=xframe(3*(ic-1)+3,is)
76 DO ns =1+itask,nsp2sort,nthread
77 n=wsp2sort(ns)
78 js=ispsym(nc,n)
79 IF(js>0)THEN
80 inod=kxsp(3,n)
81 xi =x(1,inod)
82 yi =x(2,inod)
83 zi =x(3,inod)
84 dd=(xi-ox)*nx+(yi-oy)*ny+(zi-oz)*nz
85 xs=xi-two*dd*nx
86 ys=yi-two*dd*ny
87 zs=zi-two*dd*nz
88C
89 xspsym(1,js)=xs
90 xspsym(2,js)=ys
91 xspsym(3,js)=zs
92 ENDIF
93 ENDDO
94C
95C Particules symetriques de particules remotes
96C
97 DO ns = 1+itask, nsphr,nthread
98 js=ispsymr(nc,ns)
99 IF(js>0)THEN
100 xi =xsphr(3,ns)
101 yi =xsphr(4,ns)
102 zi =xsphr(5,ns)
103 dd=(xi-ox)*nx+(yi-oy)*ny+(zi-oz)*nz
104 xs=xi-two*dd*nx
105 ys=yi-two*dd*ny
106 zs=zi-two*dd*nz
107C
108 xspsym(1,js)=xs
109 xspsym(2,js)=ys
110 xspsym(3,js)=zs
111 END IF
112 END DO
113 ENDDO
114C-------------------------------------------
115 RETURN