MoDeNa  1.0
Software framework facilitating sequential multi-scale modelling
Helfer_Routinen.F90
1 
4 
5 
6 
7 Subroutine printglobalvec(GlobalVec,filename)
8 Implicit None
9 #include <finclude/petscsys.h>
10 #include <finclude/petscvec.h>
11 #include <finclude/petscvec.h90>
12 #include <finclude/petscis.h>
13 
14 
15  vec :: globalvec
16  character(80) :: filename
17 
18  petscviewer viewer
19  petscerrorcode ierr
20 
21 !Print global vector to a file
22  call petscviewerasciiopen(petsc_comm_world,filename,viewer,ierr)
23  call vecview(globalvec,viewer,ierr)
24 
25  call petscviewerdestroy(viewer,ierr)
26 
27 End Subroutine printglobalvec
28 
29 
30 
31 Subroutine printlocalvec(GlobalVec,da,filename)
32 Implicit None
33 #include <finclude/petscsys.h>
34 #include <finclude/petscvec.h>
35 #include <finclude/petscvec.h90>
36 #include <finclude/petscdmda.h>
37 #include <finclude/petscdmda.h90>
38 #include <finclude/petscis.h>
39 
40  vec globalvec
41  vec localvec
42  dm da
43  character(80) :: filename
44 
45  petscviewer viewer
46  petscerrorcode ierr
47 
48  call dmgetlocalvector(da,localvec,ierr) !create a locally owned part of a global distribued array
49  call dmglobaltolocalbegin(da,globalvec,insert_values,localvec,ierr) !copy values from global array to local arrays
50  call dmglobaltolocalend(da,globalvec,insert_values,localvec,ierr)
51  call petscviewerasciiopen(petsc_comm_self,filename,viewer,ierr) !associate viewer with file
52  call vecview(localvec,viewer,ierr) !every processor prints his local array to a file
53  call dmrestorelocalvector(da,localvec,ierr) !Free memory of local vector
54 
55 
56 End Subroutine printlocalvec