/[lmdze]/trunk/bibio/writefield.f
ViewVC logotype

Diff of /trunk/bibio/writefield.f

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/bibio/Writefield/writefield.f revision 108 by guez, Tue Sep 16 14:00:41 2014 UTC trunk/bibio/writefield.f revision 111 by guez, Wed Sep 17 11:57:10 2014 UTC
# Line 1  Line 1 
1  module WriteField_m  module WriteField_m
2    
3    use writefield_gen_m, only: writefield_gen    use CreateNewField_m, only: CreateNewField, ncid, nbfield, MaxWriteField
4      use GetFieldIndex_m, only: GetFieldIndex
5      USE netcdf95, ONLY: nf95_put_var
6    
7    implicit none    implicit none
8    
9      integer, save:: Record(MaxWriteField)
10    
11    interface WriteField    interface WriteField
12       module procedure WriteField3d,WriteField2d,WriteField1d       module procedure WriteField3d,WriteField2d,WriteField1d
13    end interface WriteField    end interface WriteField
# Line 14  module WriteField_m Line 18  module WriteField_m
18  contains  contains
19    
20    subroutine WriteField1d(name,Field)    subroutine WriteField1d(name,Field)
     character(len=*) :: name  
     real, dimension(:) :: Field  
     integer, dimension(1) :: Dim  
21    
22      Dim=shape(Field)      character(len=*), intent(in):: name
23      call WriteField_gen(name,Field,Dim(1),1,1)      real, intent(in):: Field(:)
24    
25        ! Local:
26        integer index
27    
28        !-------------------------------------------
29    
30        Index=GetFieldIndex(name)
31    
32        if (Index==-1) then
33           call CreateNewField(name, shape(field))
34           Index=nbfield
35           Record(Index) = 1
36        else
37           Record(Index)=Record(Index)+1
38        endif
39    
40        call NF95_PUT_VAR(Ncid(Index), Varid = 1, values = Field, &
41             start = (/1, Record(Index)/))
42    
43    end subroutine WriteField1d    end subroutine WriteField1d
44    
45    !****************************************************************    !****************************************************************
46    
47    subroutine WriteField2d(name,Field)    subroutine WriteField2d(name,Field)
     character(len=*) :: name  
     real, dimension(:,:) :: Field  
     integer, dimension(2) :: Dim  
48    
49      Dim=shape(Field)      character(len=*), intent(in):: name
50      call WriteField_gen(name,Field,Dim(1),Dim(2),1)      real, intent(in):: Field(:, :)
51    
52        ! Local:
53        integer index
54    
55        !-------------------------------------------
56    
57        Index=GetFieldIndex(name)
58    
59        if (Index==-1) then
60           call CreateNewField(name, shape(field))
61           Index=nbfield
62           Record(Index) = 1
63        else
64           Record(Index)=Record(Index)+1
65        endif
66    
67        call NF95_PUT_VAR(Ncid(Index), Varid = 1, values = Field, &
68             start = (/1, 1, Record(Index)/))
69    
70    end subroutine WriteField2d    end subroutine WriteField2d
71    
72    !****************************************************************    !****************************************************************
73    
74    subroutine WriteField3d(name,Field)    subroutine WriteField3d(name,Field)
     character(len=*) :: name  
     real, dimension(:,:,:) :: Field  
     integer, dimension(3) :: Dim  
75    
76      Dim=shape(Field)      character(len=*), intent(in):: name
77      call WriteField_gen(name,Field,Dim(1),Dim(2),Dim(3))      real, intent(in):: Field(:, :, :)
78    
79        ! Local:
80        integer index
81    
82        !-------------------------------------------
83    
84        Index=GetFieldIndex(name)
85    
86        if (Index==-1) then
87           call CreateNewField(name, shape(field))
88           Index=nbfield
89           Record(Index) = 1
90        else
91           Record(Index)=Record(Index)+1
92        endif
93    
94        call NF95_PUT_VAR(Ncid(Index), Varid = 1, values = Field, &
95             start = (/1, 1, 1, Record(Index)/))
96    
97    end subroutine WriteField3d    end subroutine WriteField3d
98    

Legend:
Removed from v.108  
changed lines
  Added in v.111

  ViewVC Help
Powered by ViewVC 1.1.21