I am using XE Composer 22.214.171.124 (I understand I am out of date on that release, but still working out licensing issues). I am getting a number of bad preprocessor lines on an fi file which is being included in a f90 file. This is code I am ported from 2008 up to 2012 (11.1.065 to XE Composer 2013). I am enabling the /fpp option for the fortran preprocess option. I am building in debug configuration using the 64 bit compiler. It seems all # definitions in the fi file are throwing an error. Is there either 1) a patch I am missing (known issue that was fixed) or 2) has something changed in the compiler between 2008 and 2013 to create this issue?
The symptom suggests that you don't in fact have /fpp enabled. Please attach a ZIP of the buildlog.htm showing the compile with the error.
Thanks for the fast response Steve. It appears my problem was the location of the include statement in the module. Stupid rookie move in placing it in the contains block. When I moved it up, it worked fine.
The problem I get now is that the compiler can't find the .fi file. So where exactly does the compiler (fortran) expect the fi to be when executing the pre-compile step? I have the fi co-located with the .f90 source file that is trying to include it and I do have both files listed in the solution explorer window (one under header files and the other under source files. I really want to avoid having to add numerous relative paths in the include path in order to get this work so I wanted to understand how the compiler is finding these files when a compile is kicked off.
First, where you have the file in Solution Explorer has no bearing on anything. That's simply an organization for your convenience.
You're talking #include, right? (The file type is irrelevant.) Theoretically, it should follow the same rules as INCLUDE - the default being the folder containing the source with the include line. But I have a recollection of an inconsistency here and will check our bug tracking system in the morning to see what happened to that. Look also at the option /assume:source_include.
Do you really need to use #include rather than INCLUDE?
I added the /assume source_include to the command line args and the compiler threw a number of warning saying it ignored it. 10155 and 10161 to be exact. Am I invoking it correctly?
I am using #includes mainly because the software we are compiling has been around since the beginning of the current millennium and has been on VS2008 with 11.1.065 Fortran ever since.
On another note, we had purchased this version of composer 4 years ago and the license has expired (schedule did not allow us to upgrade at the time). Contracts said it will be 6 weeks to renew it and since intel does not allow you to download without a current license (IT people told me), is there another path I can take to get the latest set of patches since I think they may remedy a number of issues I am seeing and limit the amount of your time I am wasting?
Thanks the compiler/preprocessor did accept it but still unable to find the file during fpp step. I did a watch option and did not see the path in the list of includes even with that option enabled. I fear this might have bee fixed in a patch.
You should be able to download updates issued within a year of when you registered your license. You could use a 30 day trial to see if a recent update helps with your issues.
I checked our records. Indeed, the preprocessor did not look for #include files in the same location as the source file nor did it honor /assume:source_include. This was fixed in version 14.