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

Go to the source code of this file.

Functions/Subroutines

subroutine hm_read_fail_user (fail, irupt, iuser_key, userl_avail, lsubmodel, unitab_sub, mat_id)

Function/Subroutine Documentation

◆ hm_read_fail_user()

subroutine hm_read_fail_user ( type (fail_param_), intent(inout) fail,
integer irupt,
character(len=ncharline) iuser_key,
integer userl_avail,
type(submodel_data), dimension(*), intent(in) lsubmodel,
dimension(4) unitab_sub,
integer mat_id )

Definition at line 37 of file hm_read_fail_user.F.

39C-----------------------------------------------
40C ROUTINE DESCRIPTION :
41C ===================
42C Read user material failure - generic routine
43C------------------------------------------------------------------
44C DUMMY ARGUMENTS DESCRIPTION:
45C ===================
46C
47C NAME DESCRIPTION
48C
49C USERL_AVAIL Flag if userlibrary was load
50C IS_AVAILABLE Bool / Result of HM_interface
51C LSUBMODEL SUBMODEL Structure.
52C------------------------------------------------------------------
53C M o d u l e s
54C-----------------------------------------------
55 USE fail_param_mod
56 USE message_mod
57 USE submodel_mod
59C-----------------------------------------------
60C I m p l i c i t T y p e s
61C-----------------------------------------------
62#include "implicit_f.inc"
63C-----------------------------------------------
64C C o m m o n B l o c k s
65C-----------------------------------------------
66#include "scr15_c.inc"
67#include "units_c.inc"
68C-----------------------------------------------
69C D u m m y A r g u m e n t s
70C-----------------------------------------------
71 INTEGER IRUPT,MAT_ID
72 INTEGER USERL_AVAIL
73 TYPE(SUBMODEL_DATA),INTENT(IN) :: LSUBMODEL(*)
74 my_real, DIMENSION(4) :: unitab_sub
75 CHARACTER(LEN=NCHARLINE) :: IUSER_KEY
76 TYPE (FAIL_PARAM_) ,INTENT(INOUT) :: FAIL
77C-----------------------------------------------
78C L o c a l V a r i a b l e s
79C-----------------------------------------------
80 INTEGER NUPARAM,NUVAR,NFUNC
81 INTEGER, PARAMETER :: MAXFUNC = 100
82 INTEGER, PARAMETER :: MAXPARAM = 1000
83 INTEGER, DIMENSION(MAXFUNC) :: IFUNC
84 my_real, DIMENSION(MAXPARAM) :: uparam
85 CHARACTER(LEN=4096) :: SCR_FILE_NAME
86 CHARACTER(LEN=ncharline) :: RLINE
87 CHARACTER (LEN=4) :: CRUP
88 CHARACTER(LEN=nchartitle) :: TITLE
89 LOGICAL :: IS_AVAILABLE
90 INTEGER NLINES,J
91 INTEGER SCR_FILE_NAME_LEN
92!
93 CHARACTER OPTION*256
94 INTEGER SIZE
95C-----------------------------------------------
96 IF (userl_avail == 0)THEN
97 ! ERROR to be printed & exit
98 option='/FAIL/'//iuser_key
99 size=len_trim(option)
100 CALL ancmsg(msgid=1130,
101 . msgtype=msgerror,c1=option(1:size),anmode=aninfo)
102 CALL arret(2)
103 ENDIF
104
105 CALL hm_get_intv ('Number_of_datalines' ,nlines ,is_available, lsubmodel)
106
107 IF(nlines > 0)THEN
108
109 ! Create tempo file
110 WRITE(crup,'(I4.4)')irupt
111 scr_file_name='SI'//rootnam(1:rootlen)//'_'//crup//'.scr'
112 scr_file_name_len=len_trim(scr_file_name)
113 OPEN(unit=30,file=trim(scr_file_name),form='FORMATTED',recl=ncharline)
114
115 ! Read & Dump in scratch file
116 DO j=1,nlines
117 CALL hm_get_string_index('arraydatalines', rline, j, ncharline, is_available)
118 WRITE(30,fmt='(A)')trim(rline)
119 ENDDO
120 CLOSE(unit=30)
121!
122 CALL st_userlib_lecr(irupt,rootnam,rootlen,uparam,maxparam,nuparam,
123 . nuvar ,ifunc,maxfunc,nfunc,unitab_sub,
124 . mat_id)
125c
126 fail%KEYWORD = 'USER FAILURE MODEL'
127 fail%IRUPT = irupt
128 fail%FAIL_ID = 0
129 fail%NUPARAM = nuparam
130 fail%NIPARAM = 0
131 fail%NUVAR = nuvar
132 fail%NFUNC = nfunc
133 fail%NTABLE = 0
134 fail%NMOD = 0
135c
136 ALLOCATE (fail%UPARAM(fail%NUPARAM))
137 ALLOCATE (fail%IPARAM(fail%NIPARAM))
138 ALLOCATE (fail%IFUNC (fail%NFUNC))
139 ALLOCATE (fail%TABLE (fail%NTABLE))
140c
141 fail%UPARAM(1:nuparam) = uparam(1:nuparam)
142 fail%IFUNC (1:nfunc) = ifunc(1:nfunc)
143c
144 CALL user_output(iout,irupt,rootnam,rootlen,1)
145 ELSE
146 ! Error MESSAGE_Mess
147 ENDIF
148!---------
149 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_get_string_index(name, sval, index, size, is_available)
integer, parameter nchartitle
integer, parameter ncharline
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
Definition message.F:889
subroutine arret(nn)
Definition arret.F:87
subroutine user_output(iout, ilaw, rootn, rootlen, inpf)
Definition user_output.F:38