def METHOD_NAME(annotate=True):
    u = TrialFunction(V)
    v = TestFunction(V)
    u_0 = Function(V, name="Value")
    u_obs = Function(V, name="ObsValue")
    dt = 0.5
    T =  1.0
    F = ( (u - u_0)/dt*v - f*v)*dx
    a, L = lhs(F), rhs(F)
    F_obs = ( (u - u_obs)/dt*v - g*v)*dx
    a_obs, L_obs = lhs(F_obs), rhs(F_obs)
    t = float(dt)
    #print "u_0.vector().array(): ", u_0.vector().array()
    adjointer.time.start(0)
    while t <= T:
        solve(a == L, u_0, annotate=annotate)
        solve(a_obs == L_obs, u_obs, annotate=annotate)
        adj_inc_timestep(time=t, finished=t+dt>T)
        t += float(dt)
    return (u_0, u_obs)