5.13.2-dev0
mHM
The mesoscale Hydrological Model
Loading...
Searching...
No Matches
mo_common_read_config Module Reference

Reading of main model configurations. More...

Functions/Subroutines

subroutine, public common_read_config (file_namelist, unamelist)
 Read main configurations commonly used by mHM, mRM and MPR.
 
subroutine, public set_land_cover_scenes_id (sim_per, lcyear_id)
 Set land cover scenes IDs.
 
subroutine init_domain_variable (ndomains, optidata, domainmeta)
 Initialization of the domain variables.
 
subroutine check_l0domain (l0domain, ndomains)
 

Detailed Description

Reading of main model configurations.

This routine reads the configurations of namelists commonly used by mHM, mRM and MPR

Authors
Matthias Zink
Date
Dec 2012

Function/Subroutine Documentation

◆ check_l0domain()

subroutine mo_common_read_config::check_l0domain ( integer(i4), dimension(maxnodomains), intent(in)  l0domain,
integer(i4), intent(in)  ndomains 
)
private
Authors
Sebastian Müller
Date
Mar 2023
Parameters
[in]l0domaingiven L0Domain variable
[in]ndomainsnumber of domains

Definition at line 496 of file mo_common_read_config.F90.

References mo_common_constants::maxnodomains.

Referenced by common_read_config().

Here is the caller graph for this function:

◆ common_read_config()

subroutine, public mo_common_read_config::common_read_config ( character(*), intent(in)  file_namelist,
integer, intent(in)  unamelist 
)

Read main configurations commonly used by mHM, mRM and MPR.

Read the main configurations commonly used by mHM, mRM and MPR, namely: project_description, directories_general, mainconfig, processSelection, LCover

Changelog
  • Robert Schweppe Dec 2018
    • refactoring and restructuring
  • Sebastian Müller Mar 2023
    • added check_L0Domain
Authors
Matthias Zink
Date
Dec 2012
Parameters
[in]file_namelistname of file
[in]unamelistid of file

Definition at line 38 of file mo_common_read_config.F90.

References check_l0domain(), mo_common_variables::contact, mo_common_variables::conventions, mo_common_variables::dircommonfiles, mo_common_variables::dirconfigout, mo_common_variables::dirlcover, mo_common_variables::dirmorpho, mo_common_variables::dirout, mo_common_variables::domainmeta, mo_common_variables::filelatlon, mo_common_variables::history, mo_common_variables::iflag_cordinate_sys, init_domain_variable(), mo_common_variables::lc_year_end, mo_common_variables::lc_year_start, mo_common_variables::lcfilename, mo_common_constants::maxnlcovers, mo_common_constants::maxnodomains, mo_common_variables::mhm_details, mo_common_variables::mhmfilerestartout, mo_common_variables::mrmfilerestartout, mo_common_variables::nlcoverscene, mo_common_variables::nprocesses, mo_common_variables::nuniquel0domains, mo_common_variables::processmatrix, mo_common_variables::project_details, mo_common_variables::resolutionhydrology, mo_common_variables::setup_description, mo_common_variables::simulation_type, and mo_common_variables::write_restart.

Referenced by mo_mhm_interface::mhm_interface_init(), and mo_mrm_init::mrm_configuration().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ init_domain_variable()

subroutine mo_common_read_config::init_domain_variable ( integer(i4), intent(in)  ndomains,
integer(i4), dimension(:), intent(in)  optidata,
type(domain_meta), intent(inout)  domainmeta 
)
private

Initialization of the domain variables.

Initialization of the domain variable for all domain loops and if activated for parallelization In case of MPI parallelization domainMetaoverAllNumberOfDomains is a variable where the number of domains from the namelist is stored. By this every process knows the total number of domains. Then, in a loop the domains are distributed onto the processes. There is a master process and several subprocesses. The master process only reads the confings in the mHM driver.

The subprocesses get a number of domains. domainMetanDomain refers to the number of domains assigned to a specific process. It is a local variable and therefore has a different value for each process.

In case more domains are there than processes, currently the domains are distributed round robin, i.e. like cards in a card game.

In case less domains than processes exist, all remaining processes are assigned to the routing domains round robin. In that case the local communicator is of interest: It is a group of processes assigned to a routing domain again with a master process (domainMetaisMasterInComLocal) and subprocesses. This communicator can in future be passed to the routing parallelization.

Author
Maren Kaluza
Date
Sep 2019
Parameters
[in]ndomainsnumber of domains
[in]optidataoptimization data
[in,out]domainmetadomain meta info

Definition at line 320 of file mo_common_read_config.F90.

Referenced by common_read_config().

Here is the caller graph for this function:

◆ set_land_cover_scenes_id()

subroutine, public mo_common_read_config::set_land_cover_scenes_id ( type(period), dimension(:), intent(in)  sim_per,
integer(i4), dimension(:, :), intent(inout), allocatable  lcyear_id 
)

Set land cover scenes IDs.

Changelog
  • Robert Schweppe Dec 2018
    • refactoring and restructuring
Authors
Matthias Zink
Date
Dec 2012
Parameters
[in]sim_persimulation period
[in,out]lcyear_idland cover year ID

Definition at line 236 of file mo_common_read_config.F90.

References mo_common_variables::domainmeta, mo_common_variables::lc_year_end, mo_common_variables::lc_year_start, mo_common_variables::nlcoverscene, and mo_common_constants::nodata_i4.

Referenced by mo_common_mhm_mrm_read_config::common_mhm_mrm_read_config().

Here is the caller graph for this function: