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

Go to the source code of this file.

Functions/Subroutines

subroutine i7pen3 (marge, gapv, n1, n2, n3, pene, nx1, ny1, nz1, nx2, ny2, nz2, nx3, ny3, nz3, nx4, ny4, nz4, p1, p2, p3, p4, last)

Function/Subroutine Documentation

◆ i7pen3()

subroutine i7pen3 ( marge,
gapv,
intent(inout) n1,
intent(inout) n2,
intent(inout) n3,
intent(inout) pene,
intent(inout) nx1,
intent(inout) ny1,
intent(inout) nz1,
intent(inout) nx2,
intent(inout) ny2,
intent(inout) nz2,
intent(inout) nx3,
intent(inout) ny3,
intent(inout) nz3,
intent(inout) nx4,
intent(inout) ny4,
intent(inout) nz4,
intent(inout) p1,
intent(inout) p2,
intent(inout) p3,
intent(inout) p4,
integer, intent(in) last )
Parameters
[in]lastlast candidat

Definition at line 38 of file i7pen3.F.

43C-----------------------------------------------
44C I m p l i c i t T y p e s
45C-----------------------------------------------
46#include "implicit_f.inc"
47C-----------------------------------------------
48C G l o b a l P a r a m e t e r s
49C-----------------------------------------------
50#include "mvsiz_p.inc"
51C-----------------------------------------------
52C D u m m y A r g u m e n t s
53C-----------------------------------------------
54 INTEGER, INTENT(IN) :: LAST !< last candidat
55C REAL
57 . marge, gapv(*)
58 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: n1,n2,n3,pene
59 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: nx1,ny1,nz1
60 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: nx2,ny2,nz2
61 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: nx3,ny3,nz3
62 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: nx4,ny4,nz4
63 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: p1,p2,p3,p4
64C-----------------------------------------------
65C L o c a l V a r i a b l e s
66C-----------------------------------------------
67 INTEGER I
68C REAL
70 . d1,d2,d3,d4,s2
71C-----------------------------------------------
72 DO i=1,last
73 d1 = sqrt(p1(i))
74 p1(i) = max(zero, gapv(i) + marge - d1)
75C
76 d2 = sqrt(p2(i))
77 p2(i) = max(zero, gapv(i) + marge - d2)
78C
79 d3 = sqrt(p3(i))
80 p3(i) = max(zero, gapv(i) + marge - d3)
81C
82 d4 = sqrt(p4(i))
83 p4(i) = max(zero, gapv(i) + marge - d4)
84 ENDDO
85C
86 DO i=1,last
87 pene(i) = max(p1(i),p2(i),p3(i),p4(i))
88 if(p1(i)==pene(i))then
89 n1(i) = nx1(i)
90 n2(i) = ny1(i)
91 n3(i) = nz1(i)
92 elseif(p2(i)==pene(i))then
93 n1(i) = nx2(i)
94 n2(i) = ny2(i)
95 n3(i) = nz2(i)
96 elseif(p3(i)==pene(i))then
97 n1(i) = nx3(i)
98 n2(i) = ny3(i)
99 n3(i) = nz3(i)
100 elseif(p4(i)==pene(i))then
101 n1(i) = nx4(i)
102 n2(i) = ny4(i)
103 n3(i) = nz4(i)
104 endif
105 ENDDO
106 DO i=1,last
107 s2 = one/max(em30,sqrt(n1(i)**2 + n2(i)**2 + n3(i)**2))
108 n1(i) = n1(i)*s2
109 n2(i) = n2(i)*s2
110 n3(i) = n3(i)*s2
111 ENDDO
112C
113 RETURN
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21