subroutine plotv(v,s,sp,etot,eplas,ecreep,tt,m,mm,layer,ndi, * nshear,jpltcd) c c CONTACT: ap@marc.de c c* * * * * * c c PURPOSE: Write the seperate stress terms of the c prony series expansion in a visco-elastic c analysis to the post file. c NOTE: The desired stress component and the c desired term in the series expansion are coded c in jpltcd as follows: each term of the series c expansion contains (ngenv=3+nshear) stress com- c ponents. The zero-term in the series expansion c denotes the short term behaviour. The 1st through c the nterm-th terms denote the time dependent terms c in the series expansion. When the k-th stress c component of the i-th expansion term is desired c then jpltcd should equal: i*ngenv+k. c This value of jpltcd with a negative sign should c be entered in the POST option of the MARC input. c Also note that when (ndi<3) that the stress array c s is reshuffled into array t, with the undefined c direct components set to zero. This is because c the individual terms in the series expansion do c not have to vanish in such a constrained stress c case, only their sum must vanish. c c OUTPUT: c v variable which is written to the post file c INPUT: c s (idss) stress array c sp stresses in preferred direction c etot total strain (generalized) c eplas total plastic strain c ecreep total creep strain c tt current temperature c m element number c mm integration point number c layer layer number c ndi number of direct stress components c nshear number of shear stress components c jpltcd absolute value of the post-code in the MARC input c c* * * * * * implicit real*8 (a-h,o-z) dp c dimension s(1),etot(1),eplas(1),ecreep(1),sp(1) c c... t contains reshuffled components of s. dimension t(6) c include '../common/space' include '../common/viscel' include '../common/lass' include '../common/heat' include '../common/nzro1' c c... ngenv = the number of stress components in each term c... of the series expansion. ngenv = 3 + nshear nterm = max(nvisdi,nvisvo) c c... when the k1-th stress component of the iterm-th term c... in the series expansion is desired then jpltcd must c... have the value: jpltcd == iterm*ngenv + k1. c... now iterm and k1 can be decoded from jpltcd. iterm = (jpltcd-1)/ngenv c if (iterm.gt.nterm) then c c... values of jpltcd outside the valid range are ignored. c... the valid range is: 1 <= jpltcd <= (nterm+1)*ngenv v = 0.0 else c c... compute some pointers into the data storage. c... n = internal element number taken from common/lass. c... nnx = integration point number taken from common/lass. c... kc = layer number taken from common/lass. lofr = (n-1)*nelstr lms = nnx-1 lms1 = (lms*neqst+kc-1)*nvite*ngenv if (iterm.eq.0) then c c... short term stress components in series expansion. c... reshuffle stress array s into array t. c... direct stress components. do i1=1,ndi t(i1) = s(i1) enddo do i1=ndi+1,3 t(i1) = 0.0d0 enddo c... shear stress components. do i1=1,nshear t(3+i1) = s(ndi+i1) enddo do i1=nshear+1,3 t(3+i1) = 0.0d0 enddo k1 = jpltcd v = t(k1) do jterm=1,nterm lms2 = ivistr+lofr+lms1+(jterm-1)*ngenv v = v - vars(lms2+k1-1) enddo else c c... time dependent stress components in series expansion. k1 = jpltcd - iterm*ngenv lms2 = ivistr+lofr+lms1+(iterm-1)*ngenv v = vars(lms2+k1-1) endif endif c return end