2011-01-10 2 views
0

Мне поручили создать gui для программы fortran 77. Для этого я использую компилятор Lahey Fujitsu и wisk, который по сути является версией зимой. Теперь я кодирую часть gui в 90, честно говоря, теперь я ничего не кодирую и просто использую код, который мастер wisk выплевывает, и у меня проблема с частью gui, говорящей с частью 77.Кодирование программы fortran 77 подпрограмме

Программа состоит из основной программы и 14 файлов подпрограмм. Основная программа выполняет вызовы ко всем другим подпрограммам, обрабатывает вычисления и записывает конечный результат в текстовый файл. То, что я хотел бы сделать, - сделать основную программу подпрограммой и вызвать ее из gui или fortran 90 часть программы, тем самым делая gui основной программой. Можно ли это сделать, поскольку большая часть fortran 77 объявлена ​​неявной двойной точностью, а код fortran 90 - неявным? Еще больше в gui-части мне придется вызвать все подпрограммы или будет ли основная программа, которая будет скрыта в подпрограмме, справиться с этим?

Любая помощь/совет будут оценены.

Если это не ясно, что я уверен в этом, так как мои навыки fortran все еще ограничены, просто попросите меня уточнить, что я имею в виду.

Спасибо, Christian

ответ

0

Я являюсь частью команды, работающей над программой, которая написана в основном в Fortran 77, и что делает обильное использование неявного реальное и т.д. Там, однако, модуль файлы, которые были добавлены на более позднем этапе, и они написаны на Fortran 90, и они используют implicit none. Я не знаю, все ли это можно считать хорошей практикой или нет, но, по крайней мере, это работает, и присутствие этих двух диалектов Фортрана до сих пор никогда не создавало никаких проблем (или я ничего не помню ...). Поэтому я сомневаюсь, что смесь 90 и 77 даст вам головную боль. (Просто FYI, мы используем компилятор Intel)

Теперь я могу обойти что-то очевидное, но на первый взгляд я не вижу ничего плохого в вашей идее превратить текущую главную программу в подпрограмму графического интерфейса пользователя и называя его множеством аргументов, которые «говорят ему, что делать». Если вы спуститесь по этой дороге, лучше оставить как можно больше старого кода, как вы можете, - старая основная программа выполняет вызов подпрограммы и т. Д.

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

+0

спасибо за ответ, извините, мой ответ немного запоздал. – Christian

+0

@Christian В случае, если вам нравится ответ, который вы, возможно, захотите рассмотреть и/или принять его. Вы можете сделать это, нажав стрелку вверх над большим 0 (вверх) /, нажав на отметку (принятие). :) – canavanin

Смежные вопросы