34 SUBROUTINE law77_upd(TITR ,MAT_ID ,NUPARAM ,MAT_PARAM ,
35 . UPARAM ,NFUNC ,IFUNC ,NPC ,PLD )
46#include "implicit_f.inc"
50 INTEGER MAT_ID,NFUNC,NUPARAM
52 INTEGER ,
DIMENSION(NFUNC) :: IFUNC
56 CHARACTER(LEN=NCHARTITLE) :
57TYPE(matparam_struct_) :: MAT_PARAM
61 INTEGER :: I,J,K,II,JJ,NDIM,NLOAD,NULOAD,NPT,NEPSP
63 . npt_trac,npt_comp,npt_shear,nptmax,ifun_nup,ifx,ify,stat,
64 . len,ix0,iy0,iflag,iflag0,nf,itens,ichk,ic1,ic2,ibid
65 my_real :: xint,yint,emax,e0,epsmax,eps0,epst1,fac,deri,
66 . x0,y0,x1,y1,dx,dy,stiffmin,stiffmax,stiffini,stiffavg
67 INTEGER ,
DIMENSION(:) ,
ALLOCATABLE :: SIZE
68 my_real ,
DIMENSION(:) ,
ALLOCATABLE :: x_comp,y_comp
69 my_real ,
DIMENSION(NFUNC) :: rate,yfac
71 nload = int(uparam(7))
72 nuload = int(uparam(8))
75 emax = uparam(2*nfunc + 12)
76 itens = uparam(2*nfunc + 13)
79 rate(i) = uparam(i + 8)
80 yfac(i) = uparam(i + 8 + nfunc)
86 IF (emax == zero)
THEN
90 CALL func_slope(func_id,fac,npc,pld,stiffmin,stiffmax,stiffini,stiffavg)
91 uparam(2*nfunc + 12) = stiffmax
92 uparam(3) = (stiffmax - e0)/stiffmax
93 CALL ancmsg(msgid=1219,msgtype=msginfo,anmode=aninfo_blind_1,
108 IF (func_id > 0 )
THEN
117 dy = pld(jj+1) - pld(ii+1)
122 IF(x1 > zero .AND. ichk == 0 )
THEN
128 IF(emax <e0)emax = e0
131 IF ( deri >= emax .AND. x0 > zero)
THEN
132 eps0 =
min(eps0, x0 )
135 epst1 =
min(epst1,abs(eps0 - y0/emax))
145 uparam(3) = (emax - e0)/epst1
147 CALL ancmsg(msgid=864,msgtype=msginfo,anmode=aninfo_blind_1,
152 IF (iflag0 == 1)
THEN
154 uparam(3) = (emax - e0)/epst1
156 CALL ancmsg(msgid=865,msgtype=msgwarning,anmode=aninfo_blind_1,
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)