3 | | \\\\\\\\\\\\\\\\\\\\\\\\\\ |
| 3 | |
| 4 | 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 [wiki:doc/app/userint/int#user_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.\\\\ |
| 5 | The user can assign values to the user-defined parameters within the {{{NAMELIST}}} group {{{&user_parameters}}} in the local file [wiki:doc/app/iofiles#PARIN PARIN]. This {{{NAMELIST}}} group must be located after the initialization parameters ({{{&initialization_parameters}}}) and runtime parameters ({{{&runtime_parameters}}}; see [wiki:doc/app/par 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 [wiki:doc/app/userint/int#user_parin user_parin].\\\\ |
| 6 | 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}}}: |
| 7 | {{{ |
| 8 | LOGICAL :: abcd = .FALSE. |
| 9 | }}} |
| 10 | 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 [wiki:doc/app/iofiles#PARIN PARIN]. In [wiki:doc/app/userint/int#user_parin user_parin] the {{{NAMELIST}}} must be extended by the name of the new variable: |
| 11 | {{{ |
| 12 | NAMELIST /user_parameters/ abcd, data_output_masks_user, data_output_pr_user, data_output_user, region |
| 13 | }}} |
| 14 | The listed parameters after abcd are included in [wiki:doc/app/userint/int#user_parin user_parin] by default, and they are described in the table below. |
| 15 | In the parameter file [wiki:doc/app/iofiles#PARIN PARIN] a value can be assigned: |
| 16 | {{{ |
| 17 | . |
| 18 | . |
| 19 | &user_parameters abcd = .T., ... |
| 20 | }}} |
| 21 | User defined parameters in the file [wiki:doc/app/iofiles#PARIN PARIN] are considered as runtime parameters, i.e. they must be specified again for each restart run.\\ |
| 22 | 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 [wiki:doc/app/userint/int#user_header user_header] which writes into the files [wiki:doc/app/iofiles#HEADER HEADER] and [wiki:doc/app/iofiles#RUN_CONTROL RUN_CONTROL] is available. |
| 23 | \\\\\\\\\\\\ |
| 24 | '''NAMELIST group name:''' [=#userpar '''{{{user_parameters}}}'''] |
| 25 | ---- |