1*59599516SKenneth E. Jansen subroutine genshpb (shpb, shglb, nshpb, nblk) 2*59599516SKenneth E. Jansenc 3*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 4*59599516SKenneth E. Jansenc 5*59599516SKenneth E. Jansenc This subroutine generates shape functions for triangular, 6*59599516SKenneth E. Jansenc quadrilateral, tetrahedron, wedge and brick elements. 7*59599516SKenneth E. Jansenc 8*59599516SKenneth E. Jansenc Christian Whiting, Winter 1999 9*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 10*59599516SKenneth E. Jansenc 11*59599516SKenneth E. Jansen include "common.h" 12*59599516SKenneth E. Jansenc 13*59599516SKenneth E. Jansen dimension shpb(MAXTOP,maxsh,MAXQPT), 14*59599516SKenneth E. Jansen & shglb(MAXTOP,nsd,maxsh,MAXQPT) 15*59599516SKenneth E. Jansenc 16*59599516SKenneth E. Jansenc.... loop through element blocks 17*59599516SKenneth E. Jansenc 18*59599516SKenneth E. Jansen do iblk = 1, nblk 19*59599516SKenneth E. Jansenc 20*59599516SKenneth E. Jansenc.... get coord. system and element type 21*59599516SKenneth E. Jansenc 22*59599516SKenneth E. Jansen 23*59599516SKenneth E. Jansen lcsyst = lcblkb(3,iblk) 24*59599516SKenneth E. Jansen 25*59599516SKenneth E. Jansenc.... generate the shape-functions in local coordinates 26*59599516SKenneth E. Jansenc 27*59599516SKenneth E. Jansen select case ( lcsyst ) 28*59599516SKenneth E. Jansen case ( 1 ) ! tets 29*59599516SKenneth E. Jansen nshl=lcblkb(9,iblk) 30*59599516SKenneth E. Jansen do i=1,nintb(lcsyst) 31*59599516SKenneth E. Jansen call shpTet(ipord,Qptb(1,1:3,i),shpb(1,:,i), 32*59599516SKenneth E. Jansen & shglb(1,:,:,i)) 33*59599516SKenneth E. Jansen enddo 34*59599516SKenneth E. Jansen shglb(1,:,1:nshl,1:nintb(lcsyst)) = 35*59599516SKenneth E. Jansen & shglb(1,:,1:nshl,1:nintb(lcsyst))/two 36*59599516SKenneth E. Jansenc 37*59599516SKenneth E. Jansen case ( 2 ) ! hexes 38*59599516SKenneth E. Jansenc 39*59599516SKenneth E. Jansen do i=1,nintb(lcsyst) 40*59599516SKenneth E. Jansen call shpHex (ipord, Qptb(2,1:3,i),shpb(2,:,i), 41*59599516SKenneth E. Jansen & shglb(2,:,:,i)) 42*59599516SKenneth E. Jansen enddo 43*59599516SKenneth E. Jansenc 44*59599516SKenneth E. Jansen case ( 3 ) ! wedges with tri bd face 45*59599516SKenneth E. Jansen 46*59599516SKenneth E. Jansen do i=1,nintb(lcsyst) 47*59599516SKenneth E. Jansen call shp6w (ipord,Qptb(3,1:3,i), 48*59599516SKenneth E. Jansen & shpb(3,:,i),shglb(3,:,:,i)) 49*59599516SKenneth E. Jansen enddo 50*59599516SKenneth E. Jansenc 51*59599516SKenneth E. Jansen case ( 4 ) ! wedges with quad bd face 52*59599516SKenneth E. Jansenc 53*59599516SKenneth E. Jansen do i=1,nintb(lcsyst) 54*59599516SKenneth E. Jansen call shp6w (ipord,Qptb(4,1:3,i), 55*59599516SKenneth E. Jansen & shpb(4,:,i),shglb(4,:,:,i)) 56*59599516SKenneth E. Jansen enddo 57*59599516SKenneth E. Jansen case ( 5 ) ! pyramids with quad bd face 58*59599516SKenneth E. Jansenc 59*59599516SKenneth E. Jansen do i=1,nintb(lcsyst) 60*59599516SKenneth E. Jansen call shppyr (ipord,Qptb(5,1:3,i), 61*59599516SKenneth E. Jansen & shpb(5,:,i),shglb(5,:,:,i)) 62*59599516SKenneth E. Jansen enddo 63*59599516SKenneth E. Jansenc 64*59599516SKenneth E. Jansen case ( 6 ) ! pyramids with quad bd face 65*59599516SKenneth E. Jansenc 66*59599516SKenneth E. Jansen do i=1,nintb(lcsyst) 67*59599516SKenneth E. Jansen call shppyr (ipord,Qptb(6,1:3,i), 68*59599516SKenneth E. Jansen & shpb(6,:,i),shglb(6,:,:,i)) 69*59599516SKenneth E. Jansen enddo 70*59599516SKenneth E. Jansenc 71*59599516SKenneth E. Jansenc.... nonexistent element 72*59599516SKenneth E. Jansenc 73*59599516SKenneth E. Jansen case default 74*59599516SKenneth E. Jansenc 75*59599516SKenneth E. Jansen call error ('genshp ', 'elem Cat', lelCat) 76*59599516SKenneth E. Jansenc 77*59599516SKenneth E. Jansen end select 78*59599516SKenneth E. Jansenc 79*59599516SKenneth E. Jansenc.... end of generation 80*59599516SKenneth E. Jansenc 81*59599516SKenneth E. Jansen enddo 82*59599516SKenneth E. Jansenc 83*59599516SKenneth E. Jansenc.... return 84*59599516SKenneth E. Jansenc 85*59599516SKenneth E. Jansen return 86*59599516SKenneth E. Jansen end 87