OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_prop06.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_prop06 ../starter/source/properties/solid/hm_read_prop06.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!|| arret ../starter/source/system/arret.F
30!|| hm_get_floatv ../starter/source/devtools/hm_reader/hm_get_floatv.F
31!|| hm_get_intv ../starter/source/devtools/hm_reader/hm_get_intv.F
32!|| hm_option_is_encrypted ../starter/source/devtools/hm_reader/hm_option_is_encrypted.F
33!|| istr ../starter/source/tools/univ/istr.F
34!|| subrotvect ../starter/source/model/submodel/subrot.F
35!||--- uses -----------------------------------------------------
36!|| defaults_mod ../starter/source/modules/defaults_mod.F90
37!|| elbuftag_mod ../starter/share/modules1/elbuftag_mod.F
38!|| message_mod ../starter/share/message_module/message_mod.F
39!|| submodel_mod ../starter/share/modules1/submodel_mod.F
40!||====================================================================
41 SUBROUTINE hm_read_prop06(GEO ,IGEO ,PROP_TAG,MULTI_FVM ,IGTYP ,
42 . IG ,IDTITL ,UNITAB ,LSUBMODEL ,RTRANS ,
43 . SUB_ID ,ISKN ,IPART ,SUB_INDEX,DEFAULTS_SOLID)
44C-----------------------------------------------
45C ROUTINE DESCRIPTION :
46C ===================
47C READ PROPERTY TYPE06 WITH HM READER
48C-----------------------------------------------
49C DUMMY ARGUMENTS DESCRIPTION:
50C ===================
51C
52C NAME DESCRIPTION
53C
54C GEO PROPERTY ARRAY(REAL)
55C IGEO PROPERTY ARRAY(INTEGER)
56C PROP_TAG PROPERTY TAGS STRUCTURE
57C MULTI_FVM MULTI_FVM STRUCTURE
58C IGTYP PROPERTY TYPE
59C IG PROPERTY ID
60C IDTITL TITLES ARRAY
61C UNITAB UNITS ARRAY
62C LSUBMODEL SUBMODEL STRUCTURE
63C RTRANS TRANSFORMATION ARRAY(REAL)
64C SUB_ID SUBMODEL ID
65C ISKN SKEW ARRAY(INTEGER)
66C IPART PART ARRAY(INTEGER)
67C SUB_INDEX SUBMODEL INDEX
68C-----------------------------------------------
69C============================================================================
70C-----------------------------------------------
71C M o d u l e s
72C-----------------------------------------------
73 USE unitab_mod
74 USE elbuftag_mod
75 USE submodel_mod
76 USE message_mod
77 USE multi_fvm_mod
78 USE defaults_mod
80C-----------------------------------------------
81C I m p l i c i t T y p e s
82C-----------------------------------------------
83#include "implicit_f.inc"
84C-----------------------------------------------
85C C o m m o n B l o c k s
86C-----------------------------------------------
87#include "units_c.inc"
88#include "com01_c.inc"
89#include "com04_c.inc"
90#include "param_c.inc"
91#include "scr17_c.inc"
92#include "sphcom.inc"
93#include "tablen_c.inc"
94#include "tabsiz_c.inc"
95C-----------------------------------------------
96C D u m m y A r g u m e n t s
97C-----------------------------------------------
98 INTEGER,INTENT(INOUT) :: IGEO(NPROPGI)
99 INTEGER,INTENT(IN) :: IG
100 INTEGER,INTENT(IN) :: ISKN(LISKN,SISKWN/LISKN)
101 INTEGER,INTENT(IN) :: IPART(LIPART1,NPART+NTHPART)
102 INTEGER,INTENT(IN) :: IGTYP
103 INTEGER,INTENT(IN) :: SUB_ID
104 INTEGER,INTENT(IN) :: SUB_INDEX
105C
106 my_real,INTENT(INOUT) :: geo(npropg)
107 my_real,INTENT(IN) :: rtrans(ntransf,nrtrans)
108C
109 CHARACTER(LEN=NCHARTITLE),INTENT(IN) :: IDTITL
110C
111 TYPE(prop_tag_) , DIMENSION(0:MAXPROP),INTENT(INOUT) :: PROP_TAG
112 TYPE(MULTI_FVM_STRUCT),INTENT(IN) :: MULTI_FVM
113 TYPE(submodel_data),INTENT(IN) :: LSUBMODEL(NSUBMOD)
114 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
115 TYPE(solid_defaults_), INTENT(IN) :: DEFAULTS_SOLID
116C-----------------------------------------------
117C L o c a l V a r i a b l e s
118C-----------------------------------------------
119 INTEGER IHBE,ISMSTR,IPLAS,ICPRE,ICSTR,IINT,IP,ISK,IREP,JCVT,
120 . NPT,NPTR,NPTS,NPTT,ITET4,IET,ISTR,IHBE_OLD,ITET10,
121 . ishear,isorth,icontrol_d,icontrol
122 my_real
123 . cvis,qa,qb,qh,vx,vy,vz,angle,dtmin,px,py,pz,vn,
124 . vdefmin,vdefmax,aspmax,asptet
125 INTEGER K,NSPHDIR,ID_PARTSPH,IPARTSPH,J
126 INTEGER IHBE_DS,ISST_DS,IPLA_DS,IFRAME_DS, IMAS_DS,
127 . itet4_d,itet10_d,icpre_d
128 LOGICAL IS_AVAILABLE, IS_ENCRYPTED
129C-----------------------------------------------
130 is_encrypted = .false.
131 is_available = .false.
132
133 isorth=1
134 ismstr=0
135 ihbe=0
136!--- defaults values
137 ihbe_ds= defaults_solid%ISOLID
138 isst_ds= defaults_solid%ISMSTR
139 icpre_d= defaults_solid%ICPRE
140 itet4_d= defaults_solid%ITETRA4
141 itet10_d= defaults_solid%ITETRA10
142 iframe_ds= defaults_solid%IFRAME
143 icontrol_d=defaults_solid%ICONTROL
144C======================================================================|
145C
146 geo(3)=ismstr
147
148 igeo( 1)=ig
149 igeo(10)=ihbe
150 igeo(11)=igtyp
151 geo(12) =igtyp+em01
152 geo(171)=ihbe
153C
154 icstr = 0
155C--------------------------------------------------
156C EXTRACT DATA (IS OPTION CRYPTED)
157C--------------------------------------------------
158 CALL hm_option_is_encrypted(is_encrypted)
159C--------------------------------------------------
160C EXTRACT DATAS (INTEGER VALUES)
161C--------------------------------------------------
162 CALL hm_get_intv('ISOLID',ihbe,is_available,lsubmodel)
163 CALL hm_get_intv('Ismstr',ismstr,is_available,lsubmodel)
164C
165C IPLAS=0 ! New HM reader <=> possible numerical change for decks translated from old formats (IPLAS is no more read since format 2018)
166c CALL HM_GET_INTV('Iplas',IPLAS,IS_AVAILABLE,LSUBMODEL)
167C
168 CALL hm_get_intv('Itetra10',itet10,is_available,lsubmodel)
169 CALL hm_get_intv('Itetra4',itet4,is_available,lsubmodel)
170 CALL hm_get_intv('Icpre',icpre,is_available,lsubmodel)
171 CALL hm_get_intv('Inpts_R',nptr,is_available,lsubmodel)
172 CALL hm_get_intv('Inpts_S',npts,is_available,lsubmodel)
173 CALL hm_get_intv('Inpts_T',nptt,is_available,lsubmodel)
174 CALL hm_get_intv('SKEW_CSID',isk,is_available,lsubmodel)
175 CALL hm_get_intv('REFPLANE',ip,is_available,lsubmodel)
176 CALL hm_get_intv('Iframe',jcvt,is_available,lsubmodel)
177 CALL hm_get_intv('ORTHTROP',irep,is_available,lsubmodel)
178c CALL HM_GET_INTV('Istrain',ISTR,IS_AVAILABLE,LSUBMODEL)
179c CALL HM_GET_INTV('IHKT',IET,IS_AVAILABLE,LSUBMODEL)
180 CALL hm_get_intv('Ndir',nsphdir,is_available,lsubmodel)
181 CALL hm_get_intv('SPHPART_ID',id_partsph,is_available,lsubmodel)
182 CALL hm_get_intv('Icontrol',icontrol,is_available,lsubmodel)
183C--------------------------------------------------
184C EXTRACT DATAS (REAL VALUES)
185C--------------------------------------------------
186 CALL hm_get_floatv('dn',cvis,is_available,lsubmodel,unitab)
187 CALL hm_get_floatv('Vx',vx,is_available,lsubmodel,unitab)
188 CALL hm_get_floatv('Vy',vy,is_available,lsubmodel,unitab)
189 CALL hm_get_floatv('Vz',vz,is_available,lsubmodel,unitab)
190 CALL hm_get_floatv('MAT_BETA',angle,is_available,lsubmodel,unitab)
191 CALL hm_get_floatv('qa',qa,is_available,lsubmodel,unitab)
192 CALL hm_get_floatv('qb',qb,is_available,lsubmodel,unitab)
193 CALL hm_get_floatv('h',qh,is_available,lsubmodel,unitab)
194 CALL hm_get_floatv('deltaT_min',dtmin,is_available,lsubmodel,unitab)
195 CALL hm_get_floatv('vdef_min',vdefmin,is_available,lsubmodel,unitab)
196 CALL hm_get_floatv('vdef_max',vdefmax,is_available,lsubmodel,unitab)
197 CALL hm_get_floatv('asp_max',ASPMAX,IS_AVAILABLE,LSUBMODEL,UNITAB)
198 CALL HM_GET_FLOATV('col_min',ASPTET,IS_AVAILABLE,LSUBMODEL,UNITAB)
199 CALL HM_GET_FLOATV('px',PX,IS_AVAILABLE,LSUBMODEL,UNITAB)
200 CALL HM_GET_FLOATV('py',PY,IS_AVAILABLE,LSUBMODEL,UNITAB)
201 CALL HM_GET_FLOATV('pz',PZ,IS_AVAILABLE,LSUBMODEL,UNITAB)
202C--------------------------------------------------
203.AND. IF(ISK == 0 SUB_INDEX /= 0 ) ISK = LSUBMODEL(SUB_INDEX)%SKEW
204C-----removed flags:
205 ISTR=1
206 IPLAS = 2
207 IET = 0
208C----------------------
209 IF(ITET4 == 0) ITET4 = ITET4_D
210 IF(ITET10 == 0) ITET10 = ITET10_D
211C
212C
213 IF (SUB_ID /= 0)
214 . CALL SUBROTVECT(VX,VY,VZ,RTRANS,SUB_ID,LSUBMODEL)
215c
216 IPARTSPH=0
217 IF(ID_PARTSPH > 0) THEN
218 DO J=1,NPART
219 IF(IPART(4,J)==ID_PARTSPH) THEN
220 IPARTSPH=J
221 GOTO 175
222 ENDIF
223 ENDDO
224 CALL ANCMSG(MSGID=1037,
225 . MSGTYPE=MSGERROR,
226 . ANMODE=ANINFO,
227 . I1=IG,
228 . C1=IDTITL,
229 . I2=ID_PARTSPH)
230 CALL ARRET(2)
231175 CONTINUE
232 END IF
233C
234C---------------------------------------------------
235C--- Default values
236C
237 IINT = 1
238C------ new solid17, IHBE will be changed to 17 in sgrtails.F
239 IF (IHBE == 18 ) IINT = 2
240 CVIS = ZERO
241C
242C ihbe
243C
244 IF (IHBE == 0) IHBE = IHBE_DS
245C
246C old formats < 5.1 (BTW these formats are no more supported)
247 IF(IHBE == 101) THEN
248 IHBE=1
249 JCVT=2
250 END IF
251 IF(IHBE == 102) THEN
252 IHBE=2
253 JCVT=2
254 END IF
255 IF(IHBE == 104) THEN
256 IHBE=24
257 JCVT=2
258 END IF
259 IF(IHBE == 112) THEN
260 IHBE=12
261 JCVT=2
262 END IF
263C------- used for elasto-platic critia parameter no necessary with IET---
264.AND..AND..AND. IF(N2D>0 IHBE/=0 IHBE/=2 IHBE/=17)THEN
265 IHBE_OLD=IHBE
266 IHBE=0
267 CALL ANCMSG(MSGID=321,
268 . MSGTYPE=MSGWARNING,
269 . ANMODE=ANINFO_BLIND_2,
270 . I1=IG,
271 . C1=IDTITL,
272 . I2=IHBE_OLD,
273 . I3=IHBE)
274.AND..AND..AND. ELSEIF (IHBE/= 1IHBE/= 2IHBE/=14IHBE/= 24
275.AND..AND. . IHBE/= 17IHBE/= 18) THEN
276 CALL ANCMSG(MSGID=533,
277 . MSGTYPE=MSGWARNING,
278 . ANMODE=ANINFO_BLIND_1,
279 . I1=IG,
280 . C1=IDTITL,
281 . I2=IHBE)
282 IHBE=1
283 ENDIF
284C
285C jcvt
286C
287 IF (JCVT == 0) JCVT = IFRAME_DS
288.OR. IF (IHBE == 14IHBE == 18) JCVT = 2
289 IF (IHBE == 24) JCVT = 2
290.OR. IF (IFRAME_DS == -2JCVT<0) JCVT = -1
291C
292C smstr
293C
294 IF(ISMSTR == 0) ISMSTR=ISST_DS
295.AND. IF(ISMSTR == 0IHBE /= 18) ISMSTR=4
296 IF (ISST_DS == -2) ISMSTR = -1
297C
298C IPLAS
299C
300c IF (IPLAS == 0)IPLAS=IPLA_DS
301c IF (IPLAS /=1 .AND. IPLAS /=2 .AND. IPLAS /=3 ) THEN
302c CALL ANCMSG(MSGID=416,
303c . MSGTYPE=MSGERROR,
304c . ANMODE=ANINFO_BLIND_1,
305c . I1=IG,
306c . C1=IDTITL,
307c . I2=IPLAS)
308c ENDIF
309c IF (IPLAS == 1)THEN
310c CALL ANCMSG(MSGID=417,
311c . MSGTYPE=MSGWARNING,
312c . ANMODE=ANINFO_BLIND_1,
313c . I1=IG,
314c . C1=IDTITL,
315c . I2=IPLAS)
316c ENDIF
317C
318C icpre/icstr
319C
320 IF (ICPRE == 0) ICPRE = ICPRE_D
321.AND. IF((N2D > 0 IHBE == 17) ) THEN
322.AND. IF(ICPRE/=1 ICPRE/=2) ICPRE=0
323C------ no effet for Axi Isolid17 for the moment
324.AND. IF(N2D == 1 IHBE == 17) ICPRE=0
325 ELSE
326.AND..AND..AND. IF (IHBE /= 14 IHBE /= 24 IHBE /= 17 IHBE /= 18) ICPRE = 0
327 IF (IHBE == 17 ) THEN
328 IF (ICPRE == 0 ) THEN
329 ICPRE = 1
330 ELSEIF(ICPRE == 3 ) THEN
331 ICPRE = 0
332 ENDIF
333 ENDIF
334.AND. IF (ICPRE == 3 IHBE /= 18) ICPRE =0
335.AND..OR. END IF!((N2D > 0 IHBE == 17)
336 ICSTR = 0
337 IF (ICPRE_D == -2) ICPRE = -1
338C
339C NPT
340C
341 SELECT CASE (IHBE)
342 CASE(14,16)
343 IF(NPTR == 0) NPTR = 2
344 IF(NPTS == 0) NPTS = 2
345 IF(NPTT == 0) NPTT = 2
346 NPT=NPTR*100+NPTS*10+NPTT
347.AND. IF (IHBE == 14
348.OR..OR..OR. . (NPTR < 1 NPTS < 1 NPTT < 1
349.OR..OR. . NPTR > 9 NPTS > 9 NPTT > 9)) THEN
350 CALL ANCMSG(MSGID=563,
351 . MSGTYPE=MSGERROR,
352 . ANMODE=ANINFO_BLIND_1,
353 . I1=IG,
354 . C1=IDTITL,
355 . I2=NPT,
356 . I3=IHBE)
357.AND. ELSEIF (IHBE == 16
358.OR..OR..OR. . (NPTR < 1 NPTS < 1 NPTT < 1
359.OR..OR. . NPTR > 3 NPTS > 9 NPTT > 3)) THEN
360 CALL ANCMSG(MSGID=563,
361 . MSGTYPE=MSGERROR,
362 . ANMODE=ANINFO_BLIND_1,
363 . I1=IG,
364 . C1=IDTITL,
365 . I2=NPT,
366 . I3=IHBE)
367 ENDIF
368 CASE(1,2,24)
369 NPT = 1
370 CASE(12,13,17,18)
371 NPT = 8
372 END SELECT
373C
374.AND..OR. IF((N2D > 0 IHBE == 17)
375.AND. . (N2D == 1 IHBE == 22)) THEN
376 NPT = 4
377 ENDIF
378C
379C viscosity / hourglass
380C
381C igeo(31) flag for default qa qb for law 70 can be used for other law
382.AND. IF(QA == ZERO QB == ZERO) IGEO(31) = 1
383 IF (QA == ZERO) QA = ONEP1
384 IF (QB == ZERO) QB = FIVEEM2
385 IF (QH == ZERO) QH = EM01
386C
387C hourglass
388C
389 IF (IHBE == 24) THEN
390 IF (CVIS == ZERO) CVIS = EM01
391 GEO(13) = CVIS
392 QH = ZERO
393 IINT = IET
394.OR. ELSEIF (IHBE==1IHBE==2) THEN
395 GEO(13) = QH
396 ELSE
397 QH = ZERO
398 GEO(13) = ZERO
399 ENDIF
400C
401C orthotropy
402C
403C IP =20, 21:Pj;23:Vj+MAT_BETA;24:Vj+Pj
404.OR. IF (IP == 23 IP == 24) THEN
405C---- error-out if Vj=0+IP=23,24
406 VN = VX*VX+VY*VY+VZ*VZ
407 IF (VN<EM20) THEN
408 CALL ANCMSG(MSGID=1918,
409 . MSGTYPE=MSGERROR,
410 . ANMODE=ANINFO_BLIND_1,
411 . I1=IG,
412 . C1=IDTITL,
413 . I2=IP)
414 ENDIF
415 END IF
416 IF (IP == 0) THEN
417 DO K=0,NUMSKW+MIN(1,NSPCOND)*NUMSPH+NSUBMOD
418 IF(ISK == ISKN(4,K+1)) THEN
419 IP=-(K+1)
420 ISK=K+1
421 GO TO 100
422 ENDIF
423 ENDDO
424 CALL ANCMSG(MSGID=137,ANMODE=ANINFO,MSGTYPE=MSGERROR,
425 . C1='property',
426 . C2='property',
427 . I1=IG,I2=ISK,C3=IDTITL)
428100 CONTINUE
429 ENDIF
430C Istrain
431c IF (ISTR == 0)ISTR =ISTRA_D
432 IF (ICONTROL==0) ICONTROL=ICONTROL_D
433 IF (ICONTROL>1) ICONTROL=0
434C----
435 IGEO(2) = IP
436 IGEO(4) = NPT
437 IGEO(5) = ISMSTR
438 IGEO(6) = IREP
439 IGEO(9) = IPLAS-1
440 IGEO(10) = IHBE
441 IGEO(12) = ISTR
442 IGEO(13) = ICPRE
443 IGEO(14) = ICSTR
444 IGEO(15) = IINT
445 IGEO(16) = JCVT-1
446 IGEO(37) = NSPHDIR
447 IGEO(38) = IPARTSPH
448 IGEO(97) = ICONTROL
449C
450 GEO(1) = ANGLE
451 GEO(7) = VX
452 GEO(8) = VY
453 GEO(9) = VZ
454 GEO(14) = QA
455 GEO(15) = QB
456 GEO(172)= DTMIN
457 GEO(33) = PX
458 GEO(34) = PY
459 GEO(35) = PZ
460 GEO(190)= VDEFMIN
461 GEO(191)= VDEFMAX
462 GEO(192)= ASPMAX
463 GEO(193)= ASPTET
464C----
465.NOT. IF( IS_ENCRYPTED)THEN
466 IF(IGEO(31) == 1)THEN
467 WRITE(IOUT,1100)IG,IHBE,ISMSTR,IPLAS,NPT,JCVT,ITET4,ITET10,
468 . ICPRE,ICSTR,CVIS,QA,QB,QH,DTMIN,IREP,ISTR,ICONTROL
469 ELSE
470 WRITE(IOUT,1000)IG,IHBE,ISMSTR,IPLAS,NPT,JCVT,ITET4,ITET10,
471 . ICPRE,ICSTR,CVIS,QA,QB,QH,DTMIN,IREP,ISTR,ICONTROL
472 ENDIF
473 IF((VDEFMIN+VDEFMAX+ASPMAX+ASPTET)>ZERO) THEN
474 IF (VDEFMAX==ZERO) VDEFMAX=EP10
475 IF (ASPMAX==ZERO) ASPMAX=EP10
476 WRITE(IOUT,3000) VDEFMIN,VDEFMAX,ASPMAX,ASPTET
477 END IF
478 IF(IP < 0) THEN
479 WRITE(IOUT,1001) ISKN(4,ISK)
480.OR..OR. ELSEIF(IP == 1 IP == 2 IP == 3) THEN
481 WRITE(IOUT,1002) IP,ANGLE
482.OR..OR. ELSEIF(IP == 11 IP == 12 IP == 13) THEN
483 WRITE(IOUT,1003) IP,VX,VY,VZ
484 ELSEIF(IP == 20) THEN
485 WRITE(IOUT,2001) IP
486 ELSEIF(IP == 21) THEN
487 WRITE(IOUT,2002) IP,PX,PY,PZ
488 ELSEIF(IP == 23) THEN
489 WRITE(IOUT,2003) IP,ANGLE,VX,VY,VZ
490 ELSEIF(IP == 24) THEN
491 WRITE(IOUT,2004) IP,PX,PY,PZ,VX,VY,VZ
492 ENDIF
493 IF (IET > 0) WRITE(IOUT,2010) IET
494 IF(NSPHDIR/=0)WRITE(IOUT,2020)NSPHDIR, ID_PARTSPH
495 ELSE
496 WRITE(IOUT,1099) IG
497 ENDIF
498
499 IF (ITET4 == 1000) ITET4 = 0
500 IGEO(20) = ITET4
501 IF (ITET10 == 1000) ITET10 = 0
502 IGEO(50) = ITET10
503C
504 PROP_TAG(IGTYP)%G_SIG = 6
505 PROP_TAG(IGTYP)%L_SIG = 6
506 PROP_TAG(IGTYP)%G_EINT = 1
507 PROP_TAG(IGTYP)%G_QVIS = 1
508 PROP_TAG(IGTYP)%L_EINT = 1
509 PROP_TAG(IGTYP)%G_VOL = 1
510 PROP_TAG(IGTYP)%L_VOL = 1
511 PROP_TAG(IGTYP)%L_QVIS = 1
512 IF (MULTI_FVM%IS_USED) THEN
513 PROP_TAG(IGTYP)%G_MOM = 3
514 ENDIF
515C
516 PROP_TAG(IGTYP)%G_FILL = 1
517 PROP_TAG(IGTYP)%L_STRA = 6
518.AND. IF (N2D /= 0 MULTI_FVM%IS_USED) THEN
519! 2D analysis
520 PROP_TAG(IGTYP)%G_AREA = 1
521 ENDIF
522 PROP_TAG(IGTYP)%G_GAMA = 6
523 PROP_TAG(IGTYP)%L_SIGL = 6
524.OR. IF (GEO(16) /= ZERO GEO(17) /= ZERO) THEN
525 IGEO(33) = 1 ! ISVIS flag
526 ENDIF
527
528C-------------------------------
529 IGEO(1) =IG
530 IGEO(11)=IGTYP
531 IGEO(17)=ISORTH
532.AND. IF(GEO( 3)/=ZEROIGEO( 5)== 0) IGEO( 5)=NINT(GEO( 3))
533.AND. IF(GEO(39)/=ZEROIGEO( 9)== 0) IGEO( 9)=NINT(GEO(39))
534.AND. IF(GEO(171)/=ZEROIGEO(10)== 0) IGEO(10)=NINT(GEO(171))
535C
536C----
537 RETURN
538C---
539 1000 FORMAT(
540 & 5X,'orthotropic solid property set'/,
541 & 5X,'property set number . . . . . . . . . .=',I10/,
542 & 5X,'solid formulation flag. . . . . . . . .=',I10/,
543 & 5X,'small strain flag . . . . . . . . . . .=',I10/,
544 & 5X,'solid stress plasticity flag. . . . . .=',I10/,
545 & 5X,'number of integration points. . . . .=',I10/,
546 & 5X,'corotational system flag. . . . . . . .=',I10/,
547 & 5X,'tetra4 formulation flag. . . . . . . .=',I10/,
548 & 5X,'tetra10 formulation flag . . . . . . .=',I10/,
549 & 5X,'constant pressure flag. . . . . . . . .=',I10/,
550 & 5X,'constant stress flag. . . . . . . . . .=',I10/,
551 & 5X,'hourglass numerical damping . . . . . .=',1pg20.13/,
552 & 5x,'QUADRATIC BULK VISCOSITY. . . . . . . .=',1pg20.13/,
553 & 5x,'LINEAR BULK VISCOSITY . . . . . . . . .=',1pg20.13/,
554 & 5x,'HOURGLASS VISCOSITY . . . . . . . . . .=',1pg20.13/,
555 & 5x,'BRICK MINIMUM TIME STEP................=',1pg20.13/,
556 & 5x,'LOCAL ORTHOTROPY SYSTEM FORMULATION . .=',i10/,
557 & 5x,'POST PROCESSING STRAIN FLAG . . . . . .=',i10/,
558 & 5x,'SOLID DISTORTION CONTROL FLAG . . . . .=',i10/)
559 1099 FORMAT(
560 & 5x,'ORTHOTROPIC SOLID PROPERTY SET'/,
561 & 5x,'PROPERTY SET NUMBER . . . . . . . . . .=',i8/,
562 & 5x,'CONFIDENTIAL DATA'//)
563 1100 FORMAT(
564 & 5x,'ORTHOTROPIC SOLID PROPERTY SET'/,
565 & 5x,'PROPERTY SET NUMBER . . . . . . . . . .=',i10/,
566 & 5x,'SOLID FORMULATION FLAG. . . . . . . . .=',i10/,
567 & 5x,'SMALL STRAIN FLAG . . . . . . . . . . .=',i10/,
568 & 5x,'SOLID STRESS PLASTICITY FLAG. . . . . .=',i10/,
569 & 5x,'NUMBER OF INTEGRATION POINTS. . . . .=',i10/,
570 & 5x,'COROTATIONAL SYSTEM FLAG. . . . . . . .=',i10/,
571 & 5x,'TETRA4 FORMULATION FLAG. . . . . . . .=',i10/,
572 & 5x,'TETRA10 FORMULATION FLAG . . . . . . .=',i10/,
573 & 5x,'CONSTANT PRESSURE FLAG. . . . . . . . .=',i10/,
574 & 5x,'CONSTANT STRESS FLAG. . . . . . . . . .=',i10/,
575 & 5x,'HOURGLASS NUMERICAL DAMPING . . . . . .=',1pg20.13/,
576 & 5x,'DEFAULT VALUE FOR QUADRATIC BULK. . . . ',/,
577 & 5x,' VISCOSITY (QA) WILL BE USED. . . .=',1pg20.13/,
578 & 5x,'EXCEPT IN CASE LAW 70 WHERE QA = 0. ',/,
579 & 5x,'DEFAULT VALUE FOR LINEAR BULK . . . . . ',/,
580 & 5x,' VISCOSITY (QB) WILL BE USED . . . =',1pg20.13/,
581 & 5x,'EXCEPT IN CASE LAW 70 WHERE QB = 0. ',/,
582 & 5x,'HOURGLASS VISCOSITY . . . . . . . . . .=',1pg20.13/,
583 & 5x,'BRICK MINIMUM TIME STEP................=',1pg20.13/,
584 & 5x,'LOCAL ORTHOTROPY SYSTEM FORMULATION . .=',i10/,
585 & 5x,'POST PROCESSING STRAIN FLAG . . . . . .=',i10/,
586 & 5x,'SOLID DISTORTION CONTROL FLAG . . . . .=',i10/)
587 1001 FORMAT(
588 & 5x,'ORTHOTROPIC SKEW FRAME. . . . . . . . .=',i10)
589 1002 FORMAT(
590 & 5x,'ORTHOTROPIC PLANE NUMBER. . . . . . . .=',i10/,
591 & 5x,' 1=(R,S) 2=(S,T) 3=(T,R) ',/,
592 & 5x,'ORTHOTROPIC ANGLE . . . . . . . . . . .=',1pg20.13)
593 1003 FORMAT(
594 & 5x,'ORTHOTROPIC PLANE NUMBER. . . . . . . .=',i10/,
595 & 5x,' 1=(R,S) 2=(S,T) 3=(T,R) ',/,
596 & 5x,'REFERENCE VECTOR VX . . . . . . . . . .=',1pg20.13/,
597 & 5x,'REFERENCE VECTOR VY . . . . . . . . . .=',1pg20.13/,
598 & 5x,'REFERENCE VECTOR VZ . . . . . . . . . .=',1pg20.13)
599 2010 FORMAT(
600 & 5x,'HOURGLASS MODULUS FLAG. . . . . . . . .=',i10/)
601 2020 FORMAT(
602 & 5x,'NUMBER OF SPH PARTICLES PER DIRECTION .=',i10/,
603 & 5x,'CORRESPONDING PART FOR SPH PARTICLES. .=',i10/)
604 2001 FORMAT(
605 & 5x,'ORTHOTROPIC DIRECTIONS BY ELEMENT CONNECTIVITY,IP='i10)
606 2002 FORMAT(
607 & 5x,'ORTHOTROPIC DIRECTION FLAG IP. . . . . =',i10/,
608 & 5x,'REFERENCE POINT PX . . . . . . . . . . =',1pg20.13/,
609 & 5x,'REFERENCE POINT PY . . . . . . . . . . =',1pg20.13/,
610 & 5x,'REFERENCE POINT PZ . . . . . . . . . . =',1pg20.13)
611 2003 FORMAT(
612 & 5x,'ORTHOTROPIC DIRECTION FLAG IP . . . . .=',i10/,
613 & 5x,'ORTHOTROPIC ANGLE . . . . . . . . . . .=',1pg20.13/,
614 & 5x,'REFERENCE VECTOR VX . . . . . . . . . .=',1pg20.13/,
615 & 5x,'REFERENCE VECTOR VY . . . . . . . . . .=',1pg20.13/,
616 & 5x,'REFERENCE VECTOR VZ . . . . . . . . . .=',1pg20.13)
617 2004 FORMAT(
618 & 5x,'ORTHOTROPIC DIRECTION FLAG IP. . . . . =',i10/,
619 & 5x,'REFERENCE POINT PX . . . . . . . . . . =',1pg20.13/,
620 & 5x,'REFERENCE POINT PY . . . . . . . . . . =',1pg20.13/,
621 & 5x,'REFERENCE POINT PZ . . . . . . . . . . =',1pg20.13/,
622 & 5x,'REFERENCE VECTOR VX . . . . . . . . . .=',1pg20.13/,
623 & 5x,'REFERENCE VECTOR VY . . . . . . . . . .=',1pg20.13/,
624 & 5x,'REFERENCE VECTOR VZ . . . . . . . . . .=',1pg20.13)
625 3000 FORMAT(
626 & 5x,'SOLID MINIMUM VOLUMETRIC STRAIN........=',1pg20.13/,
627 & 5x,'SOLID MAXIMUM VOLUMETRIC STRAIN........=',1pg20.13/,
628 & 5x,'SOLID MAXIMUM ASPECT RATIO.............=',1pg20.13/,
629 & 5x,'SOLID MINIMUM COLLAPSE RATIO...........=',1pg20.13/)
630C---
631 END SUBROUTINE
#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
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_prop06(geo, igeo, prop_tag, multi_fvm, igtyp, ig, idtitl, unitab, lsubmodel, rtrans, sub_id, iskn, ipart, sub_index, defaults_solid)
integer, parameter nchartitle