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

Go to the source code of this file.

Functions/Subroutines

subroutine i2curv_rep (inod, x, v, ls1, ls2, lt1, lt2, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z)

Function/Subroutine Documentation

◆ i2curv_rep()

subroutine i2curv_rep ( integer, dimension(4) inod,
x,
v,
ls1,
ls2,
lt1,
lt2,
e1x,
e1y,
e1z,
e2x,
e2y,
e2z,
e3x,
e3y,
e3z )

Definition at line 30 of file i2curv_rep.F.

35C-----------------------------------------------
36C I m p l i c i t T y p e s
37C-----------------------------------------------
38#include "implicit_f.inc"
39C-----------------------------------------------
40C D u m m y A r g u m e n t s
41C-----------------------------------------------
42 INTEGER INOD(4)
43C REAL
45 . x(3,*),v(3,*)
47 . e1x,e1y,e1z,e2x,e2y,e2z,e3x,e3y,e3z,
48 . ls1,ls2,lt1,lt2
49C-----------------------------------------------
50C C o m m o n B l o c k s
51C-----------------------------------------------
52#include "com08_c.inc"
53C-----------------------------------------------
54C L o c a l V a r i a b l e s
55C-----------------------------------------------
56 INTEGER J, JJ, NIR
57C REAL
59 . x21,x32,x34,x41,y21,y32,y34,y41,z21,z32,z34,z41,
60 . tp22223333,suma,s1,s2
62 . xm(4),ym(4),zm(4)
63C=======================================================================
64 nir=4
65 IF (inod(3) == inod(4)) THEN
66 nir=3
67 xm(4)=zero
68 ym(4)=zero
69 zm(4)=zero
70 ENDIF
71 DO jj=1,nir
72 j=inod(jj)
73 xm(jj)=x(1,j)+ v(1,j)*dt12*half
74 ym(jj)=x(2,j)+ v(2,j)*dt12*half
75 zm(jj)=x(3,j)+ v(3,j)*dt12*half
76 ENDDO
77C-----local frame main
78 x21 = xm(2) - xm(1)
79 x32 = xm(3) - xm(2)
80 x34 = xm(3) - xm(4)
81 x41 = xm(4) - xm(1)
82 y21 = ym(2) - ym(1)
83 y32 = ym(3) - ym(2)
84 y34 = ym(3) - ym(4)
85 y41 = ym(4) - ym(1)
86 z21 = zm(2) - zm(1)
87 z32 = zm(3) - zm(2)
88 z34 = zm(3) - zm(4)
89 z41 = zm(4) - zm(1)
90
91 e1x = (x21+x34 )
92 e1y = (y21+y34 )
93 e1z = (z21+z34 )
94
95 e2x = (x32+x41 )
96 e2y = (y32+y41 )
97 e2z = (z32+z41 )
98
99 e3x = e1y*e2z-e1z*e2y
100 e3y = e1z*e2x-e1x*e2z
101 e3z = e1x*e2y-e1y*e2x
102C
103 suma = e3x*e3x+e3y*e3y+e3z*e3z
104 suma = one / max(sqrt(suma),em20)
105 e3x = e3x * suma
106 e3y = e3y * suma
107 e3z = e3z * suma
108C
109 s1 = e1x*e1x+e1y*e1y+e1z*e1z
110 s2 = e2x*e2x+e2y*e2y+e2z*e2z
111 suma = sqrt(s1/s2)
112 e1x = e1x + (e2y*e3z-e2z*e3y)*suma
113 e1y = e1y + (e2z*e3x-e2x*e3z)*suma
114 e1z = e1z + (e2x*e3y-e2y*e3x)*suma
115C
116 suma = e1x*e1x+e1y*e1y+e1z*e1z
117 suma = one / max(sqrt(suma),em20)
118 e1x = e1x * suma
119 e1y = e1y * suma
120 e1z = e1z * suma
121C
122 e2x = e3y * e1z - e3z * e1y
123 e2y = e3z * e1x - e3x * e1z
124 e2z = e3x * e1y - e3y * e1x
125C----- longueurs
126 ls1 = sqrt(x21**2 + y21**2 + z21**2)
127 ls2 = sqrt(x34**2 + y34**2 + z34**2)
128 lt1 = sqrt(x41**2 + y41**2 + z41**2)
129 lt2 = sqrt(x32**2 + y32**2 + z32**2)
130C-----------
131 RETURN
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21