Frank,
It depends on exactly what you're trying to achieve. If you were trying to call this routine from, for example, Excel or Visual Basic, then you've almost gotten everything right. You would still need to mark this routine as BIND(C).
However, if I understand you correctly, you plan to call this DLL from another Fortran program compiled by Simply Fortran. If that is the case, you can do away with much of the complications. First, you do not need to add the !GCC$ ATTRIBUTES line; that line is necessary to specify the symbols being exported and the calling convention. By default, gcc should export everything, though, and the calling convention simply isn't important if you're linking a Simply Fortran DLL with a Simply Fortan EXE. Both would use the same calling convention.
You should also remove the flag -fno-underscoring from the Fortran compiler flags. That flag basically tells the compiler that it shouldn't decorate any function names with a trailing underscore, a common, but not standard, convention for Fortran compilers. However, again, since you'll be calling from another Fortran EXE, we don't need to remove the underscore. In fact, not removing it may cause it to not link properly.
Next, on the Linking tab in the Project Options dialog, be sure that "Build Import Library" is checked. This option causes the compiler to generate a "<mylibraryname>.a" file, named similar to the DLL itself, that can be used in another project to link against. This step can make building your EXE drastically easier because the compiler will use the ".a" file for linking, and will use the DLL at runtime.
Let me know if I understand everything correctly. Creating and linking against a DLL created in Simply Fortran from a Simply Fortran EXE is actually quite easy. Matters only become complicated when you wish to call the DLL from another language, especially if everything is 32-bit.
Jeff Armstrong
Approximatrix, LLC