1!$Id:$ 2 subroutine pnumbl(ndm,nr,ns,nt,ntyp, nf,ng, flag) 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 implicit none 10 11 logical flag 12 integer ndm,nr,ns,nt,ntyp,nf,ng 13 14 save 15 16! Check the 2-D types 17 18 if(ntyp.lt.10) then 19 if(flag) then 20 ng = nr + 1 21 if(ns.eq.1) then 22 nf = nr 23 else 24 nf = nr/2 25 endif 26 nr = nr + 1 27 else 28 if (ntyp.eq.0) then ! 4-node quadrilateral 29 nf = nr*ns 30 elseif (abs(ntyp).eq.7) then ! 6/7-node triangles 31 nf = (nr*ns)/2 32 elseif (ntyp.ge.8) then ! 8/9-node quadrilateral 33 nf = (nr*ns)/4 34 elseif (ntyp.lt.0) then ! 4-node crossed triangles 35 nf = 4*nr*ns 36 else ! 3-node triangles 37 nf = 2*nr*ns 38 endif 39 40! Determine last node number to be generated 41 42 nr = nr + 1 43 ns = ns + 1 44 if(ndm.eq.1) ns = 1 45 ng = nr*ns 46 if(ntyp.eq. -7) then ! 7-node triangles 47 ng = ng + (nr-1)*(ns-1)/2 48 elseif(ntyp .eq. -1) then ! 3-node crossed triangles 49 ng = ng + (nr-1)*(ns-1) 50 elseif(ntyp .eq. 8) then ! 8-node quadrilaterals 51 ng = ng - ((nr-1)*(ns-1))/4 52 endif 53 endif 54 55! 3-d generations 56 57 elseif(ntyp.lt.20) then 58 if(ntyp.eq.11) then ! 4-node tetrahedron 59 nf = nr*ns*nt*6 60 ng = (nr+1)*(ns+1)*(nt+1) 61 else ! 8-node hexahedron 62 nf = nr*ns*nt 63 ng = (nr+1)*(ns+1)*(nt+1) 64 endif 65 66! Shell: 67 68 elseif(ntyp.lt.30) then 69 if (ntyp.eq.20) then 70 nf = nr*ns 71 elseif (ntyp.eq.27) then 72 nf = (nr*ns)/2 73 elseif (ntyp.ge.28) then 74 nf = (nr*ns)/4 75 else 76 nf = 2*nr*ns 77 endif 78 79! Determine last node number to be generated 80 81 ng = (nr+1)*(ns+1) 82 83! Line: 84 85 elseif(ntyp.lt.40) then 86 if(ns.ge.1) then 87 nf = nr/ns 88 else 89 nf = nr 90 endif 91 92 ng = nr + 1 93 94 endif 95 96 end 97