OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
r4coork3.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| r4coork3 ../engine/source/elements/spring/r4coork3.F
25!||--- called by ------------------------------------------------------
26!|| r13ke3 ../engine/source/elements/spring/r13ke3.F
27!||====================================================================
28 SUBROUTINE r4coork3(JFT ,JLT ,X ,NCC ,PID ,
29 2 NGL ,AL ,R11 ,R12 ,R13 ,
30 3 R21 ,R22 ,R23 ,R31 ,R32 ,
31 4 R33 ,RLOC ,OFFG ,OFF )
32C-----------------------------------------------
33C I m p l i c i t T y p e s
34C-----------------------------------------------
35#include "implicit_f.inc"
36C-----------------------------------------------
37C G l o b a l P a r a m e t e r s
38C-----------------------------------------------
39#include "mvsiz_p.inc"
40C-----------------------------------------------
41C C o m m o n B l o c k s
42C-----------------------------------------------
43#include "impl1_c.inc"
44#include "comlock.inc"
45#include "units_c.inc"
46#include "scr17_c.inc"
47C-----------------------------------------------
48C D u m m y A r g u m e n t s
49C-----------------------------------------------
50 INTEGER JFT, JLT
51 INTEGER NCC(NIXR,*),PID(*),NGL(*)
52C REAL
54 . x(3,*),al(*),
55 . r11(*),r12(*),r13(*),
56 . r21(*),r22(*),r23(*),
57 . r31(*),r32(*),r33(*),rloc(3,*),offg(*) ,off(*)
58C-----------------------------------------------
59C L o c a l V a r i a b l e s
60C-----------------------------------------------
61 INTEGER I, J,NC1(MVSIZ),NC2(MVSIZ)
62C REAL
63 my_real
64 . x1(mvsiz), x2(mvsiz),y1(mvsiz), y2(mvsiz),
65 . z1(mvsiz), z2(mvsiz), norm
66C-----------------------------------------------
67C
68 DO i=jft, jlt
69 pid(i)=ncc(1,i)
70 ngl(i)=ncc(5,i)
71 nc1(i)=ncc(2,i)
72 nc2(i)=ncc(3,i)
73 ENDDO
74C----------------------------
75C COORDONNEES
76C----------------------------
77 DO i=jft, jlt
78 x1(i)=x(1,nc1(i))
79 y1(i)=x(2,nc1(i))
80 z1(i)=x(3,nc1(i))
81 x2(i)=x(1,nc2(i))
82 y2(i)=x(2,nc2(i))
83 z2(i)=x(3,nc2(i))
84 ENDDO
85C----------------------------
86C LOCAL SYSTEM
87C----------------------------
88 DO i=jft, jlt
89 r12(i)=rloc(1,i)
90 r22(i)=rloc(2,i)
91 r32(i)=rloc(3,i)
92 r11(i)=x2(i)-x1(i)
93 r21(i)=y2(i)-y1(i)
94 r31(i)=z2(i)-z1(i)
95 al(i)=sqrt(r11(i)*r11(i)+r21(i)*r21(i)+r31(i)*r31(i))
96 ENDDO
97C
98 DO i=jft, jlt
99 norm=one/max(em20,al(i))
100 r11(i)=r11(i)*norm
101 r21(i)=r21(i)*norm
102 r31(i)=r31(i)*norm
103 ENDDO
104 DO i=jft, jlt
105 r13(i)=r21(i)*r32(i)-r31(i)*r22(i)
106 r23(i)=r31(i)*r12(i)-r11(i)*r32(i)
107 r33(i)=r11(i)*r22(i)-r21(i)*r12(i)
108 ENDDO
109C
110 DO i=jft, jlt
111 norm=sqrt(r13(i)*r13(i)+r23(i)*r23(i)+r33(i)*r33(i))
112 norm=one/max(em20,norm)
113 r13(i)=r13(i)*norm
114 r23(i)=r23(i)*norm
115 r33(i)=r33(i)*norm
116 ENDDO
117 DO i=jft, jlt
118 r12(i)=r23(i)*r31(i)-r33(i)*r21(i)
119 r22(i)=r33(i)*r11(i)-r13(i)*r31(i)
120 r32(i)=r13(i)*r21(i)-r23(i)*r11(i)
121 ENDDO
122 DO i=jft,jlt
123 off(i)=offg(i)
124 ENDDO
125 IF (imp_chk > 0) THEN
126 DO i=jft,jlt
127 IF(offg(i)/=zero)THEN
128 IF(al(i)<=em20)THEN
129#include "lockon.inc"
130 WRITE(iout ,2001) ngl(i)
131#include "lockoff.inc"
132 idel7nok = 1
133 imp_ir = imp_ir + 1
134 ENDIF
135 ENDIF
136 ENDDO
137 ENDIF
138C
139 RETURN
140 2001 FORMAT(/'***ERROR :SPRING TYPE13 ZERO-LENGTH : ELEMENT NB:',
141 . i8/)
142 END
#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
subroutine r4coork3(jft, jlt, x, ncc, pid, ngl, al, r11, r12, r13, r21, r22, r23, r31, r32, r33, rloc, offg, off)
Definition r4coork3.F:32