Combined immersed--boundary/finite--difference methods for three--dimensional complex flow simulations