OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
c3coor3_crk.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!|| c3coor3_crk ../engine/source/elements/xfem/c3coor3_crk.F
25!||--- called by ------------------------------------------------------
26!|| c3forc3_crk ../engine/source/elements/xfem/c3forc3_crk.F
27!||--- uses -----------------------------------------------------
28!|| crackxfem_mod ../engine/share/modules/crackxfem_mod.F
29!||====================================================================
30 SUBROUTINE c3coor3_crk(JFT ,JLT ,OFFG ,OFF ,SIGY ,
31 . DT1C ,THKE ,VL1 ,VL2 ,VL3 ,
32 . VRL1 ,VRL2 ,VRL3 ,X1 ,X2 ,
33 . X3 ,Y1 ,Y2 ,Y3 ,Z1 ,
34 . Z2 ,Z3 ,ILEV ,IEL_CRK,IADC_CRK,
35 . NFT )
36C-----------------------------------------------
38C-----------------------------------------------
39C I m p l i c i t T y p e s
40C-----------------------------------------------
41#include "implicit_f.inc"
42C-----------------------------------------------
43C G l o b a l P a r a m e t e r s
44C-----------------------------------------------
45#include "mvsiz_p.inc"
46C-----------------------------------------------
47C C o m m o n B l o c k s
48C-----------------------------------------------
49#include "com08_c.inc"
50#include "com_xfem1.inc"
51C-----------------------------------------------
52C D u m m y A r g u m e n t s
53C-----------------------------------------------
54 INTEGER JFT, JLT
55 INTEGER ILEV,IEL_CRK(*),IADC_CRK(3,*),NFT
56 my_real OFFG(*), OFF(*),DT1C(*),THKE(*),
57 . VL1(MVSIZ,3),VL2(MVSIZ,3),VL3(MVSIZ,3),
58 . VRL1(MVSIZ,3),VRL2(MVSIZ,3),VRL3(MVSIZ,3),SIGY(*)
59! SP issue :
60 REAL(kind=8), dimension(mvsiz), INTENT(out) ::x1,x2,x3
61 REAL(kind=8), dimension(mvsiz), INTENT(out) ::y1,y2,y3
62 REAL(kind=8), dimension(mvsiz), INTENT(out) ::z1,z2,z3
63C-----------------------------------------------
64C L o c a l V a r i a b l e s
65C-----------------------------------------------
66 INTEGER I,J,NC1,NC2,NC3,ELCRK,ELCRK0,IADC1,IADC2,IADC3
67 my_real off_l
68C=======================================================================
69C get elem from activ level: (superposed element)
70C-----------------------------------------------
71 DO i=jft,jlt
72 elcrk0 = iel_crk(i+nft)
73 elcrk = elcrk0 + ecrkxfec
74 iadc1 = iadc_crk(1,elcrk0)
75 iadc2 = iadc_crk(2,elcrk0)
76 iadc3 = iadc_crk(3,elcrk0)
77C--------------
78C COORDINATES:
79C--------------
80C node 1:
81 x1(i) = crkavx(ilev)%X(1,iadc1)
82 y1(i) = crkavx(ilev)%X(2,iadc1)
83 z1(i) = crkavx(ilev)%X(3,iadc1)
84C node 2:
85 x2(i) = crkavx(ilev)%X(1,iadc2)
86 y2(i) = crkavx(ilev)%X(2,iadc2)
87 z2(i) = crkavx(ilev)%X(3,iadc2)
88C node 3:
89 x3(i) = crkavx(ilev)%X(1,iadc3)
90 y3(i) = crkavx(ilev)%X(2,iadc3)
91 z3(i) = crkavx(ilev)%X(3,iadc3)
92C--------------
93C--------------
94C VELOCITIES :
95C--------------
96C node 1:
97 vl1(i,1) = crkavx(ilev)%V(1,iadc1)
98 vl1(i,2) = crkavx(ilev)%V(2,iadc1)
99 vl1(i,3) = crkavx(ilev)%V(3,iadc1)
100 vrl1(i,1) = crkavx(ilev)%VR(1,iadc1)
101 vrl1(i,2) = crkavx(ilev)%VR(2,iadc1)
102 vrl1(i,3) = crkavx(ilev)%VR(3,iadc1)
103C node 2:
104 vl2(i,1) = crkavx(ilev)%V(1,iadc2)
105 vl2(i,2) = crkavx(ilev)%V(2,iadc2)
106 vl2(i,3) = crkavx(ilev)%V(3,iadc2)
107 vrl2(i,1) = crkavx(ilev)%VR(1,iadc2)
108 vrl2(i,2) = crkavx(ilev)%VR(2,iadc2)
109 vrl2(i,3) = crkavx(ilev)%VR(3,iadc2)
110C node 3:
111 vl3(i,1) = crkavx(ilev)%V(1,iadc3)
112 vl3(i,2) = crkavx(ilev)%V(2,iadc3)
113 vl3(i,3) = crkavx(ilev)%V(3,iadc3)
114 vrl3(i,1) = crkavx(ilev)%VR(1,iadc3)
115 vrl3(i,2) = crkavx(ilev)%VR(2,iadc3)
116 vrl3(i,3) = crkavx(ilev)%VR(3,iadc3)
117 END DO
118C-----------------------------------------------
119 off_l = zero
120 DO 40 i=jft,jlt
121 dt1c(i) = dt1
122 off(i) = min(one,abs(offg(i)))
123 off_l = min(off_l,offg(i))
124 sigy(i) = ep30
125 40 CONTINUE
126C---
127 IF(off_l<zero)THEN
128 DO i=jft,jlt
129 IF(offg(i)<zero)THEN
130 vl1(i,1)=zero
131 vl1(i,2)=zero
132 vl1(i,3)=zero
133 vl2(i,1)=zero
134 vl2(i,2)=zero
135 vl2(i,3)=zero
136 vl3(i,1)=zero
137 vl3(i,2)=zero
138 vl3(i,3)=zero
139 vrl1(i,1)=zero
140 vrl1(i,2)=zero
141 vrl1(i,3)=zero
142 vrl2(i,1)=zero
143 vrl2(i,2)=zero
144 vrl2(i,3)=zero
145 vrl3(i,1)=zero
146 vrl3(i,2)=zero
147 vrl3(i,3)=zero
148 ENDIF
149 ENDDO
150 ENDIF
151C---
152 RETURN
153 END
154!||====================================================================
155!|| c3coor3_crk2 ../engine/source/elements/xfem/c3coor3_crk.f
156!||--- called by ------------------------------------------------------
157!|| c3bilan ../engine/source/elements/sh3n/coque3n/c3bilan.F
158!||--- uses -----------------------------------------------------
159!|| crackxfem_mod ../engine/share/modules/crackxfem_mod.F
160!||====================================================================
161 SUBROUTINE c3coor3_crk2(
162 1 JFT ,JLT ,NFT ,ILEV ,IEL_CRK,
163 2 X ,V ,VR ,VL1 ,VL2 ,
164 3 VL3 ,VRL1 ,VRL2 ,VRL3 ,X1 ,
165 4 X2 ,X3 ,Y1 ,Y2 ,Y3 ,
166 5 Z1 ,Z2 ,Z3 ,IADTG_CRK)
167C-----------------------------------------------
168 USE crackxfem_mod
169C-----------------------------------------------
170C I m p l i c i t T y p e s
171C-----------------------------------------------
172#include "implicit_f.inc"
173C-----------------------------------------------
174C G l o b a l P a r a m e t e r s
175C-----------------------------------------------
176#include "mvsiz_p.inc"
177C-----------------------------------------------
178C C o m m o n B l o c k s
179C-----------------------------------------------
180#include "com_xfem1.inc"
181C-----------------------------------------------
182C D u m m y A r g u m e n t s
183C-----------------------------------------------
184 INTEGER JFT,JLT,NFT,ILEV
185 INTEGER IEL_CRK(*),IADTG_CRK(3,*)
186C REAL
187 my_real
188 . X(3,*),V(3,*),VR(3,*),VL1(MVSIZ,3),VL2(MVSIZ,3),VL3(MVSIZ,3),
189 . VRL1(MVSIZ,3),VRL2(MVSIZ,3),VRL3(MVSIZ,3)
190 my_real
191 . X1(MVSIZ), X2(MVSIZ), X3(MVSIZ),
192 . Y1(MVSIZ), Y2(MVSIZ), Y3(MVSIZ),
193 . Z1(MVSIZ), Z2(MVSIZ), Z3(MVSIZ)
194C-----------------------------------------------
195C L o c a l V a r i a b l e s
196C-----------------------------------------------
197 INTEGER I,ELCRK,IADC1,IADC2,IADC3,ELCRK0
198C-----------------------------------------------
199 DO I=jft,jlt
200 elcrk0 = iel_crk(i+nft)
201 elcrk = elcrk0 + ecrkxfec
202 iadc1 = iadtg_crk(1,elcrk0)
203 iadc2 = iadtg_crk(2,elcrk0)
204 iadc3 = iadtg_crk(3,elcrk0)
205C--------------
206C COORDINATES:
207C--------------
208C node 1:
209 x1(i) = crkavx(ilev)%X(1,iadc1)
210 y1(i) = crkavx(ilev)%X(2,iadc1)
211 z1(i) = crkavx(ilev)%X(3,iadc1)
212C node 2:
213 x2(i) = crkavx(ilev)%X(1,iadc2)
214 y2(i) = crkavx(ilev)%X(2,iadc2)
215 z2(i) = crkavx(ilev)%X(3,iadc2)
216C node 3:
217 x3(i) = crkavx(ilev)%X(1,iadc3)
218 y3(i) = crkavx(ilev)%X(2,iadc3)
219 z3(i) = crkavx(ilev)%X(3,iadc3)
220C--------------
221C VELOCITIES :
222C--------------
223C node 1:
224 vl1(i,1) = crkavx(ilev)%V(1,iadc1)
225 vl1(i,2) = crkavx(ilev)%V(2,iadc1)
226 vl1(i,3) = crkavx(ilev)%V(3,iadc1)
227 vrl1(i,1) = crkavx(ilev)%VR(1,iadc1)
228 vrl1(i,2) = crkavx(ilev)%VR(2,iadc1)
229 vrl1(i,3) = crkavx(ilev)%VR(3,iadc1)
230C node 2:
231 vl2(i,1) = crkavx(ilev)%V(1,iadc2)
232 vl2(i,2) = crkavx(ilev)%V(2,iadc2)
233 vl2(i,3) = crkavx(ilev)%V(3,iadc2)
234 vrl2(i,1) = crkavx(ilev)%VR(1,iadc2)
235 vrl2(i,2) = crkavx(ilev)%VR(2,iadc2)
236 vrl2(i,3) = crkavx(ilev)%VR(3,iadc2)
237C node 3:
238 vl3(i,1) = crkavx(ilev)%V(1,iadc3)
239 vl3(i,2) = crkavx(ilev)%V(2,iadc3)
240 vl3(i,3) = crkavx(ilev)%V(3,iadc3)
241 vrl3(i,1) = crkavx(ilev)%VR(1,iadc3)
242 vrl3(i,2) = crkavx(ilev)%VR(2,iadc3)
243 vrl3(i,3) = crkavx(ilev)%VR(3,iadc3)
244 END DO
245C-----------------------------------------------
246C
247 RETURN
248 END
subroutine c3coor3_crk2(jft, jlt, nft, ilev, iel_crk, x, v, vr, vl1, vl2, vl3, vrl1, vrl2, vrl3, x1, x2, x3, y1, y2, y3, z1, z2, z3, iadtg_crk)
subroutine c3coor3_crk(jft, jlt, offg, off, sigy, dt1c, thke, vl1, vl2, vl3, vrl1, vrl2, vrl3, x1, x2, x3, y1, y2, y3, z1, z2, z3, ilev, iel_crk, iadc_crk, nft)
Definition c3coor3_crk.F:36
#define min(a, b)
Definition macros.h:20
type(xfem_avx_), dimension(:), allocatable crkavx