Peddling with commons brought me this experience:
Best to put them in an INCLUDE file which then has a similar purpouse as a header file in other languages.
Now, there is something really scary. Eventhough those blocks should have the purpouse of preserving the variable values between different units, it may happen that a block ends up with undefined values upon exit from e.g. a subroutine! This could take place if the block data is not shared between the unit which calls the subroutine and the called subroutine. To give an example, let there be common block /DAT/ in subrotine fB and fC. You, the novice fortran programmer, would probably think - "hmm, if i call fB it will do what I want it to do with /DAT/ and