<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">The predefined modules are defined in flang/module. These aren’t complete but there is a definition of TYPE_TYPE in ISO_FORTRAN_ENV. To make these available, run f18 with the option “-intrinsic-module-directory <build>/include/flang” or
 use the flang.sh wrapper which automatically adds that option.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">That should allow you to write tests that use TEAM_TYPE. One example of a test that already does that is flang/test/Semantics/allocate11.f90. That checks that the SOURCE of an ALLOCATE statement does not have type TEAM_TYPE. You could write
 a semantics test that verifies that an error is reported if NUM_IMAGES is called with incorrect number or type of arguments. I don’t know how that compares to what is tested in flang/unittests/Evaluate/intrinsics.cpp because I’m not familiar with that.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Tim<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:12.0pt;color:black">From: </span></b><span style="font-size:12.0pt;color:black">flang-dev <flang-dev-bounces@lists.llvm.org> on behalf of Katherine Rasmussen via flang-dev <flang-dev@lists.llvm.org><br>
<b>Reply-To: </b>Katherine Rasmussen <ktrasmussn@gmail.com><br>
<b>Date: </b>Monday, June 15, 2020 at 11:28 AM<br>
<b>To: </b>"flang-dev@lists.llvm.org" <flang-dev@lists.llvm.org><br>
<b>Subject: </b>[flang-dev] iso_fortran_env and num_images() Questions<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<table class="MsoNormalTable" border="1" cellpadding="0" style="background:#FFEB9C">
<tbody>
<tr>
<td style="padding:.75pt .75pt .75pt .75pt">
<p class="MsoNormal"><b><span style="font-size:7.5pt;font-family:"Verdana",sans-serif;color:black">External email: Use caution opening links or attachments</span></b><span style="font-size:7.5pt;font-family:"Verdana",sans-serif;color:black">
</span><o:p></o:p></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">Hello, <o:p></o:p></p>
<div>
<p class="MsoNormal">    I am working for SourceryInstitute and trying to help implement coarrays in flang. I am working towards making a contribution to flang, the contribution being adding num_images() to the list of intrinsic functions that are evaluated
 by flang. Related to this goal, I have three questions:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">First, has the intrinsic module iso_fortran_env been implemented yet? num_images() is an overloaded function and one of the variants takes a single scalar argument of type TEAM_TYPE. When I try to run f18 with the command line option -funparse-with-symbols
 on a file that has a num_images() call using the TEAM_TYPE argument and the following code:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">     use iso_fortran_env, only : team_type<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">flang produces these errors:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    num_images4.f90:5:7: error: Error reading module file for module 'iso_fortran_env'<br>
    num_images4.f90:5:7: Could not open 'iso_fortran_env.mod': No such file or directory<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Should I ignore testing num_images() calls with teams or try and complete the iso_fortran_env module?<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div>
<p class="MsoNormal">Second, after adding num_images() to the list of functions evaluated as intrinsic in the file flang/lib/Evaluate/intrinsics.cpp, I also edited the file flang/unittests/Evaluate/intrinsics.cpp. In that file, I wrote test calls to test the
 num_images() evaluation. I was able to test the variant of num_images() that has no parameters and the variant of num_images() that has the parameter 'team_number' of type integer. I was unable to figure out how to write a test call that tests the call with
 an argument of TEAM_TYPE. Is there anyone who can direct me towards figuring this out?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">And last, in addition to adding num_images() test calls to the unittests/Evaluate/intrinsics.cpp, are there other tests I should write for the patch I would like to submit to llvm to contribute?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">The flang files I have edited (flang/lib/Evaluate/intrinsics.cpp and flang/unittests/Evaluate/intrinsics.cpp) can be found in the develop-coarrays branch of sourcery-institute's fork of llvm-project<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><a href="https://github.com/sourceryinstitute/flang-coarrays/blob/develop-coarrays/flang/lib/Evaluate/intrinsics.cpp">https://github.com/sourceryinstitute/flang-coarrays/blob/develop-coarrays/flang/lib/Evaluate/intrinsics.cpp</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><a href="https://github.com/sourceryinstitute/flang-coarrays/blob/develop-coarrays/flang/unittests/Evaluate/intrinsics.cpp">https://github.com/sourceryinstitute/flang-coarrays/blob/develop-coarrays/flang/unittests/Evaluate/intrinsics.cpp</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I am also attaching the test file with calls to num_images() that I was using to test what symbols were being created, this is the file that creates the error messages described above.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Thank you for your time and help,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">     Kate Rasmussen<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>