40 . UNITAB ,PM ,LSUBMODEL,ISRATE ,MAT_ID ,
41 . TITR ,IFUNC ,MAXFUNC ,MTAG ,MATPARAM )
54#include "implicit_f.inc"
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
73 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
78 INTEGER J, IFUNC1, IFUNC2,IFUNC3, IECROU, IFUNC4, IG,
79 . IFAIL,IFAIL2,FLGCHK,ILAW,IEQUIL,
80 . i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12,i13,i14,
81 . if1,if2,if3,if4,siz_array_comp
84 . a, b, d, e, f, xk, xc, dn, dx, fwv, lscale,
85 . pun, asrate,gf3 ,rho0,a_unit,e_unit,d_unit,
86 . l_unit,gf_unit,f_unit
87 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
89 is_encrypted = .false.
90 is_available = .false.
105 WRITE(iout,1100) trim(titr),mat_id,ilaw
106 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
115 CALL hm_get_intv (
'Ifail' ,ifail ,is_available, lsubmodel)
116 CALL hm_get_intv (
'Iequil' ,iequil ,is_available, lsubmodel)
117 CALL hm_get_intv (
'Ifail2' ,ifail2 ,is_available, lsubmodel)
122 IF (ifail2 /= 1 .AND. ifail2 /= 2 .AND. ifail2 /= 3) ifail2 = 0
131 IF (is_encrypted)
THEN
132 WRITE(iout,1000)mat_id
133 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
135 WRITE(iout,1700)ifail,ifail2,iequil
144 CALL hm_get_floatv(
'STIFF1' ,xk ,is_available, lsubmodel, unitab)
145 CALL hm_get_floatv(
'DAMP1' ,xc ,is_available, lsubmodel, unitab)
146 CALL hm_get_floatv(
'Acoeft1' ,a ,is_available, lsubmodel, unitab)
147 CALL hm_get_floatv(
'Bcoeft1' ,b ,is_available, lsubmodel, unitab)
148 CALL hm_get_floatv(
'Dcoeft1' ,d ,is_available, lsubmodel, unitab)
149 CALL hm_get_intv (
'FUN_A1' ,ifunc1 ,is_available, lsubmodel)
150 CALL hm_get_intv (
'HFLAG1' ,iecrou ,is_available, lsubmodel)
151 CALL hm_get_intv (
'FUN_B1' ,ifunc2 ,is_available, lsubmodel)
152 CALL hm_get_intv (
'FUN_C1' ,ifunc3 ,is_available, lsubmodel)
153 CALL hm_get_intv (
'FUN_D1' ,ifunc4 ,is_available, lsubmodel)
154 CALL hm_get_floatv(
'MIN_RUP1' ,dn ,is_available, lsubmodel, unitab)
155 CALL hm_get_floatv(
'MAX_RUP1' ,dx ,is_available, lsubmodel, unitab)
156 CALL hm_get_floatv(
'Prop_X_F' ,f ,is_available, lsubmodel, unitab)
157 CALL hm_get_floatv(
'Prop_X_E' ,e ,is_available, lsubmodel, unitab)
158 CALL hm_get_floatv(
'scale1' ,lscale ,is_available, lsubmodel, unitab)
159 CALL hm_get_floatv(
'ffac' ,gf3 ,is_available, lsubmodel, unitab)
160 IF (iecrou == 4 .AND. (ifunc1 == 0 .OR. ifunc3 == 0))
THEN
163 . anmode=aninfo_blind_1,
168 IF (iecrou == 4 )
THEN
171 . anmode=aninfo_blind_1,
175 IF (iecrou == 5. and. (ifunc1 == 0 .OR. ifunc3 == 0))
THEN
178 . anmode=aninfo_blind_1,
182 IF (((iecrou==6).OR.(iecrou==9)) .AND. (ifunc1 == 0 .OR. ifunc3 == 0))
THEN
185 . anmode=aninfo_blind_1,
189 IF (iecrou == 7 .AND. ifunc1 == 0)
THEN
192 . anmode=aninfo_blind_1,
195 ELSEIF (iecrou == 7 .AND. ifunc3 == 0)
THEN
197 . msgtype=msgwarning,
198 . anmode=aninfo_blind_1,
204 IF (ifunc1 == 0 .AND. a /= zero .AND. a /= one)
THEN
206 . msgtype=msgwarning,
207 . anmode=aninfo_blind_1,
213 IF (dn == zero) dn=-infinity
214 IF (dx == zero) dx= infinity
231 IF (lscale == zero)
THEN
235 IF (gf3 == zero)
THEN
239 IF (ifunc1 == 0)
THEN
266 uparam(i6 + 1) = one / f
267 uparam(i7 + 1) = one / lscale
270 uparam(i10 + 1) = zero
273 uparam(i13 + 1) = iecrou+pun
279 IF ((iecrou==6).OR.(iecrou==9))
THEN
282 IF (iecrou==9) siz_array_comp = 6
290 ifunc(if2 + 1) = ifunc2
291 ifunc(if3 + 1) = ifunc3
292 ifunc(if4 + 1) = ifunc4
295 IF (is_encrypted)
THEN
298 IF (iecrou /= 5)
THEN
299 WRITE(iout,1810)
'X',xk,xc,ifunc1,lscale,ifunc3,f,iecrou,
300 . a,b,d,e,gf3,ifunc2,ifunc4,dn,dx
302 WRITE(iout,1820)
'X',xk,xc,ifunc1,lscale,ifunc3,f,iecrou,
303 . a,b,d,e,gf3,ifunc2,ifunc4,dn,dx
311 CALL hm_get_floatv(
'STIFF2' ,xk ,is_available, lsubmodel, unitab)
312 CALL hm_get_floatv(
'DAMP2' ,xc ,is_available, lsubmodel, unitab)
313 CALL hm_get_floatv(
'Acoeft2' ,a ,is_available, lsubmodel, unitab)
314 CALL hm_get_floatv(
'Bcoeft2' ,b ,is_available, lsubmodel, unitab)
315 CALL hm_get_floatv(
'Dcoeft2' ,d ,is_available, lsubmodel, unitab)
316 CALL hm_get_intv (
'FUN_A2' ,ifunc1 ,is_available, lsubmodel)
317 CALL hm_get_intv (
'HFLAG2' ,iecrou ,is_available, lsubmodel)
318 CALL hm_get_intv (
'FUN_B2' ,ifunc2 ,is_available, lsubmodel)
319 CALL hm_get_intv (
'FUN_C2' ,ifunc3 ,is_available, lsubmodel)
320 CALL hm_get_intv (
'FUN_D2' ,ifunc4 ,is_available, lsubmodel)
321 CALL hm_get_floatv(
'MIN_RUP2' ,dn ,is_available, lsubmodel, unitab)
322 CALL hm_get_floatv(
'MAX_RUP2' ,dx ,is_available, lsubmodel, unitab)
323 CALL hm_get_floatv(
'Prop_Y_F' ,f ,is_available, lsubmodel, unitab)
324 CALL hm_get_floatv(
'Prop_Y_E' ,e ,is_available, lsubmodel, unitab)
325 CALL hm_get_floatv(
'scale2' ,lscale ,is_available, lsubmodel, unitab)
326 CALL hm_get_floatv(
'df' ,gf3 ,is_available, lsubmodel, unitab)
328 IF (iecrou == 4 .AND. (ifunc1 == 0 .OR. ifunc3 == 0))
THEN
331 . anmode=aninfo_blind_1,
336 IF (iecrou == 4 )
THEN
339 . anmode=aninfo_blind_1,
343 IF (iecrou == 5 .AND. (ifunc1 == 0 .OR. ifunc3 == 0))
THEN
346 . anmode=aninfo_blind_1,
350 IF (((iecrou==6).OR.(iecrou==9)) .AND. (ifunc1 == 0 .OR. ifunc3 == 0))
THEN
353 . anmode=aninfo_blind_1,
357 IF (iecrou == 7 .AND. ifunc1 == 0)
THEN
360 . anmode=aninfo_blind_1,
363 ELSEIF (iecrou == 7 .AND. ifunc3 == 0)
THEN
365 . msgtype=msgwarning,
366 . anmode=aninfo_blind_1,
372 IF (ifunc1 == 0 .AND. a /= zero .AND. a /= one)
THEN
375 . anmode=aninfo_blind_1,
380 IF (dn == zero) dn =-infinity
381 IF (dx == zero) dx = infinity
398 IF (lscale == zero)
THEN
402 IF (gf3 == zero)
THEN
406 IF (ifunc1 == 0)
THEN
417 uparam(i6 + 2) = one / f
418 uparam(i7 + 2) = one / lscale
421 uparam(i10 + 2) = zero
424 uparam(i13 + 2) = iecrou+pun
429 IF ((iecrou==6).OR.(iecrou==9))
THEN
432 IF (iecrou==9) siz_array_comp = 6
435 ifunc(if2 + 2) = ifunc2
436 ifunc(if3 + 2) = ifunc3
437 ifunc(if4 + 2) = ifunc4
440 IF (is_encrypted)
THEN
443 IF (iecrou /= 5)
THEN
444 WRITE(iout,1810)
'Y ',xk,xc,ifunc1,lscale,ifunc3,f,iecrou,
445 . a,b,d,e,gf3,ifunc2,ifunc4,dn,dx
447 WRITE(iout,1820)
'Y SHEAR',xk,xc,ifunc1,lscale,ifunc3,f,iecrou,
448 . a,b,d,e,gf3,ifunc2,ifunc4,dn,dx
456 CALL hm_get_floatv(
'STIFF3' ,xk ,is_available, lsubmodel, unitab)
457 CALL hm_get_floatv(
'DAMP3' ,xc ,is_available, lsubmodel, unitab)
458 CALL hm_get_floatv(
'Acoeft3' ,a ,is_available, lsubmodel, unitab)
459 CALL hm_get_floatv(
'Bcoeft3' ,b ,is_available, lsubmodel, unitab)
460 CALL hm_get_floatv(
'Dcoeft3' ,d ,is_available, lsubmodel, unitab
461 CALL hm_get_intv (
'FUN_A3' ,ifunc1 ,is_available, lsubmodel)
462 CALL hm_get_intv (
'HFLAG3' ,iecrou ,is_available, lsubmodel)
464 CALL hm_get_intv (
'FUN_C3' ,ifunc3 ,is_available, lsubmodel)
467 CALL hm_get_floatv'MAX_RUP3' ,dx ,is_available, lsubmodel, unitab)
468 CALL hm_get_floatv(
'Prop_Z_F' ,f ,is_available, lsubmodel, unitab)
469 CALL hm_get_floatv(
'Prop_Z_E' ,e ,is_available, lsubmodel, unitab)
470 CALL hm_get_floatv(
'scale3' ,lscale ,is_available, lsubmodel, unitab)
471 CALL hm_get_floatv(
'D2' ,gf3 ,is_available, lsubmodel, unitab)
473 IF (iecrou == 4 .AND. (ifunc1 == 0 .OR. ifunc3 == 0))
THEN
476 . anmode=aninfo_blind_1,
481 IF (iecrou == 4 )
THEN
484 . anmode=aninfo_blind_1,
488 IF (iecrou == 5 .AND. (ifunc1 == 0 .OR. ifunc3 == 0))
THEN
491 . anmode=aninfo_blind_1,
495 IF (((iecrou==6).OR.(iecrou==9)) .AND. (ifunc1 == 0 .OR. ifunc3 == 0))
THEN
498 . anmode=aninfo_blind_1,
502 IF (iecrou == 7 .AND. ifunc1 == 0)
THEN
505 . anmode=aninfo_blind_1,
508 ELSEIF (iecrou == 7 .AND. ifunc3 == 0)
THEN
510 . msgtype=msgwarning,
511 . anmode=aninfo_blind_1,
517 IF (ifunc1 == 0 .AND. a /= zero .AND. a /= one)
THEN
519 . msgtype=msgwarning,
520 . anmode=aninfo_blind_1,
525 IF (dn == zero) dn =-infinity
526 IF (dx == zero) dx = infinity
543 IF (lscale == zero)
THEN
547 IF (gf3 == zero)
THEN
551 IF (ifunc1 == 0)
THEN
562 uparam(i6 + 3) = one / f
563 uparam(i7 + 3) = one / lscale
566 uparam(i10 + 3) = zero
569 uparam(i13 + 3) = iecrou+pun
574 IF ((iecrou==6).OR.(iecrou==9))
THEN
577 IF (iecrou==9) siz_array_comp = 6
580 ifunc(if2 + 3) = ifunc2
581 ifunc(if3 + 3) = ifunc3
582 ifunc(if4 + 3) = ifunc4
585 IF (is_encrypted)
THEN
588 IF (iecrou /= 5)
THEN
589 WRITE(iout,1810)
'Z ',xk,xc,ifunc1,lscale,ifunc3,f,iecrou,
590 . a,b,d,e,gf3,ifunc2,ifunc4,dn,dx
592 WRITE(iout,1820)
'Z ',xk,xc,ifunc1,lscale,ifunc3,f,iecrou,
593 . a,b,d,e,gf3,ifunc2,ifunc4,dn,dx
603 CALL hm_get_floatv(
'STIFF4' ,xk ,is_available, lsubmodel, unitab)
605 CALL hm_get_floatv(
'Acoeft4' ,a ,is_available, lsubmodel, unitab)
606 CALL hm_get_floatv(
'Bcoeft4' ,b ,is_available, lsubmodel, unitab)
607 CALL hm_get_floatv(
'Dcoeft4' ,d ,is_available, lsubmodel, unitab)
608 CALL hm_get_intv (
'FUN_A4' ,ifunc1 ,is_available, lsubmodel)
609 CALL hm_get_intv (
'HFLAG4' ,iecrou ,is_available, lsubmodel)
610 CALL hm_get_intv (
'FUN_B4' ,ifunc2 ,is_available, lsubmodel)
611 CALL hm_get_intv (
'FUN_C4' ,ifunc3 ,is_available, lsubmodel)
612 CALL hm_get_intv (
'FUN_D4' ,ifunc4 ,is_available, lsubmodel)
613 CALL hm_get_floatv(
'MIN_RUP4' ,dn ,is_available, lsubmodel, unitab)
614 CALL hm_get_floatv(
'MAX_RUP4' ,dx ,is_available, lsubmodel, unitab)
615 CALL hm_get_floatv(
'Prop_Tor_F',f ,is_available, lsubmodel, unitab)
616 CALL hm_get_floatv(
'Prop_Tor_E',e ,is_available, lsubmodel, unitab)
617 CALL hm_get_floatv(
'scale4' ,lscale ,is_available, lsubmodel, unitab)
618 CALL hm_get_floatv(
'Y0' ,gf3 ,is_available, lsubmodel, unitab)
620 IF (iecrou == 4 .AND. (ifunc1 == 0 .OR. ifunc3 == 0))
THEN
623 . anmode=aninfo_blind_1,
628 IF (iecrou == 4)
THEN
631 . anmode=aninfo_blind_1,
635 IF (iecrou == 5 .AND. (ifunc1 == 0 .OR. ifunc3 == 0))
THEN
638 . anmode=aninfo_blind_1,
642 IF (((iecrou==6).OR.(iecrou==9)) .AND. (ifunc1 == 0 .OR. ifunc3 == 0))
THEN
645 . anmode=aninfo_blind_1,
649 IF (iecrou == 7 .AND. ifunc1 == 0)
THEN
652 . anmode=aninfo_blind_1,
655 ELSEIF (iecrou == 7 .AND. ifunc3 == 0)
THEN
657 . msgtype=msgwarning,
658 . anmode=aninfo_blind_1,
664 IF (ifunc1 == 0 .AND. a /= zero .AND. a /= one)
THEN
666 . msgtype=msgwarning,
667 . anmode=aninfo_blind_1,
672 IF (dn == zero) dn =-infinity
673 IF (dx == zero) dx = infinity
690 IF (lscale == zero)
THEN
694 IF (gf3 == zero)
THEN
698 IF (ifunc1 == 0)
THEN
710 uparam(i6 + 4) = one / f
711 uparam(i7 + 4) = one / lscale
714 uparam(i10 + 4) = zero
717 uparam(i13 + 4) = iecrou+pun
719 IF ((iecrou==6).OR.(iecrou==9))
THEN
722 IF (iecrou==9) siz_array_comp = 6
725 ifunc(if2 + 4) = ifunc2
726 ifunc(if3 + 4) = ifunc3
727 ifunc(if4 + 4) = ifunc4
730 IF (is_encrypted)
THEN
733 IF (iecrou /= 5)
THEN
734 WRITE'X ROTATION',xk,xc,ifunc1,lscale
735 . a,b,d,e,gf3,ifunc2,ifunc4,dn,dx
737 WRITE(iout,1840)
'X ROTATION',xk,xc,ifunc1,lscale,ifunc3,f,iecrou,
738 . a,b,d,e,gf3,ifunc2,ifunc4,dn,dx
745 CALL hm_get_floatv(
'STIFF5' ,xk ,is_available, lsubmodel, unitab)
746 CALL hm_get_floatv(
'DAMP5' ,xc ,is_available, lsubmodel, unitab)
747 CALL hm_get_floatv(
'Acoeft5' ,a ,is_available, lsubmodel, unitab)
748 CALL hm_get_floatv(
'Bcoeft5' ,b ,is_available, lsubmodel, unitab)
749 CALL hm_get_floatv(
'Dcoeft5' ,d ,is_available, lsubmodel, unitab)
750 CALL hm_get_intv (
'FUN_A5' ,ifunc1 ,is_available, lsubmodel)
751 CALL hm_get_intv (
'HFLAG5' ,iecrou ,is_available, lsubmodel)
752 CALL hm_get_intv (
'FUN_B5' ,ifunc2 ,is_available, lsubmodel)
753 CALL hm_get_intv 'FUN_C5' ,ifunc3 ,is_available, lsubmodel)
755 CALL hm_get_floatv(
'MIN_RUP5' ,dn ,is_available, lsubmodel, unitab)
756 CALL hm_get_floatv(
'MAX_RUP5' ,dx ,is_available, lsubmodel, unitab)
757 CALL hm_get_floatv(
'Prop_FlxY_F',f ,is_available, lsubmodel, unitab)
758 CALL hm_get_floatv(
'Prop_FlxY_E',e ,is_available, lsubmodel, unitab)
759 CALL hm_get_floatv(
'scale5' ,lscale ,is_available, lsubmodel, unitab)
762 IF (iecrou == 4 .AND. (ifunc1 == 0 .OR. ifunc3 == 0))
THEN
765 . anmode=aninfo_blind_1,
770 IF (iecrou == 4 )
THEN
773 . anmode=aninfo_blind_1,
777 IF (iecrou == 5 .AND. (ifunc1 == 0 .OR. ifunc3 ==
THEN
780 . anmode=aninfo_blind_1,
784 IF (((iecrou==6).OR.(iecrou==9)) .AND. (ifunc1 == 0 .OR. ifunc3 == 0))
THEN
787 . anmode=aninfo_blind_1
791 IF (iecrou == 7 .AND. ifunc1 == 0)
THEN
794 . anmode=aninfo_blind_1,
797 ELSEIF (iecrou == 7 .AND. ifunc3 == 0)
THEN
799 . msgtype=msgwarning,
800 . anmode=aninfo_blind_1,
806 IF (ifunc1 == 0 .AND. a /= zero .AND. a /= one)
THEN
808 . msgtype=msgwarning,
809 . anmode=aninfo_blind_1,
814 IF (dn == zero) dn =-infinity
815 IF (dx == zero) dx = infinity
832 IF (lscale == zero)
THEN
836 IF (gf3 == zero)
THEN
840 IF (ifunc1 == 0)
THEN
851 uparam(i6 + 5) = one / f
852 uparam(i7 + 5) = one / lscale
855 uparam(i10 + 5) = zero
858 uparam(i13 + 5) = iecrou+pun
860 IF ((iecrou==6).OR.(iecrou==9))
THEN
863 IF (iecrou==9) siz_array_comp = 6
866 ifunc(if2 + 5) = ifunc2
867 ifunc(if3 + 5) = ifunc3
868 ifunc(if4 + 5) = ifunc4
871 IF (is_encrypted)
THEN
874 IF (iecrou /= 5)
THEN
875 WRITE(iout,1830)
'Y ROTATION ',xk,xc,ifunc1,lscale,ifunc3,f,
876 . iecrou,a,b,d,e,gf3,ifunc2,ifunc4,dn,dx
878 WRITE(iout,1840)
'Y ROTATION',xk,xc,ifunc1,lscale,ifunc3,f,
879 . iecrou,a,b,d,e,gf3,ifunc2,ifunc4,dn,dx
886 CALL hm_get_floatv('stiff6
' ,XK ,IS_AVAILABLE, LSUBMODEL, UNITAB)
887 CALL HM_GET_FLOATV('damp6
' ,XC ,IS_AVAILABLE, LSUBMODEL, UNITAB)
888 CALL HM_GET_FLOATV('acoeft6
' ,A ,IS_AVAILABLE, LSUBMODEL, UNITAB)
889 CALL HM_GET_FLOATV('bcoeft6
' ,B ,IS_AVAILABLE, LSUBMODEL, UNITAB)
890 CALL HM_GET_FLOATV('dcoeft6
' ,D ,IS_AVAILABLE, LSUBMODEL, UNITAB)
891 CALL HM_GET_INTV ('fun_a6
' ,IFUNC1 ,IS_AVAILABLE, LSUBMODEL)
892 CALL HM_GET_INTV ('hflag6
' ,IECROU ,IS_AVAILABLE, LSUBMODEL)
893 CALL HM_GET_INTV ('fun_b6
' ,IFUNC2 ,IS_AVAILABLE, LSUBMODEL)
894 CALL HM_GET_INTV ('fun_c6
' ,IFUNC3 ,IS_AVAILABLE, LSUBMODEL)
895 CALL HM_GET_INTV ('fun_d6
' ,IFUNC4 ,IS_AVAILABLE, LSUBMODEL)
896 CALL HM_GET_FLOATV('min_rup6
' ,DN ,IS_AVAILABLE, LSUBMODEL, UNITAB)
897 CALL HM_GET_FLOATV('max_rup6
' ,DX ,IS_AVAILABLE, LSUBMODEL, UNITAB)
898 CALL HM_GET_FLOATV('prop_flxz_f
',F ,IS_AVAILABLE, LSUBMODEL, UNITAB)
899 CALL HM_GET_FLOATV('prop_flxz_e
',E ,IS_AVAILABLE, LSUBMODEL, UNITAB)
900 CALL HM_GET_FLOATV('scale6
' ,LSCALE ,IS_AVAILABLE, LSUBMODEL, UNITAB)
901 CALL HM_GET_FLOATV('hscale6
' ,GF3 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
903.AND..OR.
IF (IECROU == 4 (IFUNC1 == 0 IFUNC3 == 0)) THEN
904 CALL ANCMSG(MSGID=231,
906 . ANMODE=ANINFO_BLIND_1,
910.AND.
!! IF (IECROU == 4 GEO(2) == ZERO) THEN
911 IF (IECROU == 4 ) THEN
912 CALL ANCMSG(MSGID=230,
914 . ANMODE=ANINFO_BLIND_1,
918.AND..OR.
IF (IECROU == 5 (IFUNC1 == 0 IFUNC3 == 0)) THEN
919 CALL ANCMSG(MSGID=231,
921 . ANMODE=ANINFO_BLIND_1,
925.OR..AND..OR.
IF (((IECROU==6)(IECROU==9)) (IFUNC1 == 0 IFUNC3 == 0)) THEN
926 CALL ANCMSG(MSGID=1057,
928 . ANMODE=ANINFO_BLIND_1,
932.AND.
IF (IECROU == 7 IFUNC1 == 0) THEN
933 CALL ANCMSG(MSGID=1058,
935 . ANMODE=ANINFO_BLIND_1,
938.AND.
ELSEIF (IECROU == 7 IFUNC3 == 0) THEN
939 CALL ANCMSG(MSGID=1059,
940 . MSGTYPE=MSGWARNING,
941 . ANMODE=ANINFO_BLIND_1,
947.AND..AND.
IF (IFUNC1 == 0 A /= ZERO A /= ONE) THEN
948 CALL ANCMSG(MSGID=663,
949 . MSGTYPE=MSGWARNING,
950 . ANMODE=ANINFO_BLIND_1,
955 IF (DN == ZERO) DN =-INFINITY
956 IF (DX == ZERO) DX = INFINITY
958 CALL HM_GET_FLOATV_DIM('acoeft6
' ,A_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
962 CALL HM_GET_FLOATV_DIM('dcoeft6
' ,D_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
966 CALL HM_GET_FLOATV_DIM('prop_flxz_e
',E_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
970 CALL HM_GET_FLOATV_DIM('prop_flxz_f
',F_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
973 IF (LSCALE == ZERO) THEN
974 CALL HM_GET_FLOATV_DIM('scale6
',L_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
977 IF (GF3 == ZERO) THEN
978 CALL HM_GET_FLOATV_DIM('hscale6
',GF_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
981 IF (IFUNC1 == 0) THEN
992 UPARAM(I6 + 6) = ONE / F
993 UPARAM(I7 + 6) = ONE / LSCALE
996 UPARAM(I10 + 6) = ZERO ! not used
999 UPARAM(I13 + 6) = IECROU+PUN
1001 NUPARAM = NUPARAM + 6*14
1003.OR.
IF ((IECROU==6)(IECROU==9)) THEN
1006 IF (IECROU==9) SIZ_ARRAY_COMP = 6
1009 IFUNC(IF2 + 6) = IFUNC2
1010 IFUNC(IF3 + 6) = IFUNC3
1011 IFUNC(IF4 + 6) = IFUNC4
1014 IF (IS_ENCRYPTED) THEN
1015 ! WRITE(IOUT,'(5x,a,//)
')'confidential data
'
1017 IF (IECROU /= 5) THEN
1018 WRITE(IOUT,1830)'z rotation
',XK,XC,IFUNC1,LSCALE,IFUNC3,F,
1019 . IECROU,A,B,D,E,GF3,IFUNC2,IFUNC4,DN,DX
1021 WRITE(IOUT,1840)'z rotation
',XK,XC,IFUNC1,LSCALE,IFUNC3,F,
1022 . IECROU,A,B,D,E,GF3,IFUNC2,IFUNC4,DN,DX
1023 ENDIF ! IF (IECROU /= 5)
1024 ENDIF ! IF (IS_ENCRYPTED)
1027!-------------------------------------------------------
1029!-------------------------------------------------------
1030 CALL HM_GET_FLOATV('asrate
' ,ASRATE ,IS_AVAILABLE, LSUBMODEL, UNITAB)
1031 CALL HM_GET_INTV ('israte
' ,ISRATE ,IS_AVAILABLE, LSUBMODEL)
1034 IF (ASRATE == ZERO) ASRATE = INFINITY
1037 IF (IS_ENCRYPTED) THEN
1038 ! WRITE(IOUT,'(5x,a,//)
')'confidential data
'
1040 WRITE(IOUT,1900) ISRATE,ASRATE
1045 UPARAM(NUPARAM + 1) = ISRATE
1046 UPARAM(NUPARAM + 2) = ASRATE
1047 NUPARAM = NUPARAM + 2
1050 NUPARAM = NUPARAM + 6
1054 MTAG%G_TOTDEPL = 3 ! DX (DY,DZ) - total deformation (translation)
1055 MTAG%G_TOTROT = 3 ! RX (RY,RZ) - total deformation (rotation)
1056 MTAG%G_DEP_IN_TENS = 3 ! DPX (DPY,DPZ) - max displacement in tension
1057 MTAG%G_DEP_IN_COMP = 3 ! DPX2 (DPY2,DPZ2) - max displacement in compression
1058 MTAG%G_ROT_IN_TENS = 3 ! RPX (RPY,RPZ) - max rotation in tension
1059 MTAG%G_ROT_IN_COMP = 3 ! RPX2 (RPY2,RPY2) - max rotation in compression
1068 MTAG%G_NUVAR = MAX(MTAG%G_NUVAR,NINT(UPARAM(4)))
1071 MTAG%G_YIELD_IN_COMP = SIZ_ARRAY_COMP ! Yield in compression - H=9
1072 MTAG%G_XXOLD_IN_COMP = SIZ_ARRAY_COMP ! Previous displacement in compression
1074 ! Properties compatibility
1075 CALL INIT_MAT_KEYWORD(MATPARAM,"SPRING_MATERIAL")
1083 & 5X,'spring material set
'/,
1084 & 5X,'-------------------
'/,
1085 & 5X,'material set number . . . . . . . . . .=
',I10/,
1086 & 5X,'confidential data
'//)
1089 & 5X,'material number. . . . . . . . . . . . =
',I10/,
1090 & 5X,'material law . . . . . . . . . . . . . =
',I10/)
1092 & 5X,'initial density . . . . . . . . . . . .=
',1PG20.13/)
1094 & 5X,'failure flag(0:uncoupled 1:coupled). .=
',I10/,
1095 & 5X,'failure2(0:displ,1:force
',I10/,
1096 & 5X,'equilibrium flag. . . . . . . . . . . .=
',I10/,
1097 & 5X,' 0: no equilibrium 1:force and moment equilibrium
' ,/)
1099 & 5X,A,' translation
'/,
1100 & 5X,'spring stiffness. . . . . . . . . . . .=
',1PG20.13/,
1101 & 5X,'spring
damping. . . . . . . . . . .
',1PG20.13/,
1102 & 5X,'FUNCTION identifier
for loading
',/,
1103 & 5X,'force-displacement curve. . . . . . . .=
',I10/,
1104 & 5X,'abscissa
',1PG20.13/,
1105 & 5X,'function identifier
for unloading
',/,
1106 & 5X,'force-displacement curve (H=4,5,7). . .=
',I10/,
1107 & 5X,'abscissa scale factor on curve . . . . =
',1PG20.13/,
1108 & 5X,'hardening flag h. . . . . . . . . . . .=
',I10/,
1109 & 5X,'0:elastic 1:isotropic 2:uncoupled
',/,
1110 & 5X,'4:kinematic 5:uncoupled
nl (UN/RE)loading
',/,
1111 & 5X,'6:elasto plastic with hardening 7: elastic hysteresis
',/,
1112 & 5X,'dynamic amplification factor a. . . . .=
',1PG20.13/,
1113 & 5X,'dynamic amplification factor b. . . . .=
',1PG20.13/,
1114 & 5X,'dynamic amplification factor d. . . . .=
',1PG20.13/,
1115 & 5X,'dynamic amplification factor e. . . . .=
',1PG20.13/,
1116 & 5X,'dynamic amplification factor gf3 . . .=
',1PG20.13/,
1117 & 5X,'function identifier
for ',/,
1118 & 5X,'force-velocity curve. . . . . . . . . .=
',I10/,
1119 & 5X,'function identifier
for the additional
',/,
1120 & 5X,'force-velocity curve. . . . . . . . . .=
',I10/,
1121 & 5X,'negative failure displacement . . . . .=
',1PG20.13/,
1122 & 5X,'positive failure displacement . . . . .=
',1PG20.13/)
1125 & 5X,'spring stiffness. . . . . . . . . . . .=
',1PG20.13/,
1126 & 5X,'spring
damping. . . . . . . . . . . . .=
',1PG20.13/,
1127 & 5X,'function identifier
for loading
',/,
1128 & 5X,'force-displacement curve. . . . . . . .=
',I10/,
1129 & 5X,'abscissa scale factor on curve . . . . =
',1PG20.13/,
1130 & 5X,'permanent displ./
max. displ. curve(H=5)=
',I10/,
1131 & 5X,'abscissa scale factor on curve . . . . =
',1PG20.13/,
1132 & 5X,'hardening flag h. . . . . . . . . . . .=
',I10/,
1133 & 5X,'0:elastic 1:isotropic 2:uncoupled
',/,
1134 & 5X,'4:kinematic 5:uncoupled
nl (UN/RE)loading
',/,
1135 & 5X,'6:elasto plastic with hardening 7: elastic hysteresis
',/,
1136 & 5X,'dynamic amplification factor a. . . . .=
',1PG20.13/,
1137 & 5X,'dynamic amplification factor
',1PG20.13/,
1138 & 5X,'dynamic amplification factor d. . . . .=
',1PG20.13/,
1139 & 5X,'dynamic amplification factor e. . . . .=
',1PG20.13/,
1140 & 5X,'dynamic amplification factor gf3 . . .=
',1PG20.13/,
1141 & 5X,'function identifier
for ',/,
1142 & 5X,'force-velocity curve. . . . . . . . . .=
',I10/,
1143 & 5X,'function identifier
for the additional
',/,
1144 & 5X,'force-velocity curve. . . . . . . . . .=
',I10/,
1145 & 5X,'negative failure displacement . . . . .=',1pg20.13/,
1146 & 5x,
'POSITIVE FAILURE DISPLACEMENT . . . . .=',1pg20.13/)
1149 & 5x,
'SPRING STIFFNESS. . . . . . . . . . . .=',1pg20.13/,
1150 & 5x,
'SPRING DAMPING. . . . . . . . . . . . .=',1pg20.13/,
1151 & 5x,
'FUNCTION IDENTIFIER FOR LOADING ',/,
1152 & 5x,
'MOMENT-ROTATION CURVE . . . . . . . . .=',i10/,
1153 & 5x,
'ABSCISSA SCALE FACTOR ON CURVE . . . . =',1pg20.13/,
1154 & 5x,
'FUNCTION IDENTIFIER FOR UNLOADING ',/,
1155 & 5x,
'MOMENT-ROTATION CURVE (H=4,5,7). . . . =',i10/,
1156 & 5x,'abscissa scale factor on curve . . . . =
',1PG20.13/,
1157 & 5X,'hardening flag h. . . . . . . . . . . .=
',I10/,
1158 & 5X,'0:elastic 1:isotropic 2:uncoupled
',/,
1159 & 5X,'4:kinematic 5:uncoupled
nl(un/re)loading
',/,
1160 & 5X,'6:elasto plastic with hardening 7: elastic hysteresis
',/,
1161 & 5X,'dynamic amplification factor a. . . . .=
',1PG20.13/,
1162 & 5X,'dynamic amplification factor b. . . . .=
',1PG20.13/,
1163 & 5X,'dynamic amplification factor d. . . . .=
',1PG20.13/,
1164 & 5X,'dynamic amplification factor e. . . . .=
',1PG20.13/,
1165 & 5X,'dynamic amplification factor gf3 . . .=
',1PG20.13/,
1166 & 5X,'FUNCTION identifier
for ',/,
1167 & 5X,'force-velocity curve. . . . . . . . . .=
',I10/,
1168 & 5X,'function identifier
for the additional
',/,
1169 & 5X,'force-velocity curve. . . . . . . . . .=
',I10/,
1170 & 5X,'negative failure rotation . . . . . . .=
',1PG20.13/,
1171 & 5X,'positive failure rotation . . . . . . .=
',1PG20.13/)
1174 & 5X,'spring stiffness. . . . . . . . . . . .=
',1PG20.13/,
1175 & 5X,'spring
damping. . . . . . . . . . . . .=
',1PG20.13/,
1176 & 5X,'function identifier
for loading
',/,
1177 & 5X,'moment/rotation curve . . . . . . . . .=
',I10/,
1178 & 5X,'abscissa scale factor on curve . . . . =
',1PG20.13/,
1179 & 5X,'permanent rot./
max. rot. curve (H=5). .=
',I10/,
1180 & 5X,'abscissa scale factor on curve . . . . =
',1PG20.13/,
1181 & 5X,'hardening flag h. . . . . . . . . . . .=
',I10/,
1182 & 5X,'0:elastic 1:isotropic 2:uncoupled
',/,
1183 & 5X,'4:kinematic 5:uncoupled
nl (UN/RE)loading
',/,
1184 & 5X,'6:elasto plastic with hardening 7: elastic hysteresis
',/,
1185 & 5X,'dynamic amplification factor a. . . . .=
',1PG20.13/,
1186 & 5X,'dynamic amplification factor b. . . . .=
',1PG20.13/,
1187 & 5X,'dynamic amplification factor d. . . . .=
',1PG20.13/,
1188 & 5X,'dynamic amplification factor e. . . . .=
',1PG20.13/,
1189 & 5X,'dynamic amplification factor gf3 . . .=
',1PG20.13/,
1190 & 5X,'function identifier
for ',/,
1191 & 5x,
'FORCE-VELOCITY CURVE. . . . . . . . . .=',i10/,
1192 & 5x,
'FUNCTION IDENTIFIER FOR THE ADDITIONAL ',/,
1193 & 5x,
'FORCE-VELOCITY CURVE. . . . . . . . . .=',i10/,
1194 & 5x,
'NEGATIVE FAILURE ROTATION . . . . . . .=',1pg20.13/,
1195 & 5x,
'POSITIVE FAILURE ROTATION . . . . . . .=',1pg20.13/)
1197 & 5x,
'SMOOTH STRAIN RATE OPTION . . .. . . . =',i10/,
1198 & 5x,
'STRAIN RATE CUTTING FREQUENCY .. . . . =',1pg20.13/)