Skip to content

EnsembleExperiments

Valvanuz Fernandez edited this page Nov 19, 2021 · 1 revision

Ensemble experiments

One of the advantages of using WRF4G is the possibility of defining several types of ensemble case studies in the same experiment to easily compare results between them. Each ensemble section will generate at least one independent realization depending always on the indicated date_time value. This is not only applicable to WRF namelist configurations, it can be perturbed other parameters available in the [wiki:WRF4G2.0/Experiment experiment configuration] such as app or namelist_version. Thus, as a result, users can ran WRF simulations with different WRF model versions, execute the same WRF model compiled with different compilers, or check if the same simulation produces the same output on various resources. In order to better illustrate this WRF4G feature, several examples are provided.

Perturbing namelist parameters

[DEFAULT]
# Experiment configuration
name                 = test
# Simulation domain
max_dom              = 1
# Experiment time-specification
#                      start_date          | end_date            | chunk_size_h
date_time            = 2011-08-28_12:00:00 | 2011-08-30_00:00:00 | 12 hours
calendar             = standard
timestep_dxfactor    = 6
# Running options 
np                   = 1
requirements         = ARCH = "x86_64"
clean_after_run      = yes
save_wps             = no
parallel_env         = MPIRUN
parallel_real        = yes
parallel_wrf         = yes
# Vtables must exist as Vtable.[input_extdata]
extdata_vtable       = GFS
# Seconds between global analysis input times
extdata_interval     = 21600
preprocessor         = default
postprocessor        = SFC
domain_path          = /home/user/wrf4g/repository/domains/Santander_50km
extdata_path         = /home/user/wrf4g/repository/input/NCEP/GFS
output_path          = /home/user/wrf4g/test/output
app                  = wrf_all_in_one | bundle | /home/user/repository/apps/WRF/WRFbin-3.4.1_r2265_gfortran.tar.gz
namelist_version     = 3.4.1

[ensemble/phys1]
namelist_values      = spec_bdy_width     | 10    
                       spec_zone          | 1    
                       relax_zone         | 9     
                       feedback           | 0     
                       history_interval   | 180   
                       frames_per_outfile | 3     
                       e_vert             | 28   
                       radt               | 15   
                       mp_physics         | 5     
                       cu_physics         | 1    
                       ra_lw_physics      | 1     
                       ra_sw_physics      | 1    
                       sf_sfclay_physics  | 2    
                       bl_pbl_physics     | 2    
                       sf_surface_physics | 2    

[ensemble/phys2]
namelist_values      = spec_bdy_width     | 10   
                       spec_zone          | 1    
                       relax_zone         | 9     
                       feedback           | 0    
                       history_interval   | 0     
                       frames_per_outfile | 0    
                       e_vert             | 28   
                       radt               | 15    
                       mp_physics         | 4     
                       cu_physics         | 1    
                       ra_lw_physics      | 1     
                       ra_sw_physics      | 1     
                       sf_sfclay_physics  | 1     
                       bl_pbl_physics     | 1     
                       sf_surface_physics | 2     

Same WRF experiment using intel and gfortran compilers

[DEFAULT]
# Experiment configuration
name                 = test
# Simulation domain
max_dom              = 1
# Experiment time-specification
#                      start_date          | end_date            | chunk_size_h
date_time            = 2011-08-28_12:00:00 | 2011-08-30_00:00:00 | 12 hours
calendar             = standard
timestep_dxfactor    = 6
# Running options 
np                   = 1
requirements         = ARCH = "x86_64"
clean_after_run      = yes
save_wps             = no
parallel_env         = MPIRUN
parallel_real        = yes
parallel_wrf         = yes
# Vtables must exist as Vtable.[input_extdata]
extdata_vtable       = GFS
# Seconds between global analysis input times
extdata_interval     = 21600
preprocessor         = default
postprocessor        = SFC
domain_path          = /home/user/wrf4g/repository/domains/Santander_50km
extdata_path         = /home/user/wrf4g/repository/input/NCEP/GFS
output_path          = /home/user/wrf4g/output
# WRF-namelist parameters. Override namelist.input variables here
namelist_version     = 3.5.1
namelist_values      = spec_bdy_width     | 10    
                       spec_zone          | 1    
                       relax_zone         | 9     
                       feedback           | 0     
                       history_interval   | 180   
                       frames_per_outfile | 3     
                       e_vert             | 28   
                       radt               | 15   
                       mp_physics         | 5     
                       cu_physics         | 1    
                       ra_lw_physics      | 1     
                       ra_sw_physics      | 1    
                       sf_sfclay_physics  | 2    
                       bl_pbl_physics     | 2    
                       sf_surface_physics | 2    

[ensemble/intel]
app                  = wps | command | module load WPS/intel/3.5.1
                       wrf | command | module load WRF/intel/3.5.1

[ensemble/gfortran]
app                  = wps | command | module load WRF/gfortran/3.5.1
                       wrf | command | module load WRF/gfortran/3.5.1

Execution of the same simulation on two computing resources

This obviously involves different path for each resource

[DEFAULT]
# Experiment configuration
name                 = test
# Simulation domain
max_dom              = 1
# Experiment time-specification
#                      start_date          | end_date            | chunk_size_h
date_time            = 2011-08-28_12:00:00 | 2011-08-30_00:00:00 | 12 hours
calendar             = standard
timestep_dxfactor    = 6
# Running options 
np                   = 1
clean_after_run      = yes
save_wps             = no
parallel_env         = MPIRUN
parallel_real        = yes
parallel_wrf         = yes
# Vtables must exist as Vtable.[input_extdata]
extdata_vtable       = GFS
# Seconds between global analysis input times
extdata_interval     = 21600
preprocessor         = default
postprocessor        = SFC
app                  = wps | command | module load WRF/intel/3.5.1
                       wrf | command | module load WRF/intel/3.5.1
# WRF-namelist parameters. Override namelist.input variables here
namelist_version     = 3.5.1
namelist_values      = spec_bdy_width     | 10    
                       spec_zone          | 1    
                       relax_zone         | 9     
                       feedback           | 0     
                       history_interval   | 180   
                       frames_per_outfile | 3     
                       e_vert             | 28   
                       radt               | 15   
                       mp_physics         | 5     
                       cu_physics         | 1    
                       ra_lw_physics      | 1     
                       ra_sw_physics      | 1    
                       sf_sfclay_physics  | 2    
                       bl_pbl_physics     | 2    
                       sf_surface_physics | 2    

[ensemble/resource_one_member]
requirements         = HOSTNAME = "resource_one"

[ensemble/resource_two_member]
requirements         = HOSTNAME = "resource_two"

[resource/resource_one]
domain_path          = /home/user/repository/domains/Santander_50km
extdata_path         = /home/user/repository/input/NCEP/GFS
output_path          = /home/user/test/output

[resource/resource_two]
domain_path          = /home/user2/repository/domains/Santander_50km
extdata_path         = /home/user2/repository/input/NCEP/GFS
output_path          = /home/user2/test/output