[Dart-dev] DART/branches Revision: 12698

dart at ucar.edu dart at ucar.edu
Fri Jun 29 09:54:31 MDT 2018


nancy at ucar.edu
2018-06-29 09:54:31 -0600 (Fri, 29 Jun 2018)
607
fix a bug in the 'no normalized scale height' for
surface obs.  

change how you specify the top ramp to use model
levels instead of pressure, and only specify the
top of the ramp.  the bottom will be computed
based on the cutoff distance.  this will result in
different specific observation increments but the
hope is that overall the results are the same or better.

change the names (only) of the global_xxx variables
to be ref_xxx because they're the reference values.

i've only done simple tests on these - i'm committing
the code now so i can move to cheyenne for larger and
more complicated tests.




Modified: DART/branches/recam/models/cam-fv/model_mod.f90
===================================================================
--- DART/branches/recam/models/cam-fv/model_mod.f90	2018-06-29 15:50:35 UTC (rev 12697)
+++ DART/branches/recam/models/cam-fv/model_mod.f90	2018-06-29 15:54:31 UTC (rev 12698)
@@ -11,42 +11,15 @@
 !>
 !----------------------------------------------------------------
 !>@todo FIXME: consistent directions for interpolation/fractions
-!>  still to change: we should always pass top level first, then bottom level.
+!>
+!>  still to verify: we should always pass top level first, then bottom level.
 !>  fraction should be computed and interpreted as 0 = top, 1 = bottom.
 !>  in the code below, there are !x! marks on some lines.  the meanings are:
-!>   !$! - where top and bottom need to be swapped in call or subroutine
-!>         interfaces.
+!>   !$! - where top and bottom might need to be swapped in call or 
+!>         subroutine interfaces.
 !>   !*! - where fraction is used and may need the sense to be switched 
 !>         (may be using 1 = top and 0 = bottom)
 !>
-!>@todo FIXME: feedback from WACCM-X meeting
-!>
-!>  test if the constants can be used from types_mod.f90 instead of
-!>  having gravity and r redefined here?  PROBABLY NOT - every model
-!   uses a slightly different value so what would we put in types?
-!>
-!>  test with identity obs to make sure get_close_xx() doesn't need
-!>  special code to handle them.
-!>
-!>@todo FIXME: feedback from ramping meeting
-!>
-!>  add a top of ramp namelist item (impact is supposed to go to 0
-!>  before it gets to the model top).  look at making the namelist
-!>  items specified in model levels and not pressures.
-!>
-!>  added a get_maxdist() call to the locations modules to get the
-!>  2*cutoff distance (that's what's stored) which can vary by obs type.
-!>  compute the ramp based on the real cutoff value instead of having
-!>  to guess.
-!>
-!>  don't allow a top ramp if horizontal distance only is set.  in that
-!>  case the vertical normalization factors aren't used and could be 
-!>  set to inappropriate values and it would only mess up the ramp.
-!>  just don't allow this combination.  it's odd anyway.
-!>
-!>  we don't have a good way to ramp obs with "vert is undefined"
-!>  so they'll get to impact the whole column.
-!>
 !----------------------------------------------------------------
 
 module model_mod
@@ -149,18 +122,15 @@
 
 ! model_nml namelist variables and default values
 character(len=256) :: cam_template_filename           = 'caminput.nc'
-character(len=256) :: cam_phis_filename               = 'camphis.nc'
+character(len=256) :: cam_phis_filename               = 'cam_phis.nc'
 character(len=32)  :: vertical_localization_coord     = 'PRESSURE'
+logical            :: use_log_vertical_scale          = .false.
 integer            :: assimilation_period_days        = 0
 integer            :: assimilation_period_seconds     = 21600
-logical            :: use_log_vertical_scale          = .false.
-! could name this 'no_obs_assim_above_pressure', or could 
-! also specify this in model levels?
-real(r8)           :: no_assim_above_pressure         = -1.0      ! in pascals 
-real(r8)           :: start_damping_ramp_at_pressure  = -1.0      ! currently pascals
-! proposed:
-!real(r8)           :: damping_ramp_bottom_at_level  = -1          ! model levels
-!real(r8)           :: damping_ramp_top_at_level     = -1          ! model levels
+! proposed changes:
+integer            :: no_obs_assim_above_level       = -1      ! model levels
+integer            :: model_damping_ends_at_level    = -1      ! model levels
+! end proposed changes
 integer            :: debug_level                     = 0
 logical            :: suppress_grid_info_in_output    = .false.
 logical            :: custom_routine_to_generate_ensemble = .true.
@@ -191,22 +161,22 @@
                                                    num_state_table_columns ) = ' '
 
 namelist /model_nml/  &
-   cam_template_filename,           &
-   cam_phis_filename,               &
-   vertical_localization_coord,     &
-   state_variables,                 &
-   assimilation_period_days,        &
-   assimilation_period_seconds,     &
-   use_log_vertical_scale,          &
-   no_assim_above_pressure,         & 
-   start_damping_ramp_at_pressure,  &
-   suppress_grid_info_in_output,    &
+   cam_template_filename,               &
+   cam_phis_filename,                   &
+   vertical_localization_coord,         &
+   state_variables,                     &
+   assimilation_period_days,            &
+   assimilation_period_seconds,         &
+   use_log_vertical_scale,              &
+   no_obs_assim_above_level,            & 
+   model_damping_ends_at_level,         &
+   suppress_grid_info_in_output,        &
    custom_routine_to_generate_ensemble, &


More information about the Dart-dev mailing list