[Dart-dev] DART/branches Revision: 12045
dart at ucar.edu
dart at ucar.edu
Fri Nov 3 17:02:38 MDT 2017
thoar at ucar.edu
2017-11-03 17:02:37 -0600 (Fri, 03 Nov 2017)
78
The 3d ones are tested and complete.
The 1D,2D units are close but not done.
Modified: DART/branches/mmc/models/model_mod_tools/test_interpolate_oned.f90
===================================================================
--- DART/branches/mmc/models/model_mod_tools/test_interpolate_oned.f90 2017-11-03 22:37:49 UTC (rev 12044)
+++ DART/branches/mmc/models/model_mod_tools/test_interpolate_oned.f90 2017-11-03 23:02:37 UTC (rev 12045)
@@ -18,19 +18,21 @@
nc_check, E_MSG, open_file, close_file, do_output
use location_mod, only : location_type, set_location, write_location, &
- get_dist
+ get_dist, get_location, LocationDims
use obs_kind_mod, only : get_name_for_quantity
use ensemble_manager_mod, only : ensemble_type
-use model_mod, only : model_interpolate
+use model_mod, only : get_model_size, &
+ get_state_meta_data, &
+ model_interpolate
use netcdf
implicit none
-public :: test_interpolate_range, test_interpolate_single
+public :: test_interpolate_range, test_interpolate_single, find_closest_gridpoint
! version controlled file description for error handling, do not edit
character(len=256), parameter :: source = &
@@ -38,11 +40,18 @@
character(len=32 ), parameter :: revision = "$Revision$"
character(len=128), parameter :: revdate = "$Date$"
+! for messages
+character(len=512) :: string1, string2, string3
+
contains
+
!-------------------------------------------------------------------------------
-! Do a interpolation on a range of x values. Returns the number of failures.
-!-------------------------------------------------------------------------------
+!> Interpolate over a range of x values.
+!> Returns the number of failures.
+!> Exercises model_mod:model_interpolate().
+!> This will result in a netCDF file with all salient metadata.
+
function test_interpolate_range( ens_handle, &
ens_size, &
interp_test_dx, &
@@ -55,6 +64,10 @@
mykindindex, &
verbose )
+! The arguments to this function must be the same across all types of location dimensions.
+! Consequently, there are some unused variables. Could make them optional, but this is only
+! a test.
+
type(ensemble_type) , intent(inout) :: ens_handle
integer , intent(in) :: ens_size
real(r8) , intent(in) :: interp_test_dx
@@ -61,20 +74,19 @@
real(r8) , intent(in) :: interp_test_dy
real(r8) , intent(in) :: interp_test_dz
character(len=*) , intent(in) :: interp_test_vertcoord
+real(r8), dimension(2), intent(in) :: interp_test_xrange
real(r8), dimension(2), intent(in) :: interp_test_yrange
-real(r8), dimension(2), intent(in) :: interp_test_xrange
real(r8), dimension(2), intent(in) :: interp_test_zrange
integer , intent(in) :: mykindindex
logical , intent(in) :: verbose
-! function to exercise the model_mod:model_interpolate() function
-! This will result in a netCDF file with all salient metadata
integer :: test_interpolate_range
+! Local variables
+
+character(len=*), parameter :: routine = 'test_interpolate_range'
character(len=metadatalength) :: kind_of_interest
-! Local variables
-
real(r8), allocatable :: X(:)
real(r8), allocatable :: field(:,:)
integer :: nx
@@ -91,8 +103,6 @@
character(len=256) :: output_file = 'check_me'
-! for message strings
-character(len=512) :: string1, string2
character(len=32) :: field_name
type(location_type) :: loc
@@ -127,16 +137,15 @@
if (any(ios_out /= 0)) then
if (verbose) then
write(string2,'(''i,X'',1(1x,i6),1(1x,f14.6))') &
- i,X(i)
+ i,X(i)
More information about the Dart-dev
mailing list