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 38 of file hm_read_truss.F.

40C-----------------------------------------------
41C ROUTINE DESCRIPTION :
42C ===================
43C READ /TRUSS ELEMENTS USING HM_READER
44C-----------------------------------------------
45C DUMMY ARGUMENTS DESCRIPTION:
46C ===================
47C
48C NAME DESCRIPTION
49C
50C IXT TRUSS ELEM ARRAY : CONNECTIVITY, ID, PID
51C ITAB USER ID OF NODES
52C ITABM1 REVERSE TAB ITAB
53C IPART PART ARRAY
54C IPARTT INTERNAL PART ID OF A GIVEN TRUSS ELEMENT
55C IPM MATERIAL ARRAY (INTEGER)
56C IGEO PROP ARRAY (INTEGER)
57C LSUBMODEL SUBMODEL STRUCTURE
58C-----------------------------------------------
59C M o d u l e s
60C-----------------------------------------------
61 USE message_mod
63 USE reader_old_mod , ONLY : line
64 USE user_id_mod , ONLY : id_limit
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,ID,IDS,J,N,JC,STAT
97 INTEGER FLAG_FMT,FLAG_FMT_TMP,IFIX_TMP,CPT,
98 . INDEX_PART
99 CHARACTER MESS*40, MESS2*40
100 my_real
101 . bid
102 INTEGER, DIMENSION(:), ALLOCATABLE :: SUB_TRUSS
103C-----------------------------------------------
104C E x t e r n a l F u n c t i o n s
105C-----------------------------------------------
106 INTEGER NINTRN
107 INTEGER USR2SYS
108C
109 DATA mess/'3D TRUSS ELEMENTS DEFINITION '/
110 DATA mess2/'3D TRUSS ELEMENTS SELECTION FOR TH PLOT '/
111C=======================================================================
112C--------------------------------------------------
113C ALLOCS & INITS
114C--------------------------------------------------
115 ALLOCATE (sub_truss(numelt),stat=stat)
116 IF (stat /= 0) CALL ancmsg(msgid=268,anmode=aninfo,
117 . msgtype=msgerror,
118 . c1='SUB_TRUSS')
119 sub_truss(1:numelt) = 0
120 index_part = 1
121C--------------------------------------------------
122C READING TRUSS INPUTS IN HM STRUCTURE
123C--------------------------------------------------
124 CALL cpp_truss_read(ixt,nixt,ipartt,sub_truss)
125C--------------------------------------------------
126C FILL OTHER STRUCTURES + CHECKS
127C--------------------------------------------------
128 i=0
129 DO n=1,numelt
130 i = i + 1
131C--------------------------------------------------
132C INTERNAL PART ID
133C--------------------------------------------------
134 IF( ipart(4,index_part) /= ipartt(i) )THEN
135 DO j=1,npart
136 IF(ipart(4,j)== ipartt(i) ) index_part = j
137 ENDDO
138 ENDIF
139 IF( ipart(4,index_part) /= ipartt(i) ) THEN
140 CALL ancmsg(msgid=402,
141 . msgtype=msgerror,
142 . anmode=aninfo_blind_1,
143 . c1="TRUSS",
144 . i1=ipartt(i),
145 . i2=ipartt(i),
146 . prmod=msg_cumu)
147 ENDIF
148 ipartt(i) = index_part
149C--------------------------------------------------
150 mt=ipart(1,index_part)
151 ipid=ipart(2,index_part)
152 ixt(1,i)=mt
153 ixt(4,i)=ipid
154
155 IF (ixt(5,i)>id_limit%GLOBAL) THEN
156 CALL ancmsg(msgid=509,anmode=aninfo,msgtype=msgerror,
157 . i1=ixt(5,i),c1=line,c2='/TRUSS')
158 ENDIF
159
160 DO j=2,3
161 ixt(j,i)=usr2sys(ixt(j,i),itabm1,mess,ixt(5,i))
162 CALL anodset(ixt(j,i), check_truss)
163 ENDDO
164 ENDDO
165 IF(ALLOCATED(sub_truss)) DEALLOCATE(sub_truss)
166C-----------
167 CALL ancmsg(msgid=402,
168 . msgtype=msgerror,
169 . anmode=aninfo_blind_1,
170 . prmod=msg_print)
171C
172 i1=1
173 i2=min0(50,numelt)
174C-------------------------------------
175C Recherche des ID doubles
176C-------------------------------------
177 ids = 79
178 i = 0
179 j = 0
180c CALL ANCNTS(IDS,I)
181 CALL vdouble(ixt(nixt,1),nixt,numelt,mess,0,bid)
182c CALL ANCNTG(IDS,I,J)
183 ids = 21
184c CALL ANCHECK(IDS)
185C
186 90 WRITE (iout,300)
187 DO i=i1,i2
188 mid=ipm(1,ixt(1,i))
189 pid=igeo(1,ixt(4,i))
190 WRITE (iout,'(6(I10,1X))') i,ixt(5,i),mid,pid,
191 . itab(ixt(2,i)),itab(ixt(3,i))
192 ENDDO
193 IF(i2==numelt)GOTO 200
194 i1=i1+50
195 i2=min0(i2+50,numelt)
196 GOTO 90
197C
198 200 CONTINUE
199 RETURN
200C----
201 300 FORMAT(/' TRUSS ELEMENTS' /
202 + ' --------------' /
203 + ' LOC-EL GLO-EL MATER GEOM NODE1 NODE2')
204 310 FORMAT(' TRUSS ELEMENT TH SELECTION'/
205 + ' --------------------------'/)
206 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:889
integer function usr2sys(iu, itabm1, mess, id)
Definition sysfus.F:160
subroutine vdouble(list, ilist, nlist, mess, ir, rlist)
Definition sysfus.F:884