Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Fortran > Вызов подпрограммы |
Автор: Шурф 22.4.2013, 19:07 | ||||||
Вечер добрый. Я совсем плохо соображаю в Fortran и програмировании вообще, поэтому строго не судите =) Надеюсь, слова типа энтропии никого не введут в ступор, т.к. в принципе они не важны. Вопрос в следующем. В основной программе мне нужно посчитать три параметра: плотность, энтальпию и температуру. При компилировании выдает ошибку следующего содержания:
Я так понял, что нет какой-то ссылки на ROT и TT. Что нужно сделать? Программа:
Подпрограмма:
Если нужна еще какая-то информация, говорите. Помогите, пожалуйста! |
Автор: Фантом 22.4.2013, 19:37 |
Переменные TT и ROT являются локальными для подпрограммы, внешняя программа о них ничего не знает. Соответственно, надо каким-то образом передать их наверх. P.S. Вы в 2013 году используете стандарт Fortran IV образца 1966 года из религиозных соображений или любви к антиквариату? Ему скоро полвека стукнет, за это время только новых стандартов языка успело появиться пять штук. |
Автор: Шурф 22.4.2013, 22:39 | ||
главное чтобы то, что я использую, считало то,ч то мне нужно) так а как их передать наверх? Даже если я копирую часть подпрограммы в программу основную, то все равно ничего не считает(ошибка исчезает, но после ввода значений окно сразу же закрывается)
|
Автор: Фантом 22.4.2013, 22:54 |
Теперь надо бы где-то найти функции CRRO, CRS и CRH, инициализировать содержимое коммон-блока... короче говоря, дописать всю содержательную часть программы. ![]() Давайте-ка признаваться: это такое извращенное учебное задание или честная попытка приспособить древний код к чему-нибудь? |
Автор: Шурф 22.4.2013, 23:00 |
с CRRO, CRS и CRH все нормально, там это все как-то считается(это часть большой прграммы). По крайней мере в еще одном варианте другой программы считалось. Отставим их в сторону основной вопрос в ROT и TT Признаюсь: древний код к чему-нибдуь. Вся эта дребедень - грубо говоря, справочник теплофизических свойств криоагентов. Мне нужен гелий-1. Без этой программы, которая будет считать энтальпию, плотность и температуру в зависимости от давления и энтропии, я повешусь ![]() |
Автор: Шурф 22.4.2013, 23:26 |
как там использовать common? я что-то почитал про него, вроде то, но до конца не понимаю |
Автор: Шурф 23.4.2013, 00:35 |
He1 - это, на сколько я понял, подпрограмма с общей информацией о гелии FPST - это расчет остальный параметров, которые мне нужны(там еще куча таких подпрограмм) Запаковал все, что намудрил. В изначальном виде, в котором часть работала. Сначала вообще ничего не работало, но танцы с бубном помогли. Наверное там много лишнего. Открывал я путем "open workspace..." helium-основная программа cryag-z - с подпрограммами спасибо уже за то, что занимаетесь мной ![]() ![]() |
Автор: Фантом 23.4.2013, 01:45 | ||
Ну что ж, теперь все ясно, поскольку хвосты видны. Программа, кстати, совершенно нормально и без каких-либо изменений собирается, но, правда, нормальным же компилятором (а у Вас там, похоже, MS PowerStation). Вам надо написать в главной программе следующее:
Получится то, что требуется. |
Автор: Шурф 23.4.2013, 10:06 |
ох, вот оно как значит. правда окно программы все равно закрывается после ввода значений. Но ладно спасибо ![]() |
Автор: Фантом 23.4.2013, 17:17 |
Запустите получившийся exe-шник из командной строки, тогда ничего не закроется. |