[Dart-dev] [3748] DART/trunk/models/wrf: The small files associated
with a DART/ WRF regression test.
nancy at ucar.edu
nancy at ucar.edu
Fri Jan 30 15:19:20 MST 2009
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/dart-dev/attachments/20090130/e548f16f/attachment.html
-------------- next part --------------
Added: DART/trunk/models/wrf/regression/README
===================================================================
--- DART/trunk/models/wrf/regression/README (rev 0)
+++ DART/trunk/models/wrf/regression/README 2009-01-30 22:19:20 UTC (rev 3748)
@@ -0,0 +1,55 @@
+This is a WRF 2.2 regression test case, which can be used to test an initial setup as well.
+
+The domain is CONUS (the continental United States), 50 km resolution.
+
+The observation files are the standard prepbufr NCEP observations, from 2007/04/26.
+
+The initial condition and boundary files are compatible with WRF version 2.2.
+The DART model_mod works fine with WRF 3.0 as well, and if anyone would like to
+contribute 3.0 compatible ic and boundary files, we'd be happy to take them.
+
+There are enough files to run with up to 50 ensemble members.
+
+The smaller files are here in this directory.
+
+The large data files (observations, initial conditions and boundary files)
+are on the DART web server, at this http address:
+
+http://www.image.ucar.edu/pub/DART/WRF/regression/
+
+
+Input files you need to run the test:
+
+obs_seq.tar - 4 observation files
+
+wrfinput_d01_148403_0.tar - wrf input files for 50 ensemble members
+
+wrfbdy_148403_21600.tar - wrf boundary condition files
+wrfbdy_148403_43200.tar
+wrfbdy_148403_64800.tar
+wrfbdy_148404_0.tar
+
+input.nml - DART Fortran namelist
+namelist.input - WRF Fortran namelist
+
+
+Executables you will need to build from the DART/WRF distribution:
+
+dart_tf_wrf - translates from WRF netcdf files to DART restart, and back
+filter - the main DART assimilation program
+wakeup_filter - only needed if you must run WRF in parallel mode
+
+
+Shell scripts that come with the DART/WRF distribution:
+
+runme_filter - shell script that starts the job
+advance_model.csh - shell script that advances the WRF model
+
+
+Files which are there to validate your results:
+
+Posterior_Diag.nc
+Prior_Diag.nc
+regression_plots.tar.gz
+
+
Added: DART/trunk/models/wrf/regression/input.nml
===================================================================
--- DART/trunk/models/wrf/regression/input.nml (rev 0)
+++ DART/trunk/models/wrf/regression/input.nml 2009-01-30 22:19:20 UTC (rev 3748)
@@ -0,0 +1,326 @@
+&filter_nml
+ async = 2,
+ adv_ens_command = "./advance_model.csh",
+ ens_size = 50,
+ start_from_restart = .true.,
+ output_restart = .true.,
+ obs_sequence_in_name = "obs_seq.processed",
+ obs_sequence_out_name = "obs_seq.final",
+ restart_in_file_name = "filter_ic_old",
+ restart_out_file_name = "filter_ic_new",
+ init_time_days = -1,
+ init_time_seconds = -1,
+ first_obs_days = -1,
+ first_obs_seconds = -1,
+ last_obs_days = -1,
+ last_obs_seconds = -1,
+ num_output_state_members = 2,
+ num_output_obs_members = 0,
+ output_interval = 1,
+ num_groups = 1,
+ input_qc_threshold = 4.0,
+ outlier_threshold = 4.0,
+ output_forward_op_errors = .false.,
+ output_timestamps = .false.,
+ output_inflation = .true.,
+
+ inf_flavor = 2, 0,
+ inf_initial_from_restart = .false., .false.,
+ inf_sd_initial_from_restart = .false., .false.,
+ inf_output_restart = .true., .true.,
+ inf_deterministic = .true., .true.,
+ inf_in_file_name = 'prior_inf_ic_old', 'post_inf_ic_old',
+ inf_out_file_name = 'prior_inf_ic_new', 'post_inf_ic_new',
+ inf_diag_file_name = 'prior_inf_diag', 'post_inf_diag',
+ inf_initial = 1.00, 1.00,
+ inf_sd_initial = 0.60, 0.50,
+ inf_damping = 0.95, 1.00,
+ inf_lower_bound = 0.50, 1.0,
+ inf_upper_bound = 1000000.0, 1000000.0,
+ inf_sd_lower_bound = 0.60, 0.10
+/
+
+&ensemble_manager_nml
+ single_restart_file_in = .false.,
+ single_restart_file_out = .false. /
+
+&smoother_nml
+ num_lags = 0
+ start_from_restart = .false.
+ output_restart = .false.
+ restart_in_file_name = 'smoother_ics'
+ restart_out_file_name = 'smoother_restart' /
+
+&assim_tools_nml
+ filter_kind = 1,
+ cutoff = 0.16,
+ sort_obs_inc = .false.,
+ spread_restoration = .false.,
+ sampling_error_correction = .false.,
+ print_every_nth_obs = 1000,
+ adaptive_localization_threshold = -1 /
+
+&cov_cutoff_nml
+ select_localization = 1 /
+
+&assim_model_nml
+ write_binary_restart_files = .true. /
+
+&location_nml
+ horiz_dist_only = .false.,
+ vert_normalization_pressure = 187500.0
+ vert_normalization_height = 5000000.0,
+ vert_normalization_level = 2666.7,
+ approximate_distance = .false.,
+ nlon = 141,
+ nlat = 72 /
+
+# Notes for model_nml:
+# (1) vert_localization_coord must be one of:
+# 1 = model level
+# 2 = pressure
+# 3 = height
+
+&model_nml
+ output_state_vector = .false.,
+ num_moist_vars = 3,
+ num_domains = 1,
+ calendar_type = 3,
+ surf_obs = .true.,
+ soil_data = .false.,
+ h_diab = .false.,
+ assimilation_period_seconds = 21600,
+ adv_mod_command = "./wrf.exe",
+ vert_localization_coord = 2,
+ center_search_half_length = 400000.0,
+ center_spline_grid_scale = 10 /
+
+# adv_mod_command = "mpirun.lsf -np 4 wrf.exe",
+
+&utilities_nml
+ TERMLEVEL = 1,
+ logfilename = 'dart_log.out',
+ module_details = .false. /
+
+®_factor_nml
+ select_regression = 1,
+ input_reg_file = "time_mean_reg",
+ save_reg_diagnostics = .false.,
+ reg_diagnostics_file = 'reg_diagnostics' /
+
+&obs_sequence_nml
+ write_binary_obs_sequence = .false. /
+
+&preprocess_nml
+ input_obs_kind_mod_file = '../../../obs_kind/DEFAULT_obs_kind_mod.F90',
+ output_obs_kind_mod_file = '../../../obs_kind/obs_kind_mod.f90',
+ input_obs_def_mod_file = '../../../obs_def/DEFAULT_obs_def_mod.F90',
+ output_obs_def_mod_file = '../../../obs_def/obs_def_mod.f90',
+ input_files = '../../../obs_def/obs_def_reanalysis_bufr_mod.f90',
+ '../../../obs_def/obs_def_altimeter_mod.f90',
+ '../../../obs_def/obs_def_radar_mod.f90',
+ '../../../obs_def/obs_def_metar_mod.f90',
+ '../../../obs_def/obs_def_dew_point_mod.f90',
+ '../../../obs_def/obs_def_gps_mod.f90',
+ '../../../obs_def/obs_def_gts_mod.f90',
+ '../../../obs_def/obs_def_QuikSCAT_mod.f90',
+ '../../../obs_def/obs_def_vortex_mod.f90' /
+
+# assimilate_these_obs_types = 'LAND_SFC_PRESSURE'
+
+&obs_kind_nml
+ assimilate_these_obs_types = 'RADIOSONDE_TEMPERATURE',
+ 'RADIOSONDE_U_WIND_COMPONENT',
+ 'RADIOSONDE_V_WIND_COMPONENT',
+ 'RADIOSONDE_SURFACE_ALTIMETER',
+ 'RADIOSONDE_SPECIFIC_HUMIDITY',
+ 'LAND_SFC_U_WIND_COMPONENT',
+ 'LAND_SFC_V_WIND_COMPONENT',
+ 'LAND_SFC_TEMPERATURE',
+ 'LAND_SFC_SPECIFIC_HUMIDITY',
+ 'MARINE_SFC_U_WIND_COMPONENT',
+ 'MARINE_SFC_V_WIND_COMPONENT',
+ 'MARINE_SFC_TEMPERATURE',
+ 'MARINE_SFC_SPECIFIC_HUMIDITY' /
+
+# Notes for obs_def_radar_mod_nml:
+# (1) Reflectivity limit can be applied both to observations or state (forward operator).
+# (2) Default lowest_reflectivity values DART will use (if apply_reflectivity_limit = .true.)
+# is missing_r8. If you want to use the default, delete the line of respective
+# lowest_reflectivity.
+# (3) As it is not clear how to assimilate Z (for now), "convert_to_dbz" is reset to .true.
+# even if you set it to .false. here in the namelist.
+
+&obs_def_radar_mod_nml
+ convert_to_dbz = .true. ,
+ dbz_threshold = 0.001 ,
+ apply_ref_limit_to_obs = .false. ,
+ reflectivity_limit_obs = 0.0 ,
+ lowest_reflectivity_obs = 0.0 ,
+ apply_ref_limit_to_state = .false. ,
+ reflectivity_limit_state = 0.0 ,
+ lowest_reflectivity_state = 0.0 /
+
+# The times in the namelist for the obs_diag program are vectors
+# that follow the following sequence:
+# year month day hour minute second
+# max_num_bins can be used to specify a fixed number of bins,
+# in which case last_bin_center should be safely in the future.
+#
+# Acceptable latitudes range from [-90, 90]
+# Acceptable longitudes range from [ 0, 360]
+
+&obs_diag_nml
+ obs_sequence_name = 'obs_seq.final',
+ first_bin_center = 2007, 4, 26, 00, 0, 0 ,
+ last_bin_center = 2007, 4, 27, 00, 0, 0 ,
+ bin_separation = 0, 0, 0, 6, 0, 0 ,
+ bin_width = 0, 0, 0, 6, 0, 0 ,
+ time_to_skip = 0, 0, 0, 0, 0, 0 ,
+ max_num_bins = 1000,
+ Nregions = 1,
+ rat_cri = 5000.0,
+ lonlim1 = 0.0,
+ lonlim2 = 360.0,
+ latlim1 = -89.0,
+ latlim2 = 89.0,
+ reg_names = 'Full Domain',
+ print_mismatched_locs = .false.,
+ print_obs_locations = .false.,
+ verbose = .false. /
+
+&merge_obs_seq_nml
+ num_input_files = 2,
+ filename_seq = 'obs_seq.new_1', 'obs_seq.new_2'
+ filename_out = 'obs_seq.final' /
+
+&restart_file_utility_nml
+ input_file_name = "restart_file_input",
+ output_file_name = "restart_file_output",
+ ens_size = 1,
+ single_restart_file_in = .true.,
+ single_restart_file_out = .true.,
+ write_binary_restart_files = .true.,
+ overwrite_data_time = .false.,
+ new_data_days = -1,
+ new_data_secs = -1,
+ input_is_model_advance_file = .false.,
+ output_is_model_advance_file = .true.,
+ overwrite_advance_time = .true.,
+ new_advance_days = _RESTART_DAYS_,
+ new_advance_secs = _RESTART_SECONDS_
+/
+&obs_sequence_tool_nml
+ num_input_files = 2,
+ filename_seq = 'obs_seq2007042606','obs_seq2007042612',
+ filename_out = 'obs_seq.processed',
+ print_only = .false.,
+ first_obs_days = -1,
+ first_obs_seconds = -1,
+ last_obs_days = -1,
+ last_obs_seconds = -1,
+ min_lat = -90.0,
+ max_lat = 90.0,
+ min_lon = 0.0,
+ max_lon = 360.0,
+ gregorian_cal = .true.
+/
+
+! these have no defaults (or the defaults are missing_r8 which
+! cannot be represented in a namelist). here are examples
+! of their use:
+!
+! keep only observations with a DART QC of 0:
+! qc_metadata = 'Dart quality control',
+! min_qc = 0,
+! max_qc = 0,
+!
+! keep only radiosonde temp obs between 250 and 300 K:
+! copy_metadata = 'NCEP BUFR observation',
+! copy_type = 'RADIOSONDE_TEMPERATURE',
+! min_copy = 250.0,
+! max_copy = 300.0,
+!
+! keep only the U and V radiosonde winds:
+! obs_types = 'RADIOSONDE_U_WIND_COMPONENT',
+! 'RADIOSONDE_V_WIND_COMPONENT',
+! keep_types = .true.,
+!
+! remove the U and V radiosonde winds:
+! obs_types = 'RADIOSONDE_U_WIND_COMPONENT',
+! 'RADIOSONDE_V_WIND_COMPONENT',
+! keep_types = .false.,
+!
+
+&obs_sequence_nml
+ write_binary_obs_sequence = .false. /
+
+&obs_kind_nml
+ assimilate_these_obs_types = 'RADIOSONDE_TEMPERATURE',
+ 'RADIOSONDE_U_WIND_COMPONENT',
+ 'RADIOSONDE_V_WIND_COMPONENT',
+ evaluate_these_obs_types = 'RADIOSONDE_SURFACE_PRESSURE' /
+
+&cov_cutoff_nml
+ select_localization = 1 /
+
+&assim_model_nml
+ write_binary_restart_files = .true. /
+
+# Notes for model_nml:
+# (1) vert_localization_coord must be one of:
+# 1 = model level
+# 2 = pressure
+# 3 = height
+# (2) see below for explanations of polar, periodic_x,
+# periodic_y, and scm
+
+&model_nml
+ output_state_vector = .false.,
+ num_moist_vars = 3,
+ num_domains = 1,
+ calendar_type = 3,
+ surf_obs = .true.,
+ soil_data = .true.,
+ h_diab = .false.,
+ assimilation_period_seconds = 21600,
+ adv_mod_command = './wrf.exe',
+ allow_obs_below_vol = .false.,
+ vert_localization_coord = 3,
+ center_search_half_length = 500000.,
+ center_spline_grid_scale = 10,
+ polar = .false.,
+ periodic_x = .false.,
+ periodic_y = .false.,
+ scm = .false. /
+
+# polar and periodic_x are used in global wrf. if polar is true, the
+# grid interpolation routines will wrap over the north & south poles.
+# if periodic_x is true, when the east and west edges of the grid are
+# reached the interpolation will wrap. note this is a separate issue
+# from regional models which cross the GMT line; those grids are marked
+# as having a negative offset and do not need to wrap; this flag controls
+# what happens when the edges of the grid are reached.
+
+# the scm flag is used for the 'single column model' version of WRF.
+# it needs the periodic_x and periodic_y flags set to true, in which
+# case the X and Y directions are periodic; no collapsing of the grid
+# into a single location like the 3d-spherical polar flag implies.
+
+&location_nml
+ horiz_dist_only = .true.,
+ vert_normalization_pressure = 100000.0,
+ vert_normalization_height = 10000.0,
+ vert_normalization_level = 20.0,
+ approximate_distance = .false.,
+ nlon = 71,
+ nlat = 36,
+ output_box_info = .false. /
+
+&utilities_nml
+ TERMLEVEL = 1,
+ logfilename = 'dart_log.out',
+ nmlfilename = 'dart_log.nml',
+ module_details = .true.
+/
+
Added: DART/trunk/models/wrf/regression/namelist.input
===================================================================
--- DART/trunk/models/wrf/regression/namelist.input (rev 0)
+++ DART/trunk/models/wrf/regression/namelist.input 2009-01-30 22:19:20 UTC (rev 3748)
@@ -0,0 +1,107 @@
+ &time_control
+ run_days = 0,
+ run_hours = _FCST_,
+ run_minutes = 0,
+ run_seconds = 0,
+ start_year = 1*_START_YEAR_,
+ start_month = 1*_START_MONTH_,
+ start_day = 1*_START_DAY_,
+ start_hour = 1*_START_HOUR_,
+ start_minute = 1*00,
+ start_second = 1*00,
+ end_year = 1*_END_YEAR_,
+ end_month = 1*_END_MONTH_,
+ end_day = 1*_END_DAY_,
+ end_hour = 1*_END_HOUR_,
+ end_minute = 1*00,
+ end_second = 1*00,
+ interval_seconds = 21600
+ input_from_file = .true., .true., .false.,
+ history_interval = _HISTORY_INTERVAL_1_, _HISTORY_INTERVAL_2_, 60,
+ frames_per_outfile = 1, 1, 1,
+ restart = .false.,
+ restart_interval = 8000,
+ io_form_history = 2,
+ io_form_restart = 2,
+ io_form_input = 2,
+ io_form_boundary = 2,
+ debug_level = 0
+ /
+
+ &domains
+ time_step = 200,
+ time_step_fract_num = 0,
+ time_step_fract_den = 1,
+ max_dom = 1,
+ s_we = 1, 1, 1
+ e_we = 120, 103, 241,
+ s_sn = 1, 1, 1,
+ e_sn = 90, 88, 241,
+ s_vert = 1, 1, 1,
+ e_vert = 30, 30, 35,
+ dx = 50000, 45000, 4000,
+ dy = 50000, 45000, 4000,
+ grid_id = 1, 2, 3,
+ parent_id = 0, 1, 2,
+ i_parent_start = 0, 117, 61,
+ j_parent_start = 0, 28, 61,
+ parent_grid_ratio = 1, 3, 3,
+ parent_time_step_ratio = 1, 3, 3,
+ feedback = 1,
+ smooth_option = 0
+ /
+
+ &physics
+ mp_physics = 3, 3, 4,
+ ra_lw_physics = 1, 1, 1,
+ ra_sw_physics = 1, 1, 1,
+ radt = 30,15,15,
+ sf_sfclay_physics = 1, 1, 1,
+ sf_surface_physics = 1, 1, 1,
+ bl_pbl_physics = 1, 1, 1,
+ bldt = 0, 0, 0,
+ cu_physics = 1, 1, 0,
+ cudt = 0, 5, 0,
+ isfflx = 1,
+ ifsnow = 0,
+ icloud = 1,
+ mp_zero_out = 2,
+ mp_zero_out_thresh = 1.e-8,
+ surface_input_source = 1,
+ num_soil_layers = 5,
+ maxiens = 1,
+ maxens = 3,
+ maxens2 = 3,
+ maxens3 = 16,
+ ensdim = 144,
+ /
+
+ &fdda
+ /
+
+ &dynamics
+ w_damping = 1,
+ diff_opt = 1,
+ km_opt = 4,
+ damp_opt = 0,
+ zdamp = 5000., 5000., 5000.,
+ dampcoef = 0.2, 0.2, 0.2,
+ non_hydrostatic = .true., .true., .true.,
+ pd_moist = .false., .false., .false.,
+ /
+
+ &bdy_control
+ spec_bdy_width = 5,
+ spec_zone = 1,
+ relax_zone = 4,
+ specified = .true., .false., .false.,
+ nested = .false., .true., .true.,
+ /
+
+ &grib2
+ /
+
+ &namelist_quilt
+ nio_tasks_per_group = 0,
+ nio_groups = 1,
+ /
More information about the Dart-dev
mailing list