<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Perfect, PETSC_NULL_VEC works in fortran. Thank you very much for
    your help! :-)<br>
    <br>
    Cheers,<br>
    Sam<br>
    <br>
    <div class="moz-cite-prefix">On 11/24/2017 03:18 PM, Matthew Knepley
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAMYG4G=7Ja8p50wgB8fiGfy_AZENHTNR8fJspYTSxuGfnpS8MQ@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">On Fri, Nov 24, 2017 at 6:42 AM,
            Samuel Lanthaler <span dir="ltr"><<a
                moz-do-not-send="true"
                href="mailto:s.lanthaler@gmail.com" target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:s.lanthaler@gmail.com">s.lanthaler@gmail.com</a></a>></span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">Ah,
              great. I didn't understand that "optional" arguments are
              not optional in the fortran sense of the word. After
              setting up two vectors to pass to the routine, the program
              works. Thank you very much!<br>
              <br>
              One additional question: In the documentation, it is
              written that I can pass PETSC_NULL for these two vectors,
              if I don't actually need them. That probably only works in
              C, but not in fortran. Is there a corresponding argument I
              can pass to the routine in fortran? It seems, that
              PETSC_NULL_REAL doesn't work; is there some other
              PETSC_NULL_XXX that should be passed in this case from
              fortran? If not, then I'll just stick to creating vectors
              and distroying them afterwards, which is fine for me as
              well.<br>
            </blockquote>
            <div><br>
            </div>
            <div>You can use PETSC_NULL_VEC</div>
            <div><br>
            </div>
            <div>  Thanks,</div>
            <div><br>
            </div>
            <div>     Matt</div>
            <div> </div>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              Cheers,<br>
              Sam<br>
              <br>
              <br>
              On 11/24/2017 01:56 AM, Smith, Barry F. wrote:<br>
              <blockquote class="gmail_quote" style="margin:0 0 0
                .8ex;border-left:1px #ccc solid;padding-left:1ex">
                MatZeroRowsColumns() as two vector arguments you are
                missing<br>
                <br>
                <br>
                <blockquote class="gmail_quote" style="margin:0 0 0
                  .8ex;border-left:1px #ccc solid;padding-left:1ex">
                  On Nov 23, 2017, at 2:43 PM, Samuel Lanthaler <<a
                    moz-do-not-send="true"
                    href="mailto:s.lanthaler@gmail.com" target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:s.lanthaler@gmail.com">s.lanthaler@gmail.com</a></a>>
                  wrote:<br>
                  <br>
                  Hi there,<br>
                  I'm new to PETSc and have been trying to do some basic
                  manipulation of matrices in fortran, but don't seem to
                  be able to set a row/column to zero using the
                  MatZeroRowsColumns command: The following is a small
                  example program:<br>
                  <br>
                  ! initialize PETSc<br>
                     CALL PetscInitialize(PETSC_NULL_CHA<wbr>RACTER,ierr)<br>
                  <br>
                     ! Set up a new matrix<br>
                     m = 3<br>
                     CALL MatCreate(PETSC_COMM_WORLD,mat<wbr>A,ierr);
                  CHKERRQ(ierr);<br>
                     CALL MatSetType(matA,MATMPIAIJ,ierr<wbr>);
                  CHKERRQ(ierr);<br>
                     CALL MatSetSizes(matA,PETSC_DECIDE,<wbr>PETSC_DECIDE,m,m,ierr);
                  CHKERRQ(ierr);<br>
                     CALL MatMPIAIJSetPreallocation(matA<wbr>,3,PETSC_NULL_INTEGER,3,PETSC_<wbr>NULL_INTEGER,ierr);
                  CHKERRQ(ierr);<br>
                  <br>
                     ! set values of matrix<br>
                     vals(1,:) = (/1.,2.,3./)<br>
                     vals(2,:) = (/4.,5.,6./)<br>
                     vals(3,:) = (/7.,8.,9./)<br>
                     !<br>
                     idxm = (/0,1,2/)<br>
                     idxn = (/0,1,2/)<br>
                     !<br>
                     CALL MatSetValues(matA,3,idxm,3,idx<wbr>n,vals,INSERT_VALUES,ierr);
                  CHKERRQ(ierr);<br>
                        ! assemble matrix<br>
                     CALL MatAssemblyBegin(matA,MAT_FINA<wbr>L_ASSEMBLY,ierr);
                  CHKERRQ(ierr);<br>
                     CALL MatAssemblyEnd(matA,MAT_FINAL_<wbr>ASSEMBLY,ierr);
                  CHKERRQ(ierr);<br>
                       ! set one row/column to zero, put 6.0d0 on
                  diagonal<br>
                     idone(1) = 2<br>
                     val = 6.0d0<br>
                     CALL MatZeroRowsColumns(matA,1,idon<wbr>e,val,ierr);
                  CHKERRQ(ierr);<br>
                  <br>
                  ! finalize PETSc<br>
                     CALL PetscFinalize(PETSC_NULL_CHARA<wbr>CTER,ierr)<br>
                  <br>
                  When running the program, I get the following error
                  message:<br>
                  <br>
                  [0]PETSC ERROR: ------------------------------<wbr>------------------------------<wbr>------------<br>
                  [0]PETSC ERROR: Caught signal number 11 SEGV:
                  Segmentation Violation, probably memory access out of
                  range<br>
                  [0]PETSC ERROR: Try option -start_in_debugger or
                  -on_error_attach_debugger<br>
                  [0]PETSC ERROR: or see <a moz-do-not-send="true"
                    href="http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind"
                    rel="noreferrer" target="_blank">http://www.mcs.anl.gov/petsc/d<wbr>ocumentation/faq.html#valgrind</a><br>
                  [0]PETSC ERROR: or try <a moz-do-not-send="true"
                    href="http://valgrind.org" rel="noreferrer"
                    target="_blank">http://valgrind.org</a> on GNU/linux
                  and Apple Mac OS X to find memory corruption errors<br>
                  [0]PETSC ERROR: likely location of problem given in
                  stack below<br>
                  [0]PETSC ERROR: ---------------------  Stack Frames
                  ------------------------------<wbr>------<br>
                  [0]PETSC ERROR: Note: The EXACT line numbers in the
                  stack are not available,<br>
                  [0]PETSC ERROR:       INSTEAD the line number of the
                  start of the function<br>
                  [0]PETSC ERROR:       is given.<br>
                  [0]PETSC ERROR: --------------------- Error Message
                  ------------------------------<wbr>------------------------------<wbr>--<br>
                  [0]PETSC ERROR: Signal received<br>
                  [0]PETSC ERROR: See <a moz-do-not-send="true"
                    href="http://www.mcs.anl.gov/petsc/documentation/faq.html"
                    rel="noreferrer" target="_blank">http://www.mcs.anl.gov/petsc/d<wbr>ocumentation/faq.html</a>
                  for trouble shooting.<br>
                  [0]PETSC ERROR: Petsc Release Version 3.8.2, Nov, 09,
                  2017<br>
                  [0]PETSC ERROR: ./test on a arch-complex-debug named
                  sam-ThinkPad-T450s by sam Thu Nov 23 23:28:15 2017<br>
                  [0]PETSC ERROR: Configure options
                  PETSC_DIR=/home/sam/Progs/pets<wbr>c-3.8.2
                  PETSC_ARCH=arch-complex-debug
                  --with-scalar-type=complex<br>
                  [0]PETSC ERROR: #1 User provided function() line 0 in 
                  unknown file<br>
                  ------------------------------<wbr>------------------------------<wbr>--------------<br>
                  MPI_ABORT was invoked on rank 0 in communicator
                  MPI_COMM_WORLD<br>
                  with errorcode 59.<br>
                  Would someone be so kind as to tell me what I'm doing
                  wrong? Thank you!<br>
                  <br>
                  Best regards,<br>
                  Sam<br>
                </blockquote>
              </blockquote>
              <br>
            </blockquote>
          </div>
          <br>
          <br clear="all">
          <div><br>
          </div>
          -- <br>
          <div class="gmail_signature" data-smartmail="gmail_signature">
            <div dir="ltr">
              <div>
                <div dir="ltr">
                  <div>What most experimenters take for granted before
                    they begin their experiments is infinitely more
                    interesting than any results to which their
                    experiments lead.<br>
                    -- Norbert Wiener</div>
                  <div><br>
                  </div>
                  <div><a moz-do-not-send="true"
                      href="http://www.caam.rice.edu/%7Emk51/"
                      target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
  </body>
</html>