[Dart-dev] DART/branches Revision: 12076

dart at ucar.edu dart at ucar.edu
Thu Nov 9 11:28:50 MST 2017


nancy at ucar.edu
2017-11-09 11:28:49 -0700 (Thu, 09 Nov 2017)
114
added open/close functions and 'check for existance'
functions for global attributes, dimensions, and variables.




Modified: DART/branches/recam/assimilation_code/modules/utilities/netcdf_utilities_mod.f90
===================================================================
--- DART/branches/recam/assimilation_code/modules/utilities/netcdf_utilities_mod.f90	2017-11-09 17:14:57 UTC (rev 12075)
+++ DART/branches/recam/assimilation_code/modules/utilities/netcdf_utilities_mod.f90	2017-11-09 18:28:49 UTC (rev 12076)
@@ -38,11 +38,17 @@
           nc_define_integer_variable,     &
           nc_define_real_variable,        &
           nc_define_double_variable,      &
+          nc_global_attribute_exists,     &
+          nc_dimension_exists,            &
+          nc_variable_exists,             &
           nc_put_variable,                &
           nc_get_variable,                &
           nc_add_global_creation_time,    &
           nc_get_variable_num_dimensions, &
           nc_get_variable_size,           &
+          nc_open_readonly,               &
+          nc_open_readwrite,              &
+          nc_close,                       &
           nc_redef,                       &
           nc_enddef,                      &
           nc_sync
@@ -64,6 +70,7 @@
 end interface
 
 interface nc_define_integer_variable
+   module procedure nc_define_var_int_scalar
    module procedure nc_define_var_int_1d
    module procedure nc_define_var_int_Nd
 end interface
@@ -75,6 +82,7 @@
 end interface
 
 interface nc_define_double_variable
+   module procedure nc_define_var_double_scalar
    module procedure nc_define_var_double_1d
    module procedure nc_define_var_double_Nd
 end interface
@@ -225,7 +233,7 @@
 
 !------------------------------------------------------------------
 !--------------------------------------------------------------------
-! adding attribute to a variable section
+! adding attributes to variables section
 
 subroutine nc_add_char_att_to_var(ncid, varname, attname, val, context, filename)
 
@@ -359,6 +367,24 @@
 !--------------------------------------------------------------------
 ! defining variables section
 
+subroutine nc_define_var_int_scalar(ncid, varname, ndim, context, filename)
+
+integer,          intent(in) :: ncid
+character(len=*), intent(in) :: varname
+integer,          intent(in) :: ndim ! ignore for now
+character(len=*), intent(in), optional :: context
+character(len=*), intent(in), optional :: filename
+
+character(len=*), parameter :: routine = 'nc_define_var_int_scalar'
+integer :: ret, varid
+
+ret = nf90_def_var(ncid, varname, nf90_int, varid=varid)
+call nc_check(ret, routine, 'define int variable '//trim(varname), context, filename)
+
+end subroutine nc_define_var_int_scalar
+
+!--------------------------------------------------------------------
+
 subroutine nc_define_var_int_1d(ncid, varname, dimname, context, filename)
 
 integer,          intent(in) :: ncid
@@ -509,6 +535,24 @@
 
 !--------------------------------------------------------------------
 
+subroutine nc_define_var_double_scalar(ncid, varname, ndim, context, filename)
+
+integer,          intent(in) :: ncid
+character(len=*), intent(in) :: varname
+integer,          intent(in) :: ndim ! ignore for now
+character(len=*), intent(in), optional :: context
+character(len=*), intent(in), optional :: filename
+
+character(len=*), parameter :: routine = 'nc_define_var_double_scalar'
+integer :: ret, varid
+
+ret = nf90_def_var(ncid, varname, nf90_double, varid=varid)
+call nc_check(ret, routine, 'define double variable '//trim(varname), context, filename)
+
+end subroutine nc_define_var_double_scalar
+
+!--------------------------------------------------------------------
+
 subroutine nc_define_var_double_1d(ncid, varname, dimname, context, filename)
 
 integer,          intent(in) :: ncid
@@ -575,6 +619,69 @@
 
 !--------------------------------------------------------------------
 !--------------------------------------------------------------------


More information about the Dart-dev mailing list