source: LMDZ6/branches/Amaury_dev/libf/dyn3dmem/write_field_p.F90 @ 5127

Last change on this file since 5127 was 5119, checked in by abarral, 11 months ago

enforce PRIVATE by default in several modules, expose PUBLIC as needed
move eigen.f90 to obsolete/
(lint) aslong the way

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
File size: 1.8 KB
Line 
1module write_field_p
2IMPLICIT NONE
3 
4  interface WriteField_p
5    module procedure Write_field3d_p,Write_Field2d_p,Write_Field1d_p
6  end interface WriteField_p
7 
8  CONTAINS
9 
10  SUBROUTINE write_field1D_p(name,Field)
11    USE parallel_lmdz
12    USE lmdz_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_lmdz
33    USE lmdz_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_lmdz
54    USE lmdz_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
72END MODULE write_field_p
73 
Note: See TracBrowser for help on using the repository browser.