- #1

komp

- 5

- 0

I have been trying to read in a data using Fortran but for some reasons, it doesn't read the data correctly. Please, any help will be appreciated. To read the data, I used the following (Note, for the attached data, Nm=1, nw-nu=5, nw=10).

The array data(i,j,m,n) is declared as data(1:Nm,1:Nm,-nw:nw,0:nw-u). When it tries reading, it spits the error message "Subscript #4 of the array data has value 1 which is greater than the upper bound of 0". A snippet of the code is below.

2015 read(40,"(a72)") lineda

do n=0,nu

do m=-nw,nw-nu

do i=1,Nm

do j=1,Nm

if(index(lineda(1:72),'data') /= 0 ) then

read(40,"(1x,i2,1x,i2,2x,i5,2x,i5,1x,2(1x,e15.8))",IOSTAT=istat) i1,i2,i3,i4,r1,r2

data(i,j,m,n)=dcmplx(r1,r2)

write(809,"(1x,i2,1x,i2,2x,i5,2x,i5,1x,2(1x,e15.8))") i,j,m,n,data(i,j,m,n)

if(istat /= 0) goto 2018

else

goto 2015

endif

2018 continue

enddo

enddo

enddo

enddo

The sample data is attached.

Thank you very much for your help.

The array data(i,j,m,n) is declared as data(1:Nm,1:Nm,-nw:nw,0:nw-u). When it tries reading, it spits the error message "Subscript #4 of the array data has value 1 which is greater than the upper bound of 0". A snippet of the code is below.

2015 read(40,"(a72)") lineda

do n=0,nu

do m=-nw,nw-nu

do i=1,Nm

do j=1,Nm

if(index(lineda(1:72),'data') /= 0 ) then

read(40,"(1x,i2,1x,i2,2x,i5,2x,i5,1x,2(1x,e15.8))",IOSTAT=istat) i1,i2,i3,i4,r1,r2

data(i,j,m,n)=dcmplx(r1,r2)

write(809,"(1x,i2,1x,i2,2x,i5,2x,i5,1x,2(1x,e15.8))") i,j,m,n,data(i,j,m,n)

if(istat /= 0) goto 2018

else

goto 2015

endif

2018 continue

enddo

enddo

enddo

enddo

The sample data is attached.

Thank you very much for your help.

#### Attachments

Last edited: