To solve this linear programming optimization problem, we first need to define the decision variables and the objective function. Let's denote the number of tankers of economical grade oil as \(E\), regular grade oil as \(R\), and premium grade oil as \(P\). The net revenue from each type of oil is given, and the requirements for compounds A and B for each tanker are also provided.

The objective function to maximize the total net revenue can be formulated as:
\[ \text{Maximize} \quad 500E + 1020R + 920P \]

Given the constraints on compounds A and B, we have:
- For compound A: \(4E + 5R + 8P \leq 200\)
- For compound B: \(2E + R + P \leq 100\)

Additionally, since the company cannot produce a negative number of tankers, we have non-negativity constraints:
\[ E \geq 0, R \geq 0, P \geq 0 \]

Now, let's translate this problem into Gurobi code in Python:

```python
from gurobipy import *

# Create a new model
m = Model("Oil_Production")

# Define the decision variables
E = m.addVar(lb=0, name="Economical")
R = m.addVar(lb=0, name="Regular")
P = m.addVar(lb=0, name="Premium")

# Set the objective function to maximize net revenue
m.setObjective(500*E + 1020*R + 920*P, GRB.MAXIMIZE)

# Add constraints for compound A and B availability
m.addConstr(4*E + 5*R + 8*P <= 200, name="Compound_A")
m.addConstr(2*E + R + P <= 100, name="Compound_B")

# Optimize the model
m.optimize()

# Print the results
if m.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"Economical: {E.x:.2f} tankers")
    print(f"Regular: {R.x:.2f} tankers")
    print(f"Premium: {P.x:.2f} tankers")
    print(f"Total Revenue: ${m.objVal:.2f}")
else:
    print("No optimal solution found")

```