1
<center><a href="ex19.F">Actual source code: ex19.F</a></center><br>
6
<meta name="generator" content="c2html 0.9.1">
7
<meta name="date" content="2002-05-31T16:05:18+00:00">
10
<body bgcolor="#FFFFFF">
11
<pre width="80"><a name="line1"> 1: </a>!
12
<a name="line2"> 2: </a>! <font color="#666666">"$Id: ex19.F,v 1.38 2001/08/10 03:08:33 balay Exp $"</font>;
13
<a name="line3"> 3: </a>!
14
<a name="line4"> 4: </a> program main
15
<a name="line5"> 5: </a> #include <A href="../../../../include/finclude/petsc.h.html">include/finclude/petsc.h</A>
16
<a name="line6"> 6: </a> #include <A href="../../../../include/finclude/petscvec.h.html">include/finclude/petscvec.h</A>
17
<a name="line7"> 7: </a>!
18
<a name="line8"> 8: </a>! This example demonstrates basic use of the PETSc Fortran interface
19
<a name="line9"> 9: </a>! to vectors.
20
<a name="line10"> 10: </a>!
21
<a name="line11"> 11: </a> integer n,ierr,flg
22
<a name="line12"> 12: </a> <A href="../../../../docs/manualpages/Sys/PetscScalar.html#PetscScalar">PetscScalar</A> one,two,three,dot
23
<a name="line13"> 13: </a> PetscReal norm,rdot
24
<a name="line14"> 14: </a> <A href="../../../../docs/manualpages/Vec/Vec.html#Vec">Vec</A> x,y,w
26
<a name="line16"> 16: </a> n = 20
27
<a name="line17"> 17: </a> one = 1.0
28
<a name="line18"> 18: </a> two = 2.0
29
<a name="line19"> 19: </a> three = 3.0
31
<a name="line21"> 21: </a> call <A href="../../../../docs/manualpages/Sys/PetscInitialize.html#PetscInitialize">PetscInitialize</A>(PETSC_NULL_CHARACTER,ierr)
32
<a name="line22"> 22: </a> call <A href="../../../../docs/manualpages/Sys/PetscOptionsGetInt.html#PetscOptionsGetInt">PetscOptionsGetInt</A>(PETSC_NULL_CHARACTER,'-n',n,flg,ierr)
34
<a name="line24"> 24: </a>! Create a vector, then duplicate it
35
<a name="line25"> 25: </a> call <A href="../../../../docs/manualpages/Vec/VecCreate.html#VecCreate">VecCreate</A>(PETSC_COMM_WORLD,x,ierr)
36
<a name="line26"> 26: </a> call <A href="../../../../docs/manualpages/Vec/VecSetSizes.html#VecSetSizes">VecSetSizes</A>(x,PETSC_DECIDE,n,ierr)
37
<a name="line27"> 27: </a> call <A href="../../../../docs/manualpages/Vec/VecSetFromOptions.html#VecSetFromOptions">VecSetFromOptions</A>(x,ierr)
38
<a name="line28"> 28: </a> call <A href="../../../../docs/manualpages/Vec/VecDuplicate.html#VecDuplicate">VecDuplicate</A>(x,y,ierr)
39
<a name="line29"> 29: </a> call <A href="../../../../docs/manualpages/Vec/VecDuplicate.html#VecDuplicate">VecDuplicate</A>(x,w,ierr)
41
<a name="line31"> 31: </a> call <A href="../../../../docs/manualpages/Vec/VecSet.html#VecSet">VecSet</A>(one,x,ierr)
42
<a name="line32"> 32: </a> call <A href="../../../../docs/manualpages/Vec/VecSet.html#VecSet">VecSet</A>(two,y,ierr)
44
<a name="line34"> 34: </a> call <A href="../../../../docs/manualpages/Vec/VecDot.html#VecDot">VecDot</A>(x,y,dot,ierr)
45
<a name="line35"> 35: </a> rdot = PetscRealPart(dot)
46
<a name="line36"> 36: </a> write(6,100) rdot
47
<a name="line37"> 37: </a> 100 format('Result of inner product ',f10.4)
49
<a name="line39"> 39: </a> call <A href="../../../../docs/manualpages/Vec/VecScale.html#VecScale">VecScale</A>(two,x,ierr)
50
<a name="line40"> 40: </a> call <A href="../../../../docs/manualpages/Vec/VecNorm.html#VecNorm">VecNorm</A>(x,NORM_2,norm,ierr)
51
<a name="line41"> 41: </a> write(6,110) norm
52
<a name="line42"> 42: </a> 110 format('Result of scaling ',f10.4)
54
<a name="line44"> 44: </a> call <A href="../../../../docs/manualpages/Vec/VecCopy.html#VecCopy">VecCopy</A>(x,w,ierr)
55
<a name="line45"> 45: </a> call <A href="../../../../docs/manualpages/Vec/VecNorm.html#VecNorm">VecNorm</A>(w,NORM_2,norm,ierr)
56
<a name="line46"> 46: </a> write(6,120) norm
57
<a name="line47"> 47: </a> 120 format('Result of copy ',f10.4)
59
<a name="line49"> 49: </a> call <A href="../../../../docs/manualpages/Vec/VecAXPY.html#VecAXPY">VecAXPY</A>(three,x,y,ierr)
60
<a name="line50"> 50: </a> call <A href="../../../../docs/manualpages/Vec/VecNorm.html#VecNorm">VecNorm</A>(y,NORM_2,norm,ierr)
61
<a name="line51"> 51: </a> write(6,130) norm
62
<a name="line52"> 52: </a> 130 format('Result of axpy ',f10.4)
64
<a name="line54"> 54: </a> call <A href="../../../../docs/manualpages/Vec/VecDestroy.html#VecDestroy">VecDestroy</A>(x,ierr)
65
<a name="line55"> 55: </a> call <A href="../../../../docs/manualpages/Vec/VecDestroy.html#VecDestroy">VecDestroy</A>(y,ierr)
66
<a name="line56"> 56: </a> call <A href="../../../../docs/manualpages/Vec/VecDestroy.html#VecDestroy">VecDestroy</A>(w,ierr)
67
<a name="line57"> 57: </a> call <A href="../../../../docs/manualpages/Sys/PetscFinalize.html#PetscFinalize">PetscFinalize</A>(ierr)
68
<a name="line58"> 58: </a> end
70
<a name="line60"> 60: </a>