[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