Mercurial > repos > climate > cesm
diff cesm.xml @ 0:7a7ba86e95a4 draft default tip
"planemo upload for repository https://github.com/ESCOMP/CESM commit 5c969e494841237de0b2301520d9321672cc9f5b"
author | climate |
---|---|
date | Tue, 15 Jun 2021 09:39:23 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cesm.xml Tue Jun 15 09:39:23 2021 +0000 @@ -0,0 +1,520 @@ +<tool id="cesm" name="CESM" profile="20.05" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@"> + <description>Community Earth System Model</description> + <macros> + <import>macros.xml</import> + </macros> + <expand macro="edam_ontology"/> + <requirements> + <requirement type="package" version="2.1.3">cesm</requirement> + <requirement type="package" version="1.32">tar</requirement> + <requirement type="package" version="2.35">binutils</requirement> + <requirement type="package" version="3">python</requirement> + </requirements> + <command detect_errors="exit_code"><![CDATA[ + export HOME=`pwd` && + export USER='FAKEUSER' && + export AR=x86_64-conda_cos6-linux-gnu-ar && + mkdir -p .cime && + cp '$__tool_directory__/config' .cime/config && + cp '$__tool_directory__/config_compilers.xml' '.cime/config_compilers.xml' && + bash '$__tool_directory__/create_config_machines.sh' \${GALAXY_SLOTS:-4} && + mv 'config_machines_galaxy.xml' '.cime/config_machines.xml' && + mkdir inputdata && + mkdir output_dir && + mkdir logs_dir && + mkdir -p usermods_dirs/SourceMods && + #if $input_type.tarball == 'yes' + echo "Getting inputdata from tarball" && + tar -xf '$input_type.inputdata' -C 'inputdata/' && + #else + echo "Getting inputdata from collection" && + #for $input_file in $input_type.input_data_collection + bash '$__tool_directory__/create_mapping.sh' '${input_file}' '${input_file.element_identifier}' '$mapping' && + #end for + #end if + #if $condi_user_mods.add_changes == 'yes' + #for $s in $condi_user_mods.usermods + echo "User mod ${s.srcmod} ${s.srcmod.element_identifier}" && + ln -s '${s.srcmod}' 'usermods_dirs/SourceMods/${s.srcmod.element_identifier}' && + #end for + #end if + echo "create case" && + create_newcase --case '$casename' --compset '$condi_compset.compset' --machine galaxy + --pesfile '$__tool_directory__/config_pes.xml' + #if $condi_user_mods.add_changes + --user-mods-dir ./usermods_dirs + #end if + --res $condi_compset.resolution > '$case_info' 2>&1 && + echo "create done" && + cd '$casename' && + #if str($adv_period.condi_type_run.run_type) == 'hybrid' or str($adv_period.condi_type_run.run_type) == 'branch': + ./xmlchange RUN_TYPE=$adv_period.condi_type_run.run_type && + ./xmlchange RUN_REFDATE=$adv_period.condi_type_run.run_refdate && + ./xmlchange RUN_REFCASE=$adv_period.condi_type_run.run_refcase && + #end if + #if ((str($adv_period.condi_type_run.run_type) == 'hybrid' or str($adv_period.condi_type_run.run_type) == 'startup') and $adv_period.condi_type_run.run_startdate != '') + ./xmlchange RUN_STARTDATE=$adv_period.condi_type_run.run_startdate && + #end if + ./xmlchange STOP_N=$adv_period.stopn && + ./xmlchange STOP_OPTION=$adv_period.stop_option && + ./xmlchange DOUT_S=FALSE && + #if str($adv_period.hist_option) != 'unset' + ./xmlchange HIST_OPTION=$adv_period.hist_option && + #end if + #if str($adv_restart.restart_option) != 'unset' + ./xmlchange REST_N=$adv_restart.restn && + ./xmlchange REST_OPTION=$adv_restart.restart_option && + #end if + #if $adv_restart.interim_files + ./xmlchange DOUT_S_SAVE_INTERIM_RESTART_FILES=TRUE && + #end if + #if str($adv_lnd.user_nl_lnd_customization) != 'None' + cp '$adv_lnd.user_nl_lnd_customization' user_nl_clm && + #end if + #if str($adv_atm.user_nl_atm_customization) != 'None' + cp '$adv_atm.user_nl_atm_customization' user_nl_cam && + #end if + #if str($adv_rof.user_nl_rof_customization) != 'None' + cp '$adv_rof.user_nl_rof_customization' user_nl_rof && + #end if + #if str($adv_glc.user_nl_glc_customization) != 'None' + cp '$adv_glc.user_nl_glc_customization' user_nl_cism && + #end if + #if str($adv_ocn.user_nl_ocn_customization) != 'None' + cp '$adv_ocn.user_nl_ocn_customization' user_nl_ocn && + #end if + #if str($adv_ice.user_nl_ice_customization) != 'None' + cp '$adv_ice.user_nl_ice_customization' user_nl_cice && + #end if + #if str($adv_lnd.inputs) != 'None' + echo "LAND customized inputs" && + #for $i in $adv_lnd.inputs + ln -s '${i}' ${i.element_identifier} && + #end for + #end if + #if str($adv_atm.inputs) != 'None' + echo "ATM customized inputs" && + #for $i in $adv_atm.inputs + ln -s '${i}' ${i.element_identifier} && + #end for + #end if + #if str($adv_rof.inputs) != 'None' + echo "ROF customized inputs" && + #for $i in $adv_rof.inputs + ln -s '${i}' ${i.element_identifier} && + #end for + #end if + #if str($adv_glc.inputs) != 'None' + echo "GLC customized inputs" && + #for $i in $adv_glc.inputs + ln -s '${i}' ${i.element_identifier} && + #end for + #end if + #if str($adv_ocn.inputs) != 'None' + echo "OCN customized inputs" && + #for $i in $adv_ocn.inputs + ln -s '${i}' ${i.element_identifier} && + #end for + #end if + #if str($adv_ice.inputs) != 'None' + echo "ICE customized inputs" && + #for $i in $adv_ice.inputs + ln -s '${i}' ${i.element_identifier} && + #end for + #end if + ./case.setup >> '$case_info' 2>&1 && + ./case.build >> '$case_info' 2>&1 && + #if str($adv_period.condi_type_run.run_type) == 'hybrid' or str($adv_period.condi_type_run.run_type) == 'branch': + tar -xf '$adv_period.condi_type_run.restart' -C '../work/$casename/run/' && + #end if + ( ./case.submit >> '$case_info' 2>&1 || true ) && + ( grep "MODEL EXECUTION HAS FINISHED" '$case_info' || + ( echo "Case failed" && cd .. && tar cf $work work && + bash '$__tool_directory__/save_logs.sh' 'work/$casename/run/' logs_dir '$case_info' && + exit 1 ) + ) && + echo "CURRENT PATH" && + echo "\$HOME" && + cd "\$HOME" && + mkdir -p restart && + #if (str($adv_restart.restart_option) != 'never') + bash '$__tool_directory__/save_restart.sh' 'work/$casename/run/' '$casename' restart '$case_info' && + cat 'work/$casename/run/rpointer'.* > $rinfo 2>> '$case_info' && + #end if + cd restart && + tar cvf $restart . && + cd "\$HOME" && + #if (str($adv_period.hist_option) != 'never') + cp 'work/$casename/run/$casename'.*.h*.*.nc output_dir/ 2>> '$case_info' && + #end if + bash '$__tool_directory__/save_logs.sh' 'work/$casename/run/' logs_dir '$case_info' && + #if $save_workdir + tar cf '$work' work && + #end if + echo "MODEL RUN COMPLETED" + ]]></command> + <inputs> + <conditional name="input_type"> + <param name="tarball" type="select" label="Provide inputdata as a tarball"> + <option value="yes">Tarball</option> + <option value="no" selected="true">List of netCDF input files</option> + </param> + <when value="yes"> + <param name="inputdata" type="data" format='tar' label="inputdata for running CESM (tarball)" /> + </when> + <when value="no"> + <param name="input_data_collection" type="data" format="netcdf" multiple="true" label="Select input data" help="Select all the netCDF files you would need for running the chosen compset and resolution"/> + <param name="mapping" type="data" format='txt' label="Text file for mapping files in inputdata collection to physical files"/> + </when> + </conditional> + <param name="casename" type="text" value="usecase" label="Name of your case"> + <validator type="regex" message="start with a letter and no blanks">^[A-Za-z][A-Za-z0-9]*</validator> + </param> + <conditional name="condi_compset"> + <param name="compset" type="select" label="Model compset"> + <option value="FKESSLER">FKESSLER</option> + <option value="F2000climo">F2000climo</option> + <option value="QPC6">QPC6</option> + <option value="QSC6">QSC6</option> + <option value="F1850">F1850</option> + <option value="FHIST">FHIST</option> + <option value="B1850">B1850</option> + <option value="BHIST">BHIST</option> + </param> + <when value="FKESSLER"> + <param name="resolution" type="select" label="Model resolution"> + <option value="ne30_g16 --run-unsupported">ne30_g16</option> + <option value="f09_f09_mg17">f09_f09_mg17</option> + <option value="f19_f19_mg17">f19_f19_mg17</option> + </param> + </when> + <when value="F2000climo"> + <param name="resolution" type="select" label="Model resolution"> + <option value="f09_f09_mg17">f09_f09_mg17</option> + <option value="f19_g17 --run-unsupported">f19_g17</option> + <option value="f19_f19_mg17 --run-unsupported">f19_f19_mg17</option> + </param> + </when> + <when value="FHIST"> + <param name="resolution" type="select" label="Model resolution"> + <option value="f09_f09_mg17">f09_f09_mg17</option> + </param> + </when> + <when value="QPC6"> + <param name="resolution" type="select" label="Model resolution"> + <option value="f09_f09_mg17">f09_f09_mg17</option> + <option value="f19_f19_mg17">f19_f19_mg17</option> + </param> + </when> + <when value="QSC6"> + <param name="resolution" type="select" label="Model resolution"> + <option value="f09_f09_mg17">f09_f09_mg17</option> + <option value="f19_f19_mg17">f19_f19_mg17</option> + </param> + </when> + <when value="F1850"> + <param name="resolution" type="select" label="Model resolution"> + <option value="f19_f19_mg17 --run-unsupported"></option> + </param> + </when> + <when value="B1850"> + <param name="resolution" type="select" label="Model resolution"> + <option value="f09_g17_gl4">f09_g17_gl4</option> + <option value="f09_g17">f09_g17</option> + <option value="f19_g17_gl4">f19_g17_gl4</option> + <option value="f19_g17">f19_g17</option> + </param> + </when> + <when value="BHIST"> + <param name="resolution" type="select" label="Model resolution"> + <option value="f09_g17_gl4">f09_g17_gl4</option> + <option value="f09_g17">f09_g17</option> + <option value="f19_g17_gl4">f19_g17_gl4</option> + <option value="f19_g17">f19_g17</option> + </param> + </when> + </conditional> + <param name="save_workdir" type="boolean" value="false" label="Save workdir as a tarball when successful"/> + <section name="adv_period" title="Customize the model run period" expanded="false"> + <conditional name="condi_type_run"> + <param name="run_type" type="select" label="Determines the model run initialization type."> + <option value="startup" selected="true">startup</option> + <option value="hybrid">hybrid</option> + <option value="branch">branch</option> + </param> + <when value="startup"> + <param name="run_startdate" type="text" value="" label="Run start date (yyyy-mm-dd). Only used for startup or hybrid runs."> + <validator type="regex" message="YYYY-MM-DD">(^$|(\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])))</validator> + </param> + </when> + <when value="branch"> + <param name="run_refcase" type="text" value="" label="Reference case for hybrid or branch runs"/> + <param name="run_refdate" type="text" value="" label="Reference date for hybrid or branch runs (yyyy-mm-dd)"> + <validator type="regex" message="YYYY-MM-DD">(^$|(\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])))</validator> + </param> + <param name="restart" type="data" format='tar' label="restart for running CESM"/> + </when> + <when value="hybrid"> + <param name="run_refcase" type="text" value="" label="Reference case for hybrid or branch runs"/> + <param name="run_refdate" type="text" value="" label="Reference date for hybrid or branch runs (yyyy-mm-dd)"> + <validator type="regex" message="YYYY-MM-DD">(^$|(\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])))</validator> + </param> + <param name="run_startdate" type="text" value="" label="Run start date (yyyy-mm-dd). Only used for startup or hybrid runs."> + <validator type="regex" message="YYYY-MM-DD">(^$|(\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])))</validator> + </param> + <param name="restart" type="data" format='tar' label="restart for running CESM"/> + </when> + </conditional> + <param name="stopn" type="integer" value="5" label="Provides a numerical count for STOP_OPTION."/> + <param name="stop_option" type="select" label=" Sets the run length along with STOP_N and STOP_DATE"> + <option value="ndays" selected="true">ndays</option> + <option value="none">none</option> + <option value="never">never</option> + <option value="nsteps">nsteps</option> + <option value="nseconds">nseconds</option> + <option value="nminutes">nminutes</option> + <option value="nhours">nhours</option> + <option value="nday">ndays</option> + <option value="nmonths">nmonths</option> + <option value="nyears">nyears</option> + <option value="date">date</option> + <option value="ifdays0">ifday0</option> + <option value="end">end</option> + </param> + <param name="hist_option" type="select" label="Sets driver snapshot history file frequency"> + <option value="unset" selected="true">unset</option> + <option value="ndays">ndays</option> + <option value="none">none</option> + <option value="never">never</option> + <option value="nsteps">nsteps</option> + <option value="nseconds">nseconds</option> + <option value="nminutes">nminutes</option> + <option value="nhours">nhours</option> + <option value="nday">ndays</option> + <option value="nmonths">nmonths</option> + <option value="nyears">nyears</option> + <option value="date">date</option> + <option value="ifdays0">ifday0</option> + <option value="end">end</option> + </param> + </section> + <section name="adv_restart" title="Customize the model restart period" expanded="false"> + <param name="restn" type="integer" value="12" label="Provides a numerical count for RESTART_OPTION (only if REST_N is different from 'unset')."/> + <param name="restart_option" type="select" label="Sets frequency of model restart writes in conjuction with REST_N (default is 'unset' e.g. STOP_N and STOP_OPTION)"> + <option value="unset" selected="true">unset</option> + <option value="ndays">ndays</option> + <option value="none">none</option> + <option value="never">never</option> + <option value="nsteps">nsteps</option> + <option value="nseconds">nseconds</option> + <option value="nminutes">nminutes</option> + <option value="nhours">nhours</option> + <option value="nday">ndays</option> + <option value="nmonths">nmonths</option> + <option value="nyears">nyears</option> + <option value="date">date</option> + <option value="ifdays0">ifday0</option> + <option value="end">end</option> + </param> + <param name="interim_files" type="boolean" value="false" label=""/> + </section> + + <section name="adv_lnd" title="Land namelist user customization" expanded="false"> + <param name="user_nl_lnd_customization" type="data" format="txt" optional="true" label="LAND User namelist (lnd_in)"/> + <param name="inputs" type="data" format="netcdf" multiple="true" optional="true" label="Customized Input files for LAND component"/> + </section> + <section name="adv_rof" title="River-runoff namelist user customization" expanded="false"> + <param name="user_nl_rof_customization" type="data" format="txt" optional="true" label="ROF User namelist (rof_in)"/> + <param name="inputs" type="data" format="netcdf" multiple="true" optional="true" label="Customized Input files for River-runoff component"/> + </section> + <section name="adv_atm" title="Atmopshere namelist user customization" expanded="false"> + <param name="user_nl_atm_customization" type="data" format="txt" optional="true" label="ATM User namelist (atm_in)"/> + <param name="inputs" type="data" format="netcdf" multiple="true" optional="true" label="Customized Input files for Atmosphere component"/> + </section> + <section name="adv_glc" title="Land-ice namelist user customization" expanded="false"> + <param name="user_nl_glc_customization" type="data" format="txt" optional="true" label="CISM User namelist (cism_in)"/> + <param name="inputs" type="data" format="netcdf" multiple="true" optional="true" label="Customized Input files for Land-Ice component"/> + </section> + <section name="adv_ice" title="Sea-ice namelist user customization" expanded="false"> + <param name="user_nl_ice_customization" type="data" format="txt" optional="true" label="ICE User namelist (ice_in)"/> + <param name="inputs" type="data" format="netcdf" multiple="true" optional="true" label="Customized Input files for Sea-Ice component"/> + </section> + <section name="adv_ocn" title="Ocean namelist user customization" expanded="false"> + <param name="user_nl_ocn_customization" type="data" format="txt" optional="true" label="OCN User namelist (ocn_in)"/> + <param name="inputs" type="data" format="netcdf" multiple="true" optional="true" label="Customized Input files for Ocean component"/> + </section> + <conditional name="condi_user_mods"> + <param name="add_changes" type="select" label="user-modified source code"> + <option value="yes">Yes</option> + <option value="no" selected="true">No</option> + </param> + <when value="yes"> + <repeat name="usermods" title="SourceMods files"> + <param name="srcmod" type="data" format="txt" label="Modified source file"/> + </repeat> + </when> + <when value="no"/> + </conditional> + </inputs> + <outputs> + <data name="work" format="tar" label="${tool.name} on ${casename} (workdir)"> + <filter> save_workdir == True</filter> + </data> + <data name="restart" format="tar" label="${tool.name} on ${casename} (restart)"/> + <data name="rinfo" format="txt" label="${tool.name} on ${casename} (restart info)"/> + <data name="case_info" format="txt" label="${tool.name} on ${casename} (case info)"/> + <collection name="logs_files" type="list" label="${tool.name} on ${casename} (logfiles)"> + <discover_datasets pattern="__name__" directory="logs_dir" visible="false" format="txt"/> + </collection> + <collection name="history_files" type="list" label="${tool.name} on ${casename} (history file)"> + <discover_datasets pattern="__name__" directory="output_dir" visible="true" format="netcdf"/> + </collection> + </outputs> + <tests> + <test> + <conditional name="input_type"> + <param name="tarball" value="yes" /> + <param name="inputdata" ftype="tar" value="inputdata_FKESSLER_ne30_g16_cesm2.1.3.tar" /> + </conditional> + <param name="casename" value="FKESSLER" /> + <conditional name="condi_compset"> + <param name="compset" value="FKESSLER" /> + <param name="resolution" value="ne30_g16 --run-unsupported" /> + </conditional> + <param name="save_workdir" value="false"/> + <section name="adv_period"> + <conditional name="condi_type_run"> + <param name="run_type" value="startup"/> + </conditional> + <param name="stop_option" value="nsteps" /> + <param name="stopn" value="1" /> + <param name="hist_option" value="never" /> + </section> + <section name="adv_restart"> + <param name="restart_option" value="never"/> + </section> + <output name="case_info" ftype="txt" file="case_info.txt" compare="sim_size" delta="1000"> + <assert_contents> + <has_text text="MODEL EXECUTION HAS FINISHED" /> + </assert_contents> + </output> + <output_collection name="logs_files" type="list"> + <element name="atm_log.txt" ftype="txt" file="atm_log.txt" compare="sim_size" delta="1000"> + <assert_contents> + <has_text text="END OF MODEL RUN" /> + </assert_contents> + </element> + <element name="cesm_log.txt" ftype="txt" file="cesm_log.txt" compare="sim_size" delta="1000"> + </element> + <element name="cpl_log.txt" ftype="txt" file="cpl_log.txt" compare="sim_size" delta="1000"> + <assert_contents> + <has_text text="SUCCESSFUL TERMINATION" /> + </assert_contents> + </element> + </output_collection> + </test> + <test> + <conditional name="input_type"> + <param name="tarball" value="no" /> + <param name="input_data_collection" ftype="netcdf" value="cam_vcoords_L30_c180105.nc" /> + <param name="mapping" ftype='txt' value="inputdata_mapping.txt" /> + </conditional> + <param name="casename" value="FKESSLER" /> + <conditional name="condi_compset"> + <param name="compset" value="FKESSLER" /> + <param name="resolution" value="ne30_g16 --run-unsupported" /> + </conditional> + <param name="save_workdir" value="false"/> + <section name="adv_period"> + <conditional name="condi_type_run"> + <param name="run_type" value="startup"/> + </conditional> + <param name="stop_option" value="nsteps" /> + <param name="stopn" value="1" /> + <param name="hist_option" value="never" /> + </section> + <section name="adv_restart"> + <param name="restart_option" value="never"/> + </section> + <output name="case_info" ftype="txt" file="case_info.txt" compare="sim_size" delta="1000"> + <assert_contents> + <has_text text="MODEL EXECUTION HAS FINISHED" /> + </assert_contents> + </output> + <output_collection name="logs_files" type="list"> + <element name="atm_log.txt" ftype="txt" file="atm_log.txt" compare="sim_size" delta="1000"> + <assert_contents> + <has_text text="END OF MODEL RUN" /> + </assert_contents> + </element> + <element name="cesm_log.txt" ftype="txt" file="cesm_log.txt" compare="sim_size" delta="1000"> + </element> + <element name="cpl_log.txt" ftype="txt" file="cpl_log.txt" compare="sim_size" delta="1000"> + <assert_contents> + <has_text text="SUCCESSFUL TERMINATION" /> + </assert_contents> + </element> + </output_collection> + </test> + <test> + <conditional name="input_type"> + <param name="tarball" value="yes" /> + <param name="inputdata" ftype="tar" value="inputdata_FKESSLER_ne30_g16_cesm2.1.3.tar" /> + </conditional> + <param name="casename" value="FKESSLER" /> + <conditional name="condi_compset"> + <param name="compset" value="FKESSLER" /> + <param name="resolution" value="ne30_g16 --run-unsupported" /> + </conditional> + <param name="save_workdir" value="false"/> + <section name="adv_period"> + <conditional name="condi_type_run"> + <param name="run_type" value="startup"/> + </conditional> + <param name="stop_option" value="nsteps" /> + <param name="stopn" value="1" /> + <param name="hist_option" value="never" /> + </section> + <section name="adv_restart"> + <param name="restart_option" value="never"/> + </section> + <section name="adv_atm"> + <param name="user_nl_atm_customization" ftype="txt" value="user_nl_cam" /> + </section> + <output name="case_info" ftype="txt" file="case_info.txt" compare="sim_size" delta="1000"> + <assert_contents> + <has_text text="MODEL EXECUTION HAS FINISHED" /> + </assert_contents> + </output> + <output_collection name="logs_files" type="list"> + <element name="atm_log.txt" ftype="txt" file="atm_log.txt" compare="sim_size" delta="1000"> + <assert_contents> + <has_text text="END OF MODEL RUN" /> + </assert_contents> + </element> + <element name="cesm_log.txt" ftype="txt" file="cesm_log.txt" compare="sim_size" delta="1000"> + </element> + <element name="cpl_log.txt" ftype="txt" file="cpl_log.txt" compare="sim_size" delta="1000"> + <assert_contents> + <has_text text="SUCCESSFUL TERMINATION" /> + </assert_contents> + </element> + </output_collection> + </test> + </tests> + <help><![CDATA[ + +**The Community Earth System Model (CESM)** +========================================================================== + +This tool creates and runs CESM experiments from CESM supported release. +CESM is a fully-coupled, community, global climate model that provides state-of-the-art computer simulations of the Earth's past, present, and future climate states. + +Available component configurations and grids: +---------------------------------------------- + - `Grid Resolutions <https://www.cesm.ucar.edu/models/cesm2/config/2.1.3/grids.html>`_ + - `Component Sets <https://www.cesm.ucar.edu/models/cesm2/config/2.1.3/compsets.html>`_ + - `Component Configuration Settings <https://www.cesm.ucar.edu/models/cesm2/settings/2.1.3/>`_ + ]]></help> + <expand macro="citations"/> +</tool>