безумное количество линий продолжения в Фортране (IFORT)

StackOverflow https://stackoverflow.com/questions/4203131

Вопрос

По-видимому, существует предел в количестве разрешенных линий продолжения в компиляторах 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 /

Я видел это во многих научных корренных кодексах.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top