OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
shell_loc_cor.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!|| shell_loc_cor ../engine/source/tools/seatbelts/shell_loc_cor.F
25!||--- called by ------------------------------------------------------
26!|| update_slipring ../engine/source/tools/seatbelts/update_slipring.F
27!||--- calls -----------------------------------------------------
28!|| clskew3 ../engine/source/elements/sh3n/coquedk/cdkcoor3.F
29!||====================================================================
30 SUBROUTINE shell_loc_cor(X,IXC,J,XL2,YL2,XL3,YL3,XL4,YL4,IREP,NN1,NN2,N_DIR2)
31C-----------------------------------------------
32C I m p l i c i t T y p e s
33C-----------------------------------------------
34#include "implicit_f.inc"
35C-----------------------------------------------
36C C o m m o n B l o c k s
37C-----------------------------------------------
38#include "com04_c.inc"
39C-----------------------------------------------
40C D u m m y A r g u m e n t s
41C-----------------------------------------------
42 INTEGER, INTENT(IN) :: IXC(NIXC,NUMELC),J,IREP,NN1,NN2
43 my_real, INTENT(IN) :: x(3,numnod)
44 my_real, INTENT(INOUT) :: xl2,yl2,xl3,yl3,xl4,yl4,n_dir2(2)
45C-----------------------------------------------
46C L o c a l V a r i a b l e s
47C-----------------------------------------------
48 my_real
49 . rxl,ryl,rzl,sxl,syl,sszl,r11l,r12l,r13l,
50 . r21l,r22l,r23l,r31l,r32l,r33l,xx,yy,zz,offbl,deta1l
51C---------------------------------------------------------
52C
53C---------------------------------------------------------
54C Computation of new reference configuration
55C---------------------------------------------------------
56C
57 rxl=x(1,ixc(3,j))+x(1,ixc(4,j))-x(1,ixc(2,j))-x(1,ixc(5,j))
58 sxl=x(1,ixc(4,j))+x(1,ixc(5,j))-x(1,ixc(2,j))-x(1,ixc(3,j))
59 ryl=x(2,ixc(3,j))+x(2,ixc(4,j))-x(2,ixc(2,j))-x(2,ixc(5,j))
60 syl=x(2,ixc(4,j))+x(2,ixc(5,j))-x(2,ixc(2,j))-x(2,ixc(3,j))
61 rzl=x(3,ixc(3,j))+x(3,ixc(4,j))-x(3,ixc(2,j))-x(3,ixc(5,j))
62 sszl=x(3,ixc(4,j))+x(3,ixc(5,j))-x(3,ixc(2,j))-x(3,ixc(3,j))
63C
64 offbl = one
65 CALL clskew3(1,1,irep,
66 . rxl, ryl, rzl,
67 . sxl, syl, sszl,
68 . r11l,r12l,r13l,r21l,r22l,r23l,r31l,r32l,r33l,deta1l,offbl)
69C
70 xx=x(1,ixc(3,j))-x(1,ixc(2,j))
71 yy=x(2,ixc(3,j))-x(2,ixc(2,j))
72 zz=x(3,ixc(3,j))-x(3,ixc(2,j))
73 xl2=r11l*xx+r21l*yy+r31l*zz
74 yl2=r12l*xx+r22l*yy+r32l*zz
75 xx=x(1,ixc(4,j))-x(1,ixc(2,j))
76 yy=x(2,ixc(4,j))-x(2,ixc(2,j))
77 zz=x(3,ixc(4,j))-x(3,ixc(2,j))
78 xl3=r11l*xx+r21l*yy+r31l*zz
79 yl3=r12l*xx+r22l*yy+r32l*zz
80 xx=x(1,ixc(5,j))-x(1,ixc(2,j))
81 yy=x(2,ixc(5,j))-x(2,ixc(2,j))
82 zz=x(3,ixc(5,j))-x(3,ixc(2,j))
83 xl4=r11l*xx+r21l*yy+r31l*zz
84 yl4=r12l*xx+r22l*yy+r32l*zz
85C
86 IF ((nn1 > 0).AND.(nn2 > 0)) THEN
87 xx=x(1,nn2)-x(1,nn1)
88 yy=x(2,nn2)-x(2,nn1)
89 zz=x(3,nn2)-x(3,nn1)
90 n_dir2(1)=r11l*xx+r21l*yy+r31l*zz
91 n_dir2(2)=r12l*xx+r22l*yy+r32l*zz
92 ENDIF
93C
94 RETURN
95 END
subroutine clskew3(jft, jlt, irep, rx, ry, rz, sx, sy, sz, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z, det)
Definition clskew.F:34
#define my_real
Definition cppsort.cpp:32
subroutine shell_loc_cor(x, ixc, j, xl2, yl2, xl3, yl3, xl4, yl4, irep, nn1, nn2, n_dir2)