subroutine plotv(v,s,sp,etot,eplas,ecreep,t,mel,nip,layer, *ndj,nsh,jpltcd) c c CONTACT: ap@marc.de c c implicit real*8 (a-h,o-z) dp dimension s(1),etot(1),eplas(1),ecreep(1),sp(1),mel(1) dimension iflg(4) c include '../common/space' include '../common/elmcom' include '../common/nzro1' include '../common/arrays' include '../common/lass' include '../common/heat' include '../common/crinfo' c c* * * * * * c c Select a variable for post processing. c c PURPOSE c This version of plotv is used to determine a crack c indicator in a concrete cracking analysis. In each c element integration point it searches through all c layers and checks if there is at least one crack in c the layer. If so, it sets the crack indicator to one c else the crack indicator remains zero. c With this crack indicator one can obtain a quick view c of the locations in the structure that have developed c cracks. c 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 t current temperature c mel(1) user element number c mel(2) internal element number c nip integration point number c layer layer number c ndj (3) number of direct stress components c nsh (3) number of shear stress components c c OUTPUT c v variable for post processing c c USAGE c Use post code -10 in the marc input file or flag c user defined var # 10 with mentat together with c this subroutine. It is not necessary to specify c any layer with code -10 in the post input, because c this version of plotv loops over all layers. c c NOTE c Due to extrapolation the values displayed by mentat c can slightly exceed one or slightly drop below zero. c c* * * * * * c c... Input post code -10 flags the crack indicator. if (jpltcd.eq.10) then c... Get the number of layers for this element if (ishell.eq.0) then ktp = 1 else if(icomps.eq.0) then ktp=nseqst else ktp = ints(inlayr-1+matno) endif c c... Compute offset pointers loff = (n-1)*nelsto lms = nnx-1 c c... Compute crack indicator v = 0d0 do 10, kcx=1,ktp lms1 = lms*neqst + kcx-1 lcrflg = icrflg + loff + lms1 icrsta = ints(lcrflg) call packbi(icrsta,4,1,8,iflg,4,-1) if (iflg(1)+iflg(2)+iflg(3).ne.0) v = 1d0 c write(6,1000) mel(1),nip,kcx,(iflg(i1),i1=1,3),v 10 continue endif c 1000 format('plotv> el:',i5,2x,'ip:',i5,2x,'la:',i5,2x,'cr:',3i5,f10.3) c return end