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 30 of file r3coork3.F.

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