You should consider friction specially in submarines, this ships can travel both under and on whater surface so the speed they can reach may vary according - this to account basic fluid dynamics.
The whole dynamics should be that the ship has an orientation and a propulsion force (both positive or negative), this means an acceleration toward the ship direction. Another acceleration is due the friction, it should be propotional to the speed and backward oriented. The propotional factor may depend upon the ship's shape (repeat it 10 time as fast as you can) and if is in submarine or normal mode.
Then you need to integrate the acceleration to the speed and the speed to the position. Euler integration is not THE integration (what about runge-kutta?) anyway you have to integrate and have to choose between speed (of integration calculus) and accuracy (your ship should not explode or travel backward faster than light).
Summarizing, a ship can be represented by:
- friction states
- max propultion acceleration
- the friction status
- current position
- velocity vector
- current acceleration factor
The first two depends upon each ship type, the others defines the complete status of each ship in the game and the last two of this are the ones you can directly control (you should consider the rudder so the heading become an indirect parameter controlled by the rudder position, the choose is yours)
The friction model for wind is the same:
The wind hits the ship in a direction, the shape (CX) for that direction is connected to the (air)friction experienced by the ship: the acceleration is propotional to that friction and has the same direction of the wind (as if the ships goes where the wind comes at the wind speed and the air is still).
Assuming that your ship is simmetric over the heading axe, you can compute the angle of wind incidence throught the scalar product of the normalized heading and wind vectors, then use a function that compute the friction ( max friction for 90° degrading to min friction when going to 0° or 180°).
If you are lazy you can consider the ship spherical (I whould like to see one in my life) and completely ignore the wind angle measurement simply applying the constant friction multiplier to your wind vector.
The same for the currents of course.
Obviously the final acceleration you have to integrate is the vectorial sum of all the trust and friction based accelerations you compute.