- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Good Morning Everyone,
I am trying to compile/link a FORTRAN program with a module and received the following error message:
fatal error LNK1106: invalid file or disk full: cannot seek to 0x3047
Can any of you help me to resolve this. Thanks. Here is what I am trying to do. I have a small program with two subroutines, which is working finewithIFC. Since the two subroutines can be applied/used by other programs, I decide to put them into anmodule. The followingwere what I did:
1. In .NET, select New Project, Intel Fortran, Console application and a name said DBmain.
2. Open DBmain.f90 and copy the source of the main program. Modify DBmain.f90 by adding 'use DBmodule' at the beginning of the program.
3. Add a new source file call DBmodule.f90 to DBmain Source files.
4. Open DBmodule.f90 and copy the two subroutine into the file. Modify the source by adding 'MODULE DBmodule' at the beginning of the program and 'END MODULE DBmodule' at the end.
5. In DBmain property page, add 'DBmodule.mod' inLinker:Input: additional dependencies.
6. Compile DBmodule.f90 to generate DBmodule.mod.
7. When I try to build DBmain.exe the error occurred.
What did I do wrong?Your assistance to resolve this is greatly appreciated. Thanks.
Tom Lin
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks Steve. It works. Have a great day.
Tom Lin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Steve, Thanks for your help. Maybe you can help me to unlock this mystery too. Currently we are moving our FORTRAN codes from UNIX to Window operating system. Some of our subroutines were developed in early sixties, which are old butreliable. Among them, there is oneroutine calling two subroutines (said subroutines A and B)to perform iterations/calculations. What I observed was very strange. If I insert a write statement between the two calls (before callingsubroutine B, but after calling A), theoutputs of the calculationare exactly the same as those from UNIX. But if I remove the write statment, the outputs changed. The difference is not a lot.But one would expect the twooutputs should be exactly the same. Any clue? initialization? common block alignment?or the waycompiler handling call? Thanks for your time.
Tom Lin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Try building with array and string bounds checkng on (this is on by default in a Debug Visual Studio build) and with the "Generate Interface Blocks" (/gen_interface) and "Interface block checking" (/warn:interface) options selected and see what happens.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page