Actual source code: ex32f.F
1: !
2: ! "$Id: ex32f.F,v 1.5 2001/08/07 03:02:26 balay Exp $";
3: !
4: ! Tests PescOffsetFortran()
5: ! duplicated
6: program main
7: implicit none
9: #include include/finclude/petsc.h
10: #include include/finclude/petscis.h
11: #include include/finclude/petscvec.h
13: integer ierr, n, size
15: PetscScalar v_v1(1),v_v2(1)
16: Vec v
17: integer i,i_v1,i_v2
18:
19: n=8
20: call PetscInitialize(PETSC_NULL_CHARACTER,ierr)
21: call MPI_Comm_size(PETSC_COMM_WORLD,size,ierr)
22: if (size .gt. 1) then
23: print*,'Example for one processor only'
24: call MPI_Abort(MPI_COMM_WORLD,0)
25: endif
27: call VecCreateMPI(PETSC_COMM_WORLD,PETSC_DECIDE,n,v,ierr)
28: call VecGetArray(v,v_v1,i_v1,ierr)
29: call PetscOffsetFortran(v_v2,v_v1,i_v2,ierr)
30: i_v2 = i_v1 + i_v2
32: do 10, i=1,n
33: v_v1(i_v1 + i) = i
34: 10 continue
36: call VecView(v,PETSC_VIEWER_STDOUT_WORLD,ierr)
38: do 20, i=1,n
39: print*,i,v_v2(i_v2 + i)
40: 20 continue
42: call VecDestroy(v,ierr)
44: call PetscFinalize(ierr)
45:
46: end
47: