<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Directives for conditional in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Warning-signs-when-compiling-Fortran-2008-code-that-uses-mkl/m-p/1102101#M23958</link>
    <description>&lt;H2 class="sectiontitle"&gt;Directives for conditional selection of source text&lt;/H2&gt;

&lt;P&gt;There are three forms of conditional selection of source text.&lt;/P&gt;

&lt;P&gt;Form 1:&lt;/P&gt;

&lt;PRE&gt;#if &lt;VAR&gt;condition_1&lt;/VAR&gt;
&lt;VAR&gt;block_1&lt;/VAR&gt;
#elif &lt;VAR&gt;condition_2&lt;/VAR&gt;
&lt;VAR&gt;block_2&lt;/VAR&gt;
#elif ...
#else
&lt;VAR&gt;block_n&lt;/VAR&gt;
#endif&lt;/PRE&gt;

&lt;P&gt;Form 2:&lt;/P&gt;

&lt;PRE&gt;#ifdef&lt;VAR&gt;name&lt;/VAR&gt;
&lt;VAR&gt;block_1&lt;/VAR&gt;
#elif &lt;VAR&gt;condition&lt;/VAR&gt;
&lt;VAR&gt;block_2&lt;/VAR&gt;
#elif ...
#else
&lt;VAR&gt;block_n&lt;/VAR&gt;
#endif&lt;/PRE&gt;

&lt;P&gt;Form 3:&lt;/P&gt;

&lt;PRE&gt;#ifndef name
&lt;VAR&gt;block_1&lt;/VAR&gt;
#elif &lt;VAR&gt;condition&lt;/VAR&gt;
&lt;VAR&gt;block_2&lt;/VAR&gt;
#elif ...
#else
&lt;VAR&gt;block_n&lt;/VAR&gt;
#endif&lt;/PRE&gt;

&lt;P&gt;The &lt;SPAN class="keyword"&gt;elif&lt;/SPAN&gt; and &lt;SPAN class="keyword"&gt;else&lt;/SPAN&gt; parts are optional in all three forms. There may be more than one &lt;SPAN class="keyword"&gt;elif&lt;/SPAN&gt; part in each form.&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;Conditional expressions&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;&lt;VAR&gt;condition_1&lt;/VAR&gt;, &lt;VAR&gt;condition_2&lt;/VAR&gt;, etc. are logical expressions involving fpp constants, macros, and intrinsic functions. The following items are permitted:&lt;/P&gt;

&lt;UL id="GUID-3DB78EC5-1E00-4BB0-9187-0B14EFEE11F2" type="disc"&gt;
	&lt;LI&gt;
		&lt;P&gt;C language operations: &amp;lt;, &amp;gt;, ==, !=, &amp;gt;=, &amp;lt;=, +, -, /, *, %, &amp;lt;&amp;lt;, &amp;gt;&amp;gt;, &amp;amp;, ~, |, &amp;amp;&amp;amp;, || They are interpreted by fpp in accordance to the C language semantics (this facility is provided for compatibility with "old" Fortran programs using cpp)&lt;/P&gt;
	&lt;/LI&gt;
	&lt;LI&gt;
		&lt;P&gt;Fortran language operations: .AND., .OR., .NEQV., .XOR., .EQV., .NOT., .GT., .LT., .LE., .GE., .NE., .EQ., ** (power).&lt;/P&gt;
	&lt;/LI&gt;
	&lt;LI&gt;
		&lt;P&gt;Fortran logical constants: .TRUE. , .FALSE.&lt;/P&gt;
	&lt;/LI&gt;
	&lt;LI&gt;
		&lt;P&gt;the fpp intrinsic function &lt;SAMP class="codeph"&gt;"defined": defined(name)&lt;/SAMP&gt; or &lt;SAMP class="codeph"&gt;defined name&lt;/SAMP&gt; which returns .TRUE. if name is defined as an fpp variable or a macro or returns .FALSE. if the name is not defined&lt;/P&gt;
	&lt;/LI&gt;
&lt;/UL&gt;

&lt;P&gt;&lt;SPAN class="keyword"&gt;#ifdef&lt;/SPAN&gt; is a shorthand for &lt;SAMP class="codeph"&gt;#if defined(name)&lt;/SAMP&gt; and &lt;SPAN class="keyword"&gt;#ifndef&lt;/SPAN&gt; is a shorthand for &lt;SAMP class="codeph"&gt;#if .not. defined(name)&lt;/SAMP&gt;.&lt;/P&gt;

&lt;P&gt;Only these items, integer constants, and names can be used within a constant-expression. A name that has not been defined with the &lt;SPAN class="option"&gt;-D&lt;/SPAN&gt; option, a &lt;SPAN class="keyword"&gt;#define&lt;/SPAN&gt; directive, or by default, has a value of 0. The C operation &lt;SPAN class="keyword"&gt;!=&lt;/SPAN&gt; (not equal) can be used in &lt;SPAN class="keyword"&gt;#if&lt;/SPAN&gt; or &lt;SPAN class="keyword"&gt;#elif&lt;/SPAN&gt; directive, but not in the &lt;SPAN class="keyword"&gt;#define&lt;/SPAN&gt; directive, where the symbol &lt;SPAN class="keyword"&gt;!&lt;/SPAN&gt; is considered as the Fortran comment symbol by default.&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;Conditional constructs&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;The following table summarizes conditional constructs.&lt;/P&gt;

