From 84a37072ccbb3d945741e9b2f189f1523050d1dd Mon Sep 17 00:00:00 2001 From: Karl-Hermann Wieners <karl-hermann.wieners@mpimet.mpg.de> Date: Wed, 22 Jun 2016 13:25:41 +0000 Subject: [PATCH] Prepared for release 0.4.1 * Updated documentation version * Updated package version --- doc/mkexp.fodt | 482 ++++++++++++++++++++++++------------------------- doc/mkexp.pdf | Bin 393709 -> 393723 bytes setup.py | 2 +- 3 files changed, 242 insertions(+), 242 deletions(-) diff --git a/doc/mkexp.fodt b/doc/mkexp.fodt index 96dc2b3..cd57115 100644 --- a/doc/mkexp.fodt +++ b/doc/mkexp.fodt @@ -1,24 +1,24 @@ <?xml version="1.0" encoding="UTF-8"?> <office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.text"> - <office:meta><meta:creation-date>2015-01-05T17:44:27.618344249</meta:creation-date><dc:title>Make Experiments!</dc:title><meta:editing-duration>P12DT1H45M10S</meta:editing-duration><meta:editing-cycles>124</meta:editing-cycles><meta:generator>LibreOffice/4.2.8.2$Linux_X86_64 LibreOffice_project/420m0$Build-2</meta:generator><meta:initial-creator>Karl-Hermann Wieners</meta:initial-creator><dc:date>2016-06-01T11:36:33.786926777</dc:date><dc:creator>Karl-Hermann Wieners</dc:creator><meta:printed-by>Karl-Hermann Wieners</meta:printed-by><meta:print-date>2015-01-20T10:55:48.576690105</meta:print-date><dc:subject>Run-script generation for earth system models</dc:subject><meta:document-statistic meta:table-count="0" meta:image-count="0" meta:object-count="0" meta:page-count="28" meta:paragraph-count="559" meta:word-count="7600" meta:character-count="48482" meta:non-whitespace-character-count="41043"/><meta:template xlink:type="simple" xlink:actuate="onRequest" xlink:title="A4" xlink:href="../../../../../../home/m221078/.config/libreoffice/4/user/template/A4.ott" meta:date="2015-01-05T17:44:27.463210655"/></office:meta> + <office:meta><meta:creation-date>2015-01-05T17:44:27.618344249</meta:creation-date><dc:title>Make Experiments!</dc:title><meta:editing-duration>P12DT1H45M10S</meta:editing-duration><meta:editing-cycles>125</meta:editing-cycles><meta:generator>LibreOffice/4.2.8.2$Linux_X86_64 LibreOffice_project/420m0$Build-2</meta:generator><meta:initial-creator>Karl-Hermann Wieners</meta:initial-creator><dc:date>2016-06-22T13:53:28.227655269</dc:date><dc:creator>Karl-Hermann Wieners</dc:creator><meta:printed-by>Karl-Hermann Wieners</meta:printed-by><meta:print-date>2015-01-20T10:55:48.576690105</meta:print-date><dc:subject>Run-script generation for earth system models</dc:subject><meta:document-statistic meta:table-count="0" meta:image-count="0" meta:object-count="0" meta:page-count="28" meta:paragraph-count="559" meta:word-count="7600" meta:character-count="48479" meta:non-whitespace-character-count="41040"/><meta:template xlink:type="simple" xlink:actuate="onRequest" xlink:title="A4" xlink:href="../../../../../../home/m221078/.config/libreoffice/4/user/template/A4.ott" meta:date="2015-01-05T17:44:27.463210655"/></office:meta> <office:settings> <config:config-item-set config:name="ooo:view-settings"> - <config:config-item config:name="ViewAreaTop" config:type="long">790956</config:config-item> - <config:config-item config:name="ViewAreaLeft" config:type="long">1983</config:config-item> + <config:config-item config:name="ViewAreaTop" config:type="long">56</config:config-item> + <config:config-item config:name="ViewAreaLeft" config:type="long">1863</config:config-item> <config:config-item config:name="ViewAreaWidth" config:type="long">18501</config:config-item> - <config:config-item config:name="ViewAreaHeight" config:type="long">16850</config:config-item> + <config:config-item config:name="ViewAreaHeight" config:type="long">17676</config:config-item> <config:config-item config:name="ShowRedlineChanges" config:type="boolean">true</config:config-item> <config:config-item config:name="InBrowseMode" config:type="boolean">false</config:config-item> <config:config-item-map-indexed config:name="Views"> <config:config-item-map-entry> <config:config-item config:name="ViewId" config:type="string">view2</config:config-item> - <config:config-item config:name="ViewLeft" config:type="long">11986</config:config-item> - <config:config-item config:name="ViewTop" config:type="long">799941</config:config-item> - <config:config-item config:name="VisibleLeft" config:type="long">1983</config:config-item> - <config:config-item config:name="VisibleTop" config:type="long">790956</config:config-item> - <config:config-item config:name="VisibleRight" config:type="long">20482</config:config-item> - <config:config-item config:name="VisibleBottom" config:type="long">807805</config:config-item> + <config:config-item config:name="ViewLeft" config:type="long">11128</config:config-item> + <config:config-item config:name="ViewTop" config:type="long">12501</config:config-item> + <config:config-item config:name="VisibleLeft" config:type="long">1863</config:config-item> + <config:config-item config:name="VisibleTop" config:type="long">56</config:config-item> + <config:config-item config:name="VisibleRight" config:type="long">20362</config:config-item> + <config:config-item config:name="VisibleBottom" config:type="long">17731</config:config-item> <config:config-item config:name="ZoomType" config:type="short">0</config:config-item> <config:config-item config:name="ViewLayoutColumns" config:type="short">0</config:config-item> <config:config-item config:name="ViewLayoutBookMode" config:type="boolean">false</config:config-item> @@ -81,9 +81,9 @@ <config:config-item config:name="ConsiderTextWrapOnObjPos" config:type="boolean">false</config:config-item> <config:config-item config:name="CurrentDatabaseCommandType" config:type="int">0</config:config-item> <config:config-item config:name="RedlineProtectionKey" config:type="base64Binary"/> - <config:config-item config:name="Rsid" config:type="int">14923544</config:config-item> + <config:config-item config:name="Rsid" config:type="int">14947719</config:config-item> <config:config-item config:name="PrintProspectRTL" config:type="boolean">false</config:config-item> - <config:config-item config:name="PrinterSetup" config:type="base64Binary">pwH+/09mZmljZWpldC00NjIwLXNlcmllcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ1VQUzpPZmZpY2VqZXQtNDYyMC1zZXJpZXMAAAAAAAAWAAMAyQAAAAAAAAAEAAhSAAAEdAAASm9iRGF0YSAxCnByaW50ZXI9T2ZmaWNlamV0LTQ2MjAtc2VyaWVzCm9yaWVudGF0aW9uPVBvcnRyYWl0CmNvcGllcz0xCmNvbGxhdGU9ZmFsc2UKbWFyZ2luZGFqdXN0bWVudD0wLDAsMCwwCmNvbG9yZGVwdGg9MjQKcHNsZXZlbD0wCnBkZmRldmljZT0xCmNvbG9yZGV2aWNlPTAKUFBEQ29udGV4RGF0YQpQYWdlU2l6ZTpBNABJbnB1dFNsb3Q6QXV0bwAAEgBDT01QQVRfRFVQTEVYX01PREUOAERVUExFWF9VTktOT1dO</config:config-item> + <config:config-item config:name="PrinterSetup" config:type="base64Binary">pwH+/09mZmljZWpldC00NjIwLXNlcmllcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ1VQUzpPZmZpY2VqZXQtNDYyMC1zZXJpZXMAAAAAAAAWAAMAyQAAAAAAAAAEAAhSAAAEdAAASm9iRGF0YSAxCnByaW50ZXI9T2ZmaWNlamV0LTQ2MjAtc2VyaWVzCm9yaWVudGF0aW9uPVBvcnRyYWl0CmNvcGllcz0xCmNvbGxhdGU9ZmFsc2UKbWFyZ2luZGFqdXN0bWVudD0wLDAsMCwwCmNvbG9yZGVwdGg9MjQKcHNsZXZlbD0wCnBkZmRldmljZT0xCmNvbG9yZGV2aWNlPTAKUFBEQ29udGV4RGF0YQpJbnB1dFNsb3Q6QXV0bwBQYWdlU2l6ZTpBNAAAEgBDT01QQVRfRFVQTEVYX01PREUOAERVUExFWF9VTktOT1dO</config:config-item> <config:config-item config:name="AlignTabStopPosition" config:type="boolean">true</config:config-item> <config:config-item config:name="ProtectForm" config:type="boolean">false</config:config-item> <config:config-item config:name="InvertBorderSpacing" config:type="boolean">false</config:config-item> @@ -955,319 +955,319 @@ <style:text-properties fo:font-style="normal" officeooo:rsid="00dbc83d" officeooo:paragraph-rsid="00dbc83d" style:font-style-asian="normal" style:font-style-complex="normal"/> </style:style> <style:style style:name="P193" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties fo:font-style="normal" fo:font-weight="normal" officeooo:rsid="00925c69" officeooo:paragraph-rsid="00925c69" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-style-complex="normal" style:font-weight-complex="normal"/> + <style:text-properties fo:font-style="normal" officeooo:rsid="00e102d3" officeooo:paragraph-rsid="00e102d3" style:font-style-asian="normal" style:font-style-complex="normal"/> </style:style> <style:style style:name="P194" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties fo:font-style="normal" fo:font-weight="normal" officeooo:rsid="00cef9a3" officeooo:paragraph-rsid="00d08d3b" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-style-complex="normal" style:font-weight-complex="normal"/> + <style:text-properties fo:font-style="normal" fo:font-weight="normal" officeooo:rsid="00925c69" officeooo:paragraph-rsid="00925c69" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-style-complex="normal" style:font-weight-complex="normal"/> </style:style> <style:style style:name="P195" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties fo:font-style="normal" style:text-underline-style="none" officeooo:rsid="009beecc" officeooo:paragraph-rsid="009beecc" style:font-style-asian="normal" style:font-style-complex="normal"/> + <style:text-properties fo:font-style="normal" fo:font-weight="normal" officeooo:rsid="00cef9a3" officeooo:paragraph-rsid="00d08d3b" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-style-complex="normal" style:font-weight-complex="normal"/> </style:style> <style:style style:name="P196" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties officeooo:rsid="00484f3f" officeooo:paragraph-rsid="004e33b4"/> + <style:text-properties fo:font-style="normal" style:text-underline-style="none" officeooo:rsid="009beecc" officeooo:paragraph-rsid="009beecc" style:font-style-asian="normal" style:font-style-complex="normal"/> </style:style> <style:style style:name="P197" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties officeooo:rsid="006c5326" officeooo:paragraph-rsid="006c5326"/> + <style:text-properties fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:rsid="00e1d614" officeooo:paragraph-rsid="00e1d614" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-style-complex="normal" style:font-weight-complex="normal"/> </style:style> <style:style style:name="P198" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties officeooo:paragraph-rsid="00779a5b"/> + <style:text-properties officeooo:rsid="00484f3f" officeooo:paragraph-rsid="004e33b4"/> </style:style> <style:style style:name="P199" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties fo:font-style="italic" officeooo:rsid="007ab691" officeooo:paragraph-rsid="007ab691" style:font-style-asian="italic" style:font-style-complex="italic"/> + <style:text-properties officeooo:rsid="006c5326" officeooo:paragraph-rsid="006c5326"/> </style:style> <style:style style:name="P200" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties fo:font-style="italic" officeooo:rsid="00925c69" officeooo:paragraph-rsid="00925c69" style:font-style-asian="italic" style:font-style-complex="italic"/> + <style:text-properties officeooo:paragraph-rsid="00779a5b"/> </style:style> <style:style style:name="P201" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties fo:font-style="italic" officeooo:rsid="00779a5b" officeooo:paragraph-rsid="00a52bc9" style:font-style-asian="italic" style:font-style-complex="italic"/> + <style:text-properties fo:font-style="italic" officeooo:rsid="007ab691" officeooo:paragraph-rsid="007ab691" style:font-style-asian="italic" style:font-style-complex="italic"/> </style:style> <style:style style:name="P202" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties officeooo:rsid="007a1e4b" officeooo:paragraph-rsid="007a1e4b"/> + <style:text-properties fo:font-style="italic" officeooo:rsid="00925c69" officeooo:paragraph-rsid="00925c69" style:font-style-asian="italic" style:font-style-complex="italic"/> </style:style> <style:style style:name="P203" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties officeooo:rsid="007ab691" officeooo:paragraph-rsid="007ab691"/> + <style:text-properties fo:font-style="italic" officeooo:rsid="00779a5b" officeooo:paragraph-rsid="00a52bc9" style:font-style-asian="italic" style:font-style-complex="italic"/> </style:style> <style:style style:name="P204" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties officeooo:rsid="007bf983" officeooo:paragraph-rsid="007bf983"/> + <style:text-properties officeooo:rsid="007a1e4b" officeooo:paragraph-rsid="007a1e4b"/> </style:style> <style:style style:name="P205" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties officeooo:rsid="007bf983" officeooo:paragraph-rsid="00dd5dd8"/> + <style:text-properties officeooo:rsid="007ab691" officeooo:paragraph-rsid="007ab691"/> </style:style> <style:style style:name="P206" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties officeooo:rsid="008e53fe" officeooo:paragraph-rsid="008f3b90"/> + <style:text-properties officeooo:rsid="007bf983" officeooo:paragraph-rsid="007bf983"/> </style:style> <style:style style:name="P207" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties officeooo:rsid="0090e55e" officeooo:paragraph-rsid="00913e1d"/> + <style:text-properties officeooo:rsid="007bf983" officeooo:paragraph-rsid="00dd5dd8"/> </style:style> <style:style style:name="P208" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties officeooo:rsid="00beeeb9" officeooo:paragraph-rsid="00beeeb9"/> + <style:text-properties officeooo:rsid="008e53fe" officeooo:paragraph-rsid="008f3b90"/> </style:style> <style:style style:name="P209" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties officeooo:rsid="00beeeb9" officeooo:paragraph-rsid="00c0dbdb"/> + <style:text-properties officeooo:rsid="0090e55e" officeooo:paragraph-rsid="00913e1d"/> </style:style> <style:style style:name="P210" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties officeooo:rsid="00c20e43" officeooo:paragraph-rsid="00c20e43"/> + <style:text-properties officeooo:rsid="00beeeb9" officeooo:paragraph-rsid="00beeeb9"/> </style:style> <style:style style:name="P211" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties officeooo:rsid="00cef9a3" officeooo:paragraph-rsid="00cef9a3"/> + <style:text-properties officeooo:rsid="00beeeb9" officeooo:paragraph-rsid="00c0dbdb"/> </style:style> <style:style style:name="P212" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties officeooo:rsid="00cfb468" officeooo:paragraph-rsid="00cfb468"/> + <style:text-properties officeooo:rsid="00c20e43" officeooo:paragraph-rsid="00c20e43"/> </style:style> <style:style style:name="P213" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties fo:font-weight="bold" officeooo:rsid="00d08d3b" officeooo:paragraph-rsid="00d08d3b" style:font-weight-asian="bold" style:font-weight-complex="bold"/> + <style:text-properties officeooo:rsid="00cef9a3" officeooo:paragraph-rsid="00cef9a3"/> </style:style> <style:style style:name="P214" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties fo:font-weight="bold" officeooo:rsid="00e1d614" officeooo:paragraph-rsid="00e1d614" style:font-weight-asian="bold" style:font-weight-complex="bold"/> + <style:text-properties officeooo:rsid="00cfb468" officeooo:paragraph-rsid="00cfb468"/> </style:style> <style:style style:name="P215" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties officeooo:rsid="00d15d24" officeooo:paragraph-rsid="00d15d24"/> + <style:text-properties fo:font-weight="bold" officeooo:rsid="00d08d3b" officeooo:paragraph-rsid="00d08d3b" style:font-weight-asian="bold" style:font-weight-complex="bold"/> </style:style> <style:style style:name="P216" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties officeooo:rsid="00dbc83d" officeooo:paragraph-rsid="00dbc83d"/> + <style:text-properties fo:font-weight="bold" officeooo:rsid="00e1d614" officeooo:paragraph-rsid="00e1d614" style:font-weight-asian="bold" style:font-weight-complex="bold"/> </style:style> <style:style style:name="P217" style:family="paragraph" style:parent-style-name="List_20_Contents"> + <style:text-properties officeooo:rsid="00d15d24" officeooo:paragraph-rsid="00d15d24"/> + </style:style> + <style:style style:name="P218" style:family="paragraph" style:parent-style-name="List_20_Contents"> + <style:text-properties officeooo:rsid="00dbc83d" officeooo:paragraph-rsid="00dbc83d"/> + </style:style> + <style:style style:name="P219" style:family="paragraph" style:parent-style-name="List_20_Contents"> <style:text-properties officeooo:rsid="00e102d3" officeooo:paragraph-rsid="00e102d3"/> </style:style> - <style:style style:name="P218" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> + <style:style style:name="P220" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> <style:text-properties officeooo:paragraph-rsid="007a1e4b"/> </style:style> - <style:style style:name="P219" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> + <style:style style:name="P221" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> <style:text-properties officeooo:rsid="007ab691" officeooo:paragraph-rsid="007ab691"/> </style:style> - <style:style style:name="P220" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> + <style:style style:name="P222" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> <style:text-properties officeooo:paragraph-rsid="007bf983"/> </style:style> - <style:style style:name="P221" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> + <style:style style:name="P223" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> <style:text-properties officeooo:rsid="008e53fe" officeooo:paragraph-rsid="008e53fe"/> </style:style> - <style:style style:name="P222" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> + <style:style style:name="P224" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> <style:text-properties fo:font-style="italic" officeooo:rsid="00925c69" officeooo:paragraph-rsid="00925c69" style:font-style-asian="italic" style:font-style-complex="italic"/> </style:style> - <style:style style:name="P223" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> + <style:style style:name="P225" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> <style:text-properties officeooo:paragraph-rsid="0090e55e"/> </style:style> - <style:style style:name="P224" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> + <style:style style:name="P226" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> <style:text-properties officeooo:rsid="00925c69" officeooo:paragraph-rsid="00925c69"/> </style:style> - <style:style style:name="P225" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> + <style:style style:name="P227" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> <style:text-properties officeooo:rsid="00beeeb9" officeooo:paragraph-rsid="00beeeb9"/> </style:style> - <style:style style:name="P226" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> + <style:style style:name="P228" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> <style:text-properties officeooo:rsid="00beeeb9" officeooo:paragraph-rsid="00c0dbdb"/> </style:style> - <style:style style:name="P227" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> + <style:style style:name="P229" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> <style:text-properties fo:font-weight="bold" officeooo:rsid="00cfb468" officeooo:paragraph-rsid="00cfb468" style:font-weight-asian="bold" style:font-weight-complex="bold"/> </style:style> - <style:style style:name="P228" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> + <style:style style:name="P230" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> <style:text-properties fo:font-weight="bold" officeooo:rsid="00d08d3b" officeooo:paragraph-rsid="00d08d3b" style:font-weight-asian="bold" style:font-weight-complex="bold"/> </style:style> - <style:style style:name="P229" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> + <style:style style:name="P231" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> <style:text-properties fo:font-weight="bold" officeooo:rsid="00e1d614" officeooo:paragraph-rsid="00e1d614" style:font-weight-asian="bold" style:font-weight-complex="bold"/> </style:style> - <style:style style:name="P230" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> + <style:style style:name="P232" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> <style:text-properties officeooo:rsid="00d08d3b" officeooo:paragraph-rsid="00d08d3b"/> </style:style> - <style:style style:name="P231" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> + <style:style style:name="P233" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> <style:text-properties officeooo:paragraph-rsid="00dbc83d"/> </style:style> - <style:style style:name="P232" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> + <style:style style:name="P234" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> <style:text-properties officeooo:paragraph-rsid="00dd5dd8"/> </style:style> - <style:style style:name="P233" style:family="paragraph" style:parent-style-name="Preformatted_20_Text_20_Interrupt"> + <style:style style:name="P235" style:family="paragraph" style:parent-style-name="Preformatted_20_Text_20_Interrupt"> <style:text-properties officeooo:paragraph-rsid="008c2cba"/> </style:style> - <style:style style:name="P234" style:family="paragraph" style:parent-style-name="Preformatted_20_Text_20_Indented"> + <style:style style:name="P236" style:family="paragraph" style:parent-style-name="Preformatted_20_Text_20_Indented"> <style:text-properties fo:font-style="normal" officeooo:rsid="008f3b90" officeooo:paragraph-rsid="008f3b90" style:font-style-asian="normal" style:font-style-complex="normal"/> </style:style> - <style:style style:name="P235" style:family="paragraph" style:parent-style-name="Preformatted_20_Text_20_Indented"> + <style:style style:name="P237" style:family="paragraph" style:parent-style-name="Preformatted_20_Text_20_Indented"> <style:text-properties fo:font-style="normal" fo:font-weight="normal" officeooo:rsid="00cba5e3" officeooo:paragraph-rsid="00d15d24" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-style-complex="normal" style:font-weight-complex="normal"/> </style:style> - <style:style style:name="P236" style:family="paragraph" style:parent-style-name="Preformatted_20_Text_20_Indented"> + <style:style style:name="P238" style:family="paragraph" style:parent-style-name="Preformatted_20_Text_20_Indented"> <style:text-properties fo:font-style="normal" fo:font-weight="normal" officeooo:rsid="00d15d24" officeooo:paragraph-rsid="00d15d24" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-style-complex="normal" style:font-weight-complex="normal"/> </style:style> - <style:style style:name="P237" style:family="paragraph" style:parent-style-name="Preformatted_20_Text_20_Indented"> + <style:style style:name="P239" style:family="paragraph" style:parent-style-name="Preformatted_20_Text_20_Indented"> <style:text-properties officeooo:paragraph-rsid="00cfb468"/> </style:style> - <style:style style:name="P238" style:family="paragraph" style:parent-style-name="Preformatted_20_Text_20_Indented"> + <style:style style:name="P240" style:family="paragraph" style:parent-style-name="Preformatted_20_Text_20_Indented"> <style:text-properties officeooo:rsid="00d08d3b" officeooo:paragraph-rsid="00d08d3b"/> </style:style> - <style:style style:name="P239" style:family="paragraph" style:parent-style-name="Preformatted_20_Text_20_Indented"> + <style:style style:name="P241" style:family="paragraph" style:parent-style-name="Preformatted_20_Text_20_Indented"> <style:text-properties officeooo:rsid="00d15d24" officeooo:paragraph-rsid="00d15d24"/> </style:style> - <style:style style:name="P240" style:family="paragraph" style:parent-style-name="Caption"> + <style:style style:name="P242" style:family="paragraph" style:parent-style-name="Caption"> <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/> </style:style> - <style:style style:name="P241" style:family="paragraph" style:parent-style-name="Contents_20_Heading"> + <style:style style:name="P243" style:family="paragraph" style:parent-style-name="Contents_20_Heading"> <style:paragraph-properties fo:break-before="page"/> </style:style> - <style:style style:name="P242" style:family="paragraph" style:parent-style-name="Heading_20_1"> + <style:style style:name="P244" style:family="paragraph" style:parent-style-name="Heading_20_1"> <style:paragraph-properties fo:break-before="page"/> <style:text-properties officeooo:rsid="000a3505" officeooo:paragraph-rsid="000a3505"/> </style:style> - <style:style style:name="P243" style:family="paragraph" style:parent-style-name="Contents_20_1"> + <style:style style:name="P245" style:family="paragraph" style:parent-style-name="Contents_20_1"> <style:paragraph-properties> <style:tab-stops> <style:tab-stop style:position="17cm" style:type="right" style:leader-style="dotted" style:leader-text="."/> </style:tab-stops> </style:paragraph-properties> </style:style> - <style:style style:name="P244" style:family="paragraph" style:parent-style-name="Contents_20_2"> + <style:style style:name="P246" style:family="paragraph" style:parent-style-name="Contents_20_2"> <style:paragraph-properties> <style:tab-stops> <style:tab-stop style:position="16.501cm" style:type="right" style:leader-style="dotted" style:leader-text="."/> </style:tab-stops> </style:paragraph-properties> </style:style> - <style:style style:name="P245" style:family="paragraph" style:parent-style-name="Contents_20_3"> + <style:style style:name="P247" style:family="paragraph" style:parent-style-name="Contents_20_3"> <style:paragraph-properties> <style:tab-stops> <style:tab-stop style:position="16.002cm" style:type="right" style:leader-style="dotted" style:leader-text="."/> </style:tab-stops> </style:paragraph-properties> </style:style> - <style:style style:name="P246" style:family="paragraph" style:parent-style-name="Heading_20_1"> + <style:style style:name="P248" style:family="paragraph" style:parent-style-name="Heading_20_1"> <style:text-properties officeooo:rsid="001888a2" officeooo:paragraph-rsid="009eea28"/> </style:style> - <style:style style:name="P247" style:family="paragraph" style:parent-style-name="Title" style:master-page-name=""> + <style:style style:name="P249" style:family="paragraph" style:parent-style-name="Title" style:master-page-name=""> <style:paragraph-properties style:page-number="auto"/> <style:text-properties officeooo:rsid="000a3505" officeooo:paragraph-rsid="000a3505"/> </style:style> - <style:style style:name="P248" style:family="paragraph" style:parent-style-name="Title" style:master-page-name=""> + <style:style style:name="P250" style:family="paragraph" style:parent-style-name="Title" style:master-page-name=""> <style:paragraph-properties style:page-number="auto"/> <style:text-properties officeooo:rsid="00cef9a3" officeooo:paragraph-rsid="00cef9a3"/> </style:style> - <style:style style:name="P249" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P251" style:family="paragraph" style:parent-style-name="Heading_20_3"> <style:text-properties officeooo:rsid="00750ebf" officeooo:paragraph-rsid="0074d148"/> </style:style> - <style:style style:name="P250" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P252" style:family="paragraph" style:parent-style-name="Heading_20_3"> <style:text-properties officeooo:rsid="00750ebf" officeooo:paragraph-rsid="00750ebf"/> </style:style> - <style:style style:name="P251" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P253" style:family="paragraph" style:parent-style-name="Heading_20_3"> <style:text-properties fo:font-style="normal" style:text-underline-style="none" style:font-style-asian="normal" style:font-style-complex="normal"/> </style:style> - <style:style style:name="P252" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P254" style:family="paragraph" style:parent-style-name="Heading_20_3"> <style:text-properties fo:font-style="normal" style:text-underline-style="none" officeooo:rsid="009beecc" officeooo:paragraph-rsid="009beecc" style:font-style-asian="normal" style:font-style-complex="normal"/> </style:style> - <style:style style:name="P253" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P255" style:family="paragraph" style:parent-style-name="Heading_20_3"> <style:text-properties fo:font-style="normal" style:text-underline-style="none" officeooo:paragraph-rsid="00c2926f" style:font-style-asian="normal" style:font-style-complex="normal"/> </style:style> - <style:style style:name="P254" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P256" style:family="paragraph" style:parent-style-name="Heading_20_3"> <style:text-properties fo:font-style="normal" style:font-style-asian="normal" style:font-style-complex="normal"/> </style:style> - <style:style style:name="P255" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P257" style:family="paragraph" style:parent-style-name="Heading_20_3"> <style:text-properties fo:font-style="normal" officeooo:paragraph-rsid="00931d47" style:font-style-asian="normal" style:font-style-complex="normal"/> </style:style> - <style:style style:name="P256" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P258" style:family="paragraph" style:parent-style-name="Heading_20_3"> <style:text-properties fo:font-style="normal" officeooo:rsid="009715be" officeooo:paragraph-rsid="009acc7d" style:font-style-asian="normal" style:font-style-complex="normal"/> </style:style> - <style:style style:name="P257" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P259" style:family="paragraph" style:parent-style-name="Heading_20_3"> <style:text-properties fo:font-style="normal" officeooo:rsid="009715be" officeooo:paragraph-rsid="00c6886f" style:font-style-asian="normal" style:font-style-complex="normal"/> </style:style> - <style:style style:name="P258" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P260" style:family="paragraph" style:parent-style-name="Heading_20_3"> <style:text-properties officeooo:rsid="0063d022" officeooo:paragraph-rsid="0063d022"/> </style:style> - <style:style style:name="P259" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P261" style:family="paragraph" style:parent-style-name="Heading_20_3"> <style:text-properties officeooo:paragraph-rsid="00931d47"/> </style:style> - <style:style style:name="P260" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P262" style:family="paragraph" style:parent-style-name="Heading_20_3"> <style:text-properties officeooo:rsid="00c6886f" officeooo:paragraph-rsid="00c6886f"/> </style:style> - <style:style style:name="P261" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P263" style:family="paragraph" style:parent-style-name="Heading_20_3"> <style:text-properties officeooo:rsid="00d7bd9c" officeooo:paragraph-rsid="00d7bd9c"/> </style:style> - <style:style style:name="P262" style:family="paragraph" style:parent-style-name="Subtitle"> + <style:style style:name="P264" style:family="paragraph" style:parent-style-name="Subtitle"> <style:text-properties officeooo:rsid="000a3505" officeooo:paragraph-rsid="000a3505"/> </style:style> - <style:style style:name="P263" style:family="paragraph" style:parent-style-name="Subtitle"> + <style:style style:name="P265" style:family="paragraph" style:parent-style-name="Subtitle"> <style:text-properties officeooo:rsid="000a3505" officeooo:paragraph-rsid="00beeeb9"/> </style:style> - <style:style style:name="P264" style:family="paragraph" style:parent-style-name="Subtitle"> + <style:style style:name="P266" style:family="paragraph" style:parent-style-name="Subtitle"> <style:text-properties officeooo:rsid="00beeeb9" officeooo:paragraph-rsid="00beeeb9"/> </style:style> - <style:style style:name="P265" style:family="paragraph" style:parent-style-name="Heading_20_2"> + <style:style style:name="P267" style:family="paragraph" style:parent-style-name="Heading_20_2"> <style:text-properties officeooo:paragraph-rsid="00b17591"/> </style:style> - <style:style style:name="P266" style:family="paragraph" style:parent-style-name="Heading_20_2"> + <style:style style:name="P268" style:family="paragraph" style:parent-style-name="Heading_20_2"> <style:text-properties officeooo:rsid="00288fc1" officeooo:paragraph-rsid="00423119"/> </style:style> - <style:style style:name="P267" style:family="paragraph" style:parent-style-name="Heading_20_2"> + <style:style style:name="P269" style:family="paragraph" style:parent-style-name="Heading_20_2"> <style:text-properties officeooo:paragraph-rsid="00423119"/> </style:style> - <style:style style:name="P268" style:family="paragraph" style:parent-style-name="Heading_20_2"> + <style:style style:name="P270" style:family="paragraph" style:parent-style-name="Heading_20_2"> <style:text-properties officeooo:paragraph-rsid="0063d022"/> </style:style> - <style:style style:name="P269" style:family="paragraph" style:parent-style-name="Heading_20_2"> + <style:style style:name="P271" style:family="paragraph" style:parent-style-name="Heading_20_2"> <style:text-properties fo:font-style="normal" officeooo:paragraph-rsid="0086f697" style:font-style-asian="normal" style:font-style-complex="normal"/> </style:style> - <style:style style:name="P270" style:family="paragraph" style:parent-style-name="Heading_20_1"> + <style:style style:name="P272" style:family="paragraph" style:parent-style-name="Title" style:master-page-name="First_20_Page"> + <style:paragraph-properties style:page-number="auto"/> + <style:text-properties officeooo:rsid="00cef9a3" officeooo:paragraph-rsid="00cef9a3"/> + </style:style> + <style:style style:name="P273" style:family="paragraph" style:parent-style-name="Heading_20_1"> <style:text-properties officeooo:rsid="001888a2" officeooo:paragraph-rsid="009eea28"/> </style:style> - <style:style style:name="P271" style:family="paragraph" style:parent-style-name="Heading_20_1"> + <style:style style:name="P274" style:family="paragraph" style:parent-style-name="Heading_20_1"> <style:paragraph-properties fo:break-before="page"/> <style:text-properties officeooo:rsid="000a3505" officeooo:paragraph-rsid="000a3505"/> </style:style> - <style:style style:name="P272" style:family="paragraph" style:parent-style-name="Title" style:master-page-name="First_20_Page"> - <style:paragraph-properties style:page-number="auto"/> - <style:text-properties officeooo:rsid="00cef9a3" officeooo:paragraph-rsid="00cef9a3"/> - </style:style> - <style:style style:name="P273" style:family="paragraph" style:parent-style-name="Heading_20_2"> + <style:style style:name="P275" style:family="paragraph" style:parent-style-name="Heading_20_2"> <style:text-properties officeooo:paragraph-rsid="00b17591"/> </style:style> - <style:style style:name="P274" style:family="paragraph" style:parent-style-name="Heading_20_2"> + <style:style style:name="P276" style:family="paragraph" style:parent-style-name="Heading_20_2"> <style:text-properties officeooo:rsid="00288fc1" officeooo:paragraph-rsid="00423119"/> </style:style> - <style:style style:name="P275" style:family="paragraph" style:parent-style-name="Heading_20_2"> + <style:style style:name="P277" style:family="paragraph" style:parent-style-name="Heading_20_2"> <style:text-properties officeooo:paragraph-rsid="00423119"/> </style:style> - <style:style style:name="P276" style:family="paragraph" style:parent-style-name="Heading_20_2"> + <style:style style:name="P278" style:family="paragraph" style:parent-style-name="Heading_20_2"> <style:text-properties officeooo:paragraph-rsid="0063d022"/> </style:style> - <style:style style:name="P277" style:family="paragraph" style:parent-style-name="Heading_20_2"> + <style:style style:name="P279" style:family="paragraph" style:parent-style-name="Heading_20_2"> <style:text-properties fo:font-style="normal" officeooo:paragraph-rsid="0086f697" style:font-style-asian="normal" style:font-style-complex="normal"/> </style:style> - <style:style style:name="P278" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P280" style:family="paragraph" style:parent-style-name="Heading_20_3"> <style:text-properties officeooo:rsid="00750ebf" officeooo:paragraph-rsid="0074d148"/> </style:style> - <style:style style:name="P279" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P281" style:family="paragraph" style:parent-style-name="Heading_20_3"> <style:text-properties officeooo:rsid="00750ebf" officeooo:paragraph-rsid="00750ebf"/> </style:style> - <style:style style:name="P280" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P282" style:family="paragraph" style:parent-style-name="Heading_20_3"> <style:text-properties officeooo:rsid="00d7bd9c" officeooo:paragraph-rsid="00d7bd9c"/> </style:style> - <style:style style:name="P281" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P283" style:family="paragraph" style:parent-style-name="Heading_20_3"> <style:text-properties fo:font-style="normal" style:text-underline-style="none" style:font-style-asian="normal" style:font-style-complex="normal"/> </style:style> - <style:style style:name="P282" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P284" style:family="paragraph" style:parent-style-name="Heading_20_3"> <style:text-properties fo:font-style="normal" style:text-underline-style="none" officeooo:rsid="009beecc" officeooo:paragraph-rsid="009beecc" style:font-style-asian="normal" style:font-style-complex="normal"/> </style:style> - <style:style style:name="P283" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P285" style:family="paragraph" style:parent-style-name="Heading_20_3"> <style:text-properties fo:font-style="normal" style:text-underline-style="none" officeooo:paragraph-rsid="00c2926f" style:font-style-asian="normal" style:font-style-complex="normal"/> </style:style> - <style:style style:name="P284" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P286" style:family="paragraph" style:parent-style-name="Heading_20_3"> <style:text-properties fo:font-style="normal" style:font-style-asian="normal" style:font-style-complex="normal"/> </style:style> - <style:style style:name="P285" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P287" style:family="paragraph" style:parent-style-name="Heading_20_3"> <style:text-properties fo:font-style="normal" officeooo:paragraph-rsid="00931d47" style:font-style-asian="normal" style:font-style-complex="normal"/> </style:style> - <style:style style:name="P286" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P288" style:family="paragraph" style:parent-style-name="Heading_20_3"> <style:text-properties fo:font-style="normal" officeooo:rsid="009715be" officeooo:paragraph-rsid="00c6886f" style:font-style-asian="normal" style:font-style-complex="normal"/> </style:style> - <style:style style:name="P287" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P289" style:family="paragraph" style:parent-style-name="Heading_20_3"> <style:text-properties officeooo:rsid="0063d022" officeooo:paragraph-rsid="0063d022"/> </style:style> - <style:style style:name="P288" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P290" style:family="paragraph" style:parent-style-name="Heading_20_3"> <style:text-properties officeooo:paragraph-rsid="00931d47"/> </style:style> - <style:style style:name="P289" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P291" style:family="paragraph" style:parent-style-name="Heading_20_3"> <style:text-properties officeooo:rsid="00c6886f" officeooo:paragraph-rsid="00c6886f"/> </style:style> - <style:style style:name="P290" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties fo:font-style="normal" officeooo:rsid="00e102d3" officeooo:paragraph-rsid="00e102d3" style:font-style-asian="normal" style:font-style-complex="normal"/> - </style:style> - <style:style style:name="P291" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:rsid="00e1d614" officeooo:paragraph-rsid="00e1d614" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-style-complex="normal" style:font-weight-complex="normal"/> - </style:style> <style:style style:name="T1" style:family="text"> <style:text-properties officeooo:rsid="000be205"/> </style:style> @@ -2045,7 +2045,7 @@ <office:master-styles> <style:master-page style:name="Standard" style:page-layout-name="pm1"> <style:footer> - <text:p text:style-name="Footer"><text:page-number text:select-page="current">27</text:page-number><text:tab/><text:tab/><text:modification-date style:data-style-name="N84">2016-06-01</text:modification-date>, <text:modification-time style:data-style-name="N41">11:36:34</text:modification-time></text:p> + <text:p text:style-name="Footer"><text:page-number text:select-page="current">2</text:page-number><text:tab/><text:tab/><text:modification-date style:data-style-name="N84">2016-06-22</text:modification-date>, <text:modification-time style:data-style-name="N41">13:53:28</text:modification-time></text:p> </style:footer> </style:master-page> <style:master-page style:name="First_20_Page" style:display-name="First Page" style:page-layout-name="pm2" style:next-style-name="Standard"/> @@ -2060,9 +2060,9 @@ <text:sequence-decl text:display-outline-level="0" text:name="Drawing"/> </text:sequence-decls> <text:p text:style-name="P272">Make Experiments!</text:p> - <text:p text:style-name="P263">Run-script generation for earth system models</text:p> - <text:p text:style-name="P264">Release 0.<text:span text:style-name="T239">4</text:span>.<text:span text:style-name="T240">1dev</text:span></text:p> - <text:p text:style-name="P240">Karl-Hermann Wieners<text:line-break/><text:span text:style-name="T217">Max-Planck-Institut für Meteorologie<text:line-break/>Hamburg</text:span></text:p> + <text:p text:style-name="P265">Run-script generation for earth system models</text:p> + <text:p text:style-name="P266">Release 0.<text:span text:style-name="T239">4</text:span>.<text:span text:style-name="T240">1</text:span></text:p> + <text:p text:style-name="P242">Karl-Hermann Wieners<text:line-break/><text:span text:style-name="T217">Max-Planck-Institut für Meteorologie<text:line-break/>Hamburg</text:span></text:p> <text:table-of-content text:style-name="Sect1" text:protected="true" text:name="Table of Contents1"> <text:table-of-content-source text:outline-level="10"> <text:index-title-template text:style-name="Contents_20_Heading">Table of Contents</text:index-title-template> @@ -2149,58 +2149,58 @@ </text:table-of-content-source> <text:index-body> <text:index-title text:style-name="Sect2" text:name="Table of Contents1_Head"> - <text:p text:style-name="P241">Table of Contents</text:p> + <text:p text:style-name="P243">Table of Contents</text:p> </text:index-title> - <text:p text:style-name="P243"><text:a xlink:type="simple" xlink:href="#__RefHeading__2518_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">1 Introduction<text:tab/>3</text:a></text:p> - <text:p text:style-name="P244"><text:a xlink:type="simple" xlink:href="#__RefHeading__2520_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">1.1 Example: ECHAM experiment setup<text:tab/>3</text:a></text:p> - <text:p text:style-name="P245"><text:a xlink: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:p text:style-name="P245"><text:a xlink: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:p text:style-name="P245"><text:a xlink: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:p text:style-name="P243"><text:a xlink: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:p text:style-name="P244"><text:a xlink:type="simple" xlink:href="#__RefHeading__2530_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.1 Design<text:tab/>7</text:a></text:p> - <text:p text:style-name="P244"><text:a xlink:type="simple" xlink:href="#__RefHeading__2532_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.2 Tools<text:tab/>7</text:a></text:p> - <text:p text:style-name="P244"><text:a xlink: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:p text:style-name="P245"><text:a xlink:type="simple" xlink:href="#__RefHeading__1669_1438093122" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.3.1 Variables<text:tab/>8</text:a></text:p> - <text:p text:style-name="P245"><text:a xlink:type="simple" xlink:href="#__RefHeading__2536_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.3.2 Sections<text:tab/>9</text:a></text:p> - <text:p text:style-name="P245"><text:a xlink: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:p text:style-name="P245"><text:a xlink:type="simple" xlink:href="#__RefHeading__2540_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.3.4 Variable interpolation<text:tab/>11</text:a></text:p> - <text:p text:style-name="P245"><text:a xlink: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:p text:style-name="P245"><text:a xlink: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:p text:style-name="P244"><text:a xlink: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:p text:style-name="P245"><text:a xlink:type="simple" xlink:href="#__RefHeading__2548_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.4.1 Placeholders<text:tab/>14</text:a></text:p> - <text:p text:style-name="P245"><text:a xlink: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:p text:style-name="P245"><text:a xlink:type="simple" xlink:href="#__RefHeading__2552_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.4.3 Expressions<text:tab/>15</text:a></text:p> - <text:p text:style-name="P245"><text:a xlink:type="simple" xlink:href="#__RefHeading__2554_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.4.4 Loops<text:tab/>15</text:a></text:p> - <text:p text:style-name="P245"><text:a xlink:type="simple" xlink:href="#__RefHeading__2556_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.4.5 Conditions<text:tab/>16</text:a></text:p> - <text:p text:style-name="P245"><text:a xlink:type="simple" xlink:href="#__RefHeading__2558_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.4.6 Comments<text:tab/>16</text:a></text:p> - <text:p text:style-name="P244"><text:a xlink: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:p text:style-name="P244"><text:a xlink: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:p text:style-name="P244"><text:a xlink: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:p text:style-name="P244"><text:a xlink:type="simple" xlink:href="#__RefHeading__1508_1711940803" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.8 Generating jobs<text:tab/>18</text:a></text:p> - <text:p text:style-name="P245"><text:a xlink: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:p text:style-name="P245"><text:a xlink:type="simple" xlink:href="#__RefHeading__2568_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.8.2 Pre-defined job variables<text:tab/>19</text:a></text:p> - <text:p text:style-name="P245"><text:a xlink:type="simple" xlink:href="#__RefHeading__2570_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.8.3 Overriding namelist settings in derived jobs<text:tab/>20</text:a></text:p> - <text:p text:style-name="P245"><text:a xlink:type="simple" xlink:href="#__RefHeading__2572_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.8.4 Native script variables<text:tab/>20</text:a></text:p> - <text:p text:style-name="P245"><text:a xlink:type="simple" xlink:href="#__RefHeading__2574_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.8.5 Initializing native script variables<text:tab/>21</text:a></text:p> - <text:p text:style-name="P245"><text:a xlink: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:p text:style-name="P244"><text:a xlink: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:p text:style-name="P245"><text:a xlink: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:p text:style-name="P245"><text:a xlink: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:p text:style-name="P245"><text:a xlink: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:p text:style-name="P245"><text:a xlink:type="simple" xlink:href="#__RefHeading__2584_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.9.4 Non-namelist configuration files<text:tab/>24</text:a></text:p> - <text:p text:style-name="P244"><text:a xlink: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:p text:style-name="P245"><text:a xlink: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:p text:style-name="P245"><text:a xlink:type="simple" xlink:href="#__RefHeading__2518_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">1 Introduction<text:tab/>3</text:a></text:p> + <text:p text:style-name="P246"><text:a xlink:type="simple" xlink:href="#__RefHeading__2520_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">1.1 Example: ECHAM experiment setup<text:tab/>3</text:a></text:p> + <text:p text:style-name="P247"><text:a xlink: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:p text:style-name="P247"><text:a xlink: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:p text:style-name="P247"><text:a xlink: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:p text:style-name="P245"><text:a xlink: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:p text:style-name="P246"><text:a xlink:type="simple" xlink:href="#__RefHeading__2530_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.1 Design<text:tab/>7</text:a></text:p> + <text:p text:style-name="P246"><text:a xlink:type="simple" xlink:href="#__RefHeading__2532_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.2 Tools<text:tab/>7</text:a></text:p> + <text:p text:style-name="P246"><text:a xlink: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:p text:style-name="P247"><text:a xlink:type="simple" xlink:href="#__RefHeading__1669_1438093122" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.3.1 Variables<text:tab/>8</text:a></text:p> + <text:p text:style-name="P247"><text:a xlink:type="simple" xlink:href="#__RefHeading__2536_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.3.2 Sections<text:tab/>9</text:a></text:p> + <text:p text:style-name="P247"><text:a xlink: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:p text:style-name="P247"><text:a xlink:type="simple" xlink:href="#__RefHeading__2540_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.3.4 Variable interpolation<text:tab/>11</text:a></text:p> + <text:p text:style-name="P247"><text:a xlink: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:p text:style-name="P247"><text:a xlink: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:p text:style-name="P246"><text:a xlink: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:p text:style-name="P247"><text:a xlink:type="simple" xlink:href="#__RefHeading__2548_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.4.1 Placeholders<text:tab/>14</text:a></text:p> + <text:p text:style-name="P247"><text:a xlink: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:p text:style-name="P247"><text:a xlink:type="simple" xlink:href="#__RefHeading__2552_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.4.3 Expressions<text:tab/>15</text:a></text:p> + <text:p text:style-name="P247"><text:a xlink:type="simple" xlink:href="#__RefHeading__2554_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.4.4 Loops<text:tab/>15</text:a></text:p> + <text:p text:style-name="P247"><text:a xlink:type="simple" xlink:href="#__RefHeading__2556_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.4.5 Conditions<text:tab/>16</text:a></text:p> + <text:p text:style-name="P247"><text:a xlink:type="simple" xlink:href="#__RefHeading__2558_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.4.6 Comments<text:tab/>16</text:a></text:p> + <text:p text:style-name="P246"><text:a xlink: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:p text:style-name="P246"><text:a xlink: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:p text:style-name="P246"><text:a xlink: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:p text:style-name="P246"><text:a xlink:type="simple" xlink:href="#__RefHeading__1508_1711940803" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.8 Generating jobs<text:tab/>18</text:a></text:p> + <text:p text:style-name="P247"><text:a xlink: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:p text:style-name="P247"><text:a xlink:type="simple" xlink:href="#__RefHeading__2568_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.8.2 Pre-defined job variables<text:tab/>19</text:a></text:p> + <text:p text:style-name="P247"><text:a xlink:type="simple" xlink:href="#__RefHeading__2570_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.8.3 Overriding namelist settings in derived jobs<text:tab/>20</text:a></text:p> + <text:p text:style-name="P247"><text:a xlink:type="simple" xlink:href="#__RefHeading__2572_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.8.4 Native script variables<text:tab/>20</text:a></text:p> + <text:p text:style-name="P247"><text:a xlink:type="simple" xlink:href="#__RefHeading__2574_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.8.5 Initializing native script variables<text:tab/>21</text:a></text:p> + <text:p text:style-name="P247"><text:a xlink: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:p text:style-name="P246"><text:a xlink: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:p text:style-name="P247"><text:a xlink: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:p text:style-name="P247"><text:a xlink: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:p text:style-name="P247"><text:a xlink: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:p text:style-name="P247"><text:a xlink:type="simple" xlink:href="#__RefHeading__2584_1114405012" text:style-name="Index_20_Link" text:visited-style-name="Index_20_Link">2.9.4 Non-namelist configuration files<text:tab/>24</text:a></text:p> + <text:p text:style-name="P246"><text:a xlink: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:p text:style-name="P247"><text:a xlink: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:index-body> </text:table-of-content> <text:p text:style-name="P82"/> - <text:h text:style-name="P242" text:outline-level="1"><text:bookmark-start text:name="__RefHeading__2518_1114405012"/>Introduction<text:bookmark-end text:name="__RefHeading__2518_1114405012"/></text:h> + <text:h text:style-name="P244" text:outline-level="1"><text:bookmark-start text:name="__RefHeading__2518_1114405012"/>Introduction<text:bookmark-end text:name="__RefHeading__2518_1114405012"/></text:h> <text:p text: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:span text: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:p text:style-name="P1">The <text:span text:style-name="T142">Make Experiments! (</text:span>mkexp<text:span text:style-name="T142">)</text:span> toolbox provides a generic interface to setting up such a<text:span text:style-name="T1">n experiment</text:span>. At the heart of this <text:span text:style-name="T1">lies</text:span> the so-called .config file. This is a simple <text:span text:style-name="T1">text </text:span>file that contains the model settings for your experiment in a way that is <text:span text:style-name="T1">largely </text:span>independent of the job description that is later used to run it.</text:p> <text:p text: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:p text:style-name="P2">While the .config fil<text:span text: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:h text:style-name="Heading_20_2" text:outline-level="2"><text:bookmark-start text:name="__RefHeading__2520_1114405012"/>Example: <text:span text:style-name="T3">ECHAM experiment setup</text:span><text:bookmark-end text:name="__RefHeading__2520_1114405012"/></text:h> <text:p text:style-name="P32">To illustrate the way <text:span text: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:h text:style-name="P249" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2522_1114405012"/>Experiments are defined by custom and default settings<text:bookmark-end text:name="__RefHeading__2522_1114405012"/></text:h> + <text:h text:style-name="P251" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2522_1114405012"/>Experiments are defined by custom and default settings<text:bookmark-end text:name="__RefHeading__2522_1114405012"/></text:h> <text:p text:style-name="P3">ECHAM comes with five <text:span text:style-name="T187">pre-defined </text:span>experiment types, amip-LR, amip-MR, amip-HR, sstClim-LR and sstClim-MR. <text:span text: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:p text:style-name="P98"><text:soft-page-break/># Standard AMIP experiment as baseline for further experiments (LR)</text:p> <text:p text:style-name="P98"/> @@ -2226,7 +2226,7 @@ <text:p text:style-name="P103">ATMO_INPUT_ROOT = /pool/data/ECHAM6/input/r0004 </text:p> <text:p text:style-name="P103">LAND_INPUT_ROOT = /pool/data/JSBACH/input/r0004 </text:p> <text:p text:style-name="P6">The final configuration is then merged from all of these three sources, where the experiment configuration may override <text:span text:style-name="T43">or amend </text:span>settings from the experiment type, and the type config may in turn change the model defaults.</text:p> - <text:h text:style-name="P250" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2524_1114405012"/>Job templates are completed by settings to create scripts<text:bookmark-end text:name="__RefHeading__2524_1114405012"/></text:h> + <text:h text:style-name="P252" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2524_1114405012"/>Job templates are completed by settings to create scripts<text:bookmark-end text:name="__RefHeading__2524_1114405012"/></text:h> <text:p text:style-name="P6"><text:span text:style-name="T186">Now the experiment configuration is finalized, the </text:span>settings are used to fill in <text:span text:style-name="T186">a kind of job description forms, so called </text:span><text:span text:style-name="T9">templates</text:span><text:span text:style-name="T186">, </text:span>from which eventually the <text:span text:style-name="T186">actual </text:span>job description files are created. As the structure of<text:span text:style-name="T186"> </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:span text:style-name="T207">'</text:span>amip.run.tmpl<text:span text:style-name="T207">'</text:span>, also within the run/standard_experiments subdirectory. <text:span text:style-name="T6">The excerpt below shows that t</text:span>his looks mostly like a shell script, but contains <text:span text:style-name="T141">placeholders</text:span> that are filled using the .config file information:</text:p> <text:p text:style-name="P103"><text:soft-page-break/>#! /bin/bash</text:p> <text:p text:style-name="P103"/> @@ -2293,32 +2293,32 @@ <text:p text:style-name="P13"><text:span text:style-name="T186">So, as soon as</text:span> <text:span text:style-name="T186">you have set up '</text:span>joe1234.config<text:span text:style-name="T186">'</text:span>, you may create the job scripts that are needed to run your experiment. Still within ECHAM's <text:span text:style-name="T188">'</text:span>run<text:span text:style-name="T188">'</text:span> subdirectory, type the following into your terminal:</text:p> <text:p text:style-name="Preformatted_20_Text">../util/mkexp/mkexp joe1234.config</text:p> <text:p text:style-name="P14">This will <text:span text:style-name="T142">read all configuration information and </text:span>create all job scripts that are defined within your experiment's setup, <text:span text:style-name="T142">using their respective templates as shown in the previous section</text:span>. <text:span text:style-name="T9">mkexp</text:span> will put these <text:span text:style-name="T142">scripts </text:span>in <text:span text:style-name="T142">a common</text:span> directory defined by the .config variable <text:span text:style-name="T188">'</text:span>SCRIPT_DIR<text:span text:style-name="T188">'</text:span>, and <text:span text:style-name="T188">print</text:span> the name of this directory on your terminal.</text:p> - <text:h text:style-name="P246" text:outline-level="1"><text:bookmark-start text:name="__RefHeading__2528_1114405012"/>Details on <text:span text:style-name="T206">experiment</text:span> <text:span text:style-name="T206">definition</text:span><text:bookmark-end text:name="__RefHeading__2528_1114405012"/></text:h> + <text:h text:style-name="P248" text:outline-level="1"><text:bookmark-start text:name="__RefHeading__2528_1114405012"/>Details on <text:span text:style-name="T206">experiment</text:span> <text:span text:style-name="T206">definition</text:span><text:bookmark-end text:name="__RefHeading__2528_1114405012"/></text:h> <text:p text: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:span text:style-name="T9">mkexp</text:span><text:span text:style-name="T46">.</text:span></text:p> - <text:h text:style-name="P265" text:outline-level="2"><text:bookmark-start text:name="__RefHeading__2530_1114405012"/><text:soft-page-break/>Design<text:bookmark-end text:name="__RefHeading__2530_1114405012"/></text:h> + <text:h text:style-name="P267" text:outline-level="2"><text:bookmark-start text:name="__RefHeading__2530_1114405012"/><text:soft-page-break/>Design<text:bookmark-end text:name="__RefHeading__2530_1114405012"/></text:h> <text:p text:style-name="P34">Experiment definition with <text:span text:style-name="T9">mkexp</text:span> <text:span text:style-name="T168">is organized</text:span> <text:span text:style-name="T168">in</text:span> three levels.</text:p> <text:p text:style-name="P34">The first level is the <text:span text:style-name="T9">mkexp</text:span> toolbox. It provides the front end to create an executable job description from a generic experiment configuration, <text:span text:style-name="T167">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:span text:style-name="T18">mkexp</text:span><text:span text:style-name="T52">, it refers to this system level.</text:span></text:p> <text:p text:style-name="P34"><text:span text:style-name="T167">At a second level, a model needs to provide a number of files containing the information needed by </text:span><text:span text:style-name="T17">mkexp</text:span><text:span text:style-name="T167">: 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:span text:style-name="T17">model setup</text:span><text:span text:style-name="T51">. The files must maintain the naming conventions prescribed by </text:span><text:span text:style-name="T17">mkexp</text:span><text:span text:style-name="T51">.</text:span></text:p> <text:p text:style-name="P35"><text:span text:style-name="T46">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:span text:style-name="T83">defines</text:span><text:span text:style-name="T46"> 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:span text:style-name="T9">user setup</text:span><text:span text:style-name="T46">.</text:span></text:p> <text:p text:style-name="P36"><text:span text:style-name="T46">All levels should make a clear distinction </text:span><text:span text:style-name="T53">between </text:span><text:span text:style-name="T46">the .config files, containing the experiment's configuration information, </text:span><text:span text:style-name="T53">and </text:span><text:span text:style-name="T46">the .tmpl files, containing the actual job description and job control syntax.</text:span></text:p> - <text:h text:style-name="P266" text:outline-level="2"><text:bookmark-start text:name="__RefHeading__2532_1114405012"/>Tools<text:bookmark-end text:name="__RefHeading__2532_1114405012"/></text:h> + <text:h text:style-name="P268" text:outline-level="2"><text:bookmark-start text:name="__RefHeading__2532_1114405012"/>Tools<text:bookmark-end text:name="__RefHeading__2532_1114405012"/></text:h> <text:p text:style-name="P83"><text:span text:style-name="T142">The </text:span><text:span text:style-name="T32">mkexp</text:span><text:span text:style-name="T142"> package provides a number of tools for working with script configurations and setups.</text:span></text:p> <text:p text:style-name="Preformatted_20_List_20_Heading">mkexp <text:span text:style-name="T236">[-m] </text:span><text:span text:style-name="T23">file</text:span><text:span text:style-name="T64">.</text:span><text:span text:style-name="T46">config</text:span> [<text:span text:style-name="T9">name</text:span>=<text:span text:style-name="T9">value</text:span> ...]</text:p> - <text:p text:style-name="P198"><text:span text:style-name="T142">This is the main tool for generating an experiment setup. It </text:span>takes <text:span text:style-name="T189">the given</text:span> <text:span text:style-name="T189">user setup</text:span> and <text:span text:style-name="T208">the model setup that is referenced by the user setup </text:span>to generate <text:span text:style-name="T189">the</text:span> <text:span text:style-name="T189">job description files or</text:span> scripts that <text:span text:style-name="T208">are required to run a model experiment as specified in </text:span><text:span text:style-name="T21">file.</text:span><text:span text:style-name="T64">config</text:span><text:span text:style-name="T189">.</text:span></text:p> - <text:p text:style-name="P202">When running, <text:span text:style-name="T9">mkexp</text:span><text:span text:style-name="T46"> creates three directories, one each for the job scripts, run-time data, and output data, as defined by the setup. The names of these are printed, plus warnings if they already exist.</text:span></text:p> - <text:p text:style-name="P201">mkexp<text:span text:style-name="T46"> allows to override </text:span><text:span text:style-name="T62">or amend </text:span><text:span text:style-name="T46">the .config file settings on the command line </text:span><text:span text:style-name="T62">by defining or re-defining a variable </text:span><text:span text:style-name="T190">name</text:span><text:span text:style-name="T62"> set to </text:span><text:span text:style-name="T190">value</text:span><text:span text:style-name="T62">. Section variables are referenced as </text:span><text:span text:style-name="T190">sectionname</text:span><text:span text:style-name="T62">.</text:span><text:span text:style-name="T190">variablename</text:span><text:span text:style-name="T62">. Any periods in the variable name have to be duplicated, e.g. to set '.remove' in section 'jobs' to 'post', use 'jobs...remove=post'. Note that three periods will always be read as '.' followed by </text:span><text:soft-page-break/><text:span text:style-name="T62">'..', thus it is not possible to use variable names th</text:span><text:span text:style-name="T84">at</text:span><text:span text:style-name="T62"> </text:span><text:span text:style-name="T190">end</text:span><text:span text:style-name="T62"> </text:span><text:span text:style-name="T84">i</text:span><text:span text:style-name="T62">n a period.</text:span></text:p> - <text:p text:style-name="P216"><text:span text:style-name="T62">W</text:span><text:span text:style-name="T46">hen given the '-m' or '--no-make-dirs' option, only the </text:span><text:span text:style-name="T63">script</text:span><text:span text:style-name="T46"> directory is created while creation of the </text:span><text:span text:style-name="T63">run-time and outpu</text:span><text:span text:style-name="T46">t directories is skipped.</text:span></text:p> - <text:p text:style-name="P219"><text:span text:style-name="T62">g</text:span><text:span text:style-name="T46">etexp [-v ...] </text:span><text:span text:style-name="T95">[-R]</text:span><text:span text:style-name="T46"> </text:span><text:span text:style-name="T9">file</text:span><text:span text:style-name="T46">.config [</text:span><text:span text:style-name="T9">name</text:span><text:span text:style-name="T46">=</text:span><text:span text:style-name="T9">value ...</text:span><text:span text:style-name="T46">]</text:span></text:p> - <text:p text:style-name="P199">getexp<text:span text:style-name="T46"> reads the experiment setup the same way </text:span><text:span text:style-name="T84">as</text:span><text:span text:style-name="T46"> </text:span>mkexp<text:span text:style-name="T46">, but does not generate job scripts. Instead it prints the experiment name and directories to be generated in a shell-readable form. It is intended for debugging or passing setup information to utility scripts.</text:span></text:p> - <text:p text:style-name="P203"><text:span text:style-name="T46">When given the '-v' </text:span><text:span text:style-name="T95">or '--</text:span><text:span text:style-name="T46">verbose</text:span><text:span text:style-name="T95">'</text:span><text:span text:style-name="T46"> option, all </text:span><text:span text:style-name="T9">global</text:span><text:span text:style-name="T46"> configuration variables and their values are printed in alphabetical order. </text:span><text:span text:style-name="T95">When given twice, the whole configuration is dumped.</text:span></text:p> + <text:p text:style-name="P200"><text:span text:style-name="T142">This is the main tool for generating an experiment setup. It </text:span>takes <text:span text:style-name="T189">the given</text:span> <text:span text:style-name="T189">user setup</text:span> and <text:span text:style-name="T208">the model setup that is referenced by the user setup </text:span>to generate <text:span text:style-name="T189">the</text:span> <text:span text:style-name="T189">job description files or</text:span> scripts that <text:span text:style-name="T208">are required to run a model experiment as specified in </text:span><text:span text:style-name="T21">file.</text:span><text:span text:style-name="T64">config</text:span><text:span text:style-name="T189">.</text:span></text:p> + <text:p text:style-name="P204">When running, <text:span text:style-name="T9">mkexp</text:span><text:span text:style-name="T46"> creates three directories, one each for the job scripts, run-time data, and output data, as defined by the setup. The names of these are printed, plus warnings if they already exist.</text:span></text:p> + <text:p text:style-name="P203">mkexp<text:span text:style-name="T46"> allows to override </text:span><text:span text:style-name="T62">or amend </text:span><text:span text:style-name="T46">the .config file settings on the command line </text:span><text:span text:style-name="T62">by defining or re-defining a variable </text:span><text:span text:style-name="T190">name</text:span><text:span text:style-name="T62"> set to </text:span><text:span text:style-name="T190">value</text:span><text:span text:style-name="T62">. Section variables are referenced as </text:span><text:span text:style-name="T190">sectionname</text:span><text:span text:style-name="T62">.</text:span><text:span text:style-name="T190">variablename</text:span><text:span text:style-name="T62">. Any periods in the variable name have to be duplicated, e.g. to set '.remove' in section 'jobs' to 'post', use 'jobs...remove=post'. Note that three periods will always be read as '.' followed by </text:span><text:soft-page-break/><text:span text:style-name="T62">'..', thus it is not possible to use variable names th</text:span><text:span text:style-name="T84">at</text:span><text:span text:style-name="T62"> </text:span><text:span text:style-name="T190">end</text:span><text:span text:style-name="T62"> </text:span><text:span text:style-name="T84">i</text:span><text:span text:style-name="T62">n a period.</text:span></text:p> + <text:p text:style-name="P218"><text:span text:style-name="T62">W</text:span><text:span text:style-name="T46">hen given the '-m' or '--no-make-dirs' option, only the </text:span><text:span text:style-name="T63">script</text:span><text:span text:style-name="T46"> directory is created while creation of the </text:span><text:span text:style-name="T63">run-time and outpu</text:span><text:span text:style-name="T46">t directories is skipped.</text:span></text:p> + <text:p text:style-name="P221"><text:span text:style-name="T62">g</text:span><text:span text:style-name="T46">etexp [-v ...] </text:span><text:span text:style-name="T95">[-R]</text:span><text:span text:style-name="T46"> </text:span><text:span text:style-name="T9">file</text:span><text:span text:style-name="T46">.config [</text:span><text:span text:style-name="T9">name</text:span><text:span text:style-name="T46">=</text:span><text:span text:style-name="T9">value ...</text:span><text:span text:style-name="T46">]</text:span></text:p> + <text:p text:style-name="P201">getexp<text:span text:style-name="T46"> reads the experiment setup the same way </text:span><text:span text:style-name="T84">as</text:span><text:span text:style-name="T46"> </text:span>mkexp<text:span text:style-name="T46">, but does not generate job scripts. Instead it prints the experiment name and directories to be generated in a shell-readable form. It is intended for debugging or passing setup information to utility scripts.</text:span></text:p> + <text:p text:style-name="P205"><text:span text:style-name="T46">When given the '-v' </text:span><text:span text:style-name="T95">or '--</text:span><text:span text:style-name="T46">verbose</text:span><text:span text:style-name="T95">'</text:span><text:span text:style-name="T46"> option, all </text:span><text:span text:style-name="T9">global</text:span><text:span text:style-name="T46"> configuration variables and their values are printed in alphabetical order. </text:span><text:span text:style-name="T95">When given twice, the whole configuration is dumped.</text:span></text:p> <text:p text:style-name="P192">When given the '-R' or '--readme' option, the header comment text is printed.</text:p> - <text:p text:style-name="P231">diffexp <text:span text:style-name="T22">file</text:span><text:span text:style-name="T23">1</text:span><text:span text:style-name="T191">.config </text:span><text:span text:style-name="T22">file2</text:span><text:span text:style-name="T63">.</text:span><text:span text:style-name="T64">config</text:span></text:p> + <text:p text:style-name="P233">diffexp <text:span text:style-name="T22">file</text:span><text:span text:style-name="T23">1</text:span><text:span text:style-name="T191">.config </text:span><text:span text:style-name="T22">file2</text:span><text:span text:style-name="T63">.</text:span><text:span text:style-name="T64">config</text:span></text:p> <text:p text:style-name="P189">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:p text:style-name="P220">rmexp <text:span text:style-name="T24">file</text:span><text:span text:style-name="T192">.config</text:span><text:span text:style-name="T65"> [</text:span><text:span text:style-name="T24">name</text:span><text:span text:style-name="T65">=</text:span><text:span text:style-name="T24">value ...</text:span><text:span text:style-name="T65">]</text:span></text:p> - <text:p text:style-name="P205">This allows <text:span text:style-name="T195">interactive </text:span>remov<text:span text:style-name="T195">al for </text:span>all data of an experiment without having to deal with path names, as these are read from the configuration.</text:p> - <text:p text:style-name="P232"><text:span text:style-name="T237">cp</text:span>exp <text:span text:style-name="T24">file</text:span><text:span text:style-name="T192">.config</text:span><text:span text:style-name="T65"> </text:span><text:span text:style-name="T37">new_name</text:span><text:span text:style-name="T96"> </text:span><text:span text:style-name="T65">[</text:span><text:span text:style-name="T24">name</text:span><text:span text:style-name="T65">=</text:span><text:span text:style-name="T24">value ...</text:span><text:span text:style-name="T65">]</text:span></text:p> + <text:p text:style-name="P222">rmexp <text:span text:style-name="T24">file</text:span><text:span text:style-name="T192">.config</text:span><text:span text:style-name="T65"> [</text:span><text:span text:style-name="T24">name</text:span><text:span text:style-name="T65">=</text:span><text:span text:style-name="T24">value ...</text:span><text:span text:style-name="T65">]</text:span></text:p> + <text:p text:style-name="P207">This allows <text:span text:style-name="T195">interactive </text:span>remov<text:span text:style-name="T195">al for </text:span>all data of an experiment without having to deal with path names, as these are read from the configuration.</text:p> + <text:p text:style-name="P234"><text:span text:style-name="T237">cp</text:span>exp <text:span text:style-name="T24">file</text:span><text:span text:style-name="T192">.config</text:span><text:span text:style-name="T65"> </text:span><text:span text:style-name="T37">new_name</text:span><text:span text:style-name="T96"> </text:span><text:span text:style-name="T65">[</text:span><text:span text:style-name="T24">name</text:span><text:span text:style-name="T65">=</text:span><text:span text:style-name="T24">value ...</text:span><text:span text:style-name="T65">]</text:span></text:p> <text:p text:style-name="List_20_Contents"><text:span text:style-name="T238">Replicates all data </text:span>of an experiment <text:span text:style-name="T237">to a new experiment name; also updates text files by rewriting references to the old name</text:span>.</text:p> - <text:h text:style-name="P267" text:outline-level="2"><text:bookmark-start text:name="__RefHeading__2534_1114405012"/><text:span text:style-name="T148">F</text:span>ormat of .config files<text:bookmark-end text:name="__RefHeading__2534_1114405012"/></text:h> + <text:h text:style-name="P269" text:outline-level="2"><text:bookmark-start text:name="__RefHeading__2534_1114405012"/><text:span text:style-name="T148">F</text:span>ormat of .config files<text:bookmark-end text:name="__RefHeading__2534_1114405012"/></text:h> <text:p text: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:span text:style-name="T143">For reading these files, </text:span><text:span text:style-name="T12">mkexp</text:span><text:span text:style-name="T143"> uses the </text:span><text:span text:style-name="T12">configobj</text:span><text:span text:style-name="T143"> Python library. All settings found in the .config files are handled as Python variables internally.</text:span></text:p> <text:h text:style-name="Heading_20_3" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__1669_1438093122"/>Variables<text:bookmark-end text:name="__RefHeading__1669_1438093122"/></text:h> <text:p text:style-name="P18">A <text:span text:style-name="T144">configuration variable is set by simply assigning a text value to a name, as in</text:span></text:p> @@ -2366,7 +2366,7 @@ <text:p text:style-name="P176"><text:span text:style-name="T46">EXP_OPTIONS (</text:span><text:span text:style-name="T9">optional</text:span><text:span text:style-name="T46">)</text:span></text:p> <text:p text:style-name="P186">Subset of the model's standard options that should be applied to the current experiment definition.</text:p> <text:p text:style-name="P177">EXP_ID (<text:span text:style-name="T9">optional</text:span>)</text:p> - <text:p text:style-name="P196">Name of the experiment to be created. If not set, this will be set to the base name of the user's .config file, e.g. 'joe1234' in the introductory example. All job description files will carry this as the first part of their name. For almost all model setups, this will be used in the definitions of SCRIPT_DIR, WORK_DIR, and DATA_DIR.</text:p> + <text:p text:style-name="P198">Name of the experiment to be created. If not set, this will be set to the base name of the user's .config file, e.g. 'joe1234' in the introductory example. All job description files will carry this as the first part of their name. For almost all model setups, this will be used in the definitions of SCRIPT_DIR, WORK_DIR, and DATA_DIR.</text:p> <text:p text:style-name="P165">EXP_DESCRIPTION <text:span text:style-name="T166">(</text:span><text:span text:style-name="T16">optional</text:span><text:span text:style-name="T166">)</text:span></text:p> <text:p text:style-name="P184">Extensive description of the experiment to be created. If not set, this will contain all text in the header comment of the user's .config file. The leading comment <text:soft-page-break/>characters and leading and trailing empty lines are removed. Note that <text:span text:style-name="T209">both header comment and </text:span>EXP_DESCRIPTION may reference any other global variable defined in the experiment configuration <text:span text:style-name="T209">(see section </text:span><text:span text:style-name="T209"><text:bookmark-ref text:reference-format="chapter" text:ref-name="__RefHeading__2540_1114405012">2.3.4</text:bookmark-ref></text:span><text:span text:style-name="T209">)</text:span>.</text:p> <text:p text:style-name="P184">The contents of this variable is written to a 'README' file in SCRIPT_DIR.</text:p> @@ -2381,11 +2381,11 @@ <text:p text:style-name="P190">List of all 'VERSION_' strings that were found in the different .config files.</text:p> <text:p text:style-name="P65">These special sections are usually pre-defined in the model setup, but are commonly altered by the user.</text:p> <text:p text:style-name="List_20_Heading">[jobs]</text:p> - <text:p text:style-name="P197">This section defines the job description set needed for an experiment. It also provides job specific settings. Details are given in section <text:bookmark-ref text:reference-format="chapter" text:ref-name="__RefHeading__1508_1711940803">2.7</text:bookmark-ref>, '<text:bookmark-ref text:reference-format="text" text:ref-name="__RefHeading__1508_1711940803">Generating jobs</text:bookmark-ref>'.</text:p> + <text:p text:style-name="P199">This section defines the job description set needed for an experiment. It also provides job specific settings. Details are given in section <text:bookmark-ref text:reference-format="chapter" text:ref-name="__RefHeading__1508_1711940803">2.7</text:bookmark-ref>, '<text:bookmark-ref text:reference-format="text" text:ref-name="__RefHeading__1508_1711940803">Generating jobs</text:bookmark-ref>'.</text:p> <text:p text:style-name="List_20_Heading">[namelists]</text:p> - <text:p text:style-name="P197">Information that is contained in model configuration or namelist files is set in this section. For further details see section <text:bookmark-ref text:reference-format="chapter" text:ref-name="__RefHeading__1883_1672291846">2.9</text:bookmark-ref>, <text:span text:style-name="T198">'</text:span><text:span text:style-name="T198"><text:bookmark-ref text:reference-format="text" text:ref-name="__RefHeading__1883_1672291846">Defining namelists and other configuration files</text:bookmark-ref></text:span><text:span text:style-name="T198">'.</text:span></text:p> + <text:p text:style-name="P199">Information that is contained in model configuration or namelist files is set in this section. For further details see section <text:bookmark-ref text:reference-format="chapter" text:ref-name="__RefHeading__1883_1672291846">2.9</text:bookmark-ref>, <text:span text:style-name="T198">'</text:span><text:span text:style-name="T198"><text:bookmark-ref text:reference-format="text" text:ref-name="__RefHeading__1883_1672291846">Defining namelists and other configuration files</text:bookmark-ref></text:span><text:span text:style-name="T198">'.</text:span></text:p> <text:p text:style-name="P179">[files]</text:p> - <text:p text:style-name="P210">All input files that are needed for an experiment and <text:span text:style-name="T220">information</text:span> to provide them go into this section. <text:span text:style-name="T220">See section </text:span><text:span text:style-name="T220"><text:bookmark-ref text:reference-format="chapter" text:ref-name="__RefHeading__2831_1132221942">2.10</text:bookmark-ref></text:span><text:span text:style-name="T220">, '</text:span><text:span text:style-name="T220"><text:bookmark-ref text:reference-format="text" text:ref-name="__RefHeading__2831_1132221942">Defining input files for an experiment</text:bookmark-ref></text:span><text:span text:style-name="T220">'.</text:span></text:p> + <text:p text:style-name="P212">All input files that are needed for an experiment and <text:span text:style-name="T220">information</text:span> to provide them go into this section. <text:span text:style-name="T220">See section </text:span><text:span text:style-name="T220"><text:bookmark-ref text:reference-format="chapter" text:ref-name="__RefHeading__2831_1132221942">2.10</text:bookmark-ref></text:span><text:span text:style-name="T220">, '</text:span><text:span text:style-name="T220"><text:bookmark-ref text:reference-format="text" text:ref-name="__RefHeading__2831_1132221942">Defining input files for an experiment</text:bookmark-ref></text:span><text:span text:style-name="T220">'.</text:span></text:p> <text:h text:style-name="Heading_20_3" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2540_1114405012"/>Variable interpolation<text:bookmark-end text:name="__RefHeading__2540_1114405012"/></text:h> <text:p text:style-name="P72">The value of a .config variable may reference the value of another variable by prefixing its name with <text:span text:style-name="T199">a </text:span>dollar sign. <text:span text:style-name="T199">This is called </text:span><text:span text:style-name="T26">interpolation</text:span><text:span text:style-name="T72"> of variables. E.g.</text:span></text:p> <text:p text:style-name="P151"># joe1234.config</text:p> @@ -2413,7 +2413,7 @@ <text:h text:style-name="Heading_20_3" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2542_1114405012"/>Evaluation of interpolation<text:bookmark-end text:name="__RefHeading__2542_1114405012"/></text:h> <text:p text:style-name="P76">While interpolation looks a lot like in shell scripts, there is a major difference: interpolation is – as in Makefiles – only evaluated when the final value is written or passed on. This has the advantage that the model setup may define settings based on variables that are only defined later in the user setup.</text:p> <text:p text:style-name="P154"># model setup</text:p> - <text:p text:style-name="P233"><text:span text:style-name="T202">MODEL</text:span>_<text:span text:style-name="T202">DIR</text:span> = $HOME/<text:span text:style-name="T202">$MODEL_SUBDIR</text:span></text:p> + <text:p text:style-name="P235"><text:span text:style-name="T202">MODEL</text:span>_<text:span text:style-name="T202">DIR</text:span> = $HOME/<text:span text:style-name="T202">$MODEL_SUBDIR</text:span></text:p> <text:p text:style-name="P155"># user setup</text:p> <text:p text:style-name="P155">MODEL_SUBDIR = echam</text:p> <text:p text:style-name="P77">Here, as the model setup is read before the user setup, 'MODEL_SUBDIR' is not set when 'MODEL_ROOT' is defined. <text:span text:style-name="T203">This works, because i</text:span>nterpolation of 'MODEL_ROOT's value is postponed until all levels of setup have been read.</text:p> @@ -2423,21 +2423,21 @@ <text:p text:style-name="Preformatted_20_Text">Oops: interpolation loop detected in value "SUBMODELS" while reading key 'SUBMODELS'</text:p> <text:h text:style-name="Heading_20_3" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2544_1114405012"/>Special expressions<text:bookmark-end text:name="__RefHeading__2544_1114405012"/></text:h> <text:p text:style-name="P79">For some applications, simply including some other variable is not enough. You might want to compute a time limit from a given constant divided by the number of computing nodes, or convert a time stamp to a list of values. For these purposes, <text:span text:style-name="T9">mkexp</text:span><text:span text:style-name="T46"> includes some special expressions, that are evaluated when interpolation occurs.</text:span></text:p> - <text:p text:style-name="P221"><text:span text:style-name="T9">variable</text:span><text:span text:style-name="T46"> = </text:span><text:span text:style-name="T123">eval(</text:span><text:span text:style-name="T9">expression</text:span><text:span text:style-name="T123">)</text:span><text:span text:style-name="T46"><text:line-break/></text:span><text:span text:style-name="T9">variable</text:span><text:span text:style-name="T46"> = </text:span><text:span text:style-name="T123">evals(</text:span><text:span text:style-name="T9">expression</text:span><text:span text:style-name="T123">)</text:span></text:p> - <text:p text:style-name="P206"><text:span text:style-name="T76">I</text:span><text:span text:style-name="T46">nterpret </text:span><text:span text:style-name="T9">expression</text:span><text:span text:style-name="T46"> as a valid Python expression and assign the result to </text:span><text:span text:style-name="T9">variable</text:span><text:span text:style-name="T46"> as a string. When the result is a list, </text:span><text:span text:style-name="T9">eval</text:span><text:span text:style-name="T46"> will return a list of strings, while </text:span><text:span text:style-name="T9">evals</text:span><text:span text:style-name="T46"> will return a single string, where elements are joined by a comma and a space.</text:span></text:p> - <text:p text:style-name="P206"><text:span text:style-name="T46">Note that interpolation does not work for list values; if you need this, consider to set the original variable </text:span><text:span text:style-name="T73">to a string containing a Python list expression</text:span><text:span text:style-name="T46">, and </text:span><text:span text:style-name="T73">then </text:span><text:span text:style-name="T46">use </text:span><text:span text:style-name="T9">eval</text:span><text:span text:style-name="T46"> </text:span><text:span text:style-name="T86">a</text:span><text:span text:style-name="T46">round the interpolation expression:</text:span></text:p> - <text:p text:style-name="P234">DATE_<text:span text:style-name="T211">STRING</text:span> = '[2010, 10, 20]' # need quotes here!</text:p> - <text:p text:style-name="P234">DATE_<text:span text:style-name="T211">LIST</text:span> = eval($DATE_<text:span text:style-name="T212">STRING</text:span>) # becomes a 3 element list</text:p> - <text:p text:style-name="P222">variable<text:span text:style-name="T46"> = </text:span><text:span text:style-name="T123">read(</text:span>file_name<text:span text:style-name="T123">)</text:span></text:p> - <text:p text:style-name="P200"><text:span text:style-name="T46">Read the contents of the file </text:span>file_name<text:span text:style-name="T46"> and assign its contents to </text:span>variable<text:span text:style-name="T46"> as a string.</text:span></text:p> - <text:p text:style-name="P223"><text:span text:style-name="T27">variable</text:span><text:span text:style-name="T74"> = </text:span><text:span text:style-name="T125">split_date(</text:span><text:span text:style-name="T27">timestamp</text:span><text:span text:style-name="T125">)</text:span></text:p> - <text:p text:style-name="P207"><text:span text:style-name="T204">T</text:span>ake <text:span text:style-name="T9">timestamp</text:span><text:span text:style-name="T46"> and split it into a list of numerical date/time elements. </text:span><text:span text:style-name="T9">tim</text:span><text:span text:style-name="T28">e</text:span><text:span text:style-name="T9">stamp</text:span><text:span text:style-name="T46"> </text:span><text:span text:style-name="T75">must have </text:span><text:span text:style-name="T46">an ISO-like format (date elements separated by '-'; 'T' or space as date/time separator; time elements separated by ':</text:span><text:span text:style-name="T75">'; </text:span><text:span text:style-name="T46">trailing time elements </text:span><text:span text:style-name="T76">and their separators </text:span><text:span text:style-name="T75">are optional</text:span><text:span text:style-name="T46">; time zone indicator is not supported). </text:span><text:span text:style-name="T88">Unlike ISO, </text:span><text:span text:style-name="T31">split_date</text:span><text:span text:style-name="T88"> also</text:span><text:span text:style-name="T46"> </text:span><text:span text:style-name="T88">allows the date to be in the form YYYYMMDD</text:span><text:span text:style-name="T46">. </text:span><text:span text:style-name="T76">Unset fields default to zero.</text:span></text:p> - <text:p text:style-name="P224"><text:span text:style-name="T9">variable</text:span><text:span text:style-name="T46"> = </text:span><text:span text:style-name="T123">sec2time(</text:span><text:span text:style-name="T9">second_of_day</text:span><text:span text:style-name="T123">)</text:span></text:p> - <text:p text:style-name="P193">Take integer <text:span text:style-name="T9">second_of_day</text:span> (from 0 to 86399) and return the corresponding time stamp as string of the form HH:MM:SS.</text:p> - <text:p text:style-name="P225"><text:soft-page-break/><text:span text:style-name="T9">variable</text:span> = '<text:span text:style-name="T129">add_years</text:span>(<text:span text:style-name="T9">datestamp</text:span>, <text:span text:style-name="T9">offset</text:span>)'</text:p> - <text:p text:style-name="P208">Take integer <text:span text:style-name="T9">offset</text:span><text:span text:style-name="T46"> (may be negative), add it to the year portion of </text:span><text:span text:style-name="T9">datestamp</text:span><text:span text:style-name="T46"> and return the resulting date string.</text:span></text:p> - <text:p text:style-name="P226"><text:span text:style-name="T9">variable</text:span> = '<text:span text:style-name="T129">add_</text:span><text:span text:style-name="T137">days</text:span>(<text:span text:style-name="T9">datestamp</text:span>, <text:span text:style-name="T9">offset</text:span>)'</text:p> - <text:p text:style-name="P209"><text:span text:style-name="T46">Take integer </text:span><text:span text:style-name="T9">offset</text:span><text:span text:style-name="T46"> (may be negative), add it to the </text:span><text:span text:style-name="T89">day</text:span><text:span text:style-name="T46"> portion of </text:span><text:span text:style-name="T9">datestamp</text:span><text:span text:style-name="T46"> and return the resulting date string. </text:span><text:span text:style-name="T89">Year and month portions will be set as appropriate, assuming a Proleptic Gregorian calendar with year 0.</text:span></text:p> + <text:p text:style-name="P223"><text:span text:style-name="T9">variable</text:span><text:span text:style-name="T46"> = </text:span><text:span text:style-name="T123">eval(</text:span><text:span text:style-name="T9">expression</text:span><text:span text:style-name="T123">)</text:span><text:span text:style-name="T46"><text:line-break/></text:span><text:span text:style-name="T9">variable</text:span><text:span text:style-name="T46"> = </text:span><text:span text:style-name="T123">evals(</text:span><text:span text:style-name="T9">expression</text:span><text:span text:style-name="T123">)</text:span></text:p> + <text:p text:style-name="P208"><text:span text:style-name="T76">I</text:span><text:span text:style-name="T46">nterpret </text:span><text:span text:style-name="T9">expression</text:span><text:span text:style-name="T46"> as a valid Python expression and assign the result to </text:span><text:span text:style-name="T9">variable</text:span><text:span text:style-name="T46"> as a string. When the result is a list, </text:span><text:span text:style-name="T9">eval</text:span><text:span text:style-name="T46"> will return a list of strings, while </text:span><text:span text:style-name="T9">evals</text:span><text:span text:style-name="T46"> will return a single string, where elements are joined by a comma and a space.</text:span></text:p> + <text:p text:style-name="P208"><text:span text:style-name="T46">Note that interpolation does not work for list values; if you need this, consider to set the original variable </text:span><text:span text:style-name="T73">to a string containing a Python list expression</text:span><text:span text:style-name="T46">, and </text:span><text:span text:style-name="T73">then </text:span><text:span text:style-name="T46">use </text:span><text:span text:style-name="T9">eval</text:span><text:span text:style-name="T46"> </text:span><text:span text:style-name="T86">a</text:span><text:span text:style-name="T46">round the interpolation expression:</text:span></text:p> + <text:p text:style-name="P236">DATE_<text:span text:style-name="T211">STRING</text:span> = '[2010, 10, 20]' # need quotes here!</text:p> + <text:p text:style-name="P236">DATE_<text:span text:style-name="T211">LIST</text:span> = eval($DATE_<text:span text:style-name="T212">STRING</text:span>) # becomes a 3 element list</text:p> + <text:p text:style-name="P224">variable<text:span text:style-name="T46"> = </text:span><text:span text:style-name="T123">read(</text:span>file_name<text:span text:style-name="T123">)</text:span></text:p> + <text:p text:style-name="P202"><text:span text:style-name="T46">Read the contents of the file </text:span>file_name<text:span text:style-name="T46"> and assign its contents to </text:span>variable<text:span text:style-name="T46"> as a string.</text:span></text:p> + <text:p text:style-name="P225"><text:span text:style-name="T27">variable</text:span><text:span text:style-name="T74"> = </text:span><text:span text:style-name="T125">split_date(</text:span><text:span text:style-name="T27">timestamp</text:span><text:span text:style-name="T125">)</text:span></text:p> + <text:p text:style-name="P209"><text:span text:style-name="T204">T</text:span>ake <text:span text:style-name="T9">timestamp</text:span><text:span text:style-name="T46"> and split it into a list of numerical date/time elements. </text:span><text:span text:style-name="T9">tim</text:span><text:span text:style-name="T28">e</text:span><text:span text:style-name="T9">stamp</text:span><text:span text:style-name="T46"> </text:span><text:span text:style-name="T75">must have </text:span><text:span text:style-name="T46">an ISO-like format (date elements separated by '-'; 'T' or space as date/time separator; time elements separated by ':</text:span><text:span text:style-name="T75">'; </text:span><text:span text:style-name="T46">trailing time elements </text:span><text:span text:style-name="T76">and their separators </text:span><text:span text:style-name="T75">are optional</text:span><text:span text:style-name="T46">; time zone indicator is not supported). </text:span><text:span text:style-name="T88">Unlike ISO, </text:span><text:span text:style-name="T31">split_date</text:span><text:span text:style-name="T88"> also</text:span><text:span text:style-name="T46"> </text:span><text:span text:style-name="T88">allows the date to be in the form YYYYMMDD</text:span><text:span text:style-name="T46">. </text:span><text:span text:style-name="T76">Unset fields default to zero.</text:span></text:p> + <text:p text:style-name="P226"><text:span text:style-name="T9">variable</text:span><text:span text:style-name="T46"> = </text:span><text:span text:style-name="T123">sec2time(</text:span><text:span text:style-name="T9">second_of_day</text:span><text:span text:style-name="T123">)</text:span></text:p> + <text:p text:style-name="P194">Take integer <text:span text:style-name="T9">second_of_day</text:span> (from 0 to 86399) and return the corresponding time stamp as string of the form HH:MM:SS.</text:p> + <text:p text:style-name="P227"><text:soft-page-break/><text:span text:style-name="T9">variable</text:span> = '<text:span text:style-name="T129">add_years</text:span>(<text:span text:style-name="T9">datestamp</text:span>, <text:span text:style-name="T9">offset</text:span>)'</text:p> + <text:p text:style-name="P210">Take integer <text:span text:style-name="T9">offset</text:span><text:span text:style-name="T46"> (may be negative), add it to the year portion of </text:span><text:span text:style-name="T9">datestamp</text:span><text:span text:style-name="T46"> and return the resulting date string.</text:span></text:p> + <text:p text:style-name="P228"><text:span text:style-name="T9">variable</text:span> = '<text:span text:style-name="T129">add_</text:span><text:span text:style-name="T137">days</text:span>(<text:span text:style-name="T9">datestamp</text:span>, <text:span text:style-name="T9">offset</text:span>)'</text:p> + <text:p text:style-name="P211"><text:span text:style-name="T46">Take integer </text:span><text:span text:style-name="T9">offset</text:span><text:span text:style-name="T46"> (may be negative), add it to the </text:span><text:span text:style-name="T89">day</text:span><text:span text:style-name="T46"> portion of </text:span><text:span text:style-name="T9">datestamp</text:span><text:span text:style-name="T46"> and return the resulting date string. </text:span><text:span text:style-name="T89">Year and month portions will be set as appropriate, assuming a Proleptic Gregorian calendar with year 0.</text:span></text:p> <text:h text:style-name="Heading_20_2" text:outline-level="2"><text:bookmark-start text:name="__RefHeading__2546_1114405012"/>Format of .tmpl files<text:bookmark-end text:name="__RefHeading__2546_1114405012"/></text:h> <text:p text:style-name="P24">The .tmpl files are also text files mostly written in the syntax of the job description that <text:span text:style-name="T9">mkexp</text:span> is meant to create. Currently this is usually the ksh or bash shell script syntax, but may also be any other interpreted language, like Perl or Python, or even a configuration or namelist file. The main difference are placeholders and structured comments that are embedded in the program text. These are evaluated or expanded using the information that comes with the .config files, to create the final text files, defining the jobs to be run on the target system.</text:p> <text:p text:style-name="P24">The expansion of .tmpl files into the job description uses the <text:span text:style-name="T9">Jinja</text:span> Python library. It provides a default set of facilities that can be used to expand any textual template. The proposed default syntax was slightly customized to fit the needs of <text:span text:style-name="T9">mkexp</text:span>.</text:p> @@ -2468,28 +2468,28 @@ <text:p text:style-name="P122">LIST_SUBLIST=%{PATH[1:3]}</text:p> <text:p text:style-name="Preformatted_20_Text">FILTERED_STRING=%{NAME | <text:span text:style-name="T153">lower()} <text:s/># is 'joe user'</text:span></text:p> <text:p text:style-name="P92">The last example allows for <text:span text:style-name="T165">a </text:span>number of predefined filters instead of 'lower'. These are described in the <text:span text:style-name="T9">Jinja</text:span> documentation (List of Builtin Filters). <text:span text:style-name="T227">Besides, </text:span><text:span text:style-name="T9">mkexp</text:span> defines <text:s/><text:span text:style-name="T230">a number of </text:span>additional filters:</text:p> - <text:p text:style-name="P227">split<text:span text:style-name="T159">(</text:span><text:span text:style-name="T41">s</text:span><text:span text:style-name="T126">, </text:span><text:span text:style-name="T41">m</text:span><text:span text:style-name="T126">=-1)</text:span></text:p> - <text:p text:style-name="P194">cuts <text:span text:style-name="T229">the input </text:span>string <text:span text:style-name="T229">at all occurrences of </text:span><text:span text:style-name="T34">s</text:span><text:span text:style-name="T229">, returning</text:span> a list of substrings. <text:span text:style-name="T228">If </text:span><text:span text:style-name="T33">m</text:span><text:span text:style-name="T228"> is positive or zero, it cuts only at the first </text:span><text:span text:style-name="T33">m</text:span><text:span text:style-name="T228"> occurrences; the last element contains the remaining substring:</text:span></text:p> + <text:p text:style-name="P229">split<text:span text:style-name="T159">(</text:span><text:span text:style-name="T41">s</text:span><text:span text:style-name="T126">, </text:span><text:span text:style-name="T41">m</text:span><text:span text:style-name="T126">=-1)</text:span></text:p> + <text:p text:style-name="P195">cuts <text:span text:style-name="T229">the input </text:span>string <text:span text:style-name="T229">at all occurrences of </text:span><text:span text:style-name="T34">s</text:span><text:span text:style-name="T229">, returning</text:span> a list of substrings. <text:span text:style-name="T228">If </text:span><text:span text:style-name="T33">m</text:span><text:span text:style-name="T228"> is positive or zero, it cuts only at the first </text:span><text:span text:style-name="T33">m</text:span><text:span text:style-name="T228"> occurrences; the last element contains the remaining substring:</text:span></text:p> <text:p text:style-name="Preformatted_20_Text_20_Indented">%{ 'A B C' | <text:span text:style-name="T129">split</text:span><text:span text:style-name="T159">(' ') }<text:tab/><text:tab/>→</text:span><text:span text:style-name="T162"> </text:span><text:span text:style-name="T161">['A', 'B', 'C']</text:span></text:p> - <text:p text:style-name="P237"><text:span text:style-name="T161">%{ 'A B C' | split(' ', </text:span><text:span text:style-name="T139">1</text:span><text:span text:style-name="T161">) } <text:tab/></text:span><text:span text:style-name="T162">→ </text:span><text:span text:style-name="T161">['A', </text:span><text:span text:style-name="T139">'B C'</text:span><text:span text:style-name="T161">]</text:span></text:p> - <text:p text:style-name="P211"/> + <text:p text:style-name="P239"><text:span text:style-name="T161">%{ 'A B C' | split(' ', </text:span><text:span text:style-name="T139">1</text:span><text:span text:style-name="T161">) } <text:tab/></text:span><text:span text:style-name="T162">→ </text:span><text:span text:style-name="T161">['A', </text:span><text:span text:style-name="T139">'B C'</text:span><text:span text:style-name="T161">]</text:span></text:p> + <text:p text:style-name="P213"/> <text:p text:style-name="P116">filter<text:span text:style-name="T159">()</text:span></text:p> - <text:p text:style-name="P212">removes empty elements from <text:span text:style-name="T229">the input</text:span> list:</text:p> - <text:p text:style-name="P238"><text:span text:style-name="T161">%{ ['A', '', 'C'] | </text:span><text:span text:style-name="T139">filter</text:span><text:span text:style-name="T161">() }<text:tab/>→</text:span><text:span text:style-name="T159"> ['A', 'C']</text:span></text:p> - <text:p text:style-name="P228">match<text:span text:style-name="T159">(</text:span><text:span text:style-name="T41">regexp</text:span><text:span text:style-name="T159">, </text:span><text:span text:style-name="T41">default</text:span><text:span text:style-name="T159">='')</text:span></text:p> - <text:p text:style-name="P213"><text:span text:style-name="T159">returns the input string</text:span><text:span text:style-name="T126">, if </text:span><text:span text:style-name="T41">regexp</text:span><text:span text:style-name="T126"> matches somewhere in it. If </text:span><text:span text:style-name="T41">regexp</text:span><text:span text:style-name="T126"> contains matching groups (parentheses), the substring matching the first group is returned. If no match is found, the </text:span><text:span text:style-name="T41">default</text:span><text:span text:style-name="T126"> string is returned:</text:span></text:p> - <text:p text:style-name="P238"><text:soft-page-break/><text:span text:style-name="T126">%{ 'Douglas Adams' | </text:span><text:span text:style-name="T123">match</text:span><text:span text:style-name="T126">('Adam') }<text:tab/><text:tab/>→ 'Douglas Adams'</text:span></text:p> - <text:p text:style-name="P238"><text:span text:style-name="T126">%{ 'Douglas Adams' | match(</text:span><text:span text:style-name="T123">'Eve'</text:span><text:span text:style-name="T126">) }<text:tab/><text:tab/>→ ''</text:span></text:p> - <text:p text:style-name="P238"><text:span text:style-name="T126">%{ 'Douglas Adams' | match('Abel', </text:span><text:span text:style-name="T123">'Cain'</text:span><text:span text:style-name="T126">) }<text:tab/>→ 'Cain'</text:span></text:p> - <text:p text:style-name="P238"><text:span text:style-name="T126">%{ 'Douglas Adams' | match('l</text:span><text:span text:style-name="T123">(.*)</text:span><text:span text:style-name="T126">m') }<text:tab/><text:tab/>→ 'as Ada'</text:span></text:p> - <text:p text:style-name="P230"><text:span text:style-name="T123">wordwrap</text:span><text:span text:style-name="T126">(width=79, break_long_words=true, break_on_hyphens=true, <text:s text:c="2"/><text:line-break/> <text:s text:c="8"/>wrapstring=none)</text:span></text:p> - <text:p text:style-name="P215"><text:span text:style-name="T126">replaces the </text:span><text:span text:style-name="T127">builtin </text:span><text:span text:style-name="T42">Jinja </text:span><text:span text:style-name="T127">filter 'wordwrap' <text:s/>by a private version that allows to suppress breaks on hyphens:</text:span></text:p> - <text:p text:style-name="P235">%{'long-hyphenated-text'|<text:span text:style-name="T129">wordwrap</text:span>(15, false)}</text:p> - <text:p text:style-name="P239"><text:span text:style-name="T127">→</text:span><text:span text:style-name="T126"> 'long- </text:span></text:p> - <text:p text:style-name="P236"><text:s text:c="3"/>hyphenated-text'</text:p> - <text:p text:style-name="P239"/> - <text:p text:style-name="P235">%{'long-hyphenated-text'|wordwrap(15, false, <text:span text:style-name="T129">false</text:span>)} </text:p> - <text:p text:style-name="P239"><text:span text:style-name="T127">→</text:span><text:span text:style-name="T126"> 'long-</text:span><text:span text:style-name="T127">hyphenated-text'</text:span></text:p> + <text:p text:style-name="P214">removes empty elements from <text:span text:style-name="T229">the input</text:span> list:</text:p> + <text:p text:style-name="P240"><text:span text:style-name="T161">%{ ['A', '', 'C'] | </text:span><text:span text:style-name="T139">filter</text:span><text:span text:style-name="T161">() }<text:tab/>→</text:span><text:span text:style-name="T159"> ['A', 'C']</text:span></text:p> + <text:p text:style-name="P230">match<text:span text:style-name="T159">(</text:span><text:span text:style-name="T41">regexp</text:span><text:span text:style-name="T159">, </text:span><text:span text:style-name="T41">default</text:span><text:span text:style-name="T159">='')</text:span></text:p> + <text:p text:style-name="P215"><text:span text:style-name="T159">returns the input string</text:span><text:span text:style-name="T126">, if </text:span><text:span text:style-name="T41">regexp</text:span><text:span text:style-name="T126"> matches somewhere in it. If </text:span><text:span text:style-name="T41">regexp</text:span><text:span text:style-name="T126"> contains matching groups (parentheses), the substring matching the first group is returned. If no match is found, the </text:span><text:span text:style-name="T41">default</text:span><text:span text:style-name="T126"> string is returned:</text:span></text:p> + <text:p text:style-name="P240"><text:soft-page-break/><text:span text:style-name="T126">%{ 'Douglas Adams' | </text:span><text:span text:style-name="T123">match</text:span><text:span text:style-name="T126">('Adam') }<text:tab/><text:tab/>→ 'Douglas Adams'</text:span></text:p> + <text:p text:style-name="P240"><text:span text:style-name="T126">%{ 'Douglas Adams' | match(</text:span><text:span text:style-name="T123">'Eve'</text:span><text:span text:style-name="T126">) }<text:tab/><text:tab/>→ ''</text:span></text:p> + <text:p text:style-name="P240"><text:span text:style-name="T126">%{ 'Douglas Adams' | match('Abel', </text:span><text:span text:style-name="T123">'Cain'</text:span><text:span text:style-name="T126">) }<text:tab/>→ 'Cain'</text:span></text:p> + <text:p text:style-name="P240"><text:span text:style-name="T126">%{ 'Douglas Adams' | match('l</text:span><text:span text:style-name="T123">(.*)</text:span><text:span text:style-name="T126">m') }<text:tab/><text:tab/>→ 'as Ada'</text:span></text:p> + <text:p text:style-name="P232"><text:span text:style-name="T123">wordwrap</text:span><text:span text:style-name="T126">(width=79, break_long_words=true, break_on_hyphens=true, <text:s text:c="2"/><text:line-break/> <text:s text:c="8"/>wrapstring=none)</text:span></text:p> + <text:p text:style-name="P217"><text:span text:style-name="T126">replaces the </text:span><text:span text:style-name="T127">builtin </text:span><text:span text:style-name="T42">Jinja </text:span><text:span text:style-name="T127">filter 'wordwrap' <text:s/>by a private version that allows to suppress breaks on hyphens:</text:span></text:p> + <text:p text:style-name="P237">%{'long-hyphenated-text'|<text:span text:style-name="T129">wordwrap</text:span>(15, false)}</text:p> + <text:p text:style-name="P241"><text:span text:style-name="T127">→</text:span><text:span text:style-name="T126"> 'long- </text:span></text:p> + <text:p text:style-name="P238"><text:s text:c="3"/>hyphenated-text'</text:p> + <text:p text:style-name="P241"/> + <text:p text:style-name="P237">%{'long-hyphenated-text'|wordwrap(15, false, <text:span text:style-name="T129">false</text:span>)} </text:p> + <text:p text:style-name="P241"><text:span text:style-name="T127">→</text:span><text:span text:style-name="T126"> 'long-</text:span><text:span text:style-name="T127">hyphenated-text'</text:span></text:p> <text:h text:style-name="Heading_20_3" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2554_1114405012"/>Loops<text:bookmark-end text:name="__RefHeading__2554_1114405012"/></text:h> <text:p text:style-name="P28">Text in a template may be used repeatedly, like a classical 'for' loop. Loops are defined by structured comments <text:span text:style-name="T213">i.e. lines </text:span>beginning with '#%'. <text:span text:style-name="T213">They </text:span>start with '#% for … <text:span text:style-name="T156">in …:</text:span>' and end in '#% endfor':</text:p> <text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="T129">#% for</text:span> countdown <text:span text:style-name="T129">in</text:span> [3, 2, 1, '<text:span text:style-name="T213">liftoff</text:span>']<text:span text:style-name="T129">:</text:span></text:p> @@ -2533,10 +2533,10 @@ <text:p text:style-name="P11">Besides the standard experiment types, <text:span text:style-name="T9">mkexp</text:span> also supports option sets that are independent of the experiment type chosen.</text:p> <text:p text: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:span text:style-name="T9">optionname</text:span>.config file.</text:p> <text:p text: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:h text:style-name="P261" text:outline-level="3"><text:span text:style-name="T234">O</text:span>ptions set due to model configuration </text:h> + <text:h text:style-name="P263" text:outline-level="3"><text:span text:style-name="T234">O</text:span>ptions set due to model configuration </text:h> <text:p text:style-name="P93">Some options may need to be set <text:span text:style-name="T233">for all experiments that use a given </text:span>model configuration. <text:span text:style-name="T233">If e.g. a part of the model is disabled at build time, the corresponding option set should also be disabled for all experiments.</text:span></text:p> <text:p text:style-name="P94">For this, the build process may write an optional file 'SETUP.config' <text:s/>that is read before any type or user configuration. If this file contains the variable SETUP_OPTIONS, the options listed there will be loaded before loading the EXP_OPTIONS list. Do not override SETUP_OPTIONS in the user configuration unless you know what you are doing!</text:p> - <text:h text:style-name="P268" text:outline-level="2"><text:bookmark-start text:name="__RefHeading__1508_1711940803"/><text:soft-page-break/>Generating <text:span text:style-name="T181">j</text:span>obs<text:bookmark-end text:name="__RefHeading__1508_1711940803"/></text:h> + <text:h text:style-name="P270" text:outline-level="2"><text:bookmark-start text:name="__RefHeading__1508_1711940803"/><text:soft-page-break/>Generating <text:span text:style-name="T181">j</text:span>obs<text:bookmark-end text:name="__RefHeading__1508_1711940803"/></text:h> <text:p text:style-name="P42">When<text:span text:style-name="T169"> </text:span>running <text:span text:style-name="T9">mkexp</text:span><text:span text:style-name="T100">, </text:span><text:span text:style-name="T101">the special configuration section [jobs]</text:span><text:span text:style-name="T39"> </text:span><text:span text:style-name="T101">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:p text:style-name="P138"># <text:span text:style-name="T170">model setup: experiment type 'control'</text:span></text:p> <text:p text:style-name="P125">[jobs]</text:p> @@ -2560,15 +2560,15 @@ <text:p text:style-name="P139"><text:span text:style-name="T100"><text:s text:c="4"/>.</text:span><text:span text:style-name="T104">extends</text:span><text:span text:style-name="T100"> = p</text:span><text:span text:style-name="T105">ost</text:span></text:p> <text:p text:style-name="P126"><text:s text:c="4"/>command = $HOME/bin/my_special_command</text:p> <text:p text: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:span text:style-name="T172">made available </text:span>to <text:span text:style-name="T172">the template via the</text:span> 'JOB' dictionary.</text:p> - <text:h text:style-name="P252" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2568_1114405012"/>Pre-defined job variables<text:bookmark-end text:name="__RefHeading__2568_1114405012"/></text:h> + <text:h text:style-name="P254" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2568_1114405012"/>Pre-defined job variables<text:bookmark-end text:name="__RefHeading__2568_1114405012"/></text:h> <text:p text:style-name="P55">While <text:span text: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:p text:style-name="P174">tasks</text:p> - <text:p text:style-name="P195">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:p text:style-name="P196">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:p text:style-name="P175">nodes</text:p> - <text:p text:style-name="P195">Number of computing nodes required on the computing system. Needed if 'tasks' is not set.</text:p> + <text:p text:style-name="P196">Number of computing nodes required on the computing system. Needed if 'tasks' is not set.</text:p> <text:p text:style-name="P175">tasks_per_node</text:p> - <text:p text:style-name="P195">Number of parallel (MPI) tasks on a single node. Needed if 'tasks' is not set.</text:p> - <text:h text:style-name="P251" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2570_1114405012"/>Overriding namelist settings in derived jobs<text:bookmark-end text:name="__RefHeading__2570_1114405012"/></text:h> + <text:p text:style-name="P196">Number of parallel (MPI) tasks on a single node. Needed if 'tasks' is not set.</text:p> + <text:h text:style-name="P253" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2570_1114405012"/>Overriding namelist settings in derived jobs<text:bookmark-end text:name="__RefHeading__2570_1114405012"/></text:h> <text:p text: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:p text:style-name="P140">[namelists]</text:p> <text:p text:style-name="P100"><text:s text:c="2"/>[[namelist.jsbach]]</text:p> @@ -2583,7 +2583,7 @@ <text:p text:style-name="P100"><text:s text:c="8"/><text:span text:style-name="T171">[[</text:span>[[[jsbach_ctl]]]<text:span text:style-name="T171">]]</text:span></text:p> <text:p text:style-name="P100"><text:span text:style-name="T100"><text:s text:c="10"/>use_dynveg = </text:span><text:span text:style-name="T105">true</text:span></text:p> <text:p text:style-name="P46"><text:span text:style-name="T106">This</text:span><text:span text:style-name="T100"> 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:h text:style-name="P251" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2572_1114405012"/>Native script variables<text:bookmark-end text:name="__RefHeading__2572_1114405012"/></text:h> + <text:h text:style-name="P253" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2572_1114405012"/>Native script variables<text:bookmark-end text:name="__RefHeading__2572_1114405012"/></text:h> <text:p text:style-name="P48"><text:span text:style-name="T100">While the definition of .config variables may use</text:span><text:span text:style-name="T107"> variable references like</text:span><text:span text:style-name="T100"> $NAME or ${NAME} to include the </text:span><text:span text:style-name="T107">verbatim </text:span><text:span text:style-name="T100">value of other .config variables, this may not always be what you want. If you want to create a job </text:span><text:span text:style-name="T107">script</text:span><text:span text:style-name="T100"> 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:span text:style-name="T107">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:p text:style-name="P52">To allow this, <text:span text: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:p text:style-name="P125"># joe1234.config</text:p> @@ -2612,7 +2612,7 @@ <text:p text:style-name="P143">#! /usr/bin/env python </text:p> <text:p text:style-name="P143">NAME = '<text:span text:style-name="T178">Joe User</text:span>' </text:p> <text:p text:style-name="P144">print<text:span text:style-name="T215">(</text:span>'<text:span text:style-name="T100">This experiment was generated by </text:span><text:span text:style-name="T109">' + str(</text:span><text:span text:style-name="T100">NAME) </text:span><text:span text:style-name="T109">+ '</text:span>'<text:span text:style-name="T215">)</text:span></text:p> - <text:h text:style-name="P258" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2574_1114405012"/>Initializing native script variables<text:bookmark-end text:name="__RefHeading__2574_1114405012"/></text:h> + <text:h text:style-name="P260" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2574_1114405012"/>Initializing native script variables<text:bookmark-end text:name="__RefHeading__2574_1114405012"/></text:h> <text:p text:style-name="P61">In the previous section, the native variables were initialized by an addition<text:span text:style-name="T182">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:p text:style-name="P61"><text:span text:style-name="T183">To allow a self-maintaining variable list based on the current configuration, </text:span><text:span text:style-name="T20">mkexp</text:span><text:span text:style-name="T183"> maintains the special variable VARIABLES_. When generating output for</text:span></text:p> <text:p text:style-name="P132">NAME = Joe User</text:p> @@ -2642,7 +2642,7 @@ <text:p text:style-name="P13">For this, a standard environment, like a standard experiment, consists of a .config file and a corresponding template. The <text:span text: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:p text:style-name="P13">The actual job control headers needed to run a certain job step are saved as <text:span text:style-name="T9">environmentname</text:span>.tmpl. This template will be filled using configuration information from both experiment, options, and environment. <text:span text:style-name="T142">The resulting job header</text:span> is usually included at the beginning of the experiment's job script templates.</text:p> <text:p text:style-name="P9">An experiment configuration <text:span text:style-name="T184">may</text:span> <text:span text:style-name="T184">set</text:span> the special variable E<text:span text:style-name="T184">NVIRONMENT</text:span> to the name of <text:span text:style-name="T184">the host </text:span>e<text:span text:style-name="T184">nvironment</text:span> to use. <text:span text:style-name="T184">If it is not set, or empty, the 'DEFAULT' environment settings will be used.</text:span></text:p> - <text:h text:style-name="P269" text:outline-level="2"><text:bookmark-start text:name="__RefHeading__1883_1672291846"/>Defining namelists and other configuration files<text:bookmark-end text:name="__RefHeading__1883_1672291846"/></text:h> + <text:h text:style-name="P271" text:outline-level="2"><text:bookmark-start text:name="__RefHeading__1883_1672291846"/>Defining namelists and other configuration files<text:bookmark-end text:name="__RefHeading__1883_1672291846"/></text:h> <text:p text:style-name="P69"><text:span text:style-name="T68">Most models need at least one Fortran namelist file or another form of configuration file to run. </text:span><text:span text:style-name="T69">The special section [namelists] </text:span><text:span text:style-name="T68">is designed to </text:span><text:span text:style-name="T69">contain all information that goes into </text:span><text:span text:style-name="T68">these</text:span><text:span text:style-name="T69"> files. Each </text:span><text:span text:style-name="T66">immediate </text:span><text:span text:style-name="T69">subsection defines settings for a single file that will </text:span><text:span text:style-name="T68">by default be </text:span><text:span text:style-name="T69">formatted as a Fortran namelist. </text:span><text:span text:style-name="T68">For </text:span><text:span text:style-name="T69">example,</text:span></text:p> <text:p text:style-name="P146">[namelists]</text:p> <text:p text:style-name="P156"/> @@ -2654,7 +2654,7 @@ <text:p text:style-name="P148"><text:s text:c="6"/>out_expname = joe1234</text:p> <text:p text:style-name="P148"><text:s text:c="6"/><text:span text:style-name="T197">dt_stop = 2009, 1, 1, 0, 0, 0</text:span></text:p> <text:p text:style-name="P66"><text:span text:style-name="T46">defines </text:span><text:span text:style-name="T67">a single </text:span><text:span text:style-name="T46">namelist file, </text:span><text:span text:style-name="T70">'namelist.echam'</text:span><text:span text:style-name="T46">, </text:span><text:span text:style-name="T68">containing a single namelist group with four variables of different types. Note </text:span><text:span text:style-name="T87">that you do not </text:span><text:span text:style-name="T68">need to use quotes for strings nor periods for logical values.</text:span></text:p> - <text:h text:style-name="P254" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2578_1114405012"/>Formatting the namelist information<text:bookmark-end text:name="__RefHeading__2578_1114405012"/></text:h> + <text:h text:style-name="P256" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2578_1114405012"/>Formatting the namelist information<text:bookmark-end text:name="__RefHeading__2578_1114405012"/></text:h> <text:p text:style-name="P71"><text:span text:style-name="T66">The </text:span><text:span text:style-name="T67">names of the </text:span><text:span text:style-name="T66">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:span text:style-name="T67">name</text:span><text:span text:style-name="T66">s, and their variables are formatted as fields of this namelist </text:span><text:span text:style-name="T67">group</text:span><text:span text:style-name="T66">. </text:span><text:span text:style-name="T67">In the example above, there is a single namelist group 'runctl', which will be converted to the Fortran namelist convention. </text:span><text:span text:style-name="T196">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:p text:style-name="P71"><text:span text:style-name="T216">In the example above, the first four fields are single values of logical, integer, floating </text:span><text:soft-page-break/><text:span text:style-name="T216">point, and string type.</text:span><text:span text:style-name="T70"> The fifth is a list of integer values, that will be passed as such to the namelist file:</text:span></text:p> <text:p text:style-name="P115">&runctl</text:p> @@ -2664,11 +2664,11 @@ <text:p text:style-name="P149"><text:s text:c="4"/>out_expname = <text:span text:style-name="T135">'</text:span><text:span text:style-name="T129">joe1234</text:span><text:span text:style-name="T135">'</text:span></text:p> <text:p text:style-name="P149"><text:span text:style-name="T70"><text:s text:c="4"/>dt_stop = </text:span><text:span text:style-name="T124">2009, 1, 1, 0, 0, 0</text:span></text:p> <text:p text:style-name="P134">/</text:p> - <text:h text:style-name="P259" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2580_1114405012"/><text:span text:style-name="T68">S</text:span><text:span text:style-name="T46">uppressing namelist groups or variables</text:span><text:bookmark-end text:name="__RefHeading__2580_1114405012"/></text:h> + <text:h text:style-name="P261" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2580_1114405012"/><text:span text:style-name="T68">S</text:span><text:span text:style-name="T46">uppressing namelist groups or variables</text:span><text:bookmark-end text:name="__RefHeading__2580_1114405012"/></text:h> <text:p text: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:p text:style-name="P56">The names may contain the usual file wildcards, '*' and '?' to remove a whole range of groups or variables.</text:p> <text:p text:style-name="P80"><text:span text:style-name="T46">While '.remove' is useful to </text:span><text:span text:style-name="T77">suppress</text:span><text:span text:style-name="T46"> 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:span text:style-name="T78">Therefore, its use in model setups is strongly discouraged.</text:span></text:p> - <text:h text:style-name="P255" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2714_1114405012"/>Using the namelist text<text:bookmark-end text:name="__RefHeading__2714_1114405012"/></text:h> + <text:h text:style-name="P257" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2714_1114405012"/>Using the namelist text<text:bookmark-end text:name="__RefHeading__2714_1114405012"/></text:h> <text:p text:style-name="P67"><text:span text:style-name="T68">T</text:span><text:span text:style-name="T70">he </text:span><text:span text:style-name="T59">formatted namelist text </text:span><text:span text:style-name="T46">is </text:span><text:span text:style-name="T70">stor</text:span><text:span text:style-name="T46">ed </text:span><text:span text:style-name="T70">in</text:span><text:span text:style-name="T46"> a global variable </text:span><text:span text:style-name="T70">that may be used by a template placeholder</text:span><text:span text:style-name="T46">. </text:span><text:span text:style-name="T68">This way, </text:span><text:span text:style-name="T46">all job information </text:span><text:span text:style-name="T70">available </text:span><text:span text:style-name="T68">is written to</text:span><text:span text:style-name="T46"> a single script or description file, </text:span><text:span text:style-name="T68">and </text:span><text:span text:style-name="T46">native script variables </text:span><text:span text:style-name="T68">may be used</text:span><text:span text:style-name="T46"> in the namelist definitions.</text:span></text:p> <text:p text:style-name="P69"><text:span text:style-name="T59">The name of </text:span><text:span text:style-name="T70">this </text:span><text:span text:style-name="T59">variable</text:span><text:span text:style-name="T60"> </text:span><text:span text:style-name="T70">is</text:span><text:span text:style-name="T59"> generated from </text:span><text:span text:style-name="T70">its</text:span><text:span text:style-name="T59"> </text:span><text:span text:style-name="T60">respective</text:span><text:span text:style-name="T59"> file name, </text:span><text:span text:style-name="T70">like</text:span><text:span text:style-name="T59"> 'namelist.echam', by </text:span><text:span text:style-name="T69">converting all letters to upper case </text:span><text:span text:style-name="T59">(</text:span><text:span text:style-name="T69">namelist.echam →</text:span><text:span text:style-name="T59"> </text:span><text:span text:style-name="T69">NAMELIST.ECHAM</text:span><text:span text:style-name="T59">) </text:span><text:span text:style-name="T60">and </text:span><text:span text:style-name="T59">replacing non-word characters by an underscore (NAMELIST.ECHAM → NAMELIST_ECHAM).</text:span></text:p> <text:p text:style-name="Preformatted_20_Text"># joe1234.config</text:p> @@ -2691,7 +2691,7 @@ <text:p text:style-name="P105">EOF</text:p> <text:p text:style-name="P70"><text:span text:style-name="T70">Note how this setup uses the native script variable 'EXP_ID' to set the </text:span><text:span text:style-name="T66">namelist contents.</text:span></text:p> <text:p text:style-name="P70"><text:span text:style-name="T71">As in the example above, the script template is responsible for writing the namelist text to an actual file. </text:span><text:span text:style-name="T70">While in general the namelist file takes the same name as the .config subsection defining it, </text:span><text:span text:style-name="T25">mkexp</text:span><text:span text:style-name="T70"> </text:span><text:span text:style-name="T71">ha</text:span><text:span text:style-name="T70">s currently no way to enforce this. The template needs to be set up accordingly.</text:span></text:p> - <text:h text:style-name="P260" text:outline-level="3">Using native script variables in namelists</text:h> + <text:h text:style-name="P262" text:outline-level="3">Using native script variables in namelists</text:h> <text:p text:style-name="P88">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:p text:style-name="P159">[namelists]</text:p> <text:p text:style-name="P159"><text:s text:c="2"/><text:span text:style-name="T221">[[namelist.echam]]</text:span></text:p> @@ -2704,26 +2704,26 @@ <text:p text:style-name="P88">When the text for NAMELIST_ECHAM is generated, <text:span text:style-name="T9">mkexp</text:span><text:span text:style-name="T46"> 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:span text:style-name="T93">recognized</text:span><text:span text:style-name="T46"> as a numer</text:span><text:span text:style-name="T93">ic</text:span><text:span text:style-name="T46"> or logical value. In the namelist context however it is </text:span><text:span text:style-name="T93">needed</text:span><text:span text:style-name="T46"> as a</text:span><text:span text:style-name="T93">n unquoted</text:span><text:span text:style-name="T46"> list of integers. </text:span><text:span text:style-name="T92">To fix this, simply use the special syntax 'raw(…)' </text:span><text:span text:style-name="T93">around the value:</text:span></text:p> <text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="T93"><text:s text:c="6"/></text:span><text:span text:style-name="T91">dt_stop = </text:span><text:span text:style-name="T93">raw(</text:span><text:span text:style-name="T91">$$final_date</text:span><text:span text:style-name="T93">)</text:span></text:p> <text:p text: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:h text:style-name="P257" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2584_1114405012"/><text:soft-page-break/>Non-namelist configuration files<text:bookmark-end text:name="__RefHeading__2584_1114405012"/></text:h> + <text:h text:style-name="P259" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2584_1114405012"/><text:soft-page-break/>Non-namelist configuration files<text:bookmark-end text:name="__RefHeading__2584_1114405012"/></text:h> <text:p text:style-name="P81"><text:span text:style-name="T81">A [namelists] subsection may not only define a Fortran namelist file but also a custom format configuration file. </text:span><text:span text:style-name="T79">F</text:span><text:span text:style-name="T46">or any </text:span><text:span text:style-name="T81">of these</text:span><text:span text:style-name="T80"> files, the special section variable '.use_template' m</text:span><text:span text:style-name="T94">ay</text:span><text:span text:style-name="T80"> be set to 'true', </text:span><text:span text:style-name="T94">if </text:span><text:span text:style-name="T81">the model setup provid</text:span><text:span text:style-name="T94">es</text:span><text:span text:style-name="T81"> a template '</text:span><text:span text:style-name="T29">subsection</text:span><text:span text:style-name="T81">.tmpl', </text:span><text:span text:style-name="T94">or to an arbitrary template name, replacing </text:span><text:span text:style-name="T35">subsection,</text:span><text:span text:style-name="T94"> if a template is applicable to more than one section</text:span><text:span text:style-name="T81">. This template is expanded using the subsection's variables to create a suitably formatted text. </text:span><text:span text:style-name="T82">As for genuine namelists, the result is stored in a global variable.</text:span></text:p> <text:h text:style-name="Heading_20_2" text:outline-level="2"><text:bookmark-start text:name="__RefHeading__2831_1132221942"/><text:span text:style-name="T82">D</text:span><text:span text:style-name="T46">efining input files for an experiment</text:span><text:bookmark-end text:name="__RefHeading__2831_1132221942"/></text:h> <text:p text:style-name="P85"><text:span text:style-name="T46">While the namelist files determine the model properties, the model state </text:span><text:span text:style-name="T90">also </text:span><text:span text:style-name="T46">depends on input files for initial and boundary conditions or assimilation data. These files are defined in the [files] special section.</text:span></text:p> <text:p text:style-name="P95"><text:span text:style-name="T46">Each </text:span><text:span text:style-name="T99">sub</text:span><text:span text:style-name="T46">section may define </text:span><text:span text:style-name="T98">or override </text:span><text:span text:style-name="T46">one of two special variables:</text:span></text:p> <text:p text:style-name="List_20_Heading"><text:span text:style-name="T46">.</text:span><text:span text:style-name="T97">base_dir</text:span></text:p> - <text:p text:style-name="P290">file names are taken to be relative to this directory</text:p> + <text:p text:style-name="P193">file names are taken to be relative to this directory</text:p> <text:p text:style-name="List_20_Heading"><text:span text:style-name="T46">.</text:span><text:span text:style-name="T97">sub_dir</text:span></text:p> - <text:p text:style-name="P217"><text:span text:style-name="T98">file names are taken to be relative to this subdirectory of </text:span><text:span text:style-name="T46">'.base_dir'</text:span></text:p> + <text:p text:style-name="P219"><text:span text:style-name="T98">file names are taken to be relative to this subdirectory of </text:span><text:span text:style-name="T46">'.base_dir'</text:span></text:p> <text:p text:style-name="P63"><text:span text:style-name="T116">For expanding the resulting file path</text:span><text:span text:style-name="T100">, </text:span><text:span text:style-name="T38">mkexp</text:span><text:span text:style-name="T100"> provides </text:span><text:span text:style-name="T116">a global function:</text:span></text:p> - <text:p text:style-name="P229"><text:span text:style-name="T100">get_file</text:span><text:span text:style-name="T121">(</text:span><text:span text:style-name="T40">section</text:span><text:span text:style-name="T121">, </text:span><text:span text:style-name="T40">name</text:span><text:span text:style-name="T121">)</text:span></text:p> - <text:p text:style-name="P291">returns the full path for file <text:span text:style-name="T9">name</text:span> as given in the <text:span text:style-name="T9">section</text:span> object. Note that <text:span text:style-name="T9">section</text:span> is given as object reference, but <text:span text:style-name="T9">name</text:span> is given as a string. <text:span text:style-name="T241">All native script variables are expanded</text:span></text:p> + <text:p text:style-name="P231"><text:span text:style-name="T100">get_file</text:span><text:span text:style-name="T121">(</text:span><text:span text:style-name="T40">section</text:span><text:span text:style-name="T121">, </text:span><text:span text:style-name="T40">name</text:span><text:span text:style-name="T121">)</text:span></text:p> + <text:p text:style-name="P197">returns the full path for file <text:span text:style-name="T9">name</text:span> as given in the <text:span text:style-name="T9">section</text:span> object. Note that <text:span text:style-name="T9">section</text:span> is given as object reference, but <text:span text:style-name="T9">name</text:span> is given as a string. <text:span text:style-name="T241">All native script variables are expanded</text:span></text:p> <text:p text:style-name="P85"><text:span text:style-name="T97">Other than that, t</text:span><text:span text:style-name="T90">here 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:h text:style-name="P253" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2833_1132221942"/>Overriding <text:span text:style-name="T219">input file</text:span>s <text:span text:style-name="T219">for certain</text:span> jobs<text:bookmark-end text:name="__RefHeading__2833_1132221942"/></text:h> + <text:h text:style-name="P255" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2833_1132221942"/>Overriding <text:span text:style-name="T219">input file</text:span>s <text:span text:style-name="T219">for certain</text:span> jobs<text:bookmark-end text:name="__RefHeading__2833_1132221942"/></text:h> <text:p text:style-name="P51"><text:span text:style-name="T220">As for namelists, t</text:span>here is special provision to change <text:span text:style-name="T219">the [</text:span>files<text:span text:style-name="T219">]</text:span> settings for a specific job. <text:span text:style-name="T219">Let us assume</text:span> <text:span text:style-name="T219">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:p text:style-name="P141">[<text:span text:style-name="T219">files</text:span>]</text:p> + <text:p text:style-name="P141"><text:soft-page-break/>[<text:span text:style-name="T219">files</text:span>]</text:p> <text:p text:style-name="P101"><text:s text:c="2"/>[[<text:span text:style-name="T219">echam</text:span>]]</text:p> <text:p text:style-name="P101"><text:s text:c="4"/>[[[<text:span text:style-name="T219">restart</text:span>]]]</text:p> <text:p text:style-name="P101"><text:s text:c="6"/><text:span text:style-name="T219">restart_myexp_echam.nc = restart_myexp_echam_18491231.nc</text:span></text:p> - <text:p text:style-name="P86">The first run <text:span text:style-name="T220">will instead pick up its state from another experiment. This is done with </text:span><text:span text:style-name="T106"><text:s/>a job specific </text:span><text:span text:style-name="T115">'file</text:span><text:span text:style-name="T106">s</text:span><text:span text:style-name="T115">'</text:span><text:span text:style-name="T106"> subsection that – apart from the addition</text:span><text:span text:style-name="T108">al</text:span><text:span text:style-name="T106"> brackets – has the same </text:span><text:soft-page-break/><text:span text:style-name="T106">structure as</text:span><text:span text:style-name="T105"> </text:span><text:span text:style-name="T106">the global </text:span><text:span text:style-name="T115">'files'</text:span><text:span text:style-name="T106"> section.</text:span></text:p> + <text:p text:style-name="P86">The first run <text:span text:style-name="T220">will instead pick up its state from another experiment. This is done with </text:span><text:span text:style-name="T106"><text:s/>a job specific </text:span><text:span text:style-name="T115">'file</text:span><text:span text:style-name="T106">s</text:span><text:span text:style-name="T115">'</text:span><text:span text:style-name="T106"> subsection that – apart from the addition</text:span><text:span text:style-name="T108">al</text:span><text:span text:style-name="T106"> brackets – has the same structure as</text:span><text:span text:style-name="T105"> </text:span><text:span text:style-name="T106">the global </text:span><text:span text:style-name="T115">'files'</text:span><text:span text:style-name="T106"> section.</text:span></text:p> <text:p text:style-name="P141">[jobs]</text:p> <text:p text:style-name="P141"><text:s text:c="2"/>[[run_first]]</text:p> <text:p text:style-name="P141"><text:s text:c="4"/><text:span text:style-name="T129">[[[</text:span><text:span text:style-name="T138">file</text:span><text:span text:style-name="T129">s]</text:span><text:span text:style-name="T138">]</text:span><text:span text:style-name="T129">]</text:span></text:p> diff --git a/doc/mkexp.pdf b/doc/mkexp.pdf index 7ef4ab3dcd90465499c7b06cd6986ed8e2c4c487..d18c5b24cbe906ef562ef835080e47a99d75b4fa 100644 GIT binary patch delta 36484 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 Lrt9nNm)-OaZ$xbW delta 36595 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	VKD6U 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%0AE|a7 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 a-+uUZ`}66yn~xj#(^NLkpHJ`JZvFvMU~1a{ diff --git a/setup.py b/setup.py index 80ef8d5..9a5a4bd 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ from distutils.core import setup name = 'mkexp' -version = '0.4.1dev' +version = '0.4.1' setup( name = name, -- GitLab