[Dart-dev] DART/branches Revision: 11938
dart at ucar.edu
dart at ucar.edu
Mon Sep 18 17:42:18 MDT 2017
thoar at ucar.edu
2017-09-18 17:42:17 -0600 (Mon, 18 Sep 2017)
1256
Getting closer.
with the default 1 observation on VERTISSURFACE, generates an error
ERROR FROM:
routine: deallocate_available_values
message: Deallocation Error::available_target_values
source file: $URL: https://svn-dares-dart.cgd.ucar.edu/DART/branches/coamps/models/coamps_nest/coamps_interp_mod.f90 $
with two observations (one an identity ob, one on vertislevel) it runs but gives bad values for obs_seq.out
I am having trouble updating an HDF5 file with the netCDF 4.4.1 fortran modules.
Supposedly using 'nccopy -k 4 coamps.hdf5 coamps_updateable.hdf5' results in an HDF5 file you
can modify with the netcdf module ... hasn't been my experience so far - the variable in
question EXISTS in the 'coamps_updateable.hdf5'.
ERROR FROM:
routine: nc_put_real_3d
message: put values for uuwind_sig_028030_000010_1a0201x0204_2013011000_00000000_analfld: NetCDF: HDF error
message: ... copy_netCDF_to_hdf
source file: $URL: https://svn-dares-dart.cgd.ucar.edu/DART/branches/coamps/assimilation_code/modules/utilities/netcdf_utilities_mod.f90 $
And even then, I'm not sure COAMPS would be able read it back in.
Given the way the rest of coamps seems to be written, there is probably a coamps_hdf_mod.f90 that we
might be able to use.
Modified: DART/branches/coamps/assimilation_code/location/threed_sphere/location_mod.f90
===================================================================
--- DART/branches/coamps/assimilation_code/location/threed_sphere/location_mod.f90 2017-09-18 22:53:48 UTC (rev 11937)
+++ DART/branches/coamps/assimilation_code/location/threed_sphere/location_mod.f90 2017-09-18 23:42:17 UTC (rev 11938)
@@ -1095,7 +1095,7 @@
case ("SCALE_HEIGHT")
is_vertical = (VERTISSCALEHEIGHT == loc%which_vert)
case default
- write(msgstring, *) 'unrecognized key for vertical type: ', which_vert
+ write(msgstring, *) 'unrecognized key for vertical type: ', which_vert, loc%which_vert
call error_handler(E_ERR, 'is_vertical', msgstring, source, revision, revdate)
end select
Modified: DART/branches/coamps/assimilation_code/modules/assimilation/assim_tools_mod.f90
===================================================================
--- DART/branches/coamps/assimilation_code/modules/assimilation/assim_tools_mod.f90 2017-09-18 22:53:48 UTC (rev 11937)
+++ DART/branches/coamps/assimilation_code/modules/assimilation/assim_tools_mod.f90 2017-09-18 23:42:17 UTC (rev 11938)
@@ -102,7 +102,7 @@
! (make it a local variable so we don't keep making subroutine calls)
logical :: is_doing_vertical_conversion = .false.
-character(len = 255) :: msgstring, msgstring2, msgstring3
+character(len=512) :: msgstring, msgstring2, msgstring3
! Need to read in table for off-line based sampling correction and store it
integer :: sec_table_size
Modified: DART/branches/coamps/assimilation_code/modules/utilities/netcdf_utilities_mod.f90
===================================================================
--- DART/branches/coamps/assimilation_code/modules/utilities/netcdf_utilities_mod.f90 2017-09-18 22:53:48 UTC (rev 11937)
+++ DART/branches/coamps/assimilation_code/modules/utilities/netcdf_utilities_mod.f90 2017-09-18 23:42:17 UTC (rev 11938)
@@ -853,7 +853,7 @@
!> Optionally returns the type of variable, the number of dimensions,
!> the dimension names and lengths, the number of attributes (but not the attribute values (yet))
-subroutine nc_get_variable_info(ncid, varname, xtype, ndims, dimlens, dimnames, nAtts, &
+subroutine nc_get_variable_info(ncid, varname, xtype, ndims, dimlens, dimnames, natts, &
context, filename)
integer, intent(in) :: ncid
@@ -862,11 +862,11 @@
integer, intent(out), optional :: ndims
integer, intent(out), optional :: dimlens(:)
character(len=*), intent(out), optional :: dimnames(:)
-integer, intent(out), optional :: nAtts
+integer, intent(out), optional :: natts
character(len=*), intent(in) , optional :: context
character(len=*), intent(in) , optional :: filename
-character(len=*), parameter :: routine = 'nc_get_variable_shape'
+character(len=*), parameter :: routine = 'nc_get_variable_info'
integer :: ret, varid, dimid, ii
integer :: myxtype
@@ -873,21 +873,22 @@
integer :: myndims
integer :: mydimids(NF90_MAX_VAR_DIMS)
integer :: mydimlens(NF90_MAX_VAR_DIMS)
-integer :: mynAtts
+integer :: mynatts
character(len=NF90_MAX_NAME) :: mydimnames(NF90_MAX_VAR_DIMS)
+
ret = nf90_inq_varid(ncid, varname, varid)
call nc_check(ret, routine, 'inq_varid for '//trim(varname), context, filename)
ret = nf90_inquire_variable(ncid, varid, xtype=myxtype, ndims=myndims, &
- dimids=mydimids, nAtts=mynAtts)
+ dimids=mydimids, natts=mynatts)
call nc_check(ret, routine, 'inquire_variable for '//trim(varname), context, filename)
if (present(dimlens) .or. present(dimnames)) then ! more work to do
!>@todo do we want to make sure dimlens, dimnames are long enough
- dimlens = 0
- dimnames = ''
+ if (present(dimlens)) dimlens = 0
+ if (present(dimnames)) dimnames = 'null'
do ii = 1,myndims
@@ -902,7 +903,7 @@
if (present( xtype)) xtype = myxtype
if (present( ndims)) ndims = myndims
-if (present( nAtts)) nAtts = mynAtts
+if (present( natts)) natts = mynatts
if (present( dimlens)) dimlens(1:ndims) = mydimlens(1:ndims)
if (present(dimnames)) dimnames(1:ndims) = mydimnames(1:ndims)
Modified: DART/branches/coamps/models/coamps_nest/coamps_interp_mod.f90
===================================================================
--- DART/branches/coamps/models/coamps_nest/coamps_interp_mod.f90 2017-09-18 22:53:48 UTC (rev 11937)
+++ DART/branches/coamps/models/coamps_nest/coamps_interp_mod.f90 2017-09-18 23:42:17 UTC (rev 11938)
@@ -322,18 +322,22 @@
case default
+ is_success = .true. ! unless proven otherwise
More information about the Dart-dev
mailing list