dima333a
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору KChernov Цитата: Как передать в процедуру только массив, а индексы выдернуть из него, а не передавать как параметры? | Не уверен что в тему, и что вам это поможет, но я длительное время пользовался программой на FORTRAN где была использованна система pointer-ов. Если знаете что это такое то может поможет. А вообще в FORTRAN, все массивы реально одномерные. Т.е. как я думаю можно создать массив Alpha(1:20,1:20,1:20) a передать его в подпрограмму как program test integer:: A real Alpha(1:20,1:20,1:20) A=20*20*20 call podpr(Alpha,A) end subroutine podpr(Beta,B) integer:: B real Beta(1:B) ........... .......... return З.Ы. Думаю что если жестко задать индексы в подпрограмме и основной программе то все тоже будет работать program test real Alpha(1:20,1:20,1:20) call podpr(Alpha) end subroutine podpr(Beta) real Beta(1:20,1:20,1:20) ........... .......... return A еще индексы можно задать один раз в include файле, а потом его прописать в основную программу и подпрограмму файл include.fhp INTEGER, parameter::A=20 INTEGER, parameter::B=20 INTEGER, parameter::C=20 end of file include.fhp program test INCLUDE 'include.fhp' real:: Alpha(A,B,C) call podpr(Alpha) end subroutine podpr(Beta) INCLUDE 'include.fhp' real::Beta(A,B,C) ........... .......... return | Всего записей: 798 | Зарегистр. 27-02-2004 | Отправлено: 20:48 28-04-2005 | Исправлено: dima333a, 20:58 28-04-2005 |
|