[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