<div dir="ltr"><br><div>Hi,</div><div><br></div><div>I have problems with passing variables through  <b>SNESSetFunction</b> in my code. basically I have the following subroutines in the main body of the Fortran code. Could you provide some insight on how to transfer variables into the residual calculation routine (<b>FormFunction1</b>)?</div><div><br></div><div>Thanks,</div><div>Reza</div><div>------------------------------------------------------------------------------------------------------------------</div><div><b><font size="4">main code</font></b></div><div><br></div><div><div><span class="Apple-tab-span" style="white-space:pre">      </span><b>SNES</b>      snes</div><div><span class="Apple-tab-span" style="white-space:pre"> </span><b>Vec</b>          xvec,rvec</div></div><div><div><span class="Apple-tab-span" style="white-space:pre">        </span><b>external</b>   FormFunction1</div></div><div><div><span class="Apple-tab-span" style="white-space:pre"> </span><b>real*8</b>       variable1(10),variable2(20,20),variable3(30),variable4(40,40)</div></div><div><br></div><div><br></div><div><div>      call <b>SNESSetFunction</b>(snes,rvec,FormFunction1,</div><div>     &<span class="Apple-tab-span" style="white-space:pre">              </span>PETSC_NULL_OBJECT,</div><div>     &<span class="Apple-tab-span" style="white-space:pre">              </span>variable1,variable2,variable3,variable4,<br></div><div>     &<span class="Apple-tab-span" style="white-space:pre">              </span>ierr)<br></div></div><div><br></div><div><div>      end</div></div><div><br></div><div><div>      subroutine <b>FormFunction1</b>(snes,XVEC,FVEC,</div><div>     &<span class="Apple-tab-span" style="white-space:pre">           </span>dummy,</div><div>     &<span class="Apple-tab-span" style="white-space:pre">          </span>varable1,varable2,varable3,varable4,<br></div><div>     &<span class="Apple-tab-span" style="white-space:pre">          </span>ierr)<br></div></div><div><br></div><div><div><span class="Apple-tab-span" style="white-space:pre">      </span><b>SNES</b>                      snes</div><div><span class="Apple-tab-span" style="white-space:pre"> </span><b>Vec</b>                         XVEC,FVEC</div><div><span class="Apple-tab-span" style="white-space:pre">        </span><b>PetscFortranAddr</b>    dummy</div></div><div><div><span class="Apple-tab-span" style="white-space:pre">        </span><b>real*8</b>                       variable1(10),variable2(20,20),variable3(30),variable4(40,40)</div></div><div><br></div><div><br></div><div><div>      return</div><div>      end</div></div><div>--------------------------------------------------------------------------------------------------------------</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div>