OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_fail_nxt.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_fail_nxt ../starter/source/materials/fail/nxt/hm_read_fail_nxt.F
25!||--- called by ------------------------------------------------------
26!|| hm_read_fail ../starter/source/materials/fail/hm_read_fail.F
27!||--- calls -----------------------------------------------------
28!|| hm_get_intv ../starter/source/devtools/hm_reader/hm_get_intv.F
29!|| hm_option_is_encrypted ../starter/source/devtools/hm_reader/hm_option_is_encrypted.F
30!||--- uses -----------------------------------------------------
31!|| elbuftag_mod ../starter/share/modules1/elbuftag_mod.F
32!|| hm_option_read_mod ../starter/share/modules1/hm_option_read_mod.F
33!|| submodel_mod ../starter/share/modules1/submodel_mod.F
34!||====================================================================
35 SUBROUTINE hm_read_fail_nxt(
36 . FAIL ,MAT_ID ,FAIL_ID ,IRUPT ,
37 . LSUBMODEL,UNITAB ,FAIL_TAG )
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
149 END
150
151
152
153
154
155
156
157
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_is_encrypted(is_encrypted)
subroutine hm_read_fail_nxt(fail, mat_id, fail_id, irupt, lsubmodel, unitab, fail_tag)