Кодирование программы на фортране 77 в подпрограмму - PullRequest
0 голосов
/ 10 января 2011

Мне дали задание сделать графический интерфейс для программы на Fortran 77.Для этого я использую компилятор Lahey Fujitsu и wisk, который по сути является чистой версией winteracter.Теперь я кодирую часть графического интерфейса в 90-х, если честно, сейчас я ничего не кодирую и просто использую код, который выкладывает мастер wisk, и у меня возникла проблема с тем, что часть графического интерфейса разговаривает с частью 77.

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

Буду признателен за любую помощь / совет.

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

Спасибо, Кристиан

1 Ответ

0 голосов
/ 10 января 2011

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

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

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

...