<div dir="ltr"><div dir="ltr">@Satish and Blaise - Thank you for the notes. <br><br>@Satish - When you say: "Some routines probably don't have Interface definitions - hence compiler can't cat this issue with all functions."<br>Does it mean that I cannot use 64-bit option for those routines, which do not have the interface definitions? <br><br>Thanks,<br>Mike<br></div><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><br>I use the following I all my fortran codes (inspired by a post from Michael Metcalf on comp.lang.fortran many many moons ago):
<div><br>
</div>
<div>
<div style="background-color:rgb(255,255,255);font-family:"Fira Code",Menlo,Monaco,"Courier New",monospace,Menlo,Monaco,"Courier New",monospace;line-height:18px;white-space:pre-wrap">
<div>PetscReal,<span style="color:rgb(0,0,255)">Parameter</span> :: PReal = <span style="color:rgb(9,134,88)">
1.0</span></div>
<div><span style="color:rgb(0,0,255)">Integer</span>,<span style="color:rgb(0,0,255)">Parameter</span>,<span style="color:rgb(0,0,255)">Public</span> :: Kr = Selected_Real_Kind(Precision(PReal))</div>
<div></div>
<div>PetscInt,<span style="color:rgb(0,0,255)">Parameter</span> :: PInt = <span style="color:rgb(9,134,88)">
1</span></div>
<div><span style="color:rgb(0,0,255)">Integer</span>,<span style="color:rgb(0,0,255)">Parameter</span>,<span style="color:rgb(0,0,255)">Public</span> :: Ki = kind(PInt)</div>
<div></div>
</div>
<div><br>
</div>
<div>You will need to pass constant with their kind (i.e. 1_Ki instead of 1)</div>
<div><br>
</div>
<div><br>
</div>
<div>The advantage of this approach over explicitly trying to figure out the proper type of integer ois that the same code will automatically work with 32 and 64 bit indices.</div>
<div><br>
</div>
<div>I’ve been wondering if petsc should include these definitions (perhaps under another name).</div>
<div><br>
</div>
<div>Blaise</div>
<div> <br>
<blockquote type="cite">
<div>On Feb 1, 2023, at 2:58 PM, Mike Michell <<a href="mailto:mi.mike1021@gmail.com" target="_blank">mi.mike1021@gmail.com</a>> wrote:</div>
<br>
<div>
<div dir="ltr">Hi all,
<div><br>
</div>
<div>I want to use PETSc with 64-bit indices with a Fortran90 code. It seems some PETSc functions have no problem, but some of the others do not accept 32-bit error code integer (e.g., "ierr" declared as PetscErrorCode type). </div>
<div><br>
</div>
<div>For example, </div>
<div><br>
</div>
<div>call DMPlexGetChart(dm, pst, pend, ierr);CHKERRA(ierr)    works okay, </div>
<div><br>
</div>
<div>but<br>
</div>
<div><br>
</div>
<div>call DMPlexGetDepthStratum(dm, 0, vst, vend, ierr);CHKERRA(ierr)  gives an error regarding the datatype of ierr. The error basically leads: <br>
</div>
<div>Error: Type mismatch in argument ‘b’ at (1); passed INTEGER(4) to INTEGER(8)<br>
</div>
<div><br>
</div>
<div>I tried to declare ierr as integer(kind=8) type, but there are still some problems. If PETSc is configured with 32-bit indices, the Fortran code works without problem. </div>
<div><br>
</div>
<div>What surprising to me is that as mentioned above, DMPlexGetChart() works okay, but  DMPlexGetDepthStratum() does not work with "ierr (PetscErrorCode type)" variable with 64-bit indices. </div>
<div><br>
</div>
<div>Can I get any comments on it? </div>
<div><br>
</div>
<div>Thanks,</div>
<div>Mike</div>
</div>
</div>
</blockquote>
</div>
<br>
<div>
<div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">
<div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">
<div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">
<div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">
<div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">
<div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">
<div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">
<div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">
<div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">
<div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">
<div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">
<div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">
<div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">
<div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">
<div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">
<div>— <br>
Canada Research Chair in Mathematical and Computational Aspects of Solid Mechanics (Tier 1)</div>
<div>Professor, Department of Mathematics & Statistics<br>
Hamilton Hall room 409A, McMaster University<br>
1280 Main Street West, Hamilton, Ontario L8S 4K1, Canada <br>
<a href="https://www.math.mcmaster.ca/bourdin" target="_blank">https://www.math.mcmaster.ca/bourdin</a> | +1 (905) 525 9140 ext. 27243</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
</div>
</div>

</blockquote></div></div>