fork download
  1. program nested_harmonic_sum
  2. implicit none
  3. integer :: i, j
  4. real(8) :: sum1, sum2, sum3, sum4
  5.  
  6. ! Method 1: Double loop using DO
  7. sum1 = 0.0d0
  8. do i = 1, 100
  9. do j = 1, i
  10. sum1 = sum1 + 1.0d0 / dble(j)
  11. end do
  12. end do
  13. print *, 'sum1 =', sum1
  14.  
  15. ! Method 2: Using WHILE-like structure with DO
  16. sum2 = 0.0d0
  17. i = 1
  18. do while (i < 100)
  19. j = 1
  20. do while (j < i)
  21. sum2 = sum2 + 1.0d0 / dble(j)
  22. j = j + 1
  23. end do
  24. i = i + 1
  25. end do
  26. print *, 'sum2 =', sum2
  27.  
  28. ! Method 3: Nested FOR-like loops with inner sum
  29. sum3 = 0.0d0
  30. do i = 1, 99
  31. sum4 = 0.0d0
  32. do j = 1, i - 1
  33. sum4 = sum4 + 1.0d0 / dble(j)
  34. end do
  35. sum3 = sum3 + sum4
  36. end do
  37. print *, 'sum3 =', sum3
  38.  
  39. end program nested_harmonic_sum
Success #stdin #stdout 0.01s 5284KB
stdin
Standard input is empty
stdout
 sum1 =   423.92512928159368     
 sum2 =   413.56037424631501     
 sum3 =   413.56037424632217