![]() |
|
|
![]()
|
|
| FCM |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: 8 Всего: 9 |
Да, процедура из файла pureread.for - это подпрограмма purere10. (Процедурой удобно называть обобщенно либо подпрограмму либо функцию). Поскольку ты пишешь, что она вызвается в процедуре READINP, то видимо по исходнику READINP и можно выяснить замысел авторов. Но процедуру READINP тебе выложить не удалось, так что не могу ее посмотреть.
Имеются ввиду старые версии Visual Fortran (Digital Visual Fortran 5.X или Compaq Visual Fortran 6.Х) ? Это сообщение отредактировал(а) FCM - 28.5.2009, 16:53 |
|||
|
||||
| MetalHeart |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 15.5.2009 Репутация: нет Всего: нет |
||||
|
||||
| FCM |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: 8 Всего: 9 |
Как видим PURERE10 вызывается в READINP
стр 19: CALL PURERE10 (NKOMP,KUERZ,NEG,NAG,*9998) стр 46: CALL PURERE10 (NKOMP,KUERZ,0,NAG,*9998) Тут надо подумать , каждый вызов предполагает свой режим работы PURERE10, один из которых может включать "проблемное" считывание. Это сообщение отредактировал(а) FCM - 28.5.2009, 17:34 |
|||
|
||||
| MetalHeart |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 15.5.2009 Репутация: нет Всего: нет |
Ну те процедуры, что используются в output все нашел.
А про чтение из неоткрытого файла можно подробнее? |
|||
|
||||
| FCM |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: 8 Всего: 9 |
Я подредактировал предыдущее сообщение - пока неясно, что делать с чтением в PURERE10
Насчет неоткрытого файла я погорячился - он открывается в output.for
Ну вот проблема со считыванием KUERZ в PURERE10. KUERZ - является параметром процедуры и и возникает проблема при считывании KUERZ из файла, запрограммированное внутри процедуры. Это сообщение отредактировал(а) FCM - 28.5.2009, 18:20 |
||||
|
|||||
| FCM |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: 8 Всего: 9 |
Если раскоментировать строку
DIMENSION KUERZ(NKOMP) в начале процедуры PURERE10 то компилятор к считыванию KUERZ относится нормально. Но где определен формат с меткой 903 - это вопрос. |
|||
|
||||
| MetalHeart |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 15.5.2009 Репутация: нет Всего: нет |
О, вот откопал старый файлик. То есть по идее из него должны были делать этот модифицированный. Теперь пытаюсь разобраться, что изменяли..
Там в конце как раз есть 903 строка с определением формата. Присоединённый файл ( Кол-во скачиваний: 2 )
purere10.for 4,03 Kb |
|||
|
||||
| FCM |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: 8 Всего: 9 |
Обрати внимание, что во первой (т.е. которую ты выложил первой) версии, за считывание отвечает код
а во второй версии
для второй версии имеется подходящий формат
где первое число предполагается целым (I5), затем предполагается 5 пробелов (5X), затем 6 вещественных чисел в фиксированном формате (F10.0), перевод строки (/), 3 вещественных числа фикс формата (F10.0), символ или символьная строка (A). Т.е. видим, чтоr код считывание отличается и формат должен соответствующим образом отличаться. Но в конечном счете некоторые детали формата более менее однозначно можно установить по реальному содержанию считываемого файла. Для начала лучше проанализировать считываемый файл для второй версии с известным форматом. По моему ранее выложенный файл poly.in не соответствует коду считывания ни в первом, ни во втором случаях - проверь по типам и количеству считываемых элементов. (Может этот файл считывается в другом месте другой поцедурой?) Это сообщение отредактировал(а) FCM - 30.5.2009, 15:46 |
||||||
|
|||||||
| MetalHeart |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 15.5.2009 Репутация: нет Всего: нет |
Мда.. задачка.
poly.in должен считываться в одном из тех файлов, что я привел. Так как это как раз и относится к модификации программы, а все модифицированные файлы мне дали. Может быть в pinread? Постараюсь пока отыскать соответствующий считываемый файл для pereread. В коде не могу понять, как он находит файл который нужно считывать? Я делал только когда через оператор OPEN, например
|
|||
|
||||
| FCM |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: 8 Всего: 9 |
В главной программе (output.for) есть строки
Затем NEG (номер устройства ввода/вывода) передается в качестве параметра в READINP а оттуда в PURERE10. Т.е. файл открывается в главной программе, а имя файла определяется вышеприведенными строками. Это сообщение отредактировал(а) FCM - 2.6.2009, 19:00 |
|||
|
||||
| MetalHeart |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 15.5.2009 Репутация: нет Всего: нет |
Аха, понятно. ТО есть все равно где файл открывать. Ну значит, по идее, надо найти файл PSRK.in, что бы понять формат считвания.
Но вот вопрос, где же этот poly.in считывается, непонятно. Может удастся еще что-нить в архивах найти.. Ну, в общем, отпишусь. Благодарю, в любом случае |
|||
|
||||
| MetalHeart |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 15.5.2009 Репутация: нет Всего: нет |
Я вернулся
Вобщем, есть некий большой блок программ, независимых друг от друга - проект, а в нем собрание всяких программ (Назову это все оригинальным кодом) С одной из которых я работаю. Так вот этот большой оригинальный код несколько раз актуализировался (легкие изменения), а про мою часть забыли, соответственно, помимо того, что она была в свое время модернизирована (уже отличалась от оригинального когда), так со временем еще от него и "отстала", устарела. Вобщем, нашел я этот весь проект, заменил там на имеющиеся у меня файлы. Нашел еще библиотеку, которую использует проект и поместил в папку с прогой. Поисправлял ошибки, надеюсь правильно! ![]() Либо, если из Fortran запускаю исходник (F5) ![]() О чем это говорит? В чем проблема? Это сообщение отредактировал(а) MetalHeart - 11.6.2009, 19:38 |
|||
|
||||
| FCM |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: 8 Всего: 9 |
При диагностике Visual Fortran run-time error указаны процедуры и в них строки, где возникли проблемы:
RQIPIN строка 20 PSRK строка 98. Посмотри, что там находится. |
|||
|
||||
| MetalHeart |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 15.5.2009 Репутация: нет Всего: нет |
Угу, спасибо. Еще вопрос, общего характера. В фортране строки можно как-то автоматически найти или только самому отсчитывать (98)?
|
|||
|
||||
| FCM |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: 8 Всего: 9 |
Visual Fortran'ом ты же пользуешься под Visual Studio, в редакторе которой внизу где-то всегда отображается строка и колонка расположения курсора. Кроме того можно нажать Ctrl+G и указать строку, на которую хочешь перейти.
По-видимому в 98 строке PSRK вызывается процедура RQIPIN, в 20-ой строке которой есть проблема Это сообщение отредактировал(а) FCM - 12.6.2009, 20:03 |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Fortran | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |