To solve this optimization problem, we will use linear programming techniques. The goal is to maximize profit given the constraints on land and plant nutrition.

Let's denote:
- $x$ as the number of acres dedicated to sunflowers,
- $y$ as the number of acres dedicated to roses.

The objective function (to be maximized) is the total profit from both sunflowers and roses, which can be expressed as $200x + 375y$.

Constraints are as follows:
1. Total land used cannot exceed 40 acres: $x + y \leq 40$.
2. The total amount of plant nutrition used cannot exceed 230 kg: $5x + 8y \leq 230$.
3. Acres dedicated to sunflowers and roses must be non-negative (since negative acres do not make sense): $x \geq 0, y \geq 0$.

Now, let's translate these constraints into Gurobi code in Python:

```python
from gurobipy import *

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

# Define the variables
sunflowers = m.addVar(lb=0, name="sunflowers")
roses = m.addVar(lb=0, name="roses")

# Set the objective function: Maximize profit
m.setObjective(200 * sunflowers + 375 * roses, GRB.MAXIMIZE)

# Add constraints
m.addConstr(sunflowers + roses <= 40, "total_land")
m.addConstr(5 * sunflowers + 8 * roses <= 230, "plant_nutrition")

# Optimize the model
m.optimize()

# Print the results
if m.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"Sunflowers: {sunflowers.x} acres")
    print(f"Roses: {roses.x} acres")
    print(f"Maximum Profit: ${m.objVal}")
else:
    print("No optimal solution found")

```