<?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 I have the solution but one in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077072#M120792</link>
    <description>&lt;P&gt;I have the solution but&amp;nbsp;one last question.&amp;nbsp; Below is the code.&amp;nbsp; Is there a way to not create module mymod2 and just express the DLL import in the subroutine?&amp;nbsp; When I move it, I get the following error: &lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;If any bind-entity in a bind-stmt is an entity-name, the bind-stmt shall appear in the specification part of a module&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;module&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; mymod2 &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;use&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;intrinsic&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; :: ISO_C_BINDING &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&amp;nbsp;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;IMPLICIT NONE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&amp;nbsp;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;CHARACTER&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;POINTER&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;::ARR01(:)=&amp;gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;NULL&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;()&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;type&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;(C_PTR), &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;bind&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;(C) :: SM01 &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;B&gt;&lt;FONT color="#006400" face="Consolas" size="2"&gt;&lt;FONT color="#006400" face="Consolas" size="2"&gt;&lt;FONT color="#006400" face="Consolas" size="2"&gt;!DIR$ ATTRIBUTES DLLIMPORT :: SM01&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;END&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&amp;nbsp;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;SUBROUTINE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; FORTRAN_LIBRARY2()&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;USE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;INTRINSIC&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; :: ISO_C_BINDING&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;USE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; mymod2&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;IMPLICIT NONE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&amp;nbsp;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;*4 ,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;pointer&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; :: F0 &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;*4 ,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;pointer&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; :: F1 &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;real&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;*4, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;pointer&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; :: F2&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;*4, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;pointer&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; :: F3(:)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&amp;nbsp;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;call&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; C_F_POINTER (SM01, ARR01, [2000])&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;call&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; C_F_POINTER(C_LOC(ARR01(1)), F0)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;call&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; C_F_POINTER(C_LOC(ARR01(5)), F1)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;call&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; C_F_POINTER(C_LOC(ARR01(9)), F2) &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;call&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; C_F_POINTER(C_LOC(ARR01(13)), F3,[4]) &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&amp;nbsp;&lt;/P&gt;

	&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;F0 = 673&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;F1 = 544&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;f2 = 66.7&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;END&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;</description>
    <pubDate>Mon, 10 Apr 2017 22:41:06 GMT</pubDate>
    <dc:creator>Merik_G_</dc:creator>
    <dc:date>2017-04-10T22:41:06Z</dc:date>
    <item>
      <title>Mapping Shared Memory from C++</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077067#M120787</link>
      <description>&lt;P&gt;I'm creating&amp;nbsp;a shared memory&amp;nbsp;file mapping&amp;nbsp;in a DLL in C++ and assign it to SM01&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;extern&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#a31515" face="Consolas" size="2"&gt;&lt;FONT color="#a31515" face="Consolas" size="2"&gt;&lt;FONT color="#a31515" face="Consolas" size="2"&gt;"C"&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; {&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;__declspec&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; (&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;dllexport&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;) &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;char&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; *&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#000080" face="Consolas" size="2"&gt;&lt;FONT color="#000080" face="Consolas" size="2"&gt;&lt;FONT color="#000080" face="Consolas" size="2"&gt;SM01&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; = &lt;/FONT&gt;&lt;/FONT&gt;&lt;I&gt;&lt;FONT color="#a000a0" face="Consolas" size="2"&gt;&lt;FONT color="#a000a0" face="Consolas" size="2"&gt;&lt;FONT color="#a000a0" face="Consolas" size="2"&gt;NULL&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P&gt;I can use this in another C++ DLL by doing this&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;extern&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#a31515" face="Consolas" size="2"&gt;&lt;FONT color="#a31515" face="Consolas" size="2"&gt;&lt;FONT color="#a31515" face="Consolas" size="2"&gt;"C"&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;__declspec&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;dllimport&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;) &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;char&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; *&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#000080" face="Consolas" size="2"&gt;&lt;FONT color="#000080" face="Consolas" size="2"&gt;&lt;FONT color="#000080" face="Consolas" size="2"&gt;SM01&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;#define&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#a000a0" face="Consolas" size="2"&gt;&lt;FONT color="#a000a0" face="Consolas" size="2"&gt;&lt;FONT color="#a000a0" face="Consolas" size="2"&gt;abc1&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; (*(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; *)(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#000080" face="Consolas" size="2"&gt;&lt;FONT color="#000080" face="Consolas" size="2"&gt;&lt;FONT color="#000080" face="Consolas" size="2"&gt;SM01 &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;+ 4))&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;I can assign abc1 to a value in shared memory.&lt;/FONT&gt;&lt;/P&gt;

