/[lmdze]/trunk/Sources/misc/createnewfield.f
ViewVC logotype

Diff of /trunk/Sources/misc/createnewfield.f

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

trunk/bibio/Writefield/createnewfield.f revision 108 by guez, Tue Sep 16 14:00:41 2014 UTC trunk/bibio/createnewfield.f revision 111 by guez, Wed Sep 17 11:57:10 2014 UTC
# Line 2  module createnewfield_m Line 2  module createnewfield_m
2    
3    implicit none    implicit none
4    
5      integer, parameter:: MaxWriteField = 100
6      character(len=255), save:: FieldName(MaxWriteField)
7      integer:: NbField = 0
8      integer, save:: Ncid(MaxWriteField)
9    
10  contains  contains
11    
12    subroutine CreateNewField(name, dimx, dimy, dimz)    subroutine CreateNewField(name, my_shape)
13    
14      USE netcdf, ONLY: nf90_clobber, nf90_double, nf90_unlimited      USE netcdf, ONLY: nf90_clobber, nf90_double, nf90_unlimited
15      USE netcdf95, ONLY: nf95_create, nf95_def_dim, nf95_def_var, nf95_enddef      USE netcdf95, ONLY: nf95_create, nf95_def_dim, nf95_def_var, nf95_enddef
     USE write_field, ONLY: fieldid, fieldindex, fieldname, fieldvarid, nbfield  
16    
17      character(len = *), intent(in):: name      character(len = *), intent(in):: name
18      integer, intent(in):: dimx, dimy, dimz      integer, intent(in):: my_shape(:)
19    
20      ! Local:      ! Local:
21      integer TabDim(4)      integer Dimid(size(my_shape) + 1), n_dim, varid
22    
23      !--------------------------------------------------------------------      !--------------------------------------------------------------------
24    
25      NbField = NbField + 1      NbField = NbField + 1
26      FieldName(NbField) = TRIM(ADJUSTL(name))      FieldName(NbField) = ADJUSTL(name)
27      FieldIndex(NbField) = 1      n_dim = size(my_shape)
28    
29      call NF95_CREATE(TRIM(ADJUSTL(name)) // '.nc', NF90_CLOBBER, &      call NF95_CREATE(TRIM(FieldName(NbField)) // '.nc', NF90_CLOBBER, &
30           FieldId(NbField))           Ncid(NbField))
31      call NF95_DEF_DIM(FieldId(NbField), 'X', dimx, TabDim(1))      call NF95_DEF_DIM(Ncid(NbField), 'X', my_shape(1), Dimid(1))
32      call NF95_DEF_DIM(FieldId(NbField), 'Y', dimy, TabDim(2))      if (n_dim >= 2) then
33      call NF95_DEF_DIM(FieldId(NbField), 'Z', dimz, TabDim(3))         call NF95_DEF_DIM(Ncid(NbField), 'Y', my_shape(2), Dimid(2))
34      call NF95_DEF_DIM(FieldId(NbField), 'iter', NF90_UNLIMITED, TabDim(4))         if (n_dim >= 3) then
35      call NF95_DEF_VAR(FieldId(NbField), FieldName(NbField), NF90_DOUBLE, &            call NF95_DEF_DIM(Ncid(NbField), 'Z', my_shape(3), Dimid(3))
36           TabDim, FieldVarId(NbField))         end if
37      call NF95_ENDDEF(FieldId(NbField))      end if
38        call NF95_DEF_DIM(Ncid(NbField), 'iter', NF90_UNLIMITED, Dimid(n_dim + 1))
39        call NF95_DEF_VAR(Ncid(NbField), FieldName(NbField), NF90_DOUBLE, Dimid, &
40             Varid)
41        call NF95_ENDDEF(Ncid(NbField))
42    
43    end subroutine CreateNewField    end subroutine CreateNewField
44    

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

  ViewVC Help
Powered by ViewVC 1.1.21