&lt;DIV class="tablenoborder"&gt;
	&lt;TABLE frame="hsides" id="GUID-981CF6F7-7238-405A-9A5B-A9EF5268667C" rules="all" summary="" width="100%" cellpadding="4" border="1"&gt;
		&lt;THEAD align="left"&gt;
			&lt;TR&gt;
				&lt;TH class="cellrowborder" id="d215219e770" width="10%" valign="top"&gt;
					&lt;P&gt;Construct&lt;/P&gt;
				&lt;/TH&gt;
				&lt;TH class="row-nocellborder" id="d215219e776" width="90%" valign="top"&gt;
					&lt;P&gt;Result&lt;/P&gt;
				&lt;/TH&gt;
			&lt;/TR&gt;
		&lt;/THEAD&gt;
		&lt;TBODY&gt;
			&lt;TR&gt;
				&lt;TD class="cellrowborder" headers="d215219e770 " width="10%" valign="top"&gt;
					&lt;P&gt;&lt;SPAN class="keyword"&gt;#if&lt;/SPAN&gt;&lt;VAR&gt; condition&lt;/VAR&gt;&lt;/P&gt;
				&lt;/TD&gt;
				&lt;TD class="row-nocellborder" headers="d215219e776 " width="90%" valign="top"&gt;
					&lt;P&gt;Subsequent lines up to the matching &lt;SPAN class="keyword"&gt;#else&lt;/SPAN&gt;, &lt;SPAN class="keyword"&gt;#elif&lt;/SPAN&gt;, or &lt;SPAN class="keyword"&gt;#endif&lt;/SPAN&gt; directive appear in the output only if &lt;VAR&gt;condition&lt;/VAR&gt; evaluates to .TRUE. .&lt;/P&gt;
				&lt;/TD&gt;
			&lt;/TR&gt;
			&lt;TR&gt;
				&lt;TD class="cellrowborder" headers="d215219e770 " width="10%" valign="top"&gt;
					&lt;P&gt;&lt;SPAN class="keyword"&gt;#ifdef&lt;/SPAN&gt;&lt;VAR&gt; name&lt;/VAR&gt;&lt;/P&gt;
				&lt;/TD&gt;
				&lt;TD class="row-nocellborder" headers="d215219e776 " width="90%" valign="top"&gt;
					&lt;P&gt;Subsequent lines up to the matching &lt;SPAN class="keyword"&gt;#else&lt;/SPAN&gt;, &lt;SPAN class="keyword"&gt;#elif&lt;/SPAN&gt;, or &lt;SPAN class="keyword"&gt;#endif&lt;/SPAN&gt; appear in the output only if &lt;SPAN class="keyword"&gt;nam&lt;/SPAN&gt;e has been defined, either by a &lt;SPAN class="keyword"&gt;#define&lt;/SPAN&gt; directive or by the &lt;SPAN class="option"&gt;-D&lt;/SPAN&gt; option, with no intervening &lt;SPAN class="keyword"&gt;#undef&lt;/SPAN&gt; directive. No additional tokens are permitted on the directive line after &lt;VAR&gt;name&lt;/VAR&gt;.&lt;/P&gt;
				&lt;/TD&gt;
			&lt;/TR&gt;
			&lt;TR&gt;
				&lt;TD class="cellrowborder" headers="d215219e770 " width="10%" valign="top"&gt;
					&lt;P&gt;&lt;SPAN class="keyword"&gt;#ifndef&lt;/SPAN&gt;&lt;VAR&gt; name&lt;/VAR&gt;&lt;/P&gt;
				&lt;/TD&gt;
				&lt;TD class="row-nocellborder" headers="d215219e776 " width="90%" valign="top"&gt;
					&lt;P&gt;Subsequent lines up to the matching &lt;SPAN class="keyword"&gt;#else&lt;/SPAN&gt;, &lt;SPAN class="keyword"&gt;#elif&lt;/SPAN&gt;, or &lt;SPAN class="keyword"&gt;#endif&lt;/SPAN&gt; appear in the output only if &lt;VAR&gt;name&lt;/VAR&gt; has not been defined, or if its definition has been removed with an &lt;SPAN class="keyword"&gt;#undef&lt;/SPAN&gt; directive. No additional tokens are permitted on the directive line after &lt;VAR&gt;name&lt;/VAR&gt;.&lt;/P&gt;
				&lt;/TD&gt;
			&lt;/TR&gt;
			&lt;TR&gt;
				&lt;TD class="cellrowborder" headers="d215219e770 " width="10%" valign="top"&gt;
					&lt;P&gt;&lt;SPAN class="keyword"&gt;#elif&lt;/SPAN&gt;&lt;VAR&gt; condition&lt;/VAR&gt;&lt;/P&gt;
				&lt;/TD&gt;
				&lt;TD class="row-nocellborder" headers="d215219e776 " width="90%" valign="top"&gt;
					&lt;P&gt;Subsequent lines up to the matching &lt;SPAN class="keyword"&gt;#else&lt;/SPAN&gt;, &lt;SPAN class="keyword"&gt;#elif&lt;/SPAN&gt;, or &lt;SPAN class="keyword"&gt;#endif&lt;/SPAN&gt; appear in the output only if all of the following occur:&lt;/P&gt;

					&lt;UL id="GUID-85BF7A0D-694C-4138-B8F4-85FFFD5194E4" type="disc"&gt;
						&lt;LI&gt;
							&lt;P&gt;The condition in the preceding &lt;SPAN class="keyword"&gt;#if&lt;/SPAN&gt; directive evaluates to .FALSE. or the name in the preceding &lt;SPAN class="keyword"&gt;#ifdef&lt;/SPAN&gt; directive is not defined, or the name in the preceding &lt;SPAN class="keyword"&gt;#ifndef&lt;/SPAN&gt; directive is defined.&lt;/P&gt;
						&lt;/LI&gt;
						&lt;LI&gt;
							&lt;P&gt;The conditions in all of the preceding &lt;SPAN class="keyword"&gt;#elif&lt;/SPAN&gt; directives evaluate to .FALSE.&lt;/P&gt;
						&lt;/LI&gt;
						&lt;LI&gt;
							&lt;P&gt;The condition in the current &lt;SPAN class="keyword"&gt;#elif&lt;/SPAN&gt; evaluates to .TRUE.&lt;/P&gt;
						&lt;/LI&gt;
					&lt;/UL&gt;

					&lt;P&gt;Any condition allowed in an &lt;SPAN class="keyword"&gt;#if&lt;/SPAN&gt; directive is allowed in an &lt;SPAN class="keyword"&gt;#elif&lt;/SPAN&gt; directive. Any number of &lt;SPAN class="keyword"&gt;#elif&lt;/SPAN&gt; directives may appear between an &lt;SPAN class="keyword"&gt;#if&lt;/SPAN&gt;, &lt;SPAN class="keyword"&gt;#ifdef&lt;/SPAN&gt;, or &lt;SPAN class="keyword"&gt;#ifndef&lt;/SPAN&gt; directive and a matching &lt;SPAN class="keyword"&gt;#else&lt;/SPAN&gt; or &lt;SPAN class="keyword"&gt;#endif&lt;/SPAN&gt; directive.&lt;/P&gt;
				&lt;/TD&gt;
			&lt;/TR&gt;
			&lt;TR&gt;
				&lt;TD class="cellrowborder" headers="d215219e770 " width="10%" valign="top"&gt;
					&lt;P&gt;&lt;SPAN class="keyword"&gt;#else&lt;/SPAN&gt;&lt;/P&gt;
				&lt;/TD&gt;
				&lt;TD class="row-nocellborder" headers="d215219e776 " width="90%" valign="top"&gt;
					&lt;P&gt;Subsequent lines up to the matching &lt;SPAN class="keyword"&gt;#endif&lt;/SPAN&gt; appear in the output only if all of the following occur:&lt;/P&gt;

					&lt;UL id="GUID-7B9EB1B1-1238-49BB-9736-AD86895F6BDF" type="disc"&gt;
						&lt;LI&gt;
							&lt;P&gt;The condition in the preceding &lt;SPAN class="keyword"&gt;#if&lt;/SPAN&gt; directive evaluates to .FALSE. or the name in the preceding &lt;SPAN class="keyword"&gt;#ifdef&lt;/SPAN&gt; directive is not defined, or the name in the preceding &lt;SPAN class="keyword"&gt;#ifndef&lt;/SPAN&gt; directive is defined.&lt;/P&gt;
						&lt;/LI&gt;
						&lt;LI&gt;
							&lt;P&gt;The conditions in all of the preceding &lt;SPAN class="keyword"&gt;#elif&lt;/SPAN&gt; directives evaluate to .FALSE.&lt;/P&gt;
						&lt;/LI&gt;
					&lt;/UL&gt;
				&lt;/TD&gt;
			&lt;/TR&gt;
			&lt;TR&gt;
				&lt;TD class="cellrowborder" headers="d215219e770 " width="10%" valign="top"&gt;
					&lt;P&gt;&lt;SPAN class="keyword"&gt;#endif&lt;/SPAN&gt;&lt;/P&gt;
				&lt;/TD&gt;
				&lt;TD class="row-nocellborder" headers="d215219e776 " width="90%" valign="top"&gt;
					&lt;P&gt;End a section of lines begun by one of the conditional directives &lt;SPAN class="keyword"&gt;#if&lt;/SPAN&gt;, &lt;SPAN class="keyword"&gt;#ifdef&lt;/SPAN&gt;, or &lt;SPAN class="keyword"&gt;#ifndef&lt;/SPAN&gt;. Each such directive must have a matching &lt;SPAN class="keyword"&gt;#endif&lt;/SPAN&gt;.&lt;/P&gt;
				&lt;/TD&gt;
			&lt;/TR&gt;
		&lt;/TBODY&gt;
	&lt;/TABLE&gt;
