Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [General] Вопрос 
:(
    Опции темы
qwerty1986
Дата 29.10.2010, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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)

Соответственно далее идет объявление программы...

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


Опытный
**


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

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



Во фрагменте, начиная со 2-ой строки, видим описание констант и COMMON-блоков - т.е. статически размещаемых данных.
Но они должны находиться внутри какой-либо програмной единицы, возможно внутри BLOCK DATA.

Неплохо было бы посмотреть, как начинается следующая за этим фрагментом программная единица- т.е. ее шапку и описания переменных и т.п.

Что в книге-то пишут на этот счет? Какой у них компилятор, какая ОС, какая платформа?



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


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


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

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



Первое ("parameter") - это объявления констант. Второе ("common") - это фактически глобальные переменные, доступные во всех частях программы, разбитые на несколько "областей видимости".

P.S. Вы уверены, что переводить нужно? Судя по размеру common-блоков, перевод будет очень сложным, проще пользоваться так.
PM   Вверх
qwerty1986
Дата 1.11.2010, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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 )
Присоединённый файл  FULLTEXT.for 68,86 Kb
PM MAIL   Вверх
Stack256
Дата 1.11.2010, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



jhjkh
PM MAIL   Вверх
KrotOnline
Дата 1.11.2010, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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
PM MAIL   Вверх
FCM
Дата 1.11.2010, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(qwerty1986 @  1.11.2010,  10:24 Найти цитируемый пост)
Не могу даже этот код запустить. 


Ну, запуск больших старых фортран-программ - это вообще детектив  (Холмс отдыхает).

Что касается того блока инструкций, что безхозно болтается до PROGRAM, то 
1) его можно загнать в отдельный фортран-исходник (файл с расширением .for или .f90)? и пометсить его в папку проекта.
2) в тех программных ед-цах где он используется , добавить строку  
Код

include 'имя_файла.for' 


Но кроме этого 
- надо поработать над кучей опечаток 
- подумать, как в современном стиле интерпретировать шапку :
 
Цитата(qwerty1986 @  1.11.2010,  10:24 Найти цитируемый пост)
PROGRAM IIWI (INPUT,TAPE5=INPUT,OUTPUT,TAPE6=OUTPUT
    1,TAPE7, TAPE8,TTY,TAPE59=TTY)     

 и согласовать соответствующий вывод.
- и многое другое.

В каком году программа написана?

Не устарел ли алгоритм решения задачи, реализованный в программе? - стоит ли "овчинка выделки"?

Это сообщение отредактировал(а) FCM - 1.11.2010, 15:07
PM MAIL   Вверх
qwerty1986
Дата 1.11.2010, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



О том устарел или нет алгоритм не могу судить, так как ничего лучше не нашел.Есть код без ошибок более позднего релиза, если кто поможет с компиляцией....
PM MAIL   Вверх
qwerty1986
Дата 1.11.2010, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вот код

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  VOF85.rar 40,05 Kb
PM MAIL   Вверх
FCM
Дата 2.11.2010, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(qwerty1986 @  1.11.2010,  17:01 Найти цитируемый пост)
Есть код без ошибок более позднего релиза, если кто поможет с компиляцией.... 


Там есть ошибки. Просто берешь исходник и компилируешь - компилятор выдаст ошибки.

Вот выложу подправленный вариант .

Он компилируется, но при запуске ошибка чтения из файла setupVOF85.txt - cм. подпрограмму SETUP, стр. 3232. Возможно для запуска нужен такой файл c исходными данными. 

Еще непонятны инструкции виду WRITE(12, ...),  WRITE(59, ...) - где эти утсройтсва ввода/вывода 12 и 59 определены непонятно.


Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  VOF85.F90 192,97 Kb
PM MAIL   Вверх
qwerty1986
Дата 2.11.2010, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо огромное.Да вы прад. Теперь я понял куда вносить исходные данные.

Помогите пожалуйста с компилятором еще.Какой использовать?Compaq visual fortran не ставится.Не пойму почему, то ругается на какую то строку, то еще что то.

У меня стоит fortran power station 4.0, но я сомневаюсь в корректности его, так как в отредактированном вами файле он ругается буквально на все(на объявление программы и подпрограмм, параметры ему не так указаны....)

p..:Может вот это самое write - это вывод на ленту(а как заменить это на вывод в файл?)

Это сообщение отредактировал(а) qwerty1986 - 2.11.2010, 09:41
PM MAIL   Вверх
KrotOnline
Дата 2.11.2010, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(qwerty1986 @  2.11.2010,  09:29 Найти цитируемый пост)
Может вот это самое write - это вывод на ленту(а как заменить это на вывод в файл?)


OPEN (3,FILE='file.txt')
WRITE(3,*) ПЕРЕМЕННЫЕ
CLOSE(3)
PM MAIL   Вверх
qwerty1986
Дата 2.11.2010, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(KrotOnline @ 2.11.2010,  11:14)
Цитата(qwerty1986 @  2.11.2010,  09:29 Найти цитируемый пост)
Может вот это самое write - это вывод на ленту(а как заменить это на вывод в файл?)


OPEN (3,FILE='file.txt')
WRITE(3,*) ПЕРЕМЕННЫЕ
CLOSE(3)


Спасибо
PM MAIL   Вверх
FCM
Дата 2.11.2010, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(qwerty1986 @  2.11.2010,  09:29 Найти цитируемый пост)
Помогите пожалуйста с компилятором еще.Какой использовать?Compaq visual fortran не ставится.Не пойму почему, то ругается на какую то строку, то еще что то.


Компиляторы линейки Visual Fortran ругаются на подправленный вариант опять же в связи с невозможностью считывания данных из ранее упомянутого файла setupVOF85.txt подпрограммой SETUP.

Я компилировал в gfortran 4.5 - там все компилируется и линкуется, но проблема с SETUP сказывается на этапе выполнения программы.

Нужно выяснить насчет setupVOF85.txt  

Это сообщение отредактировал(а) FCM - 2.11.2010, 14:27
PM MAIL   Вверх
qwerty1986
Дата 2.11.2010, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(FCM @ 2.11.2010,  14:24)
Цитата(qwerty1986 @  2.11.2010,  09:29 Найти цитируемый пост)
Помогите пожалуйста с компилятором еще.Какой использовать?Compaq visual fortran не ставится.Не пойму почему, то ругается на какую то строку, то еще что то.


Компиляторы линейки Visual Fortran ругаются на подправленный вариант опять же в связи с невозможностью считывания данных из ранее упомянутого файла setupVOF85.txt подпрограммой SETUP.

Я компилировал в gfortran 4.5 - там все компилируется и линкуется, но проблема с SETUP сказывается на этапе выполнения программы.

Нужно выяснить насчет setupVOF85.txt

Это кошмар какой-то. Помогите мне с этим. Как вообще установить хотя бы этот gfortran? В инете скачивание в виде какой то кучи разновидночтей, архитектур и так далее.Да и скачивать по частям.Скоро нервный тик из-за этого фортрана будет.Или я такой тупой.....
PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Fortran | Следующая тема »


 




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


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

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