OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_mat01.F File Reference
#include "implicit_f.inc"
#include "units_c.inc"
#include "param_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine hm_read_mat01 (ipm, pm, unitab, id, titr, lsubmodel, israte, matparam)

Function/Subroutine Documentation

◆ hm_read_mat01()

subroutine hm_read_mat01 ( integer, dimension(npropmi), intent(inout) ipm,
dimension(npropm), intent(inout) pm,
type (unit_type_), intent(in) unitab,
integer, intent(in) id,
character(len=nchartitle), intent(in) titr,
type(submodel_data), dimension(*), intent(in) lsubmodel,
integer, intent(inout) israte,
type(matparam_struct_), intent(inout) matparam )

Definition at line 36 of file hm_read_mat01.F.

38C-----------------------------------------------
39C D e s c r i p t i o n
40C-----------------------------------------------
41C ROUTINE DESCRIPTION :
42C ===================
43C READ MAT LAW01 WITH HM READER
44C-----------------------------------------------
45C DUMMY ARGUMENTS DESCRIPTION:
46C ===================
47C
48C NAME DESCRIPTION
49C
50C IPM MATERIAL ARRAY(INTEGER)
51C PM MATERIAL ARRAY(REAL)
52C UNITAB UNITS ARRAY
53C ID MATERIAL ID(INTEGER)
54C TITR MATERIAL TITLE
55C LSUBMODEL SUBMODEL STRUCTURE
56C-----------------------------------------------
57C M o d u l e s
58C-----------------------------------------------
59 USE unitab_mod
60 USE message_mod
61 USE submodel_mod
62 USE matparam_def_mod
64C-----------------------------------------------
65C I m p l i c i t T y p e s
66C-----------------------------------------------
67#include "implicit_f.inc"
68C-----------------------------------------------
69C C o m m o n B l o c k s
70C-----------------------------------------------
71#include "units_c.inc"
72#include "param_c.inc"
73C-----------------------------------------------
74C D u m m y A r g u m e n t s
75C-----------------------------------------------
76C INPUT ARGUMENTS
77 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
78 INTEGER,INTENT(IN)::ID
79 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN)::TITR
80 TYPE(SUBMODEL_DATA),INTENT(IN)::LSUBMODEL(*)
81C MODIFIED ARGUMENT
82 INTEGER,INTENT(INOUT)::IPM(NPROPMI),ISRATE
83 my_real,INTENT(INOUT)::pm(npropm)
84 TYPE(MATPARAM_STRUCT_) ,INTENT(INOUT) :: MATPARAM
85C-----------------------------------------------
86C L o c a l V a r i a b l e s
87C-----------------------------------------------
89 . young, anu, g, c0, c1, e0, e1mn2, en1n2, sdsp, rho0, rhor
90 LOGICAL IS_AVAILABLE,IS_ENCRYPTED
91C-----------------------------------------------
92C S o u r c e L i n e s
93C-----------------------------------------------
94 is_encrypted = .false.
95 is_available = .false.
96
97 CALL hm_option_is_encrypted(is_encrypted)
98
99 CALL hm_get_floatv('MAT_RHO', rho0 ,is_available,lsubmodel,unitab)
100 CALL hm_get_floatv('Refer_Rho',rhor ,is_available,lsubmodel,unitab)
101 CALL hm_get_floatv('MAT_E', young ,is_available,lsubmodel,unitab)
102 CALL hm_get_floatv('MAT_NU', anu ,is_available,lsubmodel,unitab)
103C--------------------------------------------------
104 IF(rhor == zero ) rhor=rho0
105C
106 IF (young<=zero) THEN
107 CALL ancmsg(msgid=683,
108 . msgtype=msgerror,
109 . anmode=aninfo,
110 . i1=id,
111 . c1=titr,
112 . c2='YOUNG''S MODULUS')
113 ENDIF
114 IF(anu==half)anu=zep499
115C
116 g=young/(two*(one+anu))
117 c0=zero
118 c1=young/(three*(one-two*anu))
119 e0=zero
120 e1mn2=young/(one-anu**2)
121 en1n2=anu*e1mn2
122 sdsp =sqrt(young/max(rhor,em20))
123 israte = 0
124
125 pm(1) =rhor
126 pm(20)=young
127 pm(21)=anu
128 pm(22)=g
129 pm(23)=e0
130 pm(24)=e1mn2
131 pm(25)=en1n2
132 pm(26)=five_over_6
133 pm(27)=sdsp
134 pm(31)=c0
135 pm(32)=c1
136 pm(89) =rho0
137c-----------------
138 CALL init_mat_keyword(matparam,"TOTAL")
139 IF (anu > 0.49) THEN
140 CALL init_mat_keyword(matparam,"INCOMPRESSIBLE")
141 ELSE
142 CALL init_mat_keyword(matparam,"COMPRESSIBLE")
143 END IF
144 CALL init_mat_keyword(matparam,"HOOK")
145 ! Properties compatibility
146 CALL init_mat_keyword(matparam,"SOLID_ISOTROPIC")
147 CALL init_mat_keyword(matparam,"SHELL_ISOTROPIC")
148 CALL init_mat_keyword(matparam,"BEAM_CLASSIC")
149 CALL init_mat_keyword(matparam,"TRUSS")
150 CALL init_mat_keyword(matparam,"SPH")
151c-----------------
152 WRITE(iout,1001) trim(titr),id,01
153 WRITE(iout,1000)
154 IF(is_encrypted)THEN
155 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
156 ELSE
157 WRITE(iout,1100)rho0
158 WRITE(iout,1300)young,anu,g
159 ENDIF
160C
161 ipm(252)= 2
162 pm(105) = two*g/(c1+four_over_3*g)
163C-----------
164 RETURN
165 1000 FORMAT(
166 & 5x,' ELASTIC MATERIAL (/MAT/LAW01)',/,
167 & 5x,' -----------------------------')
168 1001 FORMAT(
169 & 5x,a,/,
170 & 5x,'MATERIAL NUMBER . . . . . . . . . . . .=',i10/,
171 & 5x,'MATERIAL LAW. . . . . . . . . . . . . .=',i10/)
172 1100 FORMAT(
173 & 5x,'INITIAL DENSITY . . . . . . . . . . . .=',1pg20.13/)
174 1300 FORMAT(
175 & 5x,'YOUNG''S MODULUS . . . . . . . . . . . .=',e12.4/,
176 & 5x,'POISSON''S RATIO . . . . . . . . . . . .=',e12.4/,
177 & 5x,'SHEAR MODULUS . . . . . . . . . . . . .=',e12.4//)
178C-----------
179 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_option_is_encrypted(is_encrypted)
subroutine init_mat_keyword(matparam, keyword)
#define max(a, b)
Definition macros.h:21
initmumps id
integer, parameter nchartitle
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