[Dart-dev] DART/branches Revision: 12377
dart at ucar.edu
dart at ucar.edu
Wed Jan 24 16:50:08 MST 2018
hendric at ucar.edu
2018-01-24 16:50:07 -0700 (Wed, 24 Jan 2018)
37
same change goes for the model_mod
Modified: DART/branches/recam/models/cam-fv/model_mod.f90
===================================================================
--- DART/branches/recam/models/cam-fv/model_mod.f90 2018-01-24 23:49:11 UTC (rev 12376)
+++ DART/branches/recam/models/cam-fv/model_mod.f90 2018-01-24 23:50:07 UTC (rev 12377)
@@ -238,7 +238,7 @@
! Precompute pressure -> height map once based on 1010mb surface pressure.
! Used only to discard obs on heights above the user-defined top threshold.
-integer, parameter :: generic_nlevels = 17
+integer, parameter :: generic_nlevels = 35
real(r8), allocatable :: generic_height_column(:)
real(r8), allocatable :: generic_pressure_column(:)
@@ -319,7 +319,6 @@
call init_discard_high_obs()
endif
-
end subroutine static_init_model
@@ -647,7 +646,7 @@
my_status(:) = 99
select case (obs_quantity)
- case (QTY_PRESSURE, QTY_GEOMETRIC_HEIGHT)
+ case (QTY_PRESSURE)
if (obs_quantity == QTY_PRESSURE) then
call cam_pressure_levels(ens_handle, ens_size, &
lon_index, lat_index, grid_data%lev%nsize, &
@@ -778,6 +777,8 @@
call get_quad_vals(state_handle, ens_size, varid, obs_qty, four_lons, four_lats, &
lon_lat_vert, which_vert, quad_vals, status_array)
+print*, 'STATUS GET QUADS', status_array
+
!>@todo FIXME : Here we are failing if any ensemble member fails. Instead
!> we should be using track status...
if (any(status_array /= 0)) then
@@ -789,6 +790,8 @@
call quad_lon_lat_evaluate(interp_handle, lon_fract, lat_fract, ens_size, &
quad_vals, interp_vals, status_array)
+print*, 'STATUS MI EVAL', status_array(1)
+
! print*, 'lon_ind_below ', four_lons(1)
! print*, 'lon_ind_above ', four_lons(2)
! print*, 'lat_ind_below ', four_lats(2)
@@ -847,6 +850,7 @@
call quad_lon_lat_locate(interp_handle, lon_lat_vert(1), lon_lat_vert(2), &
four_lons, four_lats, lon_fract, lat_fract, istatus(1))
+print*, 'STATUS ARRAY IV', istatus(1)
if (istatus(1) /= 0) then
istatus(:) = 3 ! cannot locate enclosing horizontal quad
return
@@ -854,10 +858,12 @@
call get_quad_vals(state_handle, ens_size, varid, obs_qty, four_lons, four_lats, &
lon_lat_vert, which_vert, quad_vals, istatus)
+print*, 'ISTATUS VALS', istatus
if (any(istatus /= 0)) return
call quad_lon_lat_evaluate(interp_handle, lon_fract, lat_fract, ens_size, &
quad_vals, interp_vals, istatus)
+print*, 'ISTATUS EVAL', istatus
if (any(istatus /= 0)) then
istatus(:) = 8 ! cannot evaluate in the quad
return
@@ -876,11 +882,11 @@
integer :: bot_lev, top_lev
real(r8) :: fract, this_pressure
-
-
! assume ok to begin with
my_status = 0
+print*, 'which_vert, vert_value', which_vert, vert_value
+
! obs with a vertical type of pressure:
! lower pressures are higher; watch the less than/greater than tests
! note that this returns here no matter what the vert value is;
@@ -1124,11 +1130,11 @@
select case (obs_quantity)
case (QTY_SURFACE_ELEVATION)
get_dims_from_qty = 2
- case (QTY_PRESSURE)
+ case (QTY_PRESSURE, QTY_GEOMETRIC_HEIGHT)
get_dims_from_qty = 3
case default
- write(string1, *) 'we can not interpolate qty', obs_quantity, &
- ' if the dimension is not known'
+ write(string1, *) 'we can not interpolate qty "', get_name_for_quantity(obs_quantity), &
+ '" if the dimension is not known'
call error_handler(E_ERR,routine, string1,source,revision,revdate)
end select
endif
@@ -1353,7 +1359,7 @@
if (debug_level > 100) then
do k = 1,ens_size
More information about the Dart-dev
mailing list