&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;I would like to do the equivalent in a FORTRAN DLL b&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;ut it's not working.&amp;nbsp; Something like this.&lt;/FONT&gt;&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;USE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;INTRINSIC&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; :: ISO_C_BINDING&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;IMPLICIT NONE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;TYPE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;(C_PTR), &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;BIND&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;(C) :: SM01&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;SUBROUTINE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; FORTRAN_LIBRARY()&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;INTEGER&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; abc1&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;EQUIVALENCE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; (abc1,SM01(4))&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;abc1 = 555&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;END&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&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, 06 Apr 2017 19:33:20 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077067#M120787</guid>
      <dc:creator>Merik_G_</dc:creator>
      <dc:date>2017-04-06T19:33:20Z</dc:date>
    </item>
    <item>
      <title>https://software.intel.com/en</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077068#M120788</link>
      <description>&lt;P&gt;&lt;A href="https://software.intel.com/en-us/node/678433"&gt;https://software.intel.com/en-us/node/678433&lt;/A&gt;&amp;nbsp;provides an example on how to&amp;nbsp;&lt;SPAN style="color: rgb(102, 102, 102); font-family: Arial, Tahoma, Helvetica, sans-serif; font-size: 13px;"&gt;interoperate with C pointer. &lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color: rgb(102, 102, 102); font-family: Arial, Tahoma, Helvetica, sans-serif; font-size: 13px;"&gt;For your case:&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;USE, INTRINSIC :: ISO_C_BINDING&lt;BR /&gt;
	CHARACTER,POINTER::ar(:)=&amp;gt; NULL()&lt;BR /&gt;
	INTEGER,PARAMETER :: n_elements = 4&lt;BR /&gt;
	!DIR$ ATTRIBUTES DLLIMPORT :: SM01&lt;BR /&gt;
	type(c_ptr) :: SM01&lt;/P&gt;

&lt;P&gt;call C_F_POINTER (sm01,ar,[n_elements])&lt;BR /&gt;
	ar(4) = 'c'&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Thanks,&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;Xiaoping Duan&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;Intel Customer Support&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color: rgb(102, 102, 102); font-family: Arial, Tahoma, Helvetica, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 07 Apr 2017 08:07:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077068#M120788</guid>
      <dc:creator>Xiaoping_D_Intel</dc:creator>
      <dc:date>2017-04-07T08:07:36Z</dc:date>
    </item>
    <item>
      <title>I'm still having 2 problems.</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077069#M120789</link>
      <description>&lt;P&gt;I'm still having 2 problems.&lt;/P&gt;

&lt;P&gt;1.&amp;nbsp; I get this even though I'm linking in the library that defines the symbol.&amp;nbsp; I'm already linking the library for the C part.&lt;/P&gt;

&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;error LNK2001: unresolved external symbol __imp_SM01&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;2.&amp;nbsp;I'm trying to map the whole block of 2000 characters (as allocated in C) and assign different variable types in Fortran.&amp;nbsp; I would also like to see the same values I assigned in C++ in Fortran.&amp;nbsp; As shown by the following, I'm trying to read the value set in C++ which was assigned at position&amp;nbsp;4.&amp;nbsp; I guessing in Fortran it will be position 5.&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
	&lt;P&gt;INTEGER abc1&lt;/P&gt;

	&lt;P&gt;EQUIVALENCE (abc1,SM01(5))&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;Thanks&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 07 Apr 2017 14:27:08 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077069#M120789</guid>
      <dc:creator>Merik_G_</dc:creator>
      <dc:date>2017-04-07T14:27:08Z</dc:date>
    </item>
    <item>
      <title>1. Please check if your C++</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077070#M120790</link>
      <description>&lt;P&gt;1. Please check if your C++ DLL correctly exports the symbol by command "dumpbin/exports &amp;lt;dllname&amp;gt;.lib".&lt;/P&gt;

&lt;P&gt;2.&amp;nbsp;EQUIVALENCE can't be used for object with DLLIMPORT attribute. The default lower bound of fortran array is 1 and of C++ is 0 so it is 5 in fortran.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Thanks,&lt;/P&gt;

&lt;P&gt;Xiaoping Duan&lt;/P&gt;

