[Dart-dev] DART/branches Revision: 12036

dart at ucar.edu dart at ucar.edu
Fri Nov 3 11:10:17 MDT 2017


nancy at ucar.edu
2017-11-03 11:10:16 -0600 (Fri, 03 Nov 2017)
47
add single number gets for integers and reals




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-03 17:00:18 UTC (rev 12035)
+++ DART/branches/recam/assimilation_code/modules/utilities/netcdf_utilities_mod.f90	2017-11-03 17:10:16 UTC (rev 12036)
@@ -89,10 +89,10 @@
    module procedure nc_put_real_3d
 end interface
 
-!>@todo FIXME do we need single value versions
-!> of these as well?
 interface nc_get_variable
+   module procedure nc_get_single_int_1d
    module procedure nc_get_int_1d
+   module procedure nc_get_single_real_1d
    module procedure nc_get_real_1d
    module procedure nc_get_int_2d
    module procedure nc_get_real_2d
@@ -730,6 +730,27 @@
 !--------------------------------------------------------------------
 ! get values from variables
 
+subroutine nc_get_single_int_1d(ncid, varname, varval, context, filename)
+
+integer,          intent(in)  :: ncid
+character(len=*), intent(in)  :: varname
+integer,          intent(out) :: varval
+character(len=*), intent(in), optional :: context
+character(len=*), intent(in), optional :: filename
+
+character(len=*), parameter :: routine = 'nc_get_single_int_1d'
+integer :: ret, varid
+
+ret = nf90_inq_varid(ncid, varname, varid)
+call nc_check(ret, routine, 'inquire variable id for '//trim(varname), context, filename)
+
+ret = nf90_get_var(ncid, varid, varval)
+call nc_check(ret, routine, 'get values for '//trim(varname), context, filename)
+
+end subroutine nc_get_single_int_1d
+
+!--------------------------------------------------------------------
+
 subroutine nc_get_int_1d(ncid, varname, varvals, context, filename)
 
 integer,          intent(in)  :: ncid
@@ -751,6 +772,27 @@
 
 !--------------------------------------------------------------------
 
+subroutine nc_get_single_real_1d(ncid, varname, varval, context, filename)
+
+integer,          intent(in)  :: ncid
+character(len=*), intent(in)  :: varname
+real(r8),         intent(out) :: varval
+character(len=*), intent(in), optional :: context
+character(len=*), intent(in), optional :: filename
+
+character(len=*), parameter :: routine = 'nc_get_single_real_1d'
+integer :: ret, varid
+
+ret = nf90_inq_varid(ncid, varname, varid)
+call nc_check(ret, routine, 'inquire variable id for '//trim(varname), context, filename)
+
+ret = nf90_get_var(ncid, varid, varval)
+call nc_check(ret, routine, 'get values for '//trim(varname), context, filename)
+
+end subroutine nc_get_single_real_1d
+
+!--------------------------------------------------------------------
+
 subroutine nc_get_real_1d(ncid, varname, varvals, context, filename)
 
 integer,          intent(in)  :: ncid


More information about the Dart-dev mailing list