[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