&lt;P&gt;Intel Customer Support&lt;/P&gt;</description>
      <pubDate>Mon, 10 Apr 2017 05:37:47 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077070#M120790</guid>
      <dc:creator>Xiaoping_D_Intel</dc:creator>
      <dc:date>2017-04-10T05:37:47Z</dc:date>
    </item>
    <item>
      <title>Number 1 is fixed using your</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077071#M120791</link>
      <description>&lt;P&gt;Number 1 is fixed using your solution to look at the dump.&amp;nbsp; The buffer is exported as _SM01 so now the code looks like this.&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;USE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;INTRINSIC&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; :: ISO_C_BINDING&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;IMPLICIT NONE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&amp;nbsp;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;CHARACTER&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;POINTER&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;::ar(:)=&amp;gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;NULL&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;()&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;INTEGER&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;PARAMETER&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; :: n_elements = 4&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;B&gt;&lt;FONT color="#006400" face="Consolas" size="2"&gt;&lt;FONT color="#006400" face="Consolas" size="2"&gt;&lt;FONT color="#006400" face="Consolas" size="2"&gt;!DIR$ ATTRIBUTES DLLIMPORT :: _SM01&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;TYPE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;(C_PTR) :: SM01&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;call&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; C_F_POINTER (SM01,ar,[n_elements])&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;ar(4) = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#a31515" face="Consolas" size="2"&gt;&lt;FONT color="#a31515" face="Consolas" size="2"&gt;&lt;FONT color="#a31515" face="Consolas" size="2"&gt;'c'&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P&gt;&amp;nbsp;But this crashed when setting &lt;FONT face="Consolas" size="2"&gt;ar(4) = &lt;/FONT&gt;&lt;FONT color="#a31515" face="Consolas" size="2"&gt;&lt;FONT color="#a31515" face="Consolas" size="2"&gt;&lt;FONT color="#a31515" face="Consolas" size="2"&gt;'c'&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;In&amp;nbsp;the debugger I see SM%PTR is 0 and ar(4) as undefined address.&lt;/P&gt;

&lt;P&gt;Furthermore, is there a way to map the memory of 2000 bytes to different types?&amp;nbsp; I don't want to map the whole memory, just a portion.&amp;nbsp; Let say:&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
	&lt;P&gt;C&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Map ar(1:4)&lt;/P&gt;

	&lt;P&gt;INTEGER A&lt;/P&gt;

	&lt;P&gt;C&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Map ar(5:8)&lt;/P&gt;

	&lt;P&gt;INTEGER B&lt;/P&gt;

	&lt;P&gt;C&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Map ar(9:88)&lt;/P&gt;

	&lt;P&gt;INTEGER C(1:20)&lt;/P&gt;

	&lt;P&gt;C&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; skip to the 200th byte&amp;nbsp;to Map a real8 (201:208)&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;REAL&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;*8 D&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&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;

