OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_elngr.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!|| hm_elngr ../starter/source/groups/hm_elngr.F
25!||--- called by ------------------------------------------------------
26!|| hm_lecgrn ../starter/source/groups/hm_lecgrn.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../starter/source/output/message/message.F
29!|| hm_get_int_array_index ../starter/source/devtools/hm_reader/hm_get_int_array_index.F
30!|| hm_get_intv ../starter/source/devtools/hm_reader/hm_get_intv.F
31!||--- uses -----------------------------------------------------
32!|| hm_option_read_mod ../starter/share/modules1/hm_option_read_mod.F
33!|| message_mod ../starter/share/message_module/message_mod.F
34!|| submodel_mod ../starter/share/modules1/submodel_mod.F
35!||====================================================================
36 SUBROUTINE hm_elngr(IX ,NIX ,NIX1 ,NIX2 ,NGRELE ,
37 . ELCHAR ,ID ,IGRELEM ,TAGBUF ,TITR ,
38 . FLAG ,LSUBMODEL)
39C-----------------------------------------------
40C M o d u l e s
41C-----------------------------------------------
42 USE message_mod
43 USE groupdef_mod
44 USE submodel_mod
47C-----------------------------------------------
48C I m p l i c i t T y p e s
49C-----------------------------------------------
50#include "implicit_f.inc"
51C-----------------------------------------------
52C C o m m o n B l o c k s
53C-----------------------------------------------
54C-----------------------------------------------
55C D u m m y A r g u m e n t s
56C-----------------------------------------------
57 INTEGER IX(NIX,*),TAGBUF(*)
58 INTEGER NIX,NIX1,NIX2,NGRELE,ID,FLAG
59 CHARACTER ELCHAR*(*)
60 CHARACTER(LEN=NCHARTITLE) :: TITR
61 TYPE(submodel_data) LSUBMODEL(*)
62C-----------------------------------------------
63 TYPE (GROUP_) , DIMENSION(NGRELE) :: IGRELEM
64C-----------------------------------------------
65C L o c a l V a r i a b l e s
66C-----------------------------------------------
67 INTEGER J,L,IE,IADV,JREC,K,ISU,KK,JJ,NEMAX
68 LOGICAL IS_AVAILABLE
69C=======================================================================
70 is_available = .false.
71 CALL hm_get_intv('idsmax' ,nemax,is_available,lsubmodel)
72 DO kk = 1,nemax
73 CALL hm_get_int_array_index ('ids',jj ,kk,is_available,lsubmodel)
74 IF (jj /= 0) THEN
75 isu=0
76 DO k=1,ngrele
77 IF(jj == igrelem(k)%ID) isu=k
78 ENDDO
79 IF (isu /= 0) THEN
80 DO l=1,igrelem(isu)%NENTITY
81 ie=igrelem(isu)%ENTITY(l)
82 DO k=nix1,nix2
83C tag les noeuds connectes a l'element
84 tagbuf(ix(k,ie))=1
85 ENDDO
86 ENDDO
87 ELSEIF(flag==0)THEN
88 CALL ancmsg(msgid=172,
89 . msgtype=msgwarning,
90 . anmode=aninfo,
91 . i1=id,c1=titr,
92 . c2=elchar,
93 . i2=jj)
94 ENDIF
95 ENDIF
96 ENDDO
97C-----------
98 RETURN
99 END
100!||====================================================================
101!|| hm_elngrs ../starter/source/groups/hm_elngr.F
102!||--- called by ------------------------------------------------------
103!|| hm_lecgrn ../starter/source/groups/hm_lecgrn.F
104!||--- calls -----------------------------------------------------
105!|| ancmsg ../starter/source/output/message/message.F
106!|| hm_get_int_array_index ../starter/source/devtools/hm_reader/hm_get_int_array_index.F
107!|| hm_get_intv ../starter/source/devtools/hm_reader/hm_get_intv.F
108!||--- uses -----------------------------------------------------
109!|| hm_option_read_mod ../starter/share/modules1/hm_option_read_mod.F
110!|| message_mod ../starter/share/message_module/message_mod.f
111!|| submodel_mod ../starter/share/modules1/submodel_mod.F
112!||====================================================================
113 SUBROUTINE hm_elngrs(IXS ,IXS10 ,IXS20 ,IXS16 ,NGRELE ,
114 . ELCHAR ,ID ,IGRELEM ,TAGBUF ,TITR ,
115 . FLAG ,LSUBMODEL)
116C-----------------------------------------------
117C M o d u l e s
118C-----------------------------------------------
119 USE message_mod
120 USE groupdef_mod
121 USE submodel_mod
123C-----------------------------------------------
124C I m p l i c i t T y p e s
125C-----------------------------------------------
126#include "implicit_f.inc"
127C-----------------------------------------------
128C C o m m o n B l o c k s
129C-----------------------------------------------
130#include "com04_c.inc"
131C-----------------------------------------------
132C D u m m y A r g u m e n t s
133C-----------------------------------------------
134 INTEGER IXS(NIXS,*),IXS10(6,*),IXS20(12,*),IXS16(8,*),
135 . TAGBUF(*)
136 INTEGER NGRELE,ID,FLAG
137 CHARACTER ELCHAR*(*)
138 CHARACTER(LEN=NCHARTITLE) :: TITR
139 TYPE(SUBMODEL_DATA) LSUBMODEL(*)
140C-----------------------------------------------
141 TYPE (GROUP_) , DIMENSION(NGRELE) :: IGRELEM
142C-----------------------------------------------
143C L o c a l V a r i a b l e s
144C-----------------------------------------------
145 INTEGER I,J,L,IE,IADV,JREC,K,ISU,ITETRA10,JJ,NEMAX,KK
146 LOGICAL IS_AVAILABLE
147C=======================================================================
148 ITETRA10=0
149 CALL hm_get_intv('idsmax' ,nemax,is_available,lsubmodel)
150 DO kk = 1,nemax
151 CALL hm_get_int_array_index ('ids',jj ,kk,is_available,lsubmodel)
152 IF (jj /= 0) THEN
153 isu = 0
154 DO k = 1,ngrele
155 IF (jj == igrelem(k)%ID) THEN
156 isu = k
157 EXIT
158 ENDIF
159 ENDDO
160 IF (isu /= 0) THEN
161 DO l=1,igrelem(isu)%NENTITY
162 ie = igrelem(isu)%ENTITY(l)
163 DO k=2,9
164C tag les noeuds connectes a l'element
165 tagbuf(ixs(k,ie))=1
166 ENDDO
167 IF (ie > numels8 .AND. ie <= numels8+numels10) THEN
168 itetra10=itetra10+1
169 i = ie-numels8
170 DO k=1,6
171 tagbuf(ixs10(k,i))=1
172 ENDDO
173 ELSEIF (ie > numels8+numels10 .AND.
174 . ie <= numels8+numels10+numels20) THEN
175 i = ie-numels8-numels10
176 DO k=1,12
177 tagbuf(ixs20(k,i))=1
178 ENDDO
179 ELSEIF (ie > numels8+numels10+numels20 .AND.
180 . ie <= numels8+numels10+numels20+numels16) THEN
181 i = ie-numels8-numels10-numels20
182 DO k=1,8
183 tagbuf(ixs16(k,i))=1
184 ENDDO
185 ENDIF
186 ENDDO
187 ELSEIF(flag==0)THEN
188 CALL ancmsg(msgid=172,
189 . msgtype=msgwarning,
190 . anmode=aninfo,
191 . i1=id,c1=titr,
192 . c2=elchar,
193 . i2=jj)
194 ENDIF
195 ENDIF
196 ENDDO
197C-----------
198 IF (itetra10 /= 0)THEN
199 CALL ancmsg(msgid=500,
200 . msgtype=msgwarning,
201 . anmode=aninfo_blind_1,
202 . c1='GRNOD',
203 . i1=id,
204 . c2='GRNOD',
205 . c3=titr)
206 ENDIF
207C-----------
208 RETURN
209 END
subroutine hm_elngr(ix, nix, nix1, nix2, ngrele, elchar, id, igrelem, tagbuf, titr, flag, lsubmodel)
Definition hm_elngr.F:39
subroutine hm_elngrs(ixs, ixs10, ixs20, ixs16, ngrele, elchar, id, igrelem, tagbuf, titr, flag, lsubmodel)
Definition hm_elngr.F:116
subroutine hm_get_int_array_index(name, ival, index, is_available, lsubmodel)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
integer, parameter nchartitle
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
Definition message.F:889
program starter
Definition starter.F:39