38
39
40
41
42
43
47
48
49
50#include "implicit_f.inc"
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90 INTEGER ,INTENT(IN) :: IOUT
91 INTEGER NUVAR
92
93 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
94 TYPE (SUBMODEL_DATA) ,DIMENSION(NSUBMOD) :: LSUBMODEL
95
96
97
98 INTEGER SET_U_PNU,SET_U_GEO
99
100
101
102 INTEGER KFUNC,KMAT,KPROP
103 parameter(kfunc=29)
104 parameter(kmat=31)
105 parameter(kprop=33)
106
107
108
109 INTEGER IERROR,IDEBUG,IFUNN,IFUNT,IFUNS,IRUPT,IFILTR
111 . scal_f,scal_d,scal_sr,dnmax,dtmax,
alpha,rupt,debug,filtr
112
113 LOGICAL IS_AVAILABLE
114
115
116
117
118
119
120
121 is_available = .false.
122
123
124 CALL hm_get_floatv(
'F_scale_stress',scal_f,is_available,lsubmodel,unitab)
125 CALL hm_get_floatv(
'F_scale_strrate',scal_sr,is_available,lsubmodel,unitab)
126 CALL hm_get_floatv(
'F_scale_dist',scal_d,is_available,lsubmodel,unitab)
128
129 CALL hm_get_intv(
'RUPT',irupt,is_available,lsubmodel)
130 CALL hm_get_intv(
'DEBUG',idebug,is_available,lsubmodel)
131 CALL hm_get_intv(
'LFILTR',ifiltr,is_available,lsubmodel)
132 CALL hm_get_intv(
'FUNCT_ID_sr',ifuns,is_available,lsubmodel)
133 CALL hm_get_intv(
'FUNCT_ID_sn',ifunn,is_available,lsubmodel)
134 CALL hm_get_intv(
'FUNCT_ID_st',ifunt,is_available,lsubmodel)
135 CALL hm_get_floatv(
'MAX_N_DIST',dnmax,is_available,lsubmodel,unitab)
136 CALL hm_get_floatv(
'MAX_T_DIST',dtmax,is_available,lsubmodel,unitab)
137
138 IF (scal_f == 0.0) scal_f = one
139 IF (scal_d == 0.0) scal_d = one
140 IF (scal_sr == 0.0) scal_sr = one
141 IF (dnmax == 0.0) dnmax = ep20
142 IF (dtmax == 0.0) dtmax = ep20
143 IF (ifiltr == 1) THEN
147 ENDIF
148 IF (ifunn == 0 .OR. ifunt == 0)GOTO 999
149
150 rupt = irupt
151 debug = idebug
152 filtr = ifiltr
153
163
167
168
169
170 nuvar = 2
171
172 WRITE(iout,1000)
173 WRITE(iout,1100) scal_f,scal_d,scal_sr,
alpha,
174 . dnmax,dtmax,ifunn,ifunt,ifuns,irupt,ifiltr,idebug
175
176 RETURN
177999 WRITE(iout,*)' **ERROR IN USER INTERFACE PROPERTY INPUT'
179
180 1000 FORMAT(
181 . ' USER INTERFACE RUPTURE PARAMETERS '/
182 . ' ---------------------- '/)
183 1100 FORMAT(/10x,'SCAL_F . . . . . . . . . .',1pg20.13
184 . /10x,'SCAL_DISP. . . . . . . . .',1pg20.13
185 . /10x,'SCAL_SR . . . . . . . . .',1pg20.13
186 . /10x,'FILTERING COEFF. . . . . .',1pg20.13
187 . /10x,'DN_MAX . . . . . . . . . .',1pg20.13
188 . /10x,'DT_MAX . . . . . . . . . .',1pg20.13
189 . /10x,'IFUNN . . . . . . . .',i10
190 . /10x,'IFUNT . . . . . . . .',i10
191 . /10x,'IFUNS . . . . . . . .',i10
192 . /10x,'IRUPT . . . . . . . .',i10
193 . /10x,'IFILTR . . . . . . . .',i10
194 . /10x,'IDEBUG . . . . . . . . .',i10//)
195
196 RETURN
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
integer function set_u_pnu(ivar, ip, k)
integer function set_u_geo(ivar, a)