- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
integer*4 i,idrpar
do 2 i=1,nro
if(inewformat.eq.0)then
do idrpar=1,6
if(lderivp(idrpar,i).eq.1)lderivp(i)=1
enddo
indro(i)=i
iro=i
else if(inewformat.eq.1)then
icharirg=iaa(rcc(i))
do idrpar=1,6
if(lderiv(idrpar,icharirg).eq.1)lderiv(icharirg)=1
enddo
indro(i)=icharirg
iro=icharirg
endif
re2.f(87): error #6351: The number of subscripts is incorrect. [LDERIVP]
if(lderivp(idrpar,i).eq.1)lderivp(i)=1
------------------------------------^
re2.f(94): error #6351: The number of subscripts is incorrect. [LDERIV]
if(lderiv(idrpar,icharirg).eq.1)lderiv(icharirg)=1
----------------^
Anybody has idea?
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You have not shown the declaration of variable lderiv, so there is not much that one can say at this point, other than to recommend compiling with IMPLICIT NONE added to your sources and adding any needed type and dimension declarations.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
if(lderivp(idrpar,i).eq.1)lderivp(i)=1
===
if(
lderivp(idrpar,i) .eq.1)
lderivp(i)
=1
You use 2 subscripts on lderivpin one place and 1 subscript onlderivp in the second place
Same with lderiv in
if(lderiv(idrpar,icharirg).eq.1)lderiv(icharirg)=1
You have inconsistent use of subscripts, and therefore a typographical or fundamental programming error.
Jim Dempsey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You have to read your code, understand what the writer (you? someone else?) intended it to perform, and then make the corrections. I (we) do not have sufficient information as to the intentions of the programmer to make this decision
re2.f(87): error #6351: The number of subscripts is incorrect. [LDERIVP]
if(lderivp(idrpar,i).eq.1)lderivp(i)=1
------------------------------------^
The above indicates that lderivp has two subscripts but only one is supplied. There is insufficient information for me to determine which of:
a) what the other subscript should be
or
b) is "lderivp(i)=1" mistakenly used in place of a different variable name
re2.f(94): error #6351: The number of subscripts is incorrect. [LDERIV]
if(lderiv(idrpar,icharirg).eq.1)lderiv(icharirg)=1
----------------^
The above is similar, excepting you have a single subscript array being indexed using two subscripts.
We have insufficient information to determine if the additional subscript is in error (or which is in error) or if the variable name is in error.
Read the source of the program, or if you typed this in by an example you read somewhere, check for typing errors as you have an inconsistency of use error.
Jim Dempsey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
DIMENSION DYNAM(70,LP1*LP2*LP3,30)
WRITE(IOCODE,*)II,JJ,KK
DO K=1,KK
DO J=1,JJ
DO I=1,II
IP=I+(J-1)*JJ+(K-1)*JJ*II
DYNAM(IP,1)=I
DYNAM(IP,2)=J
DYNAM(IP,3)=K
DYNAM(IP,4)=TX(I,J,K)
DYNAM(IP,5)=TY(I,J,K)
DYNAM(IP,6)=TZ(I,J,K)
DYNAM(IP,7)=PDAT(I,J,K)
DYNAM(IP,8)=TX(I,J,K)*TY(I,J,K)*
& TZ(I,J,K)
DYNAM(IP,9)=VISO(I,J,K)
DYNAM(IP,10)=VISW(I,J,K)
DYNAM(IP,11)=VISG(I,J,K)
DYNAM(IP,12)=CT(I,J,K)
DYNAM(IP,13)=BO(I,J,K)
DYNAM(IP,14)=BW(I,J,K)
DYNAM(IP,15)=BG(I,J,K)
DYNAM(IP,16)=RHOO(I,J,K)
DYNAM(IP,17)=RHOW(I,J,K)
DYNAM(IP,18)=RHOG(I,J,K)
DYNAM(IP,19)=PBOT(I,J,K)
DYNAM(IP,20)=QO(I,J,K)
DYNAM(IP,21)=QW(I,J,K)
DYNAM(IP,22)=QG(I,J,K)
DYNAM(IP,23)=SON(I,J,K)
DYNAM(IP,24)=SWN(I,J,K)
DYNAM(IP,25)=SGN(I,J,K)
DYNAM(IP,26)=P(I,J,K)
DYNAM(IP,27)=CUMO(J,K)+QOO*DELT*0.001
DYNAM(IP,28)=CUMW(J,K)+QWW*DELT*0.001
DYNAM(IP,29)=CUMG(J,K)+QGG*DELT*0.001
C DYNAM(IP,27)=KRG(I,J,K)
c DYNAM(IP,28)=KROG(I,J,K)
c DYNAM(IP,29)=PCOW(I,J,K)
c DYNAM(IP,30)=PCGO(I,J,K)
ENDDO
ENDDO
ENDDO
WRITE(IOCODE,111)
111 FORMAT(/TR2,'IP',TR2,'I',TR2,'J',TR2,'K',TR8,'TX',
& TR8,'TY',TR11,'TZ',TR10,'PDAT',TR8,'TOTRANS',
& TR7,'VISO',TR10,'VISW',TR8,'VISG',TR10,'CT',TR10,'BO',
& TR11,'BW',TR11,'BG',TR10,'RHOO',TR10,'RHOW',TR10,'RHOG',
& TR10,'PBOT',TR10,'QO',TR10,'QW',TR10,'QG',TR10,'SO',
& TR11,'SW',TR11,'SG',TR10,'Pressure'/1X,310('-')/)
DO IP=1,KK*JJ*II
C WRITE(IOCODE,'(4I3,26(1X,E12.4))')IP,'I J K'
WRITE(IOCODE,'(4I3,30(1X,E12.4))')IP,INT(DYNAM(IP,1)),
&INT(DYNAM(IP,2)),INT(DYNAM(IP,3)),(DYNAM(IP,IQ),IQ=4,30)
ENDDO
Error6351: The number of subscript is incorrect. [DYNAM]
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Here is your declaration of DYNAMP:
[fortran]DIMENSION DYNAM(70,LP1*LP2*LP3,30)[/fortran]
How many subscripts are there in this declaration? Do they match the number of subscripts in all subsequent occurrences of the same variable in the subprogram?

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page