KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm learning Fortran90 after a brief introduction to Fortran77 a few years ago. When printing integers in Fortran, you must specify how many spaces you want to reserve for printing the integer. Consider this program... implicit none integer :: i i = 123 write(*, '(A, I3, A)') "'", i, "'" !3 spaces for output = no padding write(*, '(A, I5, A)') "'", i, "'" !5 is too many, so output is padded write(*, '(A, I2, A)') "'", i, "'" !2 is too few, so output is jibberish write(*, '(A, I:, A)') "'", i, "'" !Default behavior end program ...which generates the following output. '123' ' 123' '**' ' 123' How do I allocate the correct amount of space for integer printing when I do not know how many digits are in the integer? Update : If your compiler is F95-compliant, you can use the I0 edit descriptor (i.e., put '(A, I0, A)' for the second argument of the write function in my example above. Thanks @janneb!
Tags (comma-separated)
Save Edits
Cancel