Компилятор проходит без проблем, но program.exe name_of_data
выдает: error in opening file, iostat=2.
Данные находятся в том же месте, что и программа, и в первой строке - целое число, остальные - действительные числа.
program task2a
implicit none
character(len=100) :: dateiname
integer :: ierror, n, read_error
real(kind=8) :: x, sum, average, sd, squaresum
sum=0.0
squaresum=0.0
if (command_argument_count() < 1) then
write(*,*) " FEHLER : zu wenige Argumente "
stop
else
call get_command_argument (1, dateiname)
end if
open(unit=12, file= dateiname, status= 'old', action='read', iostat=ierror)
if (ierror==0) then
read(12,*, iostat=read_error) n
if (read_error>0) then
write(*,*) "error in file"
stop
else
do
read(12,*,iostat=read_error) x
if (read_error>0) then
stop "error in file"
else if (read_error<0) then
exit !end of file
else
sum= sum +x
squaresum=squaresum+x**2
end if
end do
end if
else
write(*,*) "Error: opening file, number:", ierror
stop
end if
close(unit=12)
average= sum/n
sd=sqrt((squaresum-(sum**2)/n)/(n-1))
write(*,*) "average:", average
write(*,*) "standard deviation:", sd
end program task2a