1 subroutine AsBMFG (y, x, shpb, shglb, 2 & ienb, materb, iBCB, BCB, 3 & res, rmes) 4c 5c---------------------------------------------------------------------- 6c 7c This routine computes and assembles the data corresponding to the 8c boundary elements. 9c 10c Zdenek Johan, Winter 1991. (Fortran 90) 11c---------------------------------------------------------------------- 12c 13 include "common.h" 14c 15 dimension y(nshg,ndofl), x(numnp,nsd), 16 & shpb(nshl,ngaussb), 17 & shglb(nsd,nshl,ngaussb), 18 & ienb(npro,nshl), materb(npro), 19 & iBCB(npro,ndiBCB), BCB(npro,nshlb,ndBCB), 20 & res(nshg,nflow), rmes(nshg,nflow) 21c 22 dimension ycl(npro,nshl,ndofl), xlb(npro,nenl,nsd), 23 & rl(npro,nshl,nflow), 24 & rml(npro,nshl,nflow) 25c 26 dimension sgn(npro,nshl) 27c 28c.... create the matrix of mode signs for the hierarchic basis 29c functions. 30c 31 if (ipord .gt. 1) then 32 call getsgn(ienb,sgn) 33 endif 34c 35c.... gather the variables 36c 37 38 call localy(y, ycl, ienb, ndofl, 'gather ') 39 call localx(x, xlb, ienb, nsd, 'gather ') 40c 41 42c.... get the boundary element residuals 43c 44 rl = zero 45 rml = zero 46c 47! pass the memory location of ycl to both yl and ycl in e3b. This may 48 ! seem dangerous since yl in e3b is :,nflow and ycl is :,ndof but they 49 ! do not write to yl (out of bounds at least), only use the data there 50 ! so both will access data 51 ! properly from this location. 52c 53 call e3b (ycl, ycl, iBCB, BCB, shpb, shglb, 54 & xlb, rl, rml, sgn) 55c 56c.... assemble the residual and the modified residual 57c 58 call local(res, rl, ienb, nflow, 'scatter ') 59 60 61c 62 if (Navier .eq. 1 .and. ires.ne.1 ) 63 & call local(rmes, rml, ienb, nflow, 'scatter ') 64c 65c.... end 66c 67 return 68 end 69c 70c 71c 72 subroutine AsBMFGSclr (y, x, shpb, shglb, 73 & ienb, materb, iBCB, 74 & BCB, rest, rmest) 75c 76c---------------------------------------------------------------------- 77c 78c This routine computes and assembles the data corresponding to the 79c boundary elements. 80c 81c Zdenek Johan, Winter 1991. (Fortran 90) 82c---------------------------------------------------------------------- 83c 84 include "common.h" 85c 86 dimension y(nshg,ndofl), x(numnp,nsd), 87 & shpb(nshl,maxsh), 88 & shglb(nsd,nshl,maxsh), 89 & ienb(npro,nshl), materb(npro), 90 & iBCB(npro,ndiBCB), BCB(npro,nshlb,ndBCB), 91 & rest(nshg), rmest(nshg) 92c 93 dimension ycl(npro,nshl,ndofl), xlb(npro,nenl,nsd), 94 & rtl(npro,nshl), 95 & rmtl(npro,nshl) 96c 97c.... create the matrix of mode signs for the hierarchic basis 98c functions. 99c 100 if (ipord .gt. 1) then 101 call getsgn(ienb,sgn) 102 endif 103c 104c.... gather the variables 105c 106 call localy (y, ycl, ienb, ndofl, 'gather ') 107 call localx (x, xlb, ienb, nsd, 'gather ') 108c 109c.... get the boundary element residuals 110c 111 rtl = zero 112 rmtl = zero 113c 114c.... 3D 115c 116 call e3bSclr (ycl, iBCB, BCB, 117 & shpb, shglb, sgn, 118 & xlb, rtl, rmtl) 119c 120c.... assemble the residual and the modified residual 121c 122 123 call local (rest, rtl, ienb, 1, 'scatter ') 124 125 126c 127 if (Navier .eq. 1) 128 & call local (rmest, rmtl, ienb, 1, 'scatter ') 129c 130c.... end 131c 132 return 133 end 134 135 136