OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_mat113.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| hm_read_mat113 ../starter/source/materials/mat/mat113/hm_read_mat113.F
25!||--- called by ------------------------------------------------------
26!|| hm_read_mat ../starter/source/materials/mat/hm_read_mat.F90
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../starter/source/output/message/message.F
29!|| hm_get_floatv ../starter/source/devtools/hm_reader/hm_get_floatv.F
30!|| hm_get_floatv_dim ../starter/source/devtools/hm_reader/hm_get_floatv_dim.F
31!|| hm_get_intv ../starter/source/devtools/hm_reader/hm_get_intv.F
32!|| hm_option_is_encrypted ../starter/source/devtools/hm_reader/hm_option_is_encrypted.F
33!|| init_mat_keyword ../starter/source/materials/mat/init_mat_keyword.F
34!||--- uses -----------------------------------------------------
35!|| elbuftag_mod ../starter/share/modules1/elbuftag_mod.F
36!|| message_mod ../starter/share/message_module/message_mod.F
37!|| submodel_mod ../starter/share/modules1/submodel_mod.F
38!||====================================================================
39 SUBROUTINE hm_read_mat113(UPARAM ,MAXUPARAM,NUPARAM ,NFUNC ,PARMAT ,
40 . UNITAB ,PM ,LSUBMODEL,ISRATE ,MAT_ID ,
41 . TITR ,IFUNC ,MAXFUNC ,MTAG ,MATPARAM )
42C-----------------------------------------------
43C M o d u l e s
44C-----------------------------------------------
45 USE unitab_mod
46 USE message_mod
47 USE submodel_mod
48 USE elbuftag_mod
49 USE matparam_def_mod
51C-----------------------------------------------
52C I m p l i c i t T y p e sXM
53C-----------------------------------------------
54#include "implicit_f.inc"
55C-----------------------------------------------
56C C o m m o n B l o c k s
57C-----------------------------------------------
58#include "units_c.inc"
59#include "param_c.inc"
60C-----------------------------------------------
61C D u m m y A r g u m e n t s
62C-----------------------------------------------
63 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
64 INTEGER, INTENT(IN) :: MAT_ID,MAXUPARAM,MAXFUNC
65 my_real, DIMENSION(NPROPM) ,INTENT(INOUT) :: pm
66 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
67 INTEGER, INTENT(INOUT) :: ISRATE,IFUNC(MAXFUNC)
68 INTEGER, INTENT(INOUT) :: NUPARAM,NFUNC
69 my_real, DIMENSION(MAXUPARAM) ,INTENT(INOUT) :: uparam
70 my_real, DIMENSION(100),INTENT(INOUT) :: parmat
71 TYPE(submodel_data), DIMENSION(*),INTENT(IN) :: LSUBMODEL
72 TYPE(mlaw_tag_), INTENT(INOUT) :: MTAG
73 TYPE(matparam_struct_) ,INTENT(INOUT) :: MATPARAM
74C
75C-----------------------------------------------
76C L o c a l V a r i a b l e s
77C-----------------------------------------------
78 INTEGER J, IFUNC1, IFUNC2,IFUNC3, IECROU, IFUNC4, IG,
79 . IFAIL,ILENG,IFAIL2,FLGCHK,ILAW,
80 . i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12,i13,i14,
81 . if1,if2,if3,if4,if5,ifunc5,siz_array_comp
82C REAL
84 . a, b, d, e, f, xk, xc, dn, dx, fwv, lscale,
85 . pun,vt0, vr0, cc(6), cn(6), xa(6), xb(6),asrate,gf3,
86 . check(13,6),rho0,a_unit,e_unit,d_unit,
87 . l_unit,gf_unit,f_unit
88 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
89C=======================================================================
90 is_encrypted = .false.
91 is_available = .false.
92 ilaw = 113
93 pun = em01
94 fwv = zero
95 israte = 0
96 asrate = zero
97 cc(1:6) = zero
98 flgchk = 0
99 siz_array_comp = 0
100c------------------------------------------
101 CALL hm_option_is_encrypted(is_encrypted)
102c------------------------------------------
103c
104!-------------------------------------------------------
105! Density
106!-------------------------------------------------------
107c-------------------------------------------------------------------------------
108 WRITE(iout,1100) trim(titr),mat_id,ilaw
109 CALL hm_get_floatv('MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
110 WRITE(iout,1300) rho0
111 pm(1) = rho0
112 pm(89) = rho0
113c-------------------------------------------------------------------------------
114!-------------------------------------------------------
115! Flags
116!-------------------------------------------------------
117 ifail2 = 0
118 CALL hm_get_intv ('Ifail' ,ifail ,is_available, lsubmodel)
119 CALL hm_get_intv ('Ileng' ,ileng ,is_available, lsubmodel)
120 CALL hm_get_intv ('Ifail2' ,ifail2 ,is_available, lsubmodel)
121c
122 IF (ifail2 /= 1 .AND. ifail2 /= 2 .AND. ifail2 /= 3) ifail2 = 0
123 uparam(1)=ifail
124 uparam(2)=ileng
125 uparam(3)=ifail2
126 nuparam = 4
127c
128 IF (is_encrypted) THEN
129 WRITE(iout,1000)mat_id
130 ELSE
131 WRITE(iout,1801)mat_id,ifail,ifail2,ileng
132 ENDIF
133c-------------------------------------------------------------------------------
134!-------------------------------------------------------
135! Translations
136!-------------------------------------------------------
137!-----------------
138 ! Traction X
139!-----------------
140 CALL hm_get_floatv('STIFF1' ,xk ,is_available, lsubmodel, unitab)
141 CALL hm_get_floatv('DAMP1' ,xc ,is_available, lsubmodel, unitab)
142 CALL hm_get_floatv('Acoeft1' ,a ,is_available, lsubmodel, unitab)
143 CALL hm_get_floatv('Bcoeft1' ,b ,is_available, lsubmodel, unitab)
144 CALL hm_get_floatv('Dcoeft1' ,d ,is_available, lsubmodel, unitab)
145 CALL hm_get_intv ('FUN_A1' ,ifunc1 ,is_available, lsubmodel)
146 CALL hm_get_intv ('HFLAG1' ,iecrou ,is_available, lsubmodel)
147 CALL hm_get_intv ('FUN_B1' ,ifunc2 ,is_available, lsubmodel)
148 CALL hm_get_intv ('FUN_C1' ,ifunc3 ,is_available, lsubmodel)
149 CALL hm_get_intv ('FUN_D1' ,ifunc4 ,is_available, lsubmodel)
150 CALL hm_get_floatv('MIN_RUP1' ,dn ,is_available, lsubmodel, unitab)
151 CALL hm_get_floatv('MAX_RUP1' ,dx ,is_available, lsubmodel, unitab)
152 CALL hm_get_floatv('Prop_X_F' ,f ,is_available, lsubmodel, unitab)
153 CALL hm_get_floatv('Prop_X_E' ,e ,is_available, lsubmodel, unitab)
154 CALL hm_get_floatv('scale1' ,lscale ,is_available, lsubmodel, unitab)
155 CALL hm_get_floatv('Prop_X_H' ,gf3 ,is_available, lsubmodel, unitab)
156 CALL hm_get_intv ('FUN_K1' ,ifunc5 ,is_available, lsubmodel)
157 IF (iecrou == 4 .AND. (ifunc1 == 0 .OR. ifunc3 == 0)) THEN
158 CALL ancmsg(msgid=231,
159 . msgtype=msgerror,
160 . anmode=aninfo_blind_1,
161 . i1=ig,
162 . c1=titr)
163 ENDIF
164 IF (iecrou == 4 ) THEN
165 CALL ancmsg(msgid=230,
166 . msgtype=msgerror,
167 . anmode=aninfo_blind_1,
168 . i1=ig,
169 . c1=titr)
170 ENDIF
171 IF (iecrou == 5. and. (ifunc1 == 0 .OR. ifunc3 == 0)) THEN
172 CALL ancmsg(msgid=231,
173 . msgtype=msgerror,
174 . anmode=aninfo_blind_1,
175 . i1=ig,
176 . c1=titr)
177 ENDIF
178 IF (((iecrou==6).OR.(iecrou==9)) .AND. (ifunc1 == 0 .OR. ifunc3 == 0)) THEN
179 CALL ancmsg(msgid=1057,
180 . msgtype=msgerror,
181 . anmode=aninfo_blind_1,
182 . i1=ig,
183 . c1=titr)
184 ENDIF
185 IF (iecrou == 7 .AND. ifunc1 == 0) THEN
186 CALL ancmsg(msgid=1058,
187 . msgtype=msgerror,
188 . anmode=aninfo_blind_1,
189 . i1=ig,
190 . c1=titr)
191 ELSEIF (iecrou == 7 .AND. ifunc3 == 0) THEN
192 CALL ancmsg(msgid=1059,
193 . msgtype=msgwarning,
194 . anmode=aninfo_blind_1,
195 . i1=ig,
196 . c1=titr,
197 . i2=iecrou)
198 iecrou = 2
199 ENDIF
200 IF (ifunc1 == 0 .AND. a /= zero .AND. a /= one) THEN
201 CALL ancmsg(msgid=663,
202 . msgtype=msgwarning,
203 . anmode=aninfo_blind_1,
204 . i1=ig,
205 . c1=titr)
206 ENDIF
207C--------
208 IF (dn == zero) dn =-infinity
209 IF (dx == zero) dx = infinity
210 IF (a == zero) THEN
211 CALL hm_get_floatv_dim('Acoeft1' ,a_unit ,is_available, lsubmodel, unitab)
212 a = one * a_unit
213 ENDIF
214 IF (d == zero) THEN
215 CALL hm_get_floatv_dim('Dcoeft1' ,d_unit ,is_available, lsubmodel, unitab)
216 d = one * d_unit
217 ENDIF
218 IF (e == zero) THEN
219 CALL hm_get_floatv_dim('Prop_X_E',e_unit ,is_available, lsubmodel, unitab)
220 e = one * e_unit
221 ENDIF
222 IF (f == zero) THEN
223 CALL hm_get_floatv_dim('Prop_X_F',f_unit ,is_available, lsubmodel, unitab)
224 f = one * f_unit
225 ENDIF
226 IF (lscale == zero) THEN
227 CALL hm_get_floatv_dim('scale1',l_unit ,is_available, lsubmodel, unitab)
228 lscale = one*l_unit
229 ENDIF
230 IF (gf3 == zero) THEN
231 CALL hm_get_floatv_dim('Prop_X_H',gf_unit ,is_available, lsubmodel, unitab)
232 gf3 = one*gf_unit
233 ENDIF
234 IF (ifunc1 == 0) THEN
235 a = one
236 b = zero
237 e = zero
238 ENDIF
239C----
240 i1 = nuparam
241 i2 = i1 + 6
242 i3 = i2 + 6
243 i4 = i3 + 6
244 i5 = i4 + 6
245 i6 = i5 + 6
246 i7 = i6 + 6
247 i8 = i7 + 6
248 i9 = i8 + 6
249 i10 = i9 + 6
250 i11 = i10 + 6
251 i12 = i11 + 6
252 i13 = i12 + 6
253C
254 uparam(i1 + 1) = a !
255 uparam(i2 + 1) = b
256 uparam(i3 + 1) = d
257 uparam(i4 + 1) = e
258 uparam(i5 + 1) = gf3
259 uparam(i6 + 1) = one / f
260 uparam(i7 + 1) = one / lscale
261 uparam(i8 + 1) = dn
262 uparam(i9 + 1) = dx
263 uparam(i10 + 1) = fwv
264 uparam(i11 + 1) = xk
265 uparam(i12 + 1) = xc
266 uparam(i13 + 1) = iecrou+pun
267C
268C for interface stifness
269 pm(191) = xk
270 !
271 check(1,1) = a !
272 check(2,1) = b
273 check(3,1) = d
274 check(4,1) = e
275 check(5,1) = gf3
276 check(6,1) = one / f
277 check(7,1) = one / lscale
278 check(8,1) = dn
279 check(9,1) = dx
280 check(10,1) = fwv
281 check(11,1) = xk
282 check(12,1) = xc
283 check(13,1) = iecrou+pun
284C
285C-- If H=6 -
286 IF ((iecrou==6).OR.(iecrou==9)) THEN
287 uparam(4) = 6
288 ENDIF
289 IF (iecrou==9) siz_array_comp = 6
290C
291 if1 = 0
292 if2 = 6
293 if3 = 12
294 if4 = 18
295 if5 = 24
296C
297 ifunc(1) = ifunc1
298 ifunc(if2 + 1) = ifunc2
299 ifunc(if3 + 1) = ifunc3
300 ifunc(if4 + 1) = ifunc4
301 ifunc(if5 + 1) = ifunc5
302 nfunc = 5
303C----
304 IF (is_encrypted) THEN
305 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
306 ELSE
307 IF (iecrou /= 5) THEN
308 IF (ifail2 == 3) THEN
309 WRITE(iout,1813)'TENSION',xk,xc,ifunc1,lscale,ifunc3,f,iecrou,
310 . a,b,d,e,gf3,ifunc2,ifunc4,ifunc5,dx
311 ELSEIF (ifail2 == 2) THEN
312 WRITE(iout,1812)'TENSION',xk,xc,ifunc1,lscale,ifunc3,f,iecrou,
313 . a,b,d,e,gf3,ifunc2,ifunc4,ifunc5,dn,dx
314 ELSE
315 WRITE(iout,1810)'TENSION',xk,xc,ifunc1,lscale,ifunc3,f,iecrou,
316 . a,b,d,e,gf3,ifunc2,ifunc4,ifunc5,dn,dx
317 ENDIF ! IF (IFAIL2 == 3)
318 ELSE
319 IF (ifail2 == 3) THEN
320 WRITE(iout,1823)'TENSION',xk,xc,ifunc,lscale,ifunc2,f,iecrou,
321 . a,b,d,e,gf3,ifunc2,ifunc4,ifunc5,dx
322 ELSEIF (ifail2 == 2) THEN
323 WRITE(iout,1822)'TENSION',xk,xc,ifunc1,lscale,ifunc3,f,iecrou,
324 . a,b,d,e,gf3,ifunc2,ifunc4,ifunc5,dn,dx
325 ELSE
326 WRITE(iout,1820)'TENSION',xk,xc,ifunc1,lscale,ifunc3,f,iecrou,
327 . a,b,d,e,gf3,ifunc2,ifunc4,ifunc5,dn,dx
328 ENDIF ! IF (IFAIL2 == 3)
329 ENDIF ! IF (IECROU /= 5)
330 ENDIF ! IF (IS_ENCRYPTED)
331c-------------------------------------------------------------------------------
332!-----------------
333 ! Shear XY
334!-----------------
335C
336 CALL hm_get_floatv('STIFF2' ,xk ,is_available, lsubmodel, unitab)
337 CALL hm_get_floatv('DAMP2' ,xc ,is_available, lsubmodel, unitab)
338 CALL hm_get_floatv('Acoeft2' ,a ,is_available, lsubmodel, unitab)
339 CALL hm_get_floatv('Bcoeft2' ,b ,is_available, lsubmodel, unitab)
340 CALL hm_get_floatv('Dcoeft2' ,d ,is_available, lsubmodel, unitab)
341 CALL hm_get_intv ('FUN_A2' ,ifunc1 ,is_available, lsubmodel)
342 CALL hm_get_intv ('HFLAG2' ,iecrou ,is_available, lsubmodel)
343 CALL hm_get_intv ('FUN_B2' ,ifunc2 ,is_available, lsubmodel)
344 CALL hm_get_intv ('FUN_C2' ,ifunc3 ,is_available, lsubmodel)
345 CALL hm_get_intv ('FUN_D2' ,ifunc4 ,is_available, lsubmodel)
346 CALL hm_get_floatv('MIN_RUP2' ,dn ,is_available, lsubmodel, unitab)
347 CALL hm_get_floatv('MAX_RUP2' ,dx ,is_available, lsubmodel, unitab)
348 CALL hm_get_floatv('Prop_Y_F' ,f ,is_available, lsubmodel, unitab)
349 CALL hm_get_floatv('Prop_Y_E' ,e ,is_available, lsubmodel, unitab)
350 CALL hm_get_floatv('scale2' ,lscale ,is_available, lsubmodel, unitab)
351 CALL hm_get_floatv('Prop_Y_H' ,gf3 ,is_available, lsubmodel, unitab)
352 CALL hm_get_intv ('FUN_K2' ,ifunc5 ,is_available, lsubmodel)
353C
354 IF (iecrou == 4 .AND. (ifunc1 == 0 .OR. ifunc3 == 0)) THEN
355 CALL ancmsg(msgid=231,
356 . msgtype=msgerror,
357 . anmode=aninfo_blind_1,
358 . i1=ig,
359 . c1=titr)
360 ENDIF
361!! IF (IECROU == 4 .AND. GEO(2) == ZERO)THEN
362 IF (iecrou == 4 )THEN
363 CALL ancmsg(msgid=230,
364 . msgtype=msgerror,
365 . anmode=aninfo_blind_1,
366 . i1=ig,
367 . c1=titr)
368 ENDIF
369 IF (iecrou == 5 .AND. (ifunc1 == 0 .OR. ifunc3 == 0)) THEN
370 CALL ancmsg(msgid=231,
371 . msgtype=msgerror,
372 . anmode=aninfo_blind_1,
373 . i1=ig,
374 . c1=titr)
375 ENDIF
376 IF (((iecrou==6).OR.(iecrou==9)) .AND. (ifunc1 == 0 .OR. ifunc3 == 0)) THEN
377 CALL ancmsg(msgid=1057,
378 . msgtype=msgerror,
379 . anmode=aninfo_blind_1,
380 . i1=ig,
381 . c1=titr)
382 ENDIF
383 IF (iecrou == 7 .AND. ifunc1 == 0) THEN
384 CALL ancmsg(msgid=1058,
385 . msgtype=msgerror,
386 . anmode=aninfo_blind_1,
387 . i1=ig,
388 . c1=titr)
389 ELSEIF (iecrou == 7 .AND. ifunc3 == 0) THEN
390 CALL ancmsg(msgid=1059,
391 . msgtype=msgwarning,
392 . anmode=aninfo_blind_1,
393 . i1=ig,
394 . c1=titr,
395 . i2=iecrou)
396 iecrou = 2
397 ENDIF
398 IF (ifunc1 == 0 .AND. a /= zero .AND. a /= one) THEN
399 CALL ancmsg(msgid=663,
400 . msgtype=msgwarning,
401 . anmode=aninfo_blind_1,
402 . i1=ig,
403 . c1=titr)
404 ENDIF
405C----
406 IF (dn == zero) dn =-infinity
407 IF (dx == zero) dx = infinity
408 IF (a == zero) THEN
409 CALL hm_get_floatv_dim('Acoeft2' ,a_unit ,is_available, lsubmodel, unitab)
410 a = one * a_unit
411 ENDIF
412 IF (d == zero) THEN
413 CALL hm_get_floatv_dim('Dcoeft2' ,d_unit ,is_available, lsubmodel, unitab)
414 d = one * d_unit
415 ENDIF
416 IF (e == zero) THEN
417 CALL hm_get_floatv_dim('Prop_Y_E',e_unit ,is_available, lsubmodel, unitab)
418 e = one * e_unit
419 ENDIF
420 IF (f == zero) THEN
421 CALL hm_get_floatv_dim('Prop_Y_F',f_unit ,is_available, lsubmodel, unitab)
422 f = one * f_unit
423 ENDIF
424 IF (lscale == zero) THEN
425 CALL hm_get_floatv_dim('scale2',l_unit ,is_available, lsubmodel, unitab)
426 lscale = one*l_unit
427 ENDIF
428 IF (gf3 == zero) THEN
429 CALL hm_get_floatv_dim('Prop_Y_H',gf_unit ,is_available, lsubmodel, unitab)
430 gf3 = one*gf_unit
431 ENDIF
432 IF (ifunc1 == 0) THEN
433 a = one
434 b = zero
435 e = zero
436 ENDIF
437C----
438 uparam(i1 + 2) = a !
439 uparam(i2 + 2) = b
440 uparam(i3 + 2) = d
441 uparam(i4 + 2) = e
442 uparam(i5 + 2) = gf3
443 uparam(i6 + 2) = one / f
444 uparam(i7 + 2) = one / lscale
445 uparam(i8 + 2) = dn
446 uparam(i9 + 2) = dx
447 uparam(i10 + 2) = fwv
448 uparam(i11 + 2) = xk
449 uparam(i12 + 2) = xc
450 uparam(i13 + 2) = iecrou+pun
451C
452C for interface stifness
453 pm(192) = xk
454 !!
455 check(1,2) = a ! nupa=4
456 check(2,2) = b
457 check(3,2) = d
458 check(4,2) = e
459 check(5,2) = gf3
460 check(6,2) = one / f
461 check(7,2) = one / lscale
462 check(8,2) = dn
463 check(9,2) = dx
464 check(10,2) = fwv
465 check(11,2) = xk
466 check(12,2) = xc
467 check(13,2) = iecrou+pun
468C-- If H=6 - additional internal variables must be stored in UVAR -
469 IF ((iecrou==6).OR.(iecrou==9)) THEN
470 uparam(4) = 6
471 ENDIF
472 IF (iecrou==9) siz_array_comp = 6
473C
474 ifunc(2) = ifunc1
475 ifunc(if2 + 2) = ifunc2
476 ifunc(if3 + 2) = ifunc3
477 ifunc(if4 + 2) = ifunc4
478 ifunc(if5 + 2) = ifunc5
479 nfunc = nfunc + 5
480C----
481 IF (is_encrypted) THEN
482 WRITE(iout,'(5X,A,//)')'confidential data'
483 ELSE
484 IF (IECROU /= 5) THEN
485 IF (IFAIL2 == 3) THEN
486 WRITE(IOUT,1813)'y shear',XK,XC,IFUNC1,LSCALE,IFUNC3,F,IECROU,
487 . A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DX
488 ELSEIF (IFAIL2 == 2) THEN
489 WRITE(IOUT,1812)'y shear',XK,XC,IFUNC1,LSCALE,IFUNC3,F,IECROU,
490 . A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DN,DX
491 ELSE
492 WRITE(IOUT,1810)'y shear',XK,XC,IFUNC1,LSCALE,IFUNC3,F,IECROU,
493 . A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DN,DX
494 ENDIF ! IF (IFAIL2 == 3)
495 ELSE
496 IF (IFAIL2 == 3) THEN
497 WRITE(IOUT,1823)'y shear',XK,XC,IFUNC1,LSCALE,IFUNC3,F,IECROU,
498 . A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DX
499 ELSEIF (IFAIL2 == 2) THEN
500 WRITE(IOUT,1822)'y shear',XK,XC,IFUNC1,LSCALE,IFUNC3,F,IECROU,
501 . A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DN,DX
502 ELSE
503 WRITE(IOUT,1820)'y shear',XK,XC,IFUNC1,LSCALE,IFUNC3,F,IECROU,
504 . A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DN,DX
505 ENDIF ! IF (IFAIL2 == 3)
506 ENDIF ! IF (IECROU /= 5)
507 ENDIF ! IF (IS_ENCRYPTED)
508c-------------------------------------------------------------------------------
509!-----------------
510 ! Shear XZ
511!-----------------
512c
513 CALL HM_GET_FLOATV('stiff3' ,XK ,IS_AVAILABLE, LSUBMODEL, UNITAB)
514 CALL HM_GET_FLOATV('damp3' ,XC ,IS_AVAILABLE, LSUBMODEL, UNITAB)
515 CALL HM_GET_FLOATV('acoeft3' ,A ,IS_AVAILABLE, LSUBMODEL, UNITAB)
516 CALL HM_GET_FLOATV('bcoeft3' ,B ,IS_AVAILABLE, LSUBMODEL, UNITAB)
517 CALL HM_GET_FLOATV('dcoeft3' ,D ,IS_AVAILABLE, LSUBMODEL, UNITAB)
518 CALL HM_GET_INTV ('fun_a3' ,IFUNC1 ,IS_AVAILABLE, LSUBMODEL)
519 CALL HM_GET_INTV ('hflag3' ,IECROU ,IS_AVAILABLE, LSUBMODEL)
520 CALL HM_GET_INTV ('fun_b3' ,IFUNC2 ,IS_AVAILABLE, LSUBMODEL)
521 CALL HM_GET_INTV ('fun_c3' ,IFUNC3 ,IS_AVAILABLE, LSUBMODEL)
522 CALL HM_GET_INTV ('fun_d3' ,IFUNC4 ,IS_AVAILABLE, LSUBMODEL)
523 CALL HM_GET_FLOATV('min_rup3' ,DN ,IS_AVAILABLE, LSUBMODEL, UNITAB)
524 CALL HM_GET_FLOATV('max_rup3' ,DX ,IS_AVAILABLE, LSUBMODEL, UNITAB)
525 CALL HM_GET_FLOATV('prop_z_f' ,F ,IS_AVAILABLE, LSUBMODEL, UNITAB)
526 CALL HM_GET_FLOATV('prop_z_e' ,E ,IS_AVAILABLE, LSUBMODEL, UNITAB)
527 CALL HM_GET_FLOATV('scale3' ,LSCALE ,IS_AVAILABLE, LSUBMODEL, UNITAB)
528 CALL HM_GET_FLOATV('prop_z_h' ,GF3 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
529 CALL HM_GET_INTV ('fun_k3' ,IFUNC5 ,IS_AVAILABLE, LSUBMODEL)
530C----
531.AND..OR. IF (IECROU == 4 (IFUNC1 == 0 IFUNC3 == 0)) THEN
532 CALL ANCMSG(MSGID=231,
533 . MSGTYPE=MSGERROR,
534 . ANMODE=ANINFO_BLIND_1,
535 . I1=IG,
536 . C1=TITR)
537 ENDIF
538.AND.!! IF (IECROU == 4 GEO(2) == ZERO) THEN
539 IF (IECROU == 4 ) THEN
540 CALL ANCMSG(MSGID=230,
541 . MSGTYPE=MSGERROR,
542 . ANMODE=ANINFO_BLIND_1,
543 . I1=IG,
544 . C1=TITR)
545 ENDIF
546.AND..OR. IF (IECROU == 5 (IFUNC1 == 0 IFUNC3 == 0)) THEN
547 CALL ANCMSG(MSGID=231,
548 . MSGTYPE=MSGERROR,
549 . ANMODE=ANINFO_BLIND_1,
550 . I1=IG,
551 . C1=TITR)
552 ENDIF
553.OR..AND..OR. IF (((IECROU==6)(IECROU==9)) (IFUNC1 == 0 IFUNC3 == 0)) THEN
554 CALL ANCMSG(MSGID=1057,
555 . MSGTYPE=MSGERROR,
556 . ANMODE=ANINFO_BLIND_1,
557 . I1=IG,
558 . C1=TITR)
559 ENDIF
560.AND. IF (IECROU == 7 IFUNC1 == 0) THEN
561 CALL ANCMSG(MSGID=1058,
562 . MSGTYPE=MSGERROR,
563 . ANMODE=ANINFO_BLIND_1,
564 . I1=IG,
565 . C1=TITR)
566.AND. ELSEIF (IECROU == 7 IFUNC3 == 0) THEN
567 CALL ANCMSG(MSGID=1059,
568 . MSGTYPE=MSGWARNING,
569 . ANMODE=ANINFO_BLIND_1,
570 . I1=IG,
571 . C1=TITR,
572 . I2=IECROU)
573 IECROU = 2
574 ENDIF
575.AND..AND. IF (IFUNC1 == 0 A /= ZERO A /= ONE) THEN
576 CALL ANCMSG(MSGID=663,
577 . MSGTYPE=MSGWARNING,
578 . ANMODE=ANINFO_BLIND_1,
579 . I1=IG,
580 . C1=TITR)
581 ENDIF
582C----
583 IF (DN == ZERO) DN =-INFINITY
584 IF (DX == ZERO) DX = INFINITY
585 IF (A == ZERO) THEN
586 CALL HM_GET_FLOATV_DIM('acoeft3' ,A_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
587 A = ONE * A_UNIT
588 ENDIF
589 IF (D == ZERO) THEN
590 CALL HM_GET_FLOATV_DIM('dcoeft3' ,D_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
591 D = ONE * D_UNIT
592 ENDIF
593 IF (E == ZERO) THEN
594 CALL HM_GET_FLOATV_DIM('prop_z_e',E_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
595 E = ONE * E_UNIT
596 ENDIF
597 IF (F == ZERO) THEN
598 CALL HM_GET_FLOATV_DIM('prop_z_f',F_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
599 F = ONE * F_UNIT
600 ENDIF
601 IF (LSCALE == ZERO) THEN
602 CALL HM_GET_FLOATV_DIM('scale3',L_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
603 LSCALE = ONE*L_UNIT
604 ENDIF
605 IF (GF3 == ZERO) THEN
606 CALL HM_GET_FLOATV_DIM('prop_z_h',GF_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
607 GF3 = ONE*GF_UNIT
608 ENDIF
609 IF (IFUNC1 == 0) THEN
610 A = ONE
611 B = ZERO
612 E = ZERO
613 ENDIF
614C----
615 UPARAM(I1 + 3) = A !
616 UPARAM(I2 + 3) = B
617 UPARAM(I3 + 3) = D
618 UPARAM(I4 + 3) = E
619 UPARAM(I5 + 3) = GF3
620 UPARAM(I6 + 3) = ONE / F
621 UPARAM(I7 + 3) = ONE / LSCALE
622 UPARAM(I8 + 3) = DN
623 UPARAM(I9 + 3) = DX
624 UPARAM(I10 + 3) = FWV
625 UPARAM(I11 + 3) = XK
626 UPARAM(I12 + 3) = XC
627 UPARAM(I13 + 3) = IECROU+PUN
628CC for interface stifness
629 PM(193) = XK
630 !!
631 CHECK(1,3) = A ! nupa=4
632 CHECK(2,3) = B
633 CHECK(3,3) = D
634 CHECK(4,3) = E
635 CHECK(5,3) = GF3
636 CHECK(6,3) = ONE / F
637 CHECK(7,3) = ONE / LSCALE
638 CHECK(8,3) = DN
639 CHECK(9,3) = DX
640 CHECK(10,3) = FWV
641 CHECK(11,3) = XK
642 CHECK(12,3) = XC
643 CHECK(13,3) = IECROU+PUN
644C-- If H=6 - additional internal variables must be stored in UVAR
645.OR. IF ((IECROU==6)(IECROU==9)) THEN
646 UPARAM(4) = 6
647 ENDIF
648 IF (IECROU==9) SIZ_ARRAY_COMP = 6
649C
650 IFUNC(3) = IFUNC1
651 IFUNC(IF2 + 3) = IFUNC2
652 IFUNC(IF3 + 3) = IFUNC3
653 IFUNC(IF4 + 3) = IFUNC4
654 IFUNC(IF5 + 3) = IFUNC5
655 NFUNC = NFUNC + 5
656C----
657 IF (IS_ENCRYPTED) THEN
658 WRITE(IOUT,'(5x,a,//)')'confidential data'
659 ELSE
660 IF (IECROU /= 5) THEN
661 IF (IFAIL2 == 3) THEN
662 WRITE(IOUT,1813)'z shear',XK,XC,IFUNC1,LSCALE,IFUNC3,F,IECROU,
663 . A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DX
664 ELSEIF (IFAIL2 == 2) THEN
665 WRITE(IOUT,1812)'z shear',XK,XC,IFUNC1,LSCALE,IFUNC3,F,IECROU,
666 . A,B,D,E,GF3,IFUNC3,IFUNC4,IFUNC5,DN,DX
667 ELSE
668 WRITE(IOUT,1810)'z shear',XK,XC,IFUNC1,LSCALE,IFUNC3,F,IECROU,
669 . A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DN,DX
670 ENDIF ! IF (IFAIL2 == 3)
671 ELSE
672 IF (IFAIL2 == 3) THEN
673 WRITE(IOUT,1823)'z shear',XK,XC,IFUNC1,LSCALE,IFUNC3,F,IECROU,
674 . A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DX
675 ELSEIF (IFAIL2 == 2) THEN
676 WRITE(IOUT,1822)'z shear',XK,XC,IFUNC1,LSCALE,IFUNC3,F,IECROU,
677 . A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DN,DX
678 ELSE
679 WRITE(IOUT,1820)'z shear',XK,XC,IFUNC1,LSCALE,IFUNC3,F,IECROU,
680 . A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DN,DX
681 ENDIF ! IF (IFAIL2 == 3)
682 ENDIF ! IF (IECROU /= 5)
683 ENDIF ! IF (IS_ENCRYPTED)
684c
685!-------------------------------------------------------
686! Rotations
687!-------------------------------------------------------
688!-----------------
689 ! Torsion X
690!-----------------
691 CALL HM_GET_FLOATV('stiff4' ,XK ,IS_AVAILABLE, LSUBMODEL, UNITAB)
692 CALL HM_GET_FLOATV('damp4' ,XC ,IS_AVAILABLE, LSUBMODEL, UNITAB)
693 CALL HM_GET_FLOATV('acoeft4' ,A ,IS_AVAILABLE, LSUBMODEL, UNITAB)
694 CALL HM_GET_FLOATV('bcoeft4' ,B ,IS_AVAILABLE, LSUBMODEL, UNITAB)
695 CALL HM_GET_FLOATV('dcoeft4' ,D ,IS_AVAILABLE, LSUBMODEL, UNITAB)
696 CALL HM_GET_INTV ('fun_a4' ,IFUNC1 ,IS_AVAILABLE, LSUBMODEL)
697 CALL HM_GET_INTV ('hflag4' ,IECROU ,IS_AVAILABLE, LSUBMODEL)
698 CALL HM_GET_INTV ('fun_b4' ,IFUNC2 ,IS_AVAILABLE, LSUBMODEL)
699 CALL HM_GET_INTV ('fun_c4' ,IFUNC3 ,IS_AVAILABLE, LSUBMODEL)
700 CALL HM_GET_INTV ('fun_d4' ,IFUNC4 ,IS_AVAILABLE, LSUBMODEL)
701 CALL HM_GET_FLOATV('min_rup4' ,DN ,IS_AVAILABLE, LSUBMODEL, UNITAB)
702 CALL HM_GET_FLOATV('max_rup4' ,DX ,IS_AVAILABLE, LSUBMODEL, UNITAB)
703 CALL HM_GET_FLOATV('prop_tor_f',F ,IS_AVAILABLE, LSUBMODEL, UNITAB)
704 CALL HM_GET_FLOATV('prop_tor_e',E ,IS_AVAILABLE, LSUBMODEL, UNITAB)
705 CALL HM_GET_FLOATV('scale4' ,LSCALE ,IS_AVAILABLE, LSUBMODEL, UNITAB)
706 CALL HM_GET_FLOATV('prop_tor_h',GF3 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
707 CALL HM_GET_INTV ('fun_k4' ,IFUNC5 ,IS_AVAILABLE, LSUBMODEL)
708C----
709.AND..OR. IF (IECROU == 4 (IFUNC1 == 0 IFUNC3 == 0)) THEN
710 CALL ANCMSG(MSGID=231,
711 . MSGTYPE=MSGERROR,
712 . ANMODE=ANINFO_BLIND_1,
713 . I1=IG,
714 . C1=TITR)
715 ENDIF
716!! IF (IECROU == 4. AND. GEO(2) == ZERO) THEN
717 IF (IECROU == 4) THEN
718 CALL ANCMSG(MSGID=230,
719 . MSGTYPE=MSGERROR,
720 . ANMODE=ANINFO_BLIND_1,
721 . I1=IG,
722 . C1=TITR)
723 ENDIF
724.AND..OR. IF (IECROU == 5 (IFUNC1 == 0 IFUNC3 == 0)) THEN
725 CALL ANCMSG(MSGID=231,
726 . MSGTYPE=MSGERROR,
727 . ANMODE=ANINFO_BLIND_1,
728 . I1=IG,
729 . C1=TITR)
730 ENDIF
731.OR..AND..OR. IF (((IECROU==6)(IECROU==9)) (IFUNC1 == 0 IFUNC3 == 0)) THEN
732 CALL ANCMSG(MSGID=1057,
733 . MSGTYPE=MSGERROR,
734 . ANMODE=ANINFO_BLIND_1,
735 . I1=IG,
736 . C1=TITR)
737 ENDIF
738.AND. IF (IECROU == 7 IFUNC1 == 0) THEN
739 CALL ANCMSG(MSGID=1058,
740 . MSGTYPE=MSGERROR,
741 . ANMODE=ANINFO_BLIND_1,
742 . I1=IG,
743 . C1=TITR)
744.AND. ELSEIF (IECROU == 7 IFUNC3 == 0) THEN
745 CALL ANCMSG(MSGID=1059,
746 . MSGTYPE=MSGWARNING,
747 . ANMODE=ANINFO_BLIND_1,
748 . I1=IG,
749 . C1=TITR,
750 . I2=IECROU)
751 IECROU = 2
752 ENDIF
753.AND..AND. IF (IFUNC1 == 0 A /= ZERO A /= ONE) THEN
754 CALL ANCMSG(MSGID=663,
755 . MSGTYPE=MSGWARNING,
756 . ANMODE=ANINFO_BLIND_1,
757 . I1=IG,
758 . C1=TITR)
759 ENDIF
760C----
761 IF (DN == ZERO) DN =-INFINITY
762 IF (DX == ZERO) DX = INFINITY
763 IF (A == ZERO) THEN
764 CALL HM_GET_FLOATV_DIM('acoeft4' ,A_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
765 A = ONE * A_UNIT
766 ENDIF
767 IF (D == ZERO) THEN
768 CALL HM_GET_FLOATV_DIM('dcoeft4' ,D_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
769 D = ONE * D_UNIT
770 ENDIF
771 IF (E == ZERO) THEN
772 CALL HM_GET_FLOATV_DIM('prop_tor_e',E_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
773 E = ONE * E_UNIT
774 ENDIF
775 IF (F == ZERO) THEN
776 CALL HM_GET_FLOATV_DIM('prop_tor_f',F_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
777 F = ONE * F_UNIT
778 ENDIF
779 IF (LSCALE == ZERO) THEN
780 CALL HM_GET_FLOATV_DIM('scale4',L_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
781 LSCALE = ONE*L_UNIT
782 ENDIF
783 IF (GF3 == ZERO) THEN
784 CALL HM_GET_FLOATV_DIM('prop_tor_h',GF_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
785 GF3 = ONE*GF_UNIT
786 ENDIF
787 IF (IFUNC1 == 0) THEN
788 A = ONE
789 B = ZERO
790 E = ZERO
791 ENDIF
792C----
793C
794 UPARAM(I1 + 4) = A !
795 UPARAM(I2 + 4) = B
796 UPARAM(I3 + 4) = D
797 UPARAM(I4 + 4) = E
798 UPARAM(I5 + 4) = GF3
799 UPARAM(I6 + 4) = ONE / F
800 UPARAM(I7 + 4) = ONE / LSCALE
801 UPARAM(I8 + 4) = DN
802 UPARAM(I9 + 4) = DX
803 UPARAM(I10 + 4) = ZERO ! not used
804 UPARAM(I11 + 4) = XK
805 UPARAM(I12 + 4) = XC
806 UPARAM(I13 + 4) = IECROU+PUN
807C
808 CHECK(1,4) = A !
809 CHECK(2,4) = B
810 CHECK(3,4) = D
811 CHECK(4,4) = E
812 CHECK(5,4) = GF3
813 CHECK(6,4) = ONE / F
814 CHECK(7,4) = ONE / LSCALE
815 CHECK(8,4) = DN
816 CHECK(9,4) = DX
817 CHECK(10,4) = ZERO
818 CHECK(11,4) = XK
819 CHECK(12,4) = XC
820 CHECK(13,4) = IECROU+PUN
821C-- If H=6 - additional internal variables must be stored in UVAR -
822.OR. IF ((IECROU==6)(IECROU==9)) THEN
823 UPARAM(4) = 6
824 ENDIF
825 IF (IECROU==9) SIZ_ARRAY_COMP = 6
826C
827 IFUNC(4) = IFUNC1
828 IFUNC(IF2 + 4) = IFUNC2
829 IFUNC(IF3 + 4) = IFUNC3
830 IFUNC(IF4 + 4) = IFUNC4
831 IFUNC(IF5 + 4) = IFUNC5
832 NFUNC = NFUNC + 5
833C----
834 IF (IS_ENCRYPTED) THEN
835 WRITE(IOUT,'(5x,a,//)')'confidential data'
836 ELSE
837 IF (IECROU /= 5) THEN
838 IF (IFAIL2 == 3) THEN
839 WRITE(IOUT,1833)'torsion',XK,XC,IFUNC1,LSCALE,IFUNC3,F,IECROU,
840 . A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DX
841 ELSEIF (IFAIL2 == 2) THEN
842 WRITE(IOUT,1832)'torsion',XK,XC,IFUNC1,LSCALE,IFUNC3,F,IECROU,
843 . A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DN,DX
844 ELSE
845 WRITE(IOUT,1830)'torsion',XK,XC,IFUNC1,LSCALE,IFUNC3,F,IECROU,
846 . A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DN,DX
847 ENDIF ! IF (IFAIL2 == 3)
848 ELSE
849 IF (IFAIL2 == 3) THEN
850 WRITE(IOUT,1843)'torsion',XK,XC,IFUNC1,LSCALE,IFUNC3,F,IECROU,
851 . A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DX
852 ELSEIF (IFAIL2 == 2) THEN
853 WRITE(IOUT,1842)'torsion',XK,XC,IFUNC1,LSCALE,IFUNC3,F,IECROU,
854 . A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DN,DX
855 ELSE
856 WRITE(IOUT,1840)'torsion',XK,XC,IFUNC1,LSCALE,IFUNC3,F,IECROU,
857 . A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DN,DX
858 ENDIF ! IF (IFAIL2 == 3)
859 ENDIF ! IF (IECROU /= 5)
860 ENDIF ! IF (IS_ENCRYPTED)
861!-----------------
862 ! Rotation Y
863!----------------
864 CALL HM_GET_FLOATV('stiff5' ,XK ,IS_AVAILABLE, LSUBMODEL, UNITAB)
865 CALL HM_GET_FLOATV('damp5' ,XC ,IS_AVAILABLE, LSUBMODEL, UNITAB)
866 CALL HM_GET_FLOATV('acoeft5' ,A ,IS_AVAILABLE, LSUBMODEL, UNITAB)
867 CALL HM_GET_FLOATV('bcoeft5' ,B ,IS_AVAILABLE, LSUBMODEL, UNITAB)
868 CALL HM_GET_FLOATV('dcoeft5' ,D ,IS_AVAILABLE, LSUBMODEL, UNITAB)
869 CALL HM_GET_INTV ('fun_a5' ,IFUNC1 ,IS_AVAILABLE, LSUBMODEL)
870 CALL HM_GET_INTV ('hflag5' ,IECROU ,IS_AVAILABLE, LSUBMODEL)
871 CALL HM_GET_INTV ('fun_b5' ,IFUNC2 ,IS_AVAILABLE, LSUBMODEL)
872 CALL HM_GET_INTV ('fun_c5' ,IFUNC3 ,IS_AVAILABLE, LSUBMODEL)
873 CALL HM_GET_INTV ('fun_d5' ,IFUNC4 ,IS_AVAILABLE, LSUBMODEL)
874 CALL HM_GET_FLOATV('min_rup5' ,DN ,IS_AVAILABLE, LSUBMODEL, UNITAB)
875 CALL HM_GET_FLOATV('max_rup5' ,DX ,IS_AVAILABLE, LSUBMODEL, UNITAB)
876 CALL HM_GET_FLOATV('prop_flxy_f',F ,IS_AVAILABLE, LSUBMODEL, UNITAB)
877 CALL HM_GET_FLOATV('prop_flxy_e',E ,IS_AVAILABLE, LSUBMODEL, UNITAB)
878 CALL HM_GET_FLOATV('scale5' ,LSCALE ,IS_AVAILABLE, LSUBMODEL, UNITAB)
879 CALL HM_GET_FLOATV('prop_flxy_h',GF3 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
880 CALL HM_GET_INTV ('fun_k5' ,IFUNC5 ,IS_AVAILABLE, LSUBMODEL)
881C----
882.AND..OR. IF (IECROU == 4 (IFUNC1 == 0 IFUNC3 == 0)) THEN
883 CALL ANCMSG(MSGID=231,
884 . MSGTYPE=MSGERROR,
885 . ANMODE=ANINFO_BLIND_1,
886 . I1=IG,
887 . C1=TITR)
888 ENDIF
889.AND.!! IF (IECROU == 4 GEO(2) == ZERO) THEN
890 IF (IECROU == 4 ) THEN
891 CALL ANCMSG(MSGID=230,
892 . MSGTYPE=MSGERROR,
893 . ANMODE=ANINFO_BLIND_1,
894 . I1=IG,
895 . C1=TITR)
896 ENDIF
897.AND..OR. IF (IECROU == 5 (IFUNC1 == 0 IFUNC3 == 0)) THEN
898 CALL ANCMSG(MSGID=231,
899 . MSGTYPE=MSGERROR,
900 . ANMODE=ANINFO_BLIND_1,
901 . I1=IG,
902 . C1=TITR)
903 ENDIF
904.OR..AND..OR. IF (((IECROU==6)(IECROU==9)) (IFUNC1 == 0 IFUNC3 == 0)) THEN
905 CALL ANCMSG(MSGID=1057,
906 . MSGTYPE=MSGERROR,
907 . ANMODE=ANINFO_BLIND_1,
908 . I1=IG,
909 . C1=TITR)
910 ENDIF
911.AND. IF (IECROU == 7 IFUNC1 == 0) THEN
912 CALL ANCMSG(MSGID=1058,
913 . MSGTYPE=MSGERROR,
914 . ANMODE=ANINFO_BLIND_1,
915 . I1=IG,
916 . C1=TITR)
917.AND. ELSEIF (IECROU == 7 IFUNC3 == 0) THEN
918 CALL ANCMSG(MSGID=1059,
919 . MSGTYPE=MSGWARNING,
920 . ANMODE=ANINFO_BLIND_1,
921 . I1=IG,
922 . C1=TITR,
923 . I2=IECROU)
924 IECROU = 2
925 ENDIF
926.AND..AND. IF (IFUNC1 == 0 A /= ZERO A /= ONE) THEN
927 CALL ANCMSG(MSGID=663,
928 . MSGTYPE=MSGWARNING,
929 . ANMODE=ANINFO_BLIND_1,
930 . I1=IG,
931 . C1=TITR)
932 ENDIF
933C----
934 IF (DN == ZERO) DN =-INFINITY
935 IF (DX == ZERO) DX = INFINITY
936 IF (A == ZERO) THEN
937 CALL HM_GET_FLOATV_DIM('acoeft5' ,A_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
938 A = ONE * A_UNIT
939 ENDIF
940 IF (D == ZERO) THEN
941 CALL HM_GET_FLOATV_DIM('dcoeft5' ,D_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
942 D = ONE * D_UNIT
943 ENDIF
944 IF (E == ZERO) THEN
945 CALL HM_GET_FLOATV_DIM('prop_flxy_e',E_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
946 E = ONE * E_UNIT
947 ENDIF
948 IF (F == ZERO) THEN
949 CALL HM_GET_FLOATV_DIM('prop_flxy_f',F_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
950 F = ONE * F_UNIT
951 ENDIF
952 IF (LSCALE == ZERO) THEN
953 CALL HM_GET_FLOATV_DIM('scale5',L_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
954 LSCALE = ONE*L_UNIT
955 ENDIF
956 IF (GF3 == ZERO) THEN
957 CALL HM_GET_FLOATV_DIM('prop_flxy_h',GF_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
958 GF3 = ONE*GF_UNIT
959 ENDIF
960 IF (IFUNC1 == 0) THEN
961 A = ONE
962 B = ZERO
963 E = ZERO
964 ENDIF
965C----
966 UPARAM(I1 + 5) = A !
967 UPARAM(I2 + 5) = B
968 UPARAM(I3 + 5) = D
969 UPARAM(I4 + 5) = E
970 UPARAM(I5 + 5) = GF3
971 UPARAM(I6 + 5) = ONE / F
972 UPARAM(I7 + 5) = ONE / LSCALE
973 UPARAM(I8 + 5) = DN
974 UPARAM(I9 + 5) = DX
975 UPARAM(I10 + 5) = ZERO ! not used
976 UPARAM(I11 + 5) = XK
977 UPARAM(I12 + 5) = XC
978 UPARAM(I13 + 5) = IECROU+PUN
979C-- If H=6 - additional internal variables must be stored in UVAR -
980.OR. IF ((IECROU==6)(IECROU==9)) THEN
981 UPARAM(4) = 6
982 ENDIF
983 IF (IECROU==9) SIZ_ARRAY_COMP = 6
984
985 CHECK(1,5) = A ! nupa=4
986 CHECK(2,5) = B
987 CHECK(3,5) = D
988 CHECK(4,5) = E
989 CHECK(5,5) = GF3
990 CHECK(6,5) = ONE / F
991 CHECK(7,5) = ONE / LSCALE
992 CHECK(8,5) = DN
993 CHECK(9,5) = DX
994 CHECK(10,5) = ZERO
995 CHECK(11,5) = XK
996 CHECK(12,5) = XC
997 CHECK(13,5) = IECROU+PUN
998C
999 IFUNC(5) = IFUNC1
1000 IFUNC(IF2 + 5) = IFUNC2
1001 IFUNC(IF3 + 5) = IFUNC3
1002 IFUNC(IF4 + 5) = IFUNC4
1003 IFUNC(IF5 + 5) = IFUNC5
1004 NFUNC = NFUNC + 5
1005C----
1006 IF (IS_ENCRYPTED) THEN
1007 WRITE(IOUT,'(5x,a,//)')'confidential data'
1008 ELSE
1009 IF (IECROU /= 5) THEN
1010 IF (IFAIL2 == 3) THEN
1011 WRITE(IOUT,1833)'y flexion',XK,XC,IFUNC1,LSCALE,IFUNC3,F,
1012 . IECROU,A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DX
1013 ELSEIF (IFAIL2 == 2) THEN
1014 WRITE(IOUT,1832)'y flexion',XK,XC,IFUNC1,LSCALE,IFUNC3,F,
1015 . IECROU,A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DN,DX
1016 ELSE
1017 WRITE(IOUT,1830)'y flexion',XK,XC,IFUNC1,LSCALE,IFUNC3,F,
1018 . IECROU,A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DN,DX
1019 ENDIF ! IF (IFAIL2 == 3)
1020 ELSE
1021 IF (IFAIL2 == 3) THEN
1022 WRITE(IOUT,1843)'y flexion',XK,XC,IFUNC1,LSCALE,IFUNC3,F,
1023 . IECROU,A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DX
1024 ELSEIF (IFAIL2 == 2) THEN
1025 WRITE(IOUT,1842)'y flexion',XK,XC,IFUNC1,LSCALE,IFUNC3,F,
1026 . IECROU,A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DN,DX
1027 ELSE
1028 WRITE(IOUT,1840)'y flexion',XK,XC,IFUNC1,LSCALE,IFUNC3,F,
1029 . IECROU,A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DN,DX
1030 ENDIF ! IF (IFAIL2 == 3)
1031 ENDIF ! IF (IECROU /= 5)
1032 ENDIF ! IF (IS_ENCRYPTED)
1033!-----------------
1034 ! Rotation Z
1035!-----------------
1036 CALL HM_GET_FLOATV('stiff6' ,XK ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1037 CALL HM_GET_FLOATV('damp6' ,XC ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1038 CALL HM_GET_FLOATV('acoeft6' ,A ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1039 CALL HM_GET_FLOATV('bcoeft6' ,B ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1040 CALL HM_GET_FLOATV('dcoeft6' ,D ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1041 CALL HM_GET_INTV ('fun_a6' ,IFUNC1 ,IS_AVAILABLE, LSUBMODEL)
1042 CALL HM_GET_INTV ('hflag6' ,IECROU ,IS_AVAILABLE, LSUBMODEL)
1043 CALL HM_GET_INTV ('fun_b6' ,IFUNC2 ,IS_AVAILABLE, LSUBMODEL)
1044 CALL HM_GET_INTV ('fun_c6' ,IFUNC3 ,IS_AVAILABLE, LSUBMODEL)
1045 CALL HM_GET_INTV ('fun_d6' ,IFUNC4 ,IS_AVAILABLE, LSUBMODEL)
1046 CALL HM_GET_FLOATV('min_rup6' ,DN ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1047 CALL HM_GET_FLOATV('max_rup6' ,DX ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1048 CALL HM_GET_FLOATV('prop_flxz_f',F ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1049 CALL HM_GET_FLOATV('prop_flxz_e',E ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1050 CALL HM_GET_FLOATV('scale6' ,LSCALE ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1051 CALL HM_GET_FLOATV('prop_flxz_h',GF3 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1052 CALL HM_GET_INTV ('fun_k6' ,IFUNC5 ,IS_AVAILABLE, LSUBMODEL)
1053C----
1054.AND..OR. IF (IECROU == 4 (IFUNC1 == 0 IFUNC3 == 0)) THEN
1055 CALL ANCMSG(MSGID=231,
1056 . MSGTYPE=MSGERROR,
1057 . ANMODE=ANINFO_BLIND_1,
1058 . I1=IG,
1059 . C1=TITR)
1060 ENDIF
1061.AND.!! IF (IECROU == 4 GEO(2) == ZERO) THEN
1062 IF (IECROU == 4 ) THEN
1063 CALL ANCMSG(MSGID=230,
1064 . MSGTYPE=MSGERROR,
1065 . ANMODE=ANINFO_BLIND_1,
1066 . I1=IG,
1067 . C1=TITR)
1068 ENDIF
1069.AND..OR. IF (IECROU == 5 (IFUNC1 == 0 IFUNC3 == 0)) THEN
1070 CALL ANCMSG(MSGID=231,
1071 . MSGTYPE=MSGERROR,
1072 . ANMODE=ANINFO_BLIND_1,
1073 . I1=IG,
1074 . C1=TITR)
1075 ENDIF
1076.OR..AND..OR. IF (((IECROU==6)(IECROU==9)) (IFUNC1 == 0 IFUNC3 == 0)) THEN
1077 CALL ANCMSG(MSGID=1057,
1078 . MSGTYPE=MSGERROR,
1079 . ANMODE=ANINFO_BLIND_1,
1080 . I1=IG,
1081 . C1=TITR)
1082 ENDIF
1083.AND. IF (IECROU == 7 IFUNC1 == 0) THEN
1084 CALL ANCMSG(MSGID=1058,
1085 . MSGTYPE=MSGERROR,
1086 . ANMODE=ANINFO_BLIND_1,
1087 . I1=IG,
1088 . C1=TITR)
1089.AND. ELSEIF (IECROU == 7 IFUNC3 == 0) THEN
1090 CALL ANCMSG(MSGID=1059,
1091 . MSGTYPE=MSGWARNING,
1092 . ANMODE=ANINFO_BLIND_1,
1093 . I1=IG,
1094 . C1=TITR,
1095 . I2=IECROU)
1096 IECROU = 2
1097 ENDIF
1098.AND..AND. IF (IFUNC1 == 0 A /= ZERO A /= ONE) THEN
1099 CALL ANCMSG(MSGID=663,
1100 . MSGTYPE=MSGWARNING,
1101 . ANMODE=ANINFO_BLIND_1,
1102 . I1=IG,
1103 . C1=TITR)
1104 ENDIF
1105C----
1106 IF (DN == ZERO) DN =-INFINITY
1107 IF (DX == ZERO) DX = INFINITY
1108 IF (A == ZERO) THEN
1109 CALL HM_GET_FLOATV_DIM('acoeft6' ,A_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1110 A = ONE * A_UNIT
1111 ENDIF
1112 IF (D == ZERO) THEN
1113 CALL HM_GET_FLOATV_DIM('dcoeft6' ,D_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1114 D = ONE * D_UNIT
1115 ENDIF
1116 IF (E == ZERO) THEN
1117 CALL HM_GET_FLOATV_DIM('prop_flxz_e',E_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1118 E = ONE * E_UNIT
1119 ENDIF
1120 IF (F == ZERO) THEN
1121 CALL HM_GET_FLOATV_DIM('prop_flxz_f',F_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1122 F = ONE * F_UNIT
1123 ENDIF
1124 IF (LSCALE == ZERO) THEN
1125 CALL HM_GET_FLOATV_DIM('scale6',L_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1126 LSCALE = ONE*L_UNIT
1127 ENDIF
1128 IF (GF3 == ZERO) THEN
1129 CALL HM_GET_FLOATV_DIM('prop_flxz_h',GF_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1130 GF3 = ONE*GF_UNIT
1131 ENDIF
1132 IF (IFUNC1 == 0) THEN
1133 A = ONE
1134 B = ZERO
1135 E = ZERO
1136 ENDIF
1137C---
1138 UPARAM(I1 + 6) = A !
1139 UPARAM(I2 + 6) = B
1140 UPARAM(I3 + 6) = D
1141 UPARAM(I4 + 6) = E
1142 UPARAM(I5 + 6) = GF3
1143 UPARAM(I6 + 6) = ONE / F
1144 UPARAM(I7 + 6) = ONE / LSCALE
1145 UPARAM(I8 + 6) = DN
1146 UPARAM(I9 + 6) = DX
1147 UPARAM(I10 + 6) = ZERO ! not used
1148 UPARAM(I11 + 6) = XK
1149 UPARAM(I12 + 6) = XC
1150 UPARAM(I13 + 6) = IECROU+PUN
1151!!
1152 NUPARAM = NUPARAM + 6*14
1153
1154 CHECK(1,6) = A ! nupa=4
1155 CHECK(2,6) = B
1156 CHECK(3,6) = D
1157 CHECK(4,6) = E
1158 CHECK(5,6) = GF3
1159 CHECK(6,6) = ONE / F
1160 CHECK(7,6) = ONE / LSCALE
1161 CHECK(8,6) = DN
1162 CHECK(9,6) = DX
1163 CHECK(10,6) = ZERO
1164 CHECK(11,6) = XK
1165 CHECK(12,6) = XC
1166 CHECK(13,6) = IECROU+PUN
1167C-- If H=6 - additional internal variables must be stored in UVAR -
1168.OR. IF ((IECROU==6)(IECROU==9)) THEN
1169 UPARAM(4) = 6
1170 ENDIF
1171 IF (IECROU==9) SIZ_ARRAY_COMP = 6
1172C
1173 IFUNC(6) = IFUNC1
1174 IFUNC(IF2 + 6) = IFUNC2
1175 IFUNC(IF3 + 6) = IFUNC3
1176 IFUNC(IF4 + 6) = IFUNC4
1177 IFUNC(IF5 + 6) = IFUNC5
1178 NFUNC = NFUNC + 5
1179C----
1180 IF (IS_ENCRYPTED) THEN
1181 WRITE(IOUT,'(5x,a,//)')'confidential data'
1182 ELSE
1183 IF (IECROU /= 5) THEN
1184 IF (IFAIL2 == 3) THEN
1185 WRITE(IOUT,1833)'z flexion',XK,XC,IFUNC1,LSCALE,IFUNC2,F,
1186 . IECROU,A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DX
1187 ELSEIF (IFAIL2 == 2) THEN
1188 WRITE(IOUT,1832)'z flexion',XK,XC,IFUNC1,LSCALE,IFUNC3,F,
1189 . IECROU,A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DN,DX
1190 ELSE
1191 WRITE(IOUT,1830)'z flexion',XK,XC,IFUNC1,LSCALE,IFUNC3,F,
1192 . IECROU,A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DN,DX
1193 ENDIF ! IF (IFAIL2 == 3)
1194 ELSE
1195 IF (IFAIL2 == 3) THEN
1196 WRITE(IOUT,1843)'z flexion',XK,XC,IFUNC1,LSCALE,IFUNC3,F,
1197 . IECROU,A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DX
1198 ELSEIF (IFAIL2 == 2) THEN
1199 WRITE(IOUT,1842)'z flexion',XK,XC,IFUNC1,LSCALE,IFUNC3,F,
1200 . IECROU,A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DN,DX
1201 ELSE
1202 WRITE(IOUT,1840)'z flexion',XK,XC,IFUNC1,LSCALE,IFUNC3,F,
1203 . IECROU,A,B,D,E,GF3,IFUNC2,IFUNC4,IFUNC5,DN,DX
1204 ENDIF ! IF (IFAIL2 == 3)
1205 ENDIF ! IF (IECROU /= 5)
1206 ENDIF ! IF (IS_ENCRYPTED)
1207C-----------------------------
1208 IF (FLGCHK == 1) THEN
1209.OR. IF ((CHECK(1,2)/=CHECK(1,3))
1210.OR. . (CHECK(2,2)/=CHECK(2,3))
1211.OR. . (CHECK(3,2)/=CHECK(3,3))
1212.OR. . (CHECK(6,2)/=CHECK(6,3))
1213.OR. . (CHECK(10,2)/=CHECK(10,3))
1214.OR. . (CHECK(11,2)/=CHECK(11,3))
1215.OR. . (CHECK(13,2)/=CHECK(13,3))
1216.OR. . (CHECK(1,5)/=CHECK(1,6))
1217.OR. . (CHECK(2,5)/=CHECK(2,6))
1218.OR. . (CHECK(3,5)/=CHECK(3,6))
1219.OR. . (CHECK(6,5)/=CHECK(6,6))
1220.OR. . (CHECK(10,5)/=CHECK(10,6))
1221.OR. . (CHECK(11,5)/=CHECK(11,6))
1222 . (CHECK(13,5)/=CHECK(13,6))) THEN
1223 CALL ANCMSG(MSGID=462,
1224 . MSGTYPE=MSGINFO,
1225 . ANMODE=ANINFO_BLIND_2,
1226 . I1=IG,
1227 . C1=TITR)
1228 ENDIF
1229 ENDIF ! IF (FLGCHK == 1)
1230!-------------------------------------------------------
1231c--- New uni/multiaxial failure criteria
1232!-------------------------------------------------------
1233 CALL HM_GET_FLOATV('trans_vel0' ,VT0 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1234 CALL HM_GET_FLOATV('rot_vel0' ,VR0 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1235 CALL HM_GET_FLOATV('asrate' ,ASRATE ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1236 CALL HM_GET_INTV ('israte' ,ISRATE ,IS_AVAILABLE, LSUBMODEL)
1237c
1238 CALL HM_GET_FLOATV('c1' ,CC(1) ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1239 CALL HM_GET_FLOATV('rel_vel_exp1',CN(1) ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1240 CALL HM_GET_FLOATV('alpha1' ,XA(1) ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1241 CALL HM_GET_FLOATV('beta1' ,XB(1) ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1242c
1243 CALL HM_GET_FLOATV('c2' ,CC(2) ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1244 CALL HM_GET_FLOATV('rel_vel_exp2',CN(2) ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1245 CALL HM_GET_FLOATV('alpha2' ,XA(2) ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1246 CALL HM_GET_FLOATV('beta2' ,XB(2) ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1247c
1248 CALL HM_GET_FLOATV('c3' ,CC(3) ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1249 CALL HM_GET_FLOATV('rel_vel_exp3',CN(3) ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1250 CALL HM_GET_FLOATV('alpha3' ,XA(3) ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1251 CALL HM_GET_FLOATV('beta3' ,XB(3) ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1252c
1253 CALL HM_GET_FLOATV('c4' ,CC(4) ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1254 CALL HM_GET_FLOATV('rel_vel_exp4',CN(4) ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1255 CALL HM_GET_FLOATV('alpha4' ,XA(4) ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1256 CALL HM_GET_FLOATV('beta4' ,XB(4) ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1257c
1258 CALL HM_GET_FLOATV('c5' ,CC(5) ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1259 CALL HM_GET_FLOATV('rel_vel_exp5',CN(5) ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1260 CALL HM_GET_FLOATV('alpha5' ,XA(5) ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1261 CALL HM_GET_FLOATV('beta5' ,XB(5) ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1262c
1263 CALL HM_GET_FLOATV('c6' ,CC(6) ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1264 CALL HM_GET_FLOATV('rel_vel_exp6',CN(6) ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1265 CALL HM_GET_FLOATV('alpha6' ,xa(6) ,is_available, lsubmodel, unitab)
1266 CALL hm_get_floatv('BETA6' ,xb(6) ,is_available, lsubmodel, unitab)
1267C----
1268 IF (asrate == zero) asrate = infinity
1269 IF (vt0 == zero) vt0 = one
1270 IF (vr0 == zero) vr0 = one
1271 DO j = 1,6
1272 IF (cn(j) == zero) cn(j) = one
1273 IF (xa(j) == zero) xa(j) = one
1274 IF (xb(j) == zero) xb(j) = two
1275 ENDDO
1276C----
1277!
1278 IF (is_encrypted) THEN
1279 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
1280 ELSE
1281 WRITE(iout,1850) vt0,vr0,
1282 . (cc(j),j=1,6),(cn(j),j=1,6),(xa(j),j=1,6),(xb(j),j=1,6)
1283 WRITE(iout,1900) israte,asrate
1284 ENDIF
1285!
1286C----! NUPARAM = 88 = 4 + 14*6
1287!
1288 uparam(nuparam + 1) = vt0
1289 uparam(nuparam + 2) = vr0
1290 uparam(nuparam + 3) = cc(1)
1291 uparam(nuparam + 4) = cc(2)
1292 uparam(nuparam + 5) = cc(3)
1293 uparam(nuparam + 6) = cc(4)
1294 uparam(nuparam + 7) = cc(5)
1295 uparam(nuparam + 8) = cc(6)
1296 uparam(nuparam + 9) = cn(1)
1297 uparam(nuparam + 10) = cn(2)
1298 uparam(nuparam + 11) = cn(3)
1299 uparam(nuparam + 12) = cn(4)
1300 uparam(nuparam + 13) = cn(5)
1301 uparam(nuparam + 14) = cn(6)
1302 uparam(nuparam + 15) = xa(1)
1303 uparam(nuparam + 16) = xa(2)
1304 uparam(nuparam + 17) = xa(3)
1305 uparam(nuparam + 18) = xa(4)
1306 uparam(nuparam + 19) = xa(5)
1307 uparam(nuparam + 20) = xa(6)
1308 uparam(nuparam + 21) = xb(1)
1309 uparam(nuparam + 22) = xb(2)
1310 uparam(nuparam + 23) = xb(3)
1311 uparam(nuparam + 24) = xb(4)
1312 uparam(nuparam + 25) = xb(5)
1313 uparam(nuparam + 26) = xb(6)
1314 uparam(nuparam + 27) = israte
1315 uparam(nuparam + 28) = asrate
1316C
1317 nuparam = nuparam + 28
1318C
1319C---! Force offset for iecr=9 - (4 + 14*6) + 28 + 6
1320 nuparam = nuparam + 6
1321C
1322C------------------------
1323C------------------------
1324 mtag%G_TOTDEPL = 3 ! DX (DY,DZ) - total deformation (translation)
1325 mtag%G_TOTROT = 3 ! RX (RY,RZ) - total deformation (rotation)
1326 mtag%G_DEP_IN_TENS = 3 ! DPX (DPY,DPZ) - max displacement in tension
1327 mtag%G_DEP_IN_COMP = 3 ! DPX2 (DPY2,DPZ2) - max displacement in compression
1328 mtag%G_ROT_IN_TENS = 3 ! RPX (RPY,RPZ) - max rotation in tension
1329 mtag%G_ROT_IN_COMP = 3 ! RPX2 (RPY2,RPY2) - max rotation in compression
1330 mtag%G_POSX = 6
1331 mtag%G_POSY = 6
1332 mtag%G_POSZ = 6
1333 mtag%G_POSXX = 6
1334 mtag%G_POSYY = 6
1335 mtag%G_POSZZ = 6
1336 mtag%G_YIELD = 6
1337 mtag%G_RUPTCRIT = 1
1338 mtag%G_NUVAR = max(mtag%G_NUVAR,nint(uparam(4)))
1339 mtag%G_MASS = 1
1340 parmat(4) = israte
1341 parmat(5) = asrate
1342 mtag%G_YIELD_IN_COMP = siz_array_comp ! Yield in compression - H=9
1343 mtag%G_XXOLD_IN_COMP = siz_array_comp ! Previous displacement in compression
1344C------------------------
1345 ! Properties compatibility
1346 CALL init_mat_keyword(matparam,"SPRING_MATERIAL")
1347C------------------------
1348C------------------------
1349 RETURN
1350c-----------
1351 1000 FORMAT(
1352 & 5x,'SPRING MATERIAL SET (BEAM TYPE)'/,
1353 & 5x,'-------------------------------'/,
1354 & 5x,'MATERIAL SET NUMBER . . . . . . . . . .=',i10/,
1355 & 5x,'CONFIDENTIAL DATA'//)
1356 1100 FORMAT(/
1357 & 5x,a,/,
1358 & 5x,'MATERIAL NUMBER. . . . . . . . . . . . =',i10/,
1359 & 5x,'MATERIAL LAW . . . . . . . . . . . . . =',i10/)
1360 1300 FORMAT(
1361 & 5x,'INITIAL DENSITY . . . . . . . . . . . .=',1pg20.13/)
1362 1800 FORMAT(
1363 & 5x,'SPRING MATERIAL SET (BEAM TYPE)'/,
1364 & 5x,'-------------------------------'/,
1365 & 5x,'MATERIAL SET NUMBER . . . . . . . . . .=',i10/,
1366 & 5x,'SPRING MASS . . . . . . . . . . . . . .=',1pg20.13/,
1367 & 5x,'SPRING INERTIA. . . . . . . . . . . . .=',1pg20.13/,
1368 & 5x,'SKEW FRAME NUMBER (0:GLOBAL). . . . . .=',i10/,
1369 & 5x,'SENSOR NUMBER (0:NOT USED). . . . . . .=',i10/,
1370 & 5x,'SENSOR FLAG (0:ACTIV 1:DEACT 2:BOTH). .=',i10/,
1371 & 5x,'FAILURE FLAG (0:UNCOUPLED 1:COUPLED). .=',i10/,
1372 & 5x,'UNIT LENGTH FLAG. . . . . . . . . . . .=',i10/,
1373 & 5x,'IF=1 UNIT LENGTH MASS,STIFFNESS AND INPUT',/,
1374 & 5x,' CURVE ARE STRAIN DEPENDING',/)
1375 1810 FORMAT(
1376 & 5x,a,/,
1377 & 5x,'SPRING STIFFNESS. . . . . . . . . . . .=',1pg20.13/,
1378 & 5x,'SPRING DAMPING. . . . . . . . . . . . .=',1pg20.13/,
1379 & 5x,'FUNCTION IDENTIFIER FOR LOADING ',/,
1380 & 5x,'FORCE-DISPLACEMENT CURVE. . . . . . . .=',i10/,
1381 & 5x,'ABSCISSA SCALE FACTOR ON CURVE . . . . =',1pg20.13/,
1382 & 5x,'FUNCTION IDENTIFIER FOR UNLOADING ',/,
1383 & 5x,'FORCE-DISPLACEMENT CURVE (H=4,5,7). . .=',i10/,
1384 & 5x,'ABSCISSA SCALE FACTOR ON CURVE . . . . =',1pg20.13/,
1385 & 5x,'HARDENING FLAG H. . . . . . . . . . . .=',i10/,
1386 & 5x,'0:ELASTIC 1:ISOTROPIC 2:UNCOUPLED',/,
1387 & 5x,'4:KINEMATIC 5:UNCOUPLED NL (UN/RE)LOADING',/,
1388 & 5x,'6:ELASTO PLASTIC WITH HARDENING 7: ELASTIC HYSTERESIS',/,
1389 & 5x,'DYNAMIC AMPLIFICATION FACTOR A. . . . .=',1pg20.13/,
1390 & 5x,'DYNAMIC AMPLIFICATION FACTOR B. . . . .=',1pg20.13/,
1391 & 5x,'DYNAMIC AMPLIFICATION FACTOR D. . . . .=',1pg20.13/,
1392 & 5x,'dynamic amplification factor e. . . . .=',1PG20.13/,
1393 & 5X,'dynamic amplification factor gf3 . . .=',1PG20.13/,
1394 & 5X,'FUNCTION identifier for ',/,
1395 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1396 & 5X,'function identifier for the additional ',/,
1397 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1398 & 5X,'function identifier for the additional ',/,
1399 & 5X,'scale stiffness curve. . . . . . . . . .=',I10/,
1400 & 5X,'negative failure displacement . . . . .=',1PG20.13/,
1401 & 5X,'positive failure displacement . . . . .=',1PG20.13/)
1402 1820 FORMAT(
1403 & 5X,A,/,
1404 & 5X,'spring stiffness. . . . . . . . . . . .=',1PG20.13/,
1405 & 5X,'spring damping. . . . . . . . . . . . .=',1PG20.13/,
1406 & 5X,'function identifier for loading ',/,
1407 & 5X,'force-displacement curve. . . . . . . .=',I10/,
1408 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1409 & 5X,'permanent displ./max. displ. curve(H=5)=',I10/,
1410 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1411 & 5X,'hardening flag h. . . . . . . . . . . .=',I10/,
1412 & 5X,'0:elastic 1:isotropic 2:uncoupled',/,
1413 & 5X,'4:kinematic 5:uncoupled nl (UN/RE)loading',/,
1414 & 5X,'6:elasto plastic with hardening 7: elastic hysteresis',/,
1415 & 5X,'dynamic amplification factor a. . . . .=',1PG20.13/,
1416 & 5X,'dynamic amplification factor b. . . . .=',1PG20.13/,
1417 & 5X,'dynamic amplification factor d. . . . .=',1PG20.13/,
1418 & 5X,'dynamic amplification factor e. . . . .=',1PG20.13/,
1419 & 5X,'dynamic amplification factor gf3 . . .=',1PG20.13/,
1420 & 5X,'function identifier for ',/,
1421 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1422 & 5X,'function identifier for the additional ',/,
1423 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1424 & 5X,'function identifier for the additional ',/,
1425 & 5X,'scale stiffness curve. . . . . . . . . =',I10/,
1426 & 5X,'negative failure displacement . . . . .=',1PG20.13/,
1427 & 5X,'positive failure displacement . . . . .=',1PG20.13/)
1428 1830 FORMAT(
1429 & 5X,A,/,
1430 & 5X,'spring stiffness. . . . . . . . . . . .=',1PG20.13/,
1431 & 5X,'spring damping. . . . . . . . . . . . .=',1PG20.13/,
1432 & 5X,'function identifier for loading ',/,
1433 & 5X,'moment-rotation curve . . . . . . . . .=',I10/,
1434 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1435 & 5X,'function identifier for unloading ',/,
1436 & 5X,'moment-rotation curve (H=4,5,7). . . . =',I10/,
1437 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1438 & 5X,'hardening flag h. . . . . . . . . . . .=',I10/,
1439 & 5X,'0:elastic 1:isotropic 2:uncoupled',/,
1440 & 5X,'4:kinematic 5:uncoupled nl (UN/RE)loading',/,
1441 & 5X,'6:elasto plastic with hardening 7: elastic hysteresis',/,
1442 & 5X,'dynamic amplification factor a. . . . .=',1PG20.13/,
1443 & 5X,'dynamic amplification factor b. . . . .=',1PG20.13/,
1444 & 5X,'dynamic amplification factor d. . . . .=',1PG20.13/,
1445 & 5X,'dynamic amplification factor e. . . . .=',1PG20.13/,
1446 & 5X,'dynamic amplification factor gf3 . . .=',1PG20.13/,
1447 & 5X,'function identifier for ',/,
1448 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1449 & 5X,'function identifier for the additional ',/,
1450 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1451 & 5X,'function identifier for the additional ',/,
1452 & 5X,'scale stiffness curve. . . . . . . . . =',I10/,
1453 & 5X,'negative failure rotation . . . . . . .=',1PG20.13/,
1454 & 5X,'positive failure rotation . . . . . . .=',1PG20.13/)
1455 1840 FORMAT(
1456 & 5X,A,/,
1457 & 5X,'spring stiffness. . . . . . . . . . . .=',1PG20.13/,
1458 & 5X,'spring damping. . . . . . . . . . . . .=',1PG20.13/,
1459 & 5X,'function identifier for loading ',/,
1460 & 5X,'moment/rotation curve . . . . . . . . .=',I10/,
1461 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1462 & 5X,'permanent rot./max. rot. curve (H=5). .=',I10/,
1463 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1464 & 5X,'hardening flag h. . . . . . . . . . . .=',I10/,
1465 & 5X,'0:elastic 1:isotropic 2:uncoupled',/,
1466 & 5X,'4:kinematic 5:uncoupled nl (UN/RE)loading',/,
1467 & 5X,'6:elasto plastic with hardening 7: elastic hysteresis',/,
1468 & 5X,'dynamic amplification factor a. . . . .=',1PG20.13/,
1469 & 5X,'dynamic amplification factor b. . . . .=',1PG20.13/,
1470 & 5X,'dynamic amplification factor d. . . . .=',1PG20.13/,
1471 & 5X,'dynamic amplification factor e. . . . .=',1PG20.13/,
1472 & 5X,'dynamic amplification factor gf3 . . .=',1PG20.13/,
1473 & 5X,'function identifier for ',/,
1474 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1475 & 5X,'function identifier for the additional ',/,
1476 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1477 & 5X,'negative failure rotation . . . . . . .=',1pg20.13/,
1478 & 5x,'POSITIVE FAILURE ROTATION . . . . . . .=',1pg20.13/)
1479 1801 FORMAT(
1480 & 5x,'SPRING MATERIAL SET (BEAM TYPE)'/,
1481 & 5x,'-------------------------------'/,
1482 & 5x,'MATERIAL SET NUMBER . . . . . . . . . .=',i10/,
1483 & 5x,'FAILURE FLAG (0:UNCOUPLED 1:COUPLED). .=',i10/,
1484 & 5x,'FAILURE CRITERION (DISPL/FORCE/ENERGY).=',i10/,
1485 & 5x,' 1:DISPLACEMENT 2:FORCE 3:ENERGY ' ,/,
1486 & 5x,'UNIT LENGTH FLAG. . . . . . . . . . . .=',i10/,
1487 & 5x,'IF=1 UNIT LENGTH MASS,STIFFNESS AND INPUT',/,
1488 & 5x,' CURVE ARE STRAIN DEPENDING',/)
1489 1812 FORMAT(
1490 & 5x,a,/,
1491 & 5x,'SPRING STIFFNESS. . . . . . . . . . . .=',1pg20.13/,
1492 & 5x,'SPRING DAMPING. . . . . . . . . . . . .=',1pg20.13/,
1493 & 5x,'FUNCTION identifier for loading ',/,
1494 & 5X,'moment/rotation curve. . . . . . . . . =',I10/,
1495 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1496 & 5X,'function identifier for unloading ',/,
1497 & 5X,'moment/rotation curve (H=4,5,7). . . . =',I10/,
1498 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1499 & 5X,'hardening flag h. . . . . . . . . . . .=',I10/,
1500 & 5X,'0:elastic 1:isotropic 2:uncoupled',/,
1501 & 5X,'4:kinematic 5:uncoupled nl (UN/RE)loading',/,
1502 & 5X,'6:elasto plastic with hardening 7: elastic hysteresis',/,
1503 & 5X,'dynamic amplification factor a. . . . .=',1PG20.13/,
1504 & 5X,'dynamic amplification factor b. . . . .=',1PG20.13/,
1505 & 5X,'dynamic amplification factor d. . . . .=',1PG20.13/,
1506 & 5X,'dynamic amplification factor e. . . . .=',1PG20.13/,
1507 & 5X,'dynamic amplification factor gf3 . . .=',1PG20.13/,
1508 & 5X,'function identifier for ',/,
1509 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1510 & 5X,'function identifier for the additional ',/,
1511 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1512 & 5X,'function identifier for the additional ',/,
1513 & 5X,'scale stiffness curve. . . . . . . . . =',I10/,
1514 & 5X,'negative failure force. . . . . . . . .=',1PG20.13/,
1515 & 5X,'positive failure force. . . . . . . . .=',1PG20.13/)
1516 1813 FORMAT(
1517 & 5X,A,/,
1518 & 5X,'spring stiffness. . . . . . . . . . . .=',1PG20.13/,
1519 & 5X,'spring damping. . . . . . . . . . . . .=',1PG20.13/,
1520 & 5X,'function identifier for loading ',/,
1521 & 5X,'moment/rotation curve . . . . . . . . .=',I10/,
1522 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1523 & 5X,'function identifier for unloading ',/,
1524 & 5X,'moment/rotation curve (H=4,5,7). . .=',I10/,
1525 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1526 & 5X,'hardening flag h. . . . . . . . . . . .=',I10/,
1527 & 5X,'0:elastic 1:isotropic 2:uncoupled',/,
1528 & 5X,'4:kinematic 5:uncoupled nl (UN/RE)loading',/,
1529 & 5X,'6:elasto plastic with hardening 7: elastic hysteresis',/,
1530 & 5X,'dynamic amplification factor a. . . . .=',1PG20.13/,
1531 & 5X,'dynamic amplification factor b. . . . .=',1PG20.13/,
1532 & 5X,'dynamic amplification factor d. . . . .=',1PG20.13/,
1533 & 5X,'dynamic amplification factor e. . . . .=',1PG20.13/,
1534 & 5X,'dynamic amplification factor gf3 . . .=',1PG20.13/,
1535 & 5X,'function identifier for ',/,
1536 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1537 & 5X,'function identifier for the additional ',/,
1538 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1539 & 5X,'function identifier for the additional ',/,
1540 & 5X,'scale stiffness curve. . . . . . . . . =',I10/,
1541 & 5X,'failure energy. . . . . . . . . . . . .=',1PG20.13/)
1542 1822 FORMAT(
1543 & 5X,A,/,
1544 & 5X,'spring stiffness. . . . . . . . . . . .=',1PG20.13/,
1545 & 5X,'spring damping. . . . . . . . . . . . .=',1PG20.13/,
1546 & 5X,'function identifier for loading ',/,
1547 & 5X,'force-displacement curve. . . . . . . .=',I10/,
1548 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1549 & 5X,'permanent displ./max. displ. curve(H=5)=',I10/,
1550 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1551 & 5X,'hardening flag h. . . . . . . . . . . .=',I10/,
1552 & 5X,'0:elastic 1:isotropic 2:uncoupled',/,
1553 & 5X,'4:kinematic 5:uncoupled nl (UN/RE)loading',/,
1554 & 5X,'6:elasto plastic with hardening 7: elastic hysteresis',/,
1555 & 5X,'dynamic amplification factor a. . . . .=',1PG20.13/,
1556 & 5X,'dynamic amplification factor b. . . . .=',1PG20.13/,
1557 & 5X,'dynamic amplification factor d. . . . .=',1PG20.13/,
1558 & 5X,'dynamic amplification factor e. . . . .=',1PG20.13/,
1559 & 5X,'dynamic amplification factor gf3 . . .=',1PG20.13/,
1560 & 5X,'function identifier for ',/,
1561 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1562 & 5X,'function identifier for the additional ',/,
1563 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1564 & 5X,'function identifier for the additional ',/,
1565 & 5X,'scale stifness curve. . . . . . . . . .=',I10/,
1566 & 5X,'negative failure force. . . . . . . . .=',1PG20.13/,
1567 & 5X,'positive failure force. . . . . . . . .=',1PG20.13/)
1568 1823 FORMAT(
1569 & 5X,A,/,
1570 & 5X,'spring stiffness. . . . . . . . . . . .=',1PG20.13/,
1571 & 5X,'spring damping. . . . . . . . . . . . .=',1PG20.13/,
1572 & 5X,'function identifier for loading ',/,
1573 & 5X,'force-displacement curve. . . . . . . .=',I10/,
1574 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1575 & 5X,'permanent displ./max. displ. curve(H=5)=',I10/,
1576 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1577 & 5X,'hardening flag h. . . . . . . . . . . .=',I10/,
1578 & 5X,'0:elastic 1:isotropic 2:uncoupled',/,
1579 & 5X,'4:kinematic 5:uncoupled nl (UN/RE)loading',/,
1580 & 5X,'6:elasto plastic with hardening 7: elastic hysteresis',/,
1581 & 5X,'dynamic amplification factor a. . . . .=',1PG20.13/,
1582 & 5X,'dynamic amplification factor b. . . . .=',1PG20.13/,
1583 & 5X,'dynamic amplification factor d. . . . .=',1PG20.13/,
1584 & 5X,'dynamic amplification factor e. . . . .=',1PG20.13/,
1585 & 5X,'dynamic amplification factor gf3 . . .=',1PG20.13/,
1586 & 5X,'function identifier for ',/,
1587 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1588 & 5X,'function identifier for the additional ',/,
1589 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1590 & 5X,'function identifier for the additional ',/,
1591 & 5X,'scale curve. . . . . . . . . . . . . ..=',I10/,
1592 & 5X,'failure energy. . . . . . . . . . . . .=',1PG20.13/)
1593 1832 FORMAT(
1594 & 5X,A,/,
1595 & 5X,'spring stiffness. . . . . . . . . . . .=',1PG20.13/,
1596 & 5X,'spring damping. . . . . . . . . . . . .=',1PG20.13/,
1597 & 5X,'function identifier for loading ',/,
1598 & 5X,'moment-rotation curve . . . . . . . . .=',I10/,
1599 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1600 & 5X,'function identifier for unloading ',/,
1601 & 5X,'moment-rotation curve (H=4,5,7). . . . =',I10/,
1602 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1603 & 5X,'hardening flag h. . . . . . . . . . . .=',I10/,
1604 & 5X,'0:elastic 1:isotropic 2:uncoupled',/,
1605 & 5X,'4:kinematic 5:uncoupled nl (UN/RE)loading',/,
1606 & 5x,'6:ELASTO PLASTIC WITH HARDENING 7: ELASTIC HYSTERESIS',/,
1607 & 5x,'DYNAMIC AMPLIFICATION FACTOR A. . . . .=',1pg20.13/,
1608 & 5x,'DYNAMIC AMPLIFICATION FACTOR B. . . . .=',1pg20.13/,
1609 & 5x,'DYNAMIC AMPLIFICATION FACTOR D. . . . .=',1pg20.13/,
1610 & 5x,'DYNAMIC AMPLIFICATION FACTOR E. . . . .=',1pg20.13/,
1611 & 5x,'DYNAMIC AMPLIFICATION FACTOR GF3 . . .=',1pg20.13/,
1612 & 5x,'FUNCTION IDENTIFIER FOR ',/,
1613 & 5x,'FORCE-VELOCITY CURVE. . . . . . . . . .=',i10/,
1614 & 5x,'FUNCTION IDENTIFIER FOR THE ADDITIONAL ',/,
1615 & 5x,'FORCE-VELOCITY CURVE. . . . . . . . . .=',i10/,
1616 & 5x,'FUNCTION IDENTIFIER FOR THE ADDITIONAL ',/,
1617 & 5x,'SCALE STIFFNESS CURVE. . . . . . . . . =',i10/,
1618 & 5x,'NEGATIVE FAILURE MOMENT . . . . . . . .=',1pg20.13/,
1619 & 5x,'POSITIVE FAILURE MOMENT . . . . . . . .=',1pg20.13/)
1620 1833 FORMAT(
1621 & 5x,a,/,
1622 & 5x,'SPRING STIFFNESS. . . . . . . . . . . .=',1pg20.13/,
1623 & 5x,'SPRING DAMPING. . . . . . . . . . . . .=',1pg20.13/,
1624 & 5x,'FUNCTION IDENTIFIER FOR LOADING ',/,
1625 & 5x,'MOMENT-ROTATION CURVE . . . . . . . . .=',i10/,
1626 & 5x,'ABSCISSA SCALE FACTOR ON CURVE . . . . =',1pg20.13/,
1627 & 5x,'FUNCTION IDENTIFIER FOR UNLOADING ',/,
1628 & 5x,'MOMENT-ROTATION CURVE (H=4,5,7). . . . =',i10/,
1629 & 5x,'ABSCISSA SCALE FACTOR ON CURVE . . . . =',1pg20.13/,
1630 & 5x,'HARDENING FLAG H. . . . . . . . . . . .=',i10/,
1631 & 5x,'0:ELASTIC 1:ISOTROPIC 2:UNCOUPLED',/,
1632 & 5x,'4:KINEMATIC 5:UNCOUPLED NL (UN/RE)LOADING',/,
1633 & 5x,'6:ELASTO PLASTIC WITH HARDENING 7: ELASTIC HYSTERESIS',/,
1634 & 5x,'DYNAMIC AMPLIFICATION FACTOR A. . . . .=',1pg20.13/,
1635 & 5x,'DYNAMIC AMPLIFICATION FACTOR B. . . . .=',1pg20.13/,
1636 & 5x,'DYNAMIC AMPLIFICATION FACTOR D. . . . .=',1pg20.13/,
1637 & 5x,'DYNAMIC AMPLIFICATION FACTOR E. . . . .=',1pg20.13/,
1638 & 5x,'DYNAMIC AMPLIFICATION FACTOR GF3 . . .=',1pg20.13/,
1639 & 5x,'FUNCTION IDENTIFIER FOR ',/,
1640 & 5x,'FORCE-VELOCITY CURVE. . . . . . . . . .=',i10/,
1641 & 5x,'FUNCTION IDENTIFIER FOR THE ADDITIONAL ',/,
1642 & 5x,'FORCE-VELOCITY CURVE. . . . . . . . . .=',i10/,
1643 & 5x,'FUNCTION IDENTIFIER FOR THE ADDITIONAL ',/,
1644 & 5x,'SCALE STIFFNESS CURVE. . . . . . . . . =',i10/,
1645 & 5x,'FAILURE ENERGY. . . . . . . . . . . . .=',1pg20.13/)
1646 1842 FORMAT(
1647 & 5x,a,/,
1648 & 5x,'SPRING STIFFNESS. . . . . . . . . . . .=',1pg20.13/,
1649 & 5x,'SPRING DAMPING. . . . . . . . . . . . .=',1pg20.13/,
1650 & 5x,'FUNCTION IDENTIFIER FOR LOADING ',/,
1651 & 5x,'MOMENT-ROTATION CURVE . . . . . . . . .=',i10/,
1652 & 5x,'ABSCISSA SCALE FACTOR ON CURVE . . . . =',1pg20.13/,
1653 & 5x,'PERMANENT ROT./MAX. ROT. CURVE (H=5). .=',i10/,
1654 & 5x,'ABSCISSA SCALE FACTOR ON CURVE . . . . =',1pg20.13/,
1655 & 5x,'HARDENING FLAG H. . . . . . . . . . . .=',i10/,
1656 & 5x,'0:ELASTIC 1:ISOTROPIC 2:UNCOUPLED',/,
1657 & 5x,'4:KINEMATIC 5:UNCOUPLED NL (UN/RE)LOADING',/,
1658 & 5x,'6:ELASTO PLASTIC WITH HARDENING 7: ELASTIC HYSTERESIS',/,
1659 & 5x,'DYNAMIC AMPLIFICATION FACTOR A. . . . .=',1pg20.13/,
1660 & 5x,'DYNAMIC AMPLIFICATION FACTOR B. . . . .=',1pg20.13/,
1661 & 5x,'DYNAMIC AMPLIFICATION FACTOR D. . . . .=',1pg20.13/,
1662 & 5x,'DYNAMIC AMPLIFICATION FACTOR E. . . . .=',1pg20.13/,
1663 & 5x,'DYNAMIC AMPLIFICATION FACTOR GF3 . . .=',1pg20.13/,
1664 & 5x,'FUNCTION IDENTIFIER FOR ',/,
1665 & 5x,'FORCE-VELOCITY CURVE. . . . . . . . . .=',i10/,
1666 & 5x,'FUNCTION IDENTIFIER FOR THE ADDITIONAL ',/,
1667 & 5x,'FORCE-VELOCITY CURVE. . . . . . . . . .=',i10/,
1668 & 5x,'FUNCTION IDENTIFIER FOR THE ADDITIONAL ',/,
1669 & 5x,'SCALE STIFFNESS CURVE. . . . . . . . . =',i10/,
1670 & 5x,'NEGATIVE FAILURE MOMENT . . . . . . . .=',1pg20.13/,
1671 & 5x,'POSITIVE FAILURE MOMENT . . . . . . . .=',1pg20.13/)
1672 1843 FORMAT(
1673 & 5x,a,/,
1674 & 5x,'spring stiffness. . . . . . . . . . . .=',1PG20.13/,
1675 & 5X,'spring damping. . . . . . . . . . . . .=',1PG20.13/,
1676 & 5X,'FUNCTION identifier for loading ',/,
1677 & 5X,'moment-rotation curve . . . . . . . . .=',I10/,
1678 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1679 & 5X,'permanent rot./max. rot. curve (H=5). .=',I10/,
1680 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1681 & 5X,'hardening flag h. . . . . . . . . . . .=',I10/,
1682 & 5X,'0:elastic 1:isotropic 2:uncoupled',/,
1683 & 5X,'4:kinematic 5:uncoupled nl (UN/RE)loading',/,
1684 & 5X,'6:elasto plastic with hardening 7: elastic hysteresis',/,
1685 & 5X,'dynamic amplification factor a. . . . .=',1PG20.13/,
1686 & 5X,'dynamic amplification factor b. . . . .=',1PG20.13/,
1687 & 5X,'dynamic amplification factor d. . . . .=',1PG20.13/,
1688 & 5X,'dynamic amplification factor e. . . . .=',1PG20.13/,
1689 & 5X,'dynamic amplification factor gf3 . . .=',1PG20.13/,
1690 & 5X,'function identifier for ',/,
1691 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1692 & 5X,'function identifier for the additional ',/,
1693 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1694 & 5X,'function identifier for the additional ',/,
1695 & 5X,'scale stifness curve. . . . . . . . . .=',I10/,
1696 & 5X,'failure energy. . . . . . . . . . . . .=',1PG20.13/)
1697 1850 FORMAT(
1698 & 5X,'transl. ref. deformation velocity . . .=',1PG20.13/,
1699 & 5X,'rot. ref. deformation velocity. . . . .=',1PG20.13/,
1700 & 5X,'c1 coefficient. . . . . . . . . . . . .=',1PG20.13/,
1701 & 5X,'c2 coefficient. . . . . . . . . . . . .=',1PG20.13/,
1702 & 5X,'c3 coefficient. . . . . . . . . . . . .=',1PG20.13/,
1703 & 5X,'c4 coefficient. . . . . . . . . . . . .=',1PG20.13/,
1704 & 5X,'c5 coefficient. . . . . . . . . . . . .=',1PG20.13/,
1705 & 5X,'c6 coefficient. . . . . . . . . . . . .=',1PG20.13/,
1706 & 5X,'n1 exponent . . . . . . . . . . . . . .=',1PG20.13/,
1707 & 5X,'n2 exponent . . . . . . . . . . . . . .=',1PG20.13/,
1708 & 5X,'n3 exponent . . . . . . . . . . . . . .=',1PG20.13/,
1709 & 5X,'n4 exponent . . . . . . . . . . . . . .=',1PG20.13/,
1710 & 5X,'n5 exponent . . . . . . . . . . . . . .=',1PG20.13/,
1711 & 5X,'n6 exponent . . . . . . . . . . . . . .=',1PG20.13/,
1712 & 5X,'a1 coefficient. . . . . . . . . . . . .=',1PG20.13/,
1713 & 5X,'a2 coefficient. . . . . . . . . . . . .=',1PG20.13/,
1714 & 5X,'a3 coefficient. . . . . . . . . . . . .=',1PG20.13/,
1715 & 5X,'a4 coefficient. . . . . . . . . . . . .=',1PG20.13/,
1716 & 5X,'a5 coefficient. . . . . . . . . . . . .=',1PG20.13/,
1717 & 5X,'a6 coefficient. . . . . . . . . . . . .=',1pg20.13/,
1718 & 5x,'B1 EXPONENT . . . . . . . . . . . . . .=',1pg20.13/,
1719 & 5x,'B2 EXPONENT . . . . . . . . . . . . . .=',1pg20.13/,
1720 & 5x,'B3 EXPONENT . . . . . . . . . . . . . .=',1pg20.13/,
1721 & 5x,'B4 EXPONENT . . . . . . . . . . . . . .=',1pg20.13/,
1722 & 5x,'B5 EXPONENT . . . . . . . . . . . . . .=',1pg20.13/,
1723 & 5x,'B6 EXPONENT . . . . . . . . . . . . . .=',1pg20.13/)
1724 1900 FORMAT(
1725 & 5x,'SMOOTH STRAIN RATE OPTION . . .. . . . =',i10/,
1726 & 5x,'STRAIN RATE CUTTING FREQUENCY .. . . . =',1pg20.13/)
1727c-----------
1728 RETURN
1729 END
#define my_real
Definition cppsort.cpp:32
subroutine damping(nodft, nodlt, v, vr, a, ar, damp, ms, in, igrnod, dim, itask, weight, tagslv_rby, wfext)
Definition damping.F:882
end diagonal values have been computed in the(sparse) matrix id.SOL
#define alpha2
Definition eval.h:48
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)
subroutine hm_read_mat113(uparam, maxuparam, nuparam, nfunc, parmat, unitab, pm, lsubmodel, israte, mat_id, titr, ifunc, maxfunc, mtag, matparam)
subroutine init_mat_keyword(matparam, keyword)
#define max(a, b)
Definition macros.h:21
for(i8=*sizetab-1;i8 >=0;i8--)
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)
Definition message.F:889
character *2 function nl()
Definition message.F:2354