Thanks very much! As usual it is the obvious thing that is staring you in the face all the time, the subroutine labels were all numerics in a couple of cases. Corrected them and it ran straight away! The lowercase tip for sub routine names is a useful one.
The program now works well. Each square has two passes at 90° to each other to form the chequer plate and then that square is repeated across the width with one subroutine and done the length with the higher level one.
I also had a look but Russ's link and intend to go back and study that further. I must also look at the VAR monitor as that will be useful in future.
Once again the forum has come up trumps,
Thanks Guys,
Andrew