&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>Mon, 10 Apr 2017 15:36:21 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077071#M120791</guid>
      <dc:creator>Merik_G_</dc:creator>
      <dc:date>2017-04-10T15:36:21Z</dc:date>
    </item>
    <item>
      <title>I have the solution but one</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077072#M120792</link>
      <description>&lt;P&gt;I have the solution but&amp;nbsp;one last question.&amp;nbsp; Below is the code.&amp;nbsp; Is there a way to not create module mymod2 and just express the DLL import in the subroutine?&amp;nbsp; When I move it, I get the following error: &lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;If any bind-entity in a bind-stmt is an entity-name, the bind-stmt shall appear in the specification part of a module&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;module&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; mymod2 &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;use&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;intrinsic&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; :: ISO_C_BINDING &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&amp;nbsp;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;IMPLICIT NONE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&amp;nbsp;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;CHARACTER&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;POINTER&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;::ARR01(:)=&amp;gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;NULL&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;()&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;type&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;(C_PTR), &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;bind&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;(C) :: SM01 &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;B&gt;&lt;FONT color="#006400" face="Consolas" size="2"&gt;&lt;FONT color="#006400" face="Consolas" size="2"&gt;&lt;FONT color="#006400" face="Consolas" size="2"&gt;!DIR$ ATTRIBUTES DLLIMPORT :: SM01&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;END&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&amp;nbsp;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;SUBROUTINE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; FORTRAN_LIBRARY2()&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;USE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;INTRINSIC&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; :: ISO_C_BINDING&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;USE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; mymod2&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;IMPLICIT NONE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&amp;nbsp;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;*4 ,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;pointer&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; :: F0 &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;*4 ,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;pointer&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; :: F1 &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;real&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;*4, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;pointer&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; :: F2&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;*4, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;pointer&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; :: F3(:)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&amp;nbsp;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;call&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; C_F_POINTER (SM01, ARR01, [2000])&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;call&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; C_F_POINTER(C_LOC(ARR01(1)), F0)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;call&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; C_F_POINTER(C_LOC(ARR01(5)), F1)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;call&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; C_F_POINTER(C_LOC(ARR01(9)), F2) &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;call&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; C_F_POINTER(C_LOC(ARR01(13)), F3,[4]) &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&amp;nbsp;&lt;/P&gt;

	&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;F0 = 673&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;F1 = 544&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;f2 = 66.7&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;END&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;</description>
      <pubDate>Mon, 10 Apr 2017 22:41:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077072#M120792</guid>
      <dc:creator>Merik_G_</dc:creator>
      <dc:date>2017-04-10T22:41:06Z</dc:date>
    </item>
    <item>
      <title>I don't get any errors</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077073#M120793</link>
      <description>&lt;P&gt;I don't get any errors compiling this source in 17.0.2. &amp;nbsp;But no, you can't declare a variable with BIND(C) except as a module variable. The DLLIMPORT is not the issue (though since you can't declare an "external" variable outside of a module, you can't DLLIMPORT it either. You can DLLIMPORT a COMMON, but using a BIND(C) variable is the better approach.&lt;/P&gt;</description>
      <pubDate>Tue, 11 Apr 2017 00:27:09 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077073#M120793</guid>
      <dc:creator>Steve_Lionel</dc:creator>
      <dc:date>2017-04-11T00:27:09Z</dc:date>
    </item>
    <item>
      <title>OK, thanks.  I'll stick with</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077074#M120794</link>
      <description>&lt;P&gt;OK, thanks.&amp;nbsp; I'll stick with creating&amp;nbsp;a module.&lt;/P&gt;

&lt;P&gt;Another question.&amp;nbsp; Does FORTRAN care how the memory is mapped with pointer as shown above?&amp;nbsp;&amp;nbsp;Is there an latency&amp;nbsp;when an INTEGER or ARRAY is&amp;nbsp;not bound on 4 or 8 bytes.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Here is an example where F0 isn't padded to keep the memory bound to 4 bytes:&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;LOGICAL&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;*1, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;POINTER&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; :: F0&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;INTEGER&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;*4, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;POINTER&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; :: F1&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;REAL&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;*8, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;POINTER&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; :: F2&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;INTEGER&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;*4, &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;POINTER&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; :: F3(:)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&amp;nbsp;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;call&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; C_F_POINTER (SM02, SMARR02, [2000])&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;call&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; C_F_POINTER(C_LOC(SMARR02(1)), F0)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;call&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; C_F_POINTER(C_LOC(SMARR02(2)), F1)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;call&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; C_F_POINTER(C_LOC(SMARR02(6)), F2)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;call&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt; C_F_POINTER(C_LOC(SMARR02(14)), F3,[10])&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 11 Apr 2017 20:13:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077074#M120794</guid>
      <dc:creator>Merik_G_</dc:creator>
      <dc:date>2017-04-11T20:13:10Z</dc:date>
    </item>
    <item>
      <title>I'll answer my own question.</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077075#M120795</link>
      <description>&lt;P&gt;I'll answer my own question.&amp;nbsp;Memory must be aligned to obtain the fastest possible read.&amp;nbsp;&amp;nbsp;A CPU always reads word size&amp;nbsp;therefore when accessing misaligned data, multiple reads may occur.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 11 Apr 2017 21:43:50 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077075#M120795</guid>
      <dc:creator>Merik_G_</dc:creator>
      <dc:date>2017-04-11T21:43:50Z</dc:date>
    </item>
    <item>
      <title>The default array indexing</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077076#M120796</link>
      <description>&lt;P&gt;The default array indexing for Fortran is 1-based&lt;/P&gt;

&lt;P&gt;SMARR02(1), is the 1st element (when default allocated) there is no 0'th element&lt;BR /&gt;
	You could specify&lt;/P&gt;

&lt;P&gt;integer(1) :: SMARR02(0:1999)&lt;/P&gt;

&lt;P&gt;if you want a 0-based array of 2000 bytes&lt;/P&gt;

&lt;P&gt;&amp;gt;&amp;gt;an example where F0 isn't padded to keep the memory bound to 4 bytes&lt;/P&gt;

&lt;P&gt;F0 is a pointer to s logical(1), its (the pointer)&amp;nbsp;size is the size of the machine word (4 or 8 bytes), what it points to would be arbitrarily byte aligned&lt;/P&gt;

&lt;P&gt;F3 is different in that it is an array descriptor than can point to an arbitrarily sized array (blob) of 4-byte integers (which could potentially be arbitrarily byte aligned, though you wouldn't normally want to do so).&lt;/P&gt;

&lt;P&gt;Jim Dempsey&lt;/P&gt;</description>
      <pubDate>Wed, 12 Apr 2017 12:18:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077076#M120796</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2017-04-12T12:18:00Z</dc:date>
    </item>
    <item>
      <title>Is quad precision working</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077077#M120797</link>
      <description>&lt;P&gt;Is quad precision working with Fortran?&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
	&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;REAL*16 , POINTER :: F0&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&amp;nbsp;&lt;/P&gt;

	&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;call C_F_POINTER (SM02, SMARR02, [2000])&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;call C_F_POINTER(C_LOC(SMARR02(1)), F0)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

	&lt;P&gt;&amp;nbsp;&lt;/P&gt;

	&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;F0 = 11.22&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P&gt;Visual Studio crashes.&lt;/P&gt;

&lt;P&gt;REAL*8 works fine.&lt;/P&gt;</description>
      <pubDate>Mon, 24 Apr 2017 21:38:11 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077077#M120797</guid>
      <dc:creator>Merik_G_</dc:creator>
      <dc:date>2017-04-24T21:38:11Z</dc:date>
    </item>
    <item>
      <title>Which statement causes the</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077078#M120798</link>
      <description>&lt;P&gt;Which statement causes the crash?&lt;/P&gt;

&lt;P&gt;What is the C_LOC of F0 following its C_F_POINTER (both cases)&lt;/P&gt;

&lt;P&gt;Jim Dempsey&lt;/P&gt;</description>
      <pubDate>Tue, 25 Apr 2017 12:28:44 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077078#M120798</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2017-04-25T12:28:44Z</dc:date>
    </item>
    <item>
      <title>F0 = 11.22 is causing the</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077079#M120799</link>
      <description>&lt;P&gt;F0 = 11.22 is causing the crash. F0 crashes VS&amp;nbsp;due to trying to get its value.&lt;/P&gt;

&lt;P&gt;C_LOC&lt;FONT face="Consolas" size="2"&gt;&lt;FONT face="Consolas" size="2"&gt;(SMARR02(1))&lt;/FONT&gt;&lt;/FONT&gt; is pointing to a shared memory created in C++&lt;/P&gt;

&lt;P&gt;Do you mean loc(F0)?&amp;nbsp; This changes every time since the memory is allocated on the fly.&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;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 25 Apr 2017 14:17:42 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077079#M120799</guid>
      <dc:creator>Merik_G_</dc:creator>
      <dc:date>2017-04-25T14:17:42Z</dc:date>
    </item>
    <item>
      <title>When you say "crashes VS", do</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077080#M120800</link>
      <description>&lt;P&gt;When you say "crashes VS", do you mean when attempting to see the value in the debugger? I recall there were debugger issues with REAL(16) in the past. Does the program run without debugging?&lt;/P&gt;</description>
      <pubDate>Tue, 25 Apr 2017 17:43:32 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077080#M120800</guid>
      <dc:creator>Steve_Lionel</dc:creator>
      <dc:date>2017-04-25T17:43:32Z</dc:date>
    </item>
    <item>
      <title>Yes, the crash is only in the</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077081#M120801</link>
      <description>&lt;P&gt;Yes, the crash is only in the debugger.&amp;nbsp; In release,&amp;nbsp;it does run but it changes the value to 0.&amp;nbsp; I had previously set it to 25.6 using a "long double" on the C++ side.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 25 Apr 2017 17:55:38 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077081#M120801</guid>
      <dc:creator>Merik_G_</dc:creator>
      <dc:date>2017-04-25T17:55:38Z</dc:date>
    </item>
    <item>
      <title>Which compiler version are</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077082#M120802</link>
      <description>&lt;P&gt;Which compiler version are you using? Would you please include a short but complete program that demonstrates the problem?&lt;/P&gt;</description>
      <pubDate>Tue, 25 Apr 2017 18:02:38 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077082#M120802</guid>
      <dc:creator>Steve_Lionel</dc:creator>
      <dc:date>2017-04-25T18:02:38Z</dc:date>
    </item>
    <item>
      <title>I'm using VS 2015 integrated</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077083#M120803</link>
      <description>&lt;P&gt;I'm using VS 2015 integrated with Intel® Parallel Studio XE 2016 building in Release 64bit&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
	&lt;P&gt;CExecutable is the executable that runs.&amp;nbsp; This is setting the initial values and printing them, Calls Fortran, and then prints values again.&lt;/P&gt;

	&lt;P&gt;FortranLibrary is library linked into CExecutable.&amp;nbsp; FortranLibrary.f sets new values.&lt;/P&gt;

	&lt;P&gt;PSIM is a C++ that creates the Shared Memory&lt;/P&gt;
&lt;/BLOCKQUOTE&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;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 25 Apr 2017 18:38:42 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077083#M120803</guid>
      <dc:creator>Merik_G_</dc:creator>
      <dc:date>2017-04-25T18:38:42Z</dc:date>
    </item>
    <item>
      <title>When I run this, the call to</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077084#M120804</link>
      <description>&lt;P&gt;When I run this, the call to CreateFileMapping in PSIM's DllMain fails, and GetLastError returns 5 (Access Violation). I am not familiar with this API and my study of the MSDN description doesn't suggest why this fails. I did puzzle over your explicitly specifying a handle value instead of the constant INVALID_HANDLE_VALUE, though the effect appears to be the same. This is as far as I got.&lt;/P&gt;</description>
      <pubDate>Tue, 25 Apr 2017 19:48:21 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077084#M120804</guid>
      <dc:creator>Steve_Lionel</dc:creator>
      <dc:date>2017-04-25T19:48:21Z</dc:date>
    </item>
    <item>
      <title>I'm guessing you need admin</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077085#M120805</link>
      <description>&lt;P&gt;I'm guessing you need admin privileges to create global memory.&amp;nbsp; Try changing &amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;FONT color="#a31515" face="Consolas" size="2"&gt;&lt;FONT color="#a31515" face="Consolas" size="2"&gt;&lt;FONT color="#a31515" face="Consolas" size="2"&gt;L"Global\\SM01" &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;to &amp;nbsp;&lt;FONT color="#a31515" face="Consolas" size="2"&gt;&lt;FONT color="#a31515" face="Consolas" size="2"&gt;&lt;FONT color="#a31515" face="Consolas" size="2"&gt;L"Local\\SM01"&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;

&lt;P&gt;and&lt;/P&gt;

&lt;P&gt;&lt;FONT color="#a31515" face="Consolas" size="2"&gt;L"Global\\SM02" &lt;/FONT&gt;to&amp;nbsp; &lt;FONT color="#a31515" face="Consolas" size="2"&gt;L"Local\\SM02"&lt;/FONT&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 25 Apr 2017 21:14:58 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077085#M120805</guid>
      <dc:creator>Merik_G_</dc:creator>
      <dc:date>2017-04-25T21:14:58Z</dc:date>
    </item>
    <item>
      <title>Of possible (but remote)</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077086#M120806</link>
      <description>&lt;P&gt;Of possible (but remote) interest, here is an easy method of creating a shared memory buffer using file mapping, without need for a DLL.&amp;nbsp; You can share across separate processes (you'll need your own synchronization method, not too hard to do), threads, DLLs, even separate machines with only minor tweaks and additional&amp;nbsp;effort.&amp;nbsp; This was written in ~1999 for DVF or CVF and may need some tweaks for IVF but that should be fairly minor.&amp;nbsp; Overhead will average in the nanoseconds as this prevents page swapping as-is (can be easily changed).&lt;/P&gt;

&lt;P&gt;&lt;A href="http://www.fortranlib.com/ShareBufferWin32.f90"&gt;http://www.fortranlib.com/ShareBufferWin32.f90&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;I could provide an update (IVF compatibility, modernize, etc.)&amp;nbsp;if there's any interest.&lt;/P&gt;</description>
      <pubDate>Wed, 26 Apr 2017 00:56:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Mapping-Shared-Memory-from-C/m-p/1077086#M120806</guid>
      <dc:creator>garylscott1</dc:creator>
      <dc:date>2017-04-26T00:56:00Z</dc:date>
    </item>
  </channel>
</rss>

