OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_prop13.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_prop13 ../starter/source/properties/spring/hm_read_prop13.F
25!||--- called by ------------------------------------------------------
26!|| hm_read_properties ../starter/source/properties/hm_read_properties.F
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!||--- uses -----------------------------------------------------
34!|| elbuftag_mod ../starter/share/modules1/elbuftag_mod.F
35!|| message_mod ../starter/share/message_module/message_mod.F
36!|| submodel_mod ../starter/share/modules1/submodel_mod.F
37!||====================================================================
38 SUBROUTINE hm_read_prop13(GEO, IGEO, IG, UNITAB,ISKN,
39 . IDTITL, IGTYP, PROP_TAG,LSUBMODEL,SUB_INDEX)
40C============================================================================
41C M o d u l e s
42C-----------------------------------------------
43 USE unitab_mod
44 USE message_mod
45 USE elbuftag_mod
46 USE submodel_mod
48C-----------------------------------------------
49C I m p l i c i t T y p e s
50C-----------------------------------------------
51#include "implicit_f.inc"
52C-----------------------------------------------
53C C o m m o n B l o c k s
54C-----------------------------------------------
55#include "units_c.inc"
56#include "param_c.inc"
57#include "com04_c.inc"
58#include "sphcom.inc"
59#include "tablen_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 IGEO(NPROPGI),ISKN(LISKN,*),IGTYP,IG
65 INTEGER, INTENT(IN) :: SUB_INDEX
66C REAL
67 my_real geo(npropg)
68 TYPE(prop_tag_) , DIMENSION(0:MAXPROP) :: PROP_TAG
69 TYPE(submodel_data),INTENT(IN)::LSUBMODEL(*)
70 CHARACTER(LEN=NCHARTITLE)::IDTITL
71C-----------------------------------------------
72C L o c a l V a r i a b l e s
73C-----------------------------------------------
74 INTEGER J, IFUNC, IFUNC2,IFUNC3, IECROU, IFV, ISK,
75 . isens,ifl,ifail,ileng,ifail2,israte,k
76C REAL
78 . a, b, d, e, f, xm, xin, xk, xc, dn, dx, fwv, lscale,
79 . pun,vt0, vr0, cc(6), cn(6), xa(6), xb(6),asrate,gf3,
80 . a_unit,b_unit,d_unit,e_unit,f_unit,
81 . lscale_unit,gf3_unit,vt0_unit,vr0_unit,asr_unit,crit_scale(6)
82 LOGICAL IS_AVAILABLE, IS_ENCRYPTED
83C=======================================================================
84 DATA pun/0.1/
85C=======================================================================
86C
87 pun = em01
88 fwv = zero
89 ifail2 = 0
90 israte = 0
91 asrate = zero
92C
93 is_encrypted = .false.
94 is_available = .false.
95
96C Double stockage temporaire - supprimer GEO(12,I)=IGTYP apres tests
97 igeo( 1)=ig
98 igeo(11)=igtyp
99 geo(12) =igtyp+pun
100C
101C--------------------------------------------------
102C EXTRACT DATA (IS OPTION CRYPTED)
103C--------------------------------------------------
104 CALL hm_option_is_encrypted(is_encrypted)
105C--------------------------------------------------
106C EXTRACT DATAS (INTEGER VALUES)
107C--------------------------------------------------
108 CALL hm_get_intv('skew_csid',ISK,IS_AVAILABLE,LSUBMODEL)
109.AND. IF(ISK == 0 SUB_INDEX /= 0 ) ISK = LSUBMODEL(SUB_INDEX)%SKEW
110 CALL HM_GET_INTV('isensor',ISENS,IS_AVAILABLE,LSUBMODEL)
111 CALL HM_GET_INTV('isflag',IFL,IS_AVAILABLE,LSUBMODEL)
112 CALL HM_GET_INTV('ifail',IFAIL,IS_AVAILABLE,LSUBMODEL)
113 CALL HM_GET_INTV('ileng',ILENG,IS_AVAILABLE,LSUBMODEL)
114 CALL HM_GET_INTV('ifail2',IFAIL2,IS_AVAILABLE,LSUBMODEL)
115C--------------------------------------------------
116C EXTRACT DATAS (REAL VALUES)
117C--------------------------------------------------
118 CALL HM_GET_FLOATV('mass',XM,IS_AVAILABLE,LSUBMODEL,UNITAB)
119 CALL HM_GET_FLOATV('inertia',XIN,IS_AVAILABLE,LSUBMODEL,UNITAB)
120C
121 CC(1:6) = ZERO
122C----
123 IF(XIN <= EM20) THEN
124 XIN = EM20
125 CALL ANCMSG(MSGID=445,
126 . MSGTYPE=MSGWARNING,
127 . ANMODE=ANINFO_BLIND_1,
128 . I1=IG,
129 . C1=IDTITL)
130 ENDIF
131C
132 IF (IFL == 1) ISENS=-ISENS
133C----
134 DO K=0,NUMSKW+MIN(1,NSPCOND)*NUMSPH+NSUBMOD
135 IF (ISK == ISKN(4,K+1)) THEN
136 ISK=K+1
137 GO TO 100
138 ENDIF
139 ENDDO
140 CALL ANCMSG(MSGID=137,ANMODE=ANINFO,MSGTYPE=MSGERROR,
141 . C1='property',
142 . C2='property',
143 . I1=IGEO(1),I2=ISK,C3=IDTITL)
144100 CONTINUE
145C
146.AND..AND. IF (IFAIL2 /= 1 IFAIL2 /= 2 IFAIL2 /= 3) IFAIL2 = 0
147 GEO(1) =XM
148 GEO(2) =ISK+PUN
149 IGEO(2)=ISK
150 GEO(8) =4
151 GEO(9) =XIN
152 IGEO(3)=ISENS
153 GEO(79)=IFAIL
154 GEO(80)=IFL
155 GEO(93)=ILENG
156 GEO(95)=IFAIL2
157C----
158 IF(IS_ENCRYPTED)THEN
159 WRITE(IOUT,1000)IG
160 1000 FORMAT(
161 & 5X,'spring property set'/,
162 & 5X,'-------------------'/,
163 & 5X,'property set number . . . . . . . . . .=',I10/,
164 & 5X,'confidential data'//)
165 ELSE
166 WRITE(IOUT,1801)IG,XM,XIN,ISKN(4,ISK),ABS(ISENS),IFL,IFAIL,IFAIL2,
167 . ILENG
168 ENDIF
169!-------------------------------------------------------
170! Translations
171!-------------------------------------------------------
172!-----------------
173 ! Traction X
174!-----------------
175C--------------------------------------------------
176C EXTRACT DATAS (INTEGER VALUES)
177C--------------------------------------------------
178 CALL HM_GET_INTV('fun_a1',IFUNC,IS_AVAILABLE,LSUBMODEL)
179 CALL HM_GET_INTV('hflag1',IECROU,IS_AVAILABLE,LSUBMODEL)
180 CALL HM_GET_INTV('fun_b1',IFV,IS_AVAILABLE,LSUBMODEL)
181 CALL HM_GET_INTV('fun_c1',IFUNC2,IS_AVAILABLE,LSUBMODEL)
182 CALL HM_GET_INTV('fun_d1',IFUNC3,IS_AVAILABLE,LSUBMODEL)
183C--------------------------------------------------
184C EXTRACT DATAS (REAL VALUES)
185C--------------------------------------------------
186 CALL HM_GET_FLOATV('stiff1',XK,IS_AVAILABLE,LSUBMODEL,UNITAB)
187 CALL HM_GET_FLOATV('damp1',XC,IS_AVAILABLE,LSUBMODEL,UNITAB)
188 CALL HM_GET_FLOATV('acoeft1',A,IS_AVAILABLE,LSUBMODEL,UNITAB)
189 CALL HM_GET_FLOATV('bcoeft1',B,IS_AVAILABLE,LSUBMODEL,UNITAB)
190 CALL HM_GET_FLOATV('dcoeft1',D,IS_AVAILABLE,LSUBMODEL,UNITAB)
191 CALL HM_GET_FLOATV('min_rup1',DN,IS_AVAILABLE,LSUBMODEL,UNITAB)
192 CALL HM_GET_FLOATV('max_rup1',DX,IS_AVAILABLE,LSUBMODEL,UNITAB)
193 CALL HM_GET_FLOATV('prop_x_f',F,IS_AVAILABLE,LSUBMODEL,UNITAB)
194 CALL HM_GET_FLOATV('prop_x_e',E,IS_AVAILABLE,LSUBMODEL,UNITAB)
195 CALL HM_GET_FLOATV('scale1',LSCALE,IS_AVAILABLE,LSUBMODEL,UNITAB)
196 CALL HM_GET_FLOATV('prop_x_h',GF3,IS_AVAILABLE,LSUBMODEL,UNITAB)
197 !units for default values
198 CALL HM_GET_FLOATV_DIM('acoeft1',A_UNIT,IS_AVAILABLE,LSUBMODEL,UNITAB)
199 CALL HM_GET_FLOATV_DIM('bcoeft1',B_UNIT,IS_AVAILABLE,LSUBMODEL,UNITAB)
200 CALL HM_GET_FLOATV_DIM('dcoeft1',D_UNIT,IS_AVAILABLE,LSUBMODEL,UNITAB)
201 CALL HM_GET_FLOATV_DIM('prop_x_f',F_UNIT,IS_AVAILABLE,LSUBMODEL,UNITAB)
202 CALL HM_GET_FLOATV_DIM('prop_x_e',E_UNIT,IS_AVAILABLE,LSUBMODEL,UNITAB)
203 CALL HM_GET_FLOATV_DIM('scale1',LSCALE_UNIT,IS_AVAILABLE,LSUBMODEL,UNITAB)
204 CALL HM_GET_FLOATV_DIM('prop_x_h',GF3_UNIT,IS_AVAILABLE,LSUBMODEL,UNITAB)
205 CALL HM_GET_FLOATV_DIM('min_rup1',CRIT_SCALE(1),IS_AVAILABLE,LSUBMODEL,UNITAB)
206C----
207.AND..AND.! IF (IFUNC /= 0 IECROU >= 1 XK == ZERO) THEN
208! CALL ANCMSG(MSGID=230,
209! . MSGTYPE=MSGERROR,
210! . ANMODE=ANINFO_BLIND_1,
211! . I1=IG,
212! . C1=IDTITL)
213! ENDIF
214.AND..OR. IF (IECROU == 4 (IFUNC == 0 IFUNC2 == 0)) THEN
215 CALL ANCMSG(MSGID=231,
216 . MSGTYPE=MSGERROR,
217 . ANMODE=ANINFO_BLIND_1,
218 . I1=IG,
219 . C1=IDTITL)
220 ENDIF
221.AND. IF (IECROU == 4 GEO(2) == ZERO) THEN
222 CALL ANCMSG(MSGID=230,
223 . MSGTYPE=MSGERROR,
224 . ANMODE=ANINFO_BLIND_1,
225 . I1=IG,
226 . C1=IDTITL)
227 ENDIF
228.OR. IF (IECROU == 5. AND. (IFUNC == 0 IFUNC2 == 0)) THEN
229 CALL ANCMSG(MSGID=231,
230 . MSGTYPE=MSGERROR,
231 . ANMODE=ANINFO_BLIND_1,
232 . I1=IG,
233 . C1=IDTITL)
234 ENDIF
235.AND..OR. IF (IECROU == 6 (IFUNC == 0 IFUNC2 == 0)) THEN
236 CALL ANCMSG(MSGID=1057,
237 . MSGTYPE=MSGERROR,
238 . ANMODE=ANINFO_BLIND_1,
239 . I1=IG,
240 . C1=IDTITL)
241 ENDIF
242.AND. IF (IECROU == 7 IFUNC == 0) THEN
243 CALL ANCMSG(MSGID=1058,
244 . MSGTYPE=MSGERROR,
245 . ANMODE=ANINFO_BLIND_1,
246 . I1=IG,
247 . C1=IDTITL)
248.AND. ELSEIF (IECROU == 7 IFUNC2 == 0) THEN
249 CALL ANCMSG(MSGID=1059,
250 . MSGTYPE=MSGWARNING,
251 . ANMODE=ANINFO_BLIND_1,
252 . I1=IG,
253 . C1=IDTITL,
254 . I2=IECROU)
255 IECROU = 2
256 ENDIF
257.AND..AND. IF (IFUNC == 0 A /= ZERO A /= ONE) THEN
258 CALL ANCMSG(MSGID=663,
259 . MSGTYPE=MSGWARNING,
260 . ANMODE=ANINFO_BLIND_1,
261 . I1=IG,
262 . C1=IDTITL)
263 ENDIF
264C----
265 IF (A == ZERO) A = ONE * A_UNIT
266 IF (D == ZERO) D = ONE * D_UNIT
267 IF (E == ZERO) E = ONE * E_UNIT
268 IF (F == ZERO) F = ONE * F_UNIT
269 IF (LSCALE == ZERO) LSCALE = ONE * LSCALE_UNIT
270 IF (GF3 == ZERO) GF3 = ONE * GF3_UNIT
271 IF (IFUNC == 0) THEN
272 A = ONE
273 B = ZERO
274 E = ZERO
275 ENDIF
276C
277.OR. IF ((IFAIL2 == 0)(IFAIL2 ==1)) THEN
278 DN = DN * LSCALE / CRIT_SCALE(1)
279 DX = DX * LSCALE / CRIT_SCALE(1)
280 ENDIF
281 IF (DN == ZERO) DN=-EP30* CRIT_SCALE(1)
282 IF (DX == ZERO) DX= EP30* CRIT_SCALE(1)
283.OR. IF ((IFAIL2 == 0)(IFAIL2 ==1)) CRIT_SCALE(1) = LSCALE / CRIT_SCALE(1)
284C----
285 GEO(41) = A
286 GEO(42) = B
287 GEO(43) = D
288 GEO(40) = E
289 GEO(132)= GF3
290 GEO(44) = ONE / F
291 GEO(39) = ONE / LSCALE
292 GEO(65) = DN
293 GEO(66) = DX
294 GEO(87) = FWV
295 GEO(3) = XK / A
296 GEO(4) = XC
297 GEO(7) = IECROU+PUN
298C-- If H=6 - additional internal variables must be stored in UVAR - - GEO(25) = NUVAR
299 IF (IECROU == 6) THEN
300 GEO(25) = 6
301 ENDIF
302C
303 IGEO(101) = IFUNC
304 IGEO(102) = IFV
305 IGEO(103) = IFUNC2
306 IGEO(119) = IFUNC3
307C----
308.NOT. IF ( IS_ENCRYPTED) THEN
309 IF (IECROU /= 5) THEN
310 IF (IFAIL2 == 3) THEN
311 WRITE(IOUT,1813)'tension',XK,XC,IFUNC,LSCALE,IFUNC2,F,IECROU,
312 . A,B,D,E,GF3,IFV,IFUNC3,DX
313 ELSEIF (IFAIL2 == 2) THEN
314 WRITE(IOUT,1812)'tension',XK,XC,IFUNC,LSCALE,IFUNC2,F,IECROU,
315 . A,B,D,E,GF3,IFV,IFUNC3,DN,DX
316 ELSE
317 WRITE(IOUT,1810)'tension',XK,XC,IFUNC,LSCALE,IFUNC2,F,IECROU,
318 . A,B,D,E,GF3,IFV,IFUNC3,DN,DX
319 ENDIF ! IF (IFAIL2 == 3)
320 ELSE
321 IF (IFAIL2 == 3) THEN
322 WRITE(IOUT,1823)'tension',XK,XC,IFUNC,LSCALE,IFUNC2,F,IECROU,
323 . A,B,D,E,GF3,IFV,IFUNC3,DX
324 ELSEIF (IFAIL2 == 2) THEN
325 WRITE(IOUT,1822)'tension',XK,XC,IFUNC,LSCALE,IFUNC2,F,IECROU,
326 . A,B,D,E,GF3,IFV,IFUNC3,DN,DX
327 ELSE
328 WRITE(IOUT,1820)'tension',XK,XC,IFUNC,LSCALE,IFUNC2,F,IECROU,
329 . A,B,D,E,GF3,IFV,IFUNC3,DN,DX
330 ENDIF ! IF (IFAIL2 == 3)
331 ENDIF ! IF (IECROU /= 5)
332 ENDIF
333!-----------------
334 ! Shear XY
335!-----------------
336C--------------------------------------------------
337C EXTRACT DATAS (INTEGER VALUES)
338C--------------------------------------------------
339 CALL HM_GET_INTV('fun_a2',IFUNC,IS_AVAILABLE,LSUBMODEL)
340 CALL HM_GET_INTV('hflag2',IECROU,IS_AVAILABLE,LSUBMODEL)
341 CALL HM_GET_INTV('fun_b2',IFV,IS_AVAILABLE,LSUBMODEL)
342 CALL HM_GET_INTV('fun_c2',IFUNC2,IS_AVAILABLE,LSUBMODEL)
343 CALL HM_GET_INTV('fun_d2',IFUNC3,IS_AVAILABLE,LSUBMODEL)
344C--------------------------------------------------
345C EXTRACT DATAS (REAL VALUES)
346C--------------------------------------------------
347 CALL HM_GET_FLOATV('stiff2',XK,IS_AVAILABLE,LSUBMODEL,UNITAB)
348 CALL HM_GET_FLOATV('damp2',XC,IS_AVAILABLE,LSUBMODEL,UNITAB)
349 CALL HM_GET_FLOATV('acoeft2',A,IS_AVAILABLE,LSUBMODEL,UNITAB)
350 CALL HM_GET_FLOATV('bcoeft2',B,IS_AVAILABLE,LSUBMODEL,UNITAB)
351 CALL HM_GET_FLOATV('dcoeft2',D,IS_AVAILABLE,LSUBMODEL,UNITAB)
352 CALL HM_GET_FLOATV('min_rup2',DN,IS_AVAILABLE,LSUBMODEL,UNITAB)
353 CALL HM_GET_FLOATV('max_rup2',DX,IS_AVAILABLE,LSUBMODEL,UNITAB)
354 CALL HM_GET_FLOATV('prop_y_f',F,IS_AVAILABLE,LSUBMODEL,UNITAB)
355 CALL HM_GET_FLOATV('prop_y_e',E,IS_AVAILABLE,LSUBMODEL,UNITAB)
356 CALL HM_GET_FLOATV('scale2',LSCALE,IS_AVAILABLE,LSUBMODEL,UNITAB)
357 CALL HM_GET_FLOATV('prop_y_h',GF3,IS_AVAILABLE,LSUBMODEL,UNITAB)
358C
359 CALL HM_GET_FLOATV_DIM('min_rup2',CRIT_SCALE(2),IS_AVAILABLE,LSUBMODEL,UNITAB)
360
361C----
362.AND..AND.! IF (IFUNC /= 0 IECROU >= 1 XK == ZERO) THEN
363! CALL ANCMSG(MSGID=230,
364! . MSGTYPE=MSGERROR,
365! . ANMODE=ANINFO_BLIND_1,
366! . I1=IG,
367! . C1=IDTITL)
368! ENDIF
369.AND..OR. IF (IECROU == 4 (IFUNC == 0 IFUNC2 == 0)) THEN
370 CALL ANCMSG(MSGID=231,
371 . MSGTYPE=MSGERROR,
372 . ANMODE=ANINFO_BLIND_1,
373 . I1=IG,
374 . C1=IDTITL)
375 ENDIF
376.AND. IF (IECROU == 4 GEO(2) == ZERO)THEN
377 CALL ANCMSG(MSGID=230,
378 . MSGTYPE=MSGERROR,
379 . ANMODE=ANINFO_BLIND_1,
380 . I1=IG,
381 . C1=IDTITL)
382 ENDIF
383.AND..OR. IF (IECROU == 5 (IFUNC == 0 IFUNC2 == 0)) THEN
384 CALL ANCMSG(MSGID=231,
385 . MSGTYPE=MSGERROR,
386 . ANMODE=ANINFO_BLIND_1,
387 . I1=IG,
388 . C1=IDTITL)
389 ENDIF
390.AND..OR. IF (IECROU == 6 (IFUNC == 0 IFUNC2 == 0)) THEN
391 CALL ANCMSG(MSGID=1057,
392 . MSGTYPE=MSGERROR,
393 . ANMODE=ANINFO_BLIND_1,
394 . I1=IG,
395 . C1=IDTITL)
396 ENDIF
397.AND. IF (IECROU == 7 IFUNC == 0) THEN
398 CALL ANCMSG(MSGID=1058,
399 . MSGTYPE=MSGERROR,
400 . ANMODE=ANINFO_BLIND_1,
401 . I1=IG,
402 . C1=IDTITL)
403.AND. ELSEIF (IECROU == 7 IFUNC2 == 0) THEN
404 CALL ANCMSG(MSGID=1059,
405 . MSGTYPE=MSGWARNING,
406 . ANMODE=ANINFO_BLIND_1,
407 . I1=IG,
408 . C1=IDTITL,
409 . I2=IECROU)
410 IECROU = 2
411 ENDIF
412.AND..AND. IF (IFUNC == 0 A /= ZERO A /= ONE) THEN
413 CALL ANCMSG(MSGID=663,
414 . MSGTYPE=MSGWARNING,
415 . ANMODE=ANINFO_BLIND_1,
416 . I1=IG,
417 . C1=IDTITL)
418 ENDIF
419C----
420 IF (A == ZERO) A = ONE * A_UNIT
421 IF (D == ZERO) D = ONE * D_UNIT
422 IF (E == ZERO) E = ONE * E_UNIT
423 IF (F == ZERO) F = ONE * F_UNIT
424 IF (LSCALE == ZERO) LSCALE = ONE * LSCALE_UNIT
425 IF (GF3 == ZERO) GF3 = ONE * GF3_UNIT
426 IF (IFUNC == 0) THEN
427 A = ONE
428 B = ZERO
429 E = ZERO
430 ENDIF
431C
432.OR. IF ((IFAIL2 == 0)(IFAIL2 ==1)) THEN
433 DN = DN * LSCALE / CRIT_SCALE(2)
434 DX = DX * LSCALE / CRIT_SCALE(2)
435 ENDIF
436 IF (DN == ZERO) DN=-EP30* CRIT_SCALE(2)
437 IF (DX == ZERO) DX= EP30* CRIT_SCALE(2)
438.OR. IF ((IFAIL2 == 0)(IFAIL2 ==1)) CRIT_SCALE(2) = LSCALE / CRIT_SCALE(2)
439C----
440 GEO(45) = A
441 GEO(46) = B
442 GEO(47) = D
443 GEO(180)= E
444 GEO(133)= GF3
445 GEO(48) = ONE / F
446 GEO(174)= ONE / LSCALE
447 GEO(67) = DN
448 GEO(68) = DX
449 GEO(88) = FWV
450 GEO(10) = XK / A
451 GEO(11) = XC
452 GEO(14) = IECROU+PUN
453C-- If H=6 - additional internal variables must be stored in UVAR - - GEO(25) = NUVAR
454 IF (IECROU == 6) THEN
455 GEO(25) = 6
456 ENDIF
457C
458 IGEO(104) = IFUNC
459 IGEO(105) = IFV
460 IGEO(106) = IFUNC2
461 IGEO(120) = IFUNC3
462C----
463.NOT. IF ( IS_ENCRYPTED) THEN
464 IF (IECROU /= 5) THEN
465 IF (IFAIL2 == 3) THEN
466 WRITE(IOUT,1813)'y shear',XK,XC,IFUNC,LSCALE,IFUNC2,F,IECROU,
467 . A,B,D,E,GF3,IFV,IFUNC3,DX
468 ELSEIF (IFAIL2 == 2) THEN
469 WRITE(IOUT,1812)'y shear',XK,XC,IFUNC,LSCALE,IFUNC2,F,IECROU,
470 . A,B,D,E,GF3,IFV,IFUNC3,DN,DX
471 ELSE
472 WRITE(IOUT,1810)'y shear',XK,XC,IFUNC,LSCALE,IFUNC2,F,IECROU,
473 . A,B,D,E,GF3,IFV,IFUNC3,DN,DX
474 ENDIF ! IF (IFAIL2 == 3)
475 ELSE
476 IF (IFAIL2 == 3) THEN
477 WRITE(IOUT,1823)'y shear',XK,XC,IFUNC,LSCALE,IFUNC2,F,IECROU,
478 . A,B,D,E,GF3,IFV,IFUNC3,DX
479 ELSEIF (IFAIL2 == 2) THEN
480 WRITE(IOUT,1822)'y shear',XK,XC,IFUNC,LSCALE,IFUNC2,F,IECROU,
481 . A,B,D,E,GF3,IFV,IFUNC3,DN,DX
482 ELSE
483 WRITE(IOUT,1820)'y shear',XK,XC,IFUNC,LSCALE,IFUNC2,F,IECROU,
484 . A,B,D,E,GF3,IFV,IFUNC3,DN,DX
485 ENDIF ! IF (IFAIL2 == 3)
486 ENDIF ! IF (IECROU /= 5)
487 ENDIF
488!-----------------
489 ! Shear XZ
490!-----------------
491C--------------------------------------------------
492C EXTRACT DATAS (INTEGER VALUES)
493C--------------------------------------------------
494 CALL HM_GET_INTV('fun_a3',IFUNC,IS_AVAILABLE,LSUBMODEL)
495 CALL HM_GET_INTV('hflag3',IECROU,IS_AVAILABLE,LSUBMODEL)
496 CALL HM_GET_INTV('fun_b3',IFV,IS_AVAILABLE,LSUBMODEL)
497 CALL HM_GET_INTV('fun_c3',IFUNC2,IS_AVAILABLE,LSUBMODEL)
498 CALL HM_GET_INTV('fun_d3',IFUNC3,IS_AVAILABLE,LSUBMODEL)
499C--------------------------------------------------
500C EXTRACT DATAS (REAL VALUES)
501C--------------------------------------------------
502 CALL HM_GET_FLOATV('stiff3',XK,IS_AVAILABLE,LSUBMODEL,UNITAB)
503 CALL HM_GET_FLOATV('damp3',XC,IS_AVAILABLE,LSUBMODEL,UNITAB)
504 CALL HM_GET_FLOATV('acoeft3',A,IS_AVAILABLE,LSUBMODEL,UNITAB)
505 CALL HM_GET_FLOATV('bcoeft3',B,IS_AVAILABLE,LSUBMODEL,UNITAB)
506 CALL HM_GET_FLOATV('dcoeft3',D,IS_AVAILABLE,LSUBMODEL,UNITAB)
507 CALL HM_GET_FLOATV('min_rup3',DN,IS_AVAILABLE,LSUBMODEL,UNITAB)
508 CALL HM_GET_FLOATV('max_rup3',DX,IS_AVAILABLE,LSUBMODEL,UNITAB)
509 CALL HM_GET_FLOATV('prop_z_f',F,IS_AVAILABLE,LSUBMODEL,UNITAB)
510 CALL HM_GET_FLOATV('prop_z_e',E,IS_AVAILABLE,LSUBMODEL,UNITAB)
511 CALL HM_GET_FLOATV('scale3',LSCALE,IS_AVAILABLE,LSUBMODEL,UNITAB)
512 CALL HM_GET_FLOATV('prop_z_h',GF3,IS_AVAILABLE,LSUBMODEL,UNITAB)
513C
514 CALL HM_GET_FLOATV_DIM('min_rup3',CRIT_SCALE(3),IS_AVAILABLE,LSUBMODEL,UNITAB)
515C
516C----
517.AND..AND.! IF (IFUNC /= 0 IECROU >= 1 XK == ZERO) THEN
518! CALL ANCMSG(MSGID=230,
519! . MSGTYPE=MSGERROR,
520! . ANMODE=ANINFO_BLIND_1,
521! . I1=IG,
522! . C1=IDTITL)
523! ENDIF
524.AND..OR. IF (IECROU == 4 (IFUNC == 0 IFUNC2 == 0)) THEN
525 CALL ANCMSG(MSGID=231,
526 . MSGTYPE=MSGERROR,
527 . ANMODE=ANINFO_BLIND_1,
528 . I1=IG,
529 . C1=IDTITL)
530 ENDIF
531.AND. IF (IECROU == 4 GEO(2) == ZERO) THEN
532 CALL ANCMSG(MSGID=230,
533 . MSGTYPE=MSGERROR,
534 . ANMODE=ANINFO_BLIND_1,
535 . I1=IG,
536 . C1=IDTITL)
537 ENDIF
538.AND..OR. IF (IECROU == 5 (IFUNC == 0 IFUNC2 == 0)) THEN
539 CALL ANCMSG(MSGID=231,
540 . MSGTYPE=MSGERROR,
541 . ANMODE=ANINFO_BLIND_1,
542 . I1=IG,
543 . C1=IDTITL)
544 ENDIF
545.AND..OR. IF (IECROU == 6 (IFUNC == 0 IFUNC2 == 0)) THEN
546 CALL ANCMSG(MSGID=1057,
547 . MSGTYPE=MSGERROR,
548 . ANMODE=ANINFO_BLIND_1,
549 . I1=IG,
550 . C1=IDTITL)
551 ENDIF
552.AND. IF (IECROU == 7 IFUNC == 0) THEN
553 CALL ANCMSG(MSGID=1058,
554 . MSGTYPE=MSGERROR,
555 . ANMODE=ANINFO_BLIND_1,
556 . I1=IG,
557 . C1=IDTITL)
558.AND. ELSEIF (IECROU == 7 IFUNC2 == 0) THEN
559 CALL ANCMSG(MSGID=1059,
560 . MSGTYPE=MSGWARNING,
561 . ANMODE=ANINFO_BLIND_1,
562 . I1=IG,
563 . C1=IDTITL,
564 . I2=IECROU)
565 IECROU = 2
566 ENDIF
567.AND..AND. IF (IFUNC == 0 A /= ZERO A /= ONE) THEN
568 CALL ANCMSG(MSGID=663,
569 . MSGTYPE=MSGWARNING,
570 . ANMODE=ANINFO_BLIND_1,
571 . I1=IG,
572 . C1=IDTITL)
573 ENDIF
574C----
575 IF (A == ZERO) A = ONE * A_UNIT
576 IF (D == ZERO) D = ONE * D_UNIT
577 IF (E == ZERO) E = ONE * E_UNIT
578 IF (F == ZERO) F = ONE * F_UNIT
579 IF (LSCALE == ZERO) LSCALE = ONE * LSCALE_UNIT
580 IF (GF3 == ZERO) GF3 = ONE * GF3_UNIT
581 IF (IFUNC == 0) THEN
582 A = ONE
583 B = ZERO
584 E = ZERO
585 ENDIF
586C
587.OR. IF ((IFAIL2 == 0)(IFAIL2 ==1)) THEN
588 DN = DN * LSCALE / CRIT_SCALE(3)
589 DX = DX * LSCALE / CRIT_SCALE(3)
590 ENDIF
591 IF (DN == ZERO) DN=-EP30* CRIT_SCALE(3)
592 IF (DX == ZERO) DX= EP30* CRIT_SCALE(3)
593.OR. IF ((IFAIL2 == 0)(IFAIL2 ==1)) CRIT_SCALE(3) = LSCALE / CRIT_SCALE(3)
594C----
595 GEO(49) = A
596 GEO(50) = B
597 GEO(51) = D
598 GEO(181)= E
599 GEO(134)= GF3
600 GEO(52) = ONE / F
601 GEO(175)= ONE / LSCALE
602 GEO(69) = DN
603 GEO(77) = DX
604 GEO(89) = FWV
605 GEO(15) = XK / A
606 GEO(16) = XC
607 GEO(18) = IECROU+PUN
608C-- If H=6 - additional internal variables must be stored in UVAR - - GEO(25) = NUVAR
609 IF (IECROU == 6) THEN
610 GEO(25) = 6
611 ENDIF
612C
613 IGEO(107) = IFUNC
614 IGEO(108) = IFV
615 IGEO(109) = IFUNC2
616 IGEO(121) = IFUNC3
617C----
618.NOT. IF ( IS_ENCRYPTED) THEN
619 IF (IECROU /= 5) THEN
620 IF (IFAIL2 == 3) THEN
621 WRITE(IOUT,1813)'z shear',XK,XC,IFUNC,LSCALE,IFUNC2,F,IECROU,
622 . A,B,D,E,GF3,IFV,IFUNC3,DX
623 ELSEIF (IFAIL2 == 2) THEN
624 WRITE(IOUT,1812)'z shear',XK,XC,IFUNC,LSCALE,IFUNC2,F,IECROU,
625 . A,B,D,E,GF3,IFV,IFUNC3,DN,DX
626 ELSE
627 WRITE(IOUT,1810)'z shear',XK,XC,IFUNC,LSCALE,IFUNC2,F,IECROU,
628 . A,B,D,E,GF3,IFV,IFUNC3,DN,DX
629 ENDIF ! IF (IFAIL2 == 3)
630 ELSE
631 IF (IFAIL2 == 3) THEN
632 WRITE(IOUT,1823)'z shear',XK,XC,IFUNC,LSCALE,IFUNC2,F,IECROU,
633 . A,B,D,E,GF3,IFV,IFUNC3,DX
634 ELSEIF (IFAIL2 == 2) THEN
635 WRITE(IOUT,1822)'z shear',XK,XC,IFUNC,LSCALE,IFUNC2,F,IECROU,
636 . A,B,D,E,GF3,IFV,IFUNC3,DN,DX
637 ELSE
638 WRITE(IOUT,1820)'z shear',XK,XC,IFUNC,LSCALE,IFUNC2,F,IECROU,
639 . A,B,D,E,GF3,IFV,IFUNC3,DN,DX
640 ENDIF ! IF (IFAIL2 == 3)
641 ENDIF ! IF (IECROU /= 5)
642 ENDIF
643 IF (XM <= EM20) THEN
644 GEO(1) = EM20
645 CALL ANCMSG(MSGID=444,
646 . MSGTYPE=MSGWARNING,
647 . ANMODE=ANINFO_BLIND_1,
648 . I1=IG,
649 . C1=IDTITL)
650 ENDIF
651!-------------------------------------------------------
652! Rotations
653!-------------------------------------------------------
654!-----------------
655 ! Torsion X
656!-----------------
657C--------------------------------------------------
658C EXTRACT DATAS (INTEGER VALUES)
659C--------------------------------------------------
660 CALL HM_GET_INTV('fun_a4',IFUNC,IS_AVAILABLE,LSUBMODEL)
661 CALL HM_GET_INTV('hflag4',IECROU,IS_AVAILABLE,LSUBMODEL)
662 CALL HM_GET_INTV('fun_b4',IFV,IS_AVAILABLE,LSUBMODEL)
663 CALL HM_GET_INTV('fun_c4',IFUNC2,IS_AVAILABLE,LSUBMODEL)
664 CALL HM_GET_INTV('fun_d4',IFUNC3,IS_AVAILABLE,LSUBMODEL)
665C--------------------------------------------------
666C EXTRACT DATAS (REAL VALUES)
667C--------------------------------------------------
668 CALL HM_GET_FLOATV('stiff4',XK,IS_AVAILABLE,LSUBMODEL,UNITAB)
669 CALL HM_GET_FLOATV('damp4',XC,IS_AVAILABLE,LSUBMODEL,UNITAB)
670 CALL HM_GET_FLOATV('acoeft4',A,IS_AVAILABLE,LSUBMODEL,UNITAB)
671 CALL HM_GET_FLOATV('bcoeft4',B,IS_AVAILABLE,LSUBMODEL,UNITAB)
672 CALL HM_GET_FLOATV('dcoeft4',D,IS_AVAILABLE,LSUBMODEL,UNITAB)
673 CALL HM_GET_FLOATV('min_rup4',DN,IS_AVAILABLE,LSUBMODEL,UNITAB)
674 CALL HM_GET_FLOATV('max_rup4',DX,IS_AVAILABLE,LSUBMODEL,UNITAB)
675 CALL HM_GET_FLOATV('prop_tor_f',F,IS_AVAILABLE,LSUBMODEL,UNITAB)
676 CALL HM_GET_FLOATV('prop_tor_e',E,IS_AVAILABLE,LSUBMODEL,UNITAB)
677 CALL HM_GET_FLOATV('scale4',LSCALE,IS_AVAILABLE,LSUBMODEL,UNITAB)
678 CALL HM_GET_FLOATV('prop_tor_h',GF3,IS_AVAILABLE,LSUBMODEL,UNITAB)
679 !units for default values
680 CALL HM_GET_FLOATV_DIM('acoeft4',A_UNIT,IS_AVAILABLE,LSUBMODEL,UNITAB)
681 CALL HM_GET_FLOATV_DIM('bcoeft4',B_UNIT,IS_AVAILABLE,LSUBMODEL,UNITAB)
682 CALL HM_GET_FLOATV_DIM('dcoeft4',D_UNIT,IS_AVAILABLE,LSUBMODEL,UNITAB)
683 CALL HM_GET_FLOATV_DIM('prop_tor_f',F_UNIT,IS_AVAILABLE,LSUBMODEL,UNITAB)
684 CALL HM_GET_FLOATV_DIM('prop_tor_e',E_UNIT,IS_AVAILABLE,LSUBMODEL,UNITAB)
685 CALL HM_GET_FLOATV_DIM('scale4',LSCALE_UNIT,IS_AVAILABLE,LSUBMODEL,UNITAB)
686 CALL HM_GET_FLOATV_DIM('prop_tor_h',GF3_UNIT,IS_AVAILABLE,LSUBMODEL,UNITAB)
687 CALL HM_GET_FLOATV_DIM('min_rup4',CRIT_SCALE(4),IS_AVAILABLE,LSUBMODEL,UNITAB)
688C
689C----
690.AND..AND.! IF(IFUNC/=0IECROU>=1XK == ZERO)THEN
691! CALL ANCMSG(MSGID=230,
692! . MSGTYPE=MSGERROR,
693! . ANMODE=ANINFO_BLIND_1,
694! . I1=IG,
695! . C1=IDTITL)
696! ENDIF
697.AND..OR. IF (IECROU == 4 (IFUNC == 0 IFUNC2 == 0)) THEN
698 CALL ANCMSG(MSGID=231,
699 . MSGTYPE=MSGERROR,
700 . ANMODE=ANINFO_BLIND_1,
701 . I1=IG,
702 . C1=IDTITL)
703 ENDIF
704 IF (IECROU == 4. AND. GEO(2) == ZERO) THEN
705 CALL ANCMSG(MSGID=230,
706 . MSGTYPE=MSGERROR,
707 . ANMODE=ANINFO_BLIND_1,
708 . I1=IG,
709 . C1=IDTITL)
710 ENDIF
711.AND..OR. IF (IECROU == 5 (IFUNC == 0 IFUNC2 == 0)) THEN
712 CALL ANCMSG(MSGID=231,
713 . MSGTYPE=MSGERROR,
714 . ANMODE=ANINFO_BLIND_1,
715 . I1=IG,
716 . C1=IDTITL)
717 ENDIF
718.AND..OR. IF (IECROU == 6 (IFUNC == 0 IFUNC2 == 0)) THEN
719 CALL ANCMSG(MSGID=1057,
720 . MSGTYPE=MSGERROR,
721 . ANMODE=ANINFO_BLIND_1,
722 . I1=IG,
723 . C1=IDTITL)
724 ENDIF
725.AND. IF (IECROU == 7 IFUNC == 0) THEN
726 CALL ANCMSG(MSGID=1058,
727 . MSGTYPE=MSGERROR,
728 . ANMODE=ANINFO_BLIND_1,
729 . I1=IG,
730 . C1=IDTITL)
731.AND. ELSEIF (IECROU == 7 IFUNC2 == 0) THEN
732 CALL ANCMSG(MSGID=1059,
733 . MSGTYPE=MSGWARNING,
734 . ANMODE=ANINFO_BLIND_1,
735 . I1=IG,
736 . C1=IDTITL,
737 . I2=IECROU)
738 IECROU = 2
739 ENDIF
740.AND..AND. IF (IFUNC == 0 A /= ZERO A /= ONE) THEN
741 CALL ANCMSG(MSGID=663,
742 . MSGTYPE=MSGWARNING,
743 . ANMODE=ANINFO_BLIND_1,
744 . I1=IG,
745 . C1=IDTITL)
746 ENDIF
747C----
748 IF (A == ZERO) A = ONE * A_UNIT
749 IF (D == ZERO) D = ONE * D_UNIT
750 IF (E == ZERO) E = ONE * E_UNIT
751 IF (F == ZERO) F = ONE * F_UNIT
752 IF (LSCALE == ZERO) LSCALE = ONE * LSCALE_UNIT
753 IF (GF3 == ZERO) GF3 = ONE * GF3_UNIT
754 IF (IFUNC == 0) THEN
755 A = ONE
756 B = ZERO
757 E = ZERO
758 ENDIF
759C
760.OR. IF ((IFAIL2 == 0)(IFAIL2 ==1)) THEN
761 DN = DN * LSCALE / CRIT_SCALE(4)
762 DX = DX * LSCALE / CRIT_SCALE(4)
763 ENDIF
764 IF (DN == ZERO) DN=-EP30* CRIT_SCALE(4)
765 IF (DX == ZERO) DX= EP30* CRIT_SCALE(4)
766.OR. IF ((IFAIL2 == 0)(IFAIL2 ==1)) CRIT_SCALE(4) = LSCALE / CRIT_SCALE(4)
767C----
768 GEO(53) = A
769 GEO(54) = B
770 GEO(55) = D
771 GEO(182) = E
772 GEO(135) = GF3
773 GEO(56) = ONE / F
774 GEO(176) = ONE / LSCALE
775 GEO(71) = DN
776 GEO(72) = DX
777 GEO(19) = XK / A
778 GEO(20) = XC
779 GEO(22) = IECROU+PUN
780C-- If H=6 - additional internal variables must be stored in UVAR - - GEO(25) = NUVAR
781 IF (IECROU == 6) THEN
782 GEO(25) = 6
783 ENDIF
784C
785 IGEO(110) = IFUNC
786 IGEO(111) = IFV
787 IGEO(112) = IFUNC2
788 IGEO(122) = IFUNC3
789C----
790.NOT. IF ( IS_ENCRYPTED) THEN
791 IF (IECROU /= 5) THEN
792 IF (IFAIL2 == 3) THEN
793 WRITE(IOUT,1833)'torsion',XK,XC,IFUNC,LSCALE,IFUNC2,F,IECROU,
794 . A,B,D,E,GF3,IFV,IFUNC3,DX
795 ELSEIF (IFAIL2 == 2) THEN
796 WRITE(IOUT,1832)'torsion',XK,XC,IFUNC,LSCALE,IFUNC2,F,IECROU,
797 . A,B,D,E,GF3,IFV,IFUNC3,DN,DX
798 ELSE
799 WRITE(IOUT,1830)'torsion',xk,xc,ifunc,lscale,ifunc2,f,iecrou,
800 . a,b,d,e,gf3,ifv,ifunc3,dn,dx
801 ENDIF ! IF (IFAIL2 == 3)
802 ELSE
803 IF (ifail2 == 3) THEN
804 WRITE(iout,1843)'TORSION',xk,xc,ifunc,lscale,ifunc2,f,iecrou,
805 . a,b,d,e,gf3,ifv,ifunc3,dx
806 ELSEIF (ifail2 == 2) THEN
807 WRITE(iout,1842)'TORSION',xk,xc,ifunc,lscale,ifunc2,f,iecrou,
808 . a,b,d,e,gf3,ifv,ifunc3,dn,dx
809 ELSE
810 WRITE(iout,1840)'TORSION',xk,xc,ifunc,lscale,ifunc2,f,iecrou,
811 . a,b,d,e,gf3,ifv,ifunc3,dn,dx
812 ENDIF ! IF (IFAIL2 == 3)
813 ENDIF ! IF (IECROU /= 5)
814 ENDIF
815!-----------------
816 ! Rotation Y
817!-----------------
818C--------------------------------------------------
819C EXTRACT DATAS (INTEGER VALUES)
820C--------------------------------------------------
821 CALL hm_get_intv('FUN_A5',ifunc,is_available,lsubmodel)
822 CALL hm_get_intv('HFLAG5',iecrou,is_available,lsubmodel)
823 CALL hm_get_intv('FUN_B5',ifv,is_available,lsubmodel)
824 CALL hm_get_intv('FUN_C5',ifunc2,is_available,lsubmodel)
825 CALL hm_get_intv('FUN_D5',ifunc3,is_available,lsubmodel)
826C--------------------------------------------------
827C EXTRACT DATAS (REAL VALUES)
828C--------------------------------------------------
829 CALL hm_get_floatv('STIFF5',xk,is_available,lsubmodel,unitab)
830 CALL hm_get_floatv('DAMP5',xc,is_available,lsubmodel,unitab)
831 CALL hm_get_floatv('acoeft5',A,IS_AVAILABLE,LSUBMODEL,UNITAB)
832 CALL HM_GET_FLOATV('bcoeft5',B,IS_AVAILABLE,LSUBMODEL,UNITAB)
833 CALL HM_GET_FLOATV('dcoeft5',D,IS_AVAILABLE,LSUBMODEL,UNITAB)
834 CALL HM_GET_FLOATV('min_rup5',DN,IS_AVAILABLE,LSUBMODEL,UNITAB)
835 CALL HM_GET_FLOATV('max_rup5',DX,IS_AVAILABLE,LSUBMODEL,UNITAB)
836 CALL HM_GET_FLOATV('prop_flxy_f',F,IS_AVAILABLE,LSUBMODEL,UNITAB)
837 CALL HM_GET_FLOATV('prop_flxy_e',E,IS_AVAILABLE,LSUBMODEL,UNITAB)
838 CALL HM_GET_FLOATV('scale5',LSCALE,IS_AVAILABLE,LSUBMODEL,UNITAB)
839 CALL HM_GET_FLOATV('prop_flxy_h',GF3,IS_AVAILABLE,LSUBMODEL,UNITAB)
840 CALL HM_GET_FLOATV_DIM('min_rup5',CRIT_SCALE(5),IS_AVAILABLE,LSUBMODEL,UNITAB)
841C
842C----
843.AND..AND.! IF (IFUNC /= 0 IECROU >= 1 XK == ZERO) THEN
844! CALL ANCMSG(MSGID=230,
845! . MSGTYPE=MSGERROR,
846! . ANMODE=ANINFO_BLIND_1,
847! . I1=IG,
848! . C1=IDTITL)
849! ENDIF
850.AND..OR. IF (IECROU == 4 (IFUNC == 0 IFUNC2 == 0)) THEN
851 CALL ANCMSG(MSGID=231,
852 . MSGTYPE=MSGERROR,
853 . ANMODE=ANINFO_BLIND_1,
854 . I1=IG,
855 . C1=IDTITL)
856 ENDIF
857.AND. IF (IECROU == 4 GEO(2) == ZERO) THEN
858 CALL ANCMSG(MSGID=230,
859 . MSGTYPE=MSGERROR,
860 . ANMODE=ANINFO_BLIND_1,
861 . I1=IG,
862 . C1=IDTITL)
863 ENDIF
864.AND..OR. IF (IECROU == 5 (IFUNC == 0 IFUNC2 == 0)) THEN
865 CALL ANCMSG(MSGID=231,
866 . MSGTYPE=MSGERROR,
867 . ANMODE=ANINFO_BLIND_1,
868 . I1=IG,
869 . C1=IDTITL)
870 ENDIF
871.AND..OR. IF (IECROU == 6 (IFUNC == 0 IFUNC2 == 0)) THEN
872 CALL ANCMSG(MSGID=1057,
873 . MSGTYPE=MSGERROR,
874 . ANMODE=ANINFO_BLIND_1,
875 . I1=IG,
876 . C1=IDTITL)
877 ENDIF
878.AND. IF (IECROU == 7 IFUNC == 0) THEN
879 CALL ANCMSG(MSGID=1058,
880 . MSGTYPE=MSGERROR,
881 . ANMODE=ANINFO_BLIND_1,
882 . I1=IG,
883 . C1=IDTITL)
884.AND. ELSEIF (IECROU == 7 IFUNC2 == 0) THEN
885 CALL ANCMSG(MSGID=1059,
886 . MSGTYPE=MSGWARNING,
887 . ANMODE=ANINFO_BLIND_1,
888 . I1=IG,
889 . C1=IDTITL,
890 . I2=IECROU)
891 IECROU = 2
892 ENDIF
893.AND..AND. IF (IFUNC == 0 A /= ZERO A /= ONE) THEN
894 CALL ANCMSG(MSGID=663,
895 . MSGTYPE=MSGWARNING,
896 . ANMODE=ANINFO_BLIND_1,
897 . I1=IG,
898 . C1=IDTITL)
899 ENDIF
900C----
901 IF (A == ZERO) A = ONE * A_UNIT
902 IF (D == ZERO) D = ONE * D_UNIT
903 IF (E == ZERO) E = ONE * E_UNIT
904 IF (F == ZERO) F = ONE * F_UNIT
905 IF (LSCALE == ZERO) LSCALE = ONE * LSCALE_UNIT
906 IF (GF3 == ZERO) GF3 = ONE * GF3_UNIT
907 IF (IFUNC == 0) THEN
908 A = ONE
909 B = ZERO
910 E = ZERO
911 ENDIF
912C
913.OR. IF ((IFAIL2 == 0)(IFAIL2 ==1)) THEN
914 DN = DN * LSCALE / CRIT_SCALE(5)
915 DX = DX * LSCALE / CRIT_SCALE(5)
916 ENDIF
917 IF (DN == ZERO) DN=-EP30* CRIT_SCALE(5)
918 IF (DX == ZERO) DX= EP30* CRIT_SCALE(5)
919.OR. IF ((IFAIL2 == 0)(IFAIL2 ==1)) CRIT_SCALE(5) = LSCALE / CRIT_SCALE(5)
920C----
921 GEO(57) = A
922 GEO(58) = B
923 GEO(59) = D
924 GEO(183) = E
925 GEO(136) = GF3
926 GEO(60) = ONE / F
927 GEO(177) = ONE / LSCALE
928 GEO(73) = DN
929 GEO(74) = DX
930 GEO(23) = XK / A
931 GEO(24) = XC
932 GEO(26) = IECROU+PUN
933C-- If H=6 - additional internal variables must be stored in UVAR - - GEO(25) = NUVAR
934 IF (IECROU == 6) THEN
935 GEO(25) = 6
936 ENDIF
937C
938 IGEO(113) = IFUNC
939 IGEO(114) = IFV
940 IGEO(115) = IFUNC2
941 IGEO(123) = IFUNC3
942C----
943.NOT. IF ( IS_ENCRYPTED) THEN
944 IF (IECROU /= 5) THEN
945 IF (IFAIL2 == 3) THEN
946 WRITE(IOUT,1833)'y flexion',XK,XC,IFUNC,LSCALE,IFUNC2,F,
947 . IECROU,A,B,D,E,GF3,IFV,IFUNC3,DX
948 ELSEIF (IFAIL2 == 2) THEN
949 WRITE(IOUT,1832)'y flexion',XK,XC,IFUNC,LSCALE,IFUNC2,F,
950 . IECROU,A,B,D,E,GF3,IFV,IFUNC3,DN,DX
951 ELSE
952 WRITE(IOUT,1830)'y flexion',XK,XC,IFUNC,LSCALE,IFUNC2,F,
953 . IECROU,A,B,D,E,GF3,IFV,IFUNC3,DN,DX
954 ENDIF ! IF (IFAIL2 == 3)
955 ELSE
956 IF (IFAIL2 == 3) THEN
957 WRITE(IOUT,1843)'y flexion',XK,XC,IFUNC,LSCALE,IFUNC2,F,
958 . IECROU,A,B,D,E,GF3,IFV,IFUNC3,DX
959 ELSEIF (IFAIL2 == 2) THEN
960 WRITE(IOUT,1842)'y flexion',XK,XC,IFUNC,LSCALE,IFUNC2,F,
961 . IECROU,A,B,D,E,GF3,IFV,IFUNC3,DN,DX
962 ELSE
963 WRITE(IOUT,1840)'y flexion',xk,xc,ifunc,lscale,ifunc2,f,
964 . iecrou,a,b,d,e,gf3,ifv,ifunc3,dn,dx
965 ENDIF ! IF (IFAIL2 == 3)
966 ENDIF ! IF (IECROU /= 5)
967 ENDIF
968!-----------------
969 ! Rotation Z
970!-----------------
971C--------------------------------------------------
972C EXTRACT DATAS (INTEGER VALUES)
973C--------------------------------------------------
974 CALL hm_get_intv('FUN_A6',ifunc,is_available,lsubmodel)
975 CALL hm_get_intv('HFLAG6',iecrou,is_available,lsubmodel)
976 CALL hm_get_intv('FUN_B6',ifv,is_available,lsubmodel)
977 CALL hm_get_intv('FUN_C6',ifunc2,is_available,lsubmodel)
978 CALL hm_get_intv('FUN_D6',ifunc3,is_available,lsubmodel)
979C--------------------------------------------------
980C EXTRACT DATAS (REAL VALUES)
981C--------------------------------------------------
982 CALL hm_get_floatv('STIFF6',xk,is_available,lsubmodel,unitab)
983 CALL hm_get_floatv('DAMP6',xc,is_available,lsubmodel,unitab)
984 CALL hm_get_floatv('Acoeft6',a,is_available,lsubmodel,unitab)
985 CALL hm_get_floatv('Bcoeft6',b,is_available,lsubmodel,unitab)
986 CALL hm_get_floatv('Dcoeft6',d,is_available,lsubmodel,unitab)
987 CALL hm_get_floatv('MIN_RUP6',dn,is_available,lsubmodel,unitab)
988 CALL hm_get_floatv('MAX_RUP6',dx,is_available,lsubmodel,unitab)
989 CALL hm_get_floatv('Prop_FlxZ_F',f,is_available,lsubmodel,unitab)
990 CALL hm_get_floatv('Prop_FlxZ_E',e,is_available,lsubmodel,unitab)
991 CALL hm_get_floatv('scale6',lscale,is_available,lsubmodel,unitab)
992 CALL hm_get_floatv('Prop_FlxZ_H',gf3,is_available,lsubmodel,unitab)
993 CALL hm_get_floatv_dim('MIN_RUP6',crit_scale(6),is_available,lsubmodel,unitab)
994C
995C----
996! IF (IFUNC /= 0 .AND. IECROU >= 1 .AND. XK == ZERO) THEN
997! CALL ANCMSG(MSGID=230,
998! . MSGTYPE=MSGERROR,
999! . ANMODE=ANINFO_BLIND_1,
1000! . I1=IG,
1001! . C1=IDTITL)
1002! ENDIF
1003 IF (iecrou == 4 .AND. (ifunc == 0 .OR. ifunc2 == 0)) THEN
1004 CALL ancmsg(msgid=231,
1005 . msgtype=msgerror,
1006 . anmode=aninfo_blind_1,
1007 . i1=ig,
1008 . c1=idtitl)
1009 ENDIF
1010 IF (iecrou == 4 .AND. geo(2) == zero) THEN
1011 CALL ancmsg(msgid=230,
1012 . msgtype=msgerror,
1013 . anmode=aninfo_blind_1,
1014 . i1=ig,
1015 . c1=idtitl)
1016 ENDIF
1017 IF (iecrou == 5 .AND. (ifunc == 0 .OR. ifunc2 == 0)) THEN
1018 CALL ancmsg(msgid=231,
1019 . msgtype=msgerror,
1020 . anmode=aninfo_blind_1,
1021 . i1=ig,
1022 . c1=idtitl)
1023 ENDIF
1024 IF (iecrou == 6 .AND. (ifunc == 0 .OR. ifunc2 == 0)) THEN
1025 CALL ancmsg(msgid=1057,
1026 . msgtype=msgerror,
1027 . anmode=aninfo_blind_1,
1028 . i1=ig,
1029 . c1=idtitl)
1030 ENDIF
1031 IF (iecrou == 7 .AND. ifunc == 0) THEN
1032 CALL ancmsg(msgid=1058,
1033 . msgtype=msgerror,
1034 . anmode=aninfo_blind_1,
1035 . i1=ig,
1036 . c1=idtitl)
1037 ELSEIF (iecrou == 7 .AND. ifunc2 == 0) THEN
1038 CALL ancmsg(msgid=1059,
1039 . msgtype=msgwarning,
1040 . anmode=aninfo_blind_1,
1041 . i1=ig,
1042 . c1=idtitl,
1043 . i2=iecrou)
1044 iecrou = 2
1045 ENDIF
1046 IF (ifunc == 0 .AND. a /= zero .AND. a /= one) THEN
1047 CALL ancmsg(msgid=663,
1048 . msgtype=msgwarning,
1049 . anmode=aninfo_blind_1,
1050 . i1=ig,
1051 . c1=idtitl)
1052 ENDIF
1053C----
1054 IF (a == zero) a = one * a_unit
1055 IF (d == zero) d = one * d_unit
1056 IF (e == zero) e = one * e_unit
1057 IF (f == zero) f = one * f_unit
1058 IF (lscale == zero) lscale = one * lscale_unit
1059 IF (gf3 == zero) gf3 = one * gf3_unit
1060 IF (ifunc == 0) THEN
1061 a = one
1062 b = zero
1063 e = zero
1064 ENDIF
1065C
1066 IF ((ifail2 == 0).OR.(ifail2 ==1)) THEN
1067 dn = dn * lscale / crit_scale(6)
1068 dx = dx * lscale / crit_scale(6)
1069 ENDIF
1070 IF (dn == zero) dn=-ep30* crit_scale(6)
1071 IF (dx == zero) dx= ep30* crit_scale(6)
1072 IF ((ifail2 == 0).OR.(ifail2 ==1)) crit_scale(6) = lscale / crit_scale(6)
1073C----
1074 geo(61) = a
1075 geo(62) = b
1076 geo(63) = d
1077 geo(184) = e
1078 geo(137) = gf3
1079 geo(64) = one / f
1080 geo(178) = one / lscale
1081 geo(75) = dn
1082 geo(76) = dx
1083 geo(27) = xk / a
1084 geo(28) = xc
1085 geo(30) = iecrou+pun
1086C-- If H=6 - additional internal variables must be stored in UVAR - - GEO(25) = NUVAR
1087 IF (iecrou == 6) THEN
1088 geo(25) = 6
1089 ENDIF
1090C
1091 igeo(116) = ifunc
1092 igeo(117) = ifv
1093 igeo(118) = ifunc2
1094 igeo(124) = ifunc3
1095C----
1096 IF (.NOT. is_encrypted) THEN
1097 IF (iecrou /= 5) THEN
1098 IF (ifail2 == 3) THEN
1099 WRITE(iout,1833)'Z FLEXION',xk,xc,ifunc,lscale,ifunc2,f,
1100 . iecrou,a,b,d,e,gf3,ifv,ifunc3,dx
1101 ELSEIF (ifail2 == 2) THEN
1102 WRITE(iout,1832)'Z FLEXION',xk,xc,ifunc,lscale,ifunc2,f,
1103 . iecrou,a,b,d,e,gf3,ifv,ifunc3,dn,dx
1104 ELSE
1105 WRITE(iout,1830)'Z FLEXION',xk,xc,ifunc,lscale,ifunc2,f,
1106 . iecrou,a,b,d,e,gf3,ifv,ifunc3,dn,dx
1107 ENDIF ! IF (IFAIL2 == 3)
1108 ELSE
1109 IF (ifail2 == 3) THEN
1110 WRITE(iout,1843)'Z FLEXION',xk,xc,ifunc,lscale,ifunc2,f,
1111 . iecrou,a,b,d,e,gf3,ifv,ifunc3,dx
1112 ELSEIF (ifail2 == 2) THEN
1113 WRITE(iout,1842)'Z FLEXION',xk,xc,ifunc,lscale,ifunc2,f,
1114 . iecrou,a,b,d,e,gf3,ifv,ifunc3,dn,dx
1115 ELSE
1116 WRITE(iout,1840)'Z FLEXION',xk,xc,ifunc,lscale,ifunc2,f,
1117 . iecrou,a,b,d,e,gf3,ifv,ifunc3,dn,dx
1118 ENDIF ! IF (IFAIL2 == 3)
1119 ENDIF ! IF (IECROU /= 5)
1120 ENDIF
1121!-------------------------------------------------------
1122c--- New uni/multiaxial failure criteria
1123!-------------------------------------------------------
1124C--------------------------------------------------
1125C EXTRACT DATAS (INTEGER VALUES)
1126C--------------------------------------------------
1127 CALL hm_get_intv('israte',ISRATE,IS_AVAILABLE,LSUBMODEL)
1128C--------------------------------------------------
1129C EXTRACT DATAS (REAL VALUES)
1130C--------------------------------------------------
1131 CALL HM_GET_FLOATV('trans_vel0',VT0,IS_AVAILABLE,LSUBMODEL,UNITAB)
1132 CALL HM_GET_FLOATV('rot_vel0',VR0,IS_AVAILABLE,LSUBMODEL,UNITAB)
1133 CALL HM_GET_FLOATV('asrate',ASRATE,IS_AVAILABLE,LSUBMODEL,UNITAB)
1134 CALL HM_GET_FLOATV('c1',CC(1),IS_AVAILABLE,LSUBMODEL,UNITAB)
1135 CALL HM_GET_FLOATV('rel_vel_exp1',CN(1),IS_AVAILABLE,LSUBMODEL,UNITAB)
1136 CALL HM_GET_FLOATV('alpha1',XA(1),IS_AVAILABLE,LSUBMODEL,UNITAB)
1137 CALL HM_GET_FLOATV('beta1',XB(1),IS_AVAILABLE,LSUBMODEL,UNITAB)
1138 CALL HM_GET_FLOATV('c2',CC(2),IS_AVAILABLE,LSUBMODEL,UNITAB)
1139 CALL HM_GET_FLOATV('rel_vel_exp2',CN(2),IS_AVAILABLE,LSUBMODEL,UNITAB)
1140 CALL HM_GET_FLOATV('alpha2',XA(2),IS_AVAILABLE,LSUBMODEL,UNITAB)
1141 CALL HM_GET_FLOATV('beta2',XB(2),IS_AVAILABLE,LSUBMODEL,UNITAB)
1142 CALL HM_GET_FLOATV('c3',CC(3),IS_AVAILABLE,LSUBMODEL,UNITAB)
1143 CALL HM_GET_FLOATV('rel_vel_exp3',CN(3),IS_AVAILABLE,LSUBMODEL,UNITAB)
1144 CALL HM_GET_FLOATV('alpha3',XA(3),IS_AVAILABLE,LSUBMODEL,UNITAB)
1145 CALL HM_GET_FLOATV('beta3',XB(3),IS_AVAILABLE,LSUBMODEL,UNITAB)
1146 CALL HM_GET_FLOATV('c4',CC(4),IS_AVAILABLE,LSUBMODEL,UNITAB)
1147 CALL HM_GET_FLOATV('rel_vel_exp4',CN(4),IS_AVAILABLE,LSUBMODEL,UNITAB)
1148 CALL HM_GET_FLOATV('alpha4',XA(4),IS_AVAILABLE,LSUBMODEL,UNITAB)
1149 CALL HM_GET_FLOATV('beta4',XB(4),IS_AVAILABLE,LSUBMODEL,UNITAB)
1150 CALL HM_GET_FLOATV('c5',CC(5),IS_AVAILABLE,LSUBMODEL,UNITAB)
1151 CALL HM_GET_FLOATV('rel_vel_exp5',CN(5),IS_AVAILABLE,LSUBMODEL,UNITAB)
1152 CALL HM_GET_FLOATV('alpha5',XA(5),IS_AVAILABLE,LSUBMODEL,UNITAB)
1153 CALL HM_GET_FLOATV('beta5',XB(5),IS_AVAILABLE,LSUBMODEL,UNITAB)
1154 CALL HM_GET_FLOATV('c6',CC(6),IS_AVAILABLE,LSUBMODEL,UNITAB)
1155 CALL HM_GET_FLOATV('rel_vel_exp6',CN(6),IS_AVAILABLE,LSUBMODEL,UNITAB)
1156 CALL HM_GET_FLOATV('alpha6',XA(6),IS_AVAILABLE,LSUBMODEL,UNITAB)
1157 CALL HM_GET_FLOATV('beta6',XB(6),IS_AVAILABLE,LSUBMODEL,UNITAB)
1158 !units for default values
1159 CALL HM_GET_FLOATV_DIM('trans_vel0',VT0_UNIT,IS_AVAILABLE, LSUBMODEL, UNITAB)
1160 CALL HM_GET_FLOATV_DIM('rot_vel0',VR0_UNIT,IS_AVAILABLE, LSUBMODEL, UNITAB)
1161 CALL HM_GET_FLOATV_DIM('asrate',ASR_UNIT,IS_AVAILABLE, LSUBMODEL, UNITAB)
1162C----
1163 IF (ASRATE == ZERO) ASRATE=EP30*ASR_UNIT
1164 IF (VT0 == ZERO) VT0 = ONE * VT0_UNIT
1165 IF (VR0 == ZERO) VR0 = ONE * VR0_UNIT
1166C
1167 DO J = 1,6
1168 IF (CN(J) == ZERO) CN(J) = ONE
1169 IF (XA(J) == ZERO) XA(J) = ONE
1170 IF (XB(J) == ZERO) XB(J) = TWO
1171 ENDDO
1172C----
1173.OR. IF ((IFAIL2 == 0)(IFAIL2 == 1)) THEN
1174 DO J = 1,6
1175 CC(J) = CC(J) * CRIT_SCALE(J)
1176 ENDDO
1177 ENDIF
1178C----
1179 GEO(101) = VT0
1180 GEO(102) = VR0
1181 GEO(103) = CC(1)
1182 GEO(104) = CC(2)
1183 GEO(105) = CC(3)
1184 GEO(106) = CC(4)
1185 GEO(107) = CC(5)
1186 GEO(108) = CC(6)
1187 GEO(109) = CN(1)
1188 GEO(110) = CN(2)
1189 GEO(111) = CN(3)
1190 GEO(112) = CN(4)
1191 GEO(113) = CN(5)
1192 GEO(114) = CN(6)
1193 GEO(115) = XA(1)
1194 GEO(116) = XA(2)
1195 GEO(117) = XA(3)
1196 GEO(118) = XA(4)
1197 GEO(119) = XA(5)
1198 GEO(120) = XA(6)
1199 GEO(121) = XB(1)
1200 GEO(122) = XB(2)
1201 GEO(123) = XB(3)
1202 GEO(124) = XB(4)
1203 GEO(125) = XB(5)
1204 GEO(126) = XB(6)
1205 GEO(127) = ISRATE
1206 GEO(128) = ASRATE
1207C
1208.NOT. IF ( IS_ENCRYPTED) THEN
1209 WRITE(IOUT,1850) VT0,VR0,
1210 . (CC(J),J=1,6),(CN(J),J=1,6),(XA(J),J=1,6),(XB(J),J=1,6)
1211 WRITE(IOUT,1900) ISRATE,ASRATE
1212 ENDIF
1213C
1214 PROP_TAG(IGTYP)%G_EINT = 1
1215 PROP_TAG(IGTYP)%G_FOR = 3
1216 PROP_TAG(IGTYP)%G_MOM = 3
1217 PROP_TAG(IGTYP)%G_LENGTH = 3
1218 PROP_TAG(IGTYP)%G_TOTDEPL = 3
1219 PROP_TAG(IGTYP)%G_TOTROT = 3
1220 PROP_TAG(IGTYP)%G_FOREP = 3
1221 PROP_TAG(IGTYP)%G_MOMEP = 3
1222 PROP_TAG(IGTYP)%G_DEP_IN_TENS = 3
1223 PROP_TAG(IGTYP)%G_DEP_IN_COMP = 3
1224 PROP_TAG(IGTYP)%G_ROT_IN_TENS = 3
1225 PROP_TAG(IGTYP)%G_ROT_IN_COMP = 3
1226 PROP_TAG(IGTYP)%G_POSX = 5
1227 PROP_TAG(IGTYP)%G_POSY = 5
1228 PROP_TAG(IGTYP)%G_POSZ = 5
1229 PROP_TAG(IGTYP)%G_POSXX = 5
1230 PROP_TAG(IGTYP)%G_POSYY = 5
1231 PROP_TAG(IGTYP)%G_POSZZ = 5
1232 PROP_TAG(IGTYP)%G_YIELD = 6
1233 PROP_TAG(IGTYP)%G_LENGTH_ERR = 3
1234 PROP_TAG(IGTYP)%G_SKEW = 3
1235 PROP_TAG(IGTYP)%G_SKEW_ERR = 3
1236 PROP_TAG(IGTYP)%G_E6 = 6
1237 PROP_TAG(IGTYP)%G_RUPTCRIT = 1
1238 PROP_TAG(IGTYP)%G_NUVAR = MAX(PROP_TAG(IGTYP)%G_NUVAR,NINT(GEO(25))) ! additional internal variables for h=6
1239 PROP_TAG(IGTYP)%G_DEFINI = 6
1240 PROP_TAG(IGTYP)%G_FORINI = 6
1241C
1242C------------------------
1243 RETURN
1244c-----------
1245 1810 FORMAT(
1246 & 5X,A,/,
1247 & 5X,'spring stiffness. . . . . . . . . . . .=',1PG20.13/,
1248 & 5X,'spring damping. . . . . . . . . . . . .=',1PG20.13/,
1249 & 5X,'FUNCTION identifier for loading ',/,
1250 & 5X,'force-displacement curve. . . . . . . .=',I10/,
1251 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1252 & 5X,'function identifier for unloading ',/,
1253 & 5X,'force-displacement curve (H=4,5,7). . .=',I10/,
1254 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1255 & 5X,'hardening flag h. . . . . . . . . . . .=',I10/,
1256 & 5X,'0:elastic 1:isotropic 2:uncoupled',/,
1257 & 5X,'4:kinematic 5:uncoupled nl (UN/RE)loading',/,
1258 & 5X,'6:elasto plastic with hardening 7: elastic hysteresis',/,
1259 & 5X,'dynamic amplification factor a. . . . .=',1PG20.13/,
1260 & 5X,'dynamic amplification factor b. . . . .=',1PG20.13/,
1261 & 5X,'dynamic amplification factor d. . . . .=',1PG20.13/,
1262 & 5X,'dynamic amplification factor e. . . . .=',1PG20.13/,
1263 & 5X,'dynamic amplification factor gf3 . . .=',1PG20.13/,
1264 & 5X,'function identifier for ',/,
1265 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1266 & 5X,'function identifier for the additional ',/,
1267 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1268 & 5X,'negative failure displacement . . . . .=',1PG20.13/,
1269 & 5X,'positive failure displacement . . . . .=',1PG20.13/)
1270 1820 FORMAT(
1271 & 5X,A,/,
1272 & 5X,'spring stiffness. . . . . . . . . . . .=',1PG20.13/,
1273 & 5X,'spring damping. . . . . . . . . . . . .=',1PG20.13/,
1274 & 5X,'function identifier for loading ',/,
1275 & 5X,'force-displacement curve. . . . . . . .=',I10/,
1276 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1277 & 5X,'permanent displ./max. displ. curve(H=5)=',I10/,
1278 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1279 & 5X,'hardening flag h. . . . . . . . . . . .=',I10/,
1280 & 5X,'0:elastic 1:isotropic 2:uncoupled',/,
1281 & 5X,'4:kinematic 5:uncoupled nl (UN/RE)loading',/,
1282 & 5X,'6:elasto plastic with hardening 7: elastic hysteresis',/,
1283 & 5X,'dynamic amplification factor a. . . . .=',1PG20.13/,
1284 & 5X,'dynamic amplification factor b. . . . .=',1PG20.13/,
1285 & 5X,'dynamic amplification factor d. . . . .=',1PG20.13/,
1286 & 5X,'dynamic amplification factor e. . . . .=',1PG20.13/,
1287 & 5X,'dynamic amplification factor gf3 . . .=',1PG20.13/,
1288 & 5X,'function identifier for ',/,
1289 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1290 & 5X,'function identifier for the additional ',/,
1291 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1292 & 5X,'negative failure displacement . . . . .=',1PG20.13/,
1293 & 5X,'positive failure displacement . . . . .=',1PG20.13/)
1294 1830 FORMAT(
1295 & 5X,A,/,
1296 & 5X,'spring stiffness. . . . . . . . . . . .=',1PG20.13/,
1297 & 5X,'spring damping. . . . . . . . . . . . .=',1PG20.13/,
1298 & 5X,'function identifier for loading ',/,
1299 & 5X,'moment-rotation curve . . . . . . . . .=',I10/,
1300 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1301 & 5X,'function identifier for unloading ',/,
1302 & 5X,'moment-rotation curve (H=4,5,7). . . . =',I10/,
1303 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1304 & 5X,'hardening flag h. . . . . . . . . . . .=',I10/,
1305 & 5X,'0:elastic 1:isotropic 2:uncoupled',/,
1306 & 5X,'4:kinematic 5:uncoupled nl (UN/RE)loading',/,
1307 & 5X,'6:elasto plastic with hardening 7: elastic hysteresis',/,
1308 & 5X,'dynamic amplification factor a. . . . .=',1PG20.13/,
1309 & 5X,'dynamic amplification factor b. . . . .=',1PG20.13/,
1310 & 5X,'dynamic amplification factor d. . . . .=',1PG20.13/,
1311 & 5X,'dynamic amplification factor e. . . . .=',1PG20.13/,
1312 & 5X,'dynamic amplification factor gf3 . . .=',1PG20.13/,
1313 & 5X,'function identifier for ',/,
1314 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1315 & 5X,'function identifier for the additional ',/,
1316 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1317 & 5X,'negative failure rotation . . . . . . .=',1PG20.13/,
1318 & 5X,'positive failure rotation . . . . . . .=',1PG20.13/)
1319 1840 FORMAT(
1320 & 5X,A,/,
1321 & 5X,'spring stiffness. . . . . . . . . . . .=',1PG20.13/,
1322 & 5X,'spring damping. . . . . . . . . . . . .=',1PG20.13/,
1323 & 5X,'function identifier for loading ',/,
1324 & 5X,'moment/rotation curve . . . . . . . . .=',I10/,
1325 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1326 & 5X,'permanent rot./max. rot. curve (H=5). .=',I10/,
1327 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1328 & 5X,'hardening flag h. . . . . . . . . . . .=',I10/,
1329 & 5X,'0:elastic 1:isotropic 2:uncoupled',/,
1330 & 5X,'4:kinematic 5:uncoupled nl (UN/RE)loading',/,
1331 & 5X,'6:elasto plastic with hardening 7: elastic hysteresis',/,
1332 & 5X,'dynamic amplification factor a. . . . .=',1PG20.13/,
1333 & 5X,'dynamic amplification factor b. . . . .=',1PG20.13/,
1334 & 5X,'dynamic amplification factor d. . . . .=',1PG20.13/,
1335 & 5X,'dynamic amplification factor e. . . . .=',1PG20.13/,
1336 & 5X,'dynamic amplification factor gf3 . . .=',1PG20.13/,
1337 & 5X,'function identifier for ',/,
1338 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1339 & 5X,'function identifier for the additional ',/,
1340 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1341 & 5X,'negative failure rotation . . . . . . .=',1PG20.13/,
1342 & 5X,'positive failure rotation . . . . . . .=',1PG20.13/)
1343 1801 FORMAT(
1344 & 5X,'spring property set (BEAM TYPE)'/,
1345 & 5X,'property set number . . . . . . . . . .=',I10/,
1346 & 5X,'spring mass . . . . . . . . . . . . . .=',1PG20.13/,
1347 & 5X,'spring inertia. . . . . . . . . . . . .=',1PG20.13/,
1348 & 5X,'skew frame number (0:GLOBAL). . . . . .=',I10/,
1349 & 5X,'sensor number (0:NOT USED). . . . . . .=',I10/,
1350 & 5X,'sensor flag (0:ACTIV 1:DEACT 2:BOTH). .=',I10/,
1351 & 5X,'failure flag (0:UNCOUPLED 1:COUPLED). .=',I10/,
1352 & 5X,'failure criterion (DISPL/FORCE/ENERGY).=',I10/,
1353 & 5X,' 1:displacement 2:force 3:energy ' ,/,
1354 & 5X,'unit length flag. . . . . . . . . . . .=',I10/,
1355 & 5X,'if=1 unit length mass,stiffness and input',/,
1356 & 5X,' curve are strain depending',/)
1357 1812 FORMAT(
1358 & 5X,A,/,
1359 & 5X,'spring stiffness. . . . . . . . . . . .=',1PG20.13/,
1360 & 5X,'spring damping. . . . . . . . . . . . .=',1PG20.13/,
1361 & 5X,'function identifier for loading ',/,
1362 & 5X,'moment/rotation curve. . . . . . . . . =',I10/,
1363 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1364 & 5X,'function identifier for unloading ',/,
1365 & 5X,'moment/rotation curve (H=4,5,7). . . . =',I10/,
1366 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1367 & 5X,'hardening flag h. . . . . . . . . . . .=',I10/,
1368 & 5X,'0:elastic 1:isotropic 2:uncoupled',/,
1369 & 5X,'4:kinematic 5:uncoupled nl (UN/RE)loading',/,
1370 & 5X,'6:elasto plastic with hardening 7: elastic hysteresis',/,
1371 & 5X,'dynamic amplification factor a. . . . .=',1PG20.13/,
1372 & 5X,'dynamic amplification factor b. . . . .=',1PG20.13/,
1373 & 5X,'dynamic amplification factor d. . . . .=',1PG20.13/,
1374 & 5X,'dynamic amplification factor e. . . . .=',1PG20.13/,
1375 & 5X,'dynamic amplification factor gf3 . . .=',1PG20.13/,
1376 & 5X,'function identifier for ',/,
1377 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1378 & 5X,'function identifier for the additional ',/,
1379 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1380 & 5X,'negative failure force. . . . . . . . .=',1PG20.13/,
1381 & 5X,'positive failure force. . . . . . . . .=',1PG20.13/)
1382 1813 FORMAT(
1383 & 5X,A,/,
1384 & 5X,'spring stiffness. . . . . . . . . . . .=',1PG20.13/,
1385 & 5X,'spring damping. . . . . . . . . . . . .=',1PG20.13/,
1386 & 5X,'function identifier for loading ',/,
1387 & 5X,'moment/rotation curve . . . . . . . . .=',I10/,
1388 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1389 & 5X,'function identifier for unloading ',/,
1390 & 5X,'moment/rotation curve (H=4,5,7). . .=',I10/,
1391 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1392 & 5X,'hardening flag h. . . . . . . . . . . .=',I10/,
1393 & 5X,'0:elastic 1:isotropic 2:uncoupled',/,
1394 & 5X,'4:kinematic 5:uncoupled nl (UN/RE)loading',/,
1395 & 5X,'6:elasto plastic with hardening 7: elastic hysteresis',/,
1396 & 5X,'dynamic amplification factor a. . . . .=',1PG20.13/,
1397 & 5X,'dynamic amplification factor b. . . . .=',1PG20.13/,
1398 & 5X,'dynamic amplification factor d. . . . .=',1PG20.13/,
1399 & 5X,'dynamic amplification factor e. . . . .=',1PG20.13/,
1400 & 5X,'dynamic amplification factor gf3 . . .=',1PG20.13/,
1401 & 5X,'function identifier for ',/,
1402 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1403 & 5X,'function identifier for the additional ',/,
1404 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1405 & 5X,'failure energy. . . . . . . . . . . . .=',1PG20.13/)
1406 1822 FORMAT(
1407 & 5X,A,/,
1408 & 5X,'spring stiffness. . . . . . . . . . . .=',1PG20.13/,
1409 & 5X,'spring damping. . . . . . . . . . . . .=',1PG20.13/,
1410 & 5X,'function identifier for loading ',/,
1411 & 5X,'force-displacement curve. . . . . . . .=',I10/,
1412 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1413 & 5X,'permanent displ./max. displ. curve(H=5)=',I10/,
1414 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1415 & 5X,'hardening flag h. . . . . . . . . . . .=',I10/,
1416 & 5X,'0:elastic 1:isotropic 2:uncoupled',/,
1417 & 5X,'4:kinematic 5:uncoupled nl (UN/RE)loading',/,
1418 & 5X,'6:elasto plastic with hardening 7: elastic hysteresis',/,
1419 & 5X,'dynamic amplification factor a. . . . .=',1PG20.13/,
1420 & 5X,'dynamic amplification factor b. . . . .=',1PG20.13/,
1421 & 5X,'dynamic amplification factor d. . . . .=',1PG20.13/,
1422 & 5X,'dynamic amplification factor e. . . . .=',1PG20.13/,
1423 & 5X,'dynamic amplification factor gf3 . . .=',1PG20.13/,
1424 & 5X,'function identifier for ',/,
1425 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1426 & 5X,'function identifier for the additional ',/,
1427 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1428 & 5X,'negative failure force. . . . . . . . .=',1PG20.13/,
1429 & 5X,'positive failure force. . . . . . . . .=',1PG20.13/)
1430 1823 FORMAT(
1431 & 5X,A,/,
1432 & 5X,'spring stiffness. . . . . . . . . . . .=',1PG20.13/,
1433 & 5X,'spring damping. . . . . . . . . . . . .=',1PG20.13/,
1434 & 5X,'function identifier for loading ',/,
1435 & 5X,'force-displacement curve. . . . . . . .=',I10/,
1436 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1437 & 5X,'permanent displ./max. displ. curve(H=5)=',I10/,
1438 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1439 & 5X,'hardening flag h. . . . . . . . . . . .=',I10/,
1440 & 5X,'0:elastic 1:isotropic 2:uncoupled',/,
1441 & 5X,'4:kinematic 5:uncoupled nl (UN/RE)loading',/,
1442 & 5X,'6:elasto plastic with hardening 7: elastic hysteresis',/,
1443 & 5X,'dynamic amplification factor a. . . . .=',1PG20.13/,
1444 & 5X,'dynamic amplification factor b. . . . .=',1PG20.13/,
1445 & 5X,'dynamic amplification factor d. . . . .=',1PG20.13/,
1446 & 5X,'dynamic amplification factor e. . . . .=',1PG20.13/,
1447 & 5X,'dynamic amplification factor gf3 . . .=',1PG20.13/,
1448 & 5X,'function identifier for ',/,
1449 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1450 & 5X,'function identifier for the additional ',/,
1451 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1452 & 5X,'failure energy. . . . . . . . . . . . .=',1PG20.13/)
1453 1832 FORMAT(
1454 & 5X,A,/,
1455 & 5X,'spring stiffness. . . . . . . . . . . .=',1PG20.13/,
1456 & 5X,'spring damping. . . . . . . . . . . . .=',1PG20.13/,
1457 & 5X,'function identifier for loading ',/,
1458 & 5X,'moment-rotation curve . . . . . . . . .=',I10/,
1459 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1460 & 5X,'function identifier for unloading ',/,
1461 & 5X,'moment-rotation curve (H=4,5,7). . . . =',I10/,
1462 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1463 & 5X,'hardening flag h. . . . . . . . . . . .=',I10/,
1464 & 5X,'0:elastic 1:isotropic 2:uncoupled',/,
1465 & 5X,'4:kinematic 5:uncoupled nl (UN/RE)loading',/,
1466 & 5X,'6:elasto plastic with hardening 7: elastic hysteresis',/,
1467 & 5X,'dynamic amplification factor a. . . . .=',1PG20.13/,
1468 & 5X,'dynamic amplification factor b. . . . .=',1PG20.13/,
1469 & 5X,'dynamic amplification factor d. . . . .=',1PG20.13/,
1470 & 5X,'dynamic amplification factor e. . . . .=',1PG20.13/,
1471 & 5X,'dynamic amplification factor gf3 . . .=',1PG20.13/,
1472 & 5X,'function identifier for ',/,
1473 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1474 & 5X,'function identifier for the additional ',/,
1475 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1476 & 5X,'negative failure moment . . . . . . . .=',1PG20.13/,
1477 & 5X,'positive failure moment . . . . . . . .=',1PG20.13/)
1478 1833 FORMAT(
1479 & 5X,A,/,
1480 & 5X,'spring stiffness. . . . . . . . . . . .=',1PG20.13/,
1481 & 5X,'spring damping. . . . . . . . . . . . .=',1PG20.13/,
1482 & 5X,'function identifier for loading ',/,
1483 & 5X,'moment-rotation curve . . . . . . . . .=',I10/,
1484 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1485 & 5X,'function identifier for unloading ',/,
1486 & 5X,'moment-rotation curve (H=4,5,7). . . . =',I10/,
1487 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1488 & 5X,'hardening flag h. . . . . . . . . . . .=',I10/,
1489 & 5X,'0:elastic 1:isotropic 2:uncoupled',/,
1490 & 5X,'4:kinematic 5:uncoupled nl (UN/RE)loading',/,
1491 & 5X,'6:elasto plastic with hardening 7: elastic hysteresis',/,
1492 & 5X,'dynamic amplification factor a. . . . .=',1PG20.13/,
1493 & 5X,'dynamic amplification factor b. . . . .=',1PG20.13/,
1494 & 5X,'dynamic amplification factor d. . . . .=',1PG20.13/,
1495 & 5X,'dynamic amplification factor e. . . . .=',1PG20.13/,
1496 & 5X,'dynamic amplification factor gf3 . . .=',1PG20.13/,
1497 & 5X,'function identifier for ',/,
1498 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1499 & 5X,'function identifier for the additional ',/,
1500 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1501 & 5X,'failure energy. . . . . . . . . . . . .=',1PG20.13/)
1502 1842 FORMAT(
1503 & 5X,A,/,
1504 & 5X,'spring stiffness. . . . . . . . . . . .=',1PG20.13/,
1505 & 5X,'spring damping. . . . . . . . . . . . .=',1PG20.13/,
1506 & 5X,'function identifier for loading ',/,
1507 & 5X,'moment-rotation curve . . . . . . . . .=',I10/,
1508 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1509 & 5X,'permanent rot./max. rot. curve (H=5). .=',I10/,
1510 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1511 & 5X,'hardening flag h. . . . . . . . . . . .=',I10/,
1512 & 5X,'0:elastic 1:isotropic 2:uncoupled',/,
1513 & 5X,'4:kinematic 5:uncoupled nl (UN/RE)loading',/,
1514 & 5X,'6:elasto plastic with hardening 7: elastic hysteresis',/,
1515 & 5X,'dynamic amplification factor a. . . . .=',1PG20.13/,
1516 & 5X,'dynamic amplification factor b. . . . .=',1PG20.13/,
1517 & 5X,'dynamic amplification factor d. . . . .=',1PG20.13/,
1518 & 5X,'dynamic amplification factor e. . . . .=',1PG20.13/,
1519 & 5X,'dynamic amplification factor gf3 . . .=',1PG20.13/,
1520 & 5X,'function identifier for ',/,
1521 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1522 & 5X,'function identifier for the additional ',/,
1523 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1524 & 5X,'negative failure moment . . . . . . . .=',1PG20.13/,
1525 & 5X,'positive failure moment . . . . . . . .=',1PG20.13/)
1526 1843 FORMAT(
1527 & 5X,A,/,
1528 & 5X,'spring stiffness. . . . . . . . . . . .=',1PG20.13/,
1529 & 5X,'spring damping. . . . . . . . . . . . .=',1PG20.13/,
1530 & 5X,'function identifier for loading ',/,
1531 & 5X,'moment-rotation curve . . . . . . . . .=',I10/,
1532 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1533 & 5X,'permanent rot./max. rot. curve (H=5). .=',I10/,
1534 & 5X,'abscissa scale factor on curve . . . . =',1PG20.13/,
1535 & 5X,'hardening flag h. . . . . . . . . . . .=',I10/,
1536 & 5X,'0:elastic 1:isotropic 2:uncoupled',/,
1537 & 5X,'4:kinematic 5:uncoupled nl (UN/RE)loading',/,
1538 & 5X,'6:elasto plastic with hardening 7: elastic hysteresis',/,
1539 & 5X,'dynamic amplification factor a. . . . .=',1PG20.13/,
1540 & 5X,'dynamic amplification factor b. . . . .=',1PG20.13/,
1541 & 5X,'dynamic amplification factor d. . . . .=',1PG20.13/,
1542 & 5X,'dynamic amplification factor e. . . . .=',1PG20.13/,
1543 & 5X,'dynamic amplification factor gf3 . . .=',1PG20.13/,
1544 & 5X,'function identifier for ',/,
1545 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1546 & 5X,'function identifier for the additional ',/,
1547 & 5X,'force-velocity curve. . . . . . . . . .=',I10/,
1548 & 5X,'failure energy. . . . . . . . . . . . .=',1PG20.13/)
1549 1850 FORMAT(
1550 & 5X,'transl. ref. deformation velocity . . .=',1PG20.13/,
1551 & 5X,'rot. ref. deformation velocity. . . . .=',1PG20.13/,
1552 & 5X,'c1 coefficient. . . . . . . . . . . . .=',1PG20.13/,
1553 & 5X,'c2 coefficient. . . . . . . . . . . . .=',1PG20.13/,
1554 & 5X,'c3 coefficient. . . . . . . . . . . . .=',1PG20.13/,
1555 & 5X,'c4 coefficient. . . . . . . . . . . . .=',1PG20.13/,
1556 & 5X,'c5 coefficient. . . . . . . . . . . . .=',1PG20.13/,
1557 & 5X,'c6 coefficient. . . . . . . . . . . . .=',1PG20.13/,
1558 & 5X,'n1 exponent . . . . . . . . . . . . . .=',1PG20.13/,
1559 & 5X,'n2 exponent . . . . . . . . . . . . . .=',1PG20.13/,
1560 & 5X,'n3 exponent . . . . . . . . . . . . . .=',1PG20.13/,
1561 & 5X,'n4 exponent . . . . . . . . . . . . . .=',1PG20.13/,
1562 & 5X,'n5 exponent . . . . . . . . . . . . . .=',1PG20.13/,
1563 & 5X,'n6 exponent . . . . . . . . . . . . . .=',1PG20.13/,
1564 & 5X,'a1 coefficient. . . . . . . . . . . . .=',1PG20.13/,
1565 & 5X,'a2 coefficient. . . . . . . . . . . . .=',1PG20.13/,
1566 & 5X,'a3 coefficient. . . . . . . . . . . . .=',1PG20.13/,
1567 & 5X,'a4 coefficient. . . . . . . . . . . . .=',1PG20.13/,
1568 & 5X,'a5 coefficient. . . . . . . . . . . . .=',1PG20.13/,
1569 & 5X,'a6 coefficient. . . . . . . . . . . . .=',1PG20.13/,
1570 & 5X,'b1 exponent . . . . . . . . . . . . . .=',1PG20.13/,
1571 & 5X,'b2 exponent . . . . . . . . . . . . . .=',1PG20.13/,
1572 & 5X,'b3 exponent . . . . . . . . . . . . . .=',1PG20.13/,
1573 & 5X,'b4 exponent . . . . . . . . . . . . . .=',1PG20.13/,
1574 & 5X,'b5 exponent . . . . . . . . . . . . . .=',1PG20.13/,
1575 & 5X,'b6 exponent . . . . . . . . . . . . . .=',1PG20.13/)
1576 1900 FORMAT(
1577 & 5X,'smooth strain rate option . . .. . . . =',I10/,
1578 & 5X,'strain rate cutting frequency .. . . . =',1PG20.13/)
1579c-----------
1580 RETURN
1581 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
if(complex_arithmetic) id
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_prop13(geo, igeo, ig, unitab, iskn, idtitl, igtyp, prop_tag, lsubmodel, sub_index)
#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:895
character *2 function nl()
Definition message.F:2360
program starter
Definition starter.F:39
subroutine velocity(a, ar, v, vr, fzero, itab, nale)
Definition velocity.F:29