As an example of writing input & output, we'll take in a real value and return the value and its square until the user enters a negative number.
As specified below, the
read command takes two arguments: the unit number and the format specifier. In the example below, we use
* for the unit number (which indicates stdin) and
* for the format (which indicates the default for reals, in this case). We also specify the format for the
write(*,"The value....") or simply ignore formatting and have it as
print *,"The entered value was ", x," and its square is ",x*x
which will likely result in some oddly spaced strings and values.
program SimpleIO implicit none integer, parameter :: wp = selected_real_kind(15,307) real(kind=wp) :: x ! we'll loop over until user enters a negative number print '("Enter a number >= 0 to see its square. Enter a number < 0 to exit.")' do ! this reads the input as a double-pricision value read(*,*) x if (x < 0d0) exit ! print the entered value and it's square print '("The entered value was ",f12.6,", its square is ",f12.6,".")',x,x*x end do print '("Thank you!")' end program SimpleIO