OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_mat25.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_mat25 (uparam, maxuparam, nuparam, unitab, lsubmodel, mtag, id, titr, pm, israte, parmat, matparam)

Function/Subroutine Documentation

◆ hm_read_mat25()

subroutine hm_read_mat25 ( dimension(maxuparam) uparam,
integer maxuparam,
integer nuparam,
type (unit_type_), intent(in) unitab,
type(submodel_data), dimension(*), intent(in) lsubmodel,
type(mlaw_tag_), intent(inout) mtag,
integer, intent(in) id,
character(len=nchartitle), intent(in) titr,
intent(inout) pm,
integer, intent(inout) israte,
intent(inout) parmat,
type(matparam_struct_), intent(inout) matparam )

Definition at line 39 of file hm_read_mat25.F.

43C-----------------------------------------------
44C M o d u l e s
45C-----------------------------------------------
46 USE unitab_mod
47 USE elbuftag_mod
48 USE message_mod
49 USE submodel_mod
50 USE matparam_def_mod
51 USE read_mat25_crasurv_mod
52 USE read_mat25_tsaiwu_mod
54C-----------------------------------------------
55C ROUTINE DESCRIPTION :
56C ===================
57C READ MAT LAW25 WITH HM READER
58C-----------------------------------------------
59C DUMMY ARGUMENTS DESCRIPTION:
60C ===================
61C UNITAB UNITS ARRAY
62C MAT_ID MATERIAL MAT_ID(INTEGER)
63C TITR MATERIAL TITLE
64C LSUBMODEL SUBMODEL STRUCTURE
65C-----------------------------------------------
66C I m p l i c i t T y p e s
67C-----------------------------------------------
68#include "implicit_f.inc"
69C-----------------------------------------------
70C C o m m o n B l o c k s
71C-----------------------------------------------
72#include "units_c.inc"
73#include "param_c.inc"
74C-----------------------------------------------
75C D u m m y A r g u m e n t s
76C-----------------------------------------------
77 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
78 INTEGER, INTENT(IN) :: ID
79 TYPE(SUBMODEL_DATA), DIMENSION(*),INTENT(IN) :: LSUBMODEL
80 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
81c
82 INTEGER, INTENT(INOUT) :: ISRATE
83 my_real, DIMENSION(100) ,INTENT(INOUT) :: parmat
84 my_real, DIMENSION(NPROPM) ,INTENT(INOUT) :: pm
85 TYPE(MLAW_TAG_) ,INTENT(INOUT) :: MTAG
86 TYPE(MATPARAM_STRUCT_) ,INTENT(INOUT) :: MATPARAM
87c
88 INTEGER :: MAXUPARAM,NUPARAM
89 my_real, DIMENSION(MAXUPARAM) :: uparam
90C-----------------------------------------------
91C L o c a l V a r i a b l e s
92C-----------------------------------------------
93 INTEGER :: ILAW,IFLAG
94 LOGICAL :: IS_AVAILABLE
95C=======================================================================
96 is_available = .false.
97 ilaw = 25
98c--------------------------------------------------------
99c Formulation type
100c--------------------------------------------------------
101c
102 CALL hm_get_intv ('MAT_Iflag' ,iflag ,is_available,lsubmodel)
103
104 IF (iflag == 0) then ! Tsai-Wu formulation
105 CALL read_mat25_tsaiwu(
106 . matparam ,parmat ,unitab ,lsubmodel,
107 . id ,titr ,pm ,israte ,
108 . iout ,npropm )
109 matparam%NMOD = 3
110 ELSE
111 CALL read_mat25_crasurv(
112 . matparam ,parmat ,unitab ,lsubmodel,
113 . id ,titr ,pm ,israte ,
114 . iout ,npropm )
115 matparam%NMOD = 6
116 END IF
117c-------------------------------------------------------------
118c---- Element buffer variable activation (for automatic allocation)
119c-------------------------------------------------------------
120c
121 mtag%G_IERR = 1 ! tag element for projection error message
122 mtag%G_GAMA = 6
123 mtag%G_PLA = 1
124 mtag%G_EPSD = 1
125 mtag%G_DAMDL = 1
126 mtag%G_TSAIWU = 1
127 mtag%G_DMG = 1 + matparam%NMOD
128c
129 mtag%L_GAMA = 6
130 mtag%L_PLA = 1
131 mtag%L_EPSD = 1
132 mtag%L_CRAK = 2
133 mtag%L_STRA = 6
134 mtag%L_TSAIWU = 1
135 mtag%L_DMG = 1 + matparam%NMOD
136c
137 ALLOCATE(matparam%MODE(matparam%NMOD))
138 matparam%MODE(1) = "Tensile damage in direction 1"
139 matparam%MODE(2) = "Tensile damage in direction 2"
140 matparam%MODE(3) = "Global maximum plastic work"
141 IF (iflag > 0) THEN
142 matparam%MODE(4) = "Failure index in direction 1"
143 matparam%MODE(5) = "Failure index in direction 2"
144 matparam%MODE(6) = "Failure index in shear plane 12"
145 ENDIF
146c
147c-----------
148 CALL init_mat_keyword(matparam,"HOOK")
149 CALL init_mat_keyword(matparam,"ELASTO_PLASTIC")
150 CALL init_mat_keyword(matparam,"COMPRESSIBLE")
151 CALL init_mat_keyword(matparam,"ORTHOTROPIC")
152c-----------
153 ! Properties compatibility
154 CALL init_mat_keyword(matparam,"SOLID_ORTHOTROPIC")
155 IF (iflag == 0) THEN
156 CALL init_mat_keyword(matparam,"SHELL_ORTHOTROPIC")
157 ELSE
158 CALL init_mat_keyword(matparam,"SHELL_COMPOSITE")
159 ENDIF
160c--------
161 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine init_mat_keyword(matparam, keyword)
initmumps id
integer, parameter nchartitle