&lt;/DIV&gt;</description>
    <pubDate>Fri, 10 Feb 2017 10:06:36 GMT</pubDate>
    <dc:creator>Xj_Kong</dc:creator>
    <dc:date>2017-02-10T10:06:36Z</dc:date>
    <item>
      <title>Warning signs when compiling Fortran 2008 code that uses mkl_cluster_sparse_solver.f90</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Warning-signs-when-compiling-Fortran-2008-code-that-uses-mkl/m-p/1102100#M23957</link>
      <description>&lt;P&gt;Hello, I'm compiling a code that is linked to the MKL cluster sparse solver. This code is written in Fortran 2008 and compilation uses the -stand:f08 intel Fortran compiler flag. I use the include statement at the beginning to the interfaces of cluster_sparse_solver&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;#include "mkl_cluster_sparse_solver.f90"&lt;/PRE&gt;

&lt;P&gt;and have a module use this compiled module.&lt;/P&gt;

&lt;P&gt;When I compile the code with debug flags -m64 -check all -fp-stack-check -warn unused -O0 -auto -WB -traceback -ggdb -fpe0 -fltconsistency -stand:f08 -no-wrap-margin -I/opt/intel/compilers_and_libraries_2016.3.170/mac/mkl/include -fpp , it gives the following warnings for the module&amp;nbsp;MKL_CLUSTER_SPARSE_SOLVER:&lt;/P&gt;

