Actual source code: ex20f.F
1: !
2: program main
3: implicit none
4: #include finclude/petscsys.h
5: #include finclude/petscvec.h
6: #include finclude/petscviewer.h
8: !
9: ! This example demonstrates writing an array to a file in binary
10: ! format that may be read in by PETSc's VecLoad() routine.
11: !
12: PetscInt n,i,ione
13: PetscErrorCode ierr
14: integer fd
15: PetscInt veccookie(1)
16: PetscScalar array(5)
17: Vec x
18: PetscViewer v
20: ione = 1
21: n = 5
22: veccookie(1) = 1211211 + 3
24: call PetscInitialize(PETSC_NULL_CHARACTER,ierr)
26: do 10, i=1,5
27: array(i) = i
28: 10 continue
30: ! Open binary file for writing
31: call PetscBinaryOpen('testfile',FILE_MODE_WRITE,fd,ierr)
32: ! Write the Vec header
33: call PetscBinaryWrite(fd,veccookie,ione,PETSC_INT, &
34: & PETSC_FALSE,ierr)
35: ! Write the array length
36: call PetscBinaryWrite(fd,n,ione,PETSC_INT,PETSC_FALSE,ierr)
37: ! Write the array
38: call PetscBinaryWrite(fd,array,n,PETSC_DOUBLE,PETSC_FALSE,ierr)
39: ! Close the file
40: call PetscBinaryClose(fd,ierr)
42: !
43: ! Open the file for reading by PETSc
44: !
45: call PetscViewerBinaryOpen(PETSC_COMM_SELF,'testfile', &
46: & FILE_MODE_READ,v,ierr)
47: !
48: ! Load the vector
49: !
50: Call VecLoad(v,PETSC_NULL_CHARACTER,x,ierr)
51: call PetscViewerDestroy(v,ierr)
52: !
53: ! Print the vector
54: !
55: call VecView(x,PETSC_VIEWER_STDOUT_SELF,ierr)
56: !
58: call VecDestroy(x,ierr)
59: call PetscFinalize(ierr)
60: end
62: