<text:ptext:style-name="P223">Karl-Hermann Wieners<text:line-break/><text:spantext:style-name="T208">Max-Planck-Institut für Meteorologie<text:line-break/>Hamburg</text:span></text:p>
<text:ptext:style-name="P225">Karl-Hermann Wieners<text:line-break/><text:spantext:style-name="T208">Max-Planck-Institut für Meteorologie<text:line-break/>Hamburg</text:span></text:p>
<text:table-of-contenttext:style-name="Sect1"text:protected="true"text:name="Table of Contents1">
<text:table-of-contenttext:style-name="Sect1"text:protected="true"text:name="Table of Contents1">
<text:ptext:style-name="P228"><text:axlink:type="simple"xlink:href="#__RefHeading__2522_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">1.1.1 Experiments are defined by custom and default settings<text:tab/>3</text:a></text:p>
<text:ptext:style-name="P230"><text:axlink:type="simple"xlink:href="#__RefHeading__2522_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">1.1.1 Experiments are defined by custom and default settings<text:tab/>3</text:a></text:p>
<text:ptext:style-name="P228"><text:axlink:type="simple"xlink:href="#__RefHeading__2524_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">1.1.2 Job templates are completed by settings to create scripts<text:tab/>4</text:a></text:p>
<text:ptext:style-name="P230"><text:axlink:type="simple"xlink:href="#__RefHeading__2524_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">1.1.2 Job templates are completed by settings to create scripts<text:tab/>4</text:a></text:p>
<text:ptext:style-name="P228"><text:axlink:type="simple"xlink:href="#__RefHeading__2526_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">1.1.3 Generating scripts only refers to the custom settings' file<text:tab/>6</text:a></text:p>
<text:ptext:style-name="P230"><text:axlink:type="simple"xlink:href="#__RefHeading__2526_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">1.1.3 Generating scripts only refers to the custom settings' file<text:tab/>6</text:a></text:p>
<text:ptext:style-name="P226"><text:axlink:type="simple"xlink:href="#__RefHeading__2528_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2 Details on experiment definition<text:tab/>6</text:a></text:p>
<text:ptext:style-name="P228"><text:axlink:type="simple"xlink:href="#__RefHeading__2528_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2 Details on experiment definition<text:tab/>6</text:a></text:p>
<text:ptext:style-name="P227"><text:axlink:type="simple"xlink:href="#__RefHeading__2534_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.3 Format of .config files<text:tab/>8</text:a></text:p>
<text:ptext:style-name="P229"><text:axlink:type="simple"xlink:href="#__RefHeading__2534_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.3 Format of .config files<text:tab/>8</text:a></text:p>
<text:ptext:style-name="P228"><text:axlink:type="simple"xlink:href="#__RefHeading__2538_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.3.3 Special variables and sections<text:tab/>9</text:a></text:p>
<text:ptext:style-name="P230"><text:axlink:type="simple"xlink:href="#__RefHeading__2538_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.3.3 Special variables and sections<text:tab/>9</text:a></text:p>
<text:ptext:style-name="P228"><text:axlink:type="simple"xlink:href="#__RefHeading__2542_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.3.5 Evaluation of interpolation<text:tab/>12</text:a></text:p>
<text:ptext:style-name="P230"><text:axlink:type="simple"xlink:href="#__RefHeading__2542_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.3.5 Evaluation of interpolation<text:tab/>12</text:a></text:p>
<text:ptext:style-name="P228"><text:axlink:type="simple"xlink:href="#__RefHeading__2544_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.3.6 Special expressions<text:tab/>13</text:a></text:p>
<text:ptext:style-name="P230"><text:axlink:type="simple"xlink:href="#__RefHeading__2544_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.3.6 Special expressions<text:tab/>13</text:a></text:p>
<text:ptext:style-name="P227"><text:axlink:type="simple"xlink:href="#__RefHeading__2546_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.4 Format of .tmpl files<text:tab/>14</text:a></text:p>
<text:ptext:style-name="P229"><text:axlink:type="simple"xlink:href="#__RefHeading__2546_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.4 Format of .tmpl files<text:tab/>14</text:a></text:p>
<text:ptext:style-name="P228"><text:axlink:type="simple"xlink:href="#__RefHeading__2550_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.4.2 Variables in sections<text:tab/>14</text:a></text:p>
<text:ptext:style-name="P230"><text:axlink:type="simple"xlink:href="#__RefHeading__2550_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.4.2 Variables in sections<text:tab/>14</text:a></text:p>
<text:ptext:style-name="P227"><text:axlink:type="simple"xlink:href="#__RefHeading__2560_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.5 Standard experiments<text:tab/>17</text:a></text:p>
<text:ptext:style-name="P229"><text:axlink:type="simple"xlink:href="#__RefHeading__2560_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.5 Standard experiments<text:tab/>17</text:a></text:p>
<text:ptext:style-name="P227"><text:axlink:type="simple"xlink:href="#__RefHeading__2562_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.6 Standard options<text:tab/>17</text:a></text:p>
<text:ptext:style-name="P229"><text:axlink:type="simple"xlink:href="#__RefHeading__2562_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.6 Standard options<text:tab/>17</text:a></text:p>
<text:ptext:style-name="P227"><text:axlink:type="simple"xlink:href="#__RefHeading__2564_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.7 Standard environments<text:tab/>18</text:a></text:p>
<text:ptext:style-name="P229"><text:axlink:type="simple"xlink:href="#__RefHeading__2564_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.7 Standard environments<text:tab/>18</text:a></text:p>
<text:ptext:style-name="P228"><text:axlink:type="simple"xlink:href="#__RefHeading__2566_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.8.1 Changing the model job list<text:tab/>19</text:a></text:p>
<text:ptext:style-name="P230"><text:axlink:type="simple"xlink:href="#__RefHeading__2566_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.8.1 Changing the model job list<text:tab/>19</text:a></text:p>
<text:ptext:style-name="P228"><text:axlink:type="simple"xlink:href="#__RefHeading__2576_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.8.6 Re-generation of scripts and backup<text:tab/>22</text:a></text:p>
<text:ptext:style-name="P230"><text:axlink:type="simple"xlink:href="#__RefHeading__2576_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.8.6 Re-generation of scripts and backup<text:tab/>22</text:a></text:p>
<text:ptext:style-name="P227"><text:axlink:type="simple"xlink:href="#__RefHeading__1883_1672291846"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.9 Defining namelists and other configuration files<text:tab/>22</text:a></text:p>
<text:ptext:style-name="P229"><text:axlink:type="simple"xlink:href="#__RefHeading__1883_1672291846"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.9 Defining namelists and other configuration files<text:tab/>22</text:a></text:p>
<text:ptext:style-name="P228"><text:axlink:type="simple"xlink:href="#__RefHeading__2578_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.9.1 Formatting the namelist information<text:tab/>23</text:a></text:p>
<text:ptext:style-name="P230"><text:axlink:type="simple"xlink:href="#__RefHeading__2578_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.9.1 Formatting the namelist information<text:tab/>23</text:a></text:p>
<text:ptext:style-name="P228"><text:axlink:type="simple"xlink:href="#__RefHeading__2580_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.9.2 Suppressing namelist groups or variables<text:tab/>23</text:a></text:p>
<text:ptext:style-name="P230"><text:axlink:type="simple"xlink:href="#__RefHeading__2580_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.9.2 Suppressing namelist groups or variables<text:tab/>23</text:a></text:p>
<text:ptext:style-name="P228"><text:axlink:type="simple"xlink:href="#__RefHeading__2714_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.9.3 Using the namelist text<text:tab/>24</text:a></text:p>
<text:ptext:style-name="P230"><text:axlink:type="simple"xlink:href="#__RefHeading__2714_1114405012"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.9.3 Using the namelist text<text:tab/>24</text:a></text:p>
<text:ptext:style-name="P227"><text:axlink:type="simple"xlink:href="#__RefHeading__2831_1132221942"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.10 Defining input files for an experiment<text:tab/>25</text:a></text:p>
<text:ptext:style-name="P229"><text:axlink:type="simple"xlink:href="#__RefHeading__2831_1132221942"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.10 Defining input files for an experiment<text:tab/>25</text:a></text:p>
<text:ptext:style-name="P228"><text:axlink:type="simple"xlink:href="#__RefHeading__2833_1132221942"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.10.1 Overriding input files for certain jobs<text:tab/>25</text:a></text:p>
<text:ptext:style-name="P230"><text:axlink:type="simple"xlink:href="#__RefHeading__2833_1132221942"text:style-name="Index_20_Link"text:visited-style-name="Index_20_Link">2.10.1 Overriding input files for certain jobs<text:tab/>25</text:a></text:p>
<text:ptext:style-name="Text_20_body">Running a numerical earth system model experiment requires a number of preparatory and processing steps like staging input data files, providing namelists and other configuration data, housekeeping duties like model-time management, post-processing and storing <text:spantext:style-name="T1">of </text:span>output data. These steps are usually put into scripts or another kind of job description that is finally executed on some high-performance computing system.</text:p>
<text:ptext:style-name="Text_20_body">Running a numerical earth system model experiment requires a number of preparatory and processing steps like staging input data files, providing namelists and other configuration data, housekeeping duties like model-time management, post-processing and storing <text:spantext:style-name="T1">of </text:span>output data. These steps are usually put into scripts or another kind of job description that is finally executed on some high-performance computing system.</text:p>
<text:ptext:style-name="P1">The <text:spantext:style-name="T133">Make Experiments! (</text:span>mkexp<text:spantext:style-name="T133">)</text:span> toolbox provides a generic interface to setting up such a<text:spantext:style-name="T1">n experiment</text:span>. At the heart of this <text:spantext:style-name="T1">lies</text:span> the so-called .config file. This is a simple <text:spantext:style-name="T1">text </text:span>file that contains the model settings for your experiment in a way that is <text:spantext:style-name="T1">largely </text:span>independent of the job description that is later used to run it.</text:p>
<text:ptext:style-name="P1">The <text:spantext:style-name="T133">Make Experiments! (</text:span>mkexp<text:spantext:style-name="T133">)</text:span> toolbox provides a generic interface to setting up such a<text:spantext:style-name="T1">n experiment</text:span>. At the heart of this <text:spantext:style-name="T1">lies</text:span> the so-called .config file. This is a simple <text:spantext:style-name="T1">text </text:span>file that contains the model settings for your experiment in a way that is <text:spantext:style-name="T1">largely </text:span>independent of the job description that is later used to run it.</text:p>
<text:ptext:style-name="P4">To make this an easy task, MPI-M's models are delivered with a number of standard experiment types. Your own .config file will chose one of these, thus inheriting their settings for use in your experiment. Typically, it will also override or amend these settings for the purpose of your experiment.</text:p>
<text:ptext:style-name="P4">To make this an easy task, MPI-M's models are delivered with a number of standard experiment types. Your own .config file will chose one of these, thus inheriting their settings for use in your experiment. Typically, it will also override or amend these settings for the purpose of your experiment.</text:p>
<text:ptext:style-name="P2">While the .config fil<text:spantext:style-name="T2">e contains all necessary settings, there is much more to the actual job description. Therefore, the standard experiment types also provide templates (.tmpl files) for the jobs to run, that are then converted to the final job step descriptions, using the .config file settings. Besides, the .config file contains a 'jobs' section, where the job control flow and parameters of the job description itself may be adjusted, e.g. requiring more resources or disabling certain job steps.</text:span></text:p>
<text:ptext:style-name="P2">While the .config fil<text:spantext:style-name="T2">e contains all necessary settings, there is much more to the actual job description. Therefore, the standard experiment types also provide templates (.tmpl files) for the jobs to run, that are then converted to the final job step descriptions, using the .config file settings. Besides, the .config file contains a 'jobs' section, where the job control flow and parameters of the job description itself may be adjusted, e.g. requiring more resources or disabling certain job steps.</text:span></text:p>
<text:ptext:style-name="P32">To illustrate the way <text:spantext:style-name="T9">mkexp</text:span> works, let us look at the way that experiments with ECHAM, MPI-M's atmospheric circulation model, are set up.</text:p>
<text:ptext:style-name="P32">To illustrate the way <text:spantext:style-name="T9">mkexp</text:span> works, let us look at the way that experiments with ECHAM, MPI-M's atmospheric circulation model, are set up.</text:p>
<text:htext:style-name="P232"text:outline-level="3"><text:bookmark-starttext:name="__RefHeading__2522_1114405012"/>Experiments are defined by custom and default settings<text:bookmark-endtext:name="__RefHeading__2522_1114405012"/></text:h>
<text:htext:style-name="P234"text:outline-level="3"><text:bookmark-starttext:name="__RefHeading__2522_1114405012"/>Experiments are defined by custom and default settings<text:bookmark-endtext:name="__RefHeading__2522_1114405012"/></text:h>
<text:ptext:style-name="P3">ECHAM comes with five <text:spantext:style-name="T178">pre-defined </text:span>experiment types, amip-LR, amip-MR, amip-HR, sstClim-LR and sstClim-MR. <text:spantext:style-name="T3">To set up an experiment based on one of these, like amip-LR, all you have to do is create your own experiment configuration file within ECHAM's run subdirectory, e.g. 'joe1234.config', setting amip-LR as experiment type and providing an experiment description with the header comment:</text:span></text:p>
<text:ptext:style-name="P3">ECHAM comes with five <text:spantext:style-name="T178">pre-defined </text:span>experiment types, amip-LR, amip-MR, amip-HR, sstClim-LR and sstClim-MR. <text:spantext:style-name="T3">To set up an experiment based on one of these, like amip-LR, all you have to do is create your own experiment configuration file within ECHAM's run subdirectory, e.g. 'joe1234.config', setting amip-LR as experiment type and providing an experiment description with the header comment:</text:span></text:p>
<text:ptext:style-name="P93"><text:soft-page-break/># Standard AMIP experiment as baseline for further experiments (LR)</text:p>
<text:ptext:style-name="P93"><text:soft-page-break/># Standard AMIP experiment as baseline for further experiments (LR)</text:p>
<text:ptext:style-name="P6">The final configuration is then merged from all of these three sources, where the experiment configuration may override <text:spantext:style-name="T40">or amend </text:span>settings from the experiment type, and the type config may in turn change the model defaults.</text:p>
<text:ptext:style-name="P6">The final configuration is then merged from all of these three sources, where the experiment configuration may override <text:spantext:style-name="T40">or amend </text:span>settings from the experiment type, and the type config may in turn change the model defaults.</text:p>
<text:htext:style-name="P233"text:outline-level="3"><text:bookmark-starttext:name="__RefHeading__2524_1114405012"/>Job templates are completed by settings to create scripts<text:bookmark-endtext:name="__RefHeading__2524_1114405012"/></text:h>
<text:htext:style-name="P235"text:outline-level="3"><text:bookmark-starttext:name="__RefHeading__2524_1114405012"/>Job templates are completed by settings to create scripts<text:bookmark-endtext:name="__RefHeading__2524_1114405012"/></text:h>
<text:ptext:style-name="P6"><text:spantext:style-name="T177">Now the experiment configuration is finalized, the </text:span>settings are used to fill in <text:spantext:style-name="T177">a kind of job description forms, so called </text:span><text:spantext:style-name="T9">templates</text:span><text:spantext:style-name="T177">, </text:span>from which eventually the <text:spantext:style-name="T177">actual </text:span>job description files are created. As the structure of<text:spantext:style-name="T177"></text:span>jobs is largely independent of the model resolution, all amip- experiment types share the same set of template files. One of them is <text:spantext:style-name="T198">'</text:span>amip.run.tmpl<text:spantext:style-name="T198">'</text:span>, also within the run/standard_experiments subdirectory. <text:spantext:style-name="T6">The excerpt below shows that t</text:span>his looks mostly like a shell script, but contains <text:spantext:style-name="T132">placeholders</text:span> that are filled using the .config file information:</text:p>
<text:ptext:style-name="P6"><text:spantext:style-name="T177">Now the experiment configuration is finalized, the </text:span>settings are used to fill in <text:spantext:style-name="T177">a kind of job description forms, so called </text:span><text:spantext:style-name="T9">templates</text:span><text:spantext:style-name="T177">, </text:span>from which eventually the <text:spantext:style-name="T177">actual </text:span>job description files are created. As the structure of<text:spantext:style-name="T177"></text:span>jobs is largely independent of the model resolution, all amip- experiment types share the same set of template files. One of them is <text:spantext:style-name="T198">'</text:span>amip.run.tmpl<text:spantext:style-name="T198">'</text:span>, also within the run/standard_experiments subdirectory. <text:spantext:style-name="T6">The excerpt below shows that t</text:span>his looks mostly like a shell script, but contains <text:spantext:style-name="T132">placeholders</text:span> that are filled using the .config file information:</text:p>
<text:ptext:style-name="P13"><text:spantext:style-name="T177">So, as soon as</text:span><text:spantext:style-name="T177">you have set up '</text:span>joe1234.config<text:spantext:style-name="T177">'</text:span>, you may create the job scripts that are needed to run your experiment. Still within ECHAM's <text:spantext:style-name="T179">'</text:span>run<text:spantext:style-name="T179">'</text:span> subdirectory, type the following into your terminal:</text:p>
<text:ptext:style-name="P13"><text:spantext:style-name="T177">So, as soon as</text:span><text:spantext:style-name="T177">you have set up '</text:span>joe1234.config<text:spantext:style-name="T177">'</text:span>, you may create the job scripts that are needed to run your experiment. Still within ECHAM's <text:spantext:style-name="T179">'</text:span>run<text:spantext:style-name="T179">'</text:span> subdirectory, type the following into your terminal:</text:p>
<text:ptext:style-name="P14">This will <text:spantext:style-name="T133">read all configuration information and </text:span>create all job scripts that are defined within your experiment's setup, <text:spantext:style-name="T133">using their respective templates as shown in the previous section</text:span>. <text:spantext:style-name="T9">mkexp</text:span> will put these <text:spantext:style-name="T133">scripts </text:span>in <text:spantext:style-name="T133">a common</text:span> directory defined by the .config variable <text:spantext:style-name="T179">'</text:span>SCRIPT_DIR<text:spantext:style-name="T179">'</text:span>, and <text:spantext:style-name="T179">print</text:span> the name of this directory on your terminal.</text:p>
<text:ptext:style-name="P14">This will <text:spantext:style-name="T133">read all configuration information and </text:span>create all job scripts that are defined within your experiment's setup, <text:spantext:style-name="T133">using their respective templates as shown in the previous section</text:span>. <text:spantext:style-name="T9">mkexp</text:span> will put these <text:spantext:style-name="T133">scripts </text:span>in <text:spantext:style-name="T133">a common</text:span> directory defined by the .config variable <text:spantext:style-name="T179">'</text:span>SCRIPT_DIR<text:spantext:style-name="T179">'</text:span>, and <text:spantext:style-name="T179">print</text:span> the name of this directory on your terminal.</text:p>
<text:htext:style-name="P229"text:outline-level="1"><text:bookmark-starttext:name="__RefHeading__2528_1114405012"/>Details on <text:spantext:style-name="T197">experiment</text:span><text:spantext:style-name="T197">definition</text:span><text:bookmark-endtext:name="__RefHeading__2528_1114405012"/></text:h>
<text:htext:style-name="P231"text:outline-level="1"><text:bookmark-starttext:name="__RefHeading__2528_1114405012"/>Details on <text:spantext:style-name="T197">experiment</text:span><text:spantext:style-name="T197">definition</text:span><text:bookmark-endtext:name="__RefHeading__2528_1114405012"/></text:h>
<text:ptext:style-name="P15">With the introductory example of the previous section in mind, this section will give some more detailed information on specific aspects of <text:spantext:style-name="T9">mkexp</text:span><text:spantext:style-name="T43">.</text:span></text:p>
<text:ptext:style-name="P15">With the introductory example of the previous section in mind, this section will give some more detailed information on specific aspects of <text:spantext:style-name="T9">mkexp</text:span><text:spantext:style-name="T43">.</text:span></text:p>
<text:ptext:style-name="P34">Experiment definition with <text:spantext:style-name="T9">mkexp</text:span><text:spantext:style-name="T159">is organized</text:span><text:spantext:style-name="T159">in</text:span> three levels.</text:p>
<text:ptext:style-name="P34">Experiment definition with <text:spantext:style-name="T9">mkexp</text:span><text:spantext:style-name="T159">is organized</text:span><text:spantext:style-name="T159">in</text:span> three levels.</text:p>
<text:ptext:style-name="P34">The first level is the <text:spantext:style-name="T9">mkexp</text:span> toolbox. It provides the front end to create an executable job description from a generic experiment configuration, <text:spantext:style-name="T158">but does not contain any model specific information. Instead a basic set of conventions is defined that should be applicable to a very large range of model systems. When this document uses the term </text:span><text:spantext:style-name="T18">mkexp</text:span><text:spantext:style-name="T49">, it refers to this system level.</text:span></text:p>
<text:ptext:style-name="P34">The first level is the <text:spantext:style-name="T9">mkexp</text:span> toolbox. It provides the front end to create an executable job description from a generic experiment configuration, <text:spantext:style-name="T158">but does not contain any model specific information. Instead a basic set of conventions is defined that should be applicable to a very large range of model systems. When this document uses the term </text:span><text:spantext:style-name="T18">mkexp</text:span><text:spantext:style-name="T49">, it refers to this system level.</text:span></text:p>
<text:ptext:style-name="P34"><text:spantext:style-name="T158">At a second level, a model needs to provide a number of files containing the information needed by </text:span><text:spantext:style-name="T17">mkexp</text:span><text:spantext:style-name="T158">: the required job steps and their interaction, the basic contents of job scripts, model specific information, and building blocks that may be combined to define a specific experiment. This is called the </text:span><text:spantext:style-name="T17">model setup</text:span><text:spantext:style-name="T48">. The files must maintain the naming conventions prescribed by </text:span><text:spantext:style-name="T17">mkexp</text:span><text:spantext:style-name="T48">.</text:span></text:p>
<text:ptext:style-name="P34"><text:spantext:style-name="T158">At a second level, a model needs to provide a number of files containing the information needed by </text:span><text:spantext:style-name="T17">mkexp</text:span><text:spantext:style-name="T158">: the required job steps and their interaction, the basic contents of job scripts, model specific information, and building blocks that may be combined to define a specific experiment. This is called the </text:span><text:spantext:style-name="T17">model setup</text:span><text:spantext:style-name="T48">. The files must maintain the naming conventions prescribed by </text:span><text:spantext:style-name="T17">mkexp</text:span><text:spantext:style-name="T48">.</text:span></text:p>
<text:ptext:style-name="P35"><text:spantext:style-name="T43">Finally, the third level is the actual experiment definition. Here the user decides which of the building blocks from the previous level are needed, and </text:span><text:spantext:style-name="T80">defines</text:span><text:spantext:style-name="T43"> experiment specific settings that override or amend the information from the model setup. It is also essential to supply an experiment description and a – possibly unique – experiment identifier. All this is called the </text:span><text:spantext:style-name="T9">user setup</text:span><text:spantext:style-name="T43">.</text:span></text:p>
<text:ptext:style-name="P35"><text:spantext:style-name="T43">Finally, the third level is the actual experiment definition. Here the user decides which of the building blocks from the previous level are needed, and </text:span><text:spantext:style-name="T80">defines</text:span><text:spantext:style-name="T43"> experiment specific settings that override or amend the information from the model setup. It is also essential to supply an experiment description and a – possibly unique – experiment identifier. All this is called the </text:span><text:spantext:style-name="T9">user setup</text:span><text:spantext:style-name="T43">.</text:span></text:p>
<text:ptext:style-name="P36"><text:spantext:style-name="T43">All levels should make a clear distinction </text:span><text:spantext:style-name="T50">between </text:span><text:spantext:style-name="T43">the .config files, containing the experiment's configuration information, </text:span><text:spantext:style-name="T50">and </text:span><text:spantext:style-name="T43">the .tmpl files, containing the actual job description and job control syntax.</text:span></text:p>
<text:ptext:style-name="P36"><text:spantext:style-name="T43">All levels should make a clear distinction </text:span><text:spantext:style-name="T50">between </text:span><text:spantext:style-name="T43">the .config files, containing the experiment's configuration information, </text:span><text:spantext:style-name="T50">and </text:span><text:spantext:style-name="T43">the .tmpl files, containing the actual job description and job control syntax.</text:span></text:p>
<text:ptext:style-name="P82"><text:spantext:style-name="T133">The </text:span><text:spantext:style-name="T32">mkexp</text:span><text:spantext:style-name="T133"> package provides a number of tools for working with script configurations and setups.</text:span></text:p>
<text:ptext:style-name="P82"><text:spantext:style-name="T133">The </text:span><text:spantext:style-name="T32">mkexp</text:span><text:spantext:style-name="T133"> package provides a number of tools for working with script configurations and setups.</text:span></text:p>
<text:ptext:style-name="P190"><text:spantext:style-name="T133">This is the main tool for generating an experiment setup. It </text:span>takes <text:spantext:style-name="T180">the given</text:span><text:spantext:style-name="T180">user setup</text:span> and <text:spantext:style-name="T199">the model setup that is referenced by the user setup </text:span>to generate <text:spantext:style-name="T180">the</text:span><text:spantext:style-name="T180">job description files or</text:span> scripts that <text:spantext:style-name="T199">are required to run a model experiment as specified in </text:span><text:spantext:style-name="T21">file.</text:span><text:spantext:style-name="T61">config</text:span><text:spantext:style-name="T180">.</text:span></text:p>
<text:ptext:style-name="P190"><text:spantext:style-name="T133">This is the main tool for generating an experiment setup. It </text:span>takes <text:spantext:style-name="T180">the given</text:span><text:spantext:style-name="T180">user setup</text:span> and <text:spantext:style-name="T199">the model setup that is referenced by the user setup </text:span>to generate <text:spantext:style-name="T180">the</text:span><text:spantext:style-name="T180">job description files or</text:span> scripts that <text:spantext:style-name="T199">are required to run a model experiment as specified in </text:span><text:spantext:style-name="T21">file.</text:span><text:spantext:style-name="T61">config</text:span><text:spantext:style-name="T180">.</text:span></text:p>
...
@@ -2197,7 +2197,7 @@
...
@@ -2197,7 +2197,7 @@
<text:ptext:style-name="P182">For an easy comparison of the whole set of generated scripts for two different experiments, this tool takes the directories defined in each configuration, locates the job scripts corresponding to each other (e.g. exp0001.run and exp0002.run), equalizes all occurrences of the experiment name in the scripts and then uses the diff tool to show differences. The environment variable 'DIFF' may be set to an alternative tool to be called instead.</text:p>
<text:ptext:style-name="P182">For an easy comparison of the whole set of generated scripts for two different experiments, this tool takes the directories defined in each configuration, locates the job scripts corresponding to each other (e.g. exp0001.run and exp0002.run), equalizes all occurrences of the experiment name in the scripts and then uses the diff tool to show differences. The environment variable 'DIFF' may be set to an alternative tool to be called instead.</text:p>
<text:ptext:style-name="P196">This allows <text:spantext:style-name="T186">interactive </text:span>remov<text:spantext:style-name="T186">al for </text:span>all scripting and run-time data of an experiment without having to deal with path names, as these are read from the configuration.</text:p>
<text:ptext:style-name="P196">This allows <text:spantext:style-name="T186">interactive </text:span>remov<text:spantext:style-name="T186">al for </text:span>all scripting and run-time data of an experiment without having to deal with path names, as these are read from the configuration.</text:p>
<text:htext:style-name="P249"text:outline-level="2"><text:bookmark-starttext:name="__RefHeading__2534_1114405012"/><text:spantext:style-name="T139">F</text:span>ormat of .config files<text:bookmark-endtext:name="__RefHeading__2534_1114405012"/></text:h>
<text:htext:style-name="P251"text:outline-level="2"><text:bookmark-starttext:name="__RefHeading__2534_1114405012"/><text:spantext:style-name="T139">F</text:span>ormat of .config files<text:bookmark-endtext:name="__RefHeading__2534_1114405012"/></text:h>
<text:ptext:style-name="P15">The .config files are simple text files containing a dictionary of variables with their respective values. They may be structured using sections and comments. <text:spantext:style-name="T134">For reading these files, </text:span><text:spantext:style-name="T12">mkexp</text:span><text:spantext:style-name="T134"> uses the </text:span><text:spantext:style-name="T12">configobj</text:span><text:spantext:style-name="T134"> Python library. All settings found in the .config files are handled as Python variables internally.</text:span></text:p>
<text:ptext:style-name="P15">The .config files are simple text files containing a dictionary of variables with their respective values. They may be structured using sections and comments. <text:spantext:style-name="T134">For reading these files, </text:span><text:spantext:style-name="T12">mkexp</text:span><text:spantext:style-name="T134"> uses the </text:span><text:spantext:style-name="T12">configobj</text:span><text:spantext:style-name="T134"> Python library. All settings found in the .config files are handled as Python variables internally.</text:span></text:p>
<text:ptext:style-name="P18">A <text:spantext:style-name="T135">configuration variable is set by simply assigning a text value to a name, as in</text:span></text:p>
<text:ptext:style-name="P18">A <text:spantext:style-name="T135">configuration variable is set by simply assigning a text value to a name, as in</text:span></text:p>
<text:ptext:style-name="P186">cuts <text:spantext:style-name="T220">the input </text:span>string <text:spantext:style-name="T220">at all occurrences of </text:span><text:spantext:style-name="T34">s</text:span><text:spantext:style-name="T220">, returning</text:span> a list of substrings. <text:spantext:style-name="T219">If </text:span><text:spantext:style-name="T33">m</text:span><text:spantext:style-name="T219"> is positive or zero, it cuts only at the first </text:span><text:spantext:style-name="T33">m</text:span><text:spantext:style-name="T219"> occurrences; the last element contains the remaining substring:</text:span></text:p>
<text:ptext:style-name="P186">cuts <text:spantext:style-name="T220">the input </text:span>string <text:spantext:style-name="T220">at all occurrences of </text:span><text:spantext:style-name="T34">s</text:span><text:spantext:style-name="T220">, returning</text:span> a list of substrings. <text:spantext:style-name="T219">If </text:span><text:spantext:style-name="T33">m</text:span><text:spantext:style-name="T219"> is positive or zero, it cuts only at the first </text:span><text:spantext:style-name="T33">m</text:span><text:spantext:style-name="T219"> occurrences; the last element contains the remaining substring:</text:span></text:p>
<text:ptext:style-name="Preformatted_20_Text_20_Indented">%{ 'A B C' | <text:spantext:style-name="T120">split</text:span><text:spantext:style-name="T150">('') }<text:tab/><text:tab/>→</text:span><text:spantext:style-name="T153"></text:span><text:spantext:style-name="T152">['A', 'B', 'C']</text:span></text:p>
<text:ptext:style-name="Preformatted_20_Text_20_Indented">%{ 'A B C' | <text:spantext:style-name="T120">split</text:span><text:spantext:style-name="T150">('') }<text:tab/><text:tab/>→</text:span><text:spantext:style-name="T153"></text:span><text:spantext:style-name="T152">['A', 'B', 'C']</text:span></text:p>
<text:ptext:style-name="P204"><text:spantext:style-name="T150">returns the input string</text:span><text:spantext:style-name="T117">, if </text:span><text:spantext:style-name="T38">regexp</text:span><text:spantext:style-name="T117"> matches somewhere in it. If </text:span><text:spantext:style-name="T38">regexp</text:span><text:spantext:style-name="T117"> contains matching groups (parentheses), the substring matching the first group is returned. If no match is found, the </text:span><text:spantext:style-name="T38">default</text:span><text:spantext:style-name="T117"> string is returned:</text:span></text:p>
<text:ptext:style-name="P204"><text:spantext:style-name="T150">returns the input string</text:span><text:spantext:style-name="T117">, if </text:span><text:spantext:style-name="T38">regexp</text:span><text:spantext:style-name="T117"> matches somewhere in it. If </text:span><text:spantext:style-name="T38">regexp</text:span><text:spantext:style-name="T117"> contains matching groups (parentheses), the substring matching the first group is returned. If no match is found, the </text:span><text:spantext:style-name="T38">default</text:span><text:spantext:style-name="T117"> string is returned:</text:span></text:p>
<text:ptext:style-name="P205"><text:spantext:style-name="T117">replaces the </text:span><text:spantext:style-name="T118">builtin </text:span><text:spantext:style-name="T39">Jinja </text:span><text:spantext:style-name="T118">filter 'wordwrap'<text:s/>by a private version that allows to suppress breaks on hyphens:</text:span></text:p>
<text:ptext:style-name="P205"><text:spantext:style-name="T117">replaces the </text:span><text:spantext:style-name="T118">builtin </text:span><text:spantext:style-name="T39">Jinja </text:span><text:spantext:style-name="T118">filter 'wordwrap'<text:s/>by a private version that allows to suppress breaks on hyphens:</text:span></text:p>
<text:ptext:style-name="P28">Text in a template may be used repeatedly, like a classical 'for' loop. Loops are defined by structured comments <text:spantext:style-name="T204">i.e. lines </text:span>beginning with '#%'. <text:spantext:style-name="T204">They </text:span>start with '#% for … <text:spantext:style-name="T147">in …:</text:span>' and end in '#% endfor':</text:p>
<text:ptext:style-name="P28">Text in a template may be used repeatedly, like a classical 'for' loop. Loops are defined by structured comments <text:spantext:style-name="T204">i.e. lines </text:span>beginning with '#%'. <text:spantext:style-name="T204">They </text:span>start with '#% for … <text:spantext:style-name="T147">in …:</text:span>' and end in '#% endfor':</text:p>
<text:ptext:style-name="P11">Besides the standard experiment types, <text:spantext:style-name="T9">mkexp</text:span> also supports option sets that are independent of the experiment type chosen.</text:p>
<text:ptext:style-name="P11">Besides the standard experiment types, <text:spantext:style-name="T9">mkexp</text:span> also supports option sets that are independent of the experiment type chosen.</text:p>
<text:ptext:style-name="P11">Usually these option sets contain a number of settings needed for a certain technical aspect, e.g. for changing the output interval or aggregation method for output data, or providing resolution dependent model settings. They reside in a subdirectory 'standard_options' of the current working directory, each in their respective <text:spantext:style-name="T9">optionname</text:span>.config file.</text:p>
<text:ptext:style-name="P11">Usually these option sets contain a number of settings needed for a certain technical aspect, e.g. for changing the output interval or aggregation method for output data, or providing resolution dependent model settings. They reside in a subdirectory 'standard_options' of the current working directory, each in their respective <text:spantext:style-name="T9">optionname</text:span>.config file.</text:p>
<text:ptext:style-name="P11">Within the experiment's .config file, options are selected by setting the variable EXP_OPTIONS to the list of required option names. These settings are loaded after the experiment type configuration but before the user defined experiment configuration.</text:p>
<text:ptext:style-name="P11">Within the experiment's .config file, options are selected by setting the variable EXP_OPTIONS to the list of required option names. These settings are loaded after the experiment type configuration but before the user defined experiment configuration.</text:p>
<text:ptext:style-name="P42">When<text:spantext:style-name="T160"></text:span>running <text:spantext:style-name="T9">mkexp</text:span><text:spantext:style-name="T92">, </text:span><text:spantext:style-name="T93">the special configuration section [jobs]</text:span><text:spantext:style-name="T37"></text:span><text:spantext:style-name="T93">is read and evaluated. Each of its subsections, e.g. [[run]], defines a job definition file or job script to be created.</text:span></text:p>
<text:ptext:style-name="P42">When<text:spantext:style-name="T160"></text:span>running <text:spantext:style-name="T9">mkexp</text:span><text:spantext:style-name="T92">, </text:span><text:spantext:style-name="T93">the special configuration section [jobs]</text:span><text:spantext:style-name="T37"></text:span><text:spantext:style-name="T93">is read and evaluated. Each of its subsections, e.g. [[run]], defines a job definition file or job script to be created.</text:span></text:p>
<text:ptext:style-name="P133"># <text:spantext:style-name="T161">model setup: experiment type 'control'</text:span></text:p>
<text:ptext:style-name="P133"># <text:spantext:style-name="T161">model setup: experiment type 'control'</text:span></text:p>
<text:ptext:style-name="P50">With this configuration, an additional 'joe1234.my_post' is created based on the existing 'post' template. A dedicated 'joe1234.my_post.tmpl' file is not needed here. The 'command' setting is <text:spantext:style-name="T163">made available </text:span>to <text:spantext:style-name="T163">the template via the</text:span>'JOB' dictionary.</text:p>
<text:ptext:style-name="P50">With this configuration, an additional 'joe1234.my_post' is created based on the existing 'post' template. A dedicated 'joe1234.my_post.tmpl' file is not needed here. The 'command' setting is <text:spantext:style-name="T163">made available </text:span>to <text:spantext:style-name="T163">the template via the</text:span>'JOB' dictionary.</text:p>
<text:ptext:style-name="P55">While <text:spantext:style-name="T9">mkexp</text:span> in general does not impose any naming convention on the variable names used in the job sections and leaves the details to the respective model setup, there are a few exceptions.</text:p>
<text:ptext:style-name="P55">While <text:spantext:style-name="T9">mkexp</text:span> in general does not impose any naming convention on the variable names used in the job sections and leaves the details to the respective model setup, there are a few exceptions.</text:p>
<text:ptext:style-name="P168">tasks</text:p>
<text:ptext:style-name="P168">tasks</text:p>
<text:ptext:style-name="P187">The total number of parallel (MPI) tasks that will be started when running the model. If a job section does not define 'tasks', its value defaults to 'nodes' times 'tasks_per_node'. Some models require that 'tasks' may explicitly be set to some artificial value to trigger the testing mode.</text:p>
<text:ptext:style-name="P187">The total number of parallel (MPI) tasks that will be started when running the model. If a job section does not define 'tasks', its value defaults to 'nodes' times 'tasks_per_node'. Some models require that 'tasks' may explicitly be set to some artificial value to trigger the testing mode.</text:p>
...
@@ -2442,7 +2442,7 @@
...
@@ -2442,7 +2442,7 @@
<text:ptext:style-name="P187">Number of computing nodes required on the computing system. Needed if 'tasks' is not set.</text:p>
<text:ptext:style-name="P187">Number of computing nodes required on the computing system. Needed if 'tasks' is not set.</text:p>
<text:ptext:style-name="P187">Number of parallel (MPI) tasks on a single node. Needed if 'tasks' is not set.</text:p>
<text:ptext:style-name="P187">Number of parallel (MPI) tasks on a single node. Needed if 'tasks' is not set.</text:p>
<text:htext:style-name="P234"text:outline-level="3"><text:bookmark-starttext:name="__RefHeading__2570_1114405012"/>Overriding namelist settings in derived jobs<text:bookmark-endtext:name="__RefHeading__2570_1114405012"/></text:h>
<text:htext:style-name="P236"text:outline-level="3"><text:bookmark-starttext:name="__RefHeading__2570_1114405012"/>Overriding namelist settings in derived jobs<text:bookmark-endtext:name="__RefHeading__2570_1114405012"/></text:h>
<text:ptext:style-name="P50">There is special provision to change namelist files settings for a specific job. Consider this setting from the introductory example.</text:p>
<text:ptext:style-name="P50">There is special provision to change namelist files settings for a specific job. Consider this setting from the introductory example.</text:p>
<text:ptext:style-name="P46"><text:spantext:style-name="T98">This</text:span><text:spantext:style-name="T92"> will result in a 'joe1234.run_first' file that is identical to 'joe1234.run' except for the 'use_dynveg' setting.</text:span></text:p>
<text:ptext:style-name="P46"><text:spantext:style-name="T98">This</text:span><text:spantext:style-name="T92"> will result in a 'joe1234.run_first' file that is identical to 'joe1234.run' except for the 'use_dynveg' setting.</text:span></text:p>
<text:ptext:style-name="P48"><text:spantext:style-name="T92">While the definition of .config variables may use</text:span><text:spantext:style-name="T99"> variable references like</text:span><text:spantext:style-name="T92"> $NAME or ${NAME} to include the </text:span><text:spantext:style-name="T99">verbatim </text:span><text:spantext:style-name="T92">value of other .config variables, this may not always be what you want. If you want to create a job </text:span><text:spantext:style-name="T99">script</text:span><text:spantext:style-name="T92"> that is supposed to be 'user-serviceable' for certain applications, the users will not appreciate having to change the same value several times in the same script. </text:span><text:spantext:style-name="T99">Instead they will want to have a single, native script variable that is used throughout the job script, and that may be re-defined on a single line.</text:span></text:p>
<text:ptext:style-name="P48"><text:spantext:style-name="T92">While the definition of .config variables may use</text:span><text:spantext:style-name="T99"> variable references like</text:span><text:spantext:style-name="T92"> $NAME or ${NAME} to include the </text:span><text:spantext:style-name="T99">verbatim </text:span><text:spantext:style-name="T92">value of other .config variables, this may not always be what you want. If you want to create a job </text:span><text:spantext:style-name="T99">script</text:span><text:spantext:style-name="T92"> that is supposed to be 'user-serviceable' for certain applications, the users will not appreciate having to change the same value several times in the same script. </text:span><text:spantext:style-name="T99">Instead they will want to have a single, native script variable that is used throughout the job script, and that may be re-defined on a single line.</text:span></text:p>
<text:ptext:style-name="P52">To allow this, <text:spantext:style-name="T9">mkexp</text:span> locates all expressions like $${NAME} in the configuration values, and re-formats them to the syntax of the current job script:</text:p>
<text:ptext:style-name="P52">To allow this, <text:spantext:style-name="T9">mkexp</text:span> locates all expressions like $${NAME} in the configuration values, and re-formats them to the syntax of the current job script:</text:p>
<text:ptext:style-name="P139">print<text:spantext:style-name="T206">(</text:span>'<text:spantext:style-name="T92">This experiment was generated by </text:span><text:spantext:style-name="T101">' + str(</text:span><text:spantext:style-name="T92">NAME) </text:span><text:spantext:style-name="T101">+ '</text:span>'<text:spantext:style-name="T206">)</text:span></text:p>
<text:ptext:style-name="P139">print<text:spantext:style-name="T206">(</text:span>'<text:spantext:style-name="T92">This experiment was generated by </text:span><text:spantext:style-name="T101">' + str(</text:span><text:spantext:style-name="T92">NAME) </text:span><text:spantext:style-name="T101">+ '</text:span>'<text:spantext:style-name="T206">)</text:span></text:p>
<text:ptext:style-name="P61">In the previous section, the native variables were initialized by an addition<text:spantext:style-name="T173">al script line. While this is sufficient for a small number of variables, it may be difficult to maintain these initialization lines for a more complex setup with changing requirements.</text:span></text:p>
<text:ptext:style-name="P61">In the previous section, the native variables were initialized by an addition<text:spantext:style-name="T173">al script line. While this is sufficient for a small number of variables, it may be difficult to maintain these initialization lines for a more complex setup with changing requirements.</text:span></text:p>
<text:ptext:style-name="P61"><text:spantext:style-name="T174">To allow a self-maintaining variable list based on the current configuration, </text:span><text:spantext:style-name="T20">mkexp</text:span><text:spantext:style-name="T174"> maintains the special variable VARIABLES_. When generating output for</text:span></text:p>
<text:ptext:style-name="P61"><text:spantext:style-name="T174">To allow a self-maintaining variable list based on the current configuration, </text:span><text:spantext:style-name="T20">mkexp</text:span><text:spantext:style-name="T174"> maintains the special variable VARIABLES_. When generating output for</text:span></text:p>
<text:ptext:style-name="P127">NAME = Joe User</text:p>
<text:ptext:style-name="P127">NAME = Joe User</text:p>
...
@@ -2511,12 +2511,12 @@
...
@@ -2511,12 +2511,12 @@
<text:ptext:style-name="P85">may be used to regenerate scripts with a new final date. Note that these settings are also recorded, i.e. running just './update' the next time will again set FINAL_DATE.</text:p>
<text:ptext:style-name="P85">may be used to regenerate scripts with a new final date. Note that these settings are also recorded, i.e. running just './update' the next time will again set FINAL_DATE.</text:p>
<text:ptext:style-name="P60"><text:spantext:style-name="T43">Of course, there is also the possibility to </text:span><text:spantext:style-name="T53">change</text:span><text:spantext:style-name="T43"> the </text:span><text:spantext:style-name="T19">generated</text:span><text:spantext:style-name="T52"></text:span><text:spantext:style-name="T43">job scripts directly, and then go on. This is fine as long as the required setting is using a native variable or is otherwise easily editable. On the other hand, </text:span><text:spantext:style-name="T54">facing</text:span><text:spantext:style-name="T43"> the next </text:span><text:spantext:style-name="T54">change,</text:span><text:spantext:style-name="T43"> this might not be the case, so eventually you </text:span><text:spantext:style-name="T52">may</text:span><text:spantext:style-name="T43"> need to re-generate the whole thing. What now about those manual changes to the job scripts?</text:span></text:p>
<text:ptext:style-name="P60"><text:spantext:style-name="T43">Of course, there is also the possibility to </text:span><text:spantext:style-name="T53">change</text:span><text:spantext:style-name="T43"> the </text:span><text:spantext:style-name="T19">generated</text:span><text:spantext:style-name="T52"></text:span><text:spantext:style-name="T43">job scripts directly, and then go on. This is fine as long as the required setting is using a native variable or is otherwise easily editable. On the other hand, </text:span><text:spantext:style-name="T54">facing</text:span><text:spantext:style-name="T43"> the next </text:span><text:spantext:style-name="T54">change,</text:span><text:spantext:style-name="T43"> this might not be the case, so eventually you </text:span><text:spantext:style-name="T52">may</text:span><text:spantext:style-name="T43"> need to re-generate the whole thing. What now about those manual changes to the job scripts?</text:span></text:p>
<text:ptext:style-name="P60"><text:spantext:style-name="T43">Whenever </text:span><text:spantext:style-name="T9">mkexp</text:span><text:spantext:style-name="T43"> sees existing job scripts while trying to generate the new description, it will automatically create backup files. They are placed in a subdirectory of SCRIPT_DIR, named 'backup'. </text:span><text:spantext:style-name="T52">Also, the scripts for each regeneration are bundled in their own subdirectory, named after the current date-time stamp. </text:span><text:spantext:style-name="T53">This way you may easily compare old and new scripts to evaluate and possibly transfer any manual changes </text:span><text:spantext:style-name="T88">after a necessary regeneration</text:span><text:spantext:style-name="T53">.</text:span></text:p>
<text:ptext:style-name="P60"><text:spantext:style-name="T43">Whenever </text:span><text:spantext:style-name="T9">mkexp</text:span><text:spantext:style-name="T43"> sees existing job scripts while trying to generate the new description, it will automatically create backup files. They are placed in a subdirectory of SCRIPT_DIR, named 'backup'. </text:span><text:spantext:style-name="T52">Also, the scripts for each regeneration are bundled in their own subdirectory, named after the current date-time stamp. </text:span><text:spantext:style-name="T53">This way you may easily compare old and new scripts to evaluate and possibly transfer any manual changes </text:span><text:spantext:style-name="T88">after a necessary regeneration</text:span><text:spantext:style-name="T53">.</text:span></text:p>
<text:ptext:style-name="P12">The above examples neglect an important feature <text:spantext:style-name="T119">of job descriptions, namely the system or machine dependent set up. Different computing centers use different job control software and naming conventions, might provide different versions of the same software at differing locations. This needs to be handled in a way that is independent of the other configuration as far as possible.</text:span></text:p>
<text:ptext:style-name="P12">The above examples neglect an important feature <text:spantext:style-name="T119">of job descriptions, namely the system or machine dependent set up. Different computing centers use different job control software and naming conventions, might provide different versions of the same software at differing locations. This needs to be handled in a way that is independent </text:span><text:soft-page-break/><text:spantext:style-name="T119">of the other configuration as far as possible.</text:span></text:p>
<text:ptext:style-name="P13">For this, a standard environment, like a standard experiment, consists of a .config file and a corresponding template. The <text:spantext:style-name="T9">environmentname</text:span>.config file contains settings like directory paths or a description of machine capacities for job control</text:p>
<text:ptext:style-name="P13">For this, a standard environment, like a standard experiment, consists of a .config file and a corresponding template. The <text:spantext:style-name="T9">environmentname</text:span>.config file contains settings like directory paths or a description of machine capacities for job control</text:p>
<text:ptext:style-name="P13">The actual job control headers needed to run a certain job step are saved as <text:spantext:style-name="T9">environmentname</text:span>.tmpl. This template will be filled using configuration information from both experiment, options, and environment. <text:spantext:style-name="T133">The resulting job header</text:span> is usually included at the beginning of the experiment's job script templates.</text:p>
<text:ptext:style-name="P13">The actual job control headers needed to run a certain job step are saved as <text:spantext:style-name="T9">environmentname</text:span>.tmpl. This template will be filled using configuration information from both experiment, options, and environment. <text:spantext:style-name="T133">The resulting job header</text:span> is usually included at the beginning of the experiment's job script templates.</text:p>
<text:ptext:style-name="P9">An experiment configuration <text:spantext:style-name="T175">may</text:span><text:spantext:style-name="T175">set</text:span> the special variable E<text:spantext:style-name="T175">NVIRONMENT</text:span> to the name of <text:spantext:style-name="T175">the host </text:span>e<text:spantext:style-name="T175">nvironment</text:span> to use. <text:spantext:style-name="T175">If it is not set, or empty, the 'DEFAULT' environment settings will be used.</text:span></text:p>
<text:ptext:style-name="P9">An experiment configuration <text:spantext:style-name="T175">may</text:span><text:spantext:style-name="T175">set</text:span> the special variable E<text:spantext:style-name="T175">NVIRONMENT</text:span> to the name of <text:spantext:style-name="T175">the host </text:span>e<text:spantext:style-name="T175">nvironment</text:span> to use. <text:spantext:style-name="T175">If it is not set, or empty, the 'DEFAULT' environment settings will be used.</text:span></text:p>
<text:htext:style-name="P251"text:outline-level="2"><text:bookmark-starttext:name="__RefHeading__1883_1672291846"/>Defining namelists and other configuration files<text:bookmark-endtext:name="__RefHeading__1883_1672291846"/></text:h>
<text:htext:style-name="P253"text:outline-level="2"><text:bookmark-starttext:name="__RefHeading__1883_1672291846"/>Defining namelists and other configuration files<text:bookmark-endtext:name="__RefHeading__1883_1672291846"/></text:h>
<text:ptext:style-name="P68"><text:spantext:style-name="T65">Most models need at least one Fortran namelist file or another form of configuration file to run. </text:span><text:spantext:style-name="T66">The special section [namelists] </text:span><text:spantext:style-name="T65">is designed to </text:span><text:spantext:style-name="T66">contain all information that goes into </text:span><text:spantext:style-name="T65">these</text:span><text:spantext:style-name="T66"> files. Each </text:span><text:spantext:style-name="T63">immediate </text:span><text:spantext:style-name="T66">subsection defines settings for a single file that will </text:span><text:spantext:style-name="T65">by default be </text:span><text:spantext:style-name="T66">formatted as a Fortran namelist. </text:span><text:spantext:style-name="T65">For </text:span><text:spantext:style-name="T66">example,</text:span></text:p>
<text:ptext:style-name="P68"><text:spantext:style-name="T65">Most models need at least one Fortran namelist file or another form of configuration file to run. </text:span><text:spantext:style-name="T66">The special section [namelists] </text:span><text:spantext:style-name="T65">is designed to </text:span><text:spantext:style-name="T66">contain all information that goes into </text:span><text:spantext:style-name="T65">these</text:span><text:spantext:style-name="T66"> files. Each </text:span><text:spantext:style-name="T63">immediate </text:span><text:spantext:style-name="T66">subsection defines settings for a single file that will </text:span><text:spantext:style-name="T65">by default be </text:span><text:spantext:style-name="T66">formatted as a Fortran namelist. </text:span><text:spantext:style-name="T65">For </text:span><text:spantext:style-name="T66">example,</text:span></text:p>
<text:ptext:style-name="P65"><text:spantext:style-name="T43">defines </text:span><text:spantext:style-name="T64">a single </text:span><text:spantext:style-name="T43">namelist file, </text:span><text:spantext:style-name="T67">'namelist.echam'</text:span><text:spantext:style-name="T43">, </text:span><text:spantext:style-name="T65">containing a single namelist group with four variables of different types. Note </text:span><text:spantext:style-name="T84">that you do not </text:span><text:spantext:style-name="T65">need to use quotes for strings nor periods for logical values.</text:span></text:p>
<text:ptext:style-name="P65"><text:spantext:style-name="T43">defines </text:span><text:spantext:style-name="T64">a single </text:span><text:spantext:style-name="T43">namelist file, </text:span><text:spantext:style-name="T67">'namelist.echam'</text:span><text:spantext:style-name="T43">, </text:span><text:spantext:style-name="T65">containing a single namelist group with four variables of different types. Note </text:span><text:spantext:style-name="T84">that you do not </text:span><text:spantext:style-name="T65">need to use quotes for strings nor periods for logical values.</text:span></text:p>
<text:htext:style-name="P237"text:outline-level="3"><text:bookmark-starttext:name="__RefHeading__2578_1114405012"/>Formatting the namelist information<text:bookmark-endtext:name="__RefHeading__2578_1114405012"/></text:h>
<text:htext:style-name="P239"text:outline-level="3"><text:bookmark-starttext:name="__RefHeading__2578_1114405012"/>Formatting the namelist information<text:bookmark-endtext:name="__RefHeading__2578_1114405012"/></text:h>
<text:ptext:style-name="P70"><text:spantext:style-name="T63">The </text:span><text:spantext:style-name="T64">names of the </text:span><text:spantext:style-name="T63">subsections of each namelist file entry, i.e. the second level subsections under the immediate subsections of [namelists], are taken as namelist group </text:span><text:spantext:style-name="T64">name</text:span><text:spantext:style-name="T63">s, and their variables are formatted as fields of this namelist </text:span><text:spantext:style-name="T64">group</text:span><text:spantext:style-name="T63">. </text:span><text:spantext:style-name="T64">In the </text:span><text:soft-page-break/><text:spantext:style-name="T64">example above, there is a single namelist group 'runctl', which will be converted to the Fortran namelist convention. </text:span><text:spantext:style-name="T187">The values of the group's fields are checked to determine whether they are numerical, logical, or string values. Logical and string values will then be formatted using periods or quotes, respectively.</text:span></text:p>
<text:ptext:style-name="P70"><text:spantext:style-name="T63">The </text:span><text:spantext:style-name="T64">names of the </text:span><text:spantext:style-name="T63">subsections of each namelist file entry, i.e. the second level subsections under the immediate subsections of [namelists], are taken as namelist group </text:span><text:spantext:style-name="T64">name</text:span><text:spantext:style-name="T63">s, and their variables are formatted as fields of this namelist </text:span><text:spantext:style-name="T64">group</text:span><text:spantext:style-name="T63">. </text:span><text:spantext:style-name="T64">In the example above, there is a single namelist group 'runctl', which will be converted to the Fortran namelist convention. </text:span><text:spantext:style-name="T187">The values of the group's fields are checked to determine whether they are numerical, logical, or string values. Logical and string values will then be formatted using periods or quotes, respectively.</text:span></text:p>
<text:ptext:style-name="P70"><text:spantext:style-name="T207">In the example above, the first four fields are single values of logical, integer, floating point, and string type.</text:span><text:spantext:style-name="T67"> The fifth is a list of integer values, that will be passed as such to the namelist file:</text:span></text:p>
<text:ptext:style-name="P70"><text:spantext:style-name="T207">In the example above, the first four fields are single values of logical, integer, floating </text:span><text:soft-page-break/><text:spantext:style-name="T207">point, and string type.</text:span><text:spantext:style-name="T67"> The fifth is a list of integer values, that will be passed as such to the namelist file:</text:span></text:p>
<text:htext:style-name="P242"text:outline-level="3"><text:bookmark-starttext:name="__RefHeading__2580_1114405012"/><text:spantext:style-name="T65">S</text:span><text:spantext:style-name="T43">uppressing namelist groups or variables</text:span><text:bookmark-endtext:name="__RefHeading__2580_1114405012"/></text:h>
<text:htext:style-name="P244"text:outline-level="3"><text:bookmark-starttext:name="__RefHeading__2580_1114405012"/><text:spantext:style-name="T65">S</text:span><text:spantext:style-name="T43">uppressing namelist groups or variables</text:span><text:bookmark-endtext:name="__RefHeading__2580_1114405012"/></text:h>
<text:ptext:style-name="P56">Both the namelist file sections and the namelist group section honor the special variable '.remove' which may be set to a list of names. Any namelist groups listed in the file's '.remove' variable, and any variables listed in the group's '.remove' variable will be deleted from the namelist definition.</text:p>
<text:ptext:style-name="P56">Both the namelist file sections and the namelist group section honor the special variable '.remove' which may be set to a list of names. Any namelist groups listed in the file's '.remove' variable, and any variables listed in the group's '.remove' variable will be deleted from the namelist definition.</text:p>
<text:ptext:style-name="P56">The names may contain the usual file wildcards, '*' and '?' to remove a whole range of groups or variables.</text:p>
<text:ptext:style-name="P56">The names may contain the usual file wildcards, '*' and '?' to remove a whole range of groups or variables.</text:p>
<text:ptext:style-name="P79"><text:spantext:style-name="T43">While '.remove' is useful to </text:span><text:spantext:style-name="T74">suppress</text:span><text:spantext:style-name="T43"> default settings that must not be present for the experiment setup, currently there is no way to resurrect a removed setting in a later setup level. </text:span><text:spantext:style-name="T75">Therefore, its use in model setups is strongly discouraged.</text:span></text:p>
<text:ptext:style-name="P79"><text:spantext:style-name="T43">While '.remove' is useful to </text:span><text:spantext:style-name="T74">suppress</text:span><text:spantext:style-name="T43"> default settings that must not be present for the experiment setup, currently there is no way to resurrect a removed setting in a later setup level. </text:span><text:spantext:style-name="T75">Therefore, its use in model setups is strongly discouraged.</text:span></text:p>
<text:htext:style-name="P238"text:outline-level="3"><text:bookmark-starttext:name="__RefHeading__2714_1114405012"/>Using the namelist text<text:bookmark-endtext:name="__RefHeading__2714_1114405012"/></text:h>
<text:htext:style-name="P240"text:outline-level="3"><text:bookmark-starttext:name="__RefHeading__2714_1114405012"/>Using the namelist text<text:bookmark-endtext:name="__RefHeading__2714_1114405012"/></text:h>
<text:ptext:style-name="P66"><text:spantext:style-name="T65">T</text:span><text:spantext:style-name="T67">he </text:span><text:spantext:style-name="T56">formatted namelist text </text:span><text:spantext:style-name="T43">is </text:span><text:spantext:style-name="T67">stor</text:span><text:spantext:style-name="T43">ed </text:span><text:spantext:style-name="T67">in</text:span><text:spantext:style-name="T43"> a global variable </text:span><text:spantext:style-name="T67">that may be used by a template placeholder</text:span><text:spantext:style-name="T43">. </text:span><text:spantext:style-name="T65">This way, </text:span><text:spantext:style-name="T43">all job information </text:span><text:spantext:style-name="T67">available </text:span><text:spantext:style-name="T65">is written to</text:span><text:spantext:style-name="T43"> a single script or description file, </text:span><text:spantext:style-name="T65">and </text:span><text:spantext:style-name="T43">native script variables </text:span><text:spantext:style-name="T65">may be used</text:span><text:spantext:style-name="T43"> in the namelist definitions.</text:span></text:p>
<text:ptext:style-name="P66"><text:spantext:style-name="T65">T</text:span><text:spantext:style-name="T67">he </text:span><text:spantext:style-name="T56">formatted namelist text </text:span><text:spantext:style-name="T43">is </text:span><text:spantext:style-name="T67">stor</text:span><text:spantext:style-name="T43">ed </text:span><text:spantext:style-name="T67">in</text:span><text:spantext:style-name="T43"> a global variable </text:span><text:spantext:style-name="T67">that may be used by a template placeholder</text:span><text:spantext:style-name="T43">. </text:span><text:spantext:style-name="T65">This way, </text:span><text:spantext:style-name="T43">all job information </text:span><text:spantext:style-name="T67">available </text:span><text:spantext:style-name="T65">is written to</text:span><text:spantext:style-name="T43"> a single script or description file, </text:span><text:spantext:style-name="T65">and </text:span><text:spantext:style-name="T43">native script variables </text:span><text:spantext:style-name="T65">may be used</text:span><text:spantext:style-name="T43"> in the namelist definitions.</text:span></text:p>
<text:ptext:style-name="P68"><text:spantext:style-name="T56">The name of </text:span><text:spantext:style-name="T67">this </text:span><text:spantext:style-name="T56">variable</text:span><text:spantext:style-name="T57"></text:span><text:spantext:style-name="T67">is</text:span><text:spantext:style-name="T56"> generated from </text:span><text:spantext:style-name="T67">its</text:span><text:spantext:style-name="T56"></text:span><text:spantext:style-name="T57">respective</text:span><text:spantext:style-name="T56"> file name, </text:span><text:spantext:style-name="T67">like</text:span><text:spantext:style-name="T56">'namelist.echam', by </text:span><text:spantext:style-name="T66">converting all letters to upper case </text:span><text:spantext:style-name="T56">(</text:span><text:spantext:style-name="T66">namelist.echam →</text:span><text:spantext:style-name="T56"></text:span><text:spantext:style-name="T66">NAMELIST.ECHAM</text:span><text:spantext:style-name="T56">) </text:span><text:spantext:style-name="T57">and </text:span><text:spantext:style-name="T56">replacing non-word characters by an underscore (NAMELIST.ECHAM → NAMELIST_ECHAM).</text:span></text:p>
<text:ptext:style-name="P68"><text:spantext:style-name="T56">The name of </text:span><text:spantext:style-name="T67">this </text:span><text:spantext:style-name="T56">variable</text:span><text:spantext:style-name="T57"></text:span><text:spantext:style-name="T67">is</text:span><text:spantext:style-name="T56"> generated from </text:span><text:spantext:style-name="T67">its</text:span><text:spantext:style-name="T56"></text:span><text:spantext:style-name="T57">respective</text:span><text:spantext:style-name="T56"> file name, </text:span><text:spantext:style-name="T67">like</text:span><text:spantext:style-name="T56">'namelist.echam', by </text:span><text:spantext:style-name="T66">converting all letters to upper case </text:span><text:spantext:style-name="T56">(</text:span><text:spantext:style-name="T66">namelist.echam →</text:span><text:spantext:style-name="T56"></text:span><text:spantext:style-name="T66">NAMELIST.ECHAM</text:span><text:spantext:style-name="T56">) </text:span><text:spantext:style-name="T57">and </text:span><text:spantext:style-name="T56">replacing non-word characters by an underscore (NAMELIST.ECHAM → NAMELIST_ECHAM).</text:span></text:p>
<text:ptext:style-name="P69"><text:spantext:style-name="T67">Note how this setup uses the native script variable 'EXP_ID' to set the </text:span><text:spantext:style-name="T63">namelist contents.</text:span></text:p>
<text:ptext:style-name="P69"><text:spantext:style-name="T67">Note how this setup uses the native script variable 'EXP_ID' to set the </text:span><text:spantext:style-name="T63">namelist contents.</text:span></text:p>
<text:ptext:style-name="P69"><text:spantext:style-name="T68">As in the example above, the script template is responsible for writing the namelist text to an actual file. </text:span><text:spantext:style-name="T67">While in general the namelist file takes the same name as the .config subsection defining it, </text:span><text:spantext:style-name="T25">mkexp</text:span><text:spantext:style-name="T67"></text:span><text:spantext:style-name="T68">ha</text:span><text:spantext:style-name="T67">s currently no way to enforce this. The template needs to be set up accordingly.</text:span></text:p>
<text:ptext:style-name="P69"><text:spantext:style-name="T68">As in the example above, the script template is responsible for writing the namelist text to an actual file. </text:span><text:spantext:style-name="T67">While in general the namelist file takes the same name as the .config subsection defining it, </text:span><text:spantext:style-name="T25">mkexp</text:span><text:spantext:style-name="T67"></text:span><text:spantext:style-name="T68">ha</text:span><text:spantext:style-name="T67">s currently no way to enforce this. The template needs to be set up accordingly.</text:span></text:p>
<text:htext:style-name="P243"text:outline-level="3">Using native script variables in namelists</text:h>
<text:htext:style-name="P245"text:outline-level="3">Using native script variables in namelists</text:h>
<text:ptext:style-name="P86">When using native script variables in a namelist, it may be necessary to suppress the conversion of values to namelist conventions. Consider</text:p>
<text:ptext:style-name="P86">When using native script variables in a namelist, it may be necessary to suppress the conversion of values to namelist conventions. Consider</text:p>
<text:ptext:style-name="P86">When the text for NAMELIST_ECHAM is generated, <text:spantext:style-name="T9">mkexp</text:span><text:spantext:style-name="T43"> converts the value of 'dt_stop' to a string surrounded by single quotes (see 'EXP_ID' in the previous example), as '$$final_date' cannot be </text:span><text:spantext:style-name="T90">recognized</text:span><text:spantext:style-name="T43"> as a numer</text:span><text:spantext:style-name="T90">ic</text:span><text:spantext:style-name="T43"> or logical value. In the namelist context however it is </text:span><text:spantext:style-name="T90">needed</text:span><text:spantext:style-name="T43"> as a</text:span><text:spantext:style-name="T90">n unquoted</text:span><text:spantext:style-name="T43"> list of integers. </text:span><text:spantext:style-name="T89">To fix this, simply use the special syntax 'raw(…)'</text:span><text:spantext:style-name="T90">around the value:</text:span></text:p>
<text:ptext:style-name="P86">When the text for NAMELIST_ECHAM is generated, <text:spantext:style-name="T9">mkexp</text:span><text:spantext:style-name="T43"> converts the value of 'dt_stop' to a string surrounded by single quotes (see 'EXP_ID' in the previous example), as '$$final_date' cannot be </text:span><text:spantext:style-name="T90">recognized</text:span><text:spantext:style-name="T43"> as a numer</text:span><text:spantext:style-name="T90">ic</text:span><text:spantext:style-name="T43"> or logical value. In the namelist context however it is </text:span><text:spantext:style-name="T90">needed</text:span><text:spantext:style-name="T43"> as a</text:span><text:spantext:style-name="T90">n unquoted</text:span><text:spantext:style-name="T43"> list of integers. </text:span><text:spantext:style-name="T89">To fix this, simply use the special syntax 'raw(…)'</text:span><text:spantext:style-name="T90">around the value:</text:span></text:p>
<text:ptext:style-name="P57">which disables the conversion to a valid namelist value, leaving the correct formatting of the native variable to the script.</text:p>
<text:ptext:style-name="P57">which disables the conversion to a valid namelist value, leaving the correct formatting of the native variable to the script.</text:p>
<text:ptext:style-name="P80"><text:spantext:style-name="T78">A [namelists] subsection may not only define a Fortran namelist file but also a custom format configuration file. </text:span><text:spantext:style-name="T76">F</text:span><text:spantext:style-name="T43">or any </text:span><text:spantext:style-name="T78">of these</text:span><text:spantext:style-name="T77"> files, the special section variable '.use_template' m</text:span><text:spantext:style-name="T91">ay</text:span><text:spantext:style-name="T77"> be set to 'true', </text:span><text:spantext:style-name="T91">if </text:span><text:spantext:style-name="T78">the model setup provid</text:span><text:spantext:style-name="T91">es</text:span><text:spantext:style-name="T78"> a template '</text:span><text:spantext:style-name="T29">subsection</text:span><text:spantext:style-name="T78">.tmpl', </text:span><text:spantext:style-name="T91">or to an arbitrary template name, replacing </text:span><text:spantext:style-name="T35">subsection,</text:span><text:spantext:style-name="T91"> if a template is applicable to more than one section</text:span><text:spantext:style-name="T78">. This template is expanded using the subsection's variables to create a suitably formatted text. </text:span><text:spantext:style-name="T79">As for genuine namelists, the result is stored in a global variable.</text:span></text:p>
<text:ptext:style-name="P80"><text:spantext:style-name="T78">A [namelists] subsection may not only define a Fortran namelist file but also a custom format configuration file. </text:span><text:spantext:style-name="T76">F</text:span><text:spantext:style-name="T43">or any </text:span><text:spantext:style-name="T78">of these</text:span><text:spantext:style-name="T77"> files, the special section variable '.use_template' m</text:span><text:spantext:style-name="T91">ay</text:span><text:spantext:style-name="T77"> be set to 'true', </text:span><text:spantext:style-name="T91">if </text:span><text:spantext:style-name="T78">the model setup provid</text:span><text:spantext:style-name="T91">es</text:span><text:spantext:style-name="T78"> a template '</text:span><text:spantext:style-name="T29">subsection</text:span><text:spantext:style-name="T78">.tmpl', </text:span><text:spantext:style-name="T91">or to an arbitrary template name, replacing </text:span><text:spantext:style-name="T35">subsection,</text:span><text:spantext:style-name="T91"> if a template is applicable to more than one section</text:span><text:spantext:style-name="T78">. This template is expanded using the subsection's variables to create a suitably formatted text. </text:span><text:spantext:style-name="T79">As for genuine namelists, the result is stored in a global variable.</text:span></text:p>
<text:htext:style-name="Heading_20_2"text:outline-level="2"><text:bookmark-starttext:name="__RefHeading__2831_1132221942"/><text:spantext:style-name="T79">D</text:span><text:spantext:style-name="T43">efining input files for an experiment</text:span><text:bookmark-endtext:name="__RefHeading__2831_1132221942"/></text:h>
<text:htext:style-name="Heading_20_2"text:outline-level="2"><text:bookmark-starttext:name="__RefHeading__2831_1132221942"/><text:spantext:style-name="T79">D</text:span><text:spantext:style-name="T43">efining input files for an experiment</text:span><text:bookmark-endtext:name="__RefHeading__2831_1132221942"/></text:h>
<text:ptext:style-name="P83"><text:spantext:style-name="T43">While the namelist files determine the model properties, the model state </text:span><text:spantext:style-name="T87">also </text:span><text:spantext:style-name="T43">depends on input files for initial and boundary conditions or assimilation data. These files are defined in the [files] special section. </text:span><text:spantext:style-name="T87">There are no restrictions on the content structure of this section, and the job script templates are responsible for converting this content into a suitable script text.</text:span></text:p>
<text:ptext:style-name="P83"><text:spantext:style-name="T43">While the namelist files determine the model properties, the model state </text:span><text:spantext:style-name="T87">also </text:span><text:spantext:style-name="T43">depends on input files for initial and boundary conditions or assimilation data. These files are defined in the [files] special section. </text:span><text:spantext:style-name="T87">There are no restrictions on the content structure of this section, and the job script templates are responsible for converting this content into a suitable script text.</text:span></text:p>
<text:ptext:style-name="P51"><text:spantext:style-name="T211">As for namelists, t</text:span>here is special provision to change <text:spantext:style-name="T210">the [</text:span>files<text:spantext:style-name="T210">]</text:span> settings for a specific job. <text:spantext:style-name="T210">Let us assume</text:span><text:spantext:style-name="T210">that a model run continues a previous run and reads that run's state from a restart file that may be defined like this:</text:span></text:p>
<text:ptext:style-name="P51"><text:spantext:style-name="T211">As for namelists, t</text:span>here is special provision to change <text:spantext:style-name="T210">the [</text:span>files<text:spantext:style-name="T210">]</text:span> settings for a specific job. <text:spantext:style-name="T210">Let us assume</text:span><text:spantext:style-name="T210">that a model run continues a previous run and reads that run's state from a restart file that may be defined like this:</text:span></text:p>