Please provide example code and instructions to produce and observe described behaviour.
The following code works as expected. Compile with /debug, link and open in the debugger.
! examine BLOCK DATA
BLOCK DATA xyz
implicit none
real x, y, z
common /uvw/x, y, z
data x,y,z/1.0,2.0,3.0/
END BLOCK DATA xyz
program mypgm
implicit none
real x, y, z
common /uvw/x, y, z
print *,x,y,z
end program
Section B3 of of the Fortran 2018 standard lists 'Obsolescent Features'. Section B.3.11 says:
B.3.11 COMMON and EQUIVALENCE statements and the block data program unit
1 Common blocks are error-prone and have largely been superseded by modules. EQUIVALENCE similarly is error-prone. Whilst use of these statements was invaluable prior to Fortran 90 they are now redundant and
can inhibit performance. The block data program unit exists only to serve common blocks and hence is also redundant.
In my own experience, I have seen that COMMON blocks in medium size and large programs cause a lot of trouble. They may be replaced by using module variables, user-defined composite types, etc.