The Bash shell has environment variables
COLUMNS representing the current terminal window width.
One might therefore incorrectly assume that Fortran 2003 standard
get_environment_variable() subroutine would trivially get the current Terminal window dimensions.
This is not so, since Bash passes along only the “POSIX” set of environment variables, and those that have been
exported to the executable.
A working example of getting current Fortran terminal size using Ncurses is in the
program, where the variables
COLS are set using the
getmaxyx Ncurses macro.
Use the method above, as the method below naïvely fails.
Thus, the following will result in status code
1, indicating the environment variable was not found.
If the user runs this program as
that “works”, but we want an automatically determined value.
program noenv use, intrinsic:: iso_fortran_env, only: error_unit implicit none (type, external) character(4) :: buf integer :: h,ios call get_environment_variable('LINES',buf,status=ios) if (ios/=0) then write(error_unit,*) 'got error code',ios,'on trying to get LINES' stop endif read(buf,*) h end program