Your problem can be solved with the method mentioned here, here and here. The idea is simple: NDSolve don't know how to disretize your system, so we do it ourselves. I'll use pdetoode for the disretization of the derivative term and Gaussian quadrature formula for the discretization of integral:
total = 200; L = 10; tend = 100; points = 25; difforder = 4; domain = {-L/2, L/2}; {nodes, weights} = Most[NIntegrate`GaussRuleData[points, MachinePrecision]]; midgrid = Rescale[nodes, {0, 1}, domain]; intrule = int -> -Subtract @@ domain weights.Map[Function[x, A[x][t]], midgrid]; grid = Flatten[{First@domain, midgrid, Last@domain}]; (*Definition of pdetoode isn't included in this post, please find it in the link above.*) ptoofunc = pdetoode[A[x, t], t, grid, difforder, True]; eq = {D[A[x, t], {t, 1}] == Plus[0.005 D[A[x, t], {x, 2}], D[0.1 Exp[-0.5 (x - 0.5)^2] A[x, t], {x, 1}], 0.1 B[t] - 0.2 A[x, t]], B[t] == (total - int)/L }; ic = A[x, 0] == 10; odeic = ptoofunc@ic; ode = {ptoofunc@First@eq, Last@eq /. intrule}; sollst = NDSolveValue[{ode, odeic}, {A /@ grid, B}, {t, 0, tend}]; solA = rebuild[sollst[[1]], grid] solB = sollst[[2]] ListLinePlot@solB (* Notice time is the 1st argument of solA *) Plot3D[solA[t, x], {x, ##}, {t, 0, tend}, PlotRange -> All] & @@ domain The results look the same as those in Akku14's answer so I'd like to omit them here.
Well, I admit this solution is a bit advanced, but it avoids iteration so it's quite fast.