[Dart-dev] DART/branches Revision: 12153
dart at ucar.edu
dart at ucar.edu
Thu Nov 30 15:28:00 MST 2017
hendric at ucar.edu
2017-11-30 15:28:00 -0700 (Thu, 30 Nov 2017)
130
the order of the quad cells was in the wrong order
for horizontal interpolate, and fixed bug with qty_type
in get_state_metadata
Modified: DART/branches/recam/models/cam-fv/model_mod.f90
===================================================================
--- DART/branches/recam/models/cam-fv/model_mod.f90 2017-11-30 18:24:07 UTC (rev 12152)
+++ DART/branches/recam/models/cam-fv/model_mod.f90 2017-11-30 22:28:00 UTC (rev 12153)
@@ -30,7 +30,8 @@
register_module, error_handler, &
file_exist, to_upper, E_ERR, E_MSG
use obs_kind_mod, only : QTY_SURFACE_ELEVATION, QTY_PRESSURE, &
- QTY_GEOMETRIC_HEIGHT, QTY_VERTLEVEL, QTY_SURFACE_PRESSURE, &
+ QTY_GEOMETRIC_HEIGHT, QTY_VERTLEVEL, &
+ QTY_SURFACE_PRESSURE, &
QTY_TEMPERATURE, QTY_SPECIFIC_HUMIDITY, &
get_index_for_quantity, get_num_quantities
!#! use mpi_utilities_mod
@@ -308,7 +309,7 @@
myqty = get_kind_index(domain_id, myvarid)
-location = get_location_from_index(iloc, jloc, vloc, myvarid)
+location = get_location_from_index(iloc, jloc, vloc, myqty)
! return state quantity for this index if requested
if (present(var_type)) var_type = myqty
@@ -450,6 +451,7 @@
my_status(:) = 0
case default
+ !>@todo FIXME
print*, 'should not go here'
end select
@@ -629,12 +631,14 @@
do icorner=1, 4
call get_values_from_varid(state_handle, ens_size, &
four_lons(icorner), four_lats(icorner), &
- four_bot_levs(icorner, :), varid, botvals, status_array)
+ four_bot_levs(icorner, :), varid, botvals, &
+ status_array)
+
if (any(status_array /= 0)) then
istatus(:) = 5 ! cannot retrieve bottom values
return
endif
-
+
call get_values_from_varid(state_handle, ens_size, &
four_lons(icorner), four_lats(icorner), &
four_top_levs(icorner, :), varid, topvals, status_array)
@@ -645,7 +649,7 @@
call vert_interp(ens_size, botvals, topvals, four_vert_fracts(icorner, :), &
quad_vals(icorner, :), status_array)
-
+
if (any(status_array /= 0)) then
istatus(:) = 7 ! cannot do vertical interpolation
return
@@ -699,7 +703,6 @@
! do the horizontal interpolation for each ensemble member
call quad_lon_lat_evaluate(interp_handle, lon_fract, lat_fract, ens_size, &
quad_vals, interp_vals, status_array)
-
if (any(status_array /= 0)) then
istatus(:) = 8 ! cannot evaluate in the quad
return
@@ -837,8 +840,8 @@
four_lons(1) = lon_bot
four_lons(2) = lon_top
-four_lons(3) = lon_bot
-four_lons(4) = lon_top
+four_lons(3) = lon_top
+four_lons(4) = lon_bot
four_lats(1) = lat_bot
four_lats(2) = lat_bot
More information about the Dart-dev
mailing list