# \`block\` syntax and my confusion

**URL:** <https://fortran-lang.discourse.group/t/block-syntax-and-my-confusion/1121>\
**Category:** Help\
**Created:** [April 29, 2021, 1:00pm UTC](https://fortran-lang.discourse.group/t/block-syntax-and-my-confusion/1121 "2021-04-29T13:00:50Z")\
**Posts on this page:** 1\
**Showing post:** 24

<div class="post-metadata">

**Author:** ![Beliavsky](https://avatars.discourse-cdn.com/v4/letter/b/ba8739/32.png) [@Beliavsky](https://fortran-lang.discourse.group/u/Beliavsky)\
**Post date:** [May 4, 2021, 7:08pm UTC](https://fortran-lang.discourse.group/t/block-syntax-and-my-confusion/1121/24 "2021-05-04T19:08:51Z")

</div>

> [@shahmoradi](#):
>
> Does it mean that the use of `block` in a tight loop would not have any performance penalty? Testing this would likely be the ultimate answer. But I am curious to hear anyone’s comment or experience on this matter. Thanks in advance.

My earlier [Euler program](https://fortran-lang.discourse.group/t/anecdotal-fortran/704/82) and one using BLOCK

```
program main
! simulate Euler's number e
implicit none
integer, parameter :: nsim = 10000000, niter = 10
integer :: i,iter,nsum(nsim)
call random_seed()
do iter=1,niter
   do i=1,nsim
      block
         real :: xsum,xran
         integer :: j
         xsum = 0.0
         j = 0
         do
            j = j + 1
            call random_number(xran)
            xsum = xsum + xran
            if (xsum > 1.0) exit
         end do
         nsum(i) = j
      end block
   end do
   print*,sum(nsum)/real(nsim),minval(nsum),maxval(nsum)
end do
print*,exp(1.0)," true"
end program main

```

take the same time using gfortran -O2.

---

_[View the full topic](https://fortran-lang.discourse.group/t/block-syntax-and-my-confusion/1121)._
