OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
inicrkfill.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!|| inicrkfill ../starter/source/elements/xfem/inicrkfill.F
25!||--- called by ------------------------------------------------------
26!|| lectur ../starter/source/starter/lectur.F
27!||--- calls -----------------------------------------------------
28!|| lslocal ../starter/source/elements/xfem/lslocal.F
29!||--- uses -----------------------------------------------------
30!||====================================================================
31 SUBROUTINE inicrkfill(ELBUF_TAB,XFEM_TAB,
32 . IXC ,IXTG ,IPARG ,INICRACK,
33 . X ,IEL_CRK,INOD_CRK ,XREFC ,XREFTG ,
34 . IEDGESH4 ,IEDGESH3,NODEDGE,CRKLVSET,
35 . CRKSHELL ,CRKEDGE ,XFEM_PHANTOM,ITAB)
36C-----------------------------------------------
37C M o d u l e s
38C-----------------------------------------------
39 USE xfem2def_mod
40 USE elbufdef_mod
43 use element_mod , only : nixc,nixtg
44C-----------------------------------------------
45C I m p l i c i t T y p e s
46C-----------------------------------------------
47#include "implicit_f.inc"
48C-----------------------------------------------
49C C o m m o n B l o c K s
50C-----------------------------------------------
51#include "com01_c.inc"
52#include "com04_c.inc"
53#include "com_xfem1.inc"
54#include "param_c.inc"
55C-----------------------------------------------
56C D u m m y A r g u m e n t s
57C-----------------------------------------------
58 integer
59 . ixc(nixc,*),ixtg(nixtg,*),iparg(nparg,*),inod_crk(*),
60 . iel_crk(*),iedgesh4(4,*),iedgesh3(3,*),nodedge(2,*),itab(*)
62 . x(3,*),xrefc(4,3,*),xreftg(3,3,*)
63 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP) :: ELBUF_TAB
64 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP,NXEL) :: XFEM_TAB
65 TYPE (XFEM_LVSET_) , DIMENSION(NLEVMAX) :: CRKLVSET
66 TYPE (XFEM_SHELL_) , DIMENSION(NLEVMAX) :: CRKSHELL
67 TYPE (XFEM_EDGE_) , DIMENSION(NXLAYMAX) :: CRKEDGE
68 TYPE (XFEM_PHANTOM_), DIMENSION(NXLAYMAX) :: XFEM_PHANTOM
69 TYPE (INICRACK_) , DIMENSION(NINICRACK) :: INICRACK
70C-----------------------------------------------
71C L o c a l V a r i a b l e s
72C-----------------------------------------------
73 INTEGER I, K, N, ID, ICRK, NXSEG, NXNOD
74 INTEGER, DIMENSION(:,:) ,ALLOCATABLE :: NODLS
75 INTEGER, DIMENSION(:,:) ,ALLOCATABLE :: TAGSKYC,TAGSKYTG
76 INTEGER, DIMENSION(:) ,ALLOCATABLE :: NTAG
77 INTEGER, DIMENSION(:) ,ALLOCATABLE :: KNOD2ELC,TAGEDGE
78 my_real ,DIMENSION(:) ,ALLOCATABLE :: ratiols
79 CHARACTER(LEN=NCHARTITLE) :: TITR
80C=======================================================================
81 ALLOCATE(knod2elc(numnod+1))
82 ALLOCATE(tagskyc(4,numelc))
83 ALLOCATE(tagskytg(3,numeltg))
84 ALLOCATE(tagedge(numedges))
85 knod2elc = 0
86 tagskyc = 0
87 tagskytg = 0
88 tagedge = 0
89c-----------------
90 DO k=1,4
91 DO i=1,numelc
92 n = ixc(k+1,i)
93 knod2elc(n) = knod2elc(n) + 1
94 tagskyc(k,i) = knod2elc(n)
95 END DO
96 END DO
97C
98 DO k=1,3
99 DO i=1,numeltg
100 n = ixtg(k+1,i)
101 knod2elc(n) = knod2elc(n) + 1
102 tagskytg(k,i) = knod2elc(n)
103 END DO
104 END DO
105c-----------------
106 DO icrk=1,ninicrack
107 id = inicrack(icrk)%ID
108 nxnod = inicrack(icrk)%NSEG
109 titr = inicrack(icrk)%TITLE
110 nxseg = nxnod - 1
111C---
112 IF (nxseg > 0) THEN
113 ALLOCATE(nodls(2,nxnod))
114 ALLOCATE(ntag(numnod))
115 ALLOCATE(ratiols(nxnod))
116 nodls = 0
117 ntag = 0
118 ratiols = zero
119C---
120 DO n=1,nxnod
121 nodls(1,n) = inicrack(icrk)%SEG(n)%NODES(1)
122 nodls(2,n) = inicrack(icrk)%SEG(n)%NODES(2)
123 ratiols(n) = inicrack(icrk)%SEG(n)%RATIO
124 ENDDO
125C---
126 CALL lslocal(elbuf_tab,xfem_tab,
127 . iparg ,ixc ,ixtg ,xrefc ,xreftg ,
128 . x ,icrk ,inod_crk,nxseg ,nodls ,
129 . ratiols ,ntag ,iel_crk ,iel_crk(1+numelc),iedgesh4,
130 . iedgesh3,nodedge ,tagskyc ,tagskytg ,knod2elc,
131 . tagedge ,crklvset,crkshell,crkedge ,xfem_phantom,
132 . itab ,id ,titr )
133C---
134 DEALLOCATE(nodls,ntag,ratiols)
135 END IF
136C---
137 ENDDO ! DO ICRK=1,NINICRACK
138C---
139 DEALLOCATE(tagskyc,tagskytg,knod2elc,tagedge)
140C-----------
141 RETURN
142 END
#define my_real
Definition cppsort.cpp:32
subroutine inicrkfill(elbuf_tab, xfem_tab, ixc, ixtg, iparg, inicrack, x, iel_crk, inod_crk, xrefc, xreftg, iedgesh4, iedgesh3, nodedge, crklvset, crkshell, crkedge, xfem_phantom, itab)
Definition inicrkfill.F:36
subroutine lslocal(elbuf_tab, xfem_tab, iparg, ixc, ixtg, xrefc, xreftg, x, icrk, inod_crk, nxseg, nodls, ratiols, ntag, ielcrkc, ielcrktg, iedgesh4, iedgesh3, nodedge, tagskyc, tagskytg, knod2elc, tagedge, crklvset, crkshell, crkedge, xfem_phantom, itab, id, titr)
Definition lslocal.F:50
integer, parameter nchartitle