[Dart-dev] DART/branches Revision: 12258

dart at ucar.edu dart at ucar.edu
Wed Jan 3 11:15:32 MST 2018


nancy at ucar.edu
2018-01-03 11:15:32 -0700 (Wed, 03 Jan 2018)
332
separate out the model_interpolate() code which now supports
excluding pressure obs that are too high.  still need to add
convert code for height/level obs to convert to pressure first.

still missing the get_close routines with damping at the top
levels.  have the code from the original cam code, need to
integrate it into here.




Modified: DART/branches/recam/models/cam-fv/model_mod.f90
===================================================================
--- DART/branches/recam/models/cam-fv/model_mod.f90	2018-01-03 18:04:25 UTC (rev 12257)
+++ DART/branches/recam/models/cam-fv/model_mod.f90	2018-01-03 18:15:32 UTC (rev 12258)
@@ -1,4 +1,4 @@
-!-1nlevels - 1 DART software - Copyright UCAR. This open source software is provided
+! DART software - Copyright UCAR. This open source software is provided
 ! by ucar, "as is", without charge, subject to all terms of use at
 ! http://www.image.ucar.edu/dares/dart/dart_download
 !
@@ -20,7 +20,8 @@
                                    get_location,get_close_obs, get_close_state, & 
                                    VERTISUNDEF, VERTISSURFACE, VERTISLEVEL, &
                                    VERTISPRESSURE, VERTISHEIGHT, &
-                                   VERTISSCALEHEIGHT, query_location
+                                   VERTISSCALEHEIGHT, query_location, &
+                                   set_vertical_localization_coord
 use         utilities_mod,  only : find_namelist_in_file, check_namelist_read, &
                                    string_to_logical, string_to_real,& 
                                    logfileunit, do_nml_file, do_nml_term, &
@@ -82,8 +83,8 @@
           adv_1step,                     &
           init_time,                     &
           init_conditions,               & 
-          convert_vertical_obs,          & ! todo
-          convert_vertical_state,        & ! doing
+          convert_vertical_obs,          & 
+          convert_vertical_state,        & 
           get_close_obs,                 & ! todo
           get_close_state                  ! todo
 
@@ -104,8 +105,8 @@
 integer            :: assimilation_period_days        = 0
 integer            :: assimilation_period_seconds     = 21600
 logical            :: use_log_vertical_scale          = .false.
-integer            :: no_assim_above_this_model_level = 4
-logical            :: use_damping_ramp_at_model_top   = .false.  
+integer            :: no_assim_above_pressure         = -1.0      ! in pascals or mb/hPa?
+logical            :: start_damping_ramp_at_pressure  = .false.  
 integer            :: debug_level                     = 0
 logical            :: suppress_grid_info_in_output    = .false.
 logical            :: custom_routine_to_generate_ensemble = .false.
@@ -134,8 +135,8 @@
    state_variables,                 &
    assimilation_period_days,        &
    assimilation_period_seconds,     &
-   no_assim_above_this_model_level, &
-   use_damping_ramp_at_model_top,   &
+   no_assim_above_pressure,         &
+   start_damping_ramp_at_pressure,  &
    suppress_grid_info_in_output,    &
    custom_routine_to_generate_ensemble, &
    fields_to_perturb,               &
@@ -150,10 +151,6 @@
 ! info and is require for getting state variables.
 integer :: domain_id
 
-! this one must match the threed_sphere codes for VERTISxx
-! default to pressure (2)
-integer :: vert_local_coord = VERTISPRESSURE
-
 !> Everything needed to describe a variable. Basically all the metadata from
 !> a netCDF file is stored here as well as all the information about where
 !> the variable is stored in the DART state vector.
@@ -216,7 +213,7 @@
 !> Called to do one time initialization of the model.
 !> In this case, it reads in the grid information, the namelist
 !> containing the variables of interest, where to get them, their size,
-!> their associated DART KIND, etc.
+!> their associated DART Quantity, etc.
 !>
 !> In addition to harvesting the model metadata (grid,
 !> desired model advance step, etc.), it also fills a structure
@@ -255,25 +252,31 @@
 
 call read_grid_info(cam_template_filename, grid_data)
 
-!>@todo do we need to map_qtys here?
-!>@todo do we need to set the model top related stuff here?
-
-! set_cam_variable_info() fills var_names, kind_list, clamp_vals, update_list
-! from the &model_mod_nml state_variables
-
+! parse var_names, kind_list, clamp_vals, update_list
+! from the &model_mod_nml state_variables namelist item
+! and call add_domain() to tell DART how to read in 
+! variables from the input netcdf file to fill the state.
+! (this happens after static_init_model() returns.)
 call set_cam_variable_info(state_variables, nfields)
 
-! convert from string to integer
-call set_vert_localization(vertical_localization_coord, vert_local_coord)
+!> convert from string in namelist to integer (e.g. VERTISxxx)
+!> and tell the dart code which vertical type we want to localize in.
+call set_vert_localization(vertical_localization_coord)
 
 ! if you are going to have chemistry variables in the model state, set
 ! this namelist variable so we can initialize the proper tables
 if (using_chemistry) call init_chem_tables()
 
-if (use_damping_ramp_at_model_top) then


More information about the Dart-dev mailing list