44
50
51
52
53#include "implicit_f.inc"
54
55
56
57#include "scr17_c.inc"
58#include "units_c.inc"
59#include "param_c.inc"
60#include "tablen_c.inc"
61
62
63
64 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
65 INTEGER IGEO(NPROPGI),IG,IGTYP,FLAG_FMT
66
68 . geo(npropg)
69 CHARACTER(LEN=NCHARTITLE)::IDTITL
70 TYPE(PROP_TAG_) , DIMENSION(0:MAXPROP) :: PROP_TAG
71 TYPE(SUBMODEL_DATA),INTENT(IN)::LSUBMODEL(*)
72
73
74
75 INTEGER I,J,NFUNC,NFUND,IFUN,IAD,ISENS,IFL,ILENG,IRTYP
76
78 . mass,kmax,dmax,xfac,yfac,rate,
alpha,dmin,
79 . pun,yfac_dim,xfac_dim
80 CHARACTER(LEN=NCHARTITLE) :: TITR
81 LOGICAL IS_AVAILABLE, IS_ENCRYPTED
82
83 pun = em01
84
85 is_encrypted = .false.
86 is_available = .false.
87
88 igeo( 1)=ig
89 igeo(11)=igtyp
90 geo(12) =igtyp+pun
91
92
93
94
96
97
98
99 CALL hm_get_intv(
'ISFLAG',ifl,is_available,lsubmodel
100 CALL hm_get_intv(
'ISENSOR',isens,is_available,lsubmodel)
101 CALL hm_get_intv(
'Ileng',ileng,is_available,lsubmodel)
102
103 CALL hm_get_intv(
'NFUNC',nfunc,is_available,lsubmodel)
104 CALL hm_get_intv(
'NRATEN',nfund,is_available,lsubmodel)
105 CALL hm_get_floatv(
'DMIN',dmin,is_available,lsubmodel,unitab)
106
107
108
109 CALL hm_get_floatv(
'm_coeff',mass,is_available,lsubmodel,unitab)
110 CALL hm_get_floatv(
'SCALE',xfac,is_available,lsubmodel,unitab)
112 CALL hm_get_floatv(
'STIFF0',kmax,is_available,lsubmodel,unitab)
113 CALL hm_get_floatv(
'DMAX',dmax,is_available,lsubmodel,unitab)
115
116 irtyp = 7
117 CALL fretitl2(titr,igeo(npropgi-ltitr+1),ltitr)
118
119
120 IF (nfunc <= 0) THEN
122 . msgtype=msgerror,
123 . anmode=aninfo_blind_1,
124 . i1=ig,
125 . c1=titr)
126 ENDIF
127
129 IF (xfac == zero) xfac = one * xfac_dim
130 dmin = -abs(dmin)
131 dmax = abs(dmax)
132 IF (dmin == zero) dmin = -infinity
133 IF (dmax == zero) dmax = infinity
134 IF (ileng == 1) xfac = one
135
136
137 iad = 100
138 DO i = 1, nfunc
143
144 IF (ifun <= 0) THEN
146 . msgtype=msgerror,
147 . anmode=aninfo_blind_1,
148 . i1=ig,
149 . c1=titr)
150 EXIT
151 ENDIF
152 IF(i > 1 .AND. rate < geo(iad+100+i-1)) THEN
154 . msgtype=msgerror,
155 . anmode=aninfo_blind_1,
156 . i1=ig,
157 . c1=titr)
158 EXIT
159 ENDIF
160 IF (yfac == zero) yfac = one * yfac_dim
161
162 igeo(iad+i) = ifun
163 geo(iad+100+i) = rate
164 geo(iad+200+i) = yfac
165 ENDDO
166
167 iad = 100+nfunc
168
169 IF (nfund > 0) THEN
170 DO i = 1, nfund
175
176 IF (ifun <= 0) THEN
178 . msgtype=msgerror,
179 . anmode=aninfo_blind_1,
180 . i1=ig,
181 . c1=titr)
182 EXIT
183 ENDIF
184 IF(i > 1 .AND. rate < geo(iad+100+iTHEN
186 . msgtype=msgerror,
187 . anmode=aninfo_blind_1,
188 . i1=ig,
189 . c1=titr)
190 EXIT
191 ENDIF
192 IF (yfac == zero) yfac = one * yfac_dim
193
194 igeo(iad+i) = ifun
195 geo(iad+100+i) = rate
196 geo(iad+200+i) = yfac
197 ENDDO
198
199 ELSE
201 . msgtype=msgwarning,
202 . anmode=aninfo_blind_1,
203 . i1=ig,
204 . c1=titr)
205 nfund = nfunc
206 DO i = 1,nfund
207 igeo(iad+i) = igeo(100+i)
208 geo(iad+100+i) = geo(200+i)
209 geo(iad+200+i) = geo(300+i)
210 ENDDO
211 ENDIF
212
213 igeo(20) = nfunc
214 igeo(21) = nfund
215 geo(1) = mass
216 geo(2) = kmax
218 geo(5) = xfac
219 geo(8) = irtyp + em20
220 geo(15) = dmin
221 geo(16) = dmax
222
223 IF (mass < em15)THEN
225 . msgtype=msgerror,
226 . anmode=aninfo_blind_1,
227 . i1=ig,
228 . c1=titr)
229 ENDIF
230 IF (ifl == 0)THEN
231 igeo(3)=isens
232 ELSEIF (ifl == 1)THEN
233 igeo(3)=-isens
234 ELSEIF (ifl == 2)THEN
235 igeo(3)=isens
236 ENDIF
237 geo(80)=ifl
238 geo(93)=ileng
239
240 IF(is_encrypted)THEN
241 WRITE(iout,1000)ig
242 ELSE
243 WRITE(iout,1500)ig,mass,kmax,nfunc,nfund,dmin,dmax,
alpha,xfac,ileng
244 iad = 100
245 DO i=1,nfunc
246 WRITE(iout,1700) igeo(iad+i),geo(iad+200+i),geo(iad+100+i)
247 ENDDO
248 iad = 100+nfunc
249 DO i=1,nfund
250 WRITE(iout,1800) igeo(iad+i),geo(iad+200+i),geo(iad+100+i)
251 ENDDO
252 ENDIF
253
254 prop_tag(igtyp)%G_EINT = 1
255 prop_tag(igtyp)%G_FOR = 1
256 prop_tag(igtyp)%G_LENGTH = 1
257 prop_tag(igtyp)%G_TOTDEPL = 1
258 prop_tag(igtyp)%G_FOREP = 1
259 prop_tag(igtyp)%G_DEP_IN_COMP = 1
260 prop_tag(igtyp)%G_POSX = 5 ! just temp - not really used -
261 prop_tag(igtyp)%G_LENGTH_ERR = 1
262 prop_tag(igtyp)%G_DV = 1
263 prop_tag(igtyp)%G_RUPTCRIT = 1
264
265
266 RETURN
267
268 1000 FORMAT(
269 & 5x,'TABULATED ELASTO-PLASTIC SPRING PROPERTY SET'/,
270 & 5x,'-------------------'/,
271 & 5x,'PROPERTY SET NUMBER . . . . . . . . . .=',i10/,
272 & 5x,'CONFIDENTIAL DATA'//)
273 1500 FORMAT(
274 & 5x,'TABULATED ELASTIC SPRING PROPERTY SET'/,
275 & 5x,'-------------------------------------'/,
276 & 5x,'PROPERTY SET NUMBER . . . . . . . . . .=',i10/,
277 & 5x,'SPRING MASS . . . . . . . . . . . . . .=',1pg20.13/,
278 & 5x,'MAXIMUM STIFFNESS . . . . . . . . . . .=',1pg20.13/,
279 & 5x,'NUMBER OF LOADING CURVES . . . . . . .=',i10/,
280 & 5x,'NUMBER OF UNLOADING CURVES. . . . . . .=',i10/,
281 & 5x,'FAILURE DISPLACEMENT IN COMPRESSION . .=',1pg20.13/,
282 & 5x,'FAILURE DISPLACEMENT IN TENSION . . . .=',1pg20.13/,
283 & 5x,'STRAIN RATE FILTERING FACTOR . . . . .=',1pg20.13/,
284 & 5x,'ABSCISSA SCALE FACTOR . . . . .=',1pg20.13/,
285 & 5x,'UNIT LENGTH FLAG. . . . . . . . . . . .=',i10/,
286 & 5x,'IF=1 UNIT LENGTH MASS,STIFFNESS AND INPUT',/,
287 & 5x,' CURVE ARE STRAIN DEPENDING',/)
288 1700 FORMAT(
289 & 5x,'YIELD STRESS FUNCTION NUMBER . . . . . =',i10/
290 & 7x,'SCALE FACTOR. . . . . . . . . . . . . . =',1pg20.13/
291 & 7x,'STRAIN RATE . . . . . . . . . . . . . . =',1pg20.13)
292 1800 FORMAT(
293 & 5x,'UNLOADING FUNCTION NUMBER . . . . . . . =',i10/
294 & 7x,'SCALE FACTOR. . . . . . . . . . . . . . =',1pg20.13/
295 & 7x,'STRAIN RATE . . . . . . . . . . . . . . =',1pg20.13)
296
297
298 RETURN
subroutine hm_get_float_array_index(name, rval, index, is_available, lsubmodel, unitab)
subroutine hm_get_float_array_index_dim(name, dim_fac, index, is_available, lsubmodel, unitab)
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_int_array_index(name, ival, index, is_available, lsubmodel)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_is_encrypted(is_encrypted)
integer, parameter nchartitle
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)