&lt;P&gt;&lt;FONT size="2"&gt;&lt;SPAN style="font-size:10pt;"&gt;Warnings - Compile with MPI debug:&lt;BR /&gt;
	/opt/intel16/compilers_and_libraries_2016.3.210/linux/mkl/include/mkl_cluster_sparse_solver.f90(27): warning #7025: This directive is not standard F2008.&lt;BR /&gt;
	!DEC$ IF .NOT. DEFINED( __MKL_CLUSTER_SPARSE_SOLVER_F90 )&lt;BR /&gt;
	------^&lt;BR /&gt;
	/opt/intel16/compilers_and_libraries_2016.3.210/linux/mkl/include/mkl_cluster_sparse_solver.f90(29): warning #7025: This directive is not standard F2008.&lt;BR /&gt;
	!DEC$ DEFINE __MKL_CLUSTER_SPARSE_SOLVER_F90&lt;BR /&gt;
	------^&lt;BR /&gt;
	/opt/intel16/compilers_and_libraries_2016.3.210/linux/mkl/include/mkl_cluster_sparse_solver.f90(61): warning #6916: Fortran 2008 does not allow this length specification.&amp;nbsp;&amp;nbsp; [4]&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER*4,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTENT(IN)&amp;nbsp;&amp;nbsp;&amp;nbsp; :: COMM&lt;BR /&gt;
	------------------^&lt;BR /&gt;
	/opt/intel16/compilers_and_libraries_2016.3.210/linux/mkl/include/mkl_cluster_sparse_solver.f90(82): warning #6916: Fortran 2008 does not allow this length specification.&amp;nbsp;&amp;nbsp; [4]&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER*4,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTENT(IN)&amp;nbsp;&amp;nbsp;&amp;nbsp; :: COMM&lt;BR /&gt;
	------------------^&lt;BR /&gt;
	/opt/intel16/compilers_and_libraries_2016.3.210/linux/mkl/include/mkl_cluster_sparse_solver.f90(103): warning #6916: Fortran 2008 does not allow this length specification.&amp;nbsp;&amp;nbsp; [4]&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER*4,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTENT(IN)&amp;nbsp;&amp;nbsp;&amp;nbsp; :: COMM&lt;BR /&gt;
	------------------^&lt;BR /&gt;
	/opt/intel16/compilers_and_libraries_2016.3.210/linux/mkl/include/mkl_cluster_sparse_solver.f90(124): warning #6916: Fortran 2008 does not allow this length specification.&amp;nbsp;&amp;nbsp; [4]&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER*4,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTENT(IN)&amp;nbsp;&amp;nbsp;&amp;nbsp; :: COMM&lt;BR /&gt;
	------------------^&lt;BR /&gt;
	/opt/intel16/compilers_and_libraries_2016.3.210/linux/mkl/include/mkl_cluster_sparse_solver.f90(145): warning #6916: Fortran 2008 does not allow this length specification.&amp;nbsp;&amp;nbsp; [4]&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER*4,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTENT(IN)&amp;nbsp;&amp;nbsp;&amp;nbsp; :: COMM&lt;BR /&gt;
	------------------^&lt;BR /&gt;
	/opt/intel16/compilers_and_libraries_2016.3.210/linux/mkl/include/mkl_cluster_sparse_solver.f90(166): warning #6916: Fortran 2008 does not allow this length specification.&amp;nbsp;&amp;nbsp; [4]&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER*4,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTENT(IN)&amp;nbsp;&amp;nbsp;&amp;nbsp; :: COMM&lt;BR /&gt;
	------------------^&lt;BR /&gt;
	/opt/intel16/compilers_and_libraries_2016.3.210/linux/mkl/include/mkl_cluster_sparse_solver.f90(187): warning #6916: Fortran 2008 does not allow this length specification.&amp;nbsp;&amp;nbsp; [4]&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER*4,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTENT(IN)&amp;nbsp;&amp;nbsp;&amp;nbsp; :: COMM&lt;BR /&gt;
	------------------^&lt;BR /&gt;
	/opt/intel16/compilers_and_libraries_2016.3.210/linux/mkl/include/mkl_cluster_sparse_solver.f90(208): warning #6916: Fortran 2008 does not allow this length specification.&amp;nbsp;&amp;nbsp; [4]&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER*4,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTENT(IN)&amp;nbsp;&amp;nbsp;&amp;nbsp; :: COMM&lt;BR /&gt;
	------------------^&lt;BR /&gt;
	/opt/intel16/compilers_and_libraries_2016.3.210/linux/mkl/include/mkl_cluster_sparse_solver.f90(235): warning #6916: Fortran 2008 does not allow this length specification.&amp;nbsp;&amp;nbsp; [4]&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER*4,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTENT(IN)&amp;nbsp;&amp;nbsp;&amp;nbsp; :: COMM&lt;BR /&gt;
	------------------^&lt;BR /&gt;
	/opt/intel16/compilers_and_libraries_2016.3.210/linux/mkl/include/mkl_cluster_sparse_solver.f90(256): warning #6916: Fortran 2008 does not allow this length specification.&amp;nbsp;&amp;nbsp; [4]&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER*4,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTENT(IN)&amp;nbsp;&amp;nbsp;&amp;nbsp; :: COMM&lt;BR /&gt;
	------------------^&lt;BR /&gt;
	/opt/intel16/compilers_and_libraries_2016.3.210/linux/mkl/include/mkl_cluster_sparse_solver.f90(277): warning #6916: Fortran 2008 does not allow this length specification.&amp;nbsp;&amp;nbsp; [4]&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER*4,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTENT(IN)&amp;nbsp;&amp;nbsp;&amp;nbsp; :: COMM&lt;BR /&gt;
	------------------^&lt;BR /&gt;
	/opt/intel16/compilers_and_libraries_2016.3.210/linux/mkl/include/mkl_cluster_sparse_solver.f90(298): warning #6916: Fortran 2008 does not allow this length specification.&amp;nbsp;&amp;nbsp; [4]&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER*4,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTENT(IN)&amp;nbsp;&amp;nbsp;&amp;nbsp; :: COMM&lt;BR /&gt;
	------------------^&lt;BR /&gt;
	/opt/intel16/compilers_and_libraries_2016.3.210/linux/mkl/include/mkl_cluster_sparse_solver.f90(319): warning #6916: Fortran 2008 does not allow this length specification.&amp;nbsp;&amp;nbsp; [4]&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER*4,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTENT(IN)&amp;nbsp;&amp;nbsp;&amp;nbsp; :: COMM&lt;BR /&gt;
	------------------^&lt;BR /&gt;
	/opt/intel16/compilers_and_libraries_2016.3.210/linux/mkl/include/mkl_cluster_sparse_solver.f90(340): warning #6916: Fortran 2008 does not allow this length specification.&amp;nbsp;&amp;nbsp; [4]&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER*4,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTENT(IN)&amp;nbsp;&amp;nbsp;&amp;nbsp; :: COMM&lt;BR /&gt;
	------------------^&lt;BR /&gt;
	/opt/intel16/compilers_and_libraries_2016.3.210/linux/mkl/include/mkl_cluster_sparse_solver.f90(361): warning #6916: Fortran 2008 does not allow this length specification.&amp;nbsp;&amp;nbsp; [4]&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER*4,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTENT(IN)&amp;nbsp;&amp;nbsp;&amp;nbsp; :: COMM&lt;BR /&gt;
	------------------^&lt;BR /&gt;
	/opt/intel16/compilers_and_libraries_2016.3.210/linux/mkl/include/mkl_cluster_sparse_solver.f90(382): warning #6916: Fortran 2008 does not allow this length specification.&amp;nbsp;&amp;nbsp; [4]&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER*4,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTENT(IN)&amp;nbsp;&amp;nbsp;&amp;nbsp; :: COMM&lt;BR /&gt;
	------------------^&lt;BR /&gt;
	/opt/intel16/compilers_and_libraries_2016.3.210/linux/mkl/include/mkl_cluster_sparse_solver.f90(388): warning #7025: This directive is not standard F2008.&lt;BR /&gt;
	!DEC$ ENDIF&lt;BR /&gt;
	------^&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;

