- 2

- 0

I am calling a fortran 77 subroutine in a fortran 90 code and the results i am getting are wrong as confirmed from matlab. Can anybody please let me know where is the problem?

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Fortran:

```
do isss=1,5
do ig=1,10
dat0=dat(:,ig,isss)
do iss=1,5
if ((ig>isss) .and. (ig>iss) .and. (iss>isss)) then
dat1=dat(:,ig,iss)
temp=dat1(10:1:-1)
call convolvef77(dat0, m, temp, m, xcorr)
vshot(:,isss,iss)=xcorr(10:19)+vshot(:,isss,iss)
end if
end do
end do
end do
```

Fortran:

```
subroutine convolvef77 (x, lx, y, ly, xy)
c
c A basic implementation of convolution algorithm for two vectors
c I use zero-based arrays here.
c
integer lx, ly, i, j
real x(0:lx-1), y(0:ly-1), xy(0:lx+ly-2)
do 20 i = 0, (lx-1)
do 15 j = 0, (ly-1)
xy(i+j) = xy(i+j) + x(i) * y(j)
15 continue
20 continue
end
```

Last edited by a moderator: