OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
elbuf_ini.F File Reference
#include "implicit_f.inc"
#include "com_xfem1.inc"
#include "param_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine elbuf_ini (mat_elem, ngroup, iparg)

Function/Subroutine Documentation

◆ elbuf_ini()

subroutine elbuf_ini ( type(mat_elem_), intent(inout) mat_elem,
integer, intent(in) ngroup,
integer, dimension(nparg,ngroup), intent(inout) iparg )

Definition at line 32 of file elbuf_ini.F.

33C-----------------------------------------------
34C M o d u l e s
35C-----------------------------------------------
36 USE mat_elem_mod
37C-----------------------------------------------
38C I m p l i c i t T y p e s
39C-----------------------------------------------
40#include "implicit_f.inc"
41C-----------------------------------------------
42C C o m m o n B l o c k s
43C-----------------------------------------------
44#include "com_xfem1.inc"
45#include "param_c.inc"
46C-----------------------------------------------
47C D u m m y A r g u m e n t s
48C-----------------------------------------------
49 INTEGER ,INTENT(IN) :: NGROUP
50 INTEGER ,INTENT(INOUT) :: IPARG(NPARG,NGROUP)
51 TYPE(MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
52C-----------------------------------------------
53C L o c a l V a r i a b l e s
54C-----------------------------------------------
55 INTEGER ERR,NG,BUFLEN,ITY,NPT,IXFEM,IXEL,ISNOD,NEWLEN,INLOC
56 INTEGER IDAMP_FREQ_RANGE
57C=======================================================================
58c Element Buffer Routine (Solid)
59c------
60c 1) size of elbuf array for restart
61c 2) allocation of elbuf_str structure
62C=======================================================================
63 err = 0
64 ALLOCATE (mat_elem%ELBUF(ngroup), stat=err)
65 IF (err /= 0) THEN
66 ENDIF
67c-------------------------------------------------
68 DO ng = 1,ngroup
69 ity = iparg(5,ng)
70 npt = iparg(6,ng)
71 buflen = iparg(66,ng)
72 ixfem = iparg(54,ng)
73 inloc = iparg(78,ng)
74 idamp_freq_range = iparg(93,ng)
75
76 newlen = buflen
77 IF(ity==1)THEN
78 isnod=iparg(28,ng)
79 ELSE
80 isnod=0
81 END IF
82c print*,' NG =',ng
83 IF (ity==1 .or. ity==2 .or. ity==51 .or. ity==3 .or.
84 . ity==7 .or. ity==101 .or. ity==4 .or. ity==5 .or.
85 . ity==6 .or. ity==100)THEN
86 CALL allocbuf_auto(mat_elem%ELBUF(ng),buflen,npt,ity,isnod,newlen,inloc,
87 . idamp_freq_range)
88 iparg(66,ng)=newlen
89 END IF
90 ENDDO ! NG = 1,NGROUP
91C-----------
92 IF (icrack3d > 0) THEN
93 err = 0
94 ALLOCATE (mat_elem%XFEM_TAB(ngroup,nxel), stat=err)
95c IF (ERR /= 0) THEN
96c ENDIF
97 DO ixel=1,nxel
98 DO ng = 1,ngroup
99 ity = iparg(5,ng)
100 npt = iparg(6,ng)
101 buflen = iparg(66,ng)
102 ixfem = iparg(54,ng)
103 inloc = iparg(78,ng)
104 idamp_freq_range = iparg(93,ng)
105 newlen = buflen
106c----
107c if xfem, count buffer's length only in the groups with xfem phantom elements
108c----
109 IF (ixfem > 0 .and. (ity==3 .or. ity==7)) THEN
110 CALL allocbuf_auto(mat_elem%XFEM_TAB(ng,ixel),buflen,npt,ity,isnod,newlen,inloc,
111 . idamp_freq_range)
112 iparg(66,ng)=newlen
113 ENDIF
114 ENDDO
115 ENDDO
116 ELSE
117 ALLOCATE (mat_elem%XFEM_TAB(0,0), stat=err)
118 ENDIF
119C-----------
120 RETURN
subroutine allocbuf_auto(elbuf_tab, nlay, nptr, npts, nptt, nintlay, nel, npt, ng, ngroup, ity, igtyp, nummat, mat_param)