Diagnostic 8037: If an object of a type for which component-initialization is specified appears in the specification-part of a MODULE and does not have ALLOCATABLE or POINTER attribute

Diagnostic 8037: If an object of a type for which component-initialization is specified appears in the specification-part of a MODULE and does not have ALLOCATABLE or POINTER attribute

This is a standards warning indicating that the following constraint of Fortran 2003 is being violated:

C1107 (R1104) If an object of a type for which component-initialization is specified (R444) appears in the specification-part of a module and does not have the ALLOCATABLE or POINTER attribute, the object shall have the SAVE attribute.

It is issued only when standards checking is requested (/stand on Windows or -std on Linux or OS X.)

For example:

module mymod
implicit none
type mytype
  integer :: comp = 1
end type mytype
type(mytype) :: rec

In Fortran 2003 and earlier, you would be required to give "rec" the SAVE attribute. Note that component initialization, unlike variable initialization, does not imply SAVE.

This constraint was removed in Fortran 2008, as all module variables implicitly have SAVE as of Fortran 2008, but the Intel Fortran 15.0 compiler gives this diagnostic even if you ask for Fortran 2008 standards checking - that will be corrected in a future release.

Для получения подробной информации о возможностях оптимизации компилятора обратитесь к нашему Уведомлению об оптимизации.