OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_thpart.F File Reference
#include "implicit_f.inc"
#include "scr03_c.inc"
#include "scr17_c.inc"
#include "units_c.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "com10_c.inc"
#include "warn_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine hm_read_thpart (ipart, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, lsubmodel)

Function/Subroutine Documentation

◆ hm_read_thpart()

subroutine hm_read_thpart ( integer, dimension(lipart1,*) ipart,
type (group_), dimension(ngrbric) igrbric,
type (group_), dimension(ngrquad) igrquad,
type (group_), dimension(ngrshel) igrsh4n,
type (group_), dimension(ngrsh3n) igrsh3n,
type (group_), dimension(ngrtrus) igrtruss,
type (group_), dimension(ngrbeam) igrbeam,
type (group_), dimension(ngrspri) igrspring,
type(submodel_data), dimension(nsubmod) lsubmodel )

Definition at line 41 of file hm_read_thpart.F.

43C-----------------------------------------------
44C M o d u l e s
45C-----------------------------------------------
46 USE message_mod
47 USE groupdef_mod
48 USE submodel_mod
51C-----------------------------------------------
52C I m p l i c i t T y p e s
53C-----------------------------------------------
54#include "implicit_f.inc"
55C-----------------------------------------------
56C C o m m o n B l o c k s
57C-----------------------------------------------
58#include "scr03_c.inc"
59#include "scr17_c.inc"
60#include "units_c.inc"
61#include "com01_c.inc"
62#include "com04_c.inc"
63#include "com10_c.inc"
64#include "warn_c.inc"
65C-----------------------------------------------
66C D u m m y A r g u m e n t s
67C-----------------------------------------------
68 INTEGER IPART(LIPART1,*)
69 TYPE (GROUP_) , DIMENSION(NGRBRIC) :: IGRBRIC
70 TYPE (GROUP_) , DIMENSION(NGRQUAD) :: IGRQUAD
71 TYPE (GROUP_) , DIMENSION(NGRSHEL) :: IGRSH4N
72 TYPE (GROUP_) , DIMENSION(NGRSH3N) :: IGRSH3N
73 TYPE (GROUP_) , DIMENSION(NGRTRUS) :: IGRTRUSS
74 TYPE (GROUP_) , DIMENSION(NGRBEAM) :: IGRBEAM
75 TYPE (GROUP_) , DIMENSION(NGRSPRI) :: IGRSPRING
76 TYPE(SUBMODEL_DATA) LSUBMODEL(NSUBMOD)
77C-----------------------------------------------
78C L o c a l V a r i a b l e s
79C-----------------------------------------------
80 INTEGER ID, I, GR, IGR
81 CHARACTER(LEN=NCHARTITLE) :: TITR,TITR1
82 CHARACTER MESS*40,TYP*6
83 INTEGER ITYP
84 CHARACTER(LEN=NCHARKEY) :: KEY
85 LOGICAL IS_ENCRYPTED,IS_AVAILABLE,IS_FOUND_SURF
86 my_real bid
87C-----------------------------------------------
88C E x t e r n a l F u n c t i o n s
89C-----------------------------------------------
90 INTEGER NINTRIGR
91 DATA mess/' THPART DEFINITION '/
92C-----------------------------------------------
93C S o u r c e L i n e s
94C-----------------------------------------------
95 WRITE(iout,'(//A)')' THPARTS'
96 WRITE(iout,'(A//)')' -----'
97
98 is_encrypted = .false.
99 is_available = .false.
100 is_found_surf = .false.
101
102 igrelem = 0
103 IF(nthpart>0) igrelem = 1
104 CALL hm_option_start('/THPART')
105
106 DO i=1,nthpart
107
108 titr = ''
109 typ = ''
110 CALL hm_option_read_key(lsubmodel,option_id = id,option_titr = titr ,keyword2 = key )
111 CALL hm_option_is_encrypted(is_encrypted)
112
113 typ(1:6)=key(1:6)
114 titr1=titr
115 CALL fretitl(titr,ipart(lipart1-ltitr+1,npart+i),ltitr)
116 CALL hm_get_intv('grelem_ID', gr ,is_available,lsubmodel)
117
118C ITYP : 1 BRIC,
119C 2 QUAD,
120C 3 SHELL,
121C 4 TRUSS,
122C 5 BEAM,
123C 6 SPRINGS,
124C 7 SHELL_3N
125
126 ityp = 0
127 igr = 0
128
129 IF (typ(1:6) == 'GRBRIC') THEN
130 ityp = 1
131 igr = nintrigr(gr,igrbric,ngrbric)
132 IF (ityp == igrbric(igr)%GRTYPE) is_found_surf = .true.
133
134 ELSEIF (typ(1:6) == 'GRQUAD') THEN
135 ityp = 2
136 igr = nintrigr(gr,igrquad,ngrquad)
137 IF (ityp == igrquad(igr)%GRTYPE) is_found_surf = .true.
138
139 ELSEIF (typ(1:6) == 'GRSHEL') THEN
140 ityp = 3
141 igr = nintrigr(gr,igrsh4n,ngrshel)
142 IF (ityp == igrsh4n(igr)%GRTYPE) is_found_surf = .true.
143
144 ELSEIF (typ(1:6) == 'GRTRUS') THEN
145 ityp = 4
146 igr = nintrigr(gr,igrtruss,ngrtrus)
147 IF (ityp == igrtruss(igr)%GRTYPE) is_found_surf = .true.
148
149 ELSEIF (typ(1:6) == 'GRBEAM') THEN
150 ityp = 5
151 igr = nintrigr(gr,igrbeam,ngrbeam)
152 IF (ityp == igrbeam(igr)%GRTYPE) is_found_surf = .true.
153
154 ELSEIF (typ(1:6) == 'GRSPRI') THEN
155 ityp = 6
156 igr = nintrigr(gr,igrspring,ngrspri)
157 IF (ityp == igrspring(igr)%GRTYPE) is_found_surf = .true.
158
159 ELSEIF (typ(1:6) == 'GRSH3N' .OR. typ(1:6) == 'GRTRIA') THEN
160 ityp = 7
161 igr = nintrigr(gr,igrsh3n,ngrsh3n)
162 IF (ityp == igrsh3n(igr)%GRTYPE) is_found_surf = .true.
163 ENDIF
164
165 IF(.NOT. is_found_surf)THEN
166 CALL ancmsg(msgid=763,msgtype=msgerror,anmode=aninfo,i1=id,c1=titr,i2=gr,c2=typ(1:6))
167 ENDIF
168
169 WRITE(iout,'(/A,I10,2A)')'THPART:',id,',',trim(titr)
170 WRITE(iout,'(A)') '----'
171 WRITE(iout,'(A,A)')'TYPE OF ELEMENT GROUP : ',typ(1:6)
172 WRITE(iout,'(A,I10)')'ELEMENT GROUP ID : ',gr
173
174 ipart(1,npart+i)=igr
175 ipart(2,npart+i)=ityp
176 ipart(4,npart+i)=id
177
178 IF(ipart(4,npart+i) == 0) THEN
179 CALL ancmsg(msgid=493,msgtype=msgerror,anmode=aninfo_blind_1,c1=titr1)
180 ENDIF
181
182 ENDDO
183
184 !-------------------------------------
185 ! Search for duplicate IDs
186 !-------------------------------------
187 CALL udouble(ipart(4,1),lipart1,npart+nthpart,mess,0,bid)
188
189 RETURN
190C
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_is_encrypted(is_encrypted)
subroutine hm_option_start(entity_type)
initmumps id
integer, parameter nchartitle
integer, parameter ncharkey
integer function nintrigr(iext, igr, ngr)
Definition nintrr.F:869
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:895
subroutine fretitl(titr, iasc, l)
Definition freform.F:615
subroutine udouble(list, ilist, nlist, mess, ir, rlist)
Definition sysfus.F:573