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

Go to the source code of this file.

Functions/Subroutines

subroutine hm_read_fail_nxt (fail, mat_id, fail_id, irupt, lsubmodel, unitab, fail_tag)

Function/Subroutine Documentation

◆ hm_read_fail_nxt()

subroutine hm_read_fail_nxt ( type(fail_param_), intent(inout) fail,
integer, intent(in) mat_id,
integer, intent(in) fail_id,
integer, intent(in) irupt,
type(submodel_data), dimension(*), intent(in) lsubmodel,
type(unit_type_), intent(in) unitab,
type (fail_tag_), intent(inout) fail_tag )
Parameters
[in]fail_idfailure model ID
[in]mat_idmaterial law ID
[in]iruptfailure model type number
[in]unitabtable of input units
[in]lsubmodelsubmodel table
[in,out]failfailure model data structure
[in,out]fail_tagfailure model tag for buffer allocation

Definition at line 35 of file hm_read_fail_nxt.F.

38C-----------------------------------------------
39c ROUTINE DESCRIPTION :
40c Read NXT failure model parameters
41C-----------------------------------------------
42C M o d u l e s
43C-----------------------------------------------
44 USE fail_param_mod
45 USE unitab_mod
46 USE submodel_mod
48 USE elbuftag_mod
49C-----------------------------------------------
50C I m p l i c i t T y p e s
51C-----------------------------------------------
52#include "implicit_f.inc"
53C-----------------------------------------------
54C C o m m o n B l o c k s
55C-----------------------------------------------
56#include "units_c.inc"
57C-----------------------------------------------
58C D u m m y A r g u m e n t s
59C-----------------------------------------------
60 INTEGER ,INTENT(IN) :: FAIL_ID !< failure model ID
61 INTEGER ,INTENT(IN) :: MAT_ID !< material law ID
62 INTEGER ,INTENT(IN) :: IRUPT !< failure model type number
63 TYPE(UNIT_TYPE_) ,INTENT(IN) :: UNITAB !< table of input units
64 TYPE(SUBMODEL_DATA),INTENT(IN) :: LSUBMODEL(*) !< submodel table
65 TYPE(FAIL_PARAM_) ,INTENT(INOUT) :: FAIL !< failure model data structure
66 TYPE (FAIL_TAG_) ,INTENT(INOUT) :: FAIL_TAG !< failure model tag for buffer allocation
67C-----------------------------------------------
68C L o c a l V a r i a b l e s
69C-----------------------------------------------
70 INTEGER :: IFAIL_SH
71 INTEGER ,PARAMETER :: NFUNC = 2
72 INTEGER ,DIMENSION(NFUNC) :: IFUNC
73 my_real pthkf
74C-----------------------------------------------
75 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
76C=======================================================================
77 is_encrypted = .false.
78 is_available = .false.
79C--------------------------------------------------
80C EXTRACT DATA (IS OPTION CRYPTED)
81C--------------------------------------------------
82 CALL hm_option_is_encrypted(is_encrypted)
83C--------------------------------------------------
84C EXTRACT DATAS
85C--------------------------------------------------
86 ifail_sh = 0
87Card1
88 CALL hm_get_intv ('fct_ID1' ,ifunc(1) ,is_available,lsubmodel)
89 CALL hm_get_intv ('fct_ID2' ,ifunc(2) ,is_available,lsubmodel)
90 CALL hm_get_intv ('Ifail_sh' ,ifail_sh ,is_available,lsubmodel)
91c-----------------------------
92 IF (ifail_sh == 1) THEN
93 pthkf = em06
94 ELSEIF (ifail_sh == 2) THEN
95 pthkf = one
96 ENDIF
97c-----------------------------------------------------
98 fail%KEYWORD = 'NXT'
99 fail%IRUPT = irupt
100 fail%FAIL_ID = fail_id
101 fail%NUPARAM = 1
102 fail%NIPARAM = 0
103 fail%NUVAR = 2
104 fail%NFUNC = nfunc
105 fail%NTABLE = 0
106 fail%NMOD = 1
107 fail%PTHK = pthkf
108c
109 ALLOCATE (fail%UPARAM(fail%NUPARAM))
110 ALLOCATE (fail%IPARAM(fail%NIPARAM))
111 ALLOCATE (fail%IFUNC (fail%NFUNC))
112 ALLOCATE (fail%TABLE (fail%NTABLE))
113c
114 ! Modes of failure
115 fail_tag%LF_DAMMX = fail_tag%LF_DAMMX + fail%NMOD
116 ALLOCATE (fail%MODE(fail%NMOD))
117 fail%MODE(1) = "Instability factor"
118c
119 fail%IFUNC(1:nfunc) = ifunc(1:nfunc)
120 fail%UPARAM(1) = ifail_sh
121c-----------------------------------------------------
122 IF(is_encrypted)THEN
123 WRITE(iout, 1000)
124 ELSE
125 IF(ifail_sh == 0) THEN
126 WRITE(iout, 1001)ifunc(1),ifunc(2)
127 ELSE
128 WRITE(iout, 1100)ifunc(1),ifunc(2)
129 ENDIF
130 ENDIF
131C-----------
132 1000 FORMAT(
133 & 5x,40h crypted DATA in failure model /,
134 & 5x,40h ----------------------------- /)
135 1001 FORMAT(
136 & 5x,40h nxt failure criteria /,
137 & 5x,40h ------------------------ /,
138 & 5x,' NO SHELL ELEMENT DELETION AFTER FAILURE' /,
139 & 5x,'S-R CURVE FORMING LIMIT DIAGRAM . . . . . . . =',i10/,
140 & 5x,'3D CURVE FORMING LIMIT DIAGRAM . . . . . . . =',i10//)
141 1100 FORMAT(
142 & 5x,40h nxt failure criteria /,
143 & 5x,40h ------------------------ /,
144 & 5x,' SHELL ELEMENT DELETION AFTER FAILURE' /,
145 & 5x,'S-R CURVE FORMING LIMIT DIAGRAM . . . . . . . =',i10/,
146 & 5x,'3D CURVE FORMING LIMIT DIAGRAM . . . . . . . =',i10//)
147C-----------
148 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_is_encrypted(is_encrypted)