title: In Fortran 90, what is a good way to write an array to a text file, row-wise?
body: <p>I am new to Fortran, and I would like to be able to write a two-dimensional array to a text file, in a row-wise manner (spaces between columns, and each row on its own line).  I have tried the following, and it seems to work in the following simple example:</p>
  
  <pre><code>PROGRAM test3
    IMPLICIT NONE
  
    INTEGER :: i, j, k, numrows, numcols
    INTEGER, DIMENSION(:,:), ALLOCATABLE :: a
  
    numrows=5001
    numcols=762
    ALLOCATE(a(numrows,numcols))
    k=1
    DO i=1,SIZE(a,1)
      DO j=1,SIZE(a,2)
        a(i,j)=k
        k=k+1
      END DO
    END DO
  
    OPEN(UNIT=12, FILE="aoutput.txt", ACTION="write", STATUS="replace")
    DO i=1,numrows
      WRITE(12,*) (a(i,j), j=1,numcols)
    END DO
  END PROGRAM test3
  </code></pre>
  
  <p>As I said, this seems to work fine in this simple example: the resulting text file, <strong>aoutput.txt</strong>, contains the numbers 1-762 on line 1, numbers 763-1524 on line 2, and so on.</p>
  
  <p>But, when I use the above ideas (i.e., the last fifth-to-last, fourth-to-last, third-to-last, and second-to-last lines of code above) in a more complicated program, I run into trouble; each row is delimited (by a new line) only intermittently, it seems.  (I have not posted, and probably will not post, here my entire complicated program/script--because it is rather long.)  The lack of consistent row delimiters in my complicated program/script probably suggests another bug in my code, not with the four-line write-to-file routine above, since the above simple example appears to work okay.  Still, I am wondering, can you please help me think if there is a better <em>row-wise write-to-text file</em> routine that I should be using?</p>
  
  <p>Thank you very much for your time.  I really appreciate it.</p>