Version 41 (modified by scharf, 5 years ago) (diff) |
---|
User-defined parameters
As for the model in general, also the user-defined code will have to be steered by parameters. For each run, the model should be able to read in current values of these parameters. The declaration of user-defined parameters takes place in the user-defined module user (file user_module.f90). This module must be declared in all relevant user-defined routines via a USE user statement, in order to make the parameters available.
The user can assign values to the user-defined parameters within the namelist group &user_parameters in the local file PARIN. This namelist group must be located after the initialization parameters (&initialization_parameters) and runtime parameters (&runtime_parameters; see Model steering by parameters). Before values of the user-defined parameters can be assigned, the parameters must be declared within the appropriate namelist statement in the user-defined subroutine user_parin.
The following example illustrates the procedure. The example assumes that the user declares a LOGICAL variable named abcd for steering the user-defined code. This variable must be declared in the file user_module.f90:
LOGICAL :: abcd = .FALSE.
Pay attention that in this example a default value (.FALSE.) is assigned to the variable and it will keep this value if nothing else is assigned within the file PARIN. In user_parin the namelist must be extended by the name of the new variable:
namelist /user_parameters/ abcd, data_output_masks_user, data_output_pr_user, data_output_user, region
The listed parameters after abcd are included in user_parin by default, and they are described in the table below. In the parameter file PARIN a value can be assigned:
&user_parameters abcd = .T., ... ,/
User defined parameters in the file PARIN are considered as runtime parameters, i.e. they must be specified again for each restart run.
In each case, the user should carry out a control output of the parameter values so that their values during the respective model run are really known. For this purpose the user-defined subroutine user_header which writes into the files HEADER and RUN_CONTROL is available.
namelist group name: user_parameters
Parameter Name | Fortran Type | Default Value | Explanation |
---|---|---|---|
data_output_masks_user | C * 10 (max_masks, 100) | max_masks *100* ' ' |
User-defined quantities for which masked data are to be output (see Masked data output). |
data_output_pr_user | C * 10 (200) | 200 * ' ' |
User defined quantities for which horizontally averaged profile data is to be output. |
data_output_user | C * 10 (100) | 100 * ' ' |
User defined quantities for which 2d cross section and/or 3d volume data are to be output. |
region | C*40 (0:9) | 'total domain' |
Name(s) of the subdomain(s) defined by the user. |