In free form source code blanks must not appear:
INTEGER :: wizzy ! is a valid keyword
INT EGER :: wizzy ! is not
REAL :: running_total ! is a valid name
REAL :: running total ! is not
Blanks must appear:
INTEGER FUNCTION fit(i) ! is valid
INTEGERFUNCTION fit(i) ! is not
INTEGER FUNCTIONfit(i) ! is not
Blanks are optional between some keywords mainly `END < construct >' and a few others; if in doubt add a blank (it looks better too).
For more information, click here