34 SUBROUTINE law90_upd(IOUT,TITR,MAT_ID,UPARAM,IPM, FUNC_ID,NPC,PLD,PM,
45#include "implicit_f.inc"
53 CHARACTER(LEN=NCHARTITLE) :: TITR
54 INTEGER ,
INTENT(IN) :: NFUNCT
55 INTEGER MAT_ID,IOUT,ID_F1,ID_F2
56 INTEGER NPC(*), FUNC_ID(NFUNCT), IPM(NPROPMI)
58 . uparam(*),pld(*),pm(npropm)
61 INTEGER,
DIMENSION(:),
POINTER :: IFUNC
66 INTEGER IPRINT, LP,IndexDesign0
69 . stiff,stiffc,stifft, emax_curve, emin_curve,eini_curve,
70 . stiffmin,stiffmax,stiffini,stfavg,scalefac,e0,
71 . epsmax,ec_max,emax,g,c1,nu
73 COMMON /mincfprt/iprint, lp
74 COMMON /index_sqp/indexdesign0
77 ifunc => ipm(10+1:10+nfunc)
85 scalefac= uparam(10 + nfunc + j )
86 CALL func_slope(ifunc(j),scalefac,npc,pld,stiffmin,stiffmax,stiffini,stfavg)
87 emax_curve =
max(emax_curve, stiffmax )
88 emin_curve =
min(emin_curve, stiffmin)
89 eini_curve =
max(eini_curve, stiffini)
92 IF(e0 < eini_curve)
THEN
95 CALL ancmsg(msgid=865, msgtype=msgwarning, anmode=aninfo_blind_1,
100 IF(emax_curve <= e0)
THEN
103 emax =
min(emax_curve,hundred*e0 )
105 ec_max =
max(e0,emax)
106 uparam(11 + 2*nfunc) = emax
107 uparam(12 + 2*nfunc) = epsmax
109 c1 = e0/three/(one - two*nu)
110 g = half*e0/(one + nu)
117 WRITE(iout,1001) trim(titr),mat_id,90
118 WRITE(iout,1002) emax
119 WRITE(iout,1003) ec_max
123 & 5x,
' TABULATED NON LINEAR VISCO ELASTIC LAW',/,
124 & 5x,
' ----------------------------- --------',//)
127 & 5x,
'MATERIAL NUMBER . . . . . . . . . . . .=',i10/,
128 & 5x,
'MATERIAL LAW. . . . . . . . . . . . . .=',i10/)
130 & 5x,
'MAXIMUM YOUNG''S MODULUS. . . . . . . .=',1pg20.13/)
132 & 5x,
'YOUNG''S MODULUS FOR HG COMPUTE . . . .=',1pg20.13/)
subroutine func_slope(idn, fac, npc, pld, stiffmin, stiffmax, stiffini, stiffavg)
subroutine law90_upd(iout, titr, mat_id, uparam, ipm, func_id, npc, pld, pm, nfunct)
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)