[comp.lang.fortran] Porting from VAX to Ultrix fortran problem

buc@jessica.stanford.edu (Robert Richards) (10/20/90)

Trying to port a fairly large statistical package (TSP, about 450
subroutines) over from a VAX to a DECStation 3100 using f77 2.1 (and
ld 4.4).  The port has worked to other Unix systems.  The following
problems occur.

1. "a large common placed in gp area because also defined as small
common ..."  This apparently occurs because the named COMMON blocks are
not the same length in every subroutine.  Strictly speaking, the code
violates the f77 standard in this regard, but every other Fortran
compiler/linker used has been able to handle this.  The result is that
when one run's the program, variables in the named COMMON blocks do
not retain their values.  For example, in fresh.f, one initialize's
/IOCOM/ OUNIT to 6, but in other subroutines, OUNIT has the value 0
(without ever being intentionally modified by my code).  In the
previous version, it was somewhat worse, because OUNIT would be set to
random large values which would cause crashes when the code tried to
WRITE to OUNIT as a Fortran i/o unit.

2. "gp relocation out-of-range in .text section for relocation entry
___ for .... ___. (for non .sdata or .sbss symbol)" messages for about
5 subroutines.

Any ideas on these problems?