Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Need help resolving INTEGER based and "out of bounds" errors please 1

Status
Not open for further replies.

adishpatel

Programmer
Apr 23, 2014
3
GB
Quite a newbie here with fortran and require some assistance with the few errors that I am unable to resolve after quite a lot of efforts put into reading and understanding similar problems. Would be great if someone is able to help me out :)

Code:
$ make Trial1
gfortran    Trial1.f   -o Trial1
Trial1.f:16.24:

      INTEGER IER,IW,K,J
                        1
Error: Symbol 'j' at (1) already has basic type of INTEGER
Trial1.f:47.11:

      IW = 1500
           1
Warning: Extension: Conversion from INTEGER(4) to LOGICAL(4) at (1)
Trial1.f:164.12:

      DO 18,  K=1,1000
            1
Error: Loop variable at (1) must be INTEGER
Trial1.f:267.10:

      Fxr(2) = (Ex(2)/psi)*(FR(2)/ER(2))
          1
Warning: Array reference at (1) is out of bounds (2 > 1) in dimension 1
Trial1.f:268.10:

      Fyr(2) = (Ey(2)/phi)*(FR(2)/ER(2))
          1
Warning: Array reference at (1) is out of bounds (2 > 1) in dimension 1
Trial1.f:283.30:

      F(3) = (-S(2)-2.0d0*Fxr(2)-FT(2)*X(5))/mw
                              1
Warning: Array reference at (1) is out of bounds (2 > 1) in dimension 1
Trial1.f:284.32:

      F(4) = (-S(4)-2.0d0*a*Fyr(2))/Iwy
                                1
Warning: Array reference at (1) is out of bounds (2 > 1) in dimension 1
<builtin>: recipe for target 'Trial1' failed
make: *** [Trial1] Error 1

The code file can be found here: sysden.com/Trial.f

 
you have declared J a second time; apparently this is producing such an error in that line so that the entire line was not executed and, so, the other variable in the same line were not properly declared either and producing subsequent errors...follow?

Basically, until you gain more experience fix one error at a time...the first, every time. And THEN see what happens next.

I hope you know what you are doing when you say "IMPLICIT LOGICAL (A-Z)
 
You also have a spurious comma after the 18 in your do loop on line 267. I'd recommend coding in a later version of Fortran rather than Fortran 66.
 
Thank you salgerman and xwb for your help :)

xwb, this is part of my project work and have been asked to code as per Fortran 77. Don't really have an option there. :)

- I removed the "J" from line 16. Should have spotted that earlier. Don't know how I missed that out.
- Also changed "IMPLICIT LOGICAL (A-Z)" to "IMPLICIT NONE" which helped me get rid of the IW error and the DO loop error based on some advise.
- Managed to get rid of the Fxr and Fyr errors by changing Fxr(2) to Fxr(1) and similarly.

This has popped out a few more errors though.

$ make Trial1
gfortran Trial1.f -o Trial1
Trial1.f:219.20:

COMMON /PARAM/ V
1
Warning: Named COMMON block 'param' at (1) shall be of the same size as elsewhere (8 vs 16 bytes)
Trial1.f:302.20:

COMMON /EXTRA/ mw,mf,k1,k2,k3,k4,k5,k6
1
Warning: Named COMMON block 'extra' at (1) shall be of the same size as elsewhere (64 vs 360 bytes)
Trial1.f:301.20:

COMMON /PARAM/ V
1
Warning: Named COMMON block 'param' at (1) shall be of the same size as elsewhere (8 vs 16 bytes)
/tmp/cceH8Y8s.o:Trial1.f:(.text+0x800): undefined reference to `ode2_'
/tmp/cceH8Y8s.o:Trial1.f:(.text+0x800): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `ode2_'
/tmp/cceH8Y8s.o:Trial1.f:(.text+0xa46): undefined reference to `path_'
/tmp/cceH8Y8s.o:Trial1.f:(.text+0xa46): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `path_'
/tmp/cceH8Y8s.o:Trial1.f:(.text+0xb2e): undefined reference to `path_'
/tmp/cceH8Y8s.o:Trial1.f:(.text+0xb2e): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `path_'
/tmp/cceH8Y8s.o:Trial1.f:(.text+0xce0): undefined reference to `path_'
/tmp/cceH8Y8s.o:Trial1.f:(.text+0xce0): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `path_'
/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/../../../../x86_64-pc-cygwin/bin/ld: /tmp/cceH8Y8s.o: bad reloc address 0x0 in section `.pdata'
/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/../../../../x86_64-pc-cygwin/bin/ld: final link failed: Invalid operation
collect2: error: ld returned 1 exit status
<builtin>: recipe for target 'Trial1' failed
make: *** [Trial1] Error 1

I searched for all the "COMMON /PARAM/ V" entries and it seems that there are no other variables mentioned alongside. Don't know what exactly the error telling me to be honest.

Any help is greatly appreciated!
 
Oh wait, that was supposed to be in the "code" brackets. Can't seem to edit my post now. Sorry about that.
 
From what I can see, your common /param/ C at the top of the program has C being declared as C(2)

But common /param/ V in subroutine FCN has V being declared as a scalar.

In subroutine, they do calculate two creep forces, namely, front and rear axles...so Fxr(2), Fyr(2) was the intended thing to do on the left hand side of those equations...the fix was to go back to the declaration of those arrays and make them be 2 entries long and not just 1.
 
Oh, and just in case you don't know, common blocks are common memory blocks where values in memory are assignment to the variables listed...no matter what their names are. In your case, the variable in one common block is being referred to as C and in the other as V...but they are meant to be the same exact quantity and variable and as such they need to be declared in the same exact way...because this is not the case, above, the program complains about the overall length (in bytes) of the memory block.

When programming in this style, I typically keep variable names the same everywhere in my program so that I can type declarations and common blocks once and then copy and paste wherever else I need them.

 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top