<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jan 25, 2013 at 2:44 PM, Mark F. Adams <span dir="ltr"><<a href="mailto:mark.adams@columbia.edu" target="_blank">mark.adams@columbia.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word">Deep clean worked,<div><br>
</div><div>Now I get a segv in dmcreatematrix.  The string length is crazy.  I tried calling this with MPIAIJ and PETSC_NULL, both had crazy 'len' (but slightly different) and segv at the same place.</div></div></blockquote>
<div><br></div><div style>Never ever ever use PETSC_NULL from Fortran. It is always wrong. You must use PETSC_NULL_OBJECT, PETSC_NULL_CHARACTER, etc, if you want a NULL value.</div><div style><br></div><div style>MATAIJ should work:</div>
<div style><br></div><div style><div>$ git grep DMCreateMatrix -- *.F</div><div>src/dm/impls/mesh/examples/tutorials/ex4f90.F:      call DMCreateMatrix(mesh, MATAIJ, A,ierr)</div><div>src/snes/examples/tutorials/ex5f90.F:        call DMCreateMatrix(da,MATAIJ,J,ierr)</div>
<div>src/snes/examples/tutorials/ex5f90t.F:        call DMCreateMatrix(user%da,MATAIJ,J,ierr)</div><div>src/ts/examples/tutorials/ex22f.F:      call DMCreateMatrix(da,MATAIJ,J,ierr)</div></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div style="word-wrap:break-word"><div><br></div><div><div>0x0000000100b112e4 in dmcreatematrix_ (dm=0x7fff5fbff5b0, mat_type=0x101e90f00 "", J=0x7fff5fbff5e0, ierr=0x7fff5fbff59c, len=1606415580) at zdmf.c:40</div>
<div>40        FIXCHAR(mat_type,len,t);</div><div>(gdb) list</div><div>35      </div><div>36      EXTERN_C_BEGIN</div><div>37      void PETSC_STDCALL dmcreatematrix_(DM *dm,CHAR mat_type PETSC_MIXED_LEN(len),Mat *J,PetscErrorCode *ierr PETSC_END_LEN(len))</div>
<div>38      {</div><div>39        char *t;</div><div>40        FIXCHAR(mat_type,len,t);</div><div>41        *ierr = DMCreateMatrix(*dm,t,J);</div><div>42        FREECHAR(mat_type,t);</div><div>43      }</div><div>44      EXTERN_C_END</div>
</div></div></blockquote></div><br><br></div></div>