OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_truss.F File Reference
#include "implicit_f.inc"
#include "analyse_name.inc"
#include "scr17_c.inc"
#include "com04_c.inc"
#include "param_c.inc"
#include "units_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine hm_read_truss (ixt, itab, itabm1, ipart, ipartt, ipm, igeo, lsubmodel)

Function/Subroutine Documentation

◆ hm_read_truss()

subroutine hm_read_truss ( integer, dimension(nixt,*), intent(out) ixt,
integer, dimension(*), intent(in) itab,
integer, dimension(*), intent(in) itabm1,
integer, dimension(lipart1,*), intent(in) ipart,
integer, dimension(*), intent(out) ipartt,
integer, dimension(npropmi,*), intent(in) ipm,
integer, dimension(npropgi,*), intent(in) igeo,
type(submodel_data), dimension(nsubmod), intent(in) lsubmodel )

Definition at line 37 of file hm_read_truss.F.

39C-----------------------------------------------
40C ROUTINE DESCRIPTION :
41C ===================
42C READ /TRUSS ELEMENTS USING HM_READER
43C-----------------------------------------------
44C DUMMY ARGUMENTS DESCRIPTION:
45C ===================
46C
47C NAME DESCRIPTION
48C
49C IXT TRUSS ELEM ARRAY : CONNECTIVITY, ID, PID
50C ITAB USER ID OF NODES
51C ITABM1 REVERSE TAB ITAB
52C IPART PART ARRAY
53C IPARTT INTERNAL PART ID OF A GIVEN TRUSS ELEMENT
54C IPM MATERIAL ARRAY (INTEGER)
55C IGEO PROP ARRAY (INTEGER)
56C LSUBMODEL SUBMODEL STRUCTURE
57C-----------------------------------------------
58C M o d u l e s
59C-----------------------------------------------
60 USE message_mod
62 USE reader_old_mod , ONLY : line
63 USE user_id_mod , ONLY : id_limit
64 use element_mod , only : nixt
65C---------------------------------------------------------
66C I m p l i c i t T y p e s
67C-----------------------------------------------
68#include "implicit_f.inc"
69C-----------------------------------------------
70C A n a l y s e M o d u l e
71C-----------------------------------------------
72#include "analyse_name.inc"
73C-----------------------------------------------
74C C o m m o n B l o c k s
75C-----------------------------------------------
76#include "scr17_c.inc"
77#include "com04_c.inc"
78#include "param_c.inc"
79#include "units_c.inc"
80C-----------------------------------------------
81C D u m m y A r g u m e n t s
82C-----------------------------------------------
83C INPUT ARGUMENTS
84 INTEGER,INTENT(IN)::ITAB(*)
85 INTEGER,INTENT(IN)::ITABM1(*)
86 INTEGER,INTENT(IN)::IPART(LIPART1,*)
87 INTEGER,INTENT(IN)::IGEO(NPROPGI,*)
88 INTEGER,INTENT(IN)::IPM(NPROPMI,*)
89 TYPE(SUBMODEL_DATA),INTENT(IN)::LSUBMODEL(NSUBMOD)
90C OUTPUT ARGUMENTS
91 INTEGER,INTENT(OUT)::IXT(NIXT,*)
92 INTEGER,INTENT(OUT)::IPARTT(*)
93C-----------------------------------------------
94C L o c a l V a r i a b l e s
95C-----------------------------------------------
96 INTEGER I, I1, I2, MID, PID,MT,IPID,IDS,J,N,STAT
97 INTEGER INDEX_PART
98 CHARACTER MESS*40, MESS2*40
100 . bid
101 INTEGER, DIMENSION(:), ALLOCATABLE :: SUB_TRUSS
102C-----------------------------------------------
103C E x t e r n a l F u n c t i o n s
104C-----------------------------------------------
105 INTEGER USR2SYS
106C
107 DATA mess/'3D TRUSS ELEMENTS DEFINITION '/
108 DATA mess2/'3D TRUSS ELEMENTS SELECTION FOR TH PLOT '/
109C=======================================================================
110C--------------------------------------------------
111C ALLOCS & INITS
112C--------------------------------------------------
113 ALLOCATE (sub_truss(numelt),stat=stat)
114 IF (stat /= 0) CALL ancmsg(msgid=268,anmode=aninfo,
115 . msgtype=msgerror,
116 . c1='SUB_TRUSS')
117 sub_truss(1:numelt) = 0
118 index_part = 1
119C--------------------------------------------------
120C READING TRUSS INPUTS IN HM STRUCTURE
121C--------------------------------------------------
122 CALL cpp_truss_read(ixt,nixt,ipartt,sub_truss)
123C--------------------------------------------------
124C FILL OTHER STRUCTURES + CHECKS
125C--------------------------------------------------
126 i=0
127 DO n=1,numelt
128 i = i + 1
129C--------------------------------------------------
130C INTERNAL PART ID
131C--------------------------------------------------
132 IF( ipart(4,index_part) /= ipartt(i) )THEN
133 DO j=1,npart
134 IF(ipart(4,j)== ipartt(i) ) index_part = j
135 ENDDO
136 ENDIF
137 IF( ipart(4,index_part) /= ipartt(i) ) THEN
138 CALL ancmsg(msgid=402,
139 . msgtype=msgerror,
140 . anmode=aninfo_blind_1,
141 . c1="TRUSS",
142 . i1=ipartt(i),
143 . i2=ipartt(i),
144 . prmod=msg_cumu)
145 ENDIF
146 ipartt(i) = index_part
147C--------------------------------------------------
148 mt=ipart(1,index_part)
149 ipid=ipart(2,index_part)
150 ixt(1,i)=mt
151 ixt(4,i)=ipid
152
153 IF (ixt(5,i)>id_limit%GLOBAL) THEN
154 CALL ancmsg(msgid=509,anmode=aninfo,msgtype=msgerror,
155 . i1=ixt(5,i),c1=line,c2='/TRUSS')
156 ENDIF
157
158 DO j=2,3
159 ixt(j,i)=usr2sys(ixt(j,i),itabm1,mess,ixt(5,i))
160 CALL anodset(ixt(j,i), check_truss)
161 ENDDO
162 ENDDO
163 IF(ALLOCATED(sub_truss)) DEALLOCATE(sub_truss)
164C-----------
165 CALL ancmsg(msgid=402,
166 . msgtype=msgerror,
167 . anmode=aninfo_blind_1,
168 . prmod=msg_print)
169C
170 i1=1
171 i2=min0(50,numelt)
172C-------------------------------------
173C Search for double IDs
174C-------------------------------------
175 ids = 79
176 i = 0
177 j = 0
178c CALL ANCNTS(IDS,I)
179 CALL vdouble(ixt(nixt,1),nixt,numelt,mess,0,bid)
180c CALL ANCNTG(IDS,I,J)
181 ids = 21
182c CALL ANCHECK(IDS)
183C
184 90 WRITE (iout,300)
185 DO i=i1,i2
186 mid=ipm(1,ixt(1,i))
187 pid=igeo(1,ixt(4,i))
188 WRITE (iout,'(6(I10,1X))') i,ixt(5,i),mid,pid,
189 . itab(ixt(2,i)),itab(ixt(3,i))
190 ENDDO
191 IF(i2==numelt)GOTO 200
192 i1=i1+50
193 i2=min0(i2+50,numelt)
194 GOTO 90
195C
196 200 CONTINUE
197 RETURN
198C----
199 300 FORMAT(/' TRUSS ELEMENTS' /
200 + ' --------------' /
201 + ' LOC-EL GLO-EL MATER GEOM NODE1 NODE2')
202 RETURN
void anodset(int *id, int *type)
#define my_real
Definition cppsort.cpp:32
integer nsubmod
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
integer function usr2sys(iu, itabm1, mess, id)
Definition sysfus.F:146
subroutine vdouble(list, ilist, nlist, mess, ir, rlist)
Definition sysfus.F:868