Of course there are many uses for scratch files, files whose contents are used within the program execution and are automatically deleted afterwards. My problem with fortran scratch files has always been that you cannot specify the name of the file. On most systems, including unix/posix systems, the name contains the device and directory path information. A large scratch file typically needs to be located on a particular device, not necessarily on the system /tmp location, in order to have sufficient capacity, i/o bandwidth, shared/private access permissions, etc. The fact that the file name cannot be specified has always made fortran scratch files useless to me.
On unix/posix machines, a common work around for this is to open a file in the normal way, with a directory/file name specified. Then immediately after the file is opened, the unlink system call is executed. This removes the file from the file system, but it is still available to the running fortran program. Upon a close, the file space is deleted immediately. The downside for this approach is that you cannot monitor the file size externally while the program is running, you can only monitor the total disk usage (e.g. with du).