OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
r3coork3.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "impl1_c.inc"
#include "comlock.inc"
#include "units_c.inc"
#include "scr17_c.inc"
#include "lockon.inc"
#include "lockoff.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine r3coork3 (jft, jlt, x, ncc, pid, ngl, r11, r21, r31, r12, r22, r32, beta, offg, off)

Function/Subroutine Documentation

◆ r3coork3()

subroutine r3coork3 ( integer jft,
integer jlt,
x,
integer, dimension(nixr,*) ncc,
integer, dimension(*) pid,
integer, dimension(*) ngl,
r11,
r21,
r31,
r12,
r22,
r32,
beta,
offg,
off )

Definition at line 28 of file r3coork3.F.

31C-----------------------------------------------
32C I m p l i c i t T y p e s
33C-----------------------------------------------
34#include "implicit_f.inc"
35C-----------------------------------------------
36C G l o b a l P a r a m e t e r s
37C-----------------------------------------------
38#include "mvsiz_p.inc"
39C-----------------------------------------------
40C C o m m o n B l o c k s
41C-----------------------------------------------
42#include "impl1_c.inc"
43#include "comlock.inc"
44#include "units_c.inc"
45#include "scr17_c.inc"
46C-----------------------------------------------
47C D u m m y A r g u m e n t s
48C-----------------------------------------------
49 INTEGER JFT, JLT
50 INTEGER NCC(NIXR,*),PID(*),NGL(*)
51C REAL
53 . x(3,*),beta(*),offg(*),off(*),
54 . r11(*),r21(*),r31(*),r12(*),r22(*),r32(*)
55C-----------------------------------------------
56C L o c a l V a r i a b l e s
57C-----------------------------------------------
58 INTEGER I, J,NC1(MVSIZ),NC2(MVSIZ),NC3(MVSIZ)
59C REAL
61 . x1(mvsiz), x2(mvsiz),x3(mvsiz),y1(mvsiz), y2(mvsiz),
62 . y3(mvsiz),z1(mvsiz), z2(mvsiz),z3(mvsiz),
63 . al1(mvsiz),al2(mvsiz),norm
64C-----------------------------------------------
65C
66 DO i=jft, jlt
67 pid(i)=ncc(1,i)
68 ngl(i)=ncc(5,i)
69 nc1(i)=ncc(2,i)
70 nc2(i)=ncc(3,i)
71 nc3(i)=ncc(4,i)
72 ENDDO
73C----------------------------
74C COORDONNEES
75C----------------------------
76 DO i=jft, jlt
77 x1(i)=x(1,nc1(i))
78 y1(i)=x(2,nc1(i))
79 z1(i)=x(3,nc1(i))
80 x2(i)=x(1,nc2(i))
81 y2(i)=x(2,nc2(i))
82 z2(i)=x(3,nc2(i))
83 x3(i)=x(1,nc3(i))
84 y3(i)=x(2,nc3(i))
85 z3(i)=x(3,nc3(i))
86 ENDDO
87C----------------------------
88C LOCAL SYSTEM
89C----------------------------
90 DO i=jft, jlt
91 r11(i)=one
92 r21(i)=zero
93 r31(i)=zero
94 r12(i)=one
95 r22(i)=zero
96 r32(i)=zero
97 ENDDO
98C
99 DO i=jft, jlt
100 r11(i)=x2(i)-x1(i)
101 r21(i)=y2(i)-y1(i)
102 r31(i)=z2(i)-z1(i)
103 al1(i)=sqrt(r11(i)*r11(i)+r21(i)*r21(i)+r31(i)*r31(i))
104 al1(i)=max(em15,al1(i))
105 ENDDO
106C
107 DO i=jft, jlt
108 IF (al1(i)>em15) THEN
109 norm=one/al1(i)
110 r11(i)=r11(i)*norm
111 r21(i)=r21(i)*norm
112 r31(i)=r31(i)*norm
113 ENDIF
114 ENDDO
115C
116 DO i=jft, jlt
117 r12(i)=x2(i)-x3(i)
118 r22(i)=y2(i)-y3(i)
119 r32(i)=z2(i)-z3(i)
120 al2(i)=sqrt(r12(i)*r12(i)+r22(i)*r22(i)+r32(i)*r32(i))
121 al2(i)=max(em15,al2(i))
122 ENDDO
123C
124 DO i=jft, jlt
125 IF (al2(i)>em15) THEN
126 norm=one/al2(i)
127 r12(i)=r12(i)*norm
128 r22(i)=r22(i)*norm
129 r32(i)=r32(i)*norm
130 ENDIF
131 ENDDO
132 IF (imp_chk > 0) THEN
133 DO i=jft,jlt
134 IF(offg(i)/=zero)THEN
135 IF(al1(i)<=em15)THEN
136#include "lockon.inc"
137 WRITE(iout ,2001) ngl(i)
138#include "lockoff.inc"
139 idel7nok = 1
140 imp_iw = imp_iw + 1
141 ENDIF
142 IF(al2(i)<=em15)THEN
143#include "lockon.inc"
144 WRITE(iout ,2002) ngl(i)
145#include "lockoff.inc"
146 idel7nok = 1
147 imp_iw = imp_iw + 1
148 ENDIF
149 ENDIF
150 ENDDO
151 ENDIF
152C
153 DO i=jft, jlt
154 beta(i) = pi - acos(r11(i)*r12(i)+r21(i)*r22(i)+r31(i)*r32(i))
155 ENDDO
156C
157 DO i=jft,jlt
158 off(i)=offg(i)
159 ENDDO
160C
161 RETURN
162 2001 FORMAT(/'***WARNING :SPRING TYPE12 ZERO-LENGTH N1N2: ELE. NB:',
163 . i8/)
164 2002 FORMAT(/'***WARNING :SPRING TYPE12 ZERO-LENGTH N2N3: ELE. NB:',
165 . i8/)
#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