Three pieces of advice:
1) Put Wrd = Wrdnew and Wfd = Wfdnew at the beginning of your while-loop and remove Wrd = Wrdt/2 and Wfd = Wfdt/2 from the end of the loop.
2) Change the while condition to an OR instead of an AND.
3) Before entering the loop set Wrdnew and Wfdnew to your initial estimates and set Wrd and Wfd in such a way that they are bound to satisfy the while condition to ensure at least one trip through the loop.
The values of Wrdnew and Wfdnew will be your final answers at exit (if convergence is successful.)
