Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
28456 Discussions

module files when there's no interface change

normclerman
Beginner
510 Views
Hello everyone,

I'm working on a large program involving hundreds of files. I work entirely from the command line and maintain my own make files. To avoid a compilation cascsde when I change the workings of a module but don't modify its interface, I've developed a make system that saves a module's mod file, compares it with the one generated by the compilation, and then restores the old one, with its original time and date, if it's identical to the new one.

I've make a very, very minor modification to the source code of one module, one that I'm absolutely positive makes no change to its interface. But when I make my program, the new and saved mod files differ, and furthermore many subsequently generated mod files also differ from their last version. The message I get for all is like this:

lensput.mod lensput.last.mod differ: char 45, line 1

(To compare the files I use the cmp utility provided with the MKS Toolkit, which provides a Unix-like environment on a Windows machine.)

For every comparison the difference is always char 45, line 1, and indeed when I look at the two files using notepad there appears to be a difference only in the first line. (The file is a binary file so it's impossible to decipher the difference.)

Anyone have any idea what the difference is or how to avoid it.

I'm using compiler version 6.6. Here are my compiler options:

COMPILER OPTIONS BEING USED

/noalign:commons /noalign:dcommons
/align:records /noalign:sequence
/noalign:rec1byte /noalign:rec2byte
/noalign:rec4byte /noalign:rec8byte
/altparam /annotations:code
/annotations:detail /annotations:feedback
/annotations:inlining /annotations:loop_transforms
/annotations:loop_unrolling /annotations:prefetching
/annotations:shrinkwrapping /annotations:software_pipelining
/annotations:tail_calls /annotations:tail_recursion
/arch:k7 /noasmattributes:machine
/noasmattributes:source /assume:accuracy_sensitive
/noassume:buffered_io /noassume:byterecl
/noassume:cstring /noassume:dummy_aliases
/noassume:minus0 /assume:protect_constants
/assume:source_include /noassume:underscore
/noassume:2underscores /noautomatic
/nobintext /ccdefault:default
/nocheck:arg_temp_created /nocheck:bounds
/nocheck:flawed_pentium /nocheck:format
/nocheck:output_conversion /nocheck:overflow
/nocheck:power /nocheck:underflow
/convert:native /D:_WIN32=1
/D:_DF_VER=660 /D:_VF_VER=660
/D:_X86_=1 /D:_M_IX86=500
/D:_INTEGRAL_MAX_BITS=32 /double_size:64
/nod_lines /error_limit:30
/extend_source:72 /nof66
/nof77rtl /nofast
/nofltconsist /nofpscomp:filesfromcmd
/nofpscomp:general /nofpscomp:ioformat
/nofpscomp:ldio_spacing /fpscomp:libs
/nofpscomp:logicals /nofpconstant
/fpe3 /free
/g1 /Gt0
/iface:stdref /nointconstant
/integer_size:32 /libdir:automatic
/libdir:user /nolibs_dll
/nomachine_code /math_library:fast
/mixed_str_len_arg /nomodule
/names:uppercase /noinclude
/O4 /inline:speed
/notransform_loops /nopipeline
/tune:k7 /unroll:0
/nopad_source /real_size:32
/norecursive /reentrancy:none
/noshow:include /show:map
/stand:f95 /nosyntax_only
/notraceback /novms
/warn:alignments /warn:argument_checking
/warn:declarations /nowarn:errors
/warn:general /nowarn:granularity
/nowarn:ignore_loc /nowarn:stderrors
/nowarn:truncated_source /warn:uncalled
/warn:uninitialized /warn:unused


Thanks,

Norm
0 Kudos
2 Replies
Steven_L_Intel1
Employee
510 Views
Hi, Norm..

There is a timestamp written into the .mod file - that's probably what you are seeing. The header is 168 bytes long - you probably want to ignore everything in the header after the first 12 bytes.

Steve
0 Kudos
normclerman
Beginner
510 Views
Thank you Steve.

Norm
0 Kudos
Reply