Description:
This routine reads in the namelist.input file and sets module_config_rec, a structure of TYPE(model_config_rec_type), which is is seen via USE association by any subprogram that uses module_configure. The module_config_rec structure contains all namelist settings for all domains. Variables that apply to the entire run and have only one value regardless of domain are scalars. Variables that allow different settings for each domain are defined as arrays of dimension max_domains (defined in frame/module_driver_constants.F, from a setting passed in from configure.wrf). There is another type in WRF, TYPE(grid_config_rec_type), in which all fields pertain only to a single domain (and are all scalars). The subroutine model_to_grid_config_rec(), also in frame/module_configure.F, is used to retrieve the settings for a given domain from a TYPE(module_config_rec_type) and put them into a TYPE(grid_config_rec_type), variables of which type are often called config_flags in the WRF code.
Most of the code in this routine is generated from the Registry file rconfig entries and included from the following files (found in the inc directory):
namelist_defines.inc declarations of namelist variables (local to this routine) namelist_statements.inc NAMELIST statements for each variable namelist_defaults.inc assignment to default values if specified in Registry config_reads.inc read statements for each namelist record config_assigns.inc assign each variable to field in module_config_rec
NOTE: generated subroutines from Registry file rconfig entries are renamed nl_ instead of rconfig_ due to length limits for subroutine names.
Note for version WRF 2.0: there is code here to force all domains to have the same mp_physics setting. This is because different mp_physics packages have different numbers of tracers but the nest forcing and feedback code relies on the parent and nest having the same number and kind of tracers. This means that the microphysics option specified on the highest numbered domain is the microphysics option for all domains in the run. This will be revisited.
Called by :
ndown_em (main/ndown_em.F)Arguments:
real_data (main/real_em.F)
wrf_init (share/module_wrf_top.F)
INITIAL_CONFIG calls :
| wrf_error_fatal3 | (frame/module_wrf_error.F) |