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)

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 )

Definition at line 75 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
98C-----------------------------------------------
99C I m p l i c i t T y p e s
100C-----------------------------------------------
101#include "implicit_f.inc"
102C-----------------------------------------------
103C C o m m o n B l o c k s
104C-----------------------------------------------
105#include "units_c.inc"
106#include "com04_c.inc"
107#include "param_c.inc"
108#include "scr17_c.inc"
109#include "tablen_c.inc"
110C-----------------------------------------------
111C D u m m y A r g u m e n t s
112C-----------------------------------------------
113 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
114 INTEGER IX(*),ITABM1(*),LBUFGEO,ISKN(LISKN,*),
115 . IGEO(NPROPGI,*),IPM(NPROPMI,*),NPC(*),
116 . IPART(LIPART1,*),IDRAPEID(*),NUMGEO_STACK(NUMGEO+NUMSTACK),
117 . NPROP_STACK,IADBUF
118 TYPE(SUBMODEL_DATA) LSUBMODEL(NSUBMOD)
119 my_real geo(npropg,numgeo), x(*), pm(npropm,nummat),pld(*),rtrans(ntransf,*),knot(*)
120
121 DOUBLE PRECISION BUFGEO(*)
122
123 TYPE(PROP_TAG_) , DIMENSION(0:MAXPROP) :: PROP_TAG
124 TYPE(STACK_INFO_ ) , DIMENSION (NPROP_STACK) :: STACK_INFO
125 TYPE(MULTI_FVM_STRUCT) :: MULTI_FVM
126 TYPE(DEFAULTS_), INTENT(INOUT) :: DEFAULTS
127C-----------------------------------------------
128C L o c a l V a r i a b l e s
129C-----------------------------------------------
130 CHARACTER LAW_ID*4
131 INTEGER I, PROP_ID, IGTYP, ISMSTR, NIP, J, IR1X, IR1Y, IR1Z, IREP,
132 . IR2X, IR2Y, IR2Z, ISHEAR, IRX, IROT, IMODE, IP, ISTRAIN,I8PT,
133 . ISK,ITU,IRB,IHON,IHBE,IPLAST,ITHK,IBID,IHBEOUTP,K,N,
134 . IGFLU, IDS, NSHELL, NSHSUP, NSHINF, FLGBADI, NBADI,IUNIT,UID,
135 . NSST_D, NSST_DS, NPSH, ICPRE, ICSTR ,NPTS,ISEN,ISORTH,
136 . PID1,IPID1, IHGFLU, IHBE_OLD,NSTACK,NN,NUMS
137 INTEGER ISH3N,IFLAGUNIT,ICXFEM, IPPID,IPMAT,IPANG,IPTHK,
138 . IPPOS, JPID,N1,IPOS,ISROT,MLAWLY,MID,SUB_ID,
139 . PROP_SHELL,PROP_TSHEL,PROP_SOLID,PROP_SPH,PROP_BEAM,
140 . IAD_KNOT,IPDIR,ISTACK,PROP_TRUSS,PROP_SPRING,PROP_NSTRAND,IPINCH
141
142 INTEGER JPID1,JPID2,NISUB,IPISUB,IFRAM,E_TYPE,OFF_DEF(NSUBMOD),CPT,
143 . CPT1,SUB_INDEX
144 my_real fn, ft, dx, angl,pun,htest,hclos,cvis,rbid,vx,vy,vz,
145 . fac_l,fac_t,fac_m, tmin,tmax,dt,thickt,ierrel,dn_p,zshift,pthk
146 CHARACTER(LEN=NCHARLINE) :: IDTITL,KEY,SOLVERKEYWORD
147 CHARACTER MESS*40
148 CHARACTER(LEN=NCHARKEY) :: KEY2
149 CHARACTER(LEN=NCHARFIELD) ::STRING
150 CHARACTER(LEN=NCHARTITLE) :: TITR1
151 CHARACTER CHROT*7
152 DATA nshell /0/, nshsup /0/, nshinf /0/
153C-----------------------------------------------
154C E x t e r n a l F u n c t i o n s
155C-----------------------------------------------
156 INTEGER USR2SYS
157 DATA mess/'PID DEFINITION '/
158 DATA pun/0.1/
159C----------------------
160C GEO(3) : ISMSTR
161C GEO(5) : DT (ISMSTR=3 SAUF SOLIDES)
162C GEO(7) : VX coques/solides ortho - vecteur de reference
163C GEO(8) : VY
164C GEO(9) : VZ
165C GEO(11): ISTRAIN (COQUE)
166C GEO(12): IGTYP -> IGEO(11)
167C GEO(35): ITHK
168C GEO(37): ISHEAR
169C GEO(38): FSHEAR
170C GEO(39): IPLAST
171C GEO(40): PROP_ID v50 -> IGEO(1)
172C GEO(42): PTHK
173C GEO(43): FAILEXP
174C GEO(20:34) : Milieu poreux (briques)
175C GEO(129): HCLOS (briques)
176C GEO(130): HTEST (briques)
177C GEO(131:170): LIBRE
178C GEO(171): IHBE
179C GEO(212): ANGLE BETWEEN two orthotropy directions (DIR1,DIR2) for
180C the PID with LAW58
181C-------------------
182C nouveau stockage:
183C IGEO(1) : PROP_ID
184C IGEO(2) : ISK
185C IGEO(3) : ISEN
186C IGEO(4) : NIP
187C IGEO(5) : ISMSTR
188C IGEO(6) : IREP
189C IGEO(7) : ITHK
190C IGEO(8) : ISHEAR
191C IGEO(9) : IPLAST
192C IGEO(10) : IHBE
193C IGEO(11) : IGTYP
194C IGEO(12) : ISTRAIN
195C IGEO(13) : ICPRE
196C IGEO(14) : ICSTR
197C IGEO(15) : IINT
198C IGEO(16) : IFRAM
199C IGEO(17) : ISORTH
200C IGEO(18) : ISH3N
201C IGEO(19) : ICXFEM
202C IGEO(20) : ISROT
203C ITET4 : PID6 & PID14
204C NFUNC : PID26
205C IGEO(21) : NFUND : PID26
206C IGEO(22) : I_INJECT : Injectors (1:'INJECT1' or 2:'INJECT2')
207C IGEO(23) : NGASES : Injectors
208C IGEO(25) : F_IDMASS : /PROP/INJECT2
209C IGEO(26) : F_IDTEMP : /PROP/INJECT2
210C IGEO(27) and IGEO(28) are reserved for generic storage, don't use it for anything else !
211C IGEO(27) : NUVAR(1) : NUMBER OF USER ELEMENT VARIABLES
212C IGEO(28) : NUVAR(2) : NUMBER OF USER ELEMENT VARIABLES PER NODE (/PROP/NSTRAND)
213C IGEO(30) : NLAY : /PROP/TYPE22
214C IGEO(32) : ISLV
215C IGEO(33) : IVIS : Solid properties
216C IGEO(34) : IVISC0 : Solid properties
217C IGEO(35) : ISVIS : Solid properties (cf Navier Stokes viscosity)
218C IGEO(36) : IGFLU : /PROP/PFLUID
219C IGEO(37) : NSPHDIR : SOL2SPH
220C IGEO(38) : IPARTSPH : SOL2SPH
221C IGEO(39) : ID_SENS : SOL2SPH
222C IGEO(40) : IAD_KNOT
223C IGEO(41) : POLYNOMIAL DEGREE in 1st direction
224C IGEO(42) : POLYNOMIAL DEGREE in 2nd direction
225C IGEO(43) : POLYNOMIAL DEGREE in 3rd direction
226C IGEO(44) : NUMBER OF CONTROL POINTS in 1st direction
227C IGEO(45) : NUMBER OF CONTROL POINTS in 2nd direction
228C IGEO(46) : NUMBER OF CONTROL POINTS in 3rd direction
229C IGEO(47) : INTEGRATION FORMULATION FLAG for PID51 (UNIFORM / GAUSS distribution)
230C IGEO(48) : DRAPE IDENTIFICATION NUMBER
231C IGEO(49) : =1 ORTHOTROPY ANGLE DEFINED AT ELEMENT LEVEL ( /PROP/TYPE19/51/52 )
232C =2 ORTHOTROPY ANGLE DEFINED AT STACK LEVEL ( /PROP/TYPE19/51/52 )
233C IGEO(50) : ITET10 : PID6 & PID14
234C IGEO(51) : PINCHING DOF (1=ENABLE, 0=DISABLE)
235C IGEO(52) : NUPARAM ! reserved for generic storage, don't use it for anything else !
236C IGEO(53) : NJFUNC ! reserved for generic storage, don't use it for anything else !
237C IGEO(54) : NJMAT ! reserved for generic storage, don't use it for anything else !
238C IGEO(55) : NJPID ! reserved for generic storage, don't use it for anything else !
239C IGEO(56) : NJTAB ! reserved for generic storage, don't use it for anything else !
240C IGEO(57) : IADBUF ! reserved for generic storage, don't use it for anything else !
241C IGEO(58) : IADFUN ! reserved for generic storage, don't use it for anything else !
242C IGEO(59) : IADMAT ! reserved for generic storage, don't use it for anything else !
243C IGEO(60) : IADPID ! reserved for generic storage, don't use it for anything else !
244C IGEO(61) : IADTAB ! reserved for generic storage, don't use it for anything else !
245C IGEO(62) : IALE_FLAG ! 1:Lagrange(default) 2:Euler 3:ALE
246C IGEO(63:100) : Unused
247C IGEO(101...) : Various data related to Integration points, Layers or Injectors (airbags)
248C=======================================================================
249C
250C--------------------------------------------------
251 WRITE(iout,1000)
252C----------------------
253 nbadi = 0
254 nsst_d = 0
255 nsst_ds= 0
256 npsh = 0
257 cvis =zero
258 iad_knot = 0
259c----------
260C Initialize variables used by all property types
261c----
262 CALL ini_prop_vars(prop_tag)
263c----------
264C--------------------------------------------------
265C START BROWSING MODEL PROPERTIES
266C--------------------------------------------------
267 CALL hm_option_start('PROPERTY')
268 i = 0
269C--------------------------------------------------
270C BROWSING MODEL PROPERTIES 1->HM_NUMGEO
271C--------------------------------------------------
272 DO cpt=1,hm_numgeo
273 i = i + 1
274 igflu = 0
275 IF(ale%GLOBAL%ICAA == 1)igflu=1
276 isorth = 0
277 ihgflu = 0
278c
279 fac_m = one
280 fac_l = one
281 fac_t = one
282 key = ''
283 solverkeyword = ''
284 idtitl = ''
285 e_type = 2
286C--------------------------------------------------
287C EXTRACT DATAS OF /PROP/... LINE
288C--------------------------------------------------
289 CALL hm_option_read_key(lsubmodel,
290 . option_id = prop_id,
291 . unit_id = uid,
292 . submodel_id = sub_id,
293 . submodel_index = sub_index,
294 . option_titr = idtitl,
295 . keyword2 = key)
296C--------------------------------------------------
297C CHECK IF UID IS EXISTING
298C--------------------------------------------------
299 iflagunit = 0
300 DO iunit=1,unitab%NUNITS
301 IF (unitab%UNIT_ID(iunit) == uid) THEN
302 iflagunit = 1
303 EXIT
304 ENDIF
305 ENDDO
306 IF (uid/=0.AND.iflagunit==0) THEN
307 CALL ancmsg(msgid=659,anmode=aninfo,msgtype=msgerror,
308 . i2=uid,i1=prop_id,c1='property',
309 . C2='property',
310 . C3=IDTITL)
311 ENDIF
312C--------------------------------------------------
313C WRITE TITLE IN OUT FILE
314C--------------------------------------------------
315 CALL FRETITL(IDTITL,IGEO(NPROPGI-LTITR+1,I),LTITR)
316 WRITE(IOUT,'(a40)') IDTITL
317C--------------------------------------------------
318 IGTYP=0
319 IHBE=0
320 ISMSTR=0
321 ISROT=0
322 IPINCH=0
323 PTHK = ZERO
324c---------------------------------------
325 SELECT CASE(KEY(1:LEN_TRIM(KEY)))
326 CASE ('type0','void')
327C--------------------------------------------------
328C HM READING PROPERTY TYPE0 (VOID)
329C--------------------------------------------------
330 IGTYP=0
331 CALL HM_READ_PROP0(GEO(1,I),IGEO(1,I),PROP_ID,IGTYP,UNITAB,LSUBMODEL)
332
333 CASE ('type1','type01','shell')
334C--------------------------------------------------
335C HM READING PROPERTY TYPE1 (SHELL)
336C--------------------------------------------------
337 IGTYP=1
338 CALL HM_READ_PROP01(GEO(1,I),IGEO(1,I),PROP_TAG ,MULTI_FVM,IGTYP,PROP_ID,IDTITL,UNITAB,LSUBMODEL,
339 . DEFAULTS%SHELL)
340
341 CASE ('type2','type02','trus','truss')
342C--------------------------------------------------
343C HM READING PROPERTY TYPE2 (TRUSS)
344C--------------------------------------------------
345 IGTYP=2
346 CALL HM_READ_PROP02(IGTYP ,PROP_ID , IGEO(1,I) , GEO(1,I) ,PROP_TAG ,UNITAB ,IDTITL,LSUBMODEL )
347
348 CASE ('type3','type03','beam')
349C--------------------------------------------------
350C HM READING PROPERTY TYPE3 (BEAM)
351C--------------------------------------------------
352 IGTYP=3
353 CALL HM_READ_PROP03(GEO(1,I),IGEO(1,I),PROP_TAG,IGTYP,PROP_ID,IDTITL,UNITAB,LSUBMODEL)
354
355 CASE ('type4','type04','spring')
356C--------------------------------------------------
357C HM READING PROPERTY TYPE4 (SPRING)
358C--------------------------------------------------
359 IGTYP=4
360 CALL HM_READ_PROP04(GEO(1,I),IGEO(1,I),UNITAB,PROP_ID,IGTYP,IDTITL,PROP_TAG,LSUBMODEL,IUNIT)
361
362 CASE ('type6','type06','sol_orth')
363c------------------------------
364C HM READING PROPERTY TYPE6 (SOL_ORTH)
365c------------------------------
366 IGTYP=6
367 CALL HM_READ_PROP06(GEO(1,I),IGEO(1,I),PROP_TAG ,MULTI_FVM,IGTYP ,
368 . PROP_ID ,IDTITL ,UNITAB ,LSUBMODEL,RTRANS ,
369 . SUB_ID ,ISKN ,IPART ,SUB_INDEX,DEFAULTS%SOLID)
370
371 CASE ('type5','type05','rivet')
372c------------------------------
373C HM READING PROPERTY TYPE5 (RIVET)
374c------------------------------
375 IGTYP=5
376 CALL HM_READ_PROP05(GEO(1,I),IGEO(1,I),PROP_ID ,IGTYP ,IDTITL ,UNITAB ,LSUBMODEL )
377
378 CASE ('type8','type08','spr_gene')
379C--------------------------------------------------
380C HM READING PROPERTY TYPE8 (general spring)
381C--------------------------------------------------
382 IGTYP=8
383 CALL HM_READ_PROP08(GEO(1,I),IGEO(1,I),PROP_TAG ,IGTYP,PROP_ID,
384 . ISKN,UNITAB,IUNIT,IDTITL,LSUBMODEL,SUB_INDEX)
385
386
387 CASE ('type9','type09','sh_orth')
388C--------------------------------------------------
389C HM READING PROPERTY TYPE9 (Orthotropic shell)
390C--------------------------------------------------
391 IGTYP=9
392 CALL HM_READ_PROP09(IGTYP ,GEO(1,I),IGEO(1,I),PROP_TAG,UNITAB,
393 . RTRANS,LSUBMODEL,IDTITL ,PROP_ID ,SUB_ID,ISKN,DEFAULTS%SHELL)
394 CASE ('type10','sh_comp')
395C--------------------------------------------------
396C HM READING PROPERTY TYPE10
397C--------------------------------------------------
398 IGTYP=10
399 CALL HM_READ_PROP10(IGTYP ,GEO(1,I),IGEO(1,I),PROP_TAG,UNITAB,
400 . RTRANS,LSUBMODEL,IDTITL ,PROP_ID ,SUB_ID,ISKN,DEFAULTS%SHELL )
401 CASE ('type11','sh_sandw')
402C--------------------------------------------------
403C HM READING PROPERTY TYPE11 (Orthotropic shell)
404C--------------------------------------------------
405 IGTYP=11
406 CALL HM_READ_PROP11(GEO(1,I) ,IGEO(1,I) ,PM ,IPM ,ISKN ,
407 . UNITAB ,RTRANS ,LSUBMODEL,SUB_ID ,IDTITL ,
408 . PROP_TAG ,PROP_ID ,IGTYP ,DEFAULTS%SHELL )
409c
410 CASE ('type12','spr_pul')
411C--------------------------------------------------
412C HM READING PROPERTY TYPE12 (SPR_PUL)
413C--------------------------------------------------
414 IGTYP=12
415 CALL HM_READ_PROP12(GEO(1,I), IGEO(1,I),UNITAB, IGTYP, PROP_ID,
416 . PROP_TAG, IDTITL, LSUBMODEL)
417c
418 CASE ('type13','spr_beam')
419C--------------------------------------------------
420C HM READING PROPERTY TYPE13 (SPR_BEAM)
421C--------------------------------------------------
422 igtyp=13
423 CALL hm_read_prop13(geo(1,i),igeo(1,i),prop_id, unitab, iskn,
424 . idtitl ,igtyp ,prop_tag, lsubmodel,sub_index)
425
426 CASE ('TYPE16','SH_FABR')
427C--------------------------------------------------
428C HM READING PROPERTY TYPE16 (Anisotropic Layered Shell Property)
429C--------------------------------------------------
430 igtyp=16
431 CALL hm_read_prop16(geo(1,i) ,igeo(1,i),pm ,ipm ,iskn ,
432 . unitab ,rtrans ,lsubmodel,sub_id ,prop_tag ,
433 . igtyp ,prop_id ,idtitl,defaults%SHELL )
434
435 CASE ('TYPE17','STACK')
436C--------------------------------------------------
437C HM READING PROPERTY TYPE17 (Orthotropic shell)
438C--------------------------------------------------
439 igtyp=17
440 nums = numgeo_stack(cpt)
441 CALL hm_read_prop17(geo(1,i) ,igeo(1,i) ,pm ,ipm ,iskn ,
442 . unitab ,rtrans ,lsubmodel,sub_id ,idtitl ,
443 . prop_id ,prop_tag ,stack_info(nums),defaults%SHELL)
444
445 CASE ('TYPE18','INT_BEAM')
446C--------------------------------------------------
447C HM READING PROPERTY TYPE18 (INT_BEAM)
448C--------------------------------------------------
449 igtyp=18
450 CALL hm_read_prop18(geo(1,i),igeo(1,i),prop_tag,igtyp,prop_id,idtitl,unitab,lsubmodel)
451
452 CASE('TYPE19','PLY')
453C--------------------------------------------------
454C HM READING PROPERTY TYPE19 (PLY)
455C--------------------------------------------------
456 igtyp=19
457 istack = 0
458 CALL hm_read_prop19(prop_id, igtyp, istack, geo(1,i),igeo(1,i),pm,ipm,unitab,idrapeid,
459 . lsubmodel)
460
461C--------------------------------------------------
462C HM READING PROPERTY TYPE14 (SOLID,FLUID)
463C--------------------------------------------------
464 CASE ('TYPE14','SOLID')
465 igtyp=14
466 IF (ale%GLOBAL%ICAA == 0 .AND. igflu == 0) THEN
467 CALL hm_read_prop14(geo(1,i),igeo(1,i),prop_tag ,multi_fvm,igtyp,prop_id,idtitl,unitab,lsubmodel,
468 . ipart ,defaults%SOLID)
469 ELSE
470 CALL hm_read_prop14f(geo(1,i),igeo(1,i),prop_tag ,multi_fvm,igtyp,prop_id,idtitl,unitab,lsubmodel,
471 . defaults%SOLID)
472 END IF
473 CASE ('FLUID')
474 igtyp=14
475 igflu=1
476 CALL hm_read_prop14f(geo(1,i),igeo(1,i),prop_tag ,multi_fvm,igtyp,prop_id,idtitl,unitab,lsubmodel,
477 . defaults%SOLID)
478
479C--------------------------------------------------
480C HM READING PROPERTY TYPE15 (POROUS)
481C--------------------------------------------------
482 CASE ('TYPE15','POROUS')
483 igtyp=15
484 CALL hm_read_prop15(prop_id ,igtyp , geo(1,i) , igeo(1,i) ,prop_tag ,unitab ,
485 . lsubmodel,idtitl , iskn ,itabm1 ,defaults%SOLID )
486
487 CASE ('TYPE20','TSHELL')
488C--------------------------------------------------
489C HM READING PROPERTY TYPE20 (THICKSHELL)
490C--------------------------------------------------
491 igtyp=20
492 CALL hm_read_prop20(geo(1,i),igeo(1,i),prop_tag ,multi_fvm,igtyp,prop_id,idtitl,unitab,lsubmodel,
493 . defaults%SOLID)
494
495 CASE ('TYPE21','TSH_ORTH')
496C--------------------------------------------------
497C HM READING PROPERTY TYPE21 (Orthotropic Thick shell)
498C--------------------------------------------------
499
500 igtyp=21
501 CALL hm_prop_read21(geo(1,i) ,igeo(1,i) ,prop_id ,iskn ,unitab ,
502 . rtrans ,lsubmodel ,sub_id,idtitl ,igtyp ,prop_tag,
503 . defaults%SOLID)
504 CASE ('TYPE22','TSH_COMP')
505C--------------------------------------------------
506C HM READING PROPERTY TYPE22 (Composite Thick shell)
507C--------------------------------------------------
508
509 igtyp=22
510 CALL hm_read_prop22(geo(1,i) ,igeo(1,i) ,igtyp,prop_id ,idtitl ,unitab ,
511 . lsubmodel ,pm ,ipm ,rtrans ,sub_id ,iskn,prop_tag,
512 . defaults%SOLID)
513C--------------------------------------------------
514 CASE ('TYPE23','SPR_MAT')
515C--------------------------------------------------
516C HM READING PROPERTY TYPE23 (SPR_MAT)
517C New spring defined as PID+MID
518C--------------------------------------------------
519 igtyp=23
520 CALL hm_read_prop23(geo(1,i),igeo(1,i),prop_id ,igtyp ,unitab,
521 . iskn ,idtitl ,lsubmodel , prop_tag,sub_index)
522c
523 CASE ('TYPE25','SPR_AXI')
524C--------------------------------------------------
525C HM READING PROPERTY TYPE13 (SPR_BEAM)
526C--------------------------------------------------
527 igtyp=25
528 CALL hm_read_prop25(geo(1,i), igeo(1,i), unitab, iskn,igtyp,
529 . prop_id,prop_tag,idtitl,lsubmodel,sub_index)
530
531 CASE ('TYPE26','SPR_TAB')
532C--------------------------------------------------
533C HM READING PROPERTY TYPE26 (SPR_TAB)
534C--------------------------------------------------
535 igtyp=26
536 CALL hm_read_prop26(geo(1,i), igeo(1,i), unitab, prop_id,igtyp,
537 . prop_tag,idtitl,lsubmodel)
538c
539 CASE ('TYPE27','SPR_BDAMP')
540C--------------------------------------------------
541C HM READING PROPERTY TYPE27 (SPR_BDAMP)
542C--------------------------------------------------
543 igtyp=27
544 CALL hm_read_prop27(geo(1,i),igeo(1,i),prop_tag,igtyp,prop_id,unitab,lsubmodel)
545c
546 CASE ('INJECT1')
547C--------------------------------------------------
548C HM READING PROPERTY TYPE0 (VOID)
549C--------------------------------------------------
550 igtyp=0
551 CALL hm_read_inject1(geo(1,i),igeo(1,i),prop_tag,igtyp,prop_id,idtitl,unitab,lsubmodel,ipm,pm,npc,pld)
552c
553 CASE ('INJECT2')
554C--------------------------------------------------
555C HM READING PROPERTY TYPE0 (VOID)
556C--------------------------------------------------
557 igtyp=0
558 CALL hm_read_inject2(geo(1,i),igeo(1,i),prop_tag,igtyp,prop_id,idtitl,unitab,lsubmodel,ipm,pm,npc,pld)
559c
560 CASE ('TYPE51')
561C--------------------------------------------------
562C HM READING PROPERTY TYPE51
563C--------------------------------------------------
564 igtyp= 51
565 nums = numgeo_stack(cpt)
566 CALL hm_read_prop51(
567 . geo(1,i) ,igeo(1,i) ,pm ,ipm ,iskn ,
568 . prop_id ,prop_tag ,rtrans ,sub_id ,stack_info(nums) ,
569 . idtitl ,unitab ,lsubmodel,defaults%SHELL)
570c
571 CASE ('PCOMPP')
572C--------------------------------------------------
573C HM READING PROPERTY PCOMPP (Composite)
574C--------------------------------------------------
575 igtyp=52
576c
577 igeo( 1,i) = prop_id
578 igeo(11,i)=igtyp
579 geo(12,i) = igtyp ! double storage
580c------------------------------
581c
582 CASE DEFAULT
583C-----------------------------
584C GENERIC BRANCHING TO SO-CALLED "USER" PROPERTIES
585C-----------------------------
587 1 igtyp ,prop_id ,idtitl ,key ,geo(1,i),
588 2 igeo(1,i),lbufgeo ,bufgeo ,iadbuf ,unitab,
589 3 iskn ,knot ,iad_knot,prop_tag ,lsubmodel,
590 4 rtrans ,sub_id ,iunit ,sub_index,defaults )
591
592 END SELECT ! SELECT CASE(IGTYP)
593c
594C-------- Variables stored in element buffer
595 prop_shell = 0
596 IF (igtyp == 1 .OR. igtyp == 9 .OR. igtyp == 10 .OR. igtyp == 11 .OR.
597 . igtyp == 16 .OR. igtyp == 17 .OR. igtyp == 19 .OR. igtyp == 51 .OR.
598 . igtyp == 52 ) prop_shell = 1
599C
600 IF (prop_shell == 1) THEN
601c---- Shells
602 prop_tag(igtyp)%G_SIG = 0
603 prop_tag(igtyp)%G_FOR = 5
604 prop_tag(igtyp)%G_MOM = 3
605 prop_tag(igtyp)%G_THK = 1
606 prop_tag(igtyp)%G_EINT= 2
607 prop_tag(igtyp)%G_EINS= 0
608 prop_tag(igtyp)%L_SIG = 5
609 IF (igtyp == 17) prop_tag(igtyp)%L_SIGPLY = 3
610 prop_tag(igtyp)%L_THK = 0
611 prop_tag(igtyp)%L_EINT= 2
612 prop_tag(igtyp)%L_EINS= 0
613 prop_tag(igtyp)%G_VOL = 1
614 prop_tag(igtyp)%L_VOL = 1
615 prop_tag(igtyp)%LY_DMG = 2
616 IF (igtyp == 9 .OR. igtyp == 10 .OR. igtyp == 11 .OR.
617 . igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52 ) THEN
618 prop_tag(igtyp)%LY_GAMA = 6
619 prop_tag(igtyp)%LY_DIRA = 2
620 ELSEIF (igtyp == 16) THEN
621 prop_tag(igtyp)%LY_GAMA = 6
622 prop_tag(igtyp)%LY_DIRA = 2
623 prop_tag(igtyp)%LY_DIRB = 2
624 ENDIF
625 prop_tag(igtyp)%LY_PLAPT = 1
626 prop_tag(igtyp)%LY_SIGPT = 5
627 prop_tag(igtyp)%G_FORPG = 5
628 prop_tag(igtyp)%G_MOMPG = 3
629 prop_tag(igtyp)%G_STRPG = 8
630C
631 IF((igtyp == 11 .OR. igtyp == 17 ) ) prop_tag(igtyp)%LY_DMG = 2
632 IF (igtyp == 9 .OR. igtyp == 10 .OR. igtyp == 11 .OR.
633 . igtyp == 16 .OR. igtyp == 17 .OR. igtyp == 51 .OR.
634 . igtyp == 52 ) prop_tag(igtyp)%L_OFF = 1
635 ENDIF
636C
637 ENDDO
638c
639C ---------------- C
640C FOR TYPE 19 PROP
641C ---------------- C
642 nplymax = 0
643 DO cpt = 1, hm_numgeo
644 IF (igeo(11, cpt) == 19) THEN
645 nplymax = nplymax + 1
646 igeo(102, cpt) = nplymax
647 ENDIF
648 ENDDO
649C
650C For TYPE 17 & 51
651C
652 DO cpt = 1, hm_numgeo
653 igtyp=igeo(11,cpt)
654 nums= numgeo_stack(cpt)
655 IF (igtyp == 17 .OR. igtyp == 51 ) THEN
656 ! Initialization of stack thickness
657 geo(1,cpt) = zero
658C--- generalizing ZSHIFT ! keep only IPOS= 2 as before
659 ipos =igeo(99,cpt)
660 zshift = geo(199, cpt)
661 IF(ipos == 0 )THEN
662 zshift = - half
663 ELSEIF(ipos == 3) THEN
664 zshift = -one
665 ELSEIF(ipos == 4) THEN
666 zshift = zero
667 ENDIF
668 geo(199, cpt) = zshift
669 n1 = igeo(4,cpt)
670 DO 100 j =1 , n1
671C ply of stack JPID
672 jpid = stack_info(nums)%PID(j)
673 IF (jpid > 0) THEN
674 DO k=1,hm_numgeo
675 nstack = 0
676 IF (igeo(1,k) == jpid .AND.igeo(11,k)==19) THEN
677 stack_info(nums)%PID(j) = k
678C number of stack where ply is attached
679 nstack = igeo(42,k)
680 nstack = nstack + 1
681 igeo(42 ,k) = nstack
682C stack where ply belongs
683 igeo(200 + nstack ,k) = cpt
684C update ply thickness
685 geo(1,cpt) = geo(1,cpt) + geo(1,k)
686 GOTO 100
687 ENDIF
688 ENDDO
689 CALL fretitl2(titr1,igeo(npropgi-ltitr+1,cpt),ltitr)
690 CALL ancmsg(msgid=373,
691 . msgtype=msgerror,
692 . anmode=aninfo_blind_1,
693 . i1=igeo(1,cpt),c1=titr1,
694 . c2='PROPERTY',
695 . i2=jpid)
696 ENDIF
697 100 CONTINUE
698C interface substack
699 nisub = igeo(44,cpt)
700 IF (nisub > 0) THEN
701 DO 110 j =1 , nisub
702 jpid1 = stack_info(nums)%ISUB( 3*(j-1) + 1 )
703 jpid2 = stack_info(nums)%ISUB( 3*(j-1) + 2 )
704 IF (jpid1 > 0 .OR. jpid2 > 0) THEN
705 DO k=1,numgeo
706 nstack = 0
707 IF (igeo(1,k) == jpid1) THEN
708 stack_info(nums)%ISUB (3*(j-1) + 1) = k
709 GOTO 110
710 ELSEIF (igeo(1,k) == jpid2) THEN
711 stack_info(nums)%ISUB (3*(j-1) + 2) = k
712 GOTO 110
713 ENDIF
714 ENDDO
715 CALL fretitl2(titr1,igeo(npropgi-ltitr+1,cpt),ltitr)
716 CALL ancmsg(msgid=373,
717 . msgtype=msgerror,
718 . anmode=aninfo_blind_1,
719 . i1=igeo(1,cpt),c1=titr1,
720 . c2='PROPERTY',
721 . i2=jpid1)
722 CALL fretitl2(titr1,igeo(npropgi-ltitr+1,cpt),ltitr)
723 CALL ancmsg(msgid=373,
724 . msgtype=msgerror,
725 . anmode=aninfo_blind_1,
726 . i1=igeo(1,cpt),c1=titr1,
727 . c2='PROPERTY',
728 . i2=jpid2)
729 ENDIF ! IF (JPID1 > 0 .OR. JPID2 > 0)
730 110 CONTINUE
731 ENDIF ! IF (NISUB > 0)
732C
733
734 DO j=1,n1
735 jpid = stack_info(nums)%PID(j)
736 stack_info(nums)%THK(j) = geo(1,jpid)
737 stack_info(nums)%DIR(j) = geo(212,jpid) ! angle (DIR1,DIR2) - for compatibility of law58 with PID51)
738 stack_info(nums)%MID(j) = igeo(101,jpid)
739 ENDDO
740C
741C error message for no mixed law with TYPE_17
742C
743 j=stack_info(nums)%MID(1)
744 mlawly = nint(pm(19,j))
745 prop_id = igeo(1,cpt)
746C-----OTHER ply
747 DO 350 n=2,n1
748 j = stack_info(nums)%MID(n)
749 mid = ipm(1,j)
750 IF (igtyp == 51) GOTO 350
751 IF (nint(pm(19,j)) == mlawly) GOTO 350
752 WRITE(law_id,'(I2)')mlawly
753 IF (mlawly==99) law_id='USER'
754 CALL ancmsg(msgid=899,
755 . msgtype=msgerror,
756 . anmode=aninfo_blind_1,
757 . i1=prop_id,
758 . c1=idtitl,
759 . i2=mid,
760 . c2=law_id)
761 350 CONTINUE
762C
763C check for layer materials compatibility with TYPE_17 to add when cfg file ready
764C
765 IF (igtyp == 17) THEN
766 DO 450 n=1,n1
767 j = stack_info(nums)%MID(n)
768 mid = ipm(1,j)
769 jpid = stack_info(nums)%PID(n)
770 mlawly = nint(pm(19,j))
771 IF (mlawly == 15 .OR. mlawly == 25 .OR. mlawly == 27 .OR.
772 . (mlawly >= 29 .AND.mlawly <= 31).OR. mlawly == 36 .OR.
773 . mlawly == 72 .OR. mlawly == 99) GOTO 450
774C
775 WRITE(law_id,'(I2)')mlawly
776 CALL fretitl2(idtitl,igeo(npropgi-ltitr+1,jpid),ltitr)
777 CALL ancmsg(msgid=1202,
778 . msgtype=msgerror,
779 . anmode=aninfo,
780 . i1=igeo(1,jpid),
781 . c1=idtitl,
782 . i2=mid,
783 . c2=law_id,
784 . i3=mlawly)
785 450 CONTINUE
786 ENDIF !IF (IGTYP == 17) THEN
787 ENDIF ! begin igtype = 17
788 ENDDO ! DO CPT = 1, HM_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_inject1(geo, igeo, prop_tag, igtyp, prop_id, idtitl, unitab, lsubmodel, ipm, pm, npc, pld)
subroutine hm_read_inject2(geo, igeo, prop_tag, igtyp, prop_id, idtitl, unitab, lsubmodel, ipm, pm, npc, pld)
subroutine hm_read_prop13(geo, igeo, ig, unitab, iskn, idtitl, igtyp, prop_tag, lsubmodel, sub_index)
subroutine hm_read_prop14(geo, igeo, prop_tag, multi_fvm, igtyp, ig, titr, unitab, lsubmodel, ipart, defaults_solid)
subroutine hm_read_prop14f(geo, igeo, prop_tag, multi_fvm, igtyp, ig, titr, unitab, lsubmodel, defaults_solid)
subroutine hm_read_prop15(ig, igtyp, geo, igeo, prop_tag, unitab, lsubmodel, idtitl, iskn, itabm1, defaults_solid)
subroutine hm_read_prop16(geo, igeo, pm, ipm, iskn, unitab, rtrans, lsubmodel, sub_id, prop_tag, igtyp, ig, idtitl, defaults_shell)
subroutine hm_read_prop17(geo, igeo, pm, ipm, iskn, unitab, rtrans, lsubmodel, sub_id, idtitl, prop_id, prop_tag, stack_info, defaults_shell)
subroutine hm_read_prop18(geo, igeo, prop_tag, igtyp, ig, idtitl, unitab, lsubmodel)
subroutine hm_read_prop19(ig, igtyp, istack, geo, igeo, pm, ipm, unitab, idrapeid, lsubmodel)
subroutine hm_read_prop20(geo, igeo, prop_tag, multi_fvm, igtyp, ig, titr, unitab, lsubmodel, defaults_solid)
subroutine hm_prop_read21(geo, igeo, ig, iskn, unitab, rtrans, lsubmodel, sub_id, idtitl, igtyp, prop_tag, defaults_solid)
subroutine hm_read_prop22(geo, igeo, igtyp, ig, titr, unitab, lsubmodel, pm, ipm, rtrans, sub_id, iskn, prop_tag, defaults_solid)
subroutine hm_read_prop23(geo, igeo, ig, igtyp, unitab, iskn, titr, lsubmodel, prop_tag, sub_index)
subroutine hm_read_prop25(geo, igeo, unitab, iskn, igtyp, ig, prop_tag, idtitl, lsubmodel, sub_id)
subroutine hm_read_prop26(geo, igeo, unitab, ig, igtyp, prop_tag, idtitl, lsubmodel)
subroutine hm_read_prop27(geo, igeo, prop_tag, igtyp, ig, unitab, lsubmodel)
subroutine hm_read_prop51(geo, igeo, pm, ipm, iskn, prop_id, prop_tag, rtrans, sub_id, stack_info, titr, unitab, lsubmodel, defaults_shell)
subroutine hm_read_prop_generic(igtyp, ig, idtitl, keytype, geo, igeo, lbufgeo, bufgeo, iadbuf, unitab, iskn, knot, iad_knot, prop_tag, lsubmodel, rtrans, sub_id, iunit, sub_index, defaults)
subroutine ini_prop_vars(prop_tag)
type(ale_) ale
Definition ale_mod.F:249
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:889
subroutine fretitl2(titr, iasc, l)
Definition freform.F:804
subroutine vdouble(list, ilist, nlist, mess, ir, rlist)
Definition sysfus.F:884