2016-03-27 4 views
0

я имел строку в своем кодепредупреждение «элементный внутренняя функция здесь иметь тип целого числа или символа»

real(8)::pi=4*atan(1D0) 

Я скомпилировал с ifort /stand:03 и предупреждает меня

Fortran-обучения. f90 (3): предупреждение # 6009: Fortran 2003 указывает, что элементная внутренняя функция здесь имеет тип integer или character и , каждый аргумент должен быть инициализацией expr типа integer или . [ATAN]

 real(8)::pi=4*atan(1D0) 
----------------------^ 

Что это значит?

ответ

2

Эта ошибка компилятора исправлена ​​в последних версиях. См. here.

В Fortran 95 выражения инициализации (постоянные выражения) были намного более строгими, чем они есть сейчас. Выражение, которое вы используете, официально не поддерживалось - следовательно, это предупреждение. Когда это ограничение было отменено в Fortran 2003, Intel не исправила это предупреждение сразу - см. Связанную статью. На всякий случай, если вы хотите отследить это, Intel Issue ID - DPD200253798.

Кстати, это всего лишь предупреждение. Вы можете легко отключить его с

-diag-disable 6009 

или Windows:

/Qdiag-disable:6009 
+0

реальный (8) :: пи = 4 * Атан (1D0), печать *, пи, конец Тем не менее воспроизводит с/стенд : f03 - 16.0.2.180. Вы используете бета-версию? – user5713492

1

Это ограничение f95, а не f03. Таким образом, ошибка в ifort.