Program bloky implicit none real :: t(2) t = 1.0 print *, t block real :: t((2) t = 2.0 end block print *, t end program
The Fortran works OK but the debugger thinks t is [2.0, 2.0] after the end block. Also if t was not declared outside the block the debugger still things it is valid both before and after the block. ( VS2013 Upd 5, Fortran XE2017 Upd 4)
Additionally the size of t is redefined by the definition in the block so if it was shorter part if the array is then not accessible to the debugger or if it was longer the debugger is presumably looking at some junk location?