1!$Id:$ 2 subroutine pltelm(x,ie,ix,scale,nie,ndm,nen1,n1,n2) 3 4! * * F E A P * * A Finite Element Analysis Program 5 6!.... Copyright (c) 1984-2017: Regents of the University of California 7! All rights reserved 8 9!-----[--+---------+---------+---------+---------+---------+---------+-] 10! Purpose: Place element numbers on plots of mesh 11 12! Inputs: 13! x(ndm,*) - Nodal coordinates of mesh 14! ie(nie,*) - Assembly data for material sets 15! ix(nen1,*)- Element nodal connections 16! scale - Plot scale factor 17! nie - Dimension of ie array 18! ndm - Dimension of x array 19! nen1 - Dimension of ix array 20! n1 - First element number to display 21! n2 - Last element number to display 22 23! Outputs: 24! none - Plot outputs to screen/file 25!-----[--+---------+---------+---------+---------+---------+---------+-] 26 implicit none 27 28 include 'pbody.h' 29 include 'pdata4.h' 30 include 'plflag.h' 31 32 logical zoom 33 integer nie,ndm,nen1, i,j,n,ii,jj,nn,ma,nd, n1,n2, iplt(50) 34 real*8 scale,dx1 35 36 integer ie(nie,*),ix(nen1,*) 37 real*8 x(ndm,*),xx(3) 38 39 save 40 41! Write element labels 42 43 dx1 = .005d0/scale 44 nd = 2 45 do n = n1,n2 46 ma = ix(nen1,n) 47 if(ix(nen1-1,n).ge.0 .and. ma.gt.0 .and. 48 & (maplt.eq.0 .or. ma.eq.maplt)) then 49 xx(1) = 0.0d0 50 xx(2) = 0.0d0 51 xx(3) = 0.0d0 52 jj = 0 53 call pltord(ix(1,n),ie(nie-1,ma), nn,iplt) 54 nn = max(1,nn-1) 55 do i = 1,nn 56 j = iplt(i) 57 ii = ix(j,n) 58 if(ii.gt.0) then 59 jj = jj + 1 60 xx(1) = xx(1) + x(1,ii) 61 xx(2) = xx(2) + x(2,ii) 62 if(ndm.ge.3) xx(3) = xx(3) + x(3,ii) 63 endif 64 end do ! i 65 if(jj.gt.0) then 66 xx(1) = xx(1)/jj 67 xx(2) = xx(2)/jj 68 xx(3) = xx(3)/jj 69 if(zoom(xx(1),ndm)) then 70 call plotl(xx(1)-dx1*nd,xx(2)-dx1,xx(3),3) 71 if(clip) call plabl(n) 72 endif 73 endif 74 endif 75 end do ! i 76 77 end 78