g77 and DVF works fine but ifc causes a run-time error! Any ideas?

From: FCC (ferhun.caner_at_upc.es)
Date: 12/18/03


Date: Thu, 18 Dec 2003 22:52:13 +0100

Hello all,

I have been trying to put some .f90 code into an existing Fortran77 code,
which compiles and runs just fine with g77 under Linux and DVF under
Windows.

In Linux I am trying to use ifc (Intel Fortran90/95 compiler), but I am
getting the following error during run-time error checking with the switch
-C:

Run-Time Error 406: Array bounds exceeded

   In Procedure: ren$comp_adj

Diagnostics Entered From Subroutine ren$comp_adj Line 1249

Entered From Subroutine renumera Line 1217

Entered From MAIN PROGRAM Line 563

End of diagnostics

Now, considering the fact that this error never never happens with g77 but
it does happen with ifc, I wonder what I can do to solve it. I would
appreciate any input to me as to what might be a good idea to follow.

The compiler options I use with ifc are: -g -w -C
I have also tried: -g -w -C -align -zero -save, but same thing is happening.

Thanks in advance for your time.

Best,

FCC.

-------------------------------------
            program main
            parameter (miwrk=400000)
            dimension iwork(miwrk)
            .
            .
            .
            npoin=12
            .
            .
            .
            call renumera(mnodc,npoin,nelem,lnodc,krenum,krenum1,miwrk,
     + iwork,nw)
            .
            .
            .
-------------------------------------
      subroutine renumera(nnode,npoin,nelem,
     . lnods,lpntn,lpnta,
     . mxwrk,iwork,
     . log_err)

      implicit real*8 (a-h,o-z)
      dimension lnods(nnode,nelem),iwork(mxwrk),lpntn(npoin),
     . lpnta(npoin)
c
c computes the connections between degrees of freedom
c
      n1=1
      call ren$comp_adj(lnods,iwork(n1),nnode,nelem,npoin,npos)
      .
      .
      .
-------------------------------------
      subroutine ren$comp_adj(lnods,nodad,nnode,nelem,npoin,npos)

      implicit real*8 (a-h,o-z)
      dimension lnods(nnode,nelem),nodad(1)
c
c computes the connections between degrees of freedom (stored as
c a linked list)
c
      do ilib=1,npoin
         nodad(ilib)=0 <----------------- !!!!ERROR!!!!
      end do
      .
      .
      .
----------------------------------------
When you are about to die, a wombat is better than no company at all.
                -- Roger Zelazny, "Doorways in the Sand"