[Dart-dev] DART/branches Revision: 12378
dart at ucar.edu
dart at ucar.edu
Thu Jan 25 11:12:40 MST 2018
nancy at ucar.edu
2018-01-25 11:12:39 -0700 (Thu, 25 Jan 2018)
161
warning - lots of debug statements. looks like we can't
do the conversion between geopotential and geometric heights
correctly - overflows to negative values.
Modified: DART/branches/recam/models/cam-fv/model_mod.f90
===================================================================
--- DART/branches/recam/models/cam-fv/model_mod.f90 2018-01-24 23:50:07 UTC (rev 12377)
+++ DART/branches/recam/models/cam-fv/model_mod.f90 2018-01-25 18:12:39 UTC (rev 12378)
@@ -777,7 +777,7 @@
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
+!print*, 'STATUS GET QUADS', status_array
!>@todo FIXME : Here we are failing if any ensemble member fails. Instead
!> we should be using track status...
@@ -790,7 +790,7 @@
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*, 'STATUS MI EVAL', status_array(1)
! print*, 'lon_ind_below ', four_lons(1)
! print*, 'lon_ind_above ', four_lons(2)
@@ -850,7 +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)
+!print*, 'STATUS ARRAY IV', istatus(1)
if (istatus(1) /= 0) then
istatus(:) = 3 ! cannot locate enclosing horizontal quad
return
@@ -858,12 +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
+!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
+!print*, 'ISTATUS EVAL', istatus
if (any(istatus /= 0)) then
istatus(:) = 8 ! cannot evaluate in the quad
return
@@ -885,7 +885,7 @@
! assume ok to begin with
my_status = 0
-print*, 'which_vert, vert_value', which_vert, vert_value
+!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
@@ -1350,16 +1350,23 @@
height_array, my_status)
if (any(my_status /= 0)) return !>@todo FIXME let successful members continue?
+ if (debug_level > 100) then
+ do k = 1,nlevels
+ print*, 'ISHEIGHT: ', k, height_array(k,1)
+ enddo
+ endif
+
do imember=1, ens_size
call height_to_level(nlevels, height_array(:, imember), vert_val, &
bot_levs(imember), top_levs(imember), vert_fracts(imember), &
my_status(imember))
enddo
+ if (any(my_status /= 0)) return !>@todo FIXME let successful members continue?
if (debug_level > 100) then
do k = 1,ens_size
- print*, 'ISHEIGHT bot_levs(k), top_levs(k), vert_fracts(k)', &
- k, bot_levs(k), top_levs(k), vert_fracts(k), height_array(k,1)
+ print*, 'ISHEIGHT ens#, bot_levs(#), top_levs(#), vert_fracts(#), top/bot height(#)', &
+ k, bot_levs(k), top_levs(k), vert_fracts(k), height_array(1,k), height_array(nlevels, k)
enddo
endif
@@ -1438,7 +1445,7 @@
call get_quad_values(1, lon_index, lat_index, QTY_SURFACE_ELEVATION, qty, surface_elevation)
! DEBUG
-!print*, 'lon lat surf elev ', lon_index, lat_index, surface_elevation
+print*, 'lon lat surf elev ', lon_index, lat_index, surface_elevation
call compute_virtual_temperature(ens_handle, ens_size, lon_index, lat_index, nlevels, qty, tv, status1)
@@ -1462,11 +1469,15 @@
! compute the height columns for each ensemble member
do imember = 1, ens_size
call build_heights(nlevels, surface_pressure(imember), surface_elevation(1), &
- tv(:, imember), height_array(:, imember), mbar=mbar)
+ tv(:, imember), height_array(:, imember), mbar=mbar(:, imember))
enddo
-do k = 1, nlevels
- print*, 'height(level)', k, height_array(k, 1)
+
More information about the Dart-dev
mailing list