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

Go to the source code of this file.

Functions/Subroutines

subroutine hm_read_properties (geo, x, ix, pm, itabm1, bufgeo, lbufgeo, iskn, igeo, ipm, npc, pld, unitab, rtrans, lsubmodel, prop_tag, ipart, knot, idrapeid, stack_info, numgeo_stack, nprop_stack, multi_fvm, iadbuf, defaults, mat_param)

Function/Subroutine Documentation

◆ hm_read_properties()

subroutine hm_read_properties ( geo,
x,
integer, dimension(*) ix,
pm,
integer, dimension(*) itabm1,
double precision, dimension(*) bufgeo,
integer lbufgeo,
integer, dimension(liskn,*) iskn,
integer, dimension(npropgi,*) igeo,
integer, dimension(npropmi,*) ipm,
integer, dimension(*) npc,
pld,
type (unit_type_), intent(in) unitab,
rtrans,
type(submodel_data), dimension(nsubmod) lsubmodel,
type(prop_tag_), dimension(0:maxprop) prop_tag,
integer, dimension(lipart1,*) ipart,
knot,
integer, dimension(*) idrapeid,
type(stack_info_ ), dimension (nprop_stack) stack_info,
integer, dimension(numgeo+numstack) numgeo_stack,
integer nprop_stack,
type(multi_fvm_struct) multi_fvm,
integer iadbuf,
type(defaults_), intent(inout) defaults,
type(matparam_struct_), dimension(nummat), intent(in) mat_param )

Definition at line 74 of file hm_read_properties.F.

