<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Hi Wadud,<br>
      <br>
      Usually the Darshan wrappers are perfectly safe for non-MPI
      programs (or programs that use MPI only indirectly through other
      libraries).  We might need to refine some changes that we made in
      the linker options in 3.1.5 to make sure this is still true.<br>
      <br>
      -Phil<br>
      <br>
      On 02/26/2018 10:23 AM, Wadud Miah wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:AM4PR0501MB21614C4036DBB4E9A6E8ADD6C0C10@AM4PR0501MB2161.eurprd05.prod.outlook.com">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]-->
      <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:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;
        font-weight:normal;
        font-style:normal;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        color:black;}
span.EmailStyle22
        {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:595.0pt 842.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <style type="text/css">.style1 {font-family: "Times New Roman";}</style>
      <div class="WordSection1">
        <p class="MsoNormal"><span
            style="font-size:11.0pt;color:windowtext;mso-fareast-language:EN-US">Hi,<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="font-size:11.0pt;color:windowtext;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
            style="font-size:11.0pt;color:windowtext;mso-fareast-language:EN-US">It
            doesn’t look like the code is doing any MPI, and only using
            the compiler command (not MPI compilation wrappers), hence
            the errors about undefined MPI symbols. There’s nothing
            conclusive that this is a Darshan issue.<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="font-size:11.0pt;color:windowtext;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
            style="font-size:11.0pt;color:windowtext;mso-fareast-language:EN-US">Wadud.<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="font-size:11.0pt;color:windowtext;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <div>
          <div style="border:none;border-top:solid #E1E1E1
            1.0pt;padding:3.0pt 0cm 0cm 0cm">
            <p class="MsoNormal"><b><span
                  style="font-size:11.0pt;color:windowtext" lang="EN-US">From:</span></b><span
                style="font-size:11.0pt;color:windowtext" lang="EN-US">
                Darshan-users
                [<a class="moz-txt-link-freetext" href="mailto:darshan-users-bounces@lists.mcs.anl.gov">mailto:darshan-users-bounces@lists.mcs.anl.gov</a>]
                <b>On Behalf Of </b>Phil Carns<br>
                <b>Sent:</b> 26 February 2018 15:18<br>
                <b>To:</b> <a class="moz-txt-link-abbreviated" href="mailto:darshan-users@lists.mcs.anl.gov">darshan-users@lists.mcs.anl.gov</a><br>
                <b>Subject:</b> Re: [Darshan-users] darshan3.1.5 issue
                on Cray XC40 cle6.up05<o:p></o:p></span></p>
          </div>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <div>
          <p class="MsoNormal">Hi Bilel,<br>
            <br>
            Thanks for the bug report.  We can try to reproduce here and
            confirm.<br>
            <br>
            In the mean time, can you tell me if the test_scalapack.f90
            code is using MPI or not?
            <br>
            <br>
            thanks,<br>
            -Phil<br>
            <br>
            On 02/24/2018 02:25 PM, Bilel Hadri wrote:<span
              style="font-size:11.0pt"><o:p></o:p></span></p>
        </div>
        <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
          <p class="MsoNormal">Dear Darshan colleagues,<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">I recently installed darshan 3.1.5 on
            Shaheen, Cray XC40, we recently upgraded the OS to CLE6.up05
            and using the 17.12 PrgEnv.<o:p></o:p></p>
          <p class="MsoNormal">Compiling Scalapack with Cray Libsci
            fails with the error shown below with all programming
            environment. Similar issue was observed for other codes,
            like a simple petsc code.<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">After digging, it seems that it is
            related to darshan3.1.5 version recently installed on
            Shaheen. When unloading darshan, the compilation works fine
            with no issue.
            <o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">The error is not appearing when using
            darshan 3.1.4.<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">  <o:p></o:p></p>
          <p class="MsoNormal">ftn -o exe test_scalapack.f90 <o:p></o:p></p>
          <p class="MsoNormal">/opt/cray/dmapp/default/lib64/libdmapp.a(dmapp_internal.o):
            In function `_dmappi_is_pure_dmapp_job':<o:p></o:p></p>
          <p class="MsoNormal">/home/abuild/rpmbuild/BUILD/cray-dmapp-7.1.1/src/dmapp_internal.c:1401:
            undefined reference to `__wrap_MPI_Init'<o:p></o:p></p>
          <p class="MsoNormal">/opt/cray/pe/libsci/17.12.1/CRAY/8.6/x86_64/lib/libsci_cray_mpi_mp.a(blacs_exit_.o):
            In function `blacs_exit_':<o:p></o:p></p>
          <p class="MsoNormal">/b/worker/csml-libsci-sles/build/mp/scalapack/BLACS/SRC/blacs_exit_.c:42:
            undefined reference to `__wrap_MPI_Finalize'<o:p></o:p></p>
          <p class="MsoNormal">/opt/cray/pe/libsci/17.12.1/CRAY/8.6/x86_64/lib/libsci_cray_mpi_mp.a(blacs_pinfo_.o):
            In function `blacs_pinfo_':<o:p></o:p></p>
          <p class="MsoNormal">/b/worker/csml-libsci-sles/build/mp/scalapack/BLACS/SRC/blacs_pinfo_.c:18:
            undefined reference to `__wrap_MPI_Init'<o:p></o:p></p>
          <p class="MsoNormal">/opt/cray/pe/libsci/17.12.1/CRAY/8.6/x86_64/lib/libsci_cray_mpi_mp.a(blacs_pinfo_.oo):
            In function `Cblacs_pinfo':<o:p></o:p></p>
          <p class="MsoNormal">/b/worker/csml-libsci-sles/build/mp/scalapack/BLACS/SRC/blacs_pinfo_.c:18:
            undefined reference to `__wrap_MPI_Init'<o:p></o:p></p>
          <p class="MsoNormal">/opt/cray/pe/cce/8.6.5/binutils/x86_64/x86_64-pc-linux-gnu/bin/ld:
            link errors found, deleting executable `exe'<o:p></o:p></p>
          <p class="MsoNormal">/usr/bin/sha1sum: exe: No such file or
            directory<o:p></o:p></p>
          <p class="MsoNormal">hadrib@cdl1:~>  ll /usr/bin/sha1<o:p></o:p></p>
          <p class="MsoNormal">sha1pass  sha1sum   <o:p></o:p></p>
          <p class="MsoNormal">hadrib@cdl1:~>  ll /usr/bin/sha1sum <o:p></o:p></p>
          <p class="MsoNormal">-rwxr-xr-x 1 root root 43912 Aug  6  2016
            /usr/bin/sha1sum<o:p></o:p></p>
          <p class="MsoNormal">hadrib@cdl1:~> which sha1sum<o:p></o:p></p>
          <p class="MsoNormal">/usr/bin/sha1sum<o:p></o:p></p>
          <p class="MsoNormal">hadrib@cdl1:~> module list <o:p></o:p></p>
          <p class="MsoNormal">Currently Loaded Modulefiles:<o:p></o:p></p>
          <p class="MsoNormal">  1) modules/3.2.10.6                   
                        9) pmi/5.0.13                                  
              17) atp/2.1.1<o:p></o:p></p>
          <p class="MsoNormal">  2)
            eproxy/2.0.22-6.0.5.0_2.1__g1ebe45c.ari        10)
            dmapp/7.1.1-6.0.5.0_49.8__g1125556.ari         18)
            perftools-base/7.0.0<o:p></o:p></p>
          <p class="MsoNormal">  3) cce/8.6.5                           
                      11) gni-headers/5.0.12-6.0.5.0_2.15__g2ef1ebc.ari 
            19) PrgEnv-cray/6.0.4<o:p></o:p></p>
          <p class="MsoNormal">  4) craype-network-aries                
                      12) xpmem/2.2.4-6.0.5.0_4.8__g35d5e73.ari         
            20) cray-mpich/7.7.0<o:p></o:p></p>
          <p class="MsoNormal">  5) craype/2.5.13                       
                      13) job/2.2.2-6.0.5.0_8.47__g3c644b5.ari          
            21) slurm/slurm<o:p></o:p></p>
          <p class="MsoNormal">  6) cray-libsci/17.12.1                 
                      14) dvs/2.7_2.2.52-6.0.5.2_17.6__g5170dea         
            22) craype-haswell<o:p></o:p></p>
          <p class="MsoNormal">  7)
            udreg/2.3.2-6.0.5.0_13.12__ga14955a.ari        15)
            alps/6.5.28-6.0.5.0_18.6__g13a91b6.ari         23)
            texlive/2017<o:p></o:p></p>
          <p class="MsoNormal">  8)
            ugni/6.0.14-6.0.5.0_16.9__g19583bb.ari         16)
            rca/2.2.16-6.0.5.0_15.34__g5e09e6d.ari         24)
            darshan/3.1.5<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">hadrib@cdl1:~> module swap
            PrgEnv-cray/6.0.4 PrgEnv-intel<o:p></o:p></p>
          <p class="MsoNormal">hadrib@cdl1:~> ftn -o exe_i
            test_scalapack.f90 <o:p></o:p></p>
          <p class="MsoNormal">/opt/cray/pe/libsci/17.12.1/INTEL/16.0/x86_64/lib/libsci_intel_mpi.a(blacs_exit_.o):
            In function `blacs_exit_':<o:p></o:p></p>
          <p class="MsoNormal">blacs_exit_.c:(.text+0xe9): undefined
            reference to `__wrap_MPI_Finalize'<o:p></o:p></p>
          <p class="MsoNormal">/opt/cray/pe/libsci/17.12.1/INTEL/16.0/x86_64/lib/libsci_intel_mpi.a(blacs_pinfo_.o):
            In function `blacs_pinfo_':<o:p></o:p></p>
          <p class="MsoNormal">blacs_pinfo_.c:(.text+0x9b): undefined
            reference to `__wrap_MPI_Init'<o:p></o:p></p>
          <p class="MsoNormal">/opt/cray/pe/libsci/17.12.1/INTEL/16.0/x86_64/lib/libsci_intel_mpi.a(blacs_pinfo_.oo):
            In function `Cblacs_pinfo':<o:p></o:p></p>
          <p class="MsoNormal">blacs_pinfo_.c:(.text+0x9b): undefined
            reference to `__wrap_MPI_Init'<o:p></o:p></p>
          <p class="MsoNormal">hadrib@cdl1:~> <o:p></o:p></p>
          <p class="MsoNormal">hadrib@cdl1:~> <o:p></o:p></p>
          <p class="MsoNormal">hadrib@cdl1:~> module swap
            PrgEnv-intel/6.0.4 PrgEnv-gnu<o:p></o:p></p>
          <p class="MsoNormal">PrgEnv-gnu        PrgEnv-gnu/6.0.4  <o:p></o:p></p>
          <p class="MsoNormal">hadrib@cdl1:~> module swap
            PrgEnv-intel/6.0.4 PrgEnv-gnu<o:p></o:p></p>
          <p class="MsoNormal">hadrib@cdl1:~> ftn -o exe_i
            test_scalapack.f90 <o:p></o:p></p>
          <p class="MsoNormal">/opt/cray/pe/libsci/17.12.1/GNU/6.1/x86_64/lib/libsci_gnu_61_mpi.a(blacs_exit_.o):
            In function `blacs_exit_':<o:p></o:p></p>
          <p class="MsoNormal">blacs_exit_.c:(.text+0xdb): undefined
            reference to `__wrap_MPI_Finalize'<o:p></o:p></p>
          <p class="MsoNormal">/opt/cray/pe/libsci/17.12.1/GNU/6.1/x86_64/lib/libsci_gnu_61_mpi.a(blacs_pinfo_.o):
            In function `blacs_pinfo_':<o:p></o:p></p>
          <p class="MsoNormal">blacs_pinfo_.c:(.text+0xb3): undefined
            reference to `__wrap_MPI_Init'<o:p></o:p></p>
          <p class="MsoNormal">/opt/cray/pe/libsci/17.12.1/GNU/6.1/x86_64/lib/libsci_gnu_61_mpi.a(blacs_pinfo_.oo):
            In function `Cblacs_pinfo':<o:p></o:p></p>
          <p class="MsoNormal">blacs_pinfo_.c:(.text+0xb3): undefined
            reference to `__wrap_MPI_Init'<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">=====<o:p></o:p></p>
          <p class="MsoNormal">implicit none<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">integer :: n, nb    ! problem size and
            block size<o:p></o:p></p>
          <p class="MsoNormal">integer :: myunit   ! local output unit
            number<o:p></o:p></p>
          <p class="MsoNormal">integer :: myArows, myAcols   ! size of
            local subset of global array<o:p></o:p></p>
          <p class="MsoNormal">integer :: i,j, igrid,jgrid, iproc,jproc,
            myi,myj, p<o:p></o:p></p>
          <p class="MsoNormal">real*8, dimension(:,:), allocatable ::
            myA,myB,myC<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">integer :: numroc   ! blacs routine<o:p></o:p></p>
          <p class="MsoNormal">integer :: me, procs, icontxt, prow,
            pcol, myrow, mycol  ! blacs data<o:p></o:p></p>
          <p class="MsoNormal">integer :: info    ! scalapack return
            value<o:p></o:p></p>
          <p class="MsoNormal">integer, dimension(9)   :: ides_a,
            ides_b, ides_c ! scalapack array desc<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">open(unit=1,file="ABCp.dat",status="old",form="formatted")<o:p></o:p></p>
          <p class="MsoNormal">read(1,*)prow<o:p></o:p></p>
          <p class="MsoNormal">read(1,*)pcol<o:p></o:p></p>
          <p class="MsoNormal">read(1,*)n<o:p></o:p></p>
          <p class="MsoNormal">read(1,*)nb<o:p></o:p></p>
          <p class="MsoNormal">close(1)<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">if (((n/nb) < prow) .or. ((n/nb) <
            pcol)) then<o:p></o:p></p>
          <p class="MsoNormal">print *,"Problem size too small for
            processor set!"<o:p></o:p></p>
          <p class="MsoNormal">stop 100<o:p></o:p></p>
          <p class="MsoNormal">endif<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">call blacs_pinfo   (me,procs)<o:p></o:p></p>
          <p class="MsoNormal">call blacs_get     (0, 0, icontxt)<o:p></o:p></p>
          <p class="MsoNormal">call blacs_gridinit(icontxt, 'R', prow,
            pcol)<o:p></o:p></p>
          <p class="MsoNormal">call blacs_gridinfo(icontxt, prow, pcol,
            myrow, mycol)<o:p></o:p></p>
          <p class="MsoNormal">myunit = 10+me<o:p></o:p></p>
          <p class="MsoNormal">write(myunit,*)"--------"<o:p></o:p></p>
          <p class="MsoNormal">write(myunit,*)"Output for processor
            ",me," to unit ",myunit<o:p></o:p></p>
          <p class="MsoNormal">write(myunit,*)"Proc ",me,": myrow, mycol
            in p-array is ", &<o:p></o:p></p>
          <p class="MsoNormal">myrow, mycol<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">myArows = numroc(n, nb, myrow, 0, prow)<o:p></o:p></p>
          <p class="MsoNormal">myAcols = numroc(n, nb, mycol, 0, pcol)<o:p></o:p></p>
          <p class="MsoNormal">write(myunit,*)"Size of global array is
            ",n," x ",n<o:p></o:p></p>
          <p class="MsoNormal">write(myunit,*)"Size of block is       
            ",nb," x ",nb<o:p></o:p></p>
          <p class="MsoNormal">write(myunit,*)"Size of local array is 
            ",myArows," x ",myAcols<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">allocate(myA(myArows,myAcols))<o:p></o:p></p>
          <p class="MsoNormal">allocate(myB(myArows,myAcols))<o:p></o:p></p>
          <p class="MsoNormal">allocate(myC(myArows,myAcols))<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">do i=1,n<o:p></o:p></p>
          <p class="MsoNormal">call g2l(i,n,prow,nb,iproc,myi)<o:p></o:p></p>
          <p class="MsoNormal">if (myrow==iproc) then<o:p></o:p></p>
          <p class="MsoNormal">do j=1,n<o:p></o:p></p>
          <p class="MsoNormal">call g2l(j,n,pcol,nb,jproc,myj)<o:p></o:p></p>
          <p class="MsoNormal">if (mycol==jproc) then<o:p></o:p></p>
          <p class="MsoNormal">myA(myi,myj) = real(i+j)<o:p></o:p></p>
          <p class="MsoNormal">myB(myi,myj) = real(i-j)<o:p></o:p></p>
          <p class="MsoNormal">myC(myi,myj) = 0.d0<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">endif<o:p></o:p></p>
          <p class="MsoNormal">enddo<o:p></o:p></p>
          <p class="MsoNormal">endif<o:p></o:p></p>
          <p class="MsoNormal">enddo<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">! Prepare array descriptors for ScaLAPACK<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">ides_a(1) = 1         ! descriptor type<o:p></o:p></p>
          <p class="MsoNormal">ides_a(2) = icontxt   ! blacs context<o:p></o:p></p>
          <p class="MsoNormal">ides_a(3) = n         ! global number of
            rows<o:p></o:p></p>
          <p class="MsoNormal">ides_a(4) = n         ! global number of
            columns<o:p></o:p></p>
          <p class="MsoNormal">ides_a(5) = nb        ! row block size<o:p></o:p></p>
          <p class="MsoNormal">ides_a(6) = nb        ! column block size<o:p></o:p></p>
          <p class="MsoNormal">ides_a(7) = 0         ! initial process
            row<o:p></o:p></p>
          <p class="MsoNormal">ides_a(8) = 0         ! initial process
            column<o:p></o:p></p>
          <p class="MsoNormal">ides_a(9) = myArows   ! leading dimension
            of local array<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">do i=1,9<o:p></o:p></p>
          <p class="MsoNormal">ides_b(i) = ides_a(i)<o:p></o:p></p>
          <p class="MsoNormal">ides_c(i) = ides_a(i)<o:p></o:p></p>
          <p class="MsoNormal">enddo<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">! Call ScaLAPACK library routine<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">call pdgemm('T','T',n,n,n,1.0d0,
            myA,1,1,ides_a,  &<o:p></o:p></p>
          <p class="MsoNormal">myB,1,1,ides_b,0.d0, &<o:p></o:p></p>
          <p class="MsoNormal">myC,1,1,ides_c )<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">! Print results<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">call g2l(n,n,prow,nb,iproc,myi)<o:p></o:p></p>
          <p class="MsoNormal">call g2l(n,n,pcol,nb,jproc,myj)<o:p></o:p></p>
          <p class="MsoNormal">if ((myrow==iproc) .and. (mycol==jproc)) 
            &<o:p></o:p></p>
          <p class="MsoNormal">write(*,*) 'c(',n,n,')=',myC(myi,myj)<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">! Deallocate the local arrays<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">deallocate(myA, myB, myC)<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">! End blacs for processors that are used<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">call blacs_gridexit(icontxt)<o:p></o:p></p>
          <p class="MsoNormal">call blacs_exit(0)<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">end<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">! convert global index to local index in
            block-cyclic distribution<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">subroutine g2l(i,n,np,nb,p,il)<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">implicit none<o:p></o:p></p>
          <p class="MsoNormal">integer :: i    ! global array index,
            input<o:p></o:p></p>
          <p class="MsoNormal">integer :: n    ! global array dimension,
            input<o:p></o:p></p>
          <p class="MsoNormal">integer :: np   ! processor array
            dimension, input<o:p></o:p></p>
          <p class="MsoNormal">integer :: nb   ! block size, input<o:p></o:p></p>
          <p class="MsoNormal">integer :: p    ! processor array index,
            output<o:p></o:p></p>
          <p class="MsoNormal">integer :: il   ! local array index,
            output<o:p></o:p></p>
          <p class="MsoNormal">integer :: im1  <o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">im1 = i-1<o:p></o:p></p>
          <p class="MsoNormal">p   = mod((im1/nb),np)<o:p></o:p></p>
          <p class="MsoNormal">il  = (im1/(np*nb))*nb + mod(im1,nb) + 1<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">return<o:p></o:p></p>
          <p class="MsoNormal">end<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">! convert local index to global index in
            block-cyclic distribution<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">subroutine l2g(il,p,n,np,nb,i)<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">implicit none<o:p></o:p></p>
          <p class="MsoNormal">integer :: il   ! local array index,
            input<o:p></o:p></p>
          <p class="MsoNormal">integer :: p    ! processor array index,
            input<o:p></o:p></p>
          <p class="MsoNormal">integer :: n    ! global array dimension,
            input<o:p></o:p></p>
          <p class="MsoNormal">integer :: np   ! processor array
            dimension, input<o:p></o:p></p>
          <p class="MsoNormal">integer :: nb   ! block size, input<o:p></o:p></p>
          <p class="MsoNormal">integer :: i    ! global array index,
            output<o:p></o:p></p>
          <p class="MsoNormal">integer :: ilm1  <o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">ilm1 = il-1<o:p></o:p></p>
          <p class="MsoNormal">i    = (((ilm1/nb) * np) + p)*nb +
            mod(ilm1,nb) + 1<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">return<o:p></o:p></p>
          <p class="MsoNormal">end<o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal"><span style="font-size:10.5pt">-------</span><o:p></o:p></p>
          <div>
            <p class="MsoNormal"> <o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal">Bilel Hadri, PhD<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal">Computational Scientist<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal">KAUST Supercomputing Lab<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal">Al Khawarizmi Bldg. (1)  Office 126<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal">4700 King Abdullah University of
              Science and Technology<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal">Thuwal 23955-6900<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal">Kingdom of Saudi Arabia<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal">Office Phone: +966 12 808 0654<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal">Cell Phone: + 966 544 700 893<o:p></o:p></p>
          </div>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
          <div class="MsoNormal" style="text-align:center"
            align="center"><span style="font-size:11.0pt">
              <hr size="2" align="center" width="100%">
            </span></div>
          <p class="MsoNormal"><span
style="font-size:7.5pt;font-family:"Arial",sans-serif;color:gray">This
              message and its contents including attachments are
              intended solely for the original recipient. If you are not
              the intended recipient or have received this message in
              error, please notify me immediately and delete this
              message from your computer system. Any unauthorized use or
              distribution is prohibited. Please consider the
              environment before printing this email.<br>
            </span><span style="font-size:11.0pt"><br>
              <br>
              <br>
              <o:p></o:p></span></p>
          <pre>_______________________________________________<o:p></o:p></pre>
          <pre>Darshan-users mailing list<o:p></o:p></pre>
          <pre><a href="mailto:Darshan-users@lists.mcs.anl.gov" moz-do-not-send="true">Darshan-users@lists.mcs.anl.gov</a><o:p></o:p></pre>
          <pre><a href="https://lists.mcs.anl.gov/mailman/listinfo/darshan-users" moz-do-not-send="true">https://lists.mcs.anl.gov/mailman/listinfo/darshan-users</a><o:p></o:p></pre>
        </blockquote>
        <p><o:p> </o:p></p>
      </div>
      <br>
      <br>
      <p style="font-family: Verdana; font-size:10pt; color:#666666;"><b>Disclaimer</b></p>
      <p style="font-family: Verdana; font-size:8pt; color:#666666;">The
        Numerical Algorithms Group Ltd is a company registered in
        England and Wales with company number 1249803. The registered
        office is:
        Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United
        Kingdom.<br>
        <br>
        This e-mail has been scanned for all viruses and malware, and
        may have been automatically archived by Mimecast Ltd, an
        innovator in Software as a Service (SaaS) for business.</p>
    </blockquote>
    <p><br>
    </p>
  </body>
</html>