# Single column output

**URL:** <https://fortran-lang.discourse.group/t/single-column-output/4349>\
**Category:** Help\
**Created:** [September 19, 2022, 6:40am UTC](https://fortran-lang.discourse.group/t/single-column-output/4349 "2022-09-19T06:40:19Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Shahid](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/shahid/32/3672_2.png) [@Shahid](https://fortran-lang.discourse.group/u/Shahid)\
**Post date:** [September 19, 2022, 6:40am UTC](https://fortran-lang.discourse.group/t/single-column-output/4349/1 "2022-09-19T06:40:19Z")

</div>

How to get a single column output?

The code is like this:

```auto
program column_test
    implicit none
    real ( kind = 8 ) , dimension ( 5 ) :: r
    call random_number ( r )
    print *, r
end program column_test

```

---

<div class="post-metadata">

**Author:** ![Ali](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/ali/32/751_2.png) [@Ali](https://fortran-lang.discourse.group/u/Ali)\
**Post date:** [September 19, 2022, 6:58am UTC](https://fortran-lang.discourse.group/t/single-column-output/4349/2 "2022-09-19T06:58:00Z")

</div>

Try this one!

```auto
program column_test
    implicit none
    real ( kind = 8 ) , dimension ( 5 ) :: r
    integer :: i
    character(*), parameter :: newline = new_line("")

    call random_number ( r )
    print*, (r(i), newline, i=1, 5)

end program column_test

```

---

<div class="post-metadata">

**Author:** ![everythingfunctional](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/everythingfunctional/32/176_2.png) [@everythingfunctional](https://fortran-lang.discourse.group/u/everythingfunctional)\
**Post date:** [September 19, 2022, 1:19pm UTC](https://fortran-lang.discourse.group/t/single-column-output/4349/3 "2022-09-19T13:19:25Z")

</div>

If you’re willing to pick up a couple dependencies,

```fortran
program column_test
    use iso_fortran_env, only: real64
    use iso_varying_string, only: char
    use strff, only: join, to_string, newline

    implicit none

    real(real64) :: r(5)

    call random_number(r)
    print *, char(join(to_string(r), newline))
end program

```

and you won’t get an extra newline at the end.

---

<div class="post-metadata">

**Author:** ![FedericoPerini](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/federicoperini/32/1750_2.png) [@FedericoPerini](https://fortran-lang.discourse.group/u/FedericoPerini)\
**Post date:** [September 19, 2022, 1:39pm UTC](https://fortran-lang.discourse.group/t/single-column-output/4349/4 "2022-09-19T13:39:01Z")

</div>

How about using a good old `format` string?

```auto
program column_test
    implicit none
    real ( kind = 8 ) , dimension ( 5 ) :: r
    call random_number ( r )
    print "(g0)", r
end program column_test

```

If you don’t need to handle complex file structures, formatted output is far better than tinkering with strings IMHO (also way better than C/C++)

---

<div class="post-metadata">

**Author:** ![Harper](https://avatars.discourse-cdn.com/v4/letter/h/b5ac83/32.png) [@Harper](https://fortran-lang.discourse.group/u/Harper)\
**Post date:** [September 19, 2022, 10:11pm UTC](https://fortran-lang.discourse.group/t/single-column-output/4349/5 "2022-09-19T22:11:17Z")

</div>

I think “complex file structures” should be “complicated file structures” in Fortran Discourse because the meaning of “complex” in Fortran may not be what FedericoPerini had in mind.
