xref: /phasta/phSolver/compressible/asbres.f (revision 595995161822a203c8467e0e4a253d7bd7d6df32)
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