[Dart-dev] DART/branches Revision: 12480

dart at ucar.edu dart at ucar.edu
Mon Apr 2 11:22:08 MDT 2018


nancy at ucar.edu
2018-04-02 11:22:08 -0600 (Mon, 02 Apr 2018)
139
support asking the variable type (real/int) before
reading it.   differentiate between r4/r8 when creating
global or variable attributes.




Modified: DART/branches/nsc_updates/assimilation_code/modules/utilities/netcdf_utilities_mod.f90
===================================================================
--- DART/branches/nsc_updates/assimilation_code/modules/utilities/netcdf_utilities_mod.f90	2018-04-02 17:16:35 UTC (rev 12479)
+++ DART/branches/nsc_updates/assimilation_code/modules/utilities/netcdf_utilities_mod.f90	2018-04-02 17:22:08 UTC (rev 12480)
@@ -65,8 +65,10 @@
 interface nc_add_global_attribute
    module procedure nc_add_global_char_att
    module procedure nc_add_global_int_att
-   module procedure nc_add_global_real_att
-   module procedure nc_add_global_real_array_att
+   module procedure nc_add_global_float_att
+   module procedure nc_add_global_double_att
+   module procedure nc_add_global_float_array_att
+   module procedure nc_add_global_double_array_att
 end interface
 
 interface nc_get_global_attribute
@@ -80,8 +82,10 @@
    module procedure nc_add_char_att_to_var
    module procedure nc_add_int_array_att_to_var
    module procedure nc_add_int_att_to_var
-   module procedure nc_add_real_att_to_var
-   module procedure nc_add_real_array_att_to_var
+   module procedure nc_add_float_att_to_var
+   module procedure nc_add_double_att_to_var
+   module procedure nc_add_float_array_att_to_var
+   module procedure nc_add_double_array_att_to_var
 end interface
 
 interface nc_get_attribute_from_variable
@@ -259,40 +263,76 @@
 
 !--------------------------------------------------------------------
 
-subroutine nc_add_global_real_att(ncid, attname, val, context, filename)
+subroutine nc_add_global_float_att(ncid, attname, val, context, filename)
 
 integer,          intent(in) :: ncid
 character(len=*), intent(in) :: attname
-real(r8),         intent(in) :: val
+real(r4),         intent(in) :: val
 character(len=*), intent(in), optional :: context
 character(len=*), intent(in), optional :: filename
 
-character(len=*), parameter :: routine = 'nc_add_global_real_att'
+character(len=*), parameter :: routine = 'nc_add_global_float_att'
 integer :: ret
 
 ret = nf90_put_att(ncid, NF90_GLOBAL, attname, val)
 call nc_check(ret, routine, 'adding the global attribute: '//trim(attname), context, filename, ncid)
 
-end subroutine nc_add_global_real_att
+end subroutine nc_add_global_float_att
 
 !--------------------------------------------------------------------
 
-subroutine nc_add_global_real_array_att(ncid, attname, val, context, filename)
+subroutine nc_add_global_double_att(ncid, attname, val, context, filename)
 
 integer,          intent(in) :: ncid
 character(len=*), intent(in) :: attname
-real(r8),         intent(in) :: val(:)
+real(digits12),   intent(in) :: val
 character(len=*), intent(in), optional :: context
 character(len=*), intent(in), optional :: filename
 
-character(len=*), parameter :: routine = 'nc_add_global_real_array_att'
+character(len=*), parameter :: routine = 'nc_add_global_double_att'
 integer :: ret
 
 ret = nf90_put_att(ncid, NF90_GLOBAL, attname, val)
 call nc_check(ret, routine, 'adding the global attribute: '//trim(attname), context, filename, ncid)
 
-end subroutine nc_add_global_real_array_att
+end subroutine nc_add_global_double_att
 
+!--------------------------------------------------------------------
+
+subroutine nc_add_global_float_array_att(ncid, attname, val, context, filename)
+
+integer,          intent(in) :: ncid
+character(len=*), intent(in) :: attname
+real(r4),         intent(in) :: val(:)
+character(len=*), intent(in), optional :: context
+character(len=*), intent(in), optional :: filename
+
+character(len=*), parameter :: routine = 'nc_add_global_float_array_att'
+integer :: ret
+
+ret = nf90_put_att(ncid, NF90_GLOBAL, attname, val)
+call nc_check(ret, routine, 'adding the global attribute: '//trim(attname), context, filename, ncid)
+
+end subroutine nc_add_global_float_array_att
+
+!--------------------------------------------------------------------
+
+subroutine nc_add_global_double_array_att(ncid, attname, val, context, filename)
+
+integer,          intent(in) :: ncid
+character(len=*), intent(in) :: attname
+real(digits12),   intent(in) :: val(:)


More information about the Dart-dev mailing list