Dynmically adjusting deltaT is used in several OpenFOAM codes but not in icoFoam because that is simple example code which we wanted to keep as simple as possible. However, it is easy to add this functionality, have a look at say interFoam and transfer the relevant parts across to icoFoam.

Thanks, Henry,
I added a couple of lines copied from the interFoam.C to icoFoam.C in order to make it dynamically adjust deltaT. The new solver runs fine for single node computing. However it gets into trouble when I set it to run in parallel mode.