My Project
 All Classes Files Functions Variables Macros
write_field_p.F90
Go to the documentation of this file.
1 module write_field_p
2 implicit none
3 
4  interface writefield_p
6  end interface writefield_p
7 
8  contains
9 
10  subroutine write_field1d_p(name,Field)
11  USE parallel
12  USE write_field
13  implicit none
14 
15  integer, parameter :: maxdim=1
16  character(len=*) :: name
17  real, dimension(:) :: field
18  real, dimension(:),allocatable :: new_field
19  integer, dimension(MaxDim) :: dim
20 
21 
22  dim=shape(field)
23  allocate(new_field(dim(1)))
24  new_field(:)=field(:)
25  call gather_field(new_field,dim(1),1,0)
26 
27  if (mpi_rank==0) call writefield(name,new_field)
28 
29  end subroutine write_field1d_p
30 
31  subroutine write_field2d_p(name,Field)
32  USE parallel
33  USE write_field
34  implicit none
35 
36  integer, parameter :: maxdim=2
37  character(len=*) :: name
38  real, dimension(:,:) :: field
39  real, dimension(:,:),allocatable :: new_field
40  integer, dimension(MaxDim) :: dim
41 
42  dim=shape(field)
43  allocate(new_field(dim(1),dim(2)))
44  new_field(:,:)=field(:,:)
45  call gather_field(new_field(1,1),dim(1)*dim(2),1,0)
46 
47  if (mpi_rank==0) call writefield(name,new_field)
48 
49 
50  end subroutine write_field2d_p
51 
52  subroutine write_field3d_p(name,Field)
53  USE parallel
54  USE write_field
55  implicit none
56 
57  integer, parameter :: maxdim=3
58  character(len=*) :: name
59  real, dimension(:,:,:) :: field
60  real, dimension(:,:,:),allocatable :: new_field
61  integer, dimension(MaxDim) :: dim
62 
63  dim=shape(field)
64  allocate(new_field(dim(1),dim(2),dim(3)))
65  new_field(:,:,:)=field(:,:,:)
66  call gather_field(new_field(1,1,1),dim(1)*dim(2),dim(3),0)
67 
68  if (mpi_rank==0) call writefield(name,new_field)
69 
70  end subroutine write_field3d_p
71 
72 end module write_field_p
73