Skip to content
Snippets Groups Projects
Select Git revision
  • 8b0ce6591edc0d989fca4d702085d0ea6f09f416
  • consistent_config default protected
2 results

input.nml

Blame
  • input.nml 19.65 KiB
    &perfect_model_obs_nml
       read_input_state_from_file = .true.
       single_file_in             = .false.
       input_state_files          = 'wrfout_d01'
       init_time_days             = -1
       init_time_seconds          = -1
    
       write_output_state_to_file = .false.
       single_file_out            = .false.
       output_state_files         = 'perfect_output_d01.nc'
       output_interval            = 1
    
       obs_seq_in_file_name       = "obs_seq.in"
       obs_seq_out_file_name      = "obs_seq.out"
       first_obs_days             = -1
       first_obs_seconds          = -1
       last_obs_days              = -1
       last_obs_seconds           = -1
    
       async                      = 0
       adv_ens_command            = "../shell_scripts/advance_model.csh"
    
       trace_execution            = .true.
       output_timestamps          = .false.
       print_every_nth_obs        = -1
       output_forward_op_errors   = .false.
       silence                    = .false.
       /
    
    &filter_nml
       async                    = 0,
       adv_ens_command          = "../shell_scripts/advance_model.csh",
       ens_size                 = <n_ens>,
       obs_sequence_in_name     = "obs_seq_all.out",
       obs_sequence_out_name    = "obs_seq.final",
       input_state_file_list    = "input_list.txt"
       output_state_file_list   = "output_list.txt"
       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 = <n_ens>,
       num_output_obs_members   = <n_ens>,
       output_interval          = 1,
       num_groups               = 1,
       distributed_state        = .true.
       compute_posterior        = .true.
       output_forward_op_errors = .false.,
       output_timestamps        = .false.,
       trace_execution          = .false.,
    
       stages_to_write          = 'preassim', 'output'
       output_members           = .true.
       output_mean              = .true.
       output_sd                = .true.
       write_all_stages_at_end  = .false.
    
       inf_flavor                  = 0,                      0,
       inf_initial_from_restart    = .true.,                 .false.,
       inf_sd_initial_from_restart = .true.,                 .false.,
       inf_initial                 = 1.0,                     1.00,
       inf_lower_bound             = 1.0,                     1.0,
       inf_upper_bound             = 1000000.0,               1000000.0,
       inf_damping                 = 0.9,                     1.0,
       inf_sd_initial              = 0.6,                     0.0,
       inf_sd_lower_bound          = 0.6,                     0.0,
       inf_sd_max_change           = 1.05,                    1.05,
       /
    
    &quality_control_nml
       input_qc_threshold          = 3.0,
       outlier_threshold           = 3.0,
       enable_special_outlier_code = .false.
       /
    
    &fill_inflation_restart_nml
       write_prior_inf = .false.
       prior_inf_mean  = 1.00
       prior_inf_sd    = 0.6
    
       write_post_inf  = .false.
       post_inf_mean   = 1.00
       post_inf_sd     = 0.6
    
       input_state_files = 'wrfinput_d01', 'wrfinput_d02'
       single_file       = .false.
       verbose           = .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',
       /
    
    # cutoff is in radians; for the earth, 0.05 is about 300 km.
    # cutoff is defined to be the half-width of the localization radius,
    # so 0.05 radians for cutoff is about an 600 km effective
    # localization radius, where the influence of an obs decreases
    # to ~half at 300 km, and ~0 at the edges of the area.
    &assim_tools_nml
       filter_kind                     = 1,
       cutoff                          = <cov_loc_radian>,
       sort_obs_inc                    = .false.,
       spread_restoration              = .false.,
       sampling_error_correction       = .true.,
       adaptive_localization_threshold = -1,
       output_localization_diagnostics = .false.,
       localization_diagnostics_file   = 'localization_diagnostics',
       convert_all_state_verticals_first = .true.
       convert_all_obs_verticals_first   = .true.
       print_every_nth_obs               = 0,
       /
    
    &cov_cutoff_nml
       select_localization = 1,
       /
    
    &obs_sequence_nml
       write_binary_obs_sequence = .false.,
       /
    
    &preprocess_nml
               overwrite_output = .true.,
        input_obs_kind_mod_file = '../../../assimilation_code/modules/observations/DEFAULT_obs_kind_mod.F90',
       output_obs_kind_mod_file = '../../../assimilation_code/modules/observations/obs_kind_mod.f90',
         input_obs_def_mod_file = '../../../observations/forward_operators/DEFAULT_obs_def_mod.F90',
        output_obs_def_mod_file = '../../../observations/forward_operators/obs_def_mod.f90',
       input_files              = '../../../observations/forward_operators/obs_def_reanalysis_bufr_mod.f90',
                                  '../../../observations/forward_operators/obs_def_radar_mod.f90',
                                  '../../../observations/forward_operators/obs_def_metar_mod.f90',
                                  '../../../observations/forward_operators/obs_def_dew_point_mod.f90',
                                  '../../../observations/forward_operators/obs_def_rel_humidity_mod.f90',
                                  '../../../observations/forward_operators/obs_def_altimeter_mod.f90',
                                  '../../../observations/forward_operators/obs_def_gps_mod.f90',
                                  '../../../observations/forward_operators/obs_def_vortex_mod.f90',
                                  '../../../observations/forward_operators/obs_def_gts_mod.f90',
                                  '../../../observations/forward_operators/obs_def_rttov_mod.f90',
       /
    
    &obs_kind_nml
       assimilate_these_obs_types = 'RADIOSONDE_TEMPERATURE',
                                    'RADIOSONDE_U_WIND_COMPONENT',
                                    'RADIOSONDE_V_WIND_COMPONENT',
                                    'SAT_U_WIND_COMPONENT',
                                    'SAT_V_WIND_COMPONENT',
                                    'AIRCRAFT_U_WIND_COMPONENT',
                                    'AIRCRAFT_V_WIND_COMPONENT',
                                    'AIRCRAFT_TEMPERATURE',
                                    'ACARS_U_WIND_COMPONENT',
                                    'ACARS_V_WIND_COMPONENT',
                                    'ACARS_TEMPERATURE',
                                    'GPSRO_REFRACTIVITY',
                                    'DOPPLER_RADIAL_VELOCITY',
    				'RADAR_REFLECTIVITY',
                                    'MSG_4_SEVIRI_RADIANCE',
    				'MSG_4_SEVIRI_TB',
    				'MSG_4_SEVIRI_BDRF'
       evaluate_these_obs_types   = 'RADIOSONDE_SPECIFIC_HUMIDITY',
       /
    
    # Notes for obs_def_radar_mod_nml:
    # (1) Reflectivity limit can be applied to observations and/or forward operator.
    # (2) The default constants below match the WRF defaults.  They will need to
    # be changed for other cases, depending on which microphysics scheme is used.
    #
    
    &obs_def_radar_mod_nml
       apply_ref_limit_to_obs      =   .false.,
       reflectivity_limit_obs      =  -10.0,
       lowest_reflectivity_obs     =  -10.0,
       apply_ref_limit_to_fwd_op   =   .false.,
       reflectivity_limit_fwd_op   =  -10.0,
       lowest_reflectivity_fwd_op  =  -10.0,
       max_radial_vel_obs          =   1000000,
       allow_wet_graupel           =   .false.,
       microphysics_type           =       5  ,
       allow_dbztowt_conv          =   .false.,
       dielectric_factor           =  0.224,
       n0_rain                     =  8.0e6,
       n0_graupel                  =  4.0e6,
       n0_snow                     =  3.0e6,
       rho_rain                    = 1000.0,
       rho_graupel                 =  400.0,
       rho_snow                    =  100.0,
       /
    
    
    # Notes for model_nml:
    # (1) vert_localization_coord must be one of:
    #     1 = model level
    #     2 = pressure
    #     3 = height
    #     4 = scale height
    
    # set default_state_variables to .false. to use the explicit list.
    # otherwise it uses a hardcoded default list: U, V, W, PH, T, MU, QV only.
    # see ../wrf_state_variables_table for a full list of what wrf fields are
    # supported in the DART state vector, and what settings should be used here.
    # 'UPDATE' and 'NO_COPY_BACK' are supported in the 4th column; 'NO_UPDATE' is
    # not yet supported.
    
    &model_nml
       default_state_variables = .false.,
       wrf_state_variables = 'U',     'QTY_U_WIND_COMPONENT',     'TYPE_U',    'UPDATE','999',
                             'V',     'QTY_V_WIND_COMPONENT',     'TYPE_V',    'UPDATE','999',
                             'W',     'QTY_VERTICAL_VELOCITY',    'TYPE_W',    'UPDATE','999',
                             'PH',    'QTY_GEOPOTENTIAL_HEIGHT',  'TYPE_GZ',   'UPDATE','999',
                             'T',     'QTY_POTENTIAL_TEMPERATURE','TYPE_T',    'UPDATE','999',
                             'MU',    'QTY_PRESSURE',             'TYPE_MU',   'UPDATE','999',
                             'QVAPOR','QTY_VAPOR_MIXING_RATIO',   'TYPE_QV',   'UPDATE','999',
                             'QICE',  'QTY_ICE_MIXING_RATIO',     'TYPE_QI',   'UPDATE','999',
                             'QCLOUD','QTY_CLOUDWATER_MIXING_RATIO','TYPE_QC', 'UPDATE','999',
                             'CLDFRA','QTY_CLOUD_FRACTION',       'TYPE_CFRAC','UPDATE','999',
                             'PSFC',  'QTY_SURFACE_PRESSURE',     'TYPE_PSFC', 'UPDATE','999',
                             'T2',    'QTY_2M_TEMPERATURE',       'TYPE_T',    'UPDATE','999',
                             'TSK',   'QTY_SKIN_TEMPERATURE',     'TYPE_T',    'UPDATE','999',
                             'REFL_10CM','QTY_RADAR_REFLECTIVITY','TYPE_REFL', 'UPDATE','999',
       wrf_state_bounds    = 'QVAPOR','0.0','NULL','CLAMP',
                             'QRAIN', '0.0','NULL','CLAMP',
                             'QCLOUD','0.0','NULL','CLAMP',
                             'QICE','0.0','NULL','CLAMP',
                             'CLDFRA','0.0','1.0','CLAMP',
       num_domains                 = 1,
       calendar_type               = 3,
       assimilation_period_seconds = 21600,
       vert_localization_coord     = 3,
       center_search_half_length   = 500000.,
       center_spline_grid_scale    = 10,
       sfc_elev_max_diff           = -1.0,
       circulation_pres_level      = 80000.0,
       circulation_radius          = 108000.0,
       allow_obs_below_vol         = .false.
       /
    
    # vert_normalization_X is amount of X equiv to 1 radian in horiz.
    # vert localization is 'cutoff' times the pressure/height/levels,
    # only if horiz_dist_only is set to .false. in the namelist below.
    # the default nlon/nlat should be good for most experiments. it sets 
    # an internal structure that speeds up searches.  don't change it
    # based on your grid size.  nlon must be an odd number.
    &location_nml
       horiz_dist_only             = .true.,
       vert_normalization_pressure = 6666666.7,
       vert_normalization_height   = 5000000.0,
       vert_normalization_level    = 2666.7,
       vert_normalization_scale_height = 10.0,
       approximate_distance        = .false.,
       nlon                        = 71,
       nlat                        = 36,
       output_box_info             = .false.,
       /
    
    &utilities_nml
       TERMLEVEL = 1,
       module_details = .false.,
       logfilename = 'dart_log.out',
       nmlfilename = 'dart_log.nml',
       write_nml   = 'file',
       /
    
    &mpi_utilities_nml
       /
    
    &reg_factor_nml
       select_regression    = 1,
       input_reg_file       = "time_mean_reg",
       save_reg_diagnostics = .true.,
       reg_diagnostics_file = "reg_diagnostics",
       /
    
    # layout = 2 spreads the IO tasks across the nodes.
    # This can greatly improve the performance in IO if
    # tasks_per_node is set to match your hardware
    &ensemble_manager_nml
       layout = 1,
       tasks_per_node = 48
       communication_configuration = 1
       debug                       = .true.
       /
    
    &obs_def_gps_nml
       max_gpsro_obs = 100000,
       / 
    
    &obs_def_tpw_nml
       /
    
    # 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, Inf]
    
    &obs_diag_nml
       obs_sequence_name  = '',
       obs_sequence_list  = 'obsdiag_inputlist.txt',
       first_bin_center   =  2008, 7,30,10, 0, 0 ,
       last_bin_center    =  2008, 7,30,18, 0, 0 ,
       bin_separation     =     0, 0, 0, 0,30, 0 ,
       bin_width          =     0, 0, 0, 0,30, 0 ,
       time_to_skip       =     0, 0, 0, 0, 0, 0 ,
       max_num_bins       = 1000,
       trusted_obs        = 'null',
       Nregions   = 1,
       lonlim1    =   0.0,   0.0,   0.0, 235.0,
       lonlim2    = 360.0, 360.0, 360.0, 295.0,
       latlim1    =  20.0, -80.0, -20.0,  25.0,
       latlim2    =  80.0, -20.0,  20.0,  55.0,
       reg_names  = 'all', 
       print_mismatched_locs = .false.,
       create_rank_histogram = .true.,
       outliers_in_histogram = .true.,
       use_zero_error_obs    = <zero_error_obs>,
       verbose               = .false.
       /
    
    &schedule_nml
       calendar        = 'Gregorian',  
       first_bin_start =  1601,  1,  1,  0,  0,  0,
       first_bin_end   =  2999,  1,  1,  0,  0,  0,
       last_bin_end    =  2999,  1,  1,  0,  0,  0,
       bin_interval_days    = 1000000,
       bin_interval_seconds = 0,   
       max_num_bins         = 1000,
       print_table          = .true.,
       /
       
    &obs_seq_to_netcdf_nml  
       obs_sequence_name = '',
       obs_sequence_list = 'obsdiag_inputlist.txt',
       append_to_netcdf  = .true.,
       lonlim1    =    0.0,
       lonlim2    =  360.0,
       latlim1    =  -90.0,
       latlim2    =   90.0,
       verbose    = .false.,
       /
    
    # There is one GIGANTIC difference between the obsdef_mask.txt and .nc
    # The netCDF file intentionally ignores the effect of nTmin/nTmax.
    # The netCDF file has ALL matching stations, regardless of temporal coverage.
    
    &obs_seq_coverage_nml
       obs_sequences     = ''
       obs_sequence_list = 'obs_coverage_list.txt'
       obs_of_interest   = 'METAR_U_10_METER_WIND'
       textfile_out      = 'METAR_U_10_METER_WIND_obsdef_mask.txt'
       netcdf_out        = 'METAR_U_10_METER_WIND_obsdef_mask.nc'
       first_analysis    =  2003, 1, 1, 0, 0, 0
       last_analysis     =  2003, 1, 2, 0, 0, 0
       forecast_length_days          = 1
       forecast_length_seconds       = 0
       verification_interval_seconds = 21600
       temporal_coverage_percent     = 100.0
       lonlim1    =    0.0
       lonlim2    =  360.0
       latlim1    =  -90.0
       latlim2    =   90.0
       verbose    = .true.
       /
    
    # selections_file is a list of obs_defs output
    # from the obs_seq_coverage utility.
    
    &obs_selection_nml
       filename_seq          = 'obs_seq.out', 
       filename_seq_list     = '', 
       filename_out          = 'obs_seq.processed', 
       selections_file       = 'obsdef_mask.txt', 
       selections_is_obs_seq = .false.,
       print_only            = .false., 
       calendar              = 'gregorian',
       /
    
    &obs_seq_verify_nml
       obs_sequences     = ''
       obs_sequence_list = 'obs_verify_list.txt'
       input_template    = 'obsdef_mask.nc'
       netcdf_out        = 'forecast.nc'
       obtype_string     = 'METAR_U_10_METER_WIND'
       print_every       = 10000
       verbose           = .true.
       debug             = .false.
       /
    
    &obs_sequence_tool_nml
       num_input_files   = 1, 
       filename_seq      = 'obs_seq.out',
       filename_out      = 'obs_seq.processed', 
       first_obs_days    = -1, 
       first_obs_seconds = -1, 
       last_obs_days     = -1, 
       last_obs_seconds  = -1, 
       obs_types         = '', 
       keep_types        = .false., 
       print_only        = .false., 
       min_lat           = -90.0, 
       max_lat           =  90.0, 
       min_lon           =   0.0, 
       max_lon           = 360.0,
       /
    
    &replace_wrf_fields_nml
       debug = .false.,
       fail_on_missing_field = .false.,
       fieldnames = "SNOWC",
                    "ALBBCK",
                    "TMN",
                    "TSK",
                    "SH2O",
                    "SMOIS",
                    "SEAICE",
                    "HGT_d01",
                    "TSLB",
                    "SST",
                    "SNOWH",
                    "SNOW",
       fieldlist_file = '',
       /
    
    &obs_common_subset_nml
       num_to_compare_at_once = 2,
       filename_seq           = 'obs_seq1.final', 'obs_seq2.final',
       filename_seq_list      = '',
       filename_out_suffix    = '.common' ,
       calendar               = 'Gregorian',
       print_every            = 1000,
       dart_qc_threshold      = 3,
       print_only             = .false.,
       /
    
    &wrf_dart_to_fields_nml
       include_slp             = .true.,
       include_wind_components = .true.,
       include_height_on_pres  = .true.,
       include_temperature     = .true.,
       include_rel_humidity    = .true.,
       include_surface_fields  = .false.,
       include_sat_ir_temp     = .false.,
       pres_levels             = 70000.,
       /
    
    &ncepobs_nml
       year = 2010,
       month = 06,
       day = 00,
       tot_days = 1,
       max_num = 1000000,
       ObsBase = 'temp_obs.',
       select_obs  = 0,
       ADPUPA = .false.,
       AIRCAR = .false.,
       AIRCFT = .false.,
       SATEMP = .false.,
       SFCSHP = .false.,
       ADPSFC = .false.,
       SATWND = .true.,
       obs_U  = .false.,
       obs_V  = .false.,
       obs_T  = .false.,
       obs_PS = .false.,
       obs_QV = .false.,
       daily_file = .true.,
       obs_time = .false.,
       lat1 = 10.00,
       lat2 = 60.00,
       lon1 = 210.0,
       lon2 = 300.0
       /
    
    &prep_bufr_nml
       obs_window_upa = 1.0,
       obs_window_air = 1.0,
       obs_window_cw = 1.0,
       otype_use      = 242.0, 243.0, 245.0, 246.0, 251.0, 252.0, 253.0, 257.0, 259.0
       qctype_use     = 0, 1, 2, 3, 4, 9, 15
       /
    
    &convert_cosmic_gps_nml
       gpsro_netcdf_file     = '',
       gpsro_netcdf_filelist = 'flist',
       gpsro_out_file        = 'obs_seq.gpsro',
       local_operator        = .true.,
       obs_levels            = 0.22, 0.55, 1.1, 1.8, 2.7, 3.7, 4.9,
                               6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0,
       ray_ds                = 5000.0,
       ray_htop              = 13000.1,
       /
    
    &wrf_obs_preproc_nml
    
       file_name_input          = 'obs_seq20110901'
       file_name_output         = 'obs_seq.europe.prev'
      
       overwrite_obs_time       = .false.  
      
       obs_boundary             = 0.0   
       increase_bdy_error       = .false.  
       maxobsfac                = 2.5   
       obsdistbdy               = 1.0  
      
       sfc_elevation_check      = .false.  
       sfc_elevation_tol        = 3000.0  
       obs_pressure_top         = 0.0  
       obs_height_top           = 2.0e10  
      
       include_sig_data         = .true.   
       tc_sonde_radii           = -1.0  
      
       superob_aircraft         = .true.  
       aircraft_horiz_int       = 800.0  
       aircraft_pres_int        = 25000.0  
      
       superob_sat_winds        = .true.    
       sat_wind_horiz_int       = 800.0   
       sat_wind_pres_int        = 25000.0  
      
       overwrite_ncep_satwnd_qc = .false.    
       overwrite_ncep_sfc_qc    = .false.  
       /
    
    !  sonde_extra              = 'obs_seq.rawin'
    !  land_sfc_extra           = 'obs_seq.land_sfc'
    !  metar_extra              = 'obs_seq.metar'
    !  marine_sfc_extra         = 'obs_seq.marine'
    !  sat_wind_extra           = 'obs_seq.satwnd'
    !  profiler_extra           = 'obs_seq.profiler'
    !  gpsro_extra              = 'obs_seq.gpsro'
    !  acars_extra              = 'obs_seq.acars'
    !  trop_cyclone_extra       = 'obs_seq.tc'
    
    &state_vector_io_nml
       single_precision_output    = .true.,
       /
    
    &compare_states_nml
       /
    
    &closest_member_tool_nml 
       input_restart_file_list   = 'input_file_list_d01.txt',
       output_file_name          = 'closest_results.txt'
       ens_size                  = 3,
       single_restart_file_in    = .false.,
       difference_method         = 4,
       use_only_qtys             = 'QTY_U_WIND_COMPONENT'
       /
    
    # To test both domains, you must change 'model_nml:num_domains = 2'
    
    &model_mod_check_nml
       input_state_files     = 'wrfinput_d01', 'wrfinput_d02'
       output_state_files    = 'mmc_output1.nc', 'mmc_output2.nc'
       test1thru             = 0
       run_tests             = 1,2,3,4,5
       x_ind                 = 87370
       loc_of_interest       = 231.0, 40.0, 10.0
       quantity_of_interest  = 'QTY_U_WIND_COMPONENT'
       interp_test_dlon      = 0.1
       interp_test_dlat      = 0.1
       interp_test_dvert     = 1000.0
       interp_test_lonrange  = 250.0,  260.0
       interp_test_latrange  =  30.0,   45.0
       interp_test_vertrange = 2000.0, 4000.0
       interp_test_vertcoord = 'VERTISHEIGHT'
       verbose               = .false.
       /