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

Go to the source code of this file.

Functions/Subroutines

subroutine sortho3 (rx, ry, rz, sx, sy, sz, tx, ty, tz, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z)

Function/Subroutine Documentation

◆ sortho3()

subroutine sortho3 ( rx,
ry,
rz,
sx,
sy,
sz,
tx,
ty,
tz,
e1x,
e1y,
e1z,
e2x,
e2y,
e2z,
e3x,
e3y,
e3z )

Definition at line 30 of file sortho3.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-----------------------------------------------
44C REAL
46 . rx(*), ry(*), rz(*),
47 . sx(*), sy(*), sz(*),
48 . tx(*), ty(*), tz(*),
49 . e1x(*), e1y(*), e1z(*),
50 . e2x(*), e2y(*), e2z(*),
51 . e3x(*), e3y(*), e3z(*)
52C-----------------------------------------------
53C C o m m o n B l o c k s
54C-----------------------------------------------
55#include "vect01_c.inc"
56C-----------------------------------------------
57C L o c a l V a r i a b l e s
58C-----------------------------------------------
59 INTEGER I,N,NITER
60C REAL
62 . ux(mvsiz),uy(mvsiz),uz(mvsiz),
63 . vx(mvsiz),vy(mvsiz),vz(mvsiz),
64 . wx(mvsiz),wy(mvsiz),wz(mvsiz)
66 . aa,bb
67 DATA niter/3/
68c~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69 DO i=lft,llt
70 ux(i)=rx(i)
71 uy(i)=ry(i)
72 uz(i)=rz(i)
73 vx(i)=sx(i)
74 vy(i)=sy(i)
75 vz(i)=sz(i)
76 wx(i)=tx(i)
77 wy(i)=ty(i)
78 wz(i)=tz(i)
79 ENDDO
80c~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
81c norme r s t
82c~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
83 DO 50 i=lft,llt
84 aa = sqrt(ux(i)*ux(i) + uy(i)*uy(i) + uz(i)*uz(i))
85 if ( aa/=zero) aa = one/ aa
86 ux(i) = ux(i) * aa
87 uy(i) = uy(i) * aa
88 uz(i) = uz(i) * aa
89 aa = sqrt(vx(i)*vx(i) + vy(i)*vy(i) + vz(i)*vz(i))
90 if ( aa/=zero) aa = one / aa
91 vx(i) = vx(i) * aa
92 vy(i) = vy(i) * aa
93 vz(i) = vz(i) * aa
94 aa = sqrt(wx(i)*wx(i) + wy(i)*wy(i) + wz(i)*wz(i))
95 if ( aa/=zero) aa = one / aa
96 wx(i) = wx(i) * aa
97 wy(i) = wy(i) * aa
98 wz(i) = wz(i) * aa
99 50 CONTINUE
100c~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
101c iterations
102c~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
103 n=0
104111 CONTINUE
105 n=n+1
106c~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
107 DO 100 i=lft,llt
108 e1x(i) = vy(i) * wz(i) - vz(i) * wy(i) + ux(i)
109 e1y(i) = vz(i) * wx(i) - vx(i) * wz(i) + uy(i)
110 e1z(i) = vx(i) * wy(i) - vy(i) * wx(i) + uz(i)
111c
112 e2x(i) = wy(i) * uz(i) - wz(i) * uy(i) + vx(i)
113 e2y(i) = wz(i) * ux(i) - wx(i) * uz(i) + vy(i)
114 e2z(i) = wx(i) * uy(i) - wy(i) * ux(i) + vz(i)
115c
116 e3x(i) = uy(i) * vz(i) - uz(i) * vy(i) + wx(i)
117 e3y(i) = uz(i) * vx(i) - ux(i) * vz(i) + wy(i)
118 e3z(i) = ux(i) * vy(i) - uy(i) * vx(i) + wz(i)
119c
120 bb = sqrt(e1x(i)*e1x(i) + e1y(i)*e1y(i) + e1z(i)*e1z(i))
121 if ( bb/=zero) bb = one / bb
122 ux(i) = e1x(i) * bb
123 uy(i) = e1y(i) * bb
124 uz(i) = e1z(i) * bb
125c
126 bb = sqrt(e2x(i)*e2x(i) + e2y(i)*e2y(i) + e2z(i)*e2z(i))
127 if ( bb/=zero) bb = one / bb
128 vx(i) = e2x(i) * bb
129 vy(i) = e2y(i) * bb
130 vz(i) = e2z(i) * bb
131c
132 bb = sqrt(e3x(i)*e3x(i) + e3y(i)*e3y(i) + e3z(i)*e3z(i))
133 if ( bb/=zero) bb = one / bb
134 wx(i) = e3x(i) * bb
135 wy(i) = e3y(i) * bb
136 wz(i) = e3z(i) * bb
137c
138 100 CONTINUE
139 IF (n<niter) GOTO 111
140c norme et orthogonalisation
141c~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
142 DO 200 i=lft,llt
143 e1x(i) = ux(i)
144 e1y(i) = uy(i)
145 e1z(i) = uz(i)
146c
147 e3x(i) = e1y(i) * vz(i) - e1z(i) * vy(i)
148 e3y(i) = e1z(i) * vx(i) - e1x(i) * vz(i)
149 e3z(i) = e1x(i) * vy(i) - e1y(i) * vx(i)
150c
151 aa = sqrt(e3x(i)*e3x(i) + e3y(i)*e3y(i) + e3z(i)*e3z(i))
152 if ( aa/=zero) aa = one / aa
153 e3x(i) = e3x(i) * aa
154 e3y(i) = e3y(i) * aa
155 e3z(i) = e3z(i) * aa
156c
157 e2x(i) = e3y(i) * e1z(i) - e3z(i) * e1y(i)
158 e2y(i) = e3z(i) * e1x(i) - e3x(i) * e1z(i)
159 e2z(i) = e3x(i) * e1y(i) - e3y(i) * e1x(i)
160 200 CONTINUE
161c~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
162 RETURN
#define my_real
Definition cppsort.cpp:32