OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_prop16.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| hm_read_prop16 ../starter/source/properties/shell/hm_read_prop16.F
25!||--- called by ------------------------------------------------------
26!|| hm_read_properties ../starter/source/properties/hm_read_properties.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../starter/source/output/message/message.F
29!|| fretitl2 ../starter/source/starter/freform.F
30!|| hm_get_float_array_index ../starter/source/devtools/hm_reader/hm_get_float_array_index.F
31!|| hm_get_floatv ../starter/source/devtools/hm_reader/hm_get_floatv.f
32!|| hm_get_int_array_index ../starter/source/devtools/hm_reader/hm_get_int_array_index.F
33!|| hm_get_intv ../starter/source/devtools/hm_reader/hm_get_intv.F
34!|| hm_option_is_encrypted ../starter/source/devtools/hm_reader/hm_option_is_encrypted.F
35!|| subrotvect ../starter/source/model/submodel/subrot.F
36!||--- uses -----------------------------------------------------
37!|| defaults_mod ../starter/source/modules/defaults_mod.F90
38!|| elbuftag_mod ../starter/share/modules1/elbuftag_mod.F
39!|| message_mod ../starter/share/message_module/message_mod.F
40!|| submodel_mod ../starter/share/modules1/submodel_mod.F
41!||====================================================================
42 SUBROUTINE hm_read_prop16(GEO ,IGEO ,PM ,IPM ,ISKN ,
43 . UNITAB ,RTRANS ,LSUBMODEL,SUB_ID ,PROP_TAG ,
44 . IGTYP ,IG ,IDTITL ,DEFAULTS_SHELL )
45C-----------------------------------------------
46C M o d u l e s
47C-----------------------------------------------
48 USE unitab_mod
49 USE elbuftag_mod
50 USE submodel_mod
51 USE message_mod
53 USE defaults_mod
54C-----------------------------------------------
55C I m p l i c i t T y p e s
56C-----------------------------------------------
57#include "implicit_f.inc"
58C-----------------------------------------------
59C C o m m o n B l o c k s
60C-----------------------------------------------
61#include "units_c.inc"
62#include "com04_c.inc"
63#include "param_c.inc"
64#include "scr17_c.inc"
65#include "sphcom.inc"
66#include "tablen_c.inc"
67C-----------------------------------------------
68C D u m m y A r g u m e n t s
69C-----------------------------------------------
70 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
71 INTEGER IGEO(NPROPGI),IPM(NPROPMI,*),SUB_ID,IGTYP,IG
72C REAL
74 . geo(npropg), pm(npropm,*)
76 . rtrans(ntransf,*)
77 TYPE(submodel_data) LSUBMODEL(*)
78 CHARACTER(LEN=NCHARTITLE)::IDTITL
79 TYPE(prop_tag_) , DIMENSION(0:MAXPROP) :: PROP_TAG
80 TYPE(shell_defaults_), INTENT(IN) :: DEFAULTS_SHELL
81C-----------------------------------------------
82C L o c a l V a r i a b l e s
83C-----------------------------------------------
84 CHARACTER LAW_ID*4
85 CHARACTER ISS*3
86 INTEGER NUML(100), NLY, NLYMAX, N, J, IERREL, M1, M2, M3,
87 . m4, k, n2, n3, istrain, mlawly1,ishear,ihbe,ithk,irep,
88 . idsk, isk, ipang, ipphi, ipthk, ippos, ipos, ipmat, pid1,
89 . iskn(liskn,*),ismstr,isrot,ihbeoutp,isorth,ihbe_old,ipweight
90C REAL
92 . an, vx, vy, vz, thickt, dt, tmin, tmax, ashear,pthk,cvis,pun,
93 . zshift
94 INTEGER ISH3N,IRP
95 INTEGER ID,IUN
96 CHARACTER(LEN=NCHARTITLE) :: TITR,TITR1
97 INTEGER IHBE_D,IPLA_D,ISTR_D,ITHK_D,ISHEA_D,ISST_D,
98 . ish3n_d, istra_d,npts_d,idril_d
99 LOGICAL IS_AVAILABLE, IS_ENCRYPTED
100C-----------------------------------------------
101C D a t a
102C-----------------------------------------------
103 DATA iun/1/
104 DATA pun/0.1/
105C======================================================================|
106 is_encrypted = .false.
107 is_available = .false.
108c
109 nlymax= 100
110 ipmat = 100
111 ipang = 200
112 ipthk = 300
113 ippos = 400
114 ipphi = 500
115 ipweight = 900
116 idsk = 0
117 ipos = 0
118 irep = 2
119 irp = 0
120!
121 ihbe_d = defaults_shell%ishell
122 ish3n_d= defaults_shell%ish3n
123 isst_d = defaults_shell%ismstr
124 ipla_d = defaults_shell%iplas
125 ithk_d = defaults_shell%ithick
126 idril_d= defaults_shell%idrill
127 ishea_d = 0
128 npts_d = 0
129 istra_d = 1
130C----------------------
131C HIDDEN FLAGS
132C----------------------
133C ISHEAR NEVER USED
134 ishear = 0
135C CVIS USED in coquez routines
136C
137 isrot = 0
138C
139C----------------------
140C Double stockage (to be cleaned one day ...)
141 igeo(1)=ig
142 igeo(11)=igtyp
143 geo(12) =igtyp+pun
144C--------------------------------------------------
145C EXTRACT DATA (IS OPTION CRYPTED)
146C--------------------------------------------------
147 CALL hm_option_is_encrypted(is_encrypted)
148C--------------------------------------------------
149C EXTRACT DATAS (INTEGER VALUES)
150C--------------------------------------------------
151 CALL hm_get_intv('ISHELL',ihbe,is_available,lsubmodel)
152 CALL hm_get_intv('ismstr',ISMSTR,IS_AVAILABLE,LSUBMODEL)
153 CALL HM_GET_INTV('ish3n',ISH3N,IS_AVAILABLE,LSUBMODEL)
154c
155 CALL HM_GET_INTV('nip',NLY,IS_AVAILABLE,LSUBMODEL)
156C CALL HM_GET_INTV('ISTRAIN',ISTRAIN,IS_AVAILABLE,LSUBMODEL)
157 CALL HM_GET_INTV('ithick',ITHK,IS_AVAILABLE,LSUBMODEL)
158c
159 CALL HM_GET_INTV('skew_csid',IDSK,IS_AVAILABLE,LSUBMODEL)
160 CALL HM_GET_INTV('ipos',IPOS,IS_AVAILABLE,LSUBMODEL)
161 CALL HM_GET_INTV('ip',IRP,IS_AVAILABLE,LSUBMODEL)
162c
163 DO K=1,NLY
164 CALL HM_GET_INT_ARRAY_INDEX('prop_mi',numl(k),k,is_available,lsubmodel)
165 ENDDO
166C--------------------------------------------------
167C EXTRACT DATAS (REAL VALUES)
168C--------------------------------------------------
169 CALL hm_get_floatv('P_Thick_Fail',pthk,is_available,lsubmodel,unitab)
170
171 CALL hm_get_floatv('Hm',geo(13),is_available,lsubmodel,unitab)
172 CALL hm_get_floatv('Hf',geo(14),is_available,lsubmodel,unitab)
173 CALL hm_get_floatv('Hr',geo(15),is_available,lsubmodel,unitab)
174 CALL hm_get_floatv('Dm',geo(16),is_available,lsubmodel,unitab)
175 CALL hm_get_floatv('Dn',geo(17),is_available,lsubmodel,unitab)
176c
177 CALL hm_get_floatv('THICK',geo(1),is_available,lsubmodel,unitab)
178 CALL hm_get_floatv('AREA_SHEAR',ashear,is_available,lsubmodel,unitab)
179c
180 CALL hm_get_floatv('VECTOR_X',vx,is_available,lsubmodel,unitab)
181 CALL hm_get_floatv('VECTOR_Y',vy,is_available,lsubmodel,unitab)
182 CALL hm_get_floatv('VECTOR_Z',vz,is_available,lsubmodel,unitab)
183c
184 DO k=1,nly
185 CALL hm_get_float_array_index('Prop_phi',geo(ipang+k),k,is_available,lsubmodel,unitab)
186 CALL hm_get_float_array_index('Alpha_arr',geo(ipphi+k),k,is_available,lsubmodel,unitab)
187 CALL hm_get_float_array_index('Prop_Thick',geo(ipthk+k),k,is_available,lsubmodel,unitab)
188 CALL hm_get_float_array_index('Prop_Zi',geo(ippos+k),k,is_available,lsubmodel,unitab)
189 IF (geo(ipphi+k) == zero) geo(ipphi+k) = ninty
190 geo(ipweight+k)= one
191 ENDDO
192C--------------------------------------------------
193C SUBMODEL TRANSFORMATION
194C--------------------------------------------------
195 IF (sub_id /= 0)
196 . CALL subrotvect(vx,vy,vz,rtrans,sub_id,lsubmodel)
197C----------------------
198 IF (pthk == zero) pthk = one-em06
199 pthk = min(pthk, one)
200 pthk = max(pthk,-one)
201 geo(42) = pthk
202
203C fixing flag and removed from input
204 istrain=1
205C----------------------
206 IF(ihbe==0)ihbe=ihbe_d
207 ihbeoutp=ihbe
208 IF (ihbe == 4 .AND. ish3n==0 .AND. ish3n_d == 1) THEN
209 CALL ancmsg(msgid=680,
210 . msgtype=msgwarning,
211 . anmode=aninfo_blind_1,
212 . i1=ig,
213 . c1=idtitl)
214 ENDIF
215 IF (ihbe==22.OR.ihbe==23) THEN
216 CALL ancmsg(msgid=539,
217 . msgtype=msgwarning,
218 . anmode=aninfo_blind_1,
219 . i1=ig,
220 . c1=idtitl)
221 ihbe=24
222 ENDIF
223 IF(ish3n==0) ish3n = ish3n_d
224 igeo(18) = ish3n
225 IF (geo(16) == zero) igeo(31) = 1
226
227 IF (ihbe==24) THEN
228 IF (geo(17)==zero) geo(17)=zep015
229 ENDIF
230C---
231 IF(ismstr==0)ismstr=isst_d
232 IF (isst_d == -2) ismstr = -1
233 IF(ihbe==3)THEN
234 IF(geo(13)==zero)geo(13)=em01
235 IF(geo(14)==zero)geo(14)=em01
236 IF(geo(15)==zero)geo(15)=em02
237 ELSE
238 IF(geo(13)==zero)geo(13)=em02
239 IF(geo(14)==zero)geo(14)=em02
240 IF(geo(15)==zero)geo(15)=em02
241 ENDIF
242
243 IF (ihbe==24) THEN
244 geo(13)=geo(17)
245 geo(17)=one
246 ENDIF
247C Double stockage (to be cleaned one day ...)
248c
249 igeo(10)=ihbe
250 geo(171)=ihbe
251C----------Idrill is not in manual /PROP/TYPE16
252c IF(ISROT==0)ISROT=IDRIL_D
253c IF(ISROT==2) ISROT = 0
254 igeo(20)=isrot
255
256 IF (ismstr == 0) ismstr=4
257 IF (ismstr==3 .AND. ihbe/=0 .AND. ihbe/=2) THEN
258 ismstr = 4
259 CALL ancmsg(msgid=319,
260 . msgtype=msgwarning,
261 . anmode=aninfo_blind_2,
262 . i1=ig,
263 . c1=idtitl)
264 ENDIF
265 igeo(5)= ismstr
266 geo(3) = ismstr
267C-----
268 IF (ashear == zero) ashear=five_over_6
269 IF (nly == -1) nly = npts_d
270 IF (nly == 0) nly = 1
271 IF (nly == 1) ashear = zero
272 an = sqrt(vx*vx+vy*vy+vz*vz)
273 IF(an < em10)THEN
274 vx=one
275 vy=zero
276 vz=zero
277 IF (irp==23) THEN
278 CALL ancmsg(msgid=1922,
279 . msgtype=msgerror,
280 . anmode=aninfo,
281 . c1='PROPERTY',
282 . i1=ig,
283 . c2='PROPERTY',
284 . c3=titr,
285 . i2=irp)
286 END IF
287 ELSE
288 vx=vx/an
289 vy=vy/an
290 vz=vz/an
291 ENDIF
292 isk = 0
293 IF (idsk /= 0) THEN
294 DO j=0,numskw+min(iun,nspcond)*numsph+nsubmod
295 IF(idsk == iskn(4,j+1)) THEN
296 isk=j+1
297 GO TO 10
298 ENDIF
299 END DO
300 CALL ancmsg(msgid=184,
301 . msgtype=msgerror,
302 . anmode=aninfo,
303 . c1='PROPERTY',
304 . i1=id,
305 . c2='PROPERTY',
306 . c3=titr,
307 . i2=idsk)
308 10 CONTINUE
309 ENDIF
310 IF (irp==22.AND.isk==0) THEN
311 CALL ancmsg(msgid=1923,
312 . msgtype=msgerror,
313 . anmode=aninfo,
314 . c1='PROPERTY',
315 . i1=ig,
316 . c2='PROPERTY',
317 . c3=titr,
318 . i2=irp)
319 END IF
320 igeo(2)=isk
321 igeo(6)=irep
322 geo(7) =vx
323 geo(8) =vy
324 geo(9) =vz
325 IF(ithk == 0)ithk=ithk_d
326 IF(ithk_d==-2)ithk=-1
327 IF(ishear == 0)ishear=ishea_d
328C IF(ISTRAIN== 0)ISTRAIN=ISTR_D
329 geo(11)=istrain
330 ihbe = nint(geo(171))
331 geo(35)=ithk
332 geo(37)=ishear
333 geo(38)=ashear
334 igeo(14) = irp
335C-----------------------------------------------------------------
336 IF(is_encrypted)THEN
337 WRITE(iout,1000)ig
338 1000 FORMAT(
339 & 5x,'COMPOSITE FABRIC LAYERED SHELL PROPERTY SET '/,
340 & 5x,'------------------------------------'/,
341 & 5x,'PROPERTY SET NUMBER . . . . . . . . . .=',i10/,
342 & 5x,'CONFIDENTIAL DATA'//)
343 ELSE
344 IF(isk == 0)THEN
345 IF (ihbe > 11 .AND. ihbe < 29) THEN
346 WRITE(iout,2010)ig,nly,istrain,geo(1),igeo(5),ihbe,
347 . ish3n,
348 . geo(16),geo(13),geo(38),geo(42),ishear,ithk,
349 . geo(7),geo(8),geo(9),igeo(14)
350 ELSE
351 WRITE(iout,1010)ig,nly,istrain,geo(1),igeo(5),ihbe,
352 . ish3n,
353 . geo(13),geo(14),geo(15),geo(16),
354 . ashear,geo(42),ishear,ithk,
355 . geo(7),geo(8),geo(9),igeo(14)
356 ENDIF
357 ELSE
358 IF (ihbe > 11 .AND. ihbe < 29) THEN
359 WRITE(iout,2011)ig,nly,istrain,geo(1),igeo(5),ihbe,
360 . ish3n,geo(16),
361 . geo(13),ashear,geo(42),ishear,ithk,idsk,igeo(14)
362 ELSE
363 WRITE(iout,1011)ig,nly,istrain,geo(1),igeo(5),ihbe,
364 . ish3n,
365 . geo(13),geo(14),geo(15),geo(16),
366 . ashear,geo(42),ishear,ithk,idsk,igeo(14)
367 ENDIF
368 ENDIF
369 ENDIF
370C---
371 IF (nly > nlymax) THEN
372 CALL fretitl2(titr,igeo(npropgi-ltitr+1),ltitr)
373 CALL ancmsg(msgid=28,
374 . msgtype=msgerror,
375 . anmode=aninfo_blind_1,
376 . i1=ig,
377 . c1=titr,
378 . i2=nlymax)
379 ENDIF
380 nly = min(nly,nlymax)
381 igeo(4) = nly
382 igeo(99) = ipos
383 zshift = zero
384C--- calcul epaIGEO(5)eur & position des couches
385 IF (ipos > 0)THEN
386 tmin = ep20
387 tmax =-ep20
388
389 DO n=1,nly
390 dt = half*geo(ipthk+n)
391 tmin = min(tmin,geo(ippos+n)-dt)
392 tmax = max(tmax,geo(ippos+n)+dt)
393 ENDDO
394 thickt = tmax - tmin
395 zshift = half*(tmax + tmin)
396 geo(200)=thickt
397 DO n=1,nly
398 geo(ipthk+n)=geo(ipthk+n) / max(thickt,em20)
399 geo(ippos+n)=geo(ippos+n) / max(thickt,em20)
400 ENDDO
401 ELSE
402 thickt = zero
403 DO n=1,nly
404 thickt=thickt+geo(ipthk+n)
405 ENDDO
406 DO n=1,nly
407 geo(ipthk+n)=geo(ipthk+n) / max(thickt,em20)
408 ENDDO
409C--- calcul automatique de position des couches
410 geo(ippos+1) = -half + half*geo(ipthk+1)
411 DO n=2,nly
412 geo(ippos+n) = geo(ippos+n-1)
413 . + half*(geo(ipthk+n)+geo(ipthk+n-1))
414 ENDDO
415 geo(200)=thickt
416 ENDIF
417 geo(199) = zshift
418C--- Test validite epaIGEO(5)eur
419 ierrel=nint(abs((thickt-geo(1))/geo(1))*ep02)
420 IF(ierrel > ten) THEN
421 pid1=igeo(1)
422 CALL fretitl2(titr,igeo(npropgi-ltitr+1),ltitr)
423 CALL ancmsg(msgid=29,
424 . msgtype=msgwarning,
425 . anmode=aninfo_blind_1,
426 . i2=ierrel,
427 . i1=pid1,
428 . c1=titr)
429 ENDIF
430C--------------------------------------------------------------
431C MATERIAUX: TRANSFORMATION EN NOS INTERNES + TESTS DE VALIDITE
432C-------LAYER 1
433 DO j=1,nummat
434 IF (ipm(1,j) == numl(1)) THEN
435 igeo(ipmat+1) = j
436 mlawly1= nint(pm(19,j))
437 IF(mlawly1 == 58 .OR. mlawly1 == 158 .OR. mlawly1 == 98) GO TO 250
438 IF(mlawly1>=29.AND.mlawly1<=31) GO TO 250
439 IF(mlawly1==99) GO TO 250
440 CALL fretitl2(titr,igeo(npropgi-ltitr+1),ltitr)
441 CALL fretitl2(titr1,ipm(npropmi-ltitr+1,j),ltitr)
442 CALL ancmsg(msgid=1201,
443 . anmode=aninfo,
444 . msgtype=msgerror,
445 . i1=ig,
446 . c1=titr,
447 . i2=numl(1),
448 . c2=titr1,
449 . i3=mlawly1)
450 GO TO 250
451 ENDIF
452 ENDDO
453 CALL fretitl2(titr,igeo(npropgi-ltitr+1),ltitr)
454 CALL ancmsg(msgid=31,
455 . anmode=aninfo,
456 . msgtype=msgerror,
457 . i1=ig,
458 . c1=titr,
459 . i2=numl(1))
460 igeo(ipmat+1) = 1
461 250 CONTINUE
462C-----OTHER LAYERS
463 DO 350 n=2,nly
464 DO j=1,nummat
465 IF(ipm(1,j) == numl(n)) THEN
466 igeo(ipmat+n) = j
467 IF(nint(pm(19,j)) == mlawly1) GO TO 350
468 WRITE(law_id,'(I2)')mlawly1
469 IF (mlawly1==99) law_id='USER'
470 CALL fretitl2(titr,igeo(npropgi-ltitr+1),ltitr)
471 CALL fretitl2(titr1,ipm(npropmi-ltitr+1,j),ltitr)
472 CALL ancmsg(msgid=334,
473 . msgtype=msgerror,
474 . anmode=aninfo_blind_1,
475 . i1=ig,
476 . c1=titr,
477 . i2=numl(n),
478 . c2=titr1,
479 . c3=law_id)
480 GO TO 350
481 ENDIF
482 ENDDO
483 CALL fretitl2(titr,igeo(npropgi-ltitr+1),ltitr)
484 CALL ancmsg(msgid=31,
485 . anmode=aninfo,
486 . msgtype=msgerror,
487 . i1=ig,
488 . c1=titr,
489 . i2=numl(1))
490 igeo(ipmat+n) = 1
491 350 CONTINUE
492C
493 DO n=1,nly
494 m1=ipang+n
495 m2=ipthk+n
496 m3=ippos+n
497 m4=ipphi+n
498 IF(.NOT. is_encrypted)WRITE(iout,3000) n,geo(m1),geo(m4),
499 . geo(m2)*geo(1),geo(m3)*geo(1),numl(n)
500 geo(m1)=geo(m1)*pi/hundred80
501 geo(m4)=geo(m4)*pi/hundred80
502 ENDDO
503C-------------------------------
504C FROM LECGEO
505C-------------------------------
506 IF (ismstr==3 .AND. ihbe/=0 .AND. ihbe/=2) THEN
507 ismstr = 4
508 CALL ancmsg(msgid=319,
509 . msgtype=msgwarning,
510 . anmode=aninfo_blind_2,
511 . i1=ig,
512 . c1=idtitl)
513 ENDIF
514 IF(ihbe == 3)THEN
515 IF(geo(13)==zero) geo(13)=em01
516 IF(geo(14)==zero) geo(14)=em01
517 IF(geo(15)==zero) geo(15)=em02
518 ELSEIF(ihbe < 10)THEN
519 IF(geo(13)==zero) geo(13)=em02
520 IF(geo(14)==zero) geo(14)=em02
521 IF(geo(15)==zero) geo(15)=em02
522 ENDIF
523 geo(3)=ismstr
524 igeo(5)=ismstr
525C-----------------------------
526C IHBE IPLA ISTRAIN
527C-----------------------------
528 ihbe=nint(geo(171))
529 IF(ihbe==0)THEN
530 geo(171)=0
531 ELSEIF(ihbe==1)THEN
532 geo(171)=1
533 ELSEIF(ihbe==2)THEN
534 geo(171)=0
535 ELSEIF(ihbe>=3.AND.ihbe<100.AND.ihbe/=4)THEN
536 geo(171)=ihbe-1
537 ENDIF
538 ishear = geo(37)
539 IF(ishear==0)THEN
540 geo(37)=0
541 ELSEIF(ishear==1)THEN
542 geo(37)=1
543 ELSEIF(ishear==2)THEN
544 geo(37)=0
545 ENDIF
546C-------------------------------
547C Double stockage temporaire : GEO() / IGEO() : a supprimer a terme
548C-------------------------------
549 igeo(1) =ig
550 igeo(11)=igtyp
551 isorth = 0
552 igeo(17)=isorth
553 IF(geo( 3)/=zero.AND.igeo( 5)== 0)igeo( 5)=nint(geo( 3))
554 IF(geo(39)/=zero.AND.igeo( 9)== 0)igeo( 9)=nint(geo(39))
555 IF(geo(171)/=zero.AND.igeo(10)== 0)
556 . igeo(10)=nint(geo(171))
557C-----------------------------
558C PROPERTY BUFFER
559C-----------------------------
560 prop_tag(igtyp)%G_SIG = 0
561 prop_tag(igtyp)%G_FOR = 5
562 prop_tag(igtyp)%G_MOM = 3
563 prop_tag(igtyp)%G_THK = 1
564 prop_tag(igtyp)%G_EINT= 2
565 prop_tag(igtyp)%G_EINS= 0
566 prop_tag(igtyp)%L_SIG = 5
567 prop_tag(igtyp)%L_THK = 0
568 prop_tag(igtyp)%L_EINT= 2
569 prop_tag(igtyp)%L_EINS= 0
570 prop_tag(igtyp)%G_VOL = 0
571 prop_tag(igtyp)%L_VOL = 0
572 prop_tag(igtyp)%LY_DMG = 2
573C
574 prop_tag(igtyp)%LY_GAMA = 6
575 prop_tag(igtyp)%LY_DIRA = 2
576 prop_tag(igtyp)%LY_DIRB = 2
577 prop_tag(igtyp)%LY_PLAPT = 1
578 prop_tag(igtyp)%LY_SIGPT = 5
579 prop_tag(igtyp)%G_FORPG = 5
580 prop_tag(igtyp)%G_MOMPG = 3
581 prop_tag(igtyp)%G_STRPG = 8
582C-----------------------------
583C----
584 RETURN
585C---
586 1010 FORMAT(
587 & 5x,'COMPOSITE LAYERED SHELL PROPERTY SET ',
588 & 'WITH VARIABLE THICKNESSES AND MATERIALS'/,
589 & 5x,'PROPERTY SET NUMBER . . . . . . . . . .=',i10/,
590 & 5x,'NUMBER OF LAYERS. . . . . . . . . . . .=',i10/,
591 & 5x,'POST PROCESSING STRAIN FLAG . . . . . .=',i10/,
592 & 5x,'SHELL THICKNESS . . . . . . . . . . . .=',1pg20.13/,
593 & 5x,'SMALL STRAIN FLAG . . . . . . . . . . .=',i10/,
594 & 5x,'SHELL FORMULATION FLAG. . . . . . . . .=',i10/,
595 & 5x,'3NODE SHELL FORMULATION FLAG. . . . . .=',i10/,
596 & 5x,'SHELL HOURGLASS MEMBRANE DAMPING. . . .=',1pg20.13/,
597 & 5x,'SHELL HOURGLASS FLEXURAL DAMPING. . . .=',1pg20.13/,
598 & 5x,'SHELL HOURGLASS ROTATIONAL DAMPING. . .=',1pg20.13/,
599 & 5x,'SHELL MEMBRANE DAMPING. . . . . . . . .=',1pg20.13/,
600 & 5x,'SHEAR AREA REDUCTION FACTOR . . . . . .=',1pg20.13/,
601 & 5x,'ELEMENT DELETION PARAMETER. . . . . . .=',1pg20.13/,
602 & 5x,' > 0.0 : FRACTION OF FAILED THICKNESS ',/,
603 & 5x,' < 0.0 : FRACTION OF FAILED LAYERS ',/,
604 & 5x,'SHEAR FORMULATION FLAG. . . . . . . . .=',i10/,
605 & 5x,'THICKNESS VARIATION FLAG. . . . . . . .=',i10/,
606 & 5x,'X COMPONENT OF DIR 1 OF ORTHOTROPY. . .=',1pg20.13/,
607 & 5x,'Y COMPONENT OF DIR 1 OF ORTHOTROPY. . .=',1pg20.13/,
608 & 5x,'Z COMPONENT OF DIR 1 OF ORTHOTROPY. . .=',1pg20.13/,
609 & 5x,'REFERENCE DIRECTION FLAG IN SHELL PLANE=',i10/)
610 1011 FORMAT(
611 & 5x,'COMPOSITE LAYERED SHELL PROPERTY SET ',
612 & 'WITH VARIABLE THICKNESSES AND MATERIALS'/,
613 & 5x,'PROPERTY SET NUMBER . . . . . . . . . .=',i10/,
614 & 5x,'NUMBER OF LAYERS. . . . . . . . . . . .=',i10/,
615 & 5x,'POST PROCESSING STRAIN FLAG . . . . . .=',i10/,
616 & 5x,'SHELL THICKNESS . . . . . . . . . . . .=',1pg20.13/,
617 & 5x,'SMALL STRAIN FLAG . . . . . . . . . . .=',i10/,
618 & 5x,'SHELL FORMULATION FLAG. . . . . . . . .=',i10/,
619 & 5x,'3node shell formulation flag. . . . . .=',I10/,
620 & 5X,'shell hourglass membrane damping. . . .=',1PG20.13/,
621 & 5X,'shell hourglass flexural damping. . . .=',1PG20.13/,
622 & 5X,'shell hourglass rotational damping. . .=',1PG20.13/,
623 & 5X,'shell membrane damping. . . . . . . . .=',1PG20.13/,
624 & 5X,'shear area reduction factor . . . . . .=',1PG20.13/,
625 & 5X,'element deletion PARAMETER. . . . . . .=',1PG20.13/,
626 & 5X,' > 0.0 : fraction of failed thickness ',/,
627 & 5X,' < 0.0 : fraction of failed layers ',/,
628 & 5X,'shear formulation flag. . . . . . . . .=',I10/,
629 & 5X,'thickness variation flag. . . . . . . .=',I10/,
630 & 5X,'skew of the first orthotropy direction.=',I10/,
631 & 5X,'reference direction flag in shell plane=',I10/)
632 2010 FORMAT(
633 & 5X,'composite layered shell property set ',
634 & 'with variable thicknesses and materials'/,
635 & 5X,'property set number . . . . . . . . . .=',i10/,
636 & 5x,'NUMBER OF LAYERS. . . . . . . . . . . .=',i10/,
637 & 5x,'POST PROCESSING STRAIN FLAG . . . . . .=',i10/,
638 & 5x,'SHELL THICKNESS . . . . . . . . . . . .=',1pg20.13/,
639 & 5x,'SMALL STRAIN FLAG . . . . . . . . . . .=',i10/,
640 & 5x,'SHELL FORMULATION FLAG. . . . . . . . .=',i10/,
641 & 5x,'3NODE SHELL FORMULATION FLAG. . . . . .=',i10/,
642 & 5x,'SHELL MEMBRANE DAMPING. . . . . . . . .=',1pg20.13/,
643 & 5x,'SHELL NUMERICAL DAMPING . . . . . . . .=',1pg20.13/,
644 & 5x,'SHEAR AREA REDUCTION FACTOR . . . . . .=',1pg20.13/,
645 & 5x,'ELEMENT DELETION PARAMETER. . . . . . .=',1pg20.13/,
646 & 5x,' > 0.0 : FRACTION OF FAILED THICKNESS ',/,
647 & 5x,' < 0.0 : FRACTION OF FAILED LAYERS ',/,
648 & 5x,'SHEAR FORMULATION FLAG. . . . . . . . .=',i10/,
649 & 5x,'THICKNESS VARIATION FLAG. . . . . . . .=',i10/,
650 & 5x,'X COMPONENT OF DIR 1 OF ORTHOTROPY. . .=',1pg20.13/,
651 & 5x,'Y COMPONENT OF DIR 1 OF ORTHOTROPY. . .=',1pg20.13/,
652 & 5x,'Z COMPONENT OF DIR 1 OF ORTHOTROPY. . .=',1pg20.13/,
653 & 5x,'REFERENCE DIRECTION FLAG IN SHELL PLANE=',i10/)
654 2011 FORMAT(
655 & 5x,'COMPOSITE LAYERED SHELL PROPERTY SET ',
656 & 'WITH VARIABLE THICKNESSES AND MATERIALS'/,
657 & 5x,'PROPERTY SET NUMBER . . . . . . . . . .=',i10/,
658 & 5x,'NUMBER OF LAYERS. . . . . . . . . . . .=',i10/,
659 & 5x,'POST PROCESSING STRAIN FLAG . . . . . .=',i10/,
660 & 5x,'shell thickness . . . . . . . . . . . .=',1PG20.13/,
661 & 5X,'small strain flag . . . . . . . . . . .=',I10/,
662 & 5X,'shell formulation flag. . . . . . . . .=',I10/,
663 & 5X,'3node shell formulation flag. . . . . .=',I10/,
664 & 5X,'shell membrane damping. . . . . . . . .=',1PG20.13/,
665 & 5X,'shell numerical damping . . . . . . . .=',1PG20.13/,
666 & 5X,'shear area reduction factor . . . . . .=',1PG20.13/,
667 & 5X,'element deletion PARAMETER. . . . . . .=',1PG20.13/,
668 & 5X,' > 0.0 : fraction of failed thickness ',/,
669 & 5X,' < 0.0 : fraction of failed layers ',/,
670 & 5X,'shear formulation flag. . . . . . . . .=',I10/,
671 & 5X,'thickness variation flag. . . . . . . .=',I10/,
672 & 5X,'skew of the first orthotropy direction.=',I10/,
673 & 5X,'reference direction flag in shell plane=',I10/)
674 3000 FORMAT(
675 & 5X,'layer ',I3/,
676 & 5X,' angle(dir 1,proj(vect / shell) .=',1PG20.13/,
677 & 5X,' angle(dir 1,dir 2) . . . . . . .=',1PG20.13/,
678 & 5X,' thickness . . . . . . . . . . . .=',1PG20.13/,
679 & 5X,' position. . . . . . . . . . . . .=',1PG20.13/,
680 & 5X,' material number . . . . . . . . .=',I10/)
681 END SUBROUTINE HM_READ_PROP16
#define my_real
Definition cppsort.cpp:32
subroutine damping(nodft, nodlt, v, vr, a, ar, damp, ms, in, igrnod, dim, itask, weight, tagslv_rby, wfext)
Definition damping.F:882
end diagonal values have been computed in the(sparse) matrix id.SOL
subroutine hm_get_float_array_index(name, rval, index, is_available, lsubmodel, unitab)
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_is_encrypted(is_encrypted)
subroutine hm_read_prop16(geo, igeo, pm, ipm, iskn, unitab, rtrans, lsubmodel, sub_id, prop_tag, igtyp, ig, idtitl, defaults_shell)
subroutine area(d1, x, x2, y, y2, eint, stif0)
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
integer, parameter nchartitle
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
subroutine fretitl2(titr, iasc, l)
Definition freform.F:804
program starter
Definition starter.F:39
subroutine subrotvect(x, y, z, rtrans, sub_id, lsubmodel)
Definition subrot.F:54