Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MinGW gfortran на windows XP 
:(
    Опции темы
OK54
Дата 24.10.2014, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день!

Работаю с gfortran (MinGW x32) под Windows 7, скаченный на mingw.org. Компилирую dll фортран программы. 
Столкнулся с проблемой что под windows xp работает неправильно. Т.е. фортран программа представляет собой сложную математическую модель, на разных win 7 выдает нормальные одинаковые результаты, на различных windows xp выдает одинаковые ненормальные результаты, а именно значение одной из переменных отличается в 3 раза. До этого другую модель компилировал, так не было такой проблемы...

Дело в том что у нас на работе лицензия на XP. Может надо какие-нибудь настройки сделать или адекватные дистрибутивы под XP посоветуете? или может какие-то используемые операторы в фортран программе несовместимы с XP. Или XP можно как-то аккуратно проапгрейдить, так чтобы заработало???
PM MAIL   Вверх
tzirechnoy
Дата 24.10.2014, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

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



Я посоветую отладить программу.
Внезапно.
PM MAIL   Вверх
Фантом
Дата 24.10.2014, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Чудес не бывает. Подобные штуки обычно означают, что в программе есть некорректная работа с памятью (для области применения Фортрана это почти всегда обращение к несуществующему элементу массива), которая приводит к "несанкционированной" перезаписи каких-то данных этой же программы. Соответственно, попробуйте собрать ее с ключом компилятора -fcheck=all и посмотреть, что получится.

Цитата(tzirechnoy @  24.10.2014,  20:27 Найти цитируемый пост)
Я посоветую отладить программу.
 Именно.

PM   Вверх
OK54
Дата 24.10.2014, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



этих программ не одна, и фиг знает как этот быдло код работает. это вариант, но запарюсь.
Еще идеи? Есть сообщения типа warning, я их отключил, т.к. не понял. Может в них дело? Правда с предыдущей программой несмотря на это все ок было.

Добавлено через 2 минуты и 13 секунд
Ооо...Фантом, спасибо! Странно, только русский сериал про чернобыль смотрел, серия про Фантомов smile
PM MAIL   Вверх
tzirechnoy
Дата 24.10.2014, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

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



Цитата
Еще идеи?


Выкинуть этот ###код.

Я, кстати, серьёзен. Тебе реально повезло, что тебе на относительно раннем этапе работы с программой попалась система, которая наглядно показывает уровень человека, который её писал. Соответственно, сейчас ты можэшь решыть -- выкинуть это барахло или отладить.
Замечу, что работать с этим в таком виде в win8, где оно "вроде работает" -- я бы тожэ не стал. Рискованное развлечение.
PM MAIL   Вверх
Фантом
Дата 25.10.2014, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(tzirechnoy @  24.10.2014,  23:48 Найти цитируемый пост)

Я, кстати, серьёзен. Тебе реально повезло, что тебе на относительно раннем этапе работы с программой попалась система, которая наглядно показывает уровень человека, который её писал. Соответственно, сейчас ты можэшь решыть -- выкинуть это барахло или отладить.
 У программ на Фортране зачастую есть еще одна особенность: их авторы нередко бывают весьма посредственными программистами, но при этом очень хорошими и даже уникальными специалистами в той области, для которой пишут программы.  smile  

В результате "###код" зачастую очень трудно или просто невозможно заменить, на написание его с нуля могут уйти годы (если это вообще удастся). Так что решать проблему радикально я бы не советовал...  smile 

PM   Вверх
OK54
Дата 25.10.2014, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



да, там не сложно запутаться в операторах goto и куче громадных глобальных массивов. Видимо код создавали по блок схеме алгоритма, отсюда и goto. Переписывать некогда кучу программ.
С опцией -fcheck=all перестало работать, вернее там программа прекратила работу из-за выхода переменной за некоторые границы.
PM MAIL   Вверх
tzirechnoy
Дата 25.10.2014, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

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



Цитата
бывают весьма посредственными программистами, но при этом очень хорошими и даже уникальными специалистами в той области


Значит, выкинуть его программу и оставить только то, в чём он силён -- его уравнения, и, возможно, разностные схемы.

Разностная схема -- она только в первый раз страшная, к десятому их можно писать за полчаса и не приходя в сознание.
PM MAIL   Вверх
Фантом
Дата 25.10.2014, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(OK54 @  25.10.2014,  11:37 Найти цитируемый пост)
да, там не сложно запутаться в операторах goto и куче громадных глобальных массивов. Видимо код создавали по блок схеме алгоритма, отсюда и goto.
 Скорее это просто очень старый стандарт языка. Вы знаете, в каком примерно году был написан этот код?

Цитата(OK54 @  25.10.2014,  11:37 Найти цитируемый пост)
С опцией -fcheck=all перестало работать, вернее там программа прекратила работу из-за выхода переменной за некоторые границы. 
 Ну да, индекс массива вылезает за границу, как и предполагалось. Вы, кстати, должны были получить сообщение, какой именно, в каком массиве и в каком месте программы.

Поскольку часть сборок при этом работает правильно, это означает, что сам по себе выход проблемой не является, если только на месте "лишнего" элемента не размещается какая-то другая переменная. Поэтому отладка достаточно проста: найдите определение этого массива и увеличьте его размеры так, чтобы вылезания за границу не происходило.

Добавлено через 1 минуту и 33 секунды
Цитата(tzirechnoy @  25.10.2014,  12:26 Найти цитируемый пост)

Значит, выкинуть его программу и оставить только то, в чём он силён -- его уравнения, и, возможно, разностные схемы.

Разностная схема -- она только в первый раз страшная, к десятому их можно писать за полчаса и не приходя в сознание. 
 Если бы в численном моделировании все можно было бы сначала записать в виде какого-то небольшого набора уравнений...   smile 

PM   Вверх
OK54
Дата 25.10.2014, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



> Ну да, индекс массива вылезает за границу, как и предполагалось. Вы, кстати, должны были получить сообщение, какой именно, в каком массиве и в каком месте программы.
Не массив, а просто значение переменной по логике программы.  
Думаете дело в обращении к несуществующему элементу массива? Я сейчас сымитировал такую ситуацию, программа действительно ничего и не сообщает об ошибке при выключенных предупреждениях. При включенных предупреждениях кроме моей строчки нигде не сообщает о выходе за границы, если только это индекс где-то не динамически отсчитывается.
Вот все типы предупреждений в проге:
1. Warning: Label 61 at (1) defined but not used
2. Warning: Unused variable 'jcn' declared at (1)
3. Ini26.for:90:0: warning: 'j100' may be used uninitialized in this function [-Wmaybe-uninitialized]
4. Warning: Possible change of value in conversion from REAL(8) to REAL(4) at (1)
5. Warning: Deleted feature: ASSIGN statement at (1)
6. Warning: Deleted feature: Assigned GOTO statement at (1)
7. Warning: Deleted feature: PAUSE statement at (1)
8. Warning: Nonconforming tab character in column 1 of line 2

PM MAIL   Вверх
Фантом
Дата 25.10.2014, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(OK54 @  25.10.2014,  15:40 Найти цитируемый пост)

Не массив, а просто значение переменной по логике программы.  
 Не может быть. 

Цитата(OK54 @  25.10.2014,  15:40 Найти цитируемый пост)
Вот все типы предупреждений в проге:
 Это предупреждения компилятора, а нам нужна ошибка времени выполнения. Индекс, естественно, вычисляется динамически, иначе эту ошибку давно бы поймали.

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Fortran | Следующая тема »


 




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


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

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