OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
ssort_n4.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "vectorize.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine ssort_n4 (xi, yi, zi, marge, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, ifc1, stif, nel)

Function/Subroutine Documentation

◆ ssort_n4()

subroutine ssort_n4 ( intent(in) xi,
intent(in) yi,
intent(in) zi,
intent(in) marge,
intent(in) x1,
intent(in) x2,
intent(in) x3,
intent(in) x4,
intent(in) y1,
intent(in) y2,
intent(in) y3,
intent(in) y4,
intent(in) z1,
intent(in) z2,
intent(in) z3,
intent(in) z4,
integer, dimension(mvsiz), intent(inout) ifc1,
intent(in) stif,
integer, intent(in) nel )

Definition at line 28 of file ssort_n4.F.

33C-----------------------------------------------
34C I m p l i c i t T y p e s
35C-----------------------------------------------
36#include "implicit_f.inc"
37C-----------------------------------------------
38C G l o b a l P a r a m e t e r s
39C-----------------------------------------------
40#include "mvsiz_p.inc"
41C-----------------------------------------------
42C D u m m y A r g u m e n t s
43C-----------------------------------------------
44 INTEGER, INTENT (IN) :: NEL
45 INTEGER, DIMENSION(MVSIZ),INTENT (INOUT) :: IFC1
46 my_real, DIMENSION(MVSIZ), INTENT (IN) :: marge,
47 . xi, yi, zi,stif,
48 . x1, x2, x3, x4,
49 . y1, y2, y3, y4,
50 . z1, z2, z3, z4
51C-----------------------------------------------
52C C o m m o n B l o c k s
53C-----------------------------------------------
54C-----------------------------------------------
55C L o c a l V a r i a b l e s
56C-----------------------------------------------
57 INTEGER I,J,K
58C 12
60 . rx, ry, rz, sx, sy, sz,nx,ny,nz,bbb,
61 . dx,dy,dz,dd,pene(mvsiz),norm,dmin,dmin1
62C----------------------------
63 DO i=1,nel
64 IF (ifc1(i)>0) cycle
65 rx =x2(i)+x3(i)-x1(i)-x4(i)
66 ry =y2(i)+y3(i)-y1(i)-y4(i)
67 rz =z2(i)+z3(i)-z1(i)-z4(i)
68 sx =x3(i)+x4(i)-x1(i)-x2(i)
69 sy =y3(i)+y4(i)-y1(i)-y2(i)
70 sz =z3(i)+z4(i)-z1(i)-z2(i)
71 nx =ry*sz - rz*sy
72 ny =rz*sx - rx*sz
73 nz =rx*sy - ry*sx
74 norm=one/max(em20,sqrt(nx*nx+ny*ny+nz*nz))
75 bbb = ((x3(i)-xi(i))*nx + (y3(i)-yi(i))*ny +
76 . (z3(i)-zi(i))*nz)*norm
77 pene(i) = abs(bbb)
78 IF (pene(i)<marge(i).AND.stif(i)>zero) ifc1(i)=2
79 ENDDO
80C-------if degenerated quad not possible have 1=3 or 2=4
81#include "vectorize.inc"
82 DO i=1,nel
83 IF (ifc1(i)==0) cycle
84 dx =x4(i)-x3(i)
85 dy =y4(i)-y3(i)
86 dz =z4(i)-z3(i)
87 dmin = abs(dx)+abs(dy)+abs(dz)
88 IF (dmin==zero) THEN
89 ifc1(i)=3
90 dx =x2(i)-x1(i)
91 dy =y2(i)-y1(i)
92 dz =z2(i)-z1(i)
93 dmin1 = abs(dx)+abs(dy)+abs(dz)
94 IF (dmin1==zero) ifc1(i)=0
95 cycle
96 END IF
97 dx =x2(i)-x1(i)
98 dy =y2(i)-y1(i)
99 dz =z2(i)-z1(i)
100 dmin = abs(dx)+abs(dy)+abs(dz)
101 IF (dmin==zero) THEN
102 ifc1(i)=6
103 cycle
104 END IF
105 dx =x4(i)-x1(i)
106 dy =y4(i)-y1(i)
107 dz =z4(i)-z1(i)
108 dmin = abs(dx)+abs(dy)+abs(dz)
109 IF (dmin==zero) THEN
110 ifc1(i)=4
111 dx =x3(i)-x2(i)
112 dy =y3(i)-y2(i)
113 dz =z3(i)-z2(i)
114 dmin1 = abs(dx)+abs(dy)+abs(dz)
115 IF (dmin1==zero) ifc1(i)=0
116 cycle
117 END IF
118 dx =x3(i)-x2(i)
119 dy =y3(i)-y2(i)
120 dz =z3(i)-z2(i)
121 dmin = abs(dx)+abs(dy)+abs(dz)
122 IF (dmin==zero) THEN
123 ifc1(i)=5
124 cycle
125 END IF
126 ENDDO
127C
128 RETURN
#define my_real
Definition cppsort.cpp:32
norm(diag(diag(diag(inv(mat))) -id.SOL), 2) % destroy mumps instance id.JOB
#define max(a, b)
Definition macros.h:21