безумное количество линий продолжения в Фортране (IFORT)
-
25-09-2019 - |
Вопрос
По-видимому, существует предел в количестве разрешенных линий продолжения в компиляторах Fortran. У меня есть временный патологический случай (сделанный для быстрых целей тестирования), где мне необходимо инициализировать огромный массив без открытия файлов или выполнять любую хитрость, просто понижающую данные в качестве литералов. Массив довольно большой (360000 записей).
Как я могу установить предел компилятора в неограниченную, или какую альтернативную стратегию я могу использовать для проведения этого инициализации массива?
Решение
Я не знаю о некоторых настройках компилятора для неограниченных линий продолжения, но я бы предложил эти альтернативы:
- Назначьте каждое значение на одну строку
- Поместите значения в файл и прочитайте его :)
- Вызовите функцию C, чтобы заполнить свой массив Fortran
Другие советы
Вы можете назначить их в партии, используя неявную DO
Петли до пределов продолжения, наложенного вашим компилятором:
REAL :: xarray(360000)
DATA (xarray(i) i=1,100) /1.0, 2.0, 3.0, 4.0, 5.0, 6.0, &
7.0, 8.0, &
...
98.0, 99.0, 100.0 /
DATA (xarray(i) i=101,200) /101.0, 102.0, 103.0, 104.0, 105.0, 106.0, &
107.0, 108.0, &
...
198.0, 199.0, 200.0 /
Я видел это во многих научных корренных кодексах.
Напишите какой-нибудь код, чтобы создать исходные файлы с данными из текстового файла. Разделите задания по ряду или что-то, чтобы помочь избежать создания одного огромного оператора, чтобы инициализировать массив в одном падающем массиве. Помните код, который генерирует код, может быть довольно гибким.