OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_fail_snconnect.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_snconnect (fail, mat_id, fail_id, irupt, lsubmodel, unitab)

Function/Subroutine Documentation

◆ hm_read_fail_snconnect()

subroutine hm_read_fail_snconnect ( 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 )

Definition at line 36 of file hm_read_fail_snconnect.F.

39C-----------------------------------------------
40c ROUTINE DESCRIPTION :
41c Read SNCONNECT cohesive failure model parameters
42C-----------------------------------------------
43C M o d u l e s
44C-----------------------------------------------
45 USE fail_param_mod
46 USE unitab_mod
47 USE submodel_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
66C-----------------------------------------------
67C L o c a l V a r i a b l e s
68C-----------------------------------------------
69 INTEGER :: ID_0N,ID_0S,ID_FN,ID_FS,ISOLID,NFAIL,ISYM
70 my_real :: a2, b2 , a3, b3,xscale0,xscalef,areascale,
71 . xscale0_unit,xscalef_unit
72C-----------------------------------------------
73 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
74C=======================================================================
75 is_encrypted = .false.
76 is_available = .false.
77C--------------------------------------------------
78C (IS OPTION CRYPTED)
79C--------------------------------------------------
80 CALL hm_option_is_encrypted(is_encrypted)
81C--------------------------------------------------
82C EXTRACT DATA
83C--------------------------------------------------
84Card1
85 CALL hm_get_floatv ('Alpha_0' ,a2 ,is_available,lsubmodel,unitab)
86 CALL hm_get_floatv ('Beta_0' ,b2 ,is_available,lsubmodel,unitab)
87 CALL hm_get_floatv ('Alpha_f' ,a3 ,is_available,lsubmodel,unitab)
88 CALL hm_get_floatv ('Beta_f' ,b3 ,is_available,lsubmodel,unitab)
89 CALL hm_get_intv ('Ifail_so',isolid,is_available,lsubmodel)
90 CALL hm_get_intv ('ISYM' ,isym ,is_available,lsubmodel)
91Card2
92 CALL hm_get_intv ('fct_IDON' ,id_0n ,is_available,lsubmodel)
93 CALL hm_get_intv ('fct_IDOS' ,id_0s ,is_available,lsubmodel)
94 CALL hm_get_intv ('fct_IDFN' ,id_fn ,is_available,lsubmodel)
95 CALL hm_get_intv ('fct_IDFS' ,id_fs ,is_available,lsubmodel)
96 CALL hm_get_floatv ('XSCALE_0' ,xscale0 ,is_available,lsubmodel,unitab)
97 CALL hm_get_floatv ('XSCALE_F' ,xscalef ,is_available,lsubmodel,unitab)
98 CALL hm_get_floatv ('AREA_scale',areascale ,is_available,lsubmodel,unitab)
99C--------------------------------------------
100 IF (xscale0 == zero) THEN
101 CALL hm_get_floatv_dim('XSCALE0' ,xscale0_unit ,is_available, lsubmodel, unitab)
102 xscale0 = one * xscale0_unit
103 ENDIF
104
105 IF (xscalef == zero)THEN
106 CALL hm_get_floatv_dim('XSCALEF' ,xscalef_unit ,is_available, lsubmodel, unitab)
107 xscalef = one * xscalef_unit
108 ENDIF
109C--------------------------------------------
110 nfail = 1
111 IF (isolid == 0) THEN
112 isolid = 1
113 ELSE IF (isolid == 2) THEN
114 nfail = 4 ! all Gauss points must fail
115 END IF
116 IF (b2 == zero) b2 = one
117 IF (b3 == zero) b3 = one
118c-----------------------------------------------------
119 fail%KEYWORD = 'SNCONNECT'
120 fail%IRUPT = irupt
121 fail%FAIL_ID = fail_id
122 fail%NUPARAM = 9
123 fail%NIPARAM = 0
124 fail%NUVAR = 3
125 fail%NFUNC = 4
126 fail%NTABLE = 0
127 fail%NMOD = 0
128c
129 ALLOCATE (fail%UPARAM(fail%NUPARAM))
130 ALLOCATE (fail%IPARAM(fail%NIPARAM))
131 ALLOCATE (fail%IFUNC (fail%NFUNC))
132 ALLOCATE (fail%TABLE (fail%NTABLE))
133c
134 fail%UPARAM(1) = a2
135 fail%UPARAM(2) = b2
136 fail%UPARAM(3) = a3
137 fail%UPARAM(4) = b3
138 fail%UPARAM(5) = nfail
139 fail%UPARAM(6) = xscale0
140 fail%UPARAM(7) = xscalef
141 fail%UPARAM(8) = isym
142 fail%UPARAM(9) = areascale
143c
144 fail%IFUNC(1) = id_0n
145 fail%IFUNC(2) = id_0s
146 fail%IFUNC(3) = id_fn
147 fail%IFUNC(4) = id_fs
148c-----------------------------------------------------------------------
149 IF(is_encrypted)THEN
150 WRITE(iout, 1000)
151 ELSE
152 WRITE(iout, 1100) a2,b2,a3,b3,isolid,isym,
153 . id_0n,id_0s,id_fn,id_fs,xscale0,xscalef
154 ENDIF
155C-----------
156 RETURN
157C-----------
158 1000 FORMAT(
159 & 5x,' CRYPTED DATA IN FAILURE MODEL '/,
160 & 5x,' ----------------------------- '/)
161 1100 FORMAT(
162 & 5x,' SNCONNECT '/,
163 & 5x,' ------------------------ '/,
164 & 5x,'CONSTANT ALPHA INITIAL . . . . . . . . .=',1pg20.13/,
165 & 5x,'CONSTANT BETA INITIAL. . . . . . . . . .=',1pg20.13/,
166 & 5x,'CONSTANT ALPHA FINAL . . . . . . . . . .=',1pg20.13/,
167 & 5x,'CONSTANT BETA FINAL . .. . . . . . . . .=',1pg20.13/,
168 & 5x,'ISOLID FLAG . . . . . . . . . . . . . .=',i10/,
169 & 5x,'RUPTURE DEACTIVATION FLAG IN COMPRESSION=',i10/,
170 & 5x,'FUCNCTION ID INITIAL NORMAL. . . . . . .=',i10/,
171 & 5x,'FUCNCTION ID INITIAL TANGENTIAL . . . .=',i10/,
172 & 5x,'FUCNCTION ID FINAL NORMAL . . . . . . .=',i10/,
173 & 5x,'FUCNCTION ID FINAL TANGENTIAL . . . . .=',i10/,
174 & 5x,'ABSCISSA SCALE FOR INITIAL CURVES . . .=',1pg20.13/,
175 & 5x,'ABSCISSA SCALE FOR FINAL CURVES . . . .=',1pg20.13)
176C-----------
177 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_floatv_dim(name, dim_fac, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_is_encrypted(is_encrypted)