Fortran でも色々なパターンは出尽くしているので、短めで奇をてらった方法を考えること1時間w 文字列のはみだしを利用。
program FizzBuzz
implicit none
character(len=4), parameter :: c3(0:2) = ['Fizz','',''], &
c5(0:4) = ['Buzz','','','','']
character(len=16) :: buf
integer :: i, n = 10000 ! max 10000
do i = 1, n
write(buf, '(2a4, a4, i4)') c3(mod(i, 3)), c5(mod(i, 5)), ' ', i
write(*, '(a8)', advance = 'no'), adjustl(buf)
end do
end program FizzBuzz