subroutine plotv(v,s,sp,etot,eplas,ecreep,t,m,nn,layer,nndi, * nnshear,jpltcd) C This subroutine computes the thickness in 2D problems. C The post code to be used is -20. C The thickness contours may be plotted in Mentat. Mentat can also be used C to obtain a pathplot of thickness. C All the elements are expected to be numbered in a similar fashion with edges 1C of all elements parallel to each other, edges 2 parallel to each other and so C on. C The user needs to specify the local nodal connectivity order with the first C 2 nodes forming an edge perpendicular to thickness direction. c c Subroutine defining different variables for contour plotting c c v variable 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 m element number c nn integration point number c layer layer number c ndi (3) number of direct stress components c nshear (3) number of shear stress components c implicit real*8 (a-h,o-z) parameter (nuel=6000) dimension s(1),etot(1),eplas(1),ecreep(1),sp(1) dimension ndint(nuel),cnode(4),dnode(4),coor(nuel,4) dimension et(nuel),icon(nuel,4),ipair(nuel),ipair1(nuel),m(2) common /spf/ pnew,fa,fm,pmin,pmax,target,pst,starget,incres, 1 nfff,pstinc common /spf2/done,ncon(4) data ncon/2,3,4,1/ include '../common/heat' include '../common/elmcom' include '../common/concom' include '../common/dimen' include '../common/arrays' include '../common/array2' include '../common/develp' include '../common/space' include '../common/prepro' include '../common/blnk' include '../common/again' include '../common/strnen' include '../common/nzro1' include '../common/machin' c post var. -20 is for average thickness in 2D & axisymmetric models if(jpltcd.eq.20) then if(lclass.eq.5.or.lclass.eq.7) then if (numel.gt.nuel) then if (inc.ne.(last2-1)) then write(iprtl,*) '*** WARNING *** NUMBER OF ELEMENTS GREATER THAN + SPECIFIED - Change nuel parameter value in PLOTV to get thickness + contour plot ' endif last2=inc+1 v=0.d0 else C==== Do below only for inc=0,find bootom and top pairs of elements== mj=m(2) if (inc.eq.0) then if(lastm.ne.mj) then C icon(mj,1) = lm(1) C icon(mj,2) = lm(2) C icon(mj,3) = lm(3) C icon(mj,4) = lm(4) icon(mj,1) = lm(ncon(3)) icon(mj,2) = lm(ncon(4)) icon(mj,3) = lm(ncon(1)) icon(mj,4) = lm(ncon(2)) end if if(mj.eq.numel) then do i = 1,numel ipair(i) = 0 j1 = icon(i,4) j2 = icon(i,3) do j = 1,numel if(icon(j,1).eq.j1.and.icon(j,2).eq.j2) ipair(i) = j end do C write(75,*) i,ipair(i) end do C Find the outer and inner layer of nodes. do 211 i=1,numel C write(75,*) i j=i 212 if(ipair(j).eq.0) then go to 211 else k=ipair(j) if (ipair1(k) .ne. 0) then ipair1(j) = ipair1(k) j = ipair1(k) ipair1(k) = 0 go to 212 endif if (ipair(k).ne.0) then ipair1(j)=ipair(k) j=ipair(k) ipair1(k)=0 go to 212 else ipair1(j)=k endif endif 211 continue C Finished finding the outer and inner layers. j and ipair1(j) endif endif C ======== End inc 0, pairing process ============== c if(inc.ne.(lastinc1-1)) then do i = 1,numnp ndint(i) = ibsrch(i,ints(inoids),numnp,1) la2 = inpnum+ndint(i)-1 if(joptit.ne.0) ndint(i) =igetsh(ints(la2),0) c call vecftc(cnode,vars(ixord),ncrdmx,ncrd,ndint(i),0,2,1) call vecftc(dnode,vars(idsxt),ndegmx,ndeg,ndint(i),0,2,5) do j = 1,ncrd coor(ndint(i),j) = cnode(j) + dnode(j) end do end do do i=1,numel if(ipair1(i).ne.0) then i1=icon(i,1) i2=icon(i,2) i3=icon(ipair1(i),3) i4=icon(ipair1(i),4) t1=dsqrt((coor(i4,1)-coor(i1,1))**2+ + (coor(i4,2)-coor(i1,2))**2) t2=dsqrt((coor(i3,1)-coor(i2,1))**2+ + (coor(i3,2)-coor(i2,2))**2) et(i)=(t1+t2)/2.0 C Assign equal thickness values for all the elements in column j=i 311 if(ipair(j).ne.0) then j=ipair(j) et(j)=et(i) go to 311 endif C Done C et(ipair(j))=et(i) end if end do endif endif lastinc1 = inc+1 lastm = mj v=et(mj) else v=0.d0 endif endif return end