Fortran Wiki
block

block

The block creates its own name space. See the following example

program blockTest
  implicit none
  real, parameter :: x=1.1
  print *, "before block: x=",x      ! yields: 1.1
  block
    integer, parameter :: x=2
    print *, "inside block: x=",x    ! yields: 2
  end block
  print *, "after block: x=",x       ! yields: 1.1
end program blockTest

One can also name each block for more clarity in larger programs

program blockTest
  implicit none
  real, parameter :: x=1.1
  print *, "before block: x=",x      ! yields: 1.1
  someName: block
    integer, parameter :: x=2
    print *, "inside block: x=",x    ! yields: 2
  end block someName
  print *, "after block: x=",x       ! yields: 1.1
end program blockTest