OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
ssort_n3.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!|| ssort_n3 ../engine/source/elements/solid/solide4/ssort_n3.f
25!||--- called by ------------------------------------------------------
26!|| sfor_n2stria2 ../engine/source/elements/solid/solide10/sfor_n2stria2.f
27!||====================================================================
28 SUBROUTINE ssort_n3(XI, YI, ZI ,
29 . X1, X2, X3,
30 . Y1, Y2, Y3,
31 . Z1, Z2, Z3,
32 . MARGE, STIF, IFC1,
33 . NEL)
34C-----------------------------------------------
35C I m p l i c i t T y p e s
36C-----------------------------------------------
37#include "implicit_f.inc"
38C-----------------------------------------------
39C G l o b a l P a r a m e t e r s
40C-----------------------------------------------
41#include "mvsiz_p.inc"
42C-----------------------------------------------
43C D u m m y A r g u m e n t s
44C-----------------------------------------------
45 INTEGER, INTENT (IN) :: NEL
46 INTEGER, DIMENSION(MVSIZ),INTENT (INOUT) :: IFC1
47 my_real, DIMENSION(MVSIZ), INTENT (IN) :: MARGE,
48 . XI, YI, ZI,STIF
49 DOUBLE PRECISION, DIMENSION(MVSIZ), INTENT (IN) ::
50 . x1, x2, x3,
51 . y1, y2, y3,
52 . z1, z2, z3
53C-----------------------------------------------
54C C o m m o n B l o c k s
55C-----------------------------------------------
56C-----------------------------------------------
57C L o c a l V a r i a b l e s
58C-----------------------------------------------
59 INTEGER I,J,K
60C 12
61 my_real
62 . RX, RY, RZ, SX, SY, SZ,NX,NY,NZ,BBB,
63 . UX,UY,UZ,TOL,PENE(MVSIZ),NORM
64C----------------------------
65 DO i=1,nel
66 IF (ifc1(i)>0) cycle
67 rx =x2(i)-x1(i)
68 ry =y2(i)-y1(i)
69 rz =z2(i)-z1(i)
70 sx =x3(i)-x1(i)
71 sy =y3(i)-y1(i)
72 sz =z3(i)-z1(i)
73 nx =ry*sz - rz*sy
74 ny =rz*sx - rx*sz
75 nz =rx*sy - ry*sx
76 norm=one/max(em20,sqrt(nx*nx+ny*ny+nz*nz))
77 bbb = ((x3(i)-xi(i))*nx + (y3(i)-yi(i))*ny +
78 . (z3(i)-zi(i))*nz)*norm
79 pene(i) = abs(bbb)
80 IF (pene(i)<marge(i).AND.stif(i)>zero) ifc1(i)=2
81 ENDDO
82C
83 RETURN
84 END
#define max(a, b)
Definition macros.h:21
subroutine sfor_n2stria2(xc, yc, zc, xc1, yc1, zc1, xc2, yc2, zc2, xc3, yc3, zc3, x1, x2, x3, y1, y2, y3, z1, z2, z3, for_t1, for_t2, for_t3, x4, x5, x6, y4, y5, y6, z4, z5, z6, for_t4, for_t5, for_t6, forc_n1, forc_n2, forc_n3, forc_n, stif, stif0, fqmax, ifctl, ll, penmin, penref, marge, vcx, vcy, vcz, vxc1, vyc1, vzc1, vxc2, vyc2, vzc2, vxc3, vyc3, vzc3, vx1, vx2, vx3, vy1, vy2, vy3, vz1, vz2, vz3, vx4, vx5, vx6, vy4, vy5, vy6, vz4, vz5, vz6, ifc1, nel, e_distor, dt1)
subroutine ssort_n3(xi, yi, zi, x1, x2, x3, y1, y2, y3, z1, z2, z3, marge, stif, ifc1, nel)
Definition ssort_n3.F:34