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 shell 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) = NINETY
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.AND..AND. IF (IHBE == 4 ISH3N==0 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.OR. IF (IHBE==22IHBE==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.AND..AND. IF (ISMSTR==3 IHBE/=0 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.AND. IF (IRP==22ISK==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.AND. IF (IHBE > 11 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.AND. IF (IHBE > 11 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--- EPAIGEO (5) EUR and position of the layers
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--- automatic calculation of layer positions
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.OR..OR. IF(MLAWLY1 == 58 MLAWLY1 == 158 MLAWLY1 == 98) GO TO 250
438.AND. IF(MLAWLY1>=29MLAWLY1<=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.NOT. IF( 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.AND..AND. IF (ISMSTR==3 IHBE/=0 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.AND..AND. ELSEIF(IHBE>=3IHBE<100IHBE/=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.AND. IF(GEO( 3)/=ZEROIGEO( 5)== 0)IGEO( 5)=NINT(GEO( 3))
554.AND. IF(GEO(39)/=ZEROIGEO( 9)== 0)IGEO( 9)=NINT(GEO(39))
555.AND. IF(GEO(171)/=ZEROIGEO(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_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_int_array_index(name, ival, index, is_available, lsubmodel)
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)
integer, parameter nchartitle