Определить переменную из Makefile в Fortran - PullRequest
0 голосов
/ 18 марта 2019

Я хочу выровнять свои данные с !DIR$ ATTRIBUTES ALIGN:NBYTE::X, где NBYTE определено во время компиляции. Я в настоящее время в верхней части каждого исходного файла есть

 #ifndef NBYTE
  #define NBYTE 64
 #endif

Тем не менее, я не могу определить это только тогда, когда везде использую переменную NBYTE. Итак, мои два вопроса:

  1. Можно ли определить макрос только один раз и использовать его везде, не включая файл или макрос в каждый исходный файл?

  2. Могу ли я определить переменную в Makefile и использовать ее в моем коде на Fortran?

1 Ответ

2 голосов
/ 18 марта 2019

Большинство компиляторов позволяют вам предварительно обрабатывать исходный код, используя препроцессор C-типа.Одновременно они позволяют передавать макросы препроцессора через командную строку компилятора.В gfortran вы можете использовать следующий синтаксис:

-Dname=definition: Содержимое определения маркируется и обрабатывается так, как если бы оно появилось во время третьей фазы перевода в *Директива 1008 *.В частности, определение будет усечено символами новой строки.

...