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

Go to the source code of this file.

Functions/Subroutines

subroutine i8dis3 (igimp, nty, dist, x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4, xi, yi, zi, xp, yp, zp, n1, n2, n3, ans, ssc, ttc, h1, h2, h3, h4, xface, alp, lft, llt)

Function/Subroutine Documentation

◆ i8dis3()

subroutine i8dis3 ( integer igimp,
integer nty,
dist,
x1,
y1,
z1,
x2,
y2,
z2,
x3,
y3,
z3,
x4,
y4,
z4,
xi,
yi,
zi,
xp,
yp,
zp,
n1,
n2,
n3,
ans,
ssc,
ttc,
h1,
h2,
h3,
h4,
xface,
alp,
integer, intent(inout) lft,
integer, intent(inout) llt )

Definition at line 28 of file i8dis3.F.

38
39C-----------------------------------------------
40C I m p l i c i t T y p e s
41C-----------------------------------------------
42#include "implicit_f.inc"
43C-----------------------------------------------
44C D u m m y A r g u m e n t s
45C-----------------------------------------------
46 INTEGER, INTENT(INOUT) :: LFT
47 INTEGER, INTENT(INOUT) :: LLT
48 INTEGER IGIMP,NTY
49 my_real dist(*)
51 . x1(*), x2(*), x3(*), x4(*), y1(*), y2(*), y3(*), y4(*),
52 . z1(*), z2(*), z3(*), z4(*), xi(*), yi(*), zi(*), xp(*), yp(*),
53 . zp(*), ans(*), alp(*), n1(*), n2(*), n3(*), ssc(*), ttc(*),
54 . xface(*), h1(*), h2(*), h3(*), h4(*)
55
56C-----------------------------------------------
57C C o m m o n B l o c k s
58C-----------------------------------------------
59C-----------------------------------------------
60C L o c a l V a r i a b l e s
61C-----------------------------------------------
62 INTEGER I
63C REAL
64C-----------------------------------------------
65C=======================================================================
66 DO i=lft,llt
67 h1(i) = zero
68 h2(i) = zero
69 h3(i) = zero
70 h4(i) = zero
71 xp(i) = zero
72 yp(i) = zero
73 zp(i) = zero
74 ans(i) = zero
75 dist(i) = zero
76
77
78 IF (xface(i) == zero) cycle
79 IF (abs(ssc(i))>one+alp(i) .OR. abs(ttc(i))>one+alp(i)) THEN
80 xface(i)=zero
81 ELSE
82 IF(abs(ssc(i)) > one) ssc(i)=ssc(i)/abs(ssc(i))
83 IF(abs(ttc(i)) > one) ttc(i)=ttc(i)/abs(ttc(i))
84 ENDIF
85 END DO
86C
87 DO i=lft,llt
88 h1(i) = fourth*(one-ttc(i))*(one-ssc(i))
89 h2(i) = fourth*(one-ttc(i))*(one+ssc(i))
90 h3(i) = fourth*(one+ttc(i))*(one+ssc(i))
91 h4(i) = fourth*(one+ttc(i))*(one-ssc(i))
92 END DO
93C
94 DO i=lft,llt
95 xp(i)=h1(i)*x1(i)+h2(i)*x2(i)+h3(i)*x3(i)+h4(i)*x4(i)
96 yp(i)=h1(i)*y1(i)+h2(i)*y2(i)+h3(i)*y3(i)+h4(i)*y4(i)
97 zp(i)=h1(i)*z1(i)+h2(i)*z2(i)+h3(i)*z3(i)+h4(i)*z4(i)
98 END DO
99C
100 DO i=lft,llt
101 ans(i)= n1(i)*(xi(i)-xp(i))
102 . +n2(i)*(yi(i)-yp(i))
103 . +n3(i)*(zi(i)-zp(i))
104 END DO
105 IF (nty == 8) THEN
106 DO i=lft,llt
107 dist(i) = ans(i)
108 ENDDO
109 ENDIF
110C-----------
111 RETURN
#define my_real
Definition cppsort.cpp:32