Я пытаюсь интегрировать два кода Fortran 9x, которые содержат массивы данных с обратным порядком расположения массивов. Один код (я назову его старым кодом) имеет установленную библиотеку подпрограмм, и я пытаюсь использовать их с другим (новым) кодом настолько эффективно, насколько это возможно (т. Е. Не нужно создавать временные массивы только для переупорядочения массив и передать его в подпрограмму, а затем придется заменить старый массив на новый переупорядоченный результат). Например,
Старый код:
oldarray (1: n, 1) -> переменная 1 для n элементов
oldarray (1: n, 2) -> переменная 2 для n элементов
.. и так далее
новый код:
newarray (1,1: n) -> переменная 1 для n элементов
newarray (1,1: n) -> переменная 2 для n элементов
.. и так далее
Переменные индексы не обязательно связаны между двумя кодами. Если мне нужна только одна переменная для передачи в процедуру, я просто передаю newarray (1,1: n), и процедура не знает разницы. Однако если для процедуры из старого кода требуются переменные 1-6 oldarray, которые могут соответствовать переменным 2,6,8,1,4,3 (я только что выбрал произвольные числа) newarray, возможно ли создать указатель, который Я мог бы перейти на процедуру?
Проще говоря, возможно ли будет просто создать указатель для транспонирования нового массива? Например, указатель (1000,6) указывает на новый массив (6,1000).
Примечание. Невозможно переписать новый код для использования одного и того же порядка массивов, поскольку оба кода используют порядок массивов, который лучше всего подходит для его структур цикла, которые нельзя изменить.
Кроме того, у меня очень мало опыта работы с указателями. Я знаю, что могу создать производный тип данных, который состоит из массива указателей, но я не думаю, что смогу передать это процедуре требуемым образом (я могу ошибаться, так как у меня очень мало опыта работы с производными типами данных ). Справочник, который у меня есть (Fortran 95/2003 для ученых и инженеров), рассматривает только расширенные приложения указателей в терминах связанных списков и деревьев. Я также нашел в Интернете небольшую информацию об указателях на Фортране, помимо того, что описано в этой книге.
Спасибо за вашу помощь.