<html>#2386: CCTK_LOOP3_INT and friends broken for Fortran OpenMP code
<table style='border-spacing: 1ex 0pt; '>
<tr><td style='text-align:right'> Reporter:</td><td>Roland Haas</td></tr>
<tr><td style='text-align:right'>   Status:</td><td>new</td></tr>
<tr><td style='text-align:right'>Milestone:</td><td></td></tr>
<tr><td style='text-align:right'>  Version:</td><td></td></tr>
<tr><td style='text-align:right'>     Type:</td><td>bug</td></tr>
<tr><td style='text-align:right'> Priority:</td><td>minor</td></tr>
<tr><td style='text-align:right'>Component:</td><td></td></tr>
</table>

<p>In <a data-is-external-link="true" href="http://lists.einsteintoolkit.org/pipermail/users/2020-February/007298.html" rel="nofollow">http://lists.einsteintoolkit.org/pipermail/users/2020-February/007298.html</a> <span class="ap-mention" data-atlassian-id="557058:65c5f18c-c3ad-4126-bb2b-be0e766b31ef">@Miguel Zilhão</span> reported that the <code>CCTK_LOOP3_INT</code> family macros cannot be used in Fortran using OpenMP:</p>
<p>i'm trying to use the CCTK_LOOP3_INT macro in a Fortran 90 code. following the example in<br />
Carpet/TestLoopControl, i've done:</p>
<div class="codehilite language-fortran"><pre><span></span><span class="cp">#include &quot;cctk.h&quot;</span>
<span class="cp">#include &quot;cctk_Arguments.h&quot;</span>
<span class="cp">#include &quot;cctk_Parameters.h&quot;</span>
<span class="cp">#include &quot;cctk_Functions.h&quot;</span>

<span class="cp">#include &quot;loopcontrol.h&quot;</span>

<span class="k">subroutine </span><span class="n">myroutine</span><span class="p">(</span> <span class="n">CCTK_ARGUMENTS</span> <span class="p">)</span>
   <span class="k">use </span><span class="n">loopcontrol</span>
   <span class="k">implicit none</span>
<span class="k">   </span><span class="n">DECLARE_CCTK_ARGUMENTS</span>
   <span class="n">DECLARE_CCTK_PARAMETERS</span>
   <span class="n">DECLARE_CCTK_FUNCTIONS</span>

   <span class="n">CCTK_LOOP3_INT_DECLARE</span><span class="p">(</span><span class="n">int3</span><span class="p">)</span>

   <span class="p">(...)</span>

   <span class="n">CCTK_LOOP3_INT</span><span class="p">(</span><span class="n">int3</span><span class="p">,</span> <span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">,</span> <span class="n">k</span><span class="p">)</span>

      <span class="p">(...)</span>

   <span class="n">CCTK_ENDLOOP3_INT</span><span class="p">(</span><span class="n">int3</span><span class="p">)</span>
<span class="k">end subroutine </span><span class="n">myroutine</span>
</pre></div>


<p>this seems to work fine. 
<p>--<br/>
Ticket URL: <a href='https://bitbucket.org/einsteintoolkit/tickets/issues/2386/cctk_loop3_int-and-friends-broken-for'>https://bitbucket.org/einsteintoolkit/tickets/issues/2386/cctk_loop3_int-and-friends-broken-for</a></p>
</html>