You can have a look at my PSIQS package at

http://www.tilman-neumann.de/psiqs.html
It is not small (~900 kb source code), but that's due to the following reasons:

* many comments

* different implementations of the same tasks (e.g. sieving, trial division)

* contains several "smaller" factoring algorithms

* contains all the basic algorithms required for a fast SIQS

It should be rather easy to understand. Start with class SIQS and subsequently pick the simplest member of each subalgorithm. E.g. at the beginning you might want to see SimpleSieve instead of DoubleBlockHybridSieveU...

Btw. I'ld bet that there is no Fortran implementation that is easy to understand ;-)