&lt;P&gt;which is telling me that the interface directive !DEC$ and declaration INTEGER*4 don't belongto the standard 2008. I understand the library uses the standard f90. So, which options would you recommend to supress these warnings on debug mode?&lt;/P&gt;

&lt;P&gt;Also, are you planning on moving these interfaces to be f08 compliant in the furture?&lt;/P&gt;

&lt;P&gt;Thank you,&lt;/P&gt;

&lt;P&gt;Marcos&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 18 Aug 2016 15:54:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Warning-signs-when-compiling-Fortran-2008-code-that-uses-mkl/m-p/1102100#M23957</guid>
      <dc:creator>Marcos_V_1</dc:creator>
      <dc:date>2016-08-18T15:54:10Z</dc:date>
    </item>
    <item>
      <title>Directives for conditional</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Warning-signs-when-compiling-Fortran-2008-code-that-uses-mkl/m-p/1102101#M23958</link>
      <description>&lt;H2 class="sectiontitle"&gt;Directives for conditional selection of source text&lt;/H2&gt;

&lt;P&gt;There are three forms of conditional selection of source text.&lt;/P&gt;

&lt;P&gt;Form 1:&lt;/P&gt;

&lt;PRE&gt;#if &lt;VAR&gt;condition_1&lt;/VAR&gt;
&lt;VAR&gt;block_1&lt;/VAR&gt;
#elif &lt;VAR&gt;condition_2&lt;/VAR&gt;
&lt;VAR&gt;block_2&lt;/VAR&gt;
#elif ...
#else
&lt;VAR&gt;block_n&lt;/VAR&gt;
#endif&lt;/PRE&gt;