80C============================================================================
81C-----------------------------------------------
82C ROUTINE DESCRIPTION :
83C ===================
84C READ PROPERTIES WITH HM READER
85C-----------------------------------------------
86C M o d u l e s
87C-----------------------------------------------
88 USE unitab_mod
89 USE elbuftag_mod
90 USE submodel_mod
91 USE message_mod
92 USE stack_mod
93 USE multi_fvm_mod
95 USE ale_mod
96 USE defaults_mod
98 use matparam_def_mod
99C-----------------------------------------------
100C I m p l i c i t T y p e s
101C-----------------------------------------------
102#include "implicit_f.inc"
103C-----------------------------------------------
104C C o m m o n B l o c k s
105C-----------------------------------------------
106#include "units_c.inc"
107#include "com04_c.inc"
108#include "param_c.inc"
109#include "scr17_c.inc"
110#include "tablen_c.inc"
111C-----------------------------------------------
112C D u m m y A r g u m e n t s
113C-----------------------------------------------
114 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
115 INTEGER IX(*),ITABM1(*),LBUFGEO,ISKN(LISKN,*),
116 . IGEO(NPROPGI,*),IPM(NPROPMI,*),NPC(*),
117 . IPART(LIPART1,*),IDRAPEID(*),NUMGEO_STACK(NUMGEO+NUMSTACK),
118 . NPROP_STACK,IADBUF
119 TYPE(SUBMODEL_DATA) LSUBMODEL(NSUBMOD)
120 my_real geo(npropg,numgeo), x(*), pm(npropm,nummat),pld(*),rtrans(ntransf,*),knot(*)
121
122 DOUBLE PRECISION BUFGEO(*)
123
124 TYPE(PROP_TAG_) , DIMENSION(0:MAXPROP) :: PROP_TAG
125 TYPE(STACK_INFO_ ) , DIMENSION (NPROP_STACK) :: STACK_INFO
126 TYPE(MULTI_FVM_STRUCT) :: MULTI_FVM
127 TYPE(DEFAULTS_), INTENT(INOUT) :: DEFAULTS
128 type(matparam_struct_) ,dimension(nummat) ,intent(in) :: mat_param
129C-----------------------------------------------
130C L o c a l V a r i a b l e s
131C-----------------------------------------------
132 CHARACTER LAW_ID*4
133 INTEGER I, PROP_ID, IGTYP, IMAT,ISMSTR, J, K,N,
134 . IGFLU, NSHELL, NSHSUP, NSHINF, NBADI,IUNIT,UID,
135 . NSST_D, NSST_DS, NPSH, ISORTH,
136 . IHGFLU, NSTACK,NUMS,IHBE
137 INTEGER IFLAGUNIT, JPID,N1,IPOS,ISROT,MLAWLY,MID,SUB_ID,
138 . PROP_SHELL,
139 . IAD_KNOT,ISTACK,IPINCH
140 INTEGER MAT_USR,MAT_RAD
141
142 INTEGER JPID1,JPID2,NISUB,E_TYPE,CPT,
143 . SUB_INDEX
144 my_real pun,cvis,rbid,
145 . fac_l,fac_t,fac_m, zshift,pthk
146 CHARACTER(LEN=NCHARLINE) :: IDTITL,KEY,SOLVERKEYWORD
147 CHARACTER MESS*40
148 CHARACTER(LEN=NCHARTITLE) :: TITR1
149 DATA nshell /0/, nshsup /0/, nshinf /0/
150C-----------------------------------------------
151C E x t e r n a l F u n c t i o n s
152C-----------------------------------------------
153 DATA mess/'PID DEFINITION '/
154 DATA pun/0.1/
155C----------------------
156C GEO(3) : ISMSTR
157C GEO(5) : DT (ISMSTR=3 SAUF SOLIDES)
158C GEO (7): VX Ortho shells/Solids - Reference vector
159C GEO(8) : VY
160C GEO(9) : VZ
161C GEO(11): ISTRAIN (COQUE)
162C GEO(12): IGTYP -> IGEO(11)
163C GEO(35): ITHK
164C GEO(37): ISHEAR
165C GEO(38): FSHEAR
166C GEO(39): IPLAST
167C GEO(40): PROP_ID v50 -> IGEO(1)
168C GEO(42): PTHK
169C GEO(43): FAILEXP
170C GEO (20:34): porous medium (bricks)
171C GEO (129): HCLOS (Bricks)
172C GEO (130): Htest (bricks)
173C GEO(131:170): LIBRE
174C GEO(171): IHBE
175C GEO(212): ANGLE BETWEEN two orthotropy directions (DIR1,DIR2) for
176C the PID with LAW58
177C-------------------
178C New storage:
179C IGEO(1) : PROP_ID
180C IGEO(2) : ISK
181C IGEO(3) : ISEN
182C IGEO(4) : NIP
183C IGEO(5) : ISMSTR
184C IGEO(6) : IREP
185C IGEO(7) : ITHK
186C IGEO(8) : ISHEAR
187C IGEO(9) : IPLAST
188C IGEO(10) : IHBE
189C IGEO(11) : IGTYP
190C IGEO(12) : ISTRAIN
191C IGEO(13) : ICPRE
192C IGEO(14) : ICSTR
193C IGEO(15) : IINT
194C IGEO(16) : IFRAM
195C IGEO(17) : ISORTH
196C IGEO(18) : ISH3N
197C IGEO(19) : ICXFEM
198C IGEO(20) : ISROT
199C ITET4 : PID6 & PID14
200C NFUNC : PID26
201C IGEO(21) : NFUND : PID26
202C IGEO(22) : I_INJECT : Injectors (1:'INJECT1' or 2:'INJECT2')
203C IGEO(23) : NGASES : Injectors
204C IGEO(25) : F_IDMASS : /PROP/INJECT2
205C IGEO(26) : F_IDTEMP : /PROP/INJECT2
206C IGEO(27) and IGEO(28) are reserved for generic storage, don't use it for anything else !
207C IGEO(27) : NUVAR(1) : NUMBER OF USER ELEMENT VARIABLES
208C IGEO(28) : NUVAR(2) : NUMBER OF USER ELEMENT VARIABLES PER NODE (/PROP/NSTRAND)
209C IGEO(30) : NLAY : /PROP/TYPE22
210C IGEO(32) : ISLV
211C IGEO(33) : IVIS : Solid properties
212C IGEO(34) : IVISC0 : Solid properties
213C IGEO(35) : ISVIS : Solid properties (cf Navier Stokes viscosity)
214C IGEO(36) : IGFLU : /PROP/PFLUID
215C IGEO(37) : NSPHDIR : SOL2SPH
216C IGEO(38) : IPARTSPH : SOL2SPH
217C IGEO(39) : ID_SENS : SOL2SPH
218C IGEO(40) : IAD_KNOT
219C IGEO(41) : POLYNOMIAL DEGREE in 1st direction
220C IGEO(42) : POLYNOMIAL DEGREE in 2nd direction
221C IGEO(43) : POLYNOMIAL DEGREE in 3rd direction
222C IGEO(44) : NUMBER OF CONTROL POINTS in 1st direction
223C IGEO(45) : NUMBER OF CONTROL POINTS in 2nd direction
224C IGEO(46) : NUMBER OF CONTROL POINTS in 3rd direction
225C IGEO(47) : INTEGRATION FORMULATION FLAG for PID51 (UNIFORM / GAUSS distribution)
226C IGEO(48) : DRAPE IDENTIFICATION NUMBER
227C IGEO(49) : =1 ORTHOTROPY ANGLE DEFINED AT ELEMENT LEVEL ( /PROP/TYPE19/51/52 )
228C =2 ORTHOTROPY ANGLE DEFINED AT STACK LEVEL ( /PROP/TYPE19/51/52 )
229C IGEO(50) : ITET10 : PID6 & PID14
230C IGEO(51) : PINCHING DOF (1=ENABLE, 0=DISABLE)
231C IGEO(52) : NUPARAM ! reserved for generic storage, don't use it for anything else !
232C IGEO(53) : NJFUNC ! reserved for generic storage, don't use it for anything else !
233C IGEO(54) : NJMAT ! reserved for generic storage, don't use it for anything else !
234C IGEO(55) : NJPID ! reserved for generic storage, don't use it for anything else !
235C IGEO(56) : NJTAB ! reserved for generic storage, don't use it for anything else !
236C IGEO(57) : IADBUF ! reserved for generic storage, don't use it for anything else !
237C IGEO(58) : IADFUN ! reserved for generic storage, don't use it for anything else !
238C IGEO(59) : IADMAT ! reserved for generic storage, don't use it for anything else !
239C IGEO(60) : IADPID ! reserved for generic storage, don't use it for anything else !
240C IGEO(61) : IADTAB ! reserved for generic storage, don't use it for anything else !
241C IGEO(62) : IALE_FLAG ! 1:Lagrange(default) 2:Euler 3:ALE
242C IGEO(63:100) : Unused
243C IGEO(101...) : Various data related to Integration points, Layers or Injectors (airbags)
244C=======================================================================
245C
246C--------------------------------------------------
247 WRITE(iout,1000)
248C----------------------
249 nbadi = 0
250 nsst_d = 0
251 nsst_ds= 0
252 npsh = 0
253 cvis =zero
254 iad_knot = 0
255c----------
256C Initialize variables used by all property types
257c----
258 CALL ini_prop_vars(prop_tag)
259c----------
260C--------------------------------------------------
261C START BROWSING MODEL PROPERTIES
262C--------------------------------------------------
263 CALL hm_option_start('PROPERTY')
264 i = 0
265C--------------------------------------------------
266C BROWSING MODEL PROPERTIES 1->HM_NUMGEO
267C--------------------------------------------------
268 DO cpt=1,hm_numgeo
269 i = i + 1
270 igflu = 0
271 IF(ale%GLOBAL%ICAA == 1)igflu=1
272 isorth = 0
273 ihgflu = 0
274c
275 fac_m = one
276 fac_l = one
277 fac_t = one
278 key = ''
279 solverkeyword = ''
280 idtitl = ''
281 e_type = 2
282C--------------------------------------------------
283C EXTRACT DATAS OF /PROP/... LINE
284C--------------------------------------------------
285 CALL hm_option_read_key(lsubmodel,
286 . option_id = prop_id,
287 . unit_id = uid,
288 . submodel_id = sub_id,
289 . submodel_index = sub_index,
290 . option_titr = idtitl,
291 . keyword2 = key)
292C--------------------------------------------------
293C CHECK IF UID IS EXISTING
294C--------------------------------------------------
295 iflagunit = 0
296 DO iunit=1,unitab%NUNITS
297 IF (unitab%UNIT_ID(iunit) == uid) THEN
298 iflagunit = 1
299 EXIT
300 ENDIF
301 ENDDO
302 IF (uid/=0.AND.iflagunit==0) THEN
303 CALL ancmsg(msgid=659,anmode=aninfo,msgtype=msgerror,
304 . i2=uid,i1=prop_id,c1='PROPERTY',
305 . c2='PROPERTY',
306 . c3=idtitl)
307 ENDIF
308C--------------------------------------------------
309C WRITE TITLE IN OUT FILE
310C--------------------------------------------------
311 CALL fretitl(idtitl,igeo(npropgi-ltitr+1,i),ltitr)
312 WRITE(iout,'(A40)') idtitl
313C--------------------------------------------------
314 igtyp=0
315 ihbe=0
316 ismstr=0
317 isrot=0
318 ipinch=0
319 pthk = zero
320c---------------------------------------
321 SELECT CASE(key(1:len_trim(key)))
322 CASE ('TYPE0','VOID')
323C--------------------------------------------------
324C HM READING PROPERTY TYPE0 (VOID)
325C--------------------------------------------------
326 igtyp=0
327 CALL hm_read_prop0(geo(1,i),igeo(1,i),prop_id,igtyp,unitab,lsubmodel)
328
329 CASE ('TYPE1','TYPE01','SHELL')
330C--------------------------------------------------
331C HM READING PROPERTY TYPE1 (SHELL)
332C--------------------------------------------------
333 igtyp=1
334 CALL hm_read_prop01(geo(1,i),igeo(1,i),prop_tag ,multi_fvm,igtyp,prop_id,idtitl,unitab,lsubmodel,
335 . defaults%SHELL)
336
337 CASE ('TYPE2','TYPE02','TRUS','truss')
338C--------------------------------------------------
339C HM READING PROPERTY TYPE2 (TRUSS)
340C--------------------------------------------------
341 IGTYP=2
342 CALL HM_READ_PROP02(IGTYP ,PROP_ID , IGEO(1,I) , GEO(1,I) ,PROP_TAG ,UNITAB ,IDTITL,LSUBMODEL )
343
344 CASE ('type3','type03','beam')
345C--------------------------------------------------
346C HM READING PROPERTY TYPE3 (BEAM)
347C--------------------------------------------------
348 IGTYP=3
349 CALL HM_READ_PROP03(GEO(1,I),IGEO(1,I),PROP_TAG,IGTYP,PROP_ID,IDTITL,UNITAB,LSUBMODEL)
350
351 CASE ('type4','type04','spring')
352C--------------------------------------------------
353C HM READING PROPERTY TYPE4 (SPRING)
354C--------------------------------------------------
355 IGTYP=4
356 CALL HM_READ_PROP04(GEO(1,I),IGEO(1,I),UNITAB,PROP_ID,IGTYP,PROP_TAG,LSUBMODEL)
357
358 CASE ('type6','type06','sol_orth')
359c------------------------------
360C HM READING PROPERTY TYPE6 (SOL_ORTH)
361c------------------------------
362 IGTYP=6
363 CALL HM_READ_PROP06(GEO(1,I),IGEO(1,I),PROP_TAG ,MULTI_FVM,IGTYP ,
364 . PROP_ID ,IDTITL ,UNITAB ,LSUBMODEL,RTRANS ,
365 . SUB_ID ,ISKN ,IPART ,SUB_INDEX,DEFAULTS%SOLID)
366
367 CASE ('type5','type05','rivet')
368c------------------------------
369C HM READING PROPERTY TYPE5 (RIVET)
370c------------------------------
371 IGTYP=5
372 CALL HM_READ_PROP05(GEO(1,I),IGEO(1,I),PROP_ID ,IGTYP ,IDTITL ,UNITAB ,LSUBMODEL )
373
374 CASE ('type8','type08','spr_gene')
375C--------------------------------------------------
376C HM READING PROPERTY TYPE8 (general spring)
377C--------------------------------------------------
378 IGTYP=8
379 CALL HM_READ_PROP08(GEO(1,I),IGEO(1,I),PROP_TAG ,IGTYP,PROP_ID,
380 . ISKN,UNITAB,IUNIT,IDTITL,LSUBMODEL,SUB_INDEX)
381
382
383 CASE ('type9','type09','sh_orth')
384C--------------------------------------------------
385C HM READING PROPERTY TYPE9 (Orthotropic shell)
386C--------------------------------------------------
387 IGTYP=9
388 CALL HM_READ_PROP09(IGTYP ,GEO(1,I),IGEO(1,I),PROP_TAG,UNITAB,
389 . RTRANS,LSUBMODEL,IDTITL ,PROP_ID ,SUB_ID,ISKN,DEFAULTS%SHELL)
390 CASE ('type10','sh_comp')
391C--------------------------------------------------
392C HM READING PROPERTY TYPE10
393C--------------------------------------------------
394 IGTYP=10
395 CALL HM_READ_PROP10(IGTYP ,GEO(1,I),IGEO(1,I),PROP_TAG,UNITAB,
396 . RTRANS,LSUBMODEL,IDTITL ,PROP_ID ,SUB_ID,ISKN,DEFAULTS%SHELL )
397 CASE ('type11','sh_sandw')
398C--------------------------------------------------
399C HM READING PROPERTY TYPE11 (Orthotropic shell)
400C--------------------------------------------------
401 IGTYP=11
402 CALL HM_READ_PROP11(GEO(1,I) ,IGEO(1,I) ,PM ,IPM ,ISKN ,
403 . UNITAB ,RTRANS ,LSUBMODEL,SUB_ID ,IDTITL ,
404 . PROP_TAG ,PROP_ID ,IGTYP ,DEFAULTS%SHELL )
405c
406 CASE ('type12','spr_pul')
407C--------------------------------------------------
408C HM READING PROPERTY TYPE12 (SPR_PUL)
409C--------------------------------------------------
410 IGTYP=12
411 CALL HM_READ_PROP12(GEO(1,I), IGEO(1,I),UNITAB, IGTYP, PROP_ID,
412 . PROP_TAG, IDTITL, LSUBMODEL)
413c
414 CASE ('type13','spr_beam')
415C--------------------------------------------------
416C HM READING PROPERTY TYPE13 (SPR_BEAM)
417C--------------------------------------------------
418 IGTYP=13
419 CALL HM_READ_PROP13(GEO(1,I),IGEO(1,I),PROP_ID, UNITAB, ISKN,
420 . IDTITL ,IGTYP ,PROP_TAG, LSUBMODEL,SUB_INDEX)
421
422 CASE ('type16','sh_fabr')
423C--------------------------------------------------
424C HM READING PROPERTY TYPE16 (Anisotropic Layered Shell Property)
425C--------------------------------------------------
426 IGTYP=16
427 CALL HM_READ_PROP16(GEO(1,I) ,IGEO(1,I),PM ,IPM ,ISKN ,
428 . UNITAB ,RTRANS ,LSUBMODEL,SUB_ID ,PROP_TAG ,
429 . IGTYP ,PROP_ID ,IDTITL,DEFAULTS%SHELL )
430
431 CASE ('type17','stack')
432C--------------------------------------------------
433C HM READING PROPERTY TYPE17 (Orthotropic shell)
434C--------------------------------------------------
435 IGTYP=17
436 NUMS = NUMGEO_STACK(CPT)
437 CALL HM_READ_PROP17(GEO(1,I) ,IGEO(1,I) ,PM ,IPM ,ISKN ,
438 . UNITAB ,RTRANS ,LSUBMODEL,SUB_ID ,IDTITL ,
439 . PROP_ID ,PROP_TAG ,STACK_INFO(NUMS),DEFAULTS%SHELL)
440
441 CASE ('type18','int_beam')
442C--------------------------------------------------
443C HM READING PROPERTY TYPE18 (INT_BEAM)
444C--------------------------------------------------
445 IGTYP=18
446 CALL HM_READ_PROP18(GEO(1,I),IGEO(1,I),PROP_TAG,IGTYP,PROP_ID,IDTITL,UNITAB,LSUBMODEL)
447
448 CASE('type19','ply')
449C--------------------------------------------------
450C HM READING PROPERTY TYPE19 (PLY)
451C--------------------------------------------------
452 IGTYP=19
453 ISTACK = 0
454 CALL HM_READ_PROP19(PROP_ID, IGTYP, ISTACK, GEO(1,I),IGEO(1,I),PM,IPM,UNITAB,IDRAPEID,
455 . LSUBMODEL)
456
457C--------------------------------------------------
458C HM READING PROPERTY TYPE14 (SOLID,FLUID)
459C--------------------------------------------------
460 CASE ('type14','solid')
461 IGTYP=14
462.AND. IF (ALE%GLOBAL%ICAA == 0 IGFLU == 0) THEN
463 CALL HM_READ_PROP14(GEO(1,I),IGEO(1,I),PROP_TAG ,MULTI_FVM,IGTYP,PROP_ID,IDTITL,UNITAB,LSUBMODEL,
464 . IPART ,DEFAULTS%SOLID)
465 ELSE
466 CALL HM_READ_PROP14F(GEO(1,I),IGEO(1,I),PROP_TAG ,MULTI_FVM,IGTYP,PROP_ID,IDTITL,UNITAB,LSUBMODEL,
467 . DEFAULTS%SOLID)
468 END IF
469 CASE ('fluid')
470 IGTYP=14
471 IGFLU=1
472 CALL HM_READ_PROP14F(GEO(1,I),IGEO(1,I),PROP_TAG ,MULTI_FVM,IGTYP,PROP_ID,IDTITL,UNITAB,LSUBMODEL,
473 . DEFAULTS%SOLID)
474
475C--------------------------------------------------
476C HM READING PROPERTY TYPE15 (POROUS)
477C--------------------------------------------------
478 CASE ('type15','porous')
479 IGTYP=15
480 CALL HM_READ_PROP15(PROP_ID ,IGTYP , GEO(1,I) , IGEO(1,I) ,PROP_TAG ,UNITAB ,
481 . LSUBMODEL,IDTITL , ISKN ,ITABM1 ,DEFAULTS%SOLID )
482
483 CASE ('type20','tshell')
484C--------------------------------------------------
485C HM READING PROPERTY TYPE20 (THICKSHELL)
486C--------------------------------------------------
487 IGTYP=20
488 CALL HM_READ_PROP20(GEO(1,I),IGEO(1,I),PROP_TAG ,MULTI_FVM,IGTYP,PROP_ID,IDTITL,UNITAB,LSUBMODEL,
489 . DEFAULTS%SOLID)
490
491 CASE ('type21','tsh_orth')
492C--------------------------------------------------
493C HM READING PROPERTY TYPE21 (Orthotropic Thick shell)
494C--------------------------------------------------
495
496 IGTYP=21
497 CALL HM_PROP_READ21(GEO(1,I) ,IGEO(1,I) ,PROP_ID ,ISKN ,UNITAB ,
498 . RTRANS ,LSUBMODEL ,SUB_ID,IDTITL ,IGTYP ,PROP_TAG,
499 . DEFAULTS%SOLID)
500 CASE ('type22','tsh_comp')
501C--------------------------------------------------
502C HM READING PROPERTY TYPE22 (Composite Thick shell)
503C--------------------------------------------------
504
505 IGTYP=22
506 CALL HM_READ_PROP22(GEO(1,I) ,IGEO(1,I) ,IGTYP,PROP_ID ,IDTITL ,UNITAB ,
507 . LSUBMODEL ,PM ,IPM ,RTRANS ,SUB_ID ,ISKN,PROP_TAG,
508 . DEFAULTS%SOLID)
509C--------------------------------------------------
510 CASE ('type23','spr_mat')
511C--------------------------------------------------
512C HM READING PROPERTY TYPE23 (SPR_MAT)
513C New spring defined as PID+MID
514C--------------------------------------------------
515 IGTYP=23
516 CALL HM_READ_PROP23(GEO(1,I),IGEO(1,I),PROP_ID ,IGTYP ,UNITAB,
517 . ISKN ,IDTITL ,LSUBMODEL , PROP_TAG,SUB_INDEX)
518c
519 CASE ('type25','spr_axi')
520C--------------------------------------------------
521C HM READING PROPERTY TYPE13 (SPR_BEAM)
522C--------------------------------------------------
523 IGTYP=25
524 CALL HM_READ_PROP25(GEO(1,I), IGEO(1,I), UNITAB, ISKN,IGTYP,
525 . PROP_ID,PROP_TAG,IDTITL,LSUBMODEL,SUB_INDEX)
526
527 CASE ('type26','spr_tab')
528C--------------------------------------------------
529C HM READING PROPERTY TYPE26 (SPR_TAB)
530C--------------------------------------------------
531 IGTYP=26
532 CALL HM_READ_PROP26(GEO(1,I), IGEO(1,I), UNITAB, PROP_ID,IGTYP,
533 . PROP_TAG,LSUBMODEL)
534c
535 CASE ('type27','spr_bdamp')
536C--------------------------------------------------
537C HM READING PROPERTY TYPE27 (SPR_BDAMP)
538C--------------------------------------------------
539 IGTYP=27
540 CALL HM_READ_PROP27(GEO(1,I),IGEO(1,I),PROP_TAG,IGTYP,PROP_ID,UNITAB,LSUBMODEL)
541c
542 CASE ('inject1')
543C--------------------------------------------------
544C HM READING PROPERTY TYPE0 (VOID)
545C--------------------------------------------------
546 IGTYP=0
547 CALL HM_READ_INJECT1(GEO(1,I),IGEO(1,I),PROP_TAG,IGTYP,PROP_ID,IDTITL,UNITAB,LSUBMODEL,IPM,PM,NPC,PLD)
548c
549 CASE ('inject2')
550C--------------------------------------------------
551C HM READING PROPERTY TYPE0 (VOID)
552C--------------------------------------------------
553 IGTYP=0
554 CALL HM_READ_INJECT2(GEO(1,I),IGEO(1,I),PROP_TAG,IGTYP,PROP_ID,IDTITL,UNITAB,LSUBMODEL,IPM,PM,NPC,PLD)
555c
556 CASE ('type51')
557C--------------------------------------------------
558C HM READING PROPERTY TYPE51
559C--------------------------------------------------
560 IGTYP= 51
561 NUMS = NUMGEO_STACK(CPT)
562 CALL HM_READ_PROP51(
563 . GEO(1,I) ,IGEO(1,I) ,PM ,IPM ,ISKN ,
564 . PROP_ID ,PROP_TAG ,RTRANS ,SUB_ID ,STACK_INFO(NUMS) ,
565 . IDTITL ,UNITAB ,LSUBMODEL,DEFAULTS%SHELL)
566c
567 CASE ('pcompp')
568C--------------------------------------------------
569C HM READING PROPERTY PCOMPP (Composite)
570C--------------------------------------------------
571 IGTYP=52
572c
573 IGEO( 1,I) = PROP_ID
574 IGEO(11,I)=IGTYP
575 GEO (12,I) = IGTYP ! double storage
576c------------------------------
577c
578 CASE DEFAULT
579C-----------------------------
580C GENERIC BRANCHING TO SO-CALLED "USER" PROPERTIES
581C-----------------------------
582 CALL HM_READ_PROP_GENERIC(
583 1 IGTYP ,PROP_ID ,IDTITL ,KEY ,GEO(1,I),
584 2 IGEO(1,I),LBUFGEO ,BUFGEO ,IADBUF ,UNITAB,
585 3 ISKN ,KNOT ,IAD_KNOT,PROP_TAG ,LSUBMODEL,
586 4 RTRANS ,SUB_ID ,IUNIT ,SUB_INDEX,DEFAULTS )
587
588 END SELECT ! SELECT CASE(IGTYP)
589c
590C-------- Variables stored in element buffer
591 PROP_SHELL = 0
592.OR..OR..OR..OR. IF (IGTYP == 1 IGTYP == 9 IGTYP == 10 IGTYP == 11
593.OR..OR..OR..OR. . IGTYP == 16 IGTYP == 17 IGTYP == 19 IGTYP == 51
594 . IGTYP == 52 ) PROP_SHELL = 1
595C
596 IF (PROP_SHELL == 1) THEN
597c---- Shells
598 PROP_TAG(IGTYP)%G_SIG = 0
599 PROP_TAG(IGTYP)%G_FOR = 5
600 PROP_TAG(IGTYP)%G_MOM = 3
601 PROP_TAG(IGTYP)%G_THK = 1
602 PROP_TAG(IGTYP)%G_EINT= 2
603 PROP_TAG(IGTYP)%G_EINS= 0
604 PROP_TAG(IGTYP)%L_SIG = 5
605 IF (IGTYP == 17) PROP_TAG(IGTYP)%L_SIGPLY = 3
606 PROP_TAG(IGTYP)%L_THK = 0
607 PROP_TAG(IGTYP)%L_EINT= 2
608 PROP_TAG(IGTYP)%L_EINS= 0
609 PROP_TAG(IGTYP)%G_VOL = 1
610 PROP_TAG(IGTYP)%L_VOL = 1
611 PROP_TAG(IGTYP)%LY_DMG = 2
612.OR..OR..OR. IF (IGTYP == 9 IGTYP == 10 IGTYP == 11
613.OR..OR. . IGTYP == 17 IGTYP == 51 IGTYP == 52 ) THEN
614 PROP_TAG(IGTYP)%LY_GAMA = 6
615 PROP_TAG(IGTYP)%LY_DIRA = 2
616 ELSEIF (IGTYP == 16) THEN
617 PROP_TAG(IGTYP)%LY_GAMA = 6
618 PROP_TAG(IGTYP)%LY_DIRA = 2
619 PROP_TAG(IGTYP)%LY_DIRB = 2
620 ENDIF
621 PROP_TAG(IGTYP)%LY_PLAPT = 1
622 PROP_TAG(IGTYP)%LY_SIGPT = 5
623 PROP_TAG(IGTYP)%G_FORPG = 5
624 PROP_TAG(IGTYP)%G_MOMPG = 3
625 PROP_TAG(IGTYP)%G_STRPG = 8
626C
627.OR. IF((IGTYP == 11 IGTYP == 17 ) ) PROP_TAG(IGTYP)%LY_DMG = 2
628.OR..OR..OR. IF (IGTYP == 9 IGTYP == 10 IGTYP == 11
629.OR..OR..OR. . IGTYP == 16 IGTYP == 17 IGTYP == 51
630 . IGTYP == 52 ) PROP_TAG(IGTYP)%L_OFF = 1
631 ENDIF
632C
633 ENDDO
634c
635C ---------------- C
636C FOR TYPE 19 PROP
637C ---------------- C
638 NPLYMAX = 0
639 DO CPT = 1, HM_NUMGEO
640 IF (IGEO(11, CPT) == 19) THEN
641 NPLYMAX = NPLYMAX + 1
642 IGEO(102, CPT) = NPLYMAX
643 ENDIF
644 ENDDO
645C
646C For TYPE 17 & 51
647C
648 DO CPT = 1, HM_NUMGEO
649 IGTYP=IGEO(11,CPT)
650 NUMS= NUMGEO_STACK(CPT)
651.OR. IF (IGTYP == 17 IGTYP == 51 ) THEN
652 ! Initialization of stack thickness
653 GEO(1,CPT) = ZERO
654C--- generalizing ZSHIFT ! keep only IPOS= 2 as before
655 IPOS =IGEO(99,CPT)
656 ZSHIFT = GEO(199, CPT)
657 IF(IPOS == 0 )THEN
658 ZSHIFT = - HALF
659 ELSEIF(IPOS == 3) THEN
660 ZSHIFT = -ONE
661 ELSEIF(IPOS == 4) THEN
662 ZSHIFT = ZERO
663 ENDIF
664 GEO(199, CPT) = ZSHIFT
665 N1 = IGEO(4,CPT)
666 DO 100 J =1 , N1
667C ply of stack JPID
668 JPID = STACK_INFO(NUMS)%PID(J)
669 IF (JPID > 0) THEN
670 DO K=1,HM_NUMGEO
671 NSTACK = 0
672.AND. IF (IGEO(1,K) == JPID IGEO(11,K)==19) THEN
673 STACK_INFO(NUMS)%PID(J) = K
674C number of stack where ply is attached
675 NSTACK = IGEO(42,K)
676 NSTACK = NSTACK + 1
677 IGEO(42 ,K) = NSTACK
678C stack where ply belongs
679 IGEO(200 + NSTACK ,K) = CPT
680C update ply thickness
681 GEO(1,CPT) = GEO(1,CPT) + GEO(1,K)
682 GOTO 100
683 ENDIF
684 ENDDO
685 CALL FRETITL2(TITR1,IGEO(NPROPGI-LTITR+1,CPT),LTITR)
686 CALL ANCMSG(MSGID=373,
687 . MSGTYPE=MSGERROR,
688 . ANMODE=ANINFO_BLIND_1,
689 . I1=IGEO(1,CPT),C1=TITR1,
690 . C2='property',
691 . I2=JPID)
692 ENDIF
693 100 CONTINUE
694C interface substack
695 NISUB = IGEO(44,CPT)
696 IF (NISUB > 0) THEN
697 DO 110 J =1 , NISUB
698 JPID1 = STACK_INFO(NUMS)%ISUB( 3*(J-1) + 1 )
699 JPID2 = STACK_INFO(NUMS)%ISUB( 3*(J-1) + 2 )
700.OR. IF (JPID1 > 0 JPID2 > 0) THEN
701 DO K=1,NUMGEO
702 NSTACK = 0
703 IF (IGEO(1,K) == JPID1) THEN
704 STACK_INFO(NUMS)%ISUB (3*(J-1) + 1) = K
705 GOTO 110
706 ELSEIF (IGEO(1,K) == JPID2) THEN
707 STACK_INFO(NUMS)%ISUB (3*(J-1) + 2) = K
708 GOTO 110
709 ENDIF
710 ENDDO
711 CALL FRETITL2(TITR1,IGEO(NPROPGI-LTITR+1,CPT),LTITR)
712 CALL ANCMSG(MSGID=373,
713 . MSGTYPE=MSGERROR,
714 . ANMODE=ANINFO_BLIND_1,
715 . I1=IGEO(1,CPT),C1=TITR1,
716 . C2='property',
717 . I2=JPID1)
718 CALL FRETITL2(TITR1,IGEO(NPROPGI-LTITR+1,CPT),LTITR)
719 CALL ANCMSG(MSGID=373,
720 . MSGTYPE=MSGERROR,
721 . ANMODE=ANINFO_BLIND_1,
722 . I1=IGEO(1,CPT),C1=TITR1,
723 . C2='property',
724 . I2=JPID2)
725.OR. ENDIF ! IF (JPID1 > 0 JPID2 > 0)
726 110 CONTINUE
727 ENDIF ! IF (NISUB > 0)
728C
729
730 DO J=1,N1
731 JPID = STACK_INFO(NUMS)%PID(J)
732 STACK_INFO(NUMS)%THK(J) = GEO(1,JPID)
733 STACK_INFO(NUMS)%DIR(J) = GEO(212,JPID) ! angle (DIR1,DIR2) - for compatibility of law58 with PID51)
734 STACK_INFO(NUMS)%MID(J) = IGEO(101,JPID)
735 ENDDO
736C
737C error message for no mixed law with TYPE_17
738C
739 J=STACK_INFO(NUMS)%MID(1)
740 MLAWLY = IPM(2,J)
741 PROP_ID = IGEO(1,CPT)
742C-----OTHER ply
743 DO 350 N=2,N1
744 J = STACK_INFO(NUMS)%MID(N)
745 MID = IPM(1,J)
746 IF (IGTYP == 51) GOTO 350
747 IF (IPM(2,J) == MLAWLY) GOTO 350
748 WRITE(LAW_ID,'(i2)')MLAWLY
749 IF (MLAWLY==99) LAW_ID='user'
750 CALL ANCMSG(MSGID=899,
751 . MSGTYPE=MSGERROR,
752 . ANMODE=ANINFO_BLIND_1,
753 . I1=PROP_ID,
754 . C1=IDTITL,
755 . I2=MID,
756 . C2=LAW_ID)
757 350 CONTINUE
758C
759 ENDIF ! begin igtype = 17
760 ENDDO ! DO CPT = 1, HM_NUMGEO
761C
762C check composite shell properties for mix of user and radioss material laws in different layers
763C
764 DO CPT = 1, HM_NUMGEO
765 IGTYP = IGEO(11,CPT)
766 PROP_ID = IGEO(1,CPT)
767 N1 = IGEO(4,CPT)
768 NUMS = NUMGEO_STACK(CPT)
769!
770.OR. IF (IGTYP == 17 IGTYP == 51) THEN
771 MAT_USR = 0
772 MAT_RAD = 0
773 DO N =1,N1
774 IMAT = STACK_INFO(NUMS)%MID(N)
775 MLAWLY = MAT_PARAM(IMAT)%ILAW
776.and..or..or. IF (MLAWLY > 28 MLAWLY < 32 MLAWLY == 99 MLAWLY == 200) THEN
777 MAT_USR = 1
778 ELSE
779 MAT_RAD = 1
780 END IF
781 ENDDO
782 ! Error if mixing user material laws with internal radioss laws in composite stack
783.AND. IF (MAT_USR == 1 MAT_RAD == 1) THEN
784 CALL ANCMSG(MSGID=3113,MSGTYPE=MSGERROR,ANMODE=ANINFO_BLIND_2,
785 . I1=IGTYP, I2=PROP_ID)
786 END IF
787 ENDIF ! IGTYP
788 ENDDO ! NUMGEO
789C------------------------------
790C SQRT precalculation
791C------------------------------
792 DO I = 1, NUMGEO
793 GEO(100,I) = SQRT(GEO(38,I)) ! SHFSR
794 END DO
795C-------------------------------------
796C Searching for duplicated prop_ids
797C-------------------------------------
798 RBID = ZERO
799 CALL VDOUBLE(IGEO(1,1),NPROPGI,NUMGEO,MESS,0,RBID)
800
801C-------------------------------
802 RETURN
803C-------------------------------
804 1000 FORMAT(//
805 & 5X,' property sets'/,
806 & 5X,' -------------'//)
#define my_real
Definition cppsort.cpp:32
subroutine hm_option_start(entity_type)
subroutine hm_read_prop01(geo, igeo, prop_tag, multi_fvm, igtyp, ig, idtitl, unitab, lsubmodel, defaults_shell)
subroutine hm_read_prop0(geo, igeo, ig, igtyp, unitab, lsubmodel)
subroutine ini_prop_vars(prop_tag)
type(ale_) ale
Definition ale_mod.F:253
integer, parameter nchartitle
integer, parameter ncharkey
integer, parameter ncharfield
integer, parameter ncharline
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