OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sphtri.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!|| sphtri ../engine/source/elements/sph/sphtri.f
25!||--- called by ------------------------------------------------------
26!|| sphprep ../engine/source/elements/sph/sphprep.F
27!||--- calls -----------------------------------------------------
28!|| spbuc3 ../engine/source/elements/sph/spbuc3.F
29!||--- uses -----------------------------------------------------
30!|| sphbox ../engine/share/modules/sphbox.F
31!||====================================================================
32 SUBROUTINE sphtri(X ,SPBUF ,KXSP ,IXSP ,NOD2SP,
33 2 IREDUCE ,WSP2SORT,BMINMA,NSP2SORTF,NSP2SORTL,
34 3 ITASK ,KREDUCE ,LGAUGE ,GAUGE )
35C-----------------------------------------------
36C M o d u l e s
37C-----------------------------------------------
38 USE sphbox
39C-----------------------------------------------
40C I m p l i c i t T y p e s
41C-----------------------------------------------
42#include "implicit_f.inc"
43C-----------------------------------------------
44C C o m m o n B l o c k s
45C-----------------------------------------------
46#include "com04_c.inc"
47#include "sphcom.inc"
48#include "param_c.inc"
49#include "task_c.inc"
50C-----------------------------------------------
51C D u m m y A r g u m e n t s
52C-----------------------------------------------
53 INTEGER KXSP(NISP,*),IXSP(KVOISPH,*),NOD2SP(*), WSP2SORT(*),
54 . IREDUCE,NSP2SORTF,NSP2SORTL,ITASK, KREDUCE(*),
55 . lgauge(3,*)
56 my_real x(3,*),spbuf(nspbuf,*), bminma(12), gauge(llgauge,*)
57C-----------------------------------------------
58C L o c a l V a r i a b l e s
59C-----------------------------------------------
60 INTEGER NSN,IG
61 INTEGER N, INOD, NS
62 INTEGER MWA(15*(NUMSPH+NSPHR)), JVOIS(NUMSPH+NSPHR), JSTOR(NUMSPH+NSPHR), JPERM(NUMSPH+NSPHR)
63 my_real dvois(numsph+nsphr)
64C-----------------------------------------------
65 nsn=0
66 DO ns=1,nsp2sort
67 n=wsp2sort(ns)
68 nsn=nsn+1
69 mwa(nsn) =n
70 kxsp(5,n)=0
71 END DO
72C
73 DO ig=1,nbgauge
74 kxsp(5,numsph+ig)=0
75 END DO
76C
77 DO ns = 1, nsphr ! candidats remote SPMD
78 nsn=nsn+1
79 mwa(nsn)=numsph+ns
80 END DO
81C--------
82 IF (nsp2sort/=0) CALL spbuc3(
83 1 x ,kxsp ,ixsp ,nod2sp,nsp2sort,
84 2 spbuf ,mwa ,jvois ,jstor ,jperm ,
85 3 dvois ,ireduce,bminma,nsphr ,nsp2sortf,
86 4 nsp2sortl,itask,kreduce,lgauge ,gauge )
87C
88 DO ns=nsp2sortf,nsp2sortl
89 n=wsp2sort(ns)
90 inod=kxsp(3,n)
91 spbuf(5,n)=x(1,inod)
92 spbuf(6,n)=x(2,inod)
93 spbuf(7,n)=x(3,inod)
94 spbuf(8,n)=spbuf(1,n)
95 ENDDO
96C
97
98 DO n=itask+1,nbgauge,nthread
99 IF(lgauge(1,n) <= -(numels+1))THEN
100 gauge(6,n)=gauge(2,n)
101 gauge(7,n)=gauge(3,n)
102 gauge(8,n)=gauge(4,n)
103 END IF
104 END DO
105C-----------------------------------------------
106 RETURN
107 END
#define my_real
Definition cppsort.cpp:32
subroutine spbuc3(x, kxsp, ixsp, nod2sp, nsn, spbuf, ma, jvois, jstor, jperm, dvois, ireduce, bminma, nsnr, nsp2sortf, nsp2sortl, itask, kreduce, lgauge, gauge)
Definition spbuc3.F:57
subroutine sphtri(x, spbuf, kxsp, ixsp, nod2sp, ireduce, wsp2sort, bminma, nsp2sortf, nsp2sortl, itask, kreduce, lgauge, gauge)
Definition sphtri.F:35