&lt;P&gt;Form 2:&lt;/P&gt;

&lt;PRE&gt;#ifdef&lt;VAR&gt;name&lt;/VAR&gt;
&lt;VAR&gt;block_1&lt;/VAR&gt;
#elif &lt;VAR&gt;condition&lt;/VAR&gt;
&lt;VAR&gt;block_2&lt;/VAR&gt;
#elif ...
#else
&lt;VAR&gt;block_n&lt;/VAR&gt;
#endif&lt;/PRE&gt;

&lt;P&gt;Form 3:&lt;/P&gt;

&lt;PRE&gt;#ifndef name
&lt;VAR&gt;block_1&lt;/VAR&gt;
#elif &lt;VAR&gt;condition&lt;/VAR&gt;
&lt;VAR&gt;block_2&lt;/VAR&gt;
#elif ...
#else
&lt;VAR&gt;block_n&lt;/VAR&gt;
#endif&lt;/PRE&gt;

&lt;P&gt;The &lt;SPAN class="keyword"&gt;elif&lt;/SPAN&gt; and &lt;SPAN class="keyword"&gt;else&lt;/SPAN&gt; parts are optional in all three forms. There may be more than one &lt;SPAN class="keyword"&gt;elif&lt;/SPAN&gt; part in each form.&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;Conditional expressions&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;&lt;VAR&gt;condition_1&lt;/VAR&gt;, &lt;VAR&gt;condition_2&lt;/VAR&gt;, etc. are logical expressions involving fpp constants, macros, and intrinsic functions. The following items are permitted:&lt;/P&gt;

&lt;UL id="GUID-3DB78EC5-1E00-4BB0-9187-0B14EFEE11F2" type="disc"&gt;
	&lt;LI&gt;
		&lt;P&gt;C language operations: &amp;lt;, &amp;gt;, ==, !=, &amp;gt;=, &amp;lt;=, +, -, /, *, %, &amp;lt;&amp;lt;, &amp;gt;&amp;gt;, &amp;amp;, ~, |, &amp;amp;&amp;amp;, || They are interpreted by fpp in accordance to the C language semantics (this facility is provided for compatibility with "old" Fortran programs using cpp)&lt;/P&gt;
	&lt;/LI&gt;
	&lt;LI&gt;
		&lt;P&gt;Fortran language operations: .AND., .OR., .NEQV., .XOR., .EQV., .NOT., .GT., .LT., .LE., .GE., .NE., .EQ., ** (power).&lt;/P&gt;
	&lt;/LI&gt;
	&lt;LI&gt;
		&lt;P&gt;Fortran logical constants: .TRUE. , .FALSE.&lt;/P&gt;
	&lt;/LI&gt;
	&lt;LI&gt;
		&lt;P&gt;the fpp intrinsic function &lt;SAMP class="codeph"&gt;"defined": defined(name)&lt;/SAMP&gt; or &lt;SAMP class="codeph"&gt;defined name&lt;/SAMP&gt; which returns .TRUE. if name is defined as an fpp variable or a macro or returns .FALSE. if the name is not defined&lt;/P&gt;
	&lt;/LI&gt;
&lt;/UL&gt;

&lt;P&gt;&lt;SPAN class="keyword"&gt;#ifdef&lt;/SPAN&gt; is a shorthand for &lt;SAMP class="codeph"&gt;#if defined(name)&lt;/SAMP&gt; and &lt;SPAN class="keyword"&gt;#ifndef&lt;/SPAN&gt; is a shorthand for &lt;SAMP class="codeph"&gt;#if .not. defined(name)&lt;/SAMP&gt;.&lt;/P&gt;

&lt;P&gt;Only these items, integer constants, and names can be used within a constant-expression. A name that has not been defined with the &lt;SPAN class="option"&gt;-D&lt;/SPAN&gt; option, a &lt;SPAN class="keyword"&gt;#define&lt;/SPAN&gt; directive, or by default, has a value of 0. The C operation &lt;SPAN class="keyword"&gt;!=&lt;/SPAN&gt; (not equal) can be used in &lt;SPAN class="keyword"&gt;#if&lt;/SPAN&gt; or &lt;SPAN class="keyword"&gt;#elif&lt;/SPAN&gt; directive, but not in the &lt;SPAN class="keyword"&gt;#define&lt;/SPAN&gt; directive, where the symbol &lt;SPAN class="keyword"&gt;!&lt;/SPAN&gt; is considered as the Fortran comment symbol by default.&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;Conditional constructs&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;The following table summarizes conditional constructs.&lt;/P&gt;

&lt;DIV class="tablenoborder"&gt;
	&lt;TABLE frame="hsides" id="GUID-981CF6F7-7238-405A-9A5B-A9EF5268667C" rules="all" summary="" width="100%" cellpadding="4" border="1"&gt;
		&lt;THEAD align="left"&gt;
			&lt;TR&gt;
				&lt;TH class="cellrowborder" id="d215219e770" width="10%" valign="top"&gt;
					&lt;P&gt;Construct&lt;/P&gt;
				&lt;/TH&gt;
				&lt;TH class="row-nocellborder" id="d215219e776" width="90%" valign="top"&gt;
					&lt;P&gt;Result&lt;/P&gt;
				&lt;/TH&gt;
			&lt;/TR&gt;
		&lt;/THEAD&gt;
		&lt;TBODY&gt;
			&lt;TR&gt;
				&lt;TD class="cellrowborder" headers="d215219e770 " width="10%" valign="top"&gt;
					&lt;P&gt;&lt;SPAN class="keyword"&gt;#if&lt;/SPAN&gt;&lt;VAR&gt; condition&lt;/VAR&gt;&lt;/P&gt;
				&lt;/TD&gt;
				&lt;TD class="row-nocellborder" headers="d215219e776 " width="90%" valign="top"&gt;
					&lt;P&gt;Subsequent lines up to the matching &lt;SPAN class="keyword"&gt;#else&lt;/SPAN&gt;, &lt;SPAN class="keyword"&gt;#elif&lt;/SPAN&gt;, or &lt;SPAN class="keyword"&gt;#endif&lt;/SPAN&gt; directive appear in the output only if &lt;VAR&gt;condition&lt;/VAR&gt; evaluates to .TRUE. .&lt;/P&gt;
				&lt;/TD&gt;
			&lt;/TR&gt;
			&lt;TR&gt;
				&lt;TD class="cellrowborder" headers="d215219e770 " width="10%" valign="top"&gt;
					&lt;P&gt;&lt;SPAN class="keyword"&gt;#ifdef&lt;/SPAN&gt;&lt;VAR&gt; name&lt;/VAR&gt;&lt;/P&gt;
				&lt;/TD&gt;
				&lt;TD class="row-nocellborder" headers="d215219e776 " width="90%" valign="top"&gt;
					&lt;P&gt;Subsequent lines up to the matching &lt;SPAN class="keyword"&gt;#else&lt;/SPAN&gt;, &lt;SPAN class="keyword"&gt;#elif&lt;/SPAN&gt;, or &lt;SPAN class="keyword"&gt;#endif&lt;/SPAN&gt; appear in the output only if &lt;SPAN class="keyword"&gt;nam&lt;/SPAN&gt;e has been defined, either by a &lt;SPAN class="keyword"&gt;#define&lt;/SPAN&gt; directive or by the &lt;SPAN class="option"&gt;-D&lt;/SPAN&gt; option, with no intervening &lt;SPAN class="keyword"&gt;#undef&lt;/SPAN&gt; directive. No additional tokens are permitted on the directive line after &lt;VAR&gt;name&lt;/VAR&gt;.&lt;/P&gt;
				&lt;/TD&gt;
			&lt;/TR&gt;
			&lt;TR&gt;
				&lt;TD class="cellrowborder" headers="d215219e770 " width="10%" valign="top"&gt;
					&lt;P&gt;&lt;SPAN class="keyword"&gt;#ifndef&lt;/SPAN&gt;&lt;VAR&gt; name&lt;/VAR&gt;&lt;/P&gt;
				&lt;/TD&gt;
				&lt;TD class="row-nocellborder" headers="d215219e776 " width="90%" valign="top"&gt;
					&lt;P&gt;Subsequent lines up to the matching &lt;SPAN class="keyword"&gt;#else&lt;/SPAN&gt;, &lt;SPAN class="keyword"&gt;#elif&lt;/SPAN&gt;, or &lt;SPAN class="keyword"&gt;#endif&lt;/SPAN&gt; appear in the output only if &lt;VAR&gt;name&lt;/VAR&gt; has not been defined, or if its definition has been removed with an &lt;SPAN class="keyword"&gt;#undef&lt;/SPAN&gt; directive. No additional tokens are permitted on the directive line after &lt;VAR&gt;name&lt;/VAR&gt;.&lt;/P&gt;
				&lt;/TD&gt;
			&lt;/TR&gt;
			&lt;TR&gt;
				&lt;TD class="cellrowborder" headers="d215219e770 " width="10%" valign="top"&gt;
					&lt;P&gt;&lt;SPAN class="keyword"&gt;#elif&lt;/SPAN&gt;&lt;VAR&gt; condition&lt;/VAR&gt;&lt;/P&gt;
				&lt;/TD&gt;
				&lt;TD class="row-nocellborder" headers="d215219e776 " width="90%" valign="top"&gt;
					&lt;P&gt;Subsequent lines up to the matching &lt;SPAN class="keyword"&gt;#else&lt;/SPAN&gt;, &lt;SPAN class="keyword"&gt;#elif&lt;/SPAN&gt;, or &lt;SPAN class="keyword"&gt;#endif&lt;/SPAN&gt; appear in the output only if all of the following occur:&lt;/P&gt;

					&lt;UL id="GUID-85BF7A0D-694C-4138-B8F4-85FFFD5194E4" type="disc"&gt;
						&lt;LI&gt;
							&lt;P&gt;The condition in the preceding &lt;SPAN class="keyword"&gt;#if&lt;/SPAN&gt; directive evaluates to .FALSE. or the name in the preceding &lt;SPAN class="keyword"&gt;#ifdef&lt;/SPAN&gt; directive is not defined, or the name in the preceding &lt;SPAN class="keyword"&gt;#ifndef&lt;/SPAN&gt; directive is defined.&lt;/P&gt;
						&lt;/LI&gt;
						&lt;LI&gt;
							&lt;P&gt;The conditions in all of the preceding &lt;SPAN class="keyword"&gt;#elif&lt;/SPAN&gt; directives evaluate to .FALSE.&lt;/P&gt;
						&lt;/LI&gt;
						&lt;LI&gt;
							&lt;P&gt;The condition in the current &lt;SPAN class="keyword"&gt;#elif&lt;/SPAN&gt; evaluates to .TRUE.&lt;/P&gt;
						&lt;/LI&gt;
					&lt;/UL&gt;

					&lt;P&gt;Any condition allowed in an &lt;SPAN class="keyword"&gt;#if&lt;/SPAN&gt; directive is allowed in an &lt;SPAN class="keyword"&gt;#elif&lt;/SPAN&gt; directive. Any number of &lt;SPAN class="keyword"&gt;#elif&lt;/SPAN&gt; directives may appear between an &lt;SPAN class="keyword"&gt;#if&lt;/SPAN&gt;, &lt;SPAN class="keyword"&gt;#ifdef&lt;/SPAN&gt;, or &lt;SPAN class="keyword"&gt;#ifndef&lt;/SPAN&gt; directive and a matching &lt;SPAN class="keyword"&gt;#else&lt;/SPAN&gt; or &lt;SPAN class="keyword"&gt;#endif&lt;/SPAN&gt; directive.&lt;/P&gt;
				&lt;/TD&gt;
			&lt;/TR&gt;
			&lt;TR&gt;
				&lt;TD class="cellrowborder" headers="d215219e770 " width="10%" valign="top"&gt;
					&lt;P&gt;&lt;SPAN class="keyword"&gt;#else&lt;/SPAN&gt;&lt;/P&gt;
				&lt;/TD&gt;
				&lt;TD class="row-nocellborder" headers="d215219e776 " width="90%" valign="top"&gt;
					&lt;P&gt;Subsequent lines up to the matching &lt;SPAN class="keyword"&gt;#endif&lt;/SPAN&gt; appear in the output only if all of the following occur:&lt;/P&gt;

					&lt;UL id="GUID-7B9EB1B1-1238-49BB-9736-AD86895F6BDF" type="disc"&gt;
						&lt;LI&gt;
							&lt;P&gt;The condition in the preceding &lt;SPAN class="keyword"&gt;#if&lt;/SPAN&gt; directive evaluates to .FALSE. or the name in the preceding &lt;SPAN class="keyword"&gt;#ifdef&lt;/SPAN&gt; directive is not defined, or the name in the preceding &lt;SPAN class="keyword"&gt;#ifndef&lt;/SPAN&gt; directive is defined.&lt;/P&gt;
						&lt;/LI&gt;
						&lt;LI&gt;
							&lt;P&gt;The conditions in all of the preceding &lt;SPAN class="keyword"&gt;#elif&lt;/SPAN&gt; directives evaluate to .FALSE.&lt;/P&gt;
						&lt;/LI&gt;
					&lt;/UL&gt;
				&lt;/TD&gt;
			&lt;/TR&gt;
			&lt;TR&gt;
				&lt;TD class="cellrowborder" headers="d215219e770 " width="10%" valign="top"&gt;
					&lt;P&gt;&lt;SPAN class="keyword"&gt;#endif&lt;/SPAN&gt;&lt;/P&gt;
				&lt;/TD&gt;
				&lt;TD class="row-nocellborder" headers="d215219e776 " width="90%" valign="top"&gt;
					&lt;P&gt;End a section of lines begun by one of the conditional directives &lt;SPAN class="keyword"&gt;#if&lt;/SPAN&gt;, &lt;SPAN class="keyword"&gt;#ifdef&lt;/SPAN&gt;, or &lt;SPAN class="keyword"&gt;#ifndef&lt;/SPAN&gt;. Each such directive must have a matching &lt;SPAN class="keyword"&gt;#endif&lt;/SPAN&gt;.&lt;/P&gt;
				&lt;/TD&gt;
			&lt;/TR&gt;
		&lt;/TBODY&gt;
	&lt;/TABLE&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 10 Feb 2017 10:06:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Warning-signs-when-compiling-Fortran-2008-code-that-uses-mkl/m-p/1102101#M23958</guid>
      <dc:creator>Xj_Kong</dc:creator>
      <dc:date>2017-02-10T10:06:36Z</dc:date>
    </item>
  </channel>
</rss>

