![]() |
|
![]() ![]() ![]() |
|
qwerty1986 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 29.10.2010 Репутация: нет Всего: нет |
Парни.Есть вопрос.
Хочу перевести программу из фортрана в Си. Все вроде понятно, но в книге приведен листинг где до самой программы и подпрограмм есть кусок, который не дает компилировать. Может его нужно в отдельный файл занести?Или что то другое... *COMDECK,COMMONI PARAMETER (IBAR2=40,JBAR2=40,MESHX=20,MESHY=20,NVOR=25,NOBD=20) PARAMETER (MSHX=MESHX+1, MSHY=MESHY+1) COMMON /FV/ ACOM(1),UN(IBAR2,JBAR2),VN(IBAR2,JBAR2),PN(IBAR2, 1JBAR2),FN(IBAR2,JBAR2),U(IBAR2,JBAR2),V(IBAR2,JBAR2),P(IBAR2 2,JBAR2),F(IBAR2,JBAR2),PETA(IBAR2,JBAR2),BETA(IBAR2,JBAR2),NF(IBAR, 3JBAR),PS(IBAR2,JBAR2), AR(IBAR2,JBAR2), AT(IBAR2,JBAR2),AC(IBAR2, 4JBAR2) COMMON /ME/X(IBAR2), XI(IBAR2),RXI(IBAR2), DELX(IBAR2), 1RDX(IBAR2),RX(IBAR2), Y(JBAR2), YJ(JBAR2),RYJ(JBAR2), 2DELY(JBAR2),IEQIC, NDUMP, 3QVOL, CON, FCVLIM, RDY(JBAR2), XL(MSHX), XC(MESHX),DXMN(MESHX), 4NXL(MESHX), NXR(MESHX), YL(MSHY), YC(MESHY), DYMN(MESHY), 5NYL(MESHY), NYR(MESHY), ZC(20), R(IBAR2), RI(IBAR2), 6COSO(IBAR2,JBAR2), SINO(IBAR2,JBAR2),NW(IBAR2,JBAR2) COMMON /PV/ NR(NVOR), PR(NVOR), VOL(NVOR), NAME(10), FVOL COMMON /IV/ IBAR, JBAR, IMAX, JMAX, IM1, JM1, NKX, NKY, NCYC, 1DELT,T, AUTOT, PRTDT, TWPRT, PLTDT, TWPLT, TWFIN, FLHT, XNU,RHOF, 2NREG, VCHGT,ISURF10, SIGMA, CANGLE, ICYL, CYL, GX, GY, UI, VI, OMG 3, ALPHA, KL, KR, KB, KT, ITER, EPSI, FLG, FLGC, FNOC, NOCON, NFLGC 4,ISYMPLT, IMOVY,VELMX, VELMX1, XSHFT, YSHFT, XMIN, XMAX, YMIN,YMAX 5, SF, YPB, YPT, IPL, IPR, JPB, JPT, DTVIS,I,J,DUDR,DUDL,DUDT, DUDB 6,DVDR,DVDL,DVDT,DVDB,DTSFT,DXMIN,DYMIN,PSAT,LITER, ISOR, IDEFM 7,NPACK,LABS(5),ADEFM,BDEFM,DTCRMX,IDIV COMMON /CONST/EMF,EMF1, EM6, EM10, EP10, PI, TPI, RPD, EM6P1,EM61 COMMON /OBS/NOBS, OA2(NOBD),OA1(NOBD),OB2(NOBD),OB1(NOBD), 1OC2(NOBD),OC1(NOBD),IOH(NOBD) Соответственно далее идет объявление программы... |
|||
|
||||
FCM |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: 8 Всего: 9 |
Во фрагменте, начиная со 2-ой строки, видим описание констант и COMMON-блоков - т.е. статически размещаемых данных.
Но они должны находиться внутри какой-либо програмной единицы, возможно внутри BLOCK DATA. Неплохо было бы посмотреть, как начинается следующая за этим фрагментом программная единица- т.е. ее шапку и описания переменных и т.п. Что в книге-то пишут на этот счет? Какой у них компилятор, какая ОС, какая платформа? Это сообщение отредактировал(а) FCM - 29.10.2010, 17:53 |
|||
|
||||
Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 5 Всего: 49 |
Первое ("parameter") - это объявления констант. Второе ("common") - это фактически глобальные переменные, доступные во всех частях программы, разбитые на несколько "областей видимости".
P.S. Вы уверены, что переводить нужно? Судя по размеру common-блоков, перевод будет очень сложным, проще пользоваться так. |
|||
|
||||
qwerty1986 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 29.10.2010 Репутация: нет Всего: нет |
Сразу после этого блока идет объявление главной программы.
PROGRAM IIWI (INPUT,TAPE5=INPUT,OUTPUT,TAPE6=OUTPUT 1,TAPE7, TAPE8,TTY,TAPE59=TTY) Об используемом компиляторе, ОС и платформе ни слова не сказано в книге А переводить наччал просто из-за того, что не могу просто напросто запустить эту программу. Банально не могу найти нормальный комптлятор. Я пробовал fortran powerstation 4.0.Подходит ли он?. P.S.:Короче требуется помощь.Не могу даже этот код запустить. Присоединённый файл ( Кол-во скачиваний: 8 ) ![]() |
|||
|
||||
Stack256 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 30.10.2010 Репутация: нет Всего: нет |
jhjkh
|
|||
|
||||
KrotOnline |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 15.12.2007 Репутация: нет Всего: нет |
Очень сложно будет переводить. Такое ощущение, что в программе специально допущены ошибки(minO вместо min0, gG to вместо go to, где то место точек запятые и т.д.)
Остановился править когда увидел NAMELIST Непонятно откуда берутся значения переменных Использую Compaq Visual Fortran v6.6 Professional с VS6.0 Это сообщение отредактировал(а) KrotOnline - 1.11.2010, 13:09 |
|||
|
||||
FCM |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: 8 Всего: 9 |
Ну, запуск больших старых фортран-программ - это вообще детектив (Холмс отдыхает). Что касается того блока инструкций, что безхозно болтается до PROGRAM, то 1) его можно загнать в отдельный фортран-исходник (файл с расширением .for или .f90)? и пометсить его в папку проекта. 2) в тех программных ед-цах где он используется , добавить строку
Но кроме этого - надо поработать над кучей опечаток - подумать, как в современном стиле интерпретировать шапку :
и согласовать соответствующий вывод. - и многое другое. В каком году программа написана? Не устарел ли алгоритм решения задачи, реализованный в программе? - стоит ли "овчинка выделки"? Это сообщение отредактировал(а) FCM - 1.11.2010, 15:07 |
||||
|
|||||
qwerty1986 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 29.10.2010 Репутация: нет Всего: нет |
О том устарел или нет алгоритм не могу судить, так как ничего лучше не нашел.Есть код без ошибок более позднего релиза, если кто поможет с компиляцией....
|
|||
|
||||
qwerty1986 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 29.10.2010 Репутация: нет Всего: нет |
||||
|
||||
FCM |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: 8 Всего: 9 |
Там есть ошибки. Просто берешь исходник и компилируешь - компилятор выдаст ошибки. Вот выложу подправленный вариант . Он компилируется, но при запуске ошибка чтения из файла setupVOF85.txt - cм. подпрограмму SETUP, стр. 3232. Возможно для запуска нужен такой файл c исходными данными. Еще непонятны инструкции виду WRITE(12, ...), WRITE(59, ...) - где эти утсройтсва ввода/вывода 12 и 59 определены непонятно. Присоединённый файл ( Кол-во скачиваний: 5 ) ![]() |
|||
|
||||
qwerty1986 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 29.10.2010 Репутация: нет Всего: нет |
Спасибо огромное.Да вы прад. Теперь я понял куда вносить исходные данные.
Помогите пожалуйста с компилятором еще.Какой использовать?Compaq visual fortran не ставится.Не пойму почему, то ругается на какую то строку, то еще что то. У меня стоит fortran power station 4.0, но я сомневаюсь в корректности его, так как в отредактированном вами файле он ругается буквально на все(на объявление программы и подпрограмм, параметры ему не так указаны....) p..:Может вот это самое write - это вывод на ленту(а как заменить это на вывод в файл?) Это сообщение отредактировал(а) qwerty1986 - 2.11.2010, 09:41 |
|||
|
||||
KrotOnline |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 15.12.2007 Репутация: нет Всего: нет |
||||
|
||||
qwerty1986 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 29.10.2010 Репутация: нет Всего: нет |
||||
|
||||
FCM |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: 8 Всего: 9 |
Компиляторы линейки Visual Fortran ругаются на подправленный вариант опять же в связи с невозможностью считывания данных из ранее упомянутого файла setupVOF85.txt подпрограммой SETUP. Я компилировал в gfortran 4.5 - там все компилируется и линкуется, но проблема с SETUP сказывается на этапе выполнения программы. Нужно выяснить насчет setupVOF85.txt Это сообщение отредактировал(а) FCM - 2.11.2010, 14:27 |
|||
|
||||
qwerty1986 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 29.10.2010 Репутация: нет Всего: нет |
Это кошмар какой-то. Помогите мне с этим. Как вообще установить хотя бы этот gfortran? В инете скачивание в виде какой то кучи разновидночтей, архитектур и так далее.Да и скачивать по частям.Скоро нервный тик из-за этого фортрана будет.Или я такой тупой..... |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Fortran | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |