The codes use default REALs. It is generally recommended that modern Fortran programs define a working precision parameter for floating point variables and then declare variables using that, as described in the first answer to a question here. If this were done, it would be possible to run all of your codes in either single or double precision by just changing one line of code.