1*9d714148SKenneth E. Jansen subroutine genblk (IBKSZ) 2*9d714148SKenneth E. Jansenc 3*9d714148SKenneth E. Jansenc---------------------------------------------------------------------- 4*9d714148SKenneth E. Jansenc 5*9d714148SKenneth E. Jansenc This routine reads the interior elements and generates the 6*9d714148SKenneth E. Jansenc appropriate blocks. 7*9d714148SKenneth E. Jansenc 8*9d714148SKenneth E. Jansenc Zdenek Johan, Fall 1991. 9*9d714148SKenneth E. Jansenc---------------------------------------------------------------------- 10*9d714148SKenneth E. Jansenc 11*9d714148SKenneth E. Jansen use pointer_data 12*9d714148SKenneth E. Jansenc 13*9d714148SKenneth E. Jansen include "common.h" 14*9d714148SKenneth E. Jansenc 15*9d714148SKenneth E. Jansen integer, allocatable :: ientp(:,:) 16*9d714148SKenneth E. Jansen integer mater(ibksz) 17*9d714148SKenneth E. Jansen integer intfromfile(50) ! integers read from headers 18*9d714148SKenneth E. Jansen character*255 fname1 19*9d714148SKenneth E. Jansenc 20*9d714148SKenneth E. Jansen iel=1 21*9d714148SKenneth E. Jansen itpblk=nelblk 22*9d714148SKenneth E. Jansen 23*9d714148SKenneth E. Jansen nelblk=0 24*9d714148SKenneth E. Jansen mattyp = 0 25*9d714148SKenneth E. Jansen ndofl = ndof 26*9d714148SKenneth E. Jansen nsymdl = nsymdf 27*9d714148SKenneth E. Jansen do iblk = 1, itpblk 28*9d714148SKenneth E. Jansenc 29*9d714148SKenneth E. Jansenc read(igeom) neltp,nenl,ipordl,nshl, ijunk, ijunk, lcsyst 30*9d714148SKenneth E. Jansen iseven=7 31*9d714148SKenneth E. Jansenc call creadlist(igeom,iseven, 32*9d714148SKenneth E. Jansenc & neltp,nenl,ipordl,nshl, ijunk, ijunk, lcsyst) 33*9d714148SKenneth E. Jansen iseven=7 34*9d714148SKenneth E. Jansen fname1='connectivity interior?' 35*9d714148SKenneth E. Jansen call readheader(igeom,fname1,intfromfile,iseven, 36*9d714148SKenneth E. Jansen & "integer", iotype) 37*9d714148SKenneth E. Jansen neltp =intfromfile(1) 38*9d714148SKenneth E. Jansen nenl =intfromfile(2) 39*9d714148SKenneth E. Jansen ipordl =intfromfile(3) 40*9d714148SKenneth E. Jansen nshl =intfromfile(4) 41*9d714148SKenneth E. Jansen ijunk =intfromfile(5) 42*9d714148SKenneth E. Jansen ijunk =intfromfile(6) 43*9d714148SKenneth E. Jansen lcsyst =intfromfile(7) 44*9d714148SKenneth E. Jansen allocate (ientp(neltp,nshl)) 45*9d714148SKenneth E. Jansenc read(igeom) ientp 46*9d714148SKenneth E. Jansen iientpsiz=neltp*nshl 47*9d714148SKenneth E. Jansen call readdatablock(igeom,fname1,ientp,iientpsiz, 48*9d714148SKenneth E. Jansen & "integer", iotype) 49*9d714148SKenneth E. Jansen 50*9d714148SKenneth E. Jansen do n=1,neltp,ibksz 51*9d714148SKenneth E. Jansen 52*9d714148SKenneth E. Jansen nelblk=nelblk+1 53*9d714148SKenneth E. Jansen npro= min(IBKSZ, neltp - n + 1) 54*9d714148SKenneth E. Jansenc 55*9d714148SKenneth E. Jansen lcblk(1,nelblk) = iel 56*9d714148SKenneth E. Jansenc lcblk(2,nelblk) = iopen ! available for later use 57*9d714148SKenneth E. Jansen lcblk(3,nelblk) = lcsyst 58*9d714148SKenneth E. Jansen lcblk(4,nelblk) = ipordl 59*9d714148SKenneth E. Jansen lcblk(5,nelblk) = nenl 60*9d714148SKenneth E. Jansen lcblk(6,nelblk) = nfacel 61*9d714148SKenneth E. Jansen lcblk(7,nelblk) = mattyp 62*9d714148SKenneth E. Jansen lcblk(8,nelblk) = ndofl 63*9d714148SKenneth E. Jansen lcblk(9,nelblk) = nsymdl 64*9d714148SKenneth E. Jansen lcblk(10,nelblk) = nshl ! # of shape functions per elt 65*9d714148SKenneth E. Jansenc 66*9d714148SKenneth E. Jansenc.... allocate memory for stack arrays 67*9d714148SKenneth E. Jansenc 68*9d714148SKenneth E. Jansen allocate (mmat(nelblk)%p(npro)) 69*9d714148SKenneth E. Jansenc 70*9d714148SKenneth E. Jansen allocate (mien(nelblk)%p(npro,nshl)) 71*9d714148SKenneth E. Jansen allocate (mxmudmi(nelblk)%p(npro,maxsh)) 72*9d714148SKenneth E. Jansenc 73*9d714148SKenneth E. Jansenc.... save the element block 74*9d714148SKenneth E. Jansenc 75*9d714148SKenneth E. Jansen n1=n 76*9d714148SKenneth E. Jansen n2=n+npro-1 77*9d714148SKenneth E. Jansen mater=1 ! all one material for now 78*9d714148SKenneth E. Jansen call gensav (ientp(n1:n2,1:nshl), 79*9d714148SKenneth E. Jansen & mater, mien(nelblk)%p, 80*9d714148SKenneth E. Jansen & mmat(nelblk)%p) 81*9d714148SKenneth E. Jansen iel=iel+npro 82*9d714148SKenneth E. Jansenc 83*9d714148SKenneth E. Jansen enddo 84*9d714148SKenneth E. Jansen deallocate(ientp) 85*9d714148SKenneth E. Jansen enddo 86*9d714148SKenneth E. Jansen lcblk(1,nelblk+1) = iel 87*9d714148SKenneth E. Jansenc 88*9d714148SKenneth E. Jansenc.... return 89*9d714148SKenneth E. Jansenc 90*9d714148SKenneth E. JansenCAD call timer ('Back ') 91*9d714148SKenneth E. Jansenc 92*9d714148SKenneth E. Jansen return 93*9d714148SKenneth E. Jansenc 94*9d714148SKenneth E. Jansen1000 format(a80,//, 95*9d714148SKenneth E. Jansen & ' N o d a l C o n n e c t i v i t y',//, 96*9d714148SKenneth E. Jansen & ' Elem ',/, 97*9d714148SKenneth E. Jansen & ' Number ',7x,27('Node',i2,:,2x)) 98*9d714148SKenneth E. Jansen1100 format(2x,i5,6x,27i8) 99*9d714148SKenneth E. Jansen end 100