The following program produces incorrect output:
! [JvO] 2005-09-11 Salford\SM-Err.f95
PROGRAM comss
IMPLICIT NONE
integer :: j
INTEGER, PARAMETER :: p = 8 ! Number of variables
real, dimension(p,p) :: h
CHARACTER(10) :: dd, tt
CHARACTER(LEN=*), PARAMETER :: fmt1='(A/(8f8.2))', fmt2='(/T3,A,TR4,A)'
call date_and_time(dd, tt)
dd(5: ) = '-' // dd(5:6) // '-' // dd(7:8)
tt(3: ) = ':' // tt(3:4) // ':' // tt(5:6)
WRITE (*, fmt2) dd, tt
h = 2.25 + reshape((/ (real(j)-0.4, j=1,p**2) /), (/p,p/) )
print fmt1, ' CM [020] H:', H(:,1), (h(j,j),j=1,p)
FORALL (j = 1:p)
h(j, j) = h(j, j) + 1.125 ! Salford: ERROR
end forall
print fmt1, ' CM [024] H:', H(:, 1), (h(j,j),j=1,p)
END PROGRAM comss
! D:\Fortran\Test\Salford>ftn95 /check sm-err /lgo
! [FTN95/Win32 Ver. 4.8.0 Copyright (C) Salford Software Ltd 1993-2005]
! NO ERRORS [<COMSS> FTN95/Win32 v4.8.0]
! Creating executable: D:\Fortran\Test\Salford\lgotemp@.exe
! Program entered
! 2005-09-11 15:34:35
! CM [020] H:
! 2.85 3.85 4.85 5.85 6.85 7.85 8.85 9.85
! 2.85 11.85 20.85 29.85 38.85 47.85 56.85 65.85
! CM [024] H:
! 66.97 3.85 4.85 5.85 6.85 7.85 8.85 9.85
! 66.97 66.97 66.97 66.97 66.97 66.97 66.97 66.97
! =======
! Expected output::
! CM [020] H:
! 2.85 3.85 4.85 5.85 6.85 7.85 8.85 9.85
! 2.85 11.85 20.85 29.85 38.85 47.85 56.85 65.85
! CM [024] H:
! 3.98 3.85 4.85 5.85 6.85 7.85 8.85 9.85
! 3.98 12.98 21.98 30.98 39.98 48.98 57.98 66.98
[JvO]