OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_mat75.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_mat75 (uparam, maxuparam, nuparam, nuvar, ifunc, maxfunc, nfunc, parmat, unitab, mat_id, titr, mtag, lsubmodel, pm, matparam)

Function/Subroutine Documentation

◆ hm_read_mat75()

subroutine hm_read_mat75 ( dimension(maxuparam), intent(inout) uparam,
integer, intent(inout) maxuparam,
integer, intent(inout) nuparam,
integer, intent(inout) nuvar,
integer, dimension(maxfunc), intent(inout) ifunc,
integer, intent(inout) maxfunc,
integer, intent(inout) nfunc,
dimension(100), intent(inout) parmat,
type (unit_type_), intent(in) unitab,
integer, intent(in) mat_id,
character(len=nchartitle), intent(in) titr,
type(mlaw_tag_), intent(inout) mtag,
type(submodel_data), dimension(*), intent(in) lsubmodel,
dimension(npropm), intent(inout) pm,
type(matparam_struct_), intent(inout) matparam )

Definition at line 38 of file hm_read_mat75.F.

42C-----------------------------------------------
43C D e s c r i p t i o n
44C-----------------------------------------------
45C READ MAT LAW75 WITH HM READER
46C-----------------------------------------------
47C M o d u l e s
48C-----------------------------------------------
49 USE unitab_mod
50 USE message_mod
51 USE submodel_mod
52 USE matparam_def_mod
53 USE elbuftag_mod
55C-----------------------------------------------
56C I m p l i c i t T y p e s
57C-----------------------------------------------
58#include "implicit_f.inc"
59C-----------------------------------------------
60C C o m m o n B l o c k s
61C-----------------------------------------------
62#include "units_c.inc"
63#include "param_c.inc"
64C-----------------------------------------------
65C D u m m y A r g u m e n t s
66C-----------------------------------------------
67 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
68 my_real, INTENT(INOUT) :: parmat(100), uparam(maxuparam), pm(npropm)
69 INTEGER, INTENT(INOUT) :: IFUNC(MAXFUNC), NFUNC, MAXFUNC, MAXUPARAM,
70 . NUPARAM, NUVAR
71 INTEGER, INTENT(IN) :: MAT_ID
72 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
73 TYPE(SUBMODEL_DATA),INTENT(IN) :: LSUBMODEL(*)
74 TYPE(MLAW_TAG_), INTENT(INOUT) :: MTAG
75 TYPE(MATPARAM_STRUCT_) ,INTENT(INOUT) :: MATPARAM
76C-----------------------------------------------
77C L o c a l V a r i a b l e s
78C-----------------------------------------------
79 INTEGER MATS,IFLAG1,IFLAG2,ITEMAX
81 . ce, pe, ps, nn, tol, young, nu, bulk, rho0, rhor
82 LOGICAL :: IS_ENCRYPTED, IS_AVAILABLE
83C-----------------------------------------------
84C S o u r c e
85C-----------------------------------------------
86 is_encrypted = .false.
87 is_available = .false.
88 CALL hm_option_is_encrypted(is_encrypted)
89C----------------------------------------------------------------
90C #RhoO rho_ref
91 CALL hm_get_floatv('MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
92 CALL hm_get_floatv('Refer_Rho' ,rhor ,is_available, lsubmodel, unitab)
93C----------------------------------------------------------------
94 CALL hm_get_floatv('MAT_E', young, is_available, lsubmodel, unitab)
95 CALL hm_get_floatv('MAT_NU', nu, is_available, lsubmodel, unitab)
96
97 CALL hm_get_intv('MAT1', mats, is_available, lsubmodel)
98 CALL hm_get_intv('HFLAG1', iflag1, is_available, lsubmodel)
99 CALL hm_get_intv('HFLAG2', iflag2, is_available, lsubmodel)
100 CALL hm_get_intv('Nppmax', itemax, is_available, lsubmodel)
101
102 CALL hm_get_floatv('MAT_PPRES', pe, is_available, lsubmodel, unitab)
103 CALL hm_get_floatv('MAT_YPRES', ps, is_available, lsubmodel, unitab)
104 CALL hm_get_floatv('MAT_EXP1', nn, is_available, lsubmodel, unitab)
105
106 CALL hm_get_floatv('MAT_Tol', tol, is_available, lsubmodel, unitab)
107C
108 IF(iflag1 <= 0) iflag1=1
109 IF(iflag2 <= 0) iflag2=1
110 IF(itemax <= 0) itemax=5
111 IF(nn <= zero) nn=two
112 IF(tol <= zero) tol=em08
113
114 nuvar = 4
115 pm(1) = rhor
116 pm(89) = rho0
117 bulk=young/three/(one-two*nu)
118 ce=sqrt(bulk/rho0)
119C
120 uparam(1) = bulk
121 uparam(2) = pe
122 uparam(3) = ps
123 uparam(4) = nn
124 uparam(5) = tol
125 uparam(6) = mats
126 uparam(7) = iflag1
127 uparam(8) = iflag2
128 uparam(9) = young/(one+nu)
129 uparam(10)= half*uparam(9)
130 uparam(17)= itemax
131C
132 nuparam= 17
133C
134 parmat(1) = bulk
135 parmat(2) = young
136 parmat(3) = nu
137C Formulation for solid elements time step computation.
138 parmat(16) = 2
139 parmat(17) = (one - two*nu)/(one - nu) ! ==two*g/(bulk+sfour_over_3*g)
140C
141 ! MATPARAM keywords
142 CALL init_mat_keyword(matparam,"HOOK")
143C
144 ! Properties compatibility
145 CALL init_mat_keyword(matparam,"solid_isotropic")
146 CALL INIT_MAT_KEYWORD(MATPARAM,"sph")
147C
148C----------------------
149 WRITE(IOUT, 900) TRIM(TITR),MAT_ID,75
150 WRITE(IOUT,1000)
151 IF (IS_ENCRYPTED) THEN
152 WRITE(IOUT,'(5X,A,//)')'CONFIDENTIAL DATA'
153 ELSE
154 WRITE(IOUT,950)RHO0
155 WRITE(IOUT,1100) YOUNG, NU, UPARAM(10), BULK
156 WRITE(IOUT,1200) MATS, IFLAG1, IFLAG2, ITEMAX, PE, PS, NN
157 WRITE(IOUT,1300) TOL, CE
158 ENDIF
159C--------
160C ERRORS
161C--------
162 IF (PE > PS) THEN
163 CALL ANCMSG(MSGID=897,
164 . MSGTYPE=MSGERROR,
165 . ANMODE=ANINFO,
166 . I1=MAT_ID,
167 . C1=TITR)
168 ENDIF
169C
170 RETURN
171C
172 900 FORMAT(/
173 & 5X,A,/,
174 & 5X,'MATERIAL NUMBER. . . . . . . . . . . . . . .=',I10/,
175 & 5X,'MATERIAL LAW . . . . . . . . . . . . . . . .=',I10/)
176 950 FORMAT(
177 & 5X,'INITIAL DENSITY . . . . . . . . . . .=',1PG20.13/)
178 1000 FORMAT(
179 & 5X,' POROUS MATERIAL',/,
180 & 5X,' ---------------',//)
181 1100 FORMAT(
182 & 5X,'YOUNG',1H','S MODULUS . . . . . . . . . . . . =',1PG20.13/,
183 &5X,'POISSON',1H','S RATIO . . . . . . . . . . . . =',1PG20.13/,
184 & 5X,'SHEAR MODULUS . . . . . . . . . . . . . =',1PG20.13/,
185 & 5X,'BULK MODULUS . . . . . . . . . . . . . =',1PG20.13//)
186 1200 FORMAT(
187 & 5X,'SOLID MATERIAL IDENTIFIER . . . . . . . =',I10/
188 & 5X,'PRESSURE FORMULATION FLAG . . . . . . . =',I10/
189 & 5X,'DEVIATORIC STRESSES FORMULATION FLAG. . =',I10/
190 & 5X,'MAXIMUM NUMBER OF ITERATIONS. . . . . . =',I10//
191 & 5X,'ELASTIC COMPACTION PRESSURE (PE). . . . =',1PG20.13/
192 & 5X,'SOLID COMPACTION PRESSURE (PS). . . . . =',1PG20.13/
193 & 5X,'EXPONENT (NN) . . . . . . . . . . . . . =',1PG20.13)
194 1300 FORMAT(
195 & 5X,'CONVERGENCE TOLERANCE (TOL) . . . . . . =',1PG20.13/
196 & 5X,'INITIAL POROUS BULK SOUND SPEED . . . . =',1PG20.13)
#define my_real
Definition cppsort.cpp:32
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 init_mat_keyword(matparam, keyword)
integer, parameter nchartitle