We are new to the Compaq Visual Fortran (CVF) Compiler and have found something that we can't explain. We are merging 2 programs together with all data transfer between them via a shared common block. We are linking an object (from Program A) provided by CVF developer A with another 3 objects from Program B provided by CVF developer B. The developers do not share their source code. As noted, the programs share a common block (via include) which contains all of the variables needed to pass back and forth between programs. The group A and B objects are linked by CVF developer A and an program executable is created. Upon execution, Program A initializes two variables in the shared common (an integer*4 and a character*180) to specific non-zero values, then calls Program B as a subroutine. When Program B prints these variables, they are both zero (as if they have been reset to zero).
We have done some similar tests linking 2 small test program object files with this same ?shared common? method of passing variables and it seems to work fine. Developer A has also successfully tested this approach using a small callable ?dummy? version of Program B (that returns some dummy variables back just like Program B would have). Similarly, Developer B has successfully tested this approach using a small dummy ?caller? version of Program A (that sends some dummy variables like Program A would have).
Has anyone encountered this before? What could we be missing? Any ideas/suggestions are welcome.