39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 USE fail_param_mod
59
60
61
62#include "implicit_f.inc"
63
64
65
66#include "scr15_c.inc"
67#include "units_c.inc"
68
69
70
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
77
78
79
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
95
96 IF (userl_avail == 0)THEN
97
98 option='/FAIL/'//iuser_key
99 size=len_trim(option)
101 . msgtype=msgerror,c1=option(1:size),anmode=aninfo)
103 ENDIF
104
105 CALL hm_get_intv (
'Number_of_datalines' ,nlines ,is_available, lsubmodel)
106
107 IF(nlines > 0)THEN
108
109
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
116 DO j=1,nlines
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)
125
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
135
136 ALLOCATE (fail%UPARAM(fail%NUPARAM))
137 ALLOCATE (fail%IPARAM(fail%NIPARAM))
138 ALLOCATE (fail%IFUNC (fail%NFUNC))
139 ALLOCATE (fail%TABLE (fail%NTABLE))
140
141 fail%UPARAM(1:nuparam) = uparam(1:nuparam)
142 fail%IFUNC (1:nfunc) = ifunc(1:nfunc)
143
145 ELSE
146
147 ENDIF
148
149 RETURN
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)
subroutine user_output(iout, ilaw, rootn, rootlen, inpf)