An effective fixpoint semantics for linear logic programs