1*59599516SKenneth E. Jansen subroutine AsBRes (y, yc, x, shpb, shglb, 2*59599516SKenneth E. Jansen & ienb, materb, iBCB, BCB, 3*59599516SKenneth E. Jansen & rmes) 4*59599516SKenneth E. Jansenc 5*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 6*59599516SKenneth E. Jansenc 7*59599516SKenneth E. Jansenc This routine computes and assembles the data corresponding to the 8*59599516SKenneth E. Jansenc boundary elements. 9*59599516SKenneth E. Jansenc 10*59599516SKenneth E. Jansenc Zdenek Johan, Winter 1991. (Fortran 90) 11*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 12*59599516SKenneth E. Jansenc 13*59599516SKenneth E. Jansen include "common.h" 14*59599516SKenneth E. Jansenc 15*59599516SKenneth E. Jansen dimension y(nshg,nflow), x(numnp,nsd), 16*59599516SKenneth E. Jansen & yc(nshg,ndof), shpb(nshl,ngaussb), 17*59599516SKenneth E. Jansen & shglb(nsd,nshl,ngaussb), 18*59599516SKenneth E. Jansen & ienb(npro,nshl), materb(npro), 19*59599516SKenneth E. Jansen & iBCB(npro,ndiBCB), BCB(npro,nshlb,ndBCB), 20*59599516SKenneth E. Jansen & rmes(nshg,nflow) 21*59599516SKenneth E. Jansenc 22*59599516SKenneth E. Jansen dimension yl(npro,nshl,nflow), xlb(npro,nenl,nsd), 23*59599516SKenneth E. Jansen & ycl(npro,nshl,ndof), rml(npro,nshl,nflow) 24*59599516SKenneth E. Jansenc 25*59599516SKenneth E. Jansen dimension sgn(npro,nshl) 26*59599516SKenneth E. Jansenc 27*59599516SKenneth E. Jansenc.... create the matrix of mode signs for the hierarchic basis 28*59599516SKenneth E. Jansenc functions. 29*59599516SKenneth E. Jansenc 30*59599516SKenneth E. Jansen if (ipord .gt. 1) then 31*59599516SKenneth E. Jansen call getsgn(ienb,sgn) 32*59599516SKenneth E. Jansen endif 33*59599516SKenneth E. Jansenc 34*59599516SKenneth E. Jansenc.... gather the variables 35*59599516SKenneth E. Jansenc 36*59599516SKenneth E. Jansen call localy(y, yl, ienb, nflow, 'gather ') 37*59599516SKenneth E. Jansen call localy(yc, ycl, ienb, ndof, 'gather ') 38*59599516SKenneth E. Jansen call localx(x, xlb, ienb, nsd, 'gather ') 39*59599516SKenneth E. Jansenc 40*59599516SKenneth E. Jansenc.... get the boundary element residuals 41*59599516SKenneth E. Jansenc 42*59599516SKenneth E. Jansen rml = zero 43*59599516SKenneth E. Jansen call e3b (yl, ycl, iBCB, BCB, shpb, shglb, 44*59599516SKenneth E. Jansen & xlb, rml, rml, sgn) 45*59599516SKenneth E. Jansen 46*59599516SKenneth E. Jansenc 47*59599516SKenneth E. Jansenc.... assemble the residual and the modified residual 48*59599516SKenneth E. Jansenc 49*59599516SKenneth E. Jansen if (iabres .eq. 1) rml = abs(rml) 50*59599516SKenneth E. Jansenc 51*59599516SKenneth E. Jansen call local(rmes, rml, ienb, nflow, 'scatter ') 52*59599516SKenneth E. Jansenc 53*59599516SKenneth E. Jansenc.... end 54*59599516SKenneth E. Jansenc 55*59599516SKenneth E. Jansen return 56*59599516SKenneth E. Jansen end 57*59599516SKenneth E. Jansen 58*59599516SKenneth E. Jansen 59*59599516SKenneth E. Jansen 60*59599516SKenneth E. Jansen 61