subroutine vsdvini( C Read only - * nblock, jElem, nIntPt, nLayer, nSectPt, * ndim, nstatev, cmname, coordMp, charLength, C Write only (modifiable) - * stateIni ) C include 'vaba_param.inc' C dimension charLength(nblock), coordMp(nblock,ndim), * stateIni(nblock,nstatev), jElem(nblock) C character*80 cmname C do 100 km = 1,nblock stateIni(km,1)=1.D0 stateIni(km,2)=2.D0 stateIni(km,3)=3.D0 stateIni(km,4)=4.D0 stateIni(km,5)=5.D0 stateIni(km,6)=6.D0 100 continue C return end C C User subroutine VUMAT subroutine vumat ( C Read only - * nblock, ndir, nshr, nstatev, nfieldv, nprops, lanneal, * stepTime, totalTime, dt, cmname, coordMp, charLength, * props, density, strainInc, relSpinInc, * tempOld, stretchOld, defgradOld, fieldOld, * stressOld, stateOld, enerInternOld, enerInelasOld, * tempNew, stretchNew, defgradNew, fieldNew, C Write only - * stressNew, stateNew, enerInternNew, enerInelasNew ) C include 'vaba_param.inc' C dimension coordMp(nblock,*), charLength(nblock), props(nprops), 1 density(nblock), strainInc(nblock,ndir+nshr), 2 relSpinInc(nblock,nshr), tempOld(nblock), 3 stretchOld(nblock,ndir+nshr), 4 defgradOld(nblock,ndir+nshr+nshr), 5 fieldOld(nblock,nfieldv), stressOld(nblock,ndir+nshr), 6 stateOld(nblock,nstatev), enerInternOld(nblock), 7 enerInelasOld(nblock), tempNew(nblock), 8 stretchNew(nblock,ndir+nshr), 9 defgradNew(nblock,ndir+nshr+nshr), 1 fieldNew(nblock,nfieldv), 2 stressNew(nblock,ndir+nshr), stateNew(nblock,nstatev), 3 enerInternNew(nblock), enerInelasNew(nblock) C character*80 cmname dimension intv(2) parameter ( zero = 0.d0, one = 1.d0, two = 2.d0, three = 3.d0, * third = one / three, half = 0.5d0, twothds = two / three, * op5 = 1.5d0 ) parameter ( tempFinal = 1.d2, timeFinal = 1.d-2 ) C e = props(1) xnu = props(2) * twomu = e / ( one + xnu ) xmu = twomu / two term1 = e / ( one - xnu*xnu) term2 = xnu / (one - xnu) do k = 1, nblock stressNew(k,1) = stressOld(k,1) * + term1 * (strainInc(k,1) + xnu * strainInc(k,2)) stressNew(k,2) = stressOld(k,2) * + term1 * (xnu *strainInc(k,1) + strainInc(k,2)) stressNew(k,3) = zero stressNew(k,4) = stressOld(k,4) + twomu * strainInc(k,4) C strainInc(k,3) = - term2 * (strainInc(k,1) + strainInc(k,2)) end do if (totalTime .ne. zero) then do k=1,nblock stateNew(k,1)=stateNew(k,1)+1.D0*totalTime stateNew(k,2)=stateNew(k,2)+2.D0*totalTime stateNew(k,3)=stateNew(k,3)+3.D0*totalTime stateNew(k,4)=stateNew(k,4)+4.D0*totalTime stateNew(k,5)=stateNew(k,5)+5.D0*totalTime stateNew(k,6)=stateNew(k,6)+6.D0*totalTime end do end if * return end