Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [General] unformatted read и segmentation fault, segmentation fault при при чтении файла 
:(
    Опции темы
dmtrm
Дата 17.12.2010, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 25.1.2009
Где: Волгоград

Репутация: нет
Всего: нет



Пытаюсь построчно читать из файла данные и записывать их в массив. Использую безформатное чтение. При запуске программы появляется "Ошибка сегментирования". При отладке в ddd выяснилось, что 7 строчек читается из файла без проблем, а вот на восьмой появлятся: Fortran runtime error: Bad real number in item 24 of list input. 24 элемент ничем на отличается от остальных. Восьмая строчка ничем не отличается по формату от 7 предыдущих. Пробовал удалять первые 8 строчек, и затык снова на 8 строчке присходит. Никак не пойму, почему сбой именно на 8 строчке. В чём ошибка может быть ошибка?

Для компиляции использую gfortran 4.4.5 в debian.

Фрагмент программы:
Код

     REAL*8 HZAP,par(3),t, dinput(29)
      data nreg/1/ 
      par(1)= 200 ! частота опроса
      par(2)= 1024 ! длина подреализации
      par(3)= 29 ! количество каналов 

      OPEN(889,file="kar65m.txt")    
      t=0.
      do i=1,100466000
    read(889,*,end=101) t, (dinput(j),j=1,int(par(3)))       
        CALL ACTAMORT(PAR,DINPUT,T,NREG) 
      enddo
101   continue
      close(889)         
      end 
   

Фрагмент входного файла:

Код

0.0000 4 -1  39.0000 1.0000 0.0000 0.0000 1.2175 1.3772 0.1287 0.1285 0.1278 0.1270 0.0000 0.0000 -24.9046 20.5221 24.0380 23.0271 0.0000 0.0000 93.1000 111.5631 122.1680 113.5722 0.0000 0.0000 0.3662 91.9851 108.6680
0.0050 4 -1  39.0000 1.0000 0.0000 0.0000 1.2068 1.2674 0.1289 0.1286 0.1280 0.1272 0.0000 0.0000 -24.8983 20.5157 23.9998 22.9444 0.0000 0.0000 93.2526 112.9873 122.0662 113.6485 0.0000 0.0000 -2.7466 92.0614 109.0240
0.0100 4 -1  39.0000 1.0000 0.0000 0.0000 1.2251 1.1636 0.1287 0.1284 0.1278 0.1270 0.0000 0.0000 -24.9173 20.5284 24.0634 23.0334 0.0000 0.0000 93.3543 112.4278 121.5830 113.3433 0.0000 0.0000 -4.2725 92.4428 108.8715
0.0150 4 -1  39.0000 1.0000 0.0000 0.0000 1.2495 1.2842 0.1287 0.1285 0.1279 0.1271 0.0000 0.0000 -24.9173 20.5666 23.9935 22.9699 0.0000 0.0000 94.0155 113.5976 121.8882 113.8774 0.0000 0.0000 -0.7324 92.2648 108.6934
0.0200 4 -1  39.0000 1.0000 0.0000 0.0000 1.2495 1.2842 0.1287 0.1285 0.1279 0.1271 0.0000 0.0000 -24.9173 20.5666 23.9935 22.9699 0.0000 0.0000 94.0155 113.5976 121.8882 113.8774 0.0000 0.0000 -0.7324 92.2648 108.6934
0.0250 4 -1  39.0000 1.0000 0.0000 0.0000 1.3258 1.1972 0.1288 0.1285 0.1278 0.1271 0.0000 0.0000 -24.9237 20.5284 23.9490 23.0334 0.0000 0.0000 94.5241 113.5213 122.0154 114.0808 0.0000 0.0000 -4.9438 92.3157 108.8206
0.0300 4 -1  39.0000 1.0000 0.0000 0.0000 1.3289 1.2567 0.1289 0.1285 0.1278 0.1270 0.0000 0.0000 -24.9301 20.5475 24.0189 22.9635 0.0000 0.0000 94.7276 114.0299 122.0408 113.4705 0.0000 0.0000 -4.3335 92.2902 109.2021
0.0350 4 -1  39.0000 1.0000 0.0000 0.0000 1.3487 1.1239 0.1288 0.1286 0.1279 0.1271 0.0000 0.0000 -24.9046 20.5666 23.9617 22.9699 0.0000 0.0000 95.0073 114.2334 122.3460 113.4705 0.0000 0.0000 -1.0986 91.9596 108.7189
0.0400 4 -1  39.0000 1.0000 0.0000 0.0000 1.3197 1.5191 0.1289 0.1286 0.1280 0.1272 0.0000 0.0000 -24.9173 20.5666 23.9680 23.0779 0.0000 0.0000 95.0582 114.1571 122.3969 112.8092 0.0000 0.0000 -0.1221 92.3411 109.0240
0.0450 4 -1  39.0000 1.0000 0.0000 0.0000 1.2984 1.0690 0.1287 0.1283 0.1278 0.1271 0.0000 0.0000 -24.8919 20.5475 23.9744 23.0207 0.0000 0.0000 94.9819 114.5894 122.1425 113.1144 0.0000 0.0000 -6.1035 92.2139 108.9986
0.0500 4 -1  38.0000 1.0000 0.0000 0.0000 1.2739 1.1941 0.1288 0.1286 0.1279 0.1271 0.0000 0.0000 -24.9237 20.5984 23.8981 23.0334 0.0000 0.0000 94.4478 114.4114 122.5749 112.9110 0.0000 0.0000 -3.1128 92.2139 108.7189
0.0550 4 -1  38.0000 1.0000 0.0000 0.0000 1.2526 1.1850 0.1288 0.1285 0.1279 0.1271 0.0000 0.0000 -24.8919 20.5284 23.9998 22.9699 0.0000 0.0000 94.5750 114.7929 121.9137 112.1735 0.0000 0.0000 -0.7935 92.0105 109.0240
0.0600 4 -1  38.0000 1.0000 0.0000 0.0000 1.2678 1.1163 0.1288 0.1285 0.1279 0.1271 0.0000 0.0000 -24.8856 20.5412 24.0698 23.0144 0.0000 0.0000 94.5241 114.6657 122.1680 112.0972 0.0000 0.0000 -0.5493 91.9596 108.8206
0.0650 4 -1  38.0000 1.0000 0.0000 0.0000 1.2648 1.3421 0.1288 0.1286 0.1279 0.1272 0.0000 0.0000 -24.9173 20.5602 24.0253 23.0843 0.0000 0.0000 94.1427 114.0808 122.6766 112.0209 0.0000 0.0000 -5.4932 92.5191 108.8969
0.0700 4 -1  38.0000 1.0000 0.0000 0.0000 1.3136 1.2933 0.1287 0.1285 0.1279 0.1272 0.0000 0.0000 -24.9046 20.5412 23.9744 23.0080 0.0000 0.0000 94.0918 114.5894 122.8546 113.1399 0.0000 0.0000 -0.4883 92.2394 108.6426
0.0750 4 -1  38.0000 1.0000 0.0000 0.0000 1.3136 1.2933 0.1287 0.1285 0.1279 0.1272 0.0000 0.0000 -24.9046 20.5412 23.9744 23.0080 0.0000 0.0000 94.0918 114.5894 122.8546 113.1399 0.0000 0.0000 -0.4883 92.2394 108.6426
0.0800 4 -1  38.0000 1.0000 0.0000 0.0000 1.3365 1.1606 0.1286 0.1284 0.1278 0.1270 0.0000 0.0000 -24.9046 20.5157 24.0062 23.0207 0.0000 0.0000 94.5750 114.8692 122.2697 112.4786 0.0000 0.0000 -1.3428 92.3157 109.0495
0.0850 4 -1  38.0000 1.0000 0.0000 0.0000 1.3121 1.1606 0.1287 0.1285 0.1279 0.1271 0.0000 0.0000 -24.9237 20.5412 24.0698 23.0207 0.0000 0.0000 94.7530 114.6912 122.2188 112.6821 0.0000 0.0000 -6.1646 92.5700 108.8206
0.0900 4 -1  38.0000 1.0000 0.0000 0.0000 1.3151 1.3940 0.1288 0.1286 0.1279 0.1271 0.0000 0.0000 -24.9173 20.5094 23.9935 23.0271 0.0000 0.0000 94.6004 114.2843 122.9563 113.9282 0.0000 0.0000 -2.2583 92.2902 108.9223
0.0950 4 -1  38.0000 1.0000 0.0000 0.0000 1.2663 1.2048 0.1288 0.1285 0.1279 0.1272 0.0000 0.0000 -24.9110 20.5094 23.9871 23.0207 0.0000 0.0000 94.9565 114.3097 122.5494 114.7166 0.0000 0.0000 -1.9531 92.4683 109.1003
0.1000 4 -1  38.0000 1.0000 0.0000 0.0000 1.2709 1.2567 0.1288 0.1285 0.1279 0.1272 0.0000 0.0000 -24.9173 20.5030 23.9998 23.0462 0.0000 0.0000 94.8039 114.4877 123.2107 116.6239 0.0000 0.0000 -1.5869 92.3920 109.0749
0.1050 4 -1  38.0000 1.0000 0.0000 0.0000 1.3045 1.1743 0.1286 0.1284 0.1277 0.1270 0.0000 0.0000 -24.9237 20.5666 23.9617 23.0398 0.0000 0.0000 94.3970 114.4368 122.4986 117.1834 0.0000 0.0000 -5.7373 92.2139 108.8715
0.1100 4 -1  38.0000 1.0000 0.0000 0.0000 1.2892 1.1834 0.1287 0.1285 0.1278 0.1270 0.0000 0.0000 -24.9046 20.4776 23.9617 22.9826 0.0000 0.0000 93.2017 114.1825 123.0072 118.3533 0.0000 0.0000 -2.1362 92.1377 108.4900
0.1150 4 -1  38.0000 1.0000 0.0000 0.0000 1.2724 1.4627 0.1288 0.1285 0.1277 0.1271 0.0000 0.0000 -24.8983 20.5348 24.0189 22.9635 0.0000 0.0000 93.1508 114.4623 122.4477 118.1498 0.0000 0.0000 -0.1831 92.2394 108.7443
0.1200 4 -1  38.0000 1.0000 0.0000 0.0000 1.2739 1.1789 0.1289 0.1285 0.1279 0.1271 0.0000 0.0000 -24.8792 20.5221 24.0380 22.9762 0.0000 0.0000 92.6931 114.6149 122.2951 118.1244 0.0000 0.0000 -0.7935 92.4174 109.0240
0.1250 4 -1  38.0000 1.0000 0.0000 0.0000 1.2510 1.2048 0.1288 0.1285 0.1278 0.1271 0.0000 0.0000 -24.9364 20.4839 24.0380 22.9889 0.0000 0.0000 92.6168 114.7420 122.2697 118.5822 0.0000 0.0000 -1.4648 92.0359 108.8715
0.1300 4 -1  38.0000 1.0000 0.0000 0.0000 1.2510 1.2048 0.1288 0.1285 0.1278 0.1271 0.0000 0.0000 -24.9364 20.4839 24.0380 22.9889 0.0000 0.0000 92.6168 114.7420 122.2697 118.5822 0.0000 0.0000 -1.4648 92.0359 108.8715
0.1350 4 -1  38.0000 1.0000 0.0000 0.0000 1.2221 1.2536 0.1289 0.1287 0.1280 0.1273 0.0000 0.0000 -24.9491 20.5539 23.9490 23.0080 0.0000 0.0000 92.0573 114.5131 122.2951 118.7856 0.0000 0.0000 0.3662 91.9596 108.8460
0.1400 4 -1  38.0000 1.0000 0.0000 0.0000 1.2175 1.4490 0.1288 0.1285 0.1277 0.1270 0.0000 0.0000 -24.9046 20.5030 23.9808 22.9635 0.0000 0.0000 92.5913 114.6657 122.4477 118.4804 0.0000 0.0000 -2.6855 92.5446 109.1258
0.1450 4 -1  38.0000 1.0000 0.0000 0.0000 1.2251 1.2521 0.1289 0.1286 0.1278 0.1272 0.0000 0.0000 -24.9301 20.5412 23.9935 22.9953 0.0000 0.0000 92.3370 114.5386 122.1680 118.4296 0.0000 0.0000 -4.9438 91.9342 108.8460
0.1500 4 -1  38.0000 1.0000 0.0000 0.0000 1.2068 1.2567 0.1289 0.1286 0.1279 0.1273 0.0000 0.0000 -24.9491 20.5539 23.9299 23.0144 0.0000 0.0000 92.1336 114.3097 122.4223 118.8619 0.0000 0.0000 -0.6714 92.1631 108.8969
0.1550 4 -1  38.0000 1.0000 0.0000 0.0000 1.2297 1.2521 0.1289 0.1285 0.1280 0.1272 0.0000 0.0000 -24.8728 20.5730 23.9235 23.0080 0.0000 0.0000 91.8793 114.4114 122.3460 118.3533 0.0000 0.0000 -0.7935 92.0105 108.5917
0.1600 4 -1  38.0000 1.0000 0.0000 0.0000 1.2099 1.2384 0.1288 0.1285 0.1279 0.1271 0.0000 0.0000 -24.9173 20.5030 24.0062 23.0271 0.0000 0.0000 92.0827 115.0981 121.7356 117.9718 0.0000 0.0000 -2.3804 92.3665 109.0749
0.1650 4 -1  38.0000 1.0000 0.0000 0.0000 1.2266 1.5634 0.1289 0.1285 0.1277 0.1271 0.0000 0.0000 -24.8983 20.5412 23.9871 22.9762 0.0000 0.0000 92.0573 114.9963 122.3969 118.2515 0.0000 0.0000 -4.8828 92.3411 108.9223
0.1700 4 -1  38.0000 1.0000 0.0000 0.0000 1.2404 1.2216 0.1290 0.1286 0.1281 0.1273 0.0000 0.0000 -24.9110 20.5284 23.9108 23.0080 0.0000 0.0000 91.6758 115.8610 122.1171 117.9464 0.0000 0.0000 -1.4648 92.6971 108.9732
0.1750 4 -1  38.0000 1.0000 0.0000 0.0000 1.2160 1.1316 0.1287 0.1283 0.1278 0.1270 0.0000 0.0000 -24.9046 20.5221 24.0316 23.0016 0.0000 0.0000 91.8030 115.7084 122.0154 117.8192 0.0000 0.0000 0.3052 92.4937 109.0240
0.1800 4 -1  38.0000 1.0000 0.0000 0.0000 1.2037 1.0843 0.1289 0.1284 0.1277 0.1270 0.0000 0.0000 -24.9110 20.5348 23.8981 23.0207 0.0000 0.0000 90.2771 115.5813 122.8546 118.2515 0.0000 0.0000 -3.5400 92.0359 108.8969
0.1850 4 -1  38.0000 1.0000 0.0000 0.0000 1.2037 1.0843 0.1289 0.1284 0.1277 0.1270 0.0000 0.0000 -24.9110 20.5348 23.8981 23.0207 0.0000 0.0000 90.2771 115.5813 122.8546 118.2515 0.0000 0.0000 -3.5400 92.0359 108.8969
0.1900 4 -1  38.0000 1.0000 0.0000 0.0000 1.2037 1.5069 0.1289 0.1283 0.1278 0.1271 0.0000 0.0000 -24.8919 20.5030 23.9998 22.9953 0.0000 0.0000 90.8875 115.6576 122.3969 118.3787 0.0000 0.0000 -0.7935 92.2394 108.8460
0.1950 4 -1  38.0000 1.0000 0.0000 0.0000 1.2205 1.0843 0.1290 0.1283 0.1277 0.1270 0.0000 0.0000 -24.9046 20.5157 23.9871 22.9762 0.0000 0.0000 91.0655 115.4032 121.9645 118.3278 0.0000 0.0000 -0.5493 91.9342 108.6426
0.2000 4 -1  38.0000 1.0000 0.0000 0.0000 1.2541 1.2353 0.1291 0.1284 0.1278 0.1271 0.0000 0.0000 -24.9046 20.4903 23.9871 23.0334 0.0000 0.0000 91.9301 115.3269 120.5912 118.2007 0.0000 0.0000 -5.3101 92.1885 108.8206

PM MAIL WWW   Вверх
FCM
Дата 17.12.2010, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 461
Регистрация: 30.3.2009

Репутация: 8
Всего: 9



По-видимому, имя txt-файла указано неверно.
Чтобы избежать таких фокусов, в инструкции OPEN нужно использовать параметр STATUS = 'OLD'.


Это сообщение отредактировал(а) FCM - 17.12.2010, 18:33
PM MAIL   Вверх
Фантом
Дата 17.12.2010, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 5
Всего: 49



Как-то очень похоже на глюк компилятора. Попробовал у себя (на имеющемся) 4.5.0 - никаких ошибок не вылезает. Два других компилятора также все "съели" без ошибок.
PM   Вверх
FCM
Дата 17.12.2010, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 461
Регистрация: 30.3.2009

Репутация: 8
Всего: 9



Компилироваться оно может, но при выполнении (mingw-gfortran 4.5.x), если неправильно задано имя файла и не указан status='old', создаст пустой файл - а при считывании из него (если убрать end=101) будет почему-то ругаться на 8-ую или 9-ую запись, что якобы конец файла.

Это сообщение отредактировал(а) FCM - 17.12.2010, 19:44
PM MAIL   Вверх
Фантом
Дата 17.12.2010, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 5
Всего: 49



Цитата(FCM @  17.12.2010,  19:15 Найти цитируемый пост)
Компилироваться оно может, но при выполнении (mingw-gfortran 4.5.x), если неправильно задано имя файла и не указан status='old', создаст пустой файл - а при считывании из него (если убрать end=101) будет почему-то ругаться на 8-ую или 9-ую запись, что якобы конец файла.

Если имя неправильное? Тогда дело в размере буфера считывания, его конец приходится на эту строчку.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Fortran | Следующая тема »


 




[ Время генерации скрипта: 0.0464 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.