From e7fab388c151a9cc847da3ec291a682a7ec98f62 Mon Sep 17 00:00:00 2001 From: Karl-Hermann Wieners <karl-hermann.wieners@mpimet.mpg.de> Date: Fri, 7 Apr 2017 11:08:44 +0000 Subject: [PATCH] Prepared for release 0.4.2 * Updated documentation version * Updated package version * Updated license information --- LICENSE.txt | 2 +- doc/mkexp.fodt | 365 ++++++++++++++++++++++++------------------------- doc/mkexp.pdf | Bin 444693 -> 444699 bytes setup.py | 2 +- 4 files changed, 183 insertions(+), 186 deletions(-) diff --git a/LICENSE.txt b/LICENSE.txt index bc91318..838f381 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,4 +1,4 @@ -Copyright (c) 2015 Max-Planck-Institut fuer Meteorologie, Hamburg, Germany +Copyright (c) 2017 Max-Planck-Institut fuer Meteorologie, Hamburg, Germany Copying and distribution of this package, with or without modification, are permitted in any medium without royalty provided the copyright notice and this diff --git a/doc/mkexp.fodt b/doc/mkexp.fodt index 0dd904b..b840a5e 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>P12DT1H57M6S</meta:editing-duration><meta:editing-cycles>127</meta:editing-cycles><meta:generator>LibreOffice/5.1.6.2$Linux_X86_64 LibreOffice_project/10m0$Build-2</meta:generator><meta:initial-creator>Karl-Hermann Wieners</meta:initial-creator><dc:date>2017-03-17T17:16:35.530782037</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="560" meta:word-count="7646" meta:character-count="48733" meta:non-whitespace-character-count="41250"/><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>P12DT1H59M</meta:editing-duration><meta:editing-cycles>129</meta:editing-cycles><meta:generator>LibreOffice/5.1.6.2$Linux_X86_64 LibreOffice_project/10m0$Build-2</meta:generator><meta:initial-creator>Karl-Hermann Wieners</meta:initial-creator><dc:date>2017-04-07T13:05:20.621931309</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="560" meta:word-count="7646" meta:character-count="48730" meta:non-whitespace-character-count="41247"/><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">231479</config:config-item> + <config:config-item config:name="ViewAreaTop" config:type="long">12277</config:config-item> <config:config-item config:name="ViewAreaLeft" config:type="long">0</config:config-item> - <config:config-item config:name="ViewAreaWidth" config:type="long">33847</config:config-item> - <config:config-item config:name="ViewAreaHeight" config:type="long">18755</config:config-item> + <config:config-item config:name="ViewAreaWidth" config:type="long">31413</config:config-item> + <config:config-item config:name="ViewAreaHeight" config:type="long">18163</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">19576</config:config-item> - <config:config-item config:name="ViewTop" config:type="long">245814</config:config-item> + <config:config-item config:name="ViewLeft" config:type="long">17270</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">0</config:config-item> - <config:config-item config:name="VisibleTop" config:type="long">231479</config:config-item> - <config:config-item config:name="VisibleRight" config:type="long">33846</config:config-item> - <config:config-item config:name="VisibleBottom" config:type="long">250232</config:config-item> + <config:config-item config:name="VisibleTop" config:type="long">12277</config:config-item> + <config:config-item config:name="VisibleRight" config:type="long">31411</config:config-item> + <config:config-item config:name="VisibleBottom" config:type="long">30438</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> @@ -68,7 +68,7 @@ <config:config-item config:name="InvertBorderSpacing" config:type="boolean">false</config:config-item> <config:config-item config:name="SaveGlobalDocumentLinks" config:type="boolean">false</config:config-item> <config:config-item config:name="TabsRelativeToIndent" config:type="boolean">true</config:config-item> - <config:config-item config:name="Rsid" config:type="int">14997060</config:config-item> + <config:config-item config:name="Rsid" config:type="int">15125915</config:config-item> <config:config-item config:name="PrintProspectRTL" config:type="boolean">false</config:config-item> <config:config-item config:name="PrintEmptyPages" config:type="boolean">false</config:config-item> <config:config-item config:name="ApplyUserData" config:type="boolean">true</config:config-item> @@ -108,7 +108,7 @@ <config:config-item config:name="LoadReadonly" config:type="boolean">false</config:config-item> <config:config-item config:name="DoNotCaptureDrawObjsOnPage" config:type="boolean">false</config:config-item> <config:config-item config:name="CurrentDatabaseCommand" config:type="string"/> - <config:config-item config:name="PrinterSetup" config:type="base64Binary">jAH+/0Jhc2lzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ1VQUzpCYXNpcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAMArgAAAAAAAAAIAFZUAAAkbQAASm9iRGF0YSAxCnByaW50ZXI9QmFzaXMKb3JpZW50YXRpb249UG9ydHJhaXQKY29waWVzPTEKY29sbGF0ZT1mYWxzZQptYXJnaW5kYWp1c3RtZW50PTAsMCwwLDAKY29sb3JkZXB0aD0yNApwc2xldmVsPTAKcGRmZGV2aWNlPTEKY29sb3JkZXZpY2U9MApQUERDb250ZXhEYXRhClBhZ2VTaXplOkxldHRlcgAAEgBDT01QQVRfRFVQTEVYX01PREUOAERVUExFWF9VTktOT1dO</config:config-item> + <config:config-item config:name="PrinterSetup" config:type="base64Binary">mwH+/0Jhc2lzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ1VQUzpCYXNpcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAMAvQAAAAAAAAAIAFZUAAAkbQAASm9iRGF0YSAxCnByaW50ZXI9QmFzaXMKb3JpZW50YXRpb249UG9ydHJhaXQKY29waWVzPTEKY29sbGF0ZT1mYWxzZQptYXJnaW5kYWp1c3RtZW50PTAsMCwwLDAKY29sb3JkZXB0aD0yNApwc2xldmVsPTAKcGRmZGV2aWNlPTEKY29sb3JkZXZpY2U9MApQUERDb250ZXhEYXRhCklucHV0U2xvdDpBdXRvAFBhZ2VTaXplOkxldHRlcgAAEgBDT01QQVRfRFVQTEVYX01PREUOAERVUExFWF9VTktOT1dO</config:config-item> <config:config-item config:name="ClipAsCharacterAnchoredWriterFlyFrames" config:type="boolean">false</config:config-item> </config:config-item-set> </office:settings> @@ -1039,245 +1039,242 @@ <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="P220" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> - <style:text-properties officeooo:paragraph-rsid="007a1e4b"/> + <style:style style:name="P220" style:family="paragraph" style:parent-style-name="List_20_Contents"> + <style:text-properties officeooo:rsid="00e4d644" officeooo:paragraph-rsid="00e4d644"/> </style:style> <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:text-properties officeooo:paragraph-rsid="007a1e4b"/> </style:style> <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:text-properties officeooo:rsid="007ab691" officeooo:paragraph-rsid="007ab691"/> </style:style> <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:text-properties officeooo:paragraph-rsid="007bf983"/> </style:style> <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:text-properties officeooo:rsid="008e53fe" officeooo:paragraph-rsid="008e53fe"/> </style:style> <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: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="P226" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> - <style:text-properties officeooo:rsid="00925c69" officeooo:paragraph-rsid="00925c69"/> + <style:text-properties officeooo:paragraph-rsid="0090e55e"/> </style:style> <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:text-properties officeooo:rsid="00925c69" officeooo:paragraph-rsid="00925c69"/> </style:style> <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:text-properties officeooo:rsid="00beeeb9" officeooo:paragraph-rsid="00beeeb9"/> </style:style> <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:text-properties officeooo:rsid="00beeeb9" officeooo:paragraph-rsid="00c0dbdb"/> </style:style> <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: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="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: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="P232" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> - <style:text-properties officeooo:rsid="00d08d3b" officeooo:paragraph-rsid="00d08d3b"/> + <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="P233" style:family="paragraph" style:parent-style-name="Preformatted_20_List_20_Heading"> - <style:text-properties officeooo:paragraph-rsid="00dbc83d"/> + <style:text-properties officeooo:rsid="00d08d3b" officeooo:paragraph-rsid="00d08d3b"/> </style:style> <style:style style:name="P234" 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="P235" 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="P235" style:family="paragraph" style:parent-style-name="Preformatted_20_Text_20_Interrupt"> + <style:style style:name="P236" 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="P236" 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" officeooo:rsid="008f3b90" officeooo:paragraph-rsid="008f3b90" style:font-style-asian="normal" style:font-style-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="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="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="P238" 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 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="P239" 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:paragraph-rsid="00cfb468"/> </style:style> - <style:style style:name="P240" 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="00d08d3b" officeooo:paragraph-rsid="00d08d3b"/> </style:style> - <style:style style:name="P241" style:family="paragraph" style:parent-style-name="Preformatted_20_Text_20_Indented"> + <style:style style:name="P242" 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="P242" style:family="paragraph" style:parent-style-name="Caption"> + <style:style style:name="P243" 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="P243" style:family="paragraph" style:parent-style-name="Contents_20_Heading"> + <style:style style:name="P244" style:family="paragraph" style:parent-style-name="Contents_20_Heading"> <style:paragraph-properties fo:break-before="page"/> </style:style> - <style:style style:name="P244" style:family="paragraph" style:parent-style-name="Heading_20_1"> + <style:style style:name="P245" 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="P245" style:family="paragraph" style:parent-style-name="Contents_20_1"> + <style:style style:name="P246" 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="P246" style:family="paragraph" style:parent-style-name="Contents_20_2"> + <style:style style:name="P247" 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="P247" style:family="paragraph" style:parent-style-name="Contents_20_3"> + <style:style style:name="P248" 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="P248" style:family="paragraph" style:parent-style-name="Heading_20_1"> + <style:style style:name="P249" 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="P249" 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="000a3505" officeooo:paragraph-rsid="000a3505"/> </style:style> - <style:style style:name="P250" style:family="paragraph" style:parent-style-name="Title" style:master-page-name=""> + <style:style style:name="P251" 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="P251" 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="0074d148"/> </style:style> - <style:style style:name="P252" 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 officeooo:rsid="00750ebf" officeooo:paragraph-rsid="00750ebf"/> </style:style> - <style:style style:name="P253" 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" 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="P255" 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="P255" 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:text-underline-style="none" officeooo:paragraph-rsid="00c2926f" 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="P257" 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="P257" 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:paragraph-rsid="00931d47" 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="P259" 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="P259" 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 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="P260" 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:rsid="0063d022" officeooo:paragraph-rsid="0063d022"/> </style:style> - <style:style style:name="P261" 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:paragraph-rsid="00931d47"/> </style:style> - <style:style style:name="P262" 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="00c6886f" officeooo:paragraph-rsid="00c6886f"/> </style:style> - <style:style style:name="P263" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P264" 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="P264" 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="000a3505"/> </style:style> - <style:style style:name="P265" 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="000a3505" officeooo:paragraph-rsid="00beeeb9"/> </style:style> - <style:style style:name="P266" style:family="paragraph" style:parent-style-name="Subtitle"> + <style:style style:name="P267" style:family="paragraph" style:parent-style-name="Subtitle"> <style:text-properties officeooo:rsid="00beeeb9" officeooo:paragraph-rsid="00beeeb9"/> </style:style> - <style:style style:name="P267" 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:paragraph-rsid="00b17591"/> </style:style> - <style:style style:name="P268" 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:rsid="00288fc1" officeooo:paragraph-rsid="00423119"/> </style:style> - <style:style style:name="P269" 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="00423119"/> </style:style> - <style:style style:name="P270" 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 officeooo:paragraph-rsid="0063d022"/> </style:style> - <style:style style:name="P271" style:family="paragraph" style:parent-style-name="Heading_20_2"> + <style:style style:name="P272" 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="P272" style:family="paragraph" style:parent-style-name="Title" style:master-page-name="First_20_Page"> + <style:style style:name="P273" 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:style style:name="P274" 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="P274" style:family="paragraph" style:parent-style-name="Heading_20_1"> + <style:style style:name="P275" 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="P275" 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:paragraph-rsid="00b17591"/> </style:style> - <style:style style:name="P276" 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:rsid="00288fc1" officeooo:paragraph-rsid="00423119"/> </style:style> - <style:style style:name="P277" 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="00423119"/> </style:style> - <style:style style:name="P278" 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 officeooo:paragraph-rsid="0063d022"/> </style:style> - <style:style style:name="P279" style:family="paragraph" style:parent-style-name="Heading_20_2"> + <style:style style:name="P280" 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="P280" 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="0074d148"/> </style:style> - <style:style style:name="P281" 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="00750ebf" officeooo:paragraph-rsid="00750ebf"/> </style:style> - <style:style style:name="P282" 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 officeooo:rsid="00d7bd9c" officeooo:paragraph-rsid="00d7bd9c"/> </style:style> - <style:style style:name="P283" 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" 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="P285" 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="P285" 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:text-underline-style="none" officeooo:paragraph-rsid="00c2926f" 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="P287" 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="P287" 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:paragraph-rsid="00931d47" style:font-style-asian="normal" style:font-style-complex="normal"/> </style:style> - <style:style style:name="P288" 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 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="P289" 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:rsid="0063d022" officeooo:paragraph-rsid="0063d022"/> </style:style> - <style:style style:name="P290" 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:paragraph-rsid="00931d47"/> </style:style> - <style:style style:name="P291" style:family="paragraph" style:parent-style-name="Heading_20_3"> + <style:style style:name="P292" 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="P292" 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="P293" style:family="paragraph" style:parent-style-name="List_20_Contents"> - <style:text-properties officeooo:rsid="00e4d644" officeooo:paragraph-rsid="00e4d644"/> - </style:style> <style:style style:name="T1" style:family="text"> <style:text-properties officeooo:rsid="000be205"/> </style:style> @@ -2057,7 +2054,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">9</text:page-number><text:tab/><text:tab/><text:modification-date style:data-style-name="N84">2017-03-17</text:modification-date>, <text:modification-time style:data-style-name="N41">17:16:36</text:modification-time></text:p> + <text:p text:style-name="Footer"><text:page-number text:select-page="current">28</text:page-number><text:tab/><text:tab/><text:modification-date style:data-style-name="N84">2017-04-07</text:modification-date>, <text:modification-time style:data-style-name="N41">13:05:21</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"/> @@ -2072,10 +2069,10 @@ <text:sequence-decl text:display-outline-level="0" text:name="Text"/> <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="P265">Run-script generation for earth system models</text:p> - <text:p text:style-name="P266">Release 0.<text:span text:style-name="T241">4</text:span>.<text:span text:style-name="T244">2dev</text:span></text:p> - <text:p text:style-name="P242">Karl-Hermann Wieners<text:line-break/><text:span text:style-name="T219">Max-Planck-Institut für Meteorologie<text:line-break/>Hamburg</text:span></text:p> + <text:p text:style-name="P273">Make Experiments!</text:p> + <text:p text:style-name="P266">Run-script generation for earth system models</text:p> + <text:p text:style-name="P267">Release 0.<text:span text:style-name="T241">4</text:span>.<text:span text:style-name="T244">2</text:span></text:p> + <text:p text:style-name="P243">Karl-Hermann Wieners<text:line-break/><text:span text:style-name="T219">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> @@ -2162,58 +2159,58 @@ </text:table-of-content-source> <text:index-body> <text:index-title text:style-name="Sect1" text:name="Table of Contents1_Head"> - <text:p text:style-name="P243">Table of Contents</text:p> + <text:p text:style-name="P244">Table of Contents</text:p> </text:index-title> - <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:p text:style-name="P246"><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="P247"><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="P248"><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="P248"><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="P248"><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="P246"><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="P247"><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="P247"><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="P247"><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="P248"><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="P248"><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="P248"><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="P248"><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="P248"><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="P248"><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="P247"><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="P248"><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="P248"><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="P248"><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="P248"><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="P248"><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="P248"><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="P247"><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="P247"><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="P247"><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="P247"><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="P248"><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="P248"><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="P248"><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="P248"><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="P248"><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="P248"><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="P247"><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="P248"><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="P248"><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="P248"><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="P248"><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="P247"><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="P248"><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="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:h text:style-name="P245" 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="T144">Make Experiments! (</text:span>mkexp<text:span text:style-name="T144">)</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="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:h text:style-name="P252" 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="T189">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"/> @@ -2239,7 +2236,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="T44">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="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:h text:style-name="P253" 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="T188">Now the experiment configuration is finalized, the </text:span>settings are used to fill in <text:span text:style-name="T188">a kind of job description forms, so called </text:span><text:span text:style-name="T9">templates</text:span><text:span text:style-name="T188">, </text:span>from which eventually the <text:span text:style-name="T188">actual </text:span>job description files are created. As the structure of<text:span text:style-name="T188"> </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="T209">'</text:span>amip.run.tmpl<text:span text:style-name="T209">'</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="T143">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"/> @@ -2306,33 +2303,33 @@ <text:p text:style-name="P13"><text:span text:style-name="T188">So, as soon as</text:span> <text:span text:style-name="T188">you have set up '</text:span>joe1234.config<text:span text:style-name="T188">'</text:span>, you may create the job scripts that are needed to run your experiment. Still within ECHAM's <text:span text:style-name="T190">'</text:span>run<text:span text:style-name="T190">'</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="T144">read all configuration information and </text:span>create all job scripts that are defined within your experiment's setup, <text:span text:style-name="T144">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="T144">scripts </text:span>in <text:span text:style-name="T144">a common</text:span> directory defined by the .config variable <text:span text:style-name="T190">'</text:span>SCRIPT_DIR<text:span text:style-name="T190">'</text:span>, and <text:span text:style-name="T190">print</text:span> the name of this directory on your terminal.</text:p> - <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="T208">experiment</text:span> <text:span text:style-name="T208">definition</text:span><text:bookmark-end text:name="__RefHeading__2528_1114405012"/></text:h> + <text:h text:style-name="P249" text:outline-level="1"><text:bookmark-start text:name="__RefHeading__2528_1114405012"/>Details on <text:span text:style-name="T208">experiment</text:span> <text:span text:style-name="T208">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="T47">.</text:span></text:p> - <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:h text:style-name="P268" 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="T170">is organized</text:span> <text:span text:style-name="T170">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="T169">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="T53">, it refers to this system level.</text:span></text:p> <text:p text:style-name="P34"><text:span text:style-name="T169">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="T169">: 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="T52">. 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="T52">.</text:span></text:p> <text:p text:style-name="P35"><text:span text:style-name="T47">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="T84">defines</text:span><text:span text:style-name="T47"> 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="T47">.</text:span></text:p> <text:p text:style-name="P36"><text:span text:style-name="T47">All levels should make a clear distinction </text:span><text:span text:style-name="T54">between </text:span><text:span text:style-name="T47">the .config files, containing the experiment's configuration information, </text:span><text:span text:style-name="T54">and </text:span><text:span text:style-name="T47">the .tmpl files, containing the actual job description and job control syntax.</text:span></text:p> - <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:h text:style-name="P269" 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="T144">The </text:span><text:span text:style-name="T32">mkexp</text:span><text:span text:style-name="T144"> 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="T238">[-m] [-g] </text:span><text:span text:style-name="T23">file</text:span><text:span text:style-name="T65">.</text:span><text:span text:style-name="T47">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="P200"><text:span text:style-name="T144">This is the main tool for generating an experiment setup. It </text:span>takes <text:span text:style-name="T191">the given</text:span> <text:span text:style-name="T191">user setup</text:span> and <text:span text:style-name="T210">the model setup that is referenced by the user setup </text:span>to generate <text:span text:style-name="T191">the</text:span> <text:span text:style-name="T191">job description files or</text:span> scripts that <text:span text:style-name="T210">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="T65">config</text:span><text:span text:style-name="T191">.</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="T47"> 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="T47"> allows to override </text:span><text:span text:style-name="T63">or amend </text:span><text:span text:style-name="T47">the .config file settings on the command line </text:span><text:span text:style-name="T63">by defining or re-defining a variable </text:span><text:span text:style-name="T192">name</text:span><text:span text:style-name="T63"> set to </text:span><text:span text:style-name="T192">value</text:span><text:span text:style-name="T63">. Section variables are referenced as </text:span><text:span text:style-name="T192">sectionname</text:span><text:span text:style-name="T63">.</text:span><text:span text:style-name="T192">variablename</text:span><text:span text:style-name="T63">. 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="T63">'..', thus it is not possible to use variable names th</text:span><text:span text:style-name="T85">at</text:span><text:span text:style-name="T63"> </text:span><text:span text:style-name="T192">end</text:span><text:span text:style-name="T63"> </text:span><text:span text:style-name="T85">i</text:span><text:span text:style-name="T63">n a period.</text:span></text:p> <text:p text:style-name="P218"><text:span text:style-name="T63">W</text:span><text:span text:style-name="T47">hen given the '-m' or '--no-make-dirs' option, only the </text:span><text:span text:style-name="T64">script</text:span><text:span text:style-name="T47"> directory is created while creation of the </text:span><text:span text:style-name="T64">run-time and outpu</text:span><text:span text:style-name="T47">t directories is skipped.</text:span></text:p> - <text:p text:style-name="P293">With '-g' or '--getexp', instead of a .config file, <text:span text:style-name="T9">mkexp</text:span><text:span text:style-name="T47"> expects a dump generated by </text:span><text:span text:style-name="T9">getexp -vv</text:span><text:span text:style-name="T47"> (see below). The experiment setup is regenerated from this dump, overriding any model setup.</text:span></text:p> - <text:p text:style-name="P221"><text:span text:style-name="T63">g</text:span><text:span text:style-name="T47">etexp [-v ...] </text:span><text:span text:style-name="T96">[-R]</text:span><text:span text:style-name="T47"> </text:span><text:span text:style-name="T9">file</text:span><text:span text:style-name="T47">.config [</text:span><text:span text:style-name="T9">name</text:span><text:span text:style-name="T47">=</text:span><text:span text:style-name="T9">value ...</text:span><text:span text:style-name="T47">]</text:span></text:p> + <text:p text:style-name="P220">With '-g' or '--getexp', instead of a .config file, <text:span text:style-name="T9">mkexp</text:span><text:span text:style-name="T47"> expects a dump generated by </text:span><text:span text:style-name="T9">getexp -vv</text:span><text:span text:style-name="T47"> (see below). The experiment setup is regenerated from this dump, overriding any model setup.</text:span></text:p> + <text:p text:style-name="P222"><text:span text:style-name="T63">g</text:span><text:span text:style-name="T47">etexp [-v ...] </text:span><text:span text:style-name="T96">[-R]</text:span><text:span text:style-name="T47"> </text:span><text:span text:style-name="T9">file</text:span><text:span text:style-name="T47">.config [</text:span><text:span text:style-name="T9">name</text:span><text:span text:style-name="T47">=</text:span><text:span text:style-name="T9">value ...</text:span><text:span text:style-name="T47">]</text:span></text:p> <text:p text:style-name="P201">getexp<text:span text:style-name="T47"> reads the experiment setup the same way </text:span><text:span text:style-name="T85">as</text:span><text:span text:style-name="T47"> </text:span>mkexp<text:span text:style-name="T47">, 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="T47">When given the '-v' </text:span><text:span text:style-name="T96">or '--</text:span><text:span text:style-name="T47">verbose</text:span><text:span text:style-name="T96">'</text:span><text:span text:style-name="T47"> option, all </text:span><text:span text:style-name="T9">global</text:span><text:span text:style-name="T47"> configuration variables and their values are printed in alphabetical order. </text:span><text:span text:style-name="T96">When given twice, the whole configuration is dumped </text:span><text:span text:style-name="T101">to the screen</text:span><text:span text:style-name="T96">. </text:span><text:span text:style-name="T101">Save this to a file for use with </text:span><text:span text:style-name="T38">mkexp -g</text:span><text:span text:style-name="T101">.</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="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="T193">.config </text:span><text:span text:style-name="T22">file2</text:span><text:span text:style-name="T64">.</text:span><text:span text:style-name="T65">config</text:span></text:p> + <text:p text:style-name="P234">diffexp <text:span text:style-name="T22">file</text:span><text:span text:style-name="T23">1</text:span><text:span text:style-name="T193">.config </text:span><text:span text:style-name="T22">file2</text:span><text:span text:style-name="T64">.</text:span><text:span text:style-name="T65">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="P222">rmexp <text:span text:style-name="T24">file</text:span><text:span text:style-name="T194">.config</text:span><text:span text:style-name="T66"> [</text:span><text:span text:style-name="T24">name</text:span><text:span text:style-name="T66">=</text:span><text:span text:style-name="T24">value ...</text:span><text:span text:style-name="T66">]</text:span></text:p> + <text:p text:style-name="P223">rmexp <text:span text:style-name="T24">file</text:span><text:span text:style-name="T194">.config</text:span><text:span text:style-name="T66"> [</text:span><text:span text:style-name="T24">name</text:span><text:span text:style-name="T66">=</text:span><text:span text:style-name="T24">value ...</text:span><text:span text:style-name="T66">]</text:span></text:p> <text:p text:style-name="P207">This allows <text:span text:style-name="T197">interactive </text:span>remov<text:span text:style-name="T197">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="T239">cp</text:span>exp <text:span text:style-name="T24">file</text:span><text:span text:style-name="T194">.config</text:span><text:span text:style-name="T66"> </text:span><text:span text:style-name="T37">new_name</text:span><text:span text:style-name="T97"> </text:span><text:span text:style-name="T66">[</text:span><text:span text:style-name="T24">name</text:span><text:span text:style-name="T66">=</text:span><text:span text:style-name="T24">value ...</text:span><text:span text:style-name="T66">]</text:span></text:p> + <text:p text:style-name="P235"><text:span text:style-name="T239">cp</text:span>exp <text:span text:style-name="T24">file</text:span><text:span text:style-name="T194">.config</text:span><text:span text:style-name="T66"> </text:span><text:span text:style-name="T37">new_name</text:span><text:span text:style-name="T97"> </text:span><text:span text:style-name="T66">[</text:span><text:span text:style-name="T24">name</text:span><text:span text:style-name="T66">=</text:span><text:span text:style-name="T24">value ...</text:span><text:span text:style-name="T66">]</text:span></text:p> <text:p text:style-name="List_20_Contents"><text:span text:style-name="T240">Replicates all data </text:span>of an experiment <text:span text:style-name="T239">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="P269" text:outline-level="2"><text:bookmark-start text:name="__RefHeading__2534_1114405012"/><text:span text:style-name="T150">F</text:span>ormat of .config files<text:bookmark-end text:name="__RefHeading__2534_1114405012"/></text:h> + <text:h text:style-name="P270" text:outline-level="2"><text:bookmark-start text:name="__RefHeading__2534_1114405012"/><text:span text:style-name="T150">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="T145">For reading these files, </text:span><text:span text:style-name="T12">mkexp</text:span><text:span text:style-name="T145"> uses the </text:span><text:span text:style-name="T12">configobj</text:span><text:span text:style-name="T145"> 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="T146">configuration variable is set by simply assigning a text value to a name, as in</text:span></text:p> @@ -2427,7 +2424,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="P235"><text:span text:style-name="T204">MODEL</text:span>_<text:span text:style-name="T204">DIR</text:span> = $HOME/<text:span text:style-name="T204">$MODEL_SUBDIR</text:span></text:p> + <text:p text:style-name="P236"><text:span text:style-name="T204">MODEL</text:span>_<text:span text:style-name="T204">DIR</text:span> = $HOME/<text:span text:style-name="T204">$MODEL_SUBDIR</text:span></text:p> <text:p text:style-name="P155"><text:soft-page-break/># 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="T205">This works, because i</text:span>nterpolation of 'MODEL_ROOT's value is postponed until all levels of setup have been read.</text:p> @@ -2437,20 +2434,20 @@ <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="T47"> includes some special expressions, that are evaluated when interpolation occurs.</text:span></text:p> - <text:p text:style-name="P223"><text:span text:style-name="T9">variable</text:span><text:span text:style-name="T47"> = </text:span><text:span text:style-name="T125">eval(</text:span><text:span text:style-name="T9">expression</text:span><text:span text:style-name="T125">)</text:span><text:span text:style-name="T47"><text:line-break/></text:span><text:span text:style-name="T9">variable</text:span><text:span text:style-name="T47"> = </text:span><text:span text:style-name="T125">evals(</text:span><text:span text:style-name="T9">expression</text:span><text:span text:style-name="T125">)</text:span></text:p> + <text:p text:style-name="P224"><text:span text:style-name="T9">variable</text:span><text:span text:style-name="T47"> = </text:span><text:span text:style-name="T125">eval(</text:span><text:span text:style-name="T9">expression</text:span><text:span text:style-name="T125">)</text:span><text:span text:style-name="T47"><text:line-break/></text:span><text:span text:style-name="T9">variable</text:span><text:span text:style-name="T47"> = </text:span><text:span text:style-name="T125">evals(</text:span><text:span text:style-name="T9">expression</text:span><text:span text:style-name="T125">)</text:span></text:p> <text:p text:style-name="P208"><text:span text:style-name="T77">I</text:span><text:span text:style-name="T47">nterpret </text:span><text:span text:style-name="T9">expression</text:span><text:span text:style-name="T47"> 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="T47"> 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="T47"> will return a list of strings, while </text:span><text:span text:style-name="T9">evals</text:span><text:span text:style-name="T47"> 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="T47">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="T74">to a string containing a Python list expression</text:span><text:span text:style-name="T47">, and </text:span><text:span text:style-name="T74">then </text:span><text:span text:style-name="T47">use </text:span><text:span text:style-name="T9">eval</text:span><text:span text:style-name="T47"> </text:span><text:span text:style-name="T87">a</text:span><text:span text:style-name="T47">round the interpolation expression:</text:span></text:p> - <text:p text:style-name="P236">DATE_<text:span text:style-name="T213">STRING</text:span> = '[2010, 10, 20]' # need quotes here!</text:p> - <text:p text:style-name="P236">DATE_<text:span text:style-name="T213">LIST</text:span> = eval($DATE_<text:span text:style-name="T214">STRING</text:span>) # becomes a 3 element list</text:p> - <text:p text:style-name="P224">variable<text:span text:style-name="T47"> = </text:span><text:span text:style-name="T125">read(</text:span>file_name<text:span text:style-name="T125">)</text:span></text:p> + <text:p text:style-name="P237">DATE_<text:span text:style-name="T213">STRING</text:span> = '[2010, 10, 20]' # need quotes here!</text:p> + <text:p text:style-name="P237">DATE_<text:span text:style-name="T213">LIST</text:span> = eval($DATE_<text:span text:style-name="T214">STRING</text:span>) # becomes a 3 element list</text:p> + <text:p text:style-name="P225">variable<text:span text:style-name="T47"> = </text:span><text:span text:style-name="T125">read(</text:span>file_name<text:span text:style-name="T125">)</text:span></text:p> <text:p text:style-name="P202"><text:span text:style-name="T47">Read the contents of the file </text:span>file_name<text:span text:style-name="T47"> and assign its contents to </text:span>variable<text:span text:style-name="T47"> 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="T75"> = </text:span><text:span text:style-name="T127">split_date(</text:span><text:span text:style-name="T27">timestamp</text:span><text:span text:style-name="T127">)</text:span></text:p> + <text:p text:style-name="P226"><text:span text:style-name="T27">variable</text:span><text:span text:style-name="T75"> = </text:span><text:span text:style-name="T127">split_date(</text:span><text:span text:style-name="T27">timestamp</text:span><text:span text:style-name="T127">)</text:span></text:p> <text:p text:style-name="P209"><text:span text:style-name="T206">T</text:span>ake <text:span text:style-name="T9">timestamp</text:span><text:span text:style-name="T47"> 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="T47"> </text:span><text:span text:style-name="T76">must have </text:span><text:span text:style-name="T47">an ISO-like format (date elements separated by '-'; 'T' or </text:span><text:soft-page-break/><text:span text:style-name="T47">space as date/time separator; time elements separated by ':</text:span><text:span text:style-name="T76">'; </text:span><text:span text:style-name="T47">trailing time elements </text:span><text:span text:style-name="T77">and their separators </text:span><text:span text:style-name="T76">are optional</text:span><text:span text:style-name="T47">; time zone indicator is not supported). </text:span><text:span text:style-name="T89">Unlike ISO, </text:span><text:span text:style-name="T31">split_date</text:span><text:span text:style-name="T89"> also</text:span><text:span text:style-name="T47"> </text:span><text:span text:style-name="T89">allows the date to be in the form YYYYMMDD</text:span><text:span text:style-name="T47">. </text:span><text:span text:style-name="T77">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="T47"> = </text:span><text:span text:style-name="T125">sec2time(</text:span><text:span text:style-name="T9">second_of_day</text:span><text:span text:style-name="T125">)</text:span></text:p> + <text:p text:style-name="P227"><text:span text:style-name="T9">variable</text:span><text:span text:style-name="T47"> = </text:span><text:span text:style-name="T125">sec2time(</text:span><text:span text:style-name="T9">second_of_day</text:span><text:span text:style-name="T125">)</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:span text:style-name="T9">variable</text:span> = '<text:span text:style-name="T131">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="P228"><text:span text:style-name="T9">variable</text:span> = '<text:span text:style-name="T131">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="T47"> (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="T47"> 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="T131">add_</text:span><text:span text:style-name="T139">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="P229"><text:span text:style-name="T9">variable</text:span> = '<text:span text:style-name="T131">add_</text:span><text:span text:style-name="T139">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="T47">Take integer </text:span><text:span text:style-name="T9">offset</text:span><text:span text:style-name="T47"> (may be negative), add it to the </text:span><text:span text:style-name="T90">day</text:span><text:span text:style-name="T47"> portion of </text:span><text:span text:style-name="T9">datestamp</text:span><text:span text:style-name="T47"> and return the resulting date string. </text:span><text:span text:style-name="T90">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> @@ -2482,28 +2479,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="T155">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="T167">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="T229">Besides, </text:span><text:span text:style-name="T9">mkexp</text:span> defines <text:s/><text:span text:style-name="T232">a number of </text:span>additional filters:</text:p> - <text:p text:style-name="P229">split<text:span text:style-name="T161">(</text:span><text:span text:style-name="T42">s</text:span><text:span text:style-name="T128">, </text:span><text:span text:style-name="T42">m</text:span><text:span text:style-name="T128">=-1)</text:span></text:p> + <text:p text:style-name="P230">split<text:span text:style-name="T161">(</text:span><text:span text:style-name="T42">s</text:span><text:span text:style-name="T128">, </text:span><text:span text:style-name="T42">m</text:span><text:span text:style-name="T128">=-1)</text:span></text:p> <text:p text:style-name="P195">cuts <text:span text:style-name="T231">the input </text:span>string <text:span text:style-name="T231">at all occurrences of </text:span><text:span text:style-name="T34">s</text:span><text:span text:style-name="T231">, returning</text:span> a list of substrings. <text:span text:style-name="T230">If </text:span><text:span text:style-name="T33">m</text:span><text:span text:style-name="T230"> 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="T230"> 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="T131">split</text:span><text:span text:style-name="T161">(' ') }<text:tab/><text:tab/>→</text:span><text:span text:style-name="T164"> </text:span><text:span text:style-name="T163">['A', 'B', 'C']</text:span></text:p> - <text:p text:style-name="P239"><text:span text:style-name="T163">%{ 'A B C' | split(' ', </text:span><text:span text:style-name="T141">1</text:span><text:span text:style-name="T163">) } <text:tab/></text:span><text:span text:style-name="T164">→ </text:span><text:span text:style-name="T163">['A', </text:span><text:span text:style-name="T141">'B C'</text:span><text:span text:style-name="T163">]</text:span></text:p> + <text:p text:style-name="P240"><text:span text:style-name="T163">%{ 'A B C' | split(' ', </text:span><text:span text:style-name="T141">1</text:span><text:span text:style-name="T163">) } <text:tab/></text:span><text:span text:style-name="T164">→ </text:span><text:span text:style-name="T163">['A', </text:span><text:span text:style-name="T141">'B C'</text:span><text:span text:style-name="T163">]</text:span></text:p> <text:p text:style-name="P213"/> <text:p text:style-name="P116"><text:soft-page-break/>filter<text:span text:style-name="T161">()</text:span></text:p> <text:p text:style-name="P214">removes empty elements from <text:span text:style-name="T231">the input</text:span> list:</text:p> - <text:p text:style-name="P240"><text:span text:style-name="T163">%{ ['A', '', 'C'] | </text:span><text:span text:style-name="T141">filter</text:span><text:span text:style-name="T163">() }<text:tab/>→</text:span><text:span text:style-name="T161"> ['A', 'C']</text:span></text:p> - <text:p text:style-name="P230">match<text:span text:style-name="T161">(</text:span><text:span text:style-name="T42">regexp</text:span><text:span text:style-name="T161">, </text:span><text:span text:style-name="T42">default</text:span><text:span text:style-name="T161">='')</text:span></text:p> + <text:p text:style-name="P241"><text:span text:style-name="T163">%{ ['A', '', 'C'] | </text:span><text:span text:style-name="T141">filter</text:span><text:span text:style-name="T163">() }<text:tab/>→</text:span><text:span text:style-name="T161"> ['A', 'C']</text:span></text:p> + <text:p text:style-name="P231">match<text:span text:style-name="T161">(</text:span><text:span text:style-name="T42">regexp</text:span><text:span text:style-name="T161">, </text:span><text:span text:style-name="T42">default</text:span><text:span text:style-name="T161">='')</text:span></text:p> <text:p text:style-name="P215"><text:span text:style-name="T161">returns the input string</text:span><text:span text:style-name="T128">, if </text:span><text:span text:style-name="T42">regexp</text:span><text:span text:style-name="T128"> matches somewhere in it. If </text:span><text:span text:style-name="T42">regexp</text:span><text:span text:style-name="T128"> 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="T42">default</text:span><text:span text:style-name="T128"> string is returned:</text:span></text:p> - <text:p text:style-name="P240"><text:span text:style-name="T128">%{ 'Douglas Adams' | </text:span><text:span text:style-name="T125">match</text:span><text:span text:style-name="T128">('Adam') }<text:tab/><text:tab/>→ 'Douglas Adams'</text:span></text:p> - <text:p text:style-name="P240"><text:span text:style-name="T128">%{ 'Douglas Adams' | match(</text:span><text:span text:style-name="T125">'Eve'</text:span><text:span text:style-name="T128">) }<text:tab/><text:tab/>→ ''</text:span></text:p> - <text:p text:style-name="P240"><text:span text:style-name="T128">%{ 'Douglas Adams' | match('Abel', </text:span><text:span text:style-name="T125">'Cain'</text:span><text:span text:style-name="T128">) }<text:tab/>→ 'Cain'</text:span></text:p> - <text:p text:style-name="P240"><text:span text:style-name="T128">%{ 'Douglas Adams' | match('l</text:span><text:span text:style-name="T125">(.*)</text:span><text:span text:style-name="T128">m') }<text:tab/><text:tab/>→ 'as Ada'</text:span></text:p> - <text:p text:style-name="P232"><text:span text:style-name="T125">wordwrap</text:span><text:span text:style-name="T128">(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="P241"><text:span text:style-name="T128">%{ 'Douglas Adams' | </text:span><text:span text:style-name="T125">match</text:span><text:span text:style-name="T128">('Adam') }<text:tab/><text:tab/>→ 'Douglas Adams'</text:span></text:p> + <text:p text:style-name="P241"><text:span text:style-name="T128">%{ 'Douglas Adams' | match(</text:span><text:span text:style-name="T125">'Eve'</text:span><text:span text:style-name="T128">) }<text:tab/><text:tab/>→ ''</text:span></text:p> + <text:p text:style-name="P241"><text:span text:style-name="T128">%{ 'Douglas Adams' | match('Abel', </text:span><text:span text:style-name="T125">'Cain'</text:span><text:span text:style-name="T128">) }<text:tab/>→ 'Cain'</text:span></text:p> + <text:p text:style-name="P241"><text:span text:style-name="T128">%{ 'Douglas Adams' | match('l</text:span><text:span text:style-name="T125">(.*)</text:span><text:span text:style-name="T128">m') }<text:tab/><text:tab/>→ 'as Ada'</text:span></text:p> + <text:p text:style-name="P233"><text:span text:style-name="T125">wordwrap</text:span><text:span text:style-name="T128">(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="T128">replaces the </text:span><text:span text:style-name="T129">builtin </text:span><text:span text:style-name="T43">Jinja </text:span><text:span text:style-name="T129">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="T131">wordwrap</text:span>(15, false)}</text:p> - <text:p text:style-name="P241"><text:span text:style-name="T129">→</text:span><text:span text:style-name="T128"> '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="T131">false</text:span>)} </text:p> - <text:p text:style-name="P241"><text:span text:style-name="T129">→</text:span><text:span text:style-name="T128"> 'long-</text:span><text:span text:style-name="T129">hyphenated-text'</text:span></text:p> + <text:p text:style-name="P238">%{'long-hyphenated-text'|<text:span text:style-name="T131">wordwrap</text:span>(15, false)}</text:p> + <text:p text:style-name="P242"><text:span text:style-name="T129">→</text:span><text:span text:style-name="T128"> 'long- </text:span></text:p> + <text:p text:style-name="P239"><text:s text:c="3"/>hyphenated-text'</text:p> + <text:p text:style-name="P242"/> + <text:p text:style-name="P238">%{'long-hyphenated-text'|wordwrap(15, false, <text:span text:style-name="T131">false</text:span>)} </text:p> + <text:p text:style-name="P242"><text:span text:style-name="T129">→</text:span><text:span text:style-name="T128"> 'long-</text:span><text:span text:style-name="T129">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="T215">i.e. lines </text:span>beginning with '#%'. <text:span text:style-name="T215">They </text:span>start with '#% for … <text:span text:style-name="T158">in …:</text:span>' and end in '#% endfor':</text:p> <text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="T131">#% for</text:span> countdown <text:span text:style-name="T131">in</text:span> [3, 2, 1, '<text:span text:style-name="T215">liftoff</text:span>']<text:span text:style-name="T131">:</text:span></text:p> @@ -2547,10 +2544,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="P263" text:outline-level="3"><text:soft-page-break/><text:span text:style-name="T236">O</text:span>ptions set due to model configuration </text:h> + <text:h text:style-name="P264" text:outline-level="3"><text:soft-page-break/><text:span text:style-name="T236">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="T235">for all experiments that use a given </text:span>model configuration. <text:span text:style-name="T235">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="P270" text:outline-level="2"><text:bookmark-start text:name="__RefHeading__1508_1711940803"/>Generating <text:span text:style-name="T183">j</text:span>obs<text:bookmark-end text:name="__RefHeading__1508_1711940803"/></text:h> + <text:h text:style-name="P271" text:outline-level="2"><text:bookmark-start text:name="__RefHeading__1508_1711940803"/>Generating <text:span text:style-name="T183">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="T171"> </text:span>running <text:span text:style-name="T9">mkexp</text:span><text:span text:style-name="T102">, </text:span><text:span text:style-name="T103">the special configuration section [jobs]</text:span><text:span text:style-name="T40"> </text:span><text:span text:style-name="T103">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="T172">model setup: experiment type 'control'</text:span></text:p> <text:p text:style-name="P125">[jobs]</text:p> @@ -2574,7 +2571,7 @@ <text:p text:style-name="P139"><text:span text:style-name="T102"><text:s text:c="4"/>.</text:span><text:span text:style-name="T106">extends</text:span><text:span text:style-name="T102"> = p</text:span><text:span text:style-name="T107">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="T174">made available </text:span>to <text:span text:style-name="T174">the template via the</text:span> 'JOB' dictionary.</text:p> - <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:h text:style-name="P255" 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="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> @@ -2582,7 +2579,7 @@ <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="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:h text:style-name="P254" 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"><text:soft-page-break/>[namelists]</text:p> <text:p text:style-name="P100"><text:s text:c="2"/>[[namelist.jsbach]]</text:p> @@ -2597,7 +2594,7 @@ <text:p text:style-name="P100"><text:s text:c="8"/><text:span text:style-name="T173">[[</text:span>[[[jsbach_ctl]]]<text:span text:style-name="T173">]]</text:span></text:p> <text:p text:style-name="P100"><text:span text:style-name="T102"><text:s text:c="10"/>use_dynveg = </text:span><text:span text:style-name="T107">true</text:span></text:p> <text:p text:style-name="P46"><text:span text:style-name="T108">This</text:span><text:span text:style-name="T102"> 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="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:h text:style-name="P254" 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="T102">While the definition of .config variables may use</text:span><text:span text:style-name="T109"> variable references like</text:span><text:span text:style-name="T102"> $NAME or ${NAME} to include the </text:span><text:span text:style-name="T109">verbatim </text:span><text:span text:style-name="T102">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="T109">script</text:span><text:span text:style-name="T102"> 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="T109">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> @@ -2626,7 +2623,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="T180">Joe User</text:span>' </text:p> <text:p text:style-name="P144">print<text:span text:style-name="T217">(</text:span>'<text:span text:style-name="T102">This experiment was generated by </text:span><text:span text:style-name="T111">' + str(</text:span><text:span text:style-name="T102">NAME) </text:span><text:span text:style-name="T111">+ '</text:span>'<text:span text:style-name="T217">)</text:span></text:p> - <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:h text:style-name="P261" 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="T184">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="T185">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="T185"> maintains the special variable VARIABLES_. When generating output for</text:span></text:p> <text:p text:style-name="P132">NAME = Joe User</text:p> @@ -2656,7 +2653,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="T144">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="T186">may</text:span> <text:span text:style-name="T186">set</text:span> the special variable E<text:span text:style-name="T186">NVIRONMENT</text:span> to the name of <text:span text:style-name="T186">the host </text:span>e<text:span text:style-name="T186">nvironment</text:span> to use. <text:span text:style-name="T186">If it is not set, or empty, the 'DEFAULT' environment settings will be used.</text:span></text:p> - <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:h text:style-name="P272" 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="T69">Most models need at least one Fortran namelist file or another form of configuration file to run. </text:span><text:span text:style-name="T70">The special section [namelists] </text:span><text:span text:style-name="T69">is designed to </text:span><text:span text:style-name="T70">contain all information that goes into </text:span><text:span text:style-name="T69">these</text:span><text:span text:style-name="T70"> files. Each </text:span><text:span text:style-name="T67">immediate </text:span><text:span text:style-name="T70">subsection defines settings for a single file that will </text:span><text:span text:style-name="T69">by default be </text:span><text:span text:style-name="T70">formatted as a Fortran namelist. </text:span><text:span text:style-name="T69">For </text:span><text:span text:style-name="T70">example,</text:span></text:p> <text:p text:style-name="P146">[namelists]</text:p> <text:p text:style-name="P156"/> @@ -2668,7 +2665,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="T199">dt_stop = 2009, 1, 1, 0, 0, 0</text:span></text:p> <text:p text:style-name="P66"><text:span text:style-name="T47">defines </text:span><text:span text:style-name="T68">a single </text:span><text:span text:style-name="T47">namelist file, </text:span><text:span text:style-name="T71">'namelist.echam'</text:span><text:span text:style-name="T47">, </text:span><text:span text:style-name="T69">containing a single namelist group with four variables of different types. Note </text:span><text:span text:style-name="T88">that you do not </text:span><text:span text:style-name="T69">need to use quotes for strings nor periods for logical values.</text:span></text:p> - <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:h text:style-name="P257" 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="T67">The </text:span><text:span text:style-name="T68">names of the </text:span><text:span text:style-name="T67">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="T68">name</text:span><text:span text:style-name="T67">s, and their variables are formatted as fields of this namelist </text:span><text:span text:style-name="T68">group</text:span><text:span text:style-name="T67">. </text:span><text:span text:style-name="T68">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="T198">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="T218">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="T218">point, and string type.</text:span><text:span text:style-name="T71"> 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> @@ -2678,11 +2675,11 @@ <text:p text:style-name="P149"><text:s text:c="4"/>out_expname = <text:span text:style-name="T137">'</text:span><text:span text:style-name="T131">joe1234</text:span><text:span text:style-name="T137">'</text:span></text:p> <text:p text:style-name="P149"><text:span text:style-name="T71"><text:s text:c="4"/>dt_stop = </text:span><text:span text:style-name="T126">2009, 1, 1, 0, 0, 0</text:span></text:p> <text:p text:style-name="P134">/</text:p> - <text:h text:style-name="P261" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2580_1114405012"/><text:span text:style-name="T69">S</text:span><text:span text:style-name="T47">uppressing namelist groups or variables</text:span><text:bookmark-end text:name="__RefHeading__2580_1114405012"/></text:h> + <text:h text:style-name="P262" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2580_1114405012"/><text:span text:style-name="T69">S</text:span><text:span text:style-name="T47">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="T47">While '.remove' is useful to </text:span><text:span text:style-name="T78">suppress</text:span><text:span text:style-name="T47"> 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="T79">Therefore, its use in model setups is strongly discouraged.</text:span></text:p> - <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:h text:style-name="P258" 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="T69">T</text:span><text:span text:style-name="T71">he </text:span><text:span text:style-name="T60">formatted namelist text </text:span><text:span text:style-name="T47">is </text:span><text:span text:style-name="T71">stor</text:span><text:span text:style-name="T47">ed </text:span><text:span text:style-name="T71">in</text:span><text:span text:style-name="T47"> a global variable </text:span><text:span text:style-name="T71">that may be used by a template placeholder</text:span><text:span text:style-name="T47">. </text:span><text:span text:style-name="T69">This way, </text:span><text:span text:style-name="T47">all job information </text:span><text:span text:style-name="T71">available </text:span><text:span text:style-name="T69">is written to</text:span><text:span text:style-name="T47"> a single script or description file, </text:span><text:span text:style-name="T69">and </text:span><text:span text:style-name="T47">native script variables </text:span><text:span text:style-name="T69">may be used</text:span><text:span text:style-name="T47"> in the namelist definitions.</text:span></text:p> <text:p text:style-name="P69"><text:span text:style-name="T60">The name of </text:span><text:span text:style-name="T71">this </text:span><text:span text:style-name="T60">variable</text:span><text:span text:style-name="T61"> </text:span><text:span text:style-name="T71">is</text:span><text:span text:style-name="T60"> generated from </text:span><text:span text:style-name="T71">its</text:span><text:span text:style-name="T60"> </text:span><text:span text:style-name="T61">respective</text:span><text:span text:style-name="T60"> file name, </text:span><text:span text:style-name="T71">like</text:span><text:span text:style-name="T60"> 'namelist.echam', by </text:span><text:span text:style-name="T70">converting all letters to upper case </text:span><text:span text:style-name="T60">(</text:span><text:span text:style-name="T70">namelist.echam →</text:span><text:span text:style-name="T60"> </text:span><text:span text:style-name="T70">NAMELIST.ECHAM</text:span><text:span text:style-name="T60">) </text:span><text:span text:style-name="T61">and </text:span><text:span text:style-name="T60">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> @@ -2705,7 +2702,7 @@ <text:p text:style-name="P105">EOF</text:p> <text:p text:style-name="P70"><text:span text:style-name="T71">Note how this setup uses the native script variable 'EXP_ID' to set the </text:span><text:span text:style-name="T67">namelist contents.</text:span></text:p> <text:p text:style-name="P70"><text:span text:style-name="T72">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="T71">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="T71"> </text:span><text:span text:style-name="T72">ha</text:span><text:span text:style-name="T71">s currently no way to enforce this. The template needs to be set up accordingly.</text:span></text:p> - <text:h text:style-name="P262" text:outline-level="3">Using native script variables in namelists</text:h> + <text:h text:style-name="P263" 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="T223">[[namelist.echam]]</text:span></text:p> @@ -2718,7 +2715,7 @@ <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="T47"> 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="T94">recognized</text:span><text:span text:style-name="T47"> as a numer</text:span><text:span text:style-name="T94">ic</text:span><text:span text:style-name="T47"> or logical value. In the namelist context however it is </text:span><text:span text:style-name="T94">needed</text:span><text:span text:style-name="T47"> as a</text:span><text:span text:style-name="T94">n unquoted</text:span><text:span text:style-name="T47"> list of integers. </text:span><text:span text:style-name="T93">To fix this, simply use the special syntax 'raw(…)' </text:span><text:span text:style-name="T94">around the value:</text:span></text:p> <text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="T94"><text:s text:c="6"/></text:span><text:span text:style-name="T92">dt_stop = </text:span><text:span text:style-name="T94">raw(</text:span><text:span text:style-name="T92">$$final_date</text:span><text:span text:style-name="T94">)</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="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:h text:style-name="P260" 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="T82">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="T80">F</text:span><text:span text:style-name="T47">or any </text:span><text:span text:style-name="T82">of these</text:span><text:span text:style-name="T81"> files, the special section variable '.use_template' m</text:span><text:span text:style-name="T95">ay</text:span><text:span text:style-name="T81"> be set to 'true', </text:span><text:span text:style-name="T95">if </text:span><text:span text:style-name="T82">the model setup provid</text:span><text:span text:style-name="T95">es</text:span><text:span text:style-name="T82"> a template '</text:span><text:span text:style-name="T29">subsection</text:span><text:span text:style-name="T82">.tmpl', </text:span><text:span text:style-name="T95">or to an arbitrary template name, replacing </text:span><text:span text:style-name="T35">subsection,</text:span><text:span text:style-name="T95"> if a template is applicable to more than one section</text:span><text:span text:style-name="T82">. This template is expanded using the subsection's variables to create a suitably formatted text. </text:span><text:span text:style-name="T83">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="T83">D</text:span><text:span text:style-name="T47">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="T47">While the namelist files determine the model properties, the model state </text:span><text:span text:style-name="T91">also </text:span><text:span text:style-name="T47">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> @@ -2728,10 +2725,10 @@ <text:p text:style-name="List_20_Heading"><text:span text:style-name="T47">.</text:span><text:span text:style-name="T98">sub_dir</text:span></text:p> <text:p text:style-name="P219"><text:span text:style-name="T99">file names are taken to be relative to this subdirectory of </text:span><text:span text:style-name="T47">'.base_dir'</text:span></text:p> <text:p text:style-name="P63"><text:span text:style-name="T118">For expanding the resulting file path</text:span><text:span text:style-name="T102">, </text:span><text:span text:style-name="T39">mkexp</text:span><text:span text:style-name="T102"> provides </text:span><text:span text:style-name="T118">a global function:</text:span></text:p> - <text:p text:style-name="P231"><text:span text:style-name="T102">get_file</text:span><text:span text:style-name="T123">(</text:span><text:span text:style-name="T41">section</text:span><text:span text:style-name="T123">, </text:span><text:span text:style-name="T41">name</text:span><text:span text:style-name="T123">)</text:span></text:p> + <text:p text:style-name="P232"><text:span text:style-name="T102">get_file</text:span><text:span text:style-name="T123">(</text:span><text:span text:style-name="T41">section</text:span><text:span text:style-name="T123">, </text:span><text:span text:style-name="T41">name</text:span><text:span text:style-name="T123">)</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="T243">All native script variables are expanded</text:span></text:p> <text:p text:style-name="P85"><text:span text:style-name="T98">Other than that, t</text:span><text:span text:style-name="T91">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="P255" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2833_1132221942"/>Overriding <text:span text:style-name="T221">input file</text:span>s <text:span text:style-name="T221">for certain</text:span> jobs<text:bookmark-end text:name="__RefHeading__2833_1132221942"/></text:h> + <text:h text:style-name="P256" text:outline-level="3"><text:bookmark-start text:name="__RefHeading__2833_1132221942"/>Overriding <text:span text:style-name="T221">input file</text:span>s <text:span text:style-name="T221">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="T222">As for namelists, t</text:span>here is special provision to change <text:span text:style-name="T221">the [</text:span>files<text:span text:style-name="T221">]</text:span> settings for a specific job. <text:span text:style-name="T221">Let us assume</text:span> <text:span text:style-name="T221">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:soft-page-break/>[<text:span text:style-name="T221">files</text:span>]</text:p> <text:p text:style-name="P101"><text:s text:c="2"/>[[<text:span text:style-name="T221">echam</text:span>]]</text:p> diff --git a/doc/mkexp.pdf b/doc/mkexp.pdf index cc5968d5821a29f2ff87bfca0adfaac24cf6107d..91acc861ba97687e3a1daa15b268e56417c9f843 100644 GIT binary patch delta 41620 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 C2xIdA delta 41928 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 D5m;#} diff --git a/setup.py b/setup.py index 150ae60..00ea8de 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ from distutils.core import setup name = 'mkexp' -version = '0.4.2dev' +version = '0.4.2' setup( name = name, -- GitLab