1*59599516SKenneth E. Jansen subroutine AsBMFG (u, y, ac, x, 2*59599516SKenneth E. Jansen & shpb, shglb, 3*59599516SKenneth E. Jansen & ienb, materb, iBCB, BCB, 4*59599516SKenneth E. Jansen & res, xKebe) 5*59599516SKenneth E. Jansenc 6*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 7*59599516SKenneth E. Jansenc 8*59599516SKenneth E. Jansenc This routine computes and assembles the data corresponding to the 9*59599516SKenneth E. Jansenc boundary elements. 10*59599516SKenneth E. Jansenc 11*59599516SKenneth E. Jansenc Zdenek Johan, Winter 1991. (Fortran 90) 12*59599516SKenneth E. Jansenc Alberto Figueroa, Winter 2004. CMM-FSI 13*59599516SKenneth E. Jansenc Irene Vignon, Spring 2004. 14*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 15*59599516SKenneth E. Jansenc 16*59599516SKenneth E. Jansen use turbSA ! access to d2wall 17*59599516SKenneth E. Jansen include "common.h" 18*59599516SKenneth E. Jansenc 19*59599516SKenneth E. Jansen dimension y(nshg,ndofl), x(numnp,nsd), 20*59599516SKenneth E. Jansen & ac(nshg,ndofl), u(nshg,nsd), 21*59599516SKenneth E. Jansen & shpb(nshl,ngaussb), 22*59599516SKenneth E. Jansen & shglb(nsd,nshl,ngaussb), 23*59599516SKenneth E. Jansen & ienb(npro,nshl), materb(npro), 24*59599516SKenneth E. Jansen & iBCB(npro,ndiBCB), BCB(npro,nshlb,ndBCB), 25*59599516SKenneth E. Jansen & res(nshg,nflow), dwl(npro,nenl) 26*59599516SKenneth E. Jansenc 27*59599516SKenneth E. Jansen dimension yl(npro,nshl,ndofl), xlb(npro,nenl,nsd), 28*59599516SKenneth E. Jansen & rl(npro,nshl,nflow), sgn(npro,nshl), 29*59599516SKenneth E. Jansen & ul(npro,nshl,nsd), acl(npro,nshl,ndofl) 30*59599516SKenneth E. Jansenc 31*59599516SKenneth E. Jansen dimension xKebe(npro,9,nshl,nshl) 32*59599516SKenneth E. Jansen 33*59599516SKenneth E. Jansenc 34*59599516SKenneth E. Jansenc.... get the matrix of mode signs for the hierarchic basis functions 35*59599516SKenneth E. Jansenc 36*59599516SKenneth E. Jansen if (ipord .gt. 1) then 37*59599516SKenneth E. Jansen call getsgn(ienb,sgn) 38*59599516SKenneth E. Jansen endif 39*59599516SKenneth E. Jansenc 40*59599516SKenneth E. Jansenc.... gather the variables 41*59599516SKenneth E. Jansenc 42*59599516SKenneth E. Jansen call localy(y, yl, ienb, ndofl, 'gather ') 43*59599516SKenneth E. Jansen call localy(ac, acl, ienb, ndofl, 'gather ') 44*59599516SKenneth E. Jansen call localx(x, xlb, ienb, nsd, 'gather ') 45*59599516SKenneth E. Jansen call localx(u, ul, ienb, nsd, 'gather ') 46*59599516SKenneth E. Jansen if(iRANS.eq.-2) then 47*59599516SKenneth E. Jansen call local(d2wall, dwl, ienb, 1, 'gather ') 48*59599516SKenneth E. Jansen endif 49*59599516SKenneth E. Jansen 50*59599516SKenneth E. Jansenc 51*59599516SKenneth E. Jansenc.... zero the matrices if they are being recalculated 52*59599516SKenneth E. Jansenc 53*59599516SKenneth E. Jansen if (lhs. eq. 1) then 54*59599516SKenneth E. Jansen xKebe = zero 55*59599516SKenneth E. Jansen endif 56*59599516SKenneth E. Jansen 57*59599516SKenneth E. Jansenc 58*59599516SKenneth E. Jansenc.... get the boundary element residuals 59*59599516SKenneth E. Jansenc 60*59599516SKenneth E. Jansen rl = zero 61*59599516SKenneth E. Jansenc 62*59599516SKenneth E. Jansenc.... 3D 63*59599516SKenneth E. Jansenc 64*59599516SKenneth E. Jansen call e3b (ul, yl, acl, iBCB, BCB, 65*59599516SKenneth E. Jansen & shpb, shglb, 66*59599516SKenneth E. Jansen & xlb, rl, sgn, dwl, xKebe) 67*59599516SKenneth E. Jansenc 68*59599516SKenneth E. Jansenc.... assemble the residual and the modified residual 69*59599516SKenneth E. Jansenc 70*59599516SKenneth E. Jansen call local (res, rl, ienb, nflow, 'scatter ') 71*59599516SKenneth E. Jansen 72*59599516SKenneth E. Jansenc 73*59599516SKenneth E. Jansenc.... end 74*59599516SKenneth E. Jansenc 75*59599516SKenneth E. Jansen return 76*59599516SKenneth E. Jansen end 77*59599516SKenneth E. Jansen 78*59599516SKenneth E. Jansen 79*59599516SKenneth E. Jansenc 80*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 81*59599516SKenneth E. Jansenc 82*59599516SKenneth E. Jansenc This routine computes and assembles the data corresponding to the 83*59599516SKenneth E. Jansenc boundary elements for the temperature equation 84*59599516SKenneth E. Jansenc 85*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 86*59599516SKenneth E. Jansenc 87*59599516SKenneth E. Jansen subroutine AsBSclr (y, x, shpb, shglb, 88*59599516SKenneth E. Jansen & ienb, materb, iBCB, BCB, 89*59599516SKenneth E. Jansen & res) 90*59599516SKenneth E. Jansen use turbSA ! access to d2wall 91*59599516SKenneth E. Jansen include "common.h" 92*59599516SKenneth E. Jansenc 93*59599516SKenneth E. Jansen dimension y(nshg,ndofl), x(numnp,nsd), 94*59599516SKenneth E. Jansen & shpb(nshl,*), 95*59599516SKenneth E. Jansen & shglb(nsd,nshl,*), 96*59599516SKenneth E. Jansen & ienb(npro,nshl), materb(npro), 97*59599516SKenneth E. Jansen & iBCB(npro,ndiBCB), BCB(npro,nshlb,ndBCB), 98*59599516SKenneth E. Jansen & res(nshg) 99*59599516SKenneth E. Jansenc 100*59599516SKenneth E. Jansen dimension yl(npro,nshl,ndofl), xlb(npro,nenl,nsd), 101*59599516SKenneth E. Jansen & rl(npro,nshl), sgn(npro,nshl) 102*59599516SKenneth E. Jansen real*8 dwl(npro,nshl) 103*59599516SKenneth E. Jansenc 104*59599516SKenneth E. Jansenc.... get the matrix of mode signs for the hierarchic basis functions 105*59599516SKenneth E. Jansenc 106*59599516SKenneth E. Jansen if (ipord .gt. 1) then 107*59599516SKenneth E. Jansen call getsgn(ienb,sgn) 108*59599516SKenneth E. Jansen endif 109*59599516SKenneth E. Jansenc 110*59599516SKenneth E. Jansenc.... gather the variables 111*59599516SKenneth E. Jansenc 112*59599516SKenneth E. Jansen call localy(y, yl, ienb, ndofl, 'gather ') 113*59599516SKenneth E. Jansen call localx(x, xlb, ienb, nsd, 'gather ') 114*59599516SKenneth E. Jansen if(iRANS.eq.-2) then 115*59599516SKenneth E. Jansen call local(d2wall, dwl, ienb, 1, 'gather ') 116*59599516SKenneth E. Jansen endif 117*59599516SKenneth E. Jansenc 118*59599516SKenneth E. Jansenc.... get the boundary element residuals 119*59599516SKenneth E. Jansenc 120*59599516SKenneth E. Jansen rl = zero 121*59599516SKenneth E. Jansen 122*59599516SKenneth E. Jansen call e3bSclr (yl, iBCB, BCB, shpb, shglb, 123*59599516SKenneth E. Jansen & xlb, rl, sgn, dwl) 124*59599516SKenneth E. Jansenc 125*59599516SKenneth E. Jansenc.... assemble the residual and the modified residual 126*59599516SKenneth E. Jansenc 127*59599516SKenneth E. Jansen call local (res, rl, ienb, 1, 'scatter ') 128*59599516SKenneth E. Jansenc 129*59599516SKenneth E. Jansenc.... end 130*59599516SKenneth E. Jansenc 131*59599516SKenneth E. Jansen return 132*59599516SKenneth E. Jansen end 133*59599516SKenneth E. Jansen 134*59599516SKenneth E. Jansen 135