├── .config_files.xml ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Copyright ├── Externals.cfg ├── LICENSE ├── README ├── README.md ├── README.rst ├── README.testing ├── README_EXTERNALS.rst ├── cime_config ├── buildlib ├── buildnml ├── buildnml_test │ ├── env_archive.xml │ ├── env_batch.xml │ ├── env_build.xml │ ├── env_case.xml │ ├── env_mach_pes.xml │ ├── env_mach_specific.xml │ ├── env_run.xml │ ├── env_workflow.xml │ ├── run_buildnml │ └── user_nl_slim ├── config_archive.xml ├── config_component.xml ├── config_compsets.xml ├── config_pes.xml ├── namelist_definition.xsl ├── namelist_definition_slim.xml ├── slim_cime_py │ ├── __init__.py │ └── buildnml.py ├── testdefs │ ├── ExpectedTestFails.xml │ ├── testlist_slim.xml │ └── testmods_dirs │ │ └── slim │ │ ├── Monthly │ │ ├── include_user_mods │ │ └── user_nl_slim │ │ ├── default │ │ ├── shell_commands │ │ └── user_nl_slim │ │ ├── g16_SOM │ │ ├── include_user_mods │ │ ├── shell_commands │ │ └── user_docn.streams.txt.som │ │ ├── g16_SOM_save_cplhist │ │ └── include_user_mods │ │ ├── global_uniform │ │ ├── include_user_mods │ │ └── shell_commands │ │ ├── global_uniform_g16_SOM │ │ └── include_user_mods │ │ ├── global_uniform_g16_SOMMonthly │ │ └── include_user_mods │ │ ├── realistic_2000 │ │ ├── include_user_mods │ │ └── shell_commands │ │ └── save_cplhist │ │ ├── include_user_mods │ │ └── user_nl_cpl └── user_nl_slim ├── manage_externals ├── .dir_locals.el ├── .github │ ├── ISSUE_TEMPLATE.md │ └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── .travis.yml ├── LICENSE.txt ├── README.md ├── README_FIRST ├── checkout_externals ├── manic │ ├── __init__.py │ ├── checkout.py │ ├── externals_description.py │ ├── externals_status.py │ ├── global_constants.py │ ├── repository.py │ ├── repository_factory.py │ ├── repository_git.py │ ├── repository_svn.py │ ├── sourcetree.py │ └── utils.py └── test │ ├── .coveragerc │ ├── .gitignore │ ├── .pylint.rc │ ├── Makefile │ ├── README.md │ ├── doc │ ├── .gitignore │ ├── Makefile │ ├── conf.py │ ├── develop.rst │ ├── index.rst │ └── testing.rst │ ├── repos │ ├── container.git │ │ ├── HEAD │ │ ├── config │ │ ├── description │ │ ├── info │ │ │ └── exclude │ │ ├── objects │ │ │ ├── 41 │ │ │ │ └── 1de5d96ee418c1c55f3e96e6e6e7c06bb95801 │ │ │ ├── 71 │ │ │ │ └── 5b8f3e4afe1802a178e1d603af404ba45d59de │ │ │ ├── b0 │ │ │ │ └── f87705e2b9601cb831878f3d51efa78b910d7b │ │ │ └── f9 │ │ │ │ └── e08370a737e941de6f6492e3f427c2ef4c1a03 │ │ └── refs │ │ │ └── heads │ │ │ └── master │ ├── error │ │ └── readme.txt │ ├── mixed-cont-ext.git │ │ ├── HEAD │ │ ├── config │ │ ├── description │ │ ├── info │ │ │ └── exclude │ │ ├── objects │ │ │ ├── 14 │ │ │ │ └── 368b701616a8c53820b610414a4b9a07540cf6 │ │ │ ├── 15 │ │ │ │ └── 2b57e1cf23721cd17ff681cb9276e3fb9fc091 │ │ │ ├── 37 │ │ │ │ └── f0e70b609adc90f4c09ee21d82ed1d79c81d69 │ │ │ ├── 38 │ │ │ │ └── 9a2b876b8965d3c91a3db8d28a483eaf019d5c │ │ │ ├── 41 │ │ │ │ └── 1de5d96ee418c1c55f3e96e6e6e7c06bb95801 │ │ │ ├── 93 │ │ │ │ └── a159deb9175bfeb2820a0006ddd92d78131332 │ │ │ ├── 95 │ │ │ │ └── 80ecc12f16334ce44e42287d5d46f927bb7b75 │ │ │ ├── 00 │ │ │ │ └── 437ac2000d5f06fb8a572a01a5bbdae98b17cb │ │ │ ├── 01 │ │ │ │ └── 97458f2dbe5fcd6bc44fa46983be0a30282379 │ │ │ ├── 06 │ │ │ │ └── ea30b03ffa2f8574705f8b9583f7ca7e2dccf7 │ │ │ ├── 1f │ │ │ │ └── 01fa46c17b1f38b37e6259f6e9d041bda3144f │ │ │ ├── 6e │ │ │ │ └── 9f4baa6e94a0af4e094836c2eb55ccedef5fc4 │ │ │ ├── 6f │ │ │ │ └── c379457ecb4e576a13c7610ae1fa73f845ee6a │ │ │ ├── a9 │ │ │ │ └── 288dcd8a719a1f4ed3cba43a2a387ae7cd60fd │ │ │ ├── e8 │ │ │ │ └── ea32a11d30ee703f6f661ae7c2376f4ab84d38 │ │ │ └── fd │ │ │ │ └── 15a5ad5204356229c60a831d2a8120a43ac901 │ │ └── refs │ │ │ └── heads │ │ │ ├── master │ │ │ └── new-feature │ ├── simple-ext-fork.git │ │ ├── HEAD │ │ ├── config │ │ ├── description │ │ ├── info │ │ │ └── exclude │ │ ├── objects │ │ │ ├── 11 │ │ │ │ └── a76e3d9a67313dec7ce1230852ab5c86352c5c │ │ │ ├── 16 │ │ │ │ └── 5506a7408a482f50493434e13fffeb44af893f │ │ │ ├── 24 │ │ │ │ └── 4386e788c9bc608613e127a329c742450a60e4 │ │ │ ├── 32 │ │ │ │ └── 7e97d86e941047d809dba58f2804740c6c30cf │ │ │ ├── 36 │ │ │ │ └── 418b4e5665956a90725c9a1b5a8e551c5f3d48 │ │ │ ├── 41 │ │ │ │ └── 1de5d96ee418c1c55f3e96e6e6e7c06bb95801 │ │ │ ├── 56 │ │ │ │ └── 175e017ad38bf3d33d74b6bd7c74624b28466a │ │ │ ├── 67 │ │ │ │ └── 136e5ab4d5c1c65d10c8048763b96b0e53c1d6 │ │ │ ├── 88 │ │ │ │ └── cf20868e0cc445f5642a480ed034c71e0d7e9f │ │ │ ├── 00 │ │ │ │ └── fd13e76189f9134b0506b4b8ed3172723b467f │ │ │ ├── 0b │ │ │ │ ├── 15e8af3d4615b42314216efeae3fff184046a8 │ │ │ │ └── 67df4e7e8e6e1c6e401542738b352d18744677 │ │ │ ├── 3d │ │ │ │ ├── 7099c35404ae6c8640ce263b38bef06e98cc26 │ │ │ │ └── ec1fdf8e2f5edba28148c5db2fe8d7a842360b │ │ │ ├── 4d │ │ │ │ └── 837135915ed93eed6fff6b439f284ce317296f │ │ │ ├── 5f │ │ │ │ └── 1d4786d12e52d7ab28d2f2f1118c1059a9f1ae │ │ │ ├── 7b │ │ │ │ └── 0bd630ac13865735a1dff3437a137d8ab50663 │ │ │ ├── 8d │ │ │ │ └── 2b3b35126224c975d23f109aa1e3cbac452989 │ │ │ ├── 9b │ │ │ │ └── 75494003deca69527bb64bcaa352e801611dd2 │ │ │ ├── a2 │ │ │ │ └── 2a5da9119328ea6d693f88861457c07e14ac04 │ │ │ ├── a4 │ │ │ │ └── 2fe9144f5707bc1e9515ce1b44681f7aba6f95 │ │ │ ├── b9 │ │ │ │ └── 3737be3ea6b19f6255983748a0a0f4d622f936 │ │ │ ├── c5 │ │ │ │ ├── 32bc8fde96fa63103a52057f0baffcc9f00c6b │ │ │ │ └── b315915742133dbdfbeed0753e481b55c1d364 │ │ │ └── f2 │ │ │ │ └── 68d4e56d067da9bd1d85e55bdc40a8bd2b0bca │ │ ├── packed-refs │ │ └── refs │ │ │ ├── heads │ │ │ └── feature2 │ │ │ └── tags │ │ │ ├── abandoned-feature │ │ │ └── forked-feature-v1 │ └── simple-ext.git │ │ ├── HEAD │ │ ├── config │ │ ├── description │ │ ├── info │ │ └── exclude │ │ ├── objects │ │ ├── 11 │ │ │ └── a76e3d9a67313dec7ce1230852ab5c86352c5c │ │ ├── 14 │ │ │ └── 2711fdbbcb8034d7cad6bae6801887b12fe61d │ │ ├── 31 │ │ │ └── dbcd6de441e671a467ef317146539b7ffabb11 │ │ ├── 36 │ │ │ └── 418b4e5665956a90725c9a1b5a8e551c5f3d48 │ │ ├── 41 │ │ │ └── 1de5d96ee418c1c55f3e96e6e6e7c06bb95801 │ │ ├── 60 │ │ │ ├── 7ec299c17dd285c029edc41a0109e49d441380 │ │ │ └── b1cc1a38d63a4bcaa1e767262bbe23dbf9f5f5 │ │ ├── 63 │ │ │ └── a99393d1baff97ccef967af30380659867b139 │ │ ├── 95 │ │ │ └── 3256da5612fcd9263590a353bc18c6f224e74f │ │ ├── 00 │ │ │ └── fd13e76189f9134b0506b4b8ed3172723b467f │ │ ├── 09 │ │ │ └── 0e1034746b2c865f7b0280813dbf4061a700e8 │ │ ├── 0b │ │ │ └── 15e8af3d4615b42314216efeae3fff184046a8 │ │ ├── 9b │ │ │ └── 75494003deca69527bb64bcaa352e801611dd2 │ │ ├── a2 │ │ │ └── 2a5da9119328ea6d693f88861457c07e14ac04 │ │ ├── b7 │ │ │ └── 692b6d391899680da7b9b6fd8af4c413f06fe7 │ │ ├── c5 │ │ │ └── b315915742133dbdfbeed0753e481b55c1d364 │ │ ├── d1 │ │ │ └── 163870d19c3dee34fada3a76b785cfa2a8424b │ │ ├── d8 │ │ │ └── ed2f33179d751937f8fde2e33921e4827babf4 │ │ └── df │ │ │ └── 312890f93ba4d2c694208599b665c4a08afeff │ │ └── refs │ │ ├── heads │ │ ├── feature2 │ │ ├── feature3 │ │ └── master │ │ └── tags │ │ ├── tag1 │ │ └── tag2 │ ├── requirements.txt │ ├── test_sys_checkout.py │ ├── test_sys_repository_git.py │ ├── test_unit_externals_description.py │ ├── test_unit_externals_status.py │ ├── test_unit_repository.py │ ├── test_unit_repository_git.py │ ├── test_unit_repository_svn.py │ └── test_unit_utils.py ├── parse_cime.cs.status ├── py_env_create ├── python ├── Makefile ├── README.md ├── conda_env_slim_py.txt ├── conda_env_slim_py_cgd.txt ├── pyproject.toml ├── run_slim_py_tests └── slim │ ├── .pylintrc │ ├── __init__.py │ ├── add_cime_to_path.py │ ├── add_slim_cime_py_to_path.py │ ├── config_utils.py │ ├── git_utils.py │ ├── import_hook.py │ ├── mksurdat │ ├── __init__.py │ └── mksurdat.ipynb │ ├── modify_input_files │ ├── __init__.py │ ├── modify_surdat.py │ └── surdat_modifier.py │ ├── path_utils.py │ ├── run_slim_py_tests.py │ ├── slim_logging.py │ ├── test │ ├── README │ ├── __init__.py │ ├── test_sys_buildnml.py │ ├── test_sys_surdat_modifier.py │ ├── test_unit_buildnml.py │ ├── test_unit_modify_surdat.py │ └── test_unit_path_utils.py │ ├── unit_testing.py │ └── utils.py ├── src ├── biogeophys │ ├── QSatMod.F90 │ └── mml_main.F90 ├── cpl │ ├── mct │ │ ├── clm_cpl_indices.F90 │ │ ├── lnd_comp_mct.F90 │ │ └── lnd_import_export.F90 │ └── nuopc │ │ ├── lnd_comp_nuopc.F90 │ │ ├── lnd_comp_shr.F90 │ │ ├── lnd_import_export.F90 │ │ ├── lnd_import_export_utils.F90 │ │ └── lnd_set_decomp_and_domain.F90 ├── init_interp │ ├── initInterp.F90 │ ├── initInterp1dData.F90 │ ├── initInterp2dvar.F90.in │ ├── initInterpBounds.F90 │ ├── initInterpMindist.F90 │ ├── initInterpMultilevelBase.F90 │ ├── initInterpMultilevelContainer.F90 │ ├── initInterpMultilevelCopy.F90 │ ├── initInterpMultilevelInterp.F90 │ ├── initInterpMultilevelSnow.F90 │ └── initInterpMultilevelSplit.F90 ├── main │ ├── GetGlobalValuesMod.F90 │ ├── GridcellType.F90 │ ├── abortutils.F90 │ ├── accumulMod.F90 │ ├── atm2lndType.F90 │ ├── clm_driver.F90 │ ├── clm_initializeMod.F90 │ ├── clm_instMod.F90 │ ├── clm_varcon.F90 │ ├── clm_varctl.F90 │ ├── clm_varpar.F90 │ ├── controlMod.F90 │ ├── decompInitMod.F90 │ ├── decompMod.F90 │ ├── dtypes.h │ ├── histFileMod.F90 │ ├── lnd2atmType.F90 │ ├── ncdio_pio.F90.in │ ├── ncdio_utils.F90 │ ├── restFileMod.F90 │ ├── subgridRestMod.F90 │ └── surfrdMod.F90 └── utils │ ├── array_utils.F90 │ ├── array_utils.F90.in │ ├── clm_nlUtilsMod.F90 │ ├── clm_time_manager.F90 │ ├── clm_varorb.F90 │ ├── domainMod.F90 │ ├── dtypes.h │ ├── fileutils.F90 │ ├── getdatetime.F90 │ ├── restUtilMod.F90.in │ ├── spmdGathScatMod.F90 │ └── spmdMod.F90 └── tools ├── README ├── mksurdat └── README.mksurdat └── modify_input_files ├── README.surdat_modifier ├── modify_surdat_defaults.cfg ├── modify_surdat_template.cfg └── surdat_modifier /.config_files.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 16 | 17 | char 18 | unset 19 | 20 | $SRCROOT 21 | $SRCROOT/components/cpl7/components/data_comps_mct/dlnd 22 | $SRCROOT/components/cdeps/dlnd 23 | $SRCROOT/components/cpl7/components/stub_comps_mct/slnd 24 | $SRCROOT/components/cpl7/components/xcpl_comps_mct/xlnd 25 | $CIMEROOT/src/components/stub_comps_nuopc/slnd 26 | $CIMEROOT/src/components/xcpl_comps_nuopc/xlnd 27 | 28 | case_comps 29 | env_case.xml 30 | Root directory of the case land model component 31 | $CIMEROOT/config/xml_schemas/config_compsets.xsd 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # directories checked out by manage_externals, and other files created 2 | # by manage_externals 3 | manage_externals.log 4 | cime/ 5 | components/ 6 | ccs_config/ 7 | libraries/ 8 | share/ 9 | 10 | # ignore svn directories 11 | **/.svn/** 12 | .svn/ 13 | 14 | # binary files 15 | *.nc 16 | 17 | # editor files 18 | *.swp 19 | *~ 20 | 21 | # cime_config 22 | buildnmlc 23 | buildcppc 24 | 25 | # mac files 26 | .DS_Store 27 | 28 | # cmake generated files 29 | build/ 30 | CMakeFiles/ 31 | 32 | # build output 33 | *.o 34 | *.mod 35 | core.* 36 | *.gz 37 | *.log !run.log 38 | *.pyc 39 | 40 | # buildnml testing 41 | cime_config/buildnml_test/run 42 | cime_config/buildnml_test/Buildconf 43 | cime_config/buildnml_test/buildnml.log 44 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## How to contribute: 2 | 3 | We recommend that you first open an issue (https://github.com/escomp/ctsm/issues/) to 4 | discuss the changes or additions that you propose. You should also contact some of the responsible 5 | individuals for SLIM and run by the changes with them. 6 | 7 | Erik Kluzek -- Software Engineering (erik@ucar.edu) 8 | Marysa Lague -- Originator (marysa.lague@usask.ca) 9 | Isla Simpson -- Principal Investigator (simpson@ucar.edu) 10 | 11 | Use the help from the wiki below to setup a fork and personal branch in GitHub to put your developments 12 | on and keep up to date with the master branch of SLIM. Once the changes are sufficiently advanced you 13 | can form a Pull Request on GitHub. Either from your fork on GitHub, or from the main ESCOMP GitHub page 14 | for SLIM (be sure to hit the "compare across forks" link at the top of the page when you first create 15 | the pull request). 16 | 17 | https://github.com/ESCOMP/SimpleLand/pulls 18 | 19 | This allows you to show your proposed changes and start getting feedback on them (even if they aren't finished). 20 | This also allows your changes to be planned for and slated for a time to come into SLIM master. In most 21 | cases you won't merge the Pull Request yourself, but a software engineer responsible for SLIM will do 22 | additional testing and bring the changes to SLIM master. 23 | 24 | #### SLIM Wiki: 25 | 26 | https://github.com/ESCOMP/SimpleLand/wiki 27 | 28 | #### Code of Conduct: 29 | 30 | See the `CODE_OF_CONDUCT.md` file for expectations of how to work in the community. 31 | -------------------------------------------------------------------------------- /Copyright: -------------------------------------------------------------------------------- 1 | CESM1.5: Copyright Notice and Disclaimer 2 | 3 | The Community Earth System Model (CESM was developed in cooperation with 4 | the National Science Foundation, the Department of Energy, 5 | the National Aeronautics and Space Administration, and 6 | the University Corporation for Atmospheric Research National Center for Atmospheric Research. 7 | 8 | Except for the segregable components listed below, CESM is public domain software. 9 | There may be other third party tools and libraries that are embedded, and 10 | they may have their own copyright notices and terms. 11 | 12 | The following components are copyrighted and may only be used, modified, 13 | or redistributed under the terms indicated below. 14 | 15 | Code Institution Copyright Terms of Use/Disclaimer 16 | ---- ----------- --------- ----------------------- 17 | ESMF University of Copyright University of Illinois/NCSA Open Source License 18 | Illinois/NCSA 2002-2009, 19 | University of 20 | Illinois/NCSA 21 | Open Source 22 | License 23 | 24 | POP,SCRIP,CICE Los Alamos National Copyright 2008 Los Alamos National Security, LLC 25 | Laboratory Los Alamos 26 | National 27 | Security, LLC 28 | 29 | Glimmer-CISM LANL/U. Copyright GNU General Public License 30 | Bristol/U. 2004-2010, 31 | Edinburgh/U. GNU General 32 | Montana/U. Public License 33 | Swansea 34 | 35 | AER RRTMG Atmospheric Copyright AER RRTMG Copyright 36 | and 2002-2010, 37 | Environmental Atmospheric 38 | Research, Inc. and 39 | Environmental 40 | Research, Inc. 41 | 42 | MCT Argonne Copyright 2000, MCT Copyright 43 | National 2010, 44 | Laboratory University of 45 | Chicago. 46 | 47 | ICSSP N/A Copyright 2003, ISCCP Simulator Software 48 | 2010, Steve 49 | Klein and Mark 50 | Webb 51 | 52 | XML/Lite Wadsack-Allen Copyright 2001, The documentation for the Perl XML-Lite 53 | Digital Group 2010 module is no longer available on-line. 54 | Wadsack-Allen 55 | Digital Group 56 | 57 | Inf_NaN Lahey Copyright(c) Copies of this source code, or standalone compiled 58 | _Detection Computer 2003, Lahey files derived from this source may not be sold 59 | module Systems, Inc. Computer without permission from Lahey Computers Systems. 60 | Systems, Inc. All or part of this module may be freely incorporated 61 | into executable programs which are offered for sale. 62 | Otherwise, distribution of all or part of this file is 63 | permitted, provided this copyright notice and header 64 | are included. 65 | 66 | 67 | THIS SOFTWARE IS PROVIDED BY UCAR AND ANY CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 68 | INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 69 | DISCLAIMED. IN NO EVENT SHALL UCAR OR ANY CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 70 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 71 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 72 | IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 73 | THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 74 | 75 | -------------------------------------------------------------------------------- /Externals.cfg: -------------------------------------------------------------------------------- 1 | [slm] 2 | local_path = . 3 | protocol = externals_only 4 | required = True 5 | 6 | [cam] 7 | tag = cam6_3_116 8 | protocol = git 9 | repo_url = https://github.com/ESCOMP/CAM 10 | local_path = components/cam 11 | externals = Externals_CAM.cfg 12 | required = True 13 | 14 | [cice6] 15 | tag = cesm_cice6_4_1_9 16 | protocol = git 17 | repo_url = https://github.com/ESCOMP/CESM_CICE 18 | local_path = components/cice 19 | externals = Externals.cfg 20 | required = True 21 | 22 | [cice5] 23 | tag = cice5_20220204 24 | protocol = git 25 | repo_url = https://github.com/ESCOMP/CESM_CICE5 26 | local_path = components/cice5 27 | required = True 28 | 29 | [ccs_config] 30 | tag = ccs_config_cesm0.0.71 31 | protocol = git 32 | repo_url = https://github.com/ESMCI/ccs_config_cesm.git 33 | local_path = ccs_config 34 | required = True 35 | 36 | [cdeps] 37 | tag = cdeps1.0.14 38 | protocol = git 39 | repo_url = https://github.com/ESCOMP/CDEPS 40 | local_path = components/cdeps 41 | externals = Externals_CDEPS.cfg 42 | required = True 43 | 44 | [cmeps] 45 | tag = cmeps0.14.34 46 | protocol = git 47 | repo_url = https://github.com/ESCOMP/CMEPS 48 | local_path = components/cmeps 49 | required = True 50 | 51 | [cpl7] 52 | tag = cpl77.0.5 53 | protocol = git 54 | repo_url = https://github.com/ESCOMP/CESM_CPL7andDataComps 55 | local_path = components/cpl7 56 | required = True 57 | 58 | [share] 59 | tag = share1.0.17 60 | protocol = git 61 | repo_url = https://github.com/ESCOMP/CESM_share 62 | local_path = share 63 | required = True 64 | 65 | [mct] 66 | tag = MCT_2.11.0 67 | protocol = git 68 | repo_url = https://github.com/MCSclimate/MCT 69 | local_path = libraries/mct 70 | required = True 71 | 72 | [parallelio] 73 | tag = pio2_5_10 74 | protocol = git 75 | repo_url = https://github.com/NCAR/ParallelIO 76 | local_path = libraries/parallelio 77 | required = True 78 | 79 | [cime] 80 | local_path = cime 81 | protocol = git 82 | repo_url = https://github.com/ESMCI/cime 83 | tag = cime6.0.140 84 | required = True 85 | 86 | [externals_description] 87 | schema_version = 1.0.01 88 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2005-2022, University Corporation for Atmospheric Research (UCAR) 2 | All rights reserved. 3 | 4 | Developed by: 5 | University Corporation for Atmospheric Research - National Center for Atmospheric Research 6 | https://www2.cesm.ucar.edu/working-groups/sewg 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining 9 | a copy of this software and associated documentation files (the "Software"), 10 | to deal with the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom 13 | the Software is furnished to do so, subject to the following conditions: 14 | 15 | - Redistributions of source code must retain the above copyright notice, 16 | this list of conditions and the following disclaimers. 17 | - Redistributions in binary form must reproduce the above copyright notice, 18 | this list of conditions and the following disclaimers in the documentation 19 | and/or other materials provided with the distribution. 20 | - Neither the names of [Name of Development Group, UCAR], 21 | nor the names of its contributors may be used to endorse or promote 22 | products derived from this Software without specific prior written permission. 23 | 24 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 25 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 26 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 28 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 29 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 30 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 31 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 32 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 33 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 34 | POSSIBILITY OF SUCH DAMAGE. 35 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | ============================================================================================= 2 | Important files in main directories: 3 | ============================================================================================= 4 | 5 | Externals.cfg --------------- File for management of the main high level externals 6 | 7 | ============================================================================================= 8 | Important main subdirectories 9 | ============================================================================================= 10 | 11 | src --------------- SLIM Source code. 12 | tools ------------- SLIM Offline tools to prepare input datasets and process output. 13 | cime_config ------- Configuration files of cime for compsets and SLIM settings 14 | manage_externals -- Script to manage the external source directories 15 | py_env_create ----- Script to setup the python environment for SLIM python tools using conda 16 | python ------------ Some python modules 17 | components -------- Other active sub-components needed for SLIM to run (CAM and CICE) 18 | libraries --------- CESM libraries: MCT (Model Coupling Toolkit) and PIO 19 | share ------------- CESM shared code 20 | 21 | cime/scripts --------------- cesm/cime driver scripts 22 | 23 | ============================================================================================= 24 | SLIM XML variables: 25 | ============================================================================================= 26 | 27 | SLIM_SCENARIO: Scenario to use, usually set by the compset 28 | SLIM_START_TYPE: The start type to use, usually set by the RUN_TYPE 29 | 30 | ============================================================================================= 31 | SLIM important namelist items: 32 | ============================================================================================= 33 | 34 | mml_surdat -- Dataset of surface characteristics to use (usually set by the compset/grid) 35 | finidat ----- Initial conditions to startup with 36 | hist_nhtfrq - History file frequency of output 37 | 38 | ============================================================================================= 39 | QUICKSTART: using the CPL7 scripts: 40 | ============================================================================================= 41 | 42 | cd cime/scripts 43 | ./create_newcase # get help on how to run create_newcase 44 | ./create_newcase --case testI --res f19_f19_mg17 --compset I2000SlimRsGs 45 | # create new "I" case for cheyenne_intel at 1.9x2.5_gx1v7 res 46 | # "I2000SlimRsGs" case is SLIM active, datm8, and inactive ice/ocn/glc/rof 47 | cd testI 48 | ./case.setup # create the $CASE.run file 49 | ./case.build # build model and create namelists 50 | ./case.submit # submit script 51 | # (NOTE: ./xmlchange RESUBMIT=10 to set RESUBMIT to number 52 | # # of times to automatically resubmit -- 10 in this example) 53 | 54 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SLIM: The Simple Land Interface Model 2 | Simple Land Model for CESM 3 | 4 | 5 | For instructions on how to run SLIM on it's own or coupled to CESM on Cheyenne, see the Wiki, and the README file at the top of the 6 | SLIM checkout. 7 | 8 | To cite, please use: 9 | 10 | Laguë, M. M., Bonan, G. B., & Swann, A. L. S. (2019). Separating the Impact of Individual Land Surface Properties on the Terrestrial Surface Energy Budget in both the Coupled and Uncoupled Land–Atmosphere System. Journal of Climate, 32(18), 5725–5744. https://doi.org/10.1175/jcli-d-18-0812.1 11 | 12 | -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | ================ 2 | SimpleLandModel 3 | ================ 4 | 5 | SLIM the Simple Land Interface Model coupled to CESM2 6 | -------------------------------------------------------------------------------- /README.testing: -------------------------------------------------------------------------------- 1 | # README.testing 2 | # 3 | # The test list "aux_slim" is run as a test suite with the "create_test" script under cime/scripts 4 | # as follows. 5 | # NOTE: There are also tests for prealpha, prebeta for use with CESM testing 6 | # And slim_sci to run a few standard tests for SLIM science 7 | # 8 | # Tests on cheyenne 9 | 10 | 11 | cd cime/scripts 12 | qcmd -l walltime=08:00:00 -q premium -- ./create_test --compare \ 13 | --queue premium --machine cheyenne -r cases --baseline-root /glade/p/cgd/tss/ctsm_baselines \ 14 | --generate --xml-category aux_slim --xml-machine cheyenne \ 15 | --xml-compiler intel --compiler intel 16 | qcmd -l walltime=08:00:00 -q premium -- ./create_test --compare \ 17 | --queue premium --machine cheyenne -r cases --baseline-root /glade/p/cgd/tss/ctsm_baselines \ 18 | --generate --xml-category aux_slim --xml-machine cheyenne \ 19 | --xml-compiler gnu --compiler gnu 20 | 21 | # Tests on izumi 22 | # 23 | cd cime/scripts 24 | nohup ./create_test --compare --generate machine izumi -r cases \ 25 | --xml-category aux_slim --xml-machine izumi --xml-compiler nag & 26 | nohup ./create_test --compare --generate machine izumi -r cases \ 27 | --xml-category aux_slim --xml-machine izumi --xml-compiler gnu & 28 | nohup ./create_test --compare --generate machine izumi -r cases \ 29 | --xml-category aux_slim --xml-machine izumi --xml-compiler intel & 30 | -------------------------------------------------------------------------------- /README_EXTERNALS.rst: -------------------------------------------------------------------------------- 1 | Obtaining the full model code and associated scripting infrastructure 2 | ===================================================================== 3 | 4 | #. Clone the repository. :: 5 | 6 | 7 | #. Run the script **manage_externals/checkout_externals**. :: 8 | 9 | ./manage_externals/checkout_externals 10 | 11 | The **checkout_externals** script is a package manager that will 12 | populate the directory with the relevant versions of each of the 13 | components along with the CIME infrastructure code. 14 | 15 | At this point you have a working version. 16 | 17 | To see full details of how to set up a case, compile and run, see the CIME documentation at http://esmci.github.io/cime/ . 18 | 19 | More details on checkout_externals 20 | ---------------------------------- 21 | 22 | The file **Externals.cfg** in your top-level directory tells 23 | **checkout_externals** which tag/branch of each component should be 24 | brought in to generate your sandbox. 25 | 26 | **You need to rerun checkout_externals whenever Externals.cfg has 27 | changed** (unless you have already manually updated the relevant 28 | external(s) to have the correct branch/tag checked out). Common times 29 | when this is needed are: 30 | 31 | * After checking out a new branch/tag 32 | 33 | * After merging some other branch/tag into your currently 34 | checked-out branch 35 | 36 | **checkout_externals** must be run from the root of the source 37 | tree. For example, if you cloned with:: 38 | 39 | git clone https://github.com/escomp/ctsm.git my_ctsm_sandbox 40 | 41 | then you must run **checkout_externals** from 42 | ``/path/to/my_ctsm_sandbox``. 43 | 44 | To see more details of **checkout_externals**, issue :: 45 | 46 | ./manage_externals/checkout_externals --help 47 | 48 | Customizing your sandbox 49 | ============================= 50 | 51 | There are several use cases to consider when you want to customize or modify your sandbox. 52 | 53 | Switching to a different branch or tag 54 | ------------------------------------------- 55 | 56 | If you have already checked out a branch or tag and **HAVE NOT MADE ANY 57 | MODIFICATIONS** it is simple to change your sandbox. Say that you 58 | checked out ctsm1.0.0 but really wanted to have ctsm1.1.0; 59 | you would simply do the following:: 60 | 61 | git checkout ctsm1.1.0 62 | ./manage_externals/checkout_externals 63 | 64 | You should **not** use this method if you have made any source code 65 | changes, or if you have any ongoing cases that were created from 66 | this sandbox. In these cases, it is often easiest to do a second **git 67 | clone**. 68 | 69 | Pointing to a different version of a component 70 | ---------------------------------------------- 71 | 72 | Each entry in **Externals.cfg** has the following form (we use CIME as an 73 | example below):: 74 | 75 | [cime] 76 | local_path = cime 77 | protocol = git 78 | repo_url = https://github.com/CESM-Development/cime 79 | tag = cime5.4.0-alpha.20 80 | required = True 81 | 82 | Each entry specifies either a tag or a branch. To point to a new tag: 83 | 84 | #. Modify the relevant entry/entries in **Externals.cfg** (e.g., changing 85 | ``cime5.4.0-alpha.20`` to ``cime5.4.0-alpha.21`` above) 86 | 87 | #. Checkout the new component(s):: 88 | 89 | ./manage_externals/checkout_externals 90 | 91 | Keep in mind that changing individual components from a tag may result 92 | in an invalid model (won't compile, won't run, not scientifically 93 | meaningful) and is unsupported. 94 | 95 | Committing your change to Externals.cfg 96 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | 98 | After making this change, it's a good idea to commit the change in your 99 | local git repository. First create a branch in your local 100 | repository, then commit it. (Unlike with subversion, branches are stored 101 | locally unless you explicitly push them up to github. Feel free to 102 | create whatever local branches you'd like.) For example:: 103 | 104 | git checkout -b my_ctsm_branch 105 | git add Externals.cfg 106 | git commit -m "Update CIME to cime5.4.0-alpha.20" 107 | 108 | -------------------------------------------------------------------------------- /cime_config/buildlib: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | """ 4 | build slim ibrary 5 | """ 6 | import sys, os, time, filecmp 7 | 8 | _CIMEROOT = os.environ.get("CIMEROOT") 9 | if _CIMEROOT is None: 10 | raise SystemExit("ERROR: must set CIMEROOT environment variable") 11 | 12 | _LIBDIR = os.path.join(_CIMEROOT, "CIME", "Tools") 13 | sys.path.append(_LIBDIR) 14 | 15 | from standard_script_setup import * 16 | from CIME.buildlib import parse_input 17 | from CIME.build import get_standard_makefile_args 18 | from CIME.case import Case 19 | from CIME.utils import run_cmd, expect 20 | 21 | logger = logging.getLogger(__name__) 22 | 23 | ############################################################################### 24 | def _main_func(): 25 | ############################################################################### 26 | 27 | caseroot, libroot, bldroot = parse_input(sys.argv) 28 | 29 | with Case(caseroot) as case: 30 | 31 | casetools = case.get_value("CASETOOLS") 32 | makefile = os.path.join(casetools, "Makefile") 33 | lnd_root = case.get_value("COMP_ROOT_DIR_LND") 34 | gmake_j = case.get_value("GMAKE_J") 35 | gmake = case.get_value("GMAKE") 36 | gmake_opts = get_standard_makefile_args(case) 37 | driver = case.get_value("COMP_INTERFACE").lower() 38 | nthrds = case.get_value("LND_NTHRDS") 39 | 40 | if nthrds > 1: 41 | expect( 42 | False, 43 | "LND_NTHRDS must be 1 as threading isn't implemented (see issue #14)", 44 | ) 45 | 46 | # ------------------------------------------------------- 47 | # create Filepath file 48 | #------------------------------------------------------- 49 | compname = case.get_value("COMP_LND") 50 | filepath_file = os.path.join(bldroot,"Filepath") 51 | if not os.path.isfile(filepath_file): 52 | caseroot = case.get_value("CASEROOT") 53 | expect( (compname == "slim"), "Unexpected COMP_LND name: %s" % (compname)) 54 | paths = [os.path.join(caseroot,"SourceMods","src."+compname), 55 | os.path.join(lnd_root,"src","cpl",driver), 56 | os.path.join(lnd_root,"src","main"), 57 | os.path.join(lnd_root,"src","init_interp"), 58 | os.path.join(lnd_root,"src","utils"), 59 | os.path.join(lnd_root,"src","cpl")] 60 | 61 | # Paths needed to build the current system, but won't be long term 62 | paths.append(os.path.join(lnd_root, "src", "biogeophys")) 63 | paths.append(os.path.join(lnd_root, "src", "biogeochem")) 64 | paths.append(os.path.join(lnd_root, "src", "soilbiogeochem")) 65 | 66 | with open(filepath_file, "w") as filepath: 67 | filepath.write("\n".join(paths)) 68 | filepath.write("\n") 69 | 70 | # ------------------------------------------------------- 71 | # create the library in libroot 72 | # ------------------------------------------------------- 73 | 74 | complib = os.path.join(libroot, "liblnd.a") 75 | makefile = os.path.join(casetools, "Makefile") 76 | 77 | cmd = "{} complib -j {} COMP_NAME={} COMPLIB={} -f {} {}" \ 78 | .format(gmake, gmake_j, compname, complib, makefile, gmake_opts ) 79 | 80 | rc, out, err = run_cmd(cmd) 81 | logger.info("%s: \n\n output:\n %s \n\n err:\n\n%s\n" % (cmd, out, err)) 82 | expect(rc == 0, "Command %s failed with rc=%s" % (cmd, rc)) 83 | 84 | 85 | ############################################################################### 86 | 87 | if __name__ == "__main__": 88 | logger.warning( "WARNING: buildlib is being called as a program rather than a subroutine as " + 89 | "it is expected to be in the CESM context" ) 90 | _main_func() 91 | -------------------------------------------------------------------------------- /cime_config/buildnml: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | """ 4 | SLIM namelist creator executable 5 | """ 6 | import sys, os 7 | 8 | _SLIM_PYTHON = os.path.normpath( 9 | os.path.join(os.path.dirname(os.path.abspath(__file__)), os.pardir, "python") 10 | ) 11 | sys.path.insert(1, _SLIM_PYTHON) 12 | 13 | from slim import add_cime_to_path 14 | from slim import add_slim_cime_py_to_path 15 | from slim.slim_logging import setup_logging 16 | 17 | from standard_script_setup import * 18 | from CIME.buildnml import parse_input 19 | from CIME.case import Case 20 | from slim_cime_py import buildnml 21 | 22 | ############################################################################### 23 | def _main_func(): 24 | 25 | caseroot = parse_input(sys.argv) 26 | level = logging.WARNING 27 | setup_logging(level) 28 | with Case(caseroot) as case: 29 | compname = case.get_value("COMP_LND") 30 | logger.warning( "WARNING: buildnml is being called as program rather than a subroutine " + 31 | "as it is expected to be in the CESM context" ) 32 | buildnml(case, caseroot, compname) 33 | 34 | 35 | if __name__ == "__main__": 36 | _main_func() 37 | -------------------------------------------------------------------------------- /cime_config/buildnml_test/env_archive.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |
5 | 6 | 7 | 8 | 9 |
10 | -------------------------------------------------------------------------------- /cime_config/buildnml_test/env_batch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |
5 | 6 | 9 | 10 | 11 | char 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | -------------------------------------------------------------------------------- /cime_config/buildnml_test/env_build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 |
6 | 7 | 10 | 11 | 12 | char 13 | Land (lnd) grid 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | -------------------------------------------------------------------------------- /cime_config/buildnml_test/env_case.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 |
6 | 7 | 10 | 11 | 12 | 13 | 14 | char 15 | file containing specification of component specific definitions and values(for documentation only - DO NOT EDIT) 16 | $CIMEROOT/config/xml_schemas/entry_id.xsd 17 | $CIMEROOT/config/xml_schemas/entry_id_version3.xsd 18 | 19 | 20 | 21 | char 22 | Component set long name (for documentation only - DO NOT EDIT) 23 | 24 | 25 | 26 | char 27 | Root directory of the case land model component 28 | $CIMEROOT/config/xml_schemas/config_compsets.xsd 29 | 30 | 31 | 32 | char 33 | slim 34 | Name of land component 35 | 36 | 37 | 38 | char 39 | full pathname of source root directory 40 | 41 | 42 | 43 | char 44 | case name 45 | 46 | 47 | 48 | char 49 | model system name 50 | 51 | 52 | 53 | char 54 | full pathname of case 55 | 56 | 57 | 58 | char 59 | Land grid 60 | 61 | 62 | 63 |
64 | -------------------------------------------------------------------------------- /cime_config/buildnml_test/env_mach_pes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 |
6 | 7 | 8 | 9 | 12 | 13 | 14 | integer 15 | 16 | 17 | 18 | integer 19 | 20 | 21 | 22 | integer 23 | 24 | 25 | 26 | integer 27 | 28 | 29 | 30 | integer 31 | Force this exact number of spare nodes to be allocated 32 | 33 | 34 | 35 | integer 36 | 37 | 1 38 | 1 39 | 1 40 | 1 41 | 42 | 43 | 44 | 45 | 46 | integer 47 | 48 | -2 49 | -2 50 | -2 51 | -2 52 | 53 | 54 | 55 | 56 | 57 | integer 58 | 59 | 0 60 | 0 61 | 0 62 | 0 63 | 64 | 65 | 66 | 67 | 68 | integer 69 | 70 | 1 71 | 1 72 | 1 73 | 74 | 75 | 76 | 77 | 78 | integer 79 | 80 | 1 81 | 1 82 | 1 83 | 1 84 | 85 | 86 | 87 | 88 | 89 |
90 | -------------------------------------------------------------------------------- /cime_config/buildnml_test/env_mach_specific.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 |
10 |
11 | 12 | 13 | char 14 | executable name 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | -------------------------------------------------------------------------------- /cime_config/buildnml_test/env_run.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 |
6 | 7 | 8 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
51 | -------------------------------------------------------------------------------- /cime_config/buildnml_test/env_workflow.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 |
6 | 7 | 10 | 11 | 12 | 13 |
14 | 15 | -------------------------------------------------------------------------------- /cime_config/buildnml_test/run_buildnml: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | rm Buildconf/slimconf/lnd_in 3 | env CIMEROOT=`pwd`/../../cime ../buildnml `pwd` --verbose --debug 4 | cat Buildconf/slimconf/lnd_in 5 | -------------------------------------------------------------------------------- /cime_config/buildnml_test/user_nl_slim: -------------------------------------------------------------------------------- 1 | !---------------------------------------------------------------------------------- 2 | ! Users should add all user specific namelist changes below in the form of 3 | ! namelist_var = new_namelist_value 4 | ! 5 | ! EXCEPTIONS: 6 | ! Set dtime with L_NCPL option 7 | ! Set fatmlndfrc with LND_DOMAIN_PATH/LND_DOMAIN_FILE options 8 | ! Set finidat with RUN_REFCASE/RUN_REFDATE/RUN_REFTOD options for hybrid or branch cases 9 | ! (includes $inst_string for multi-ensemble cases) 10 | ! or with SLIM_START_TYPE=cold to do a cold start 11 | ! or set it with an explicit filename here. 12 | !---------------------------------------------------------------------------------- 13 | 14 | -------------------------------------------------------------------------------- /cime_config/config_archive.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | r 4 | rh\d? 5 | h\d*.*\.nc$ 6 | e 7 | locfnh 8 | 9 | rpointer.lnd$NINST_STRING 10 | ./$CASE.slim$NINST_STRING.r.$DATENAME.nc 11 | 12 | 13 | rpointer.lnd 14 | rpointer.lnd_9999 15 | casename.slim.r.1976-01-01-00000.nc 16 | casename.slim.rh4.1976-01-01-00000.nc 17 | casename.slim.h0.1976-01-01-00000.nc 18 | casename.slim.h0.1976-01-01-00000.nc.base 19 | casename.slim_0002.e.postassim.1976-01-01-00000.nc 20 | casename.slim_0002.e.preassim.1976-01-01-00000.nc 21 | anothercasename.slim.i.1976-01-01-00000.nc 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /cime_config/config_component.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 14 | 15 | 16 | 17 | Simple Land Model: 18 | 19 | 20 | 21 | char 22 | slim 23 | slim 24 | case_comp 25 | env_case.xml 26 | Name of land component 27 | 28 | 29 | 30 | char 31 | global_uniform 32 | global_uniform,realistic_from_1850,realistic_from_2000,user_defined 33 | 34 | realistic_from_2000 35 | realistic_from_1850 36 | realistic_from_1850 37 | 38 | run_component_slim 39 | env_run.xml 40 | SLIM namelist use_case scenario. 41 | Determines the use-case scenario that will be used in the SLIM buildnml utility. 42 | This is normally set by the component set. 43 | 'global_uniform' is for surface conditions are globally constant 44 | 'realistic_from_1850' are surface conditions taken from a 1850 control simulation with CTSM 45 | 'realistic_from_2000' are surface conditions taken from a 2000 control simulation with CTSM 46 | 'user_defined' means the user will provide their own surface condition file (mml_surdat) 47 | 48 | 49 | 50 | 51 | char 52 | cold,any,required 53 | any 54 | 55 | required 56 | required 57 | any 58 | 59 | run_component_slim 60 | env_run.xml 61 | 62 | SLIM run type. 63 | 'cold' is a cold start from arbitrary initial conditions, it will fail if you do provide initial conditions 64 | 'any' is a run using initial conditions if provided, OR arbitrary initial conditions if no files can be found 65 | 'required' is a run where starting from provided initial conditions is required, it will fail if they aren't 66 | 67 | 68 | 69 | 70 | ========================================= 71 | SLIM naming conventions 72 | ========================================= 73 | note: [^_]* means match zero or more of any character BUT an underbar. 74 | (in other words make sure there is NOT a underbar before the string afterwards) 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /cime_config/config_compsets.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | ========================================= 7 | compset naming convention 8 | ========================================= 9 | The compset longname below has the specified order 10 | atm, lnd, ice, ocn, river, glc wave cesm-options 11 | 12 | The notation for the compset longname is 13 | TIME_ATM[%phys]_LND[%phys]_ICE[%phys]_OCN[%phys]_ROF[%phys]_GLC[%phys]_WAV[%phys][_BGC%phys] 14 | Where for the CAM specific compsets below the following is supported 15 | TIME = Time period (e.g. 2000, HIST, RCP8...) 16 | ATM = [CAM40, CAM50, CAM60] 17 | LND = [SLIM, SLND] 18 | ICE = [CICE, CICE5, DICE, SICE] 19 | OCN = [DOCN, ,AQUAP, SOCN] 20 | ROF = [RTM, SROF] 21 | GLC = [SGLC] 22 | WAV = [SWAV] 23 | BGC = optional BGC scenario 24 | 25 | The OPTIONAL %phys attributes specify submodes of the given system 26 | For example DOCN%DOM is the data ocean model for DOCN 27 | ALL the possible %phys choices for each component are listed 28 | with the -list command for create_newcase 29 | ALL data models must have a %phys option that corresponds to the data model mode 30 | 31 | Each compset node is associated with the following elements 32 | - lname 33 | - alias 34 | - science_support (if this compset is supported scientifically with control simulations) 35 | 36 | 37 | 40 | 41 | 42 | 43 | ELT2000ClimoTESTC6I5Slim 44 | 2000_CAM60_SLIM_CICE5_DOCN%SOM_SROF_SGLC_SWAV 45 | 46 | 47 | 48 | ELT2000ClimoTESTC6I6Slim 49 | 2000_CAM60_SLIM_CICE_DOCN%SOM_SROF_SGLC_SWAV 50 | 51 | 52 | 53 | 54 | 55 | ELT1850TESTC6I5Slim 56 | 1850_CAM60_SLIM_CICE5_DOCN%SOM_SROF_SGLC_SWAV 57 | 58 | 59 | ELT1850TESTC6I6Slim 60 | 1850_CAM60_SLIM_CICE_DOCN%SOM_SROF_SGLC_SWAV 61 | 62 | 63 | 64 | 65 | FLT2000ClimoC6I5Slim 66 | 2000_CAM60_SLIM_CICE5%PRES_DOCN%DOM_SROF_SGLC_SWAV 67 | 68 | 69 | FLT2000ClimoC6I6Slim 70 | 2000_CAM60_SLIM_CICE%PRES_DOCN%DOM_SROF_SGLC_SWAV 71 | 72 | 73 | 74 | 75 | ELT2000ClimoTESTC5I5Slim 76 | 2000_CAM50_SLIM_CICE5_DOCN%SOM_SROF_SGLC_SWAV 77 | 78 | 79 | 80 | 81 | FLTHISTC5I5Slim 82 | HIST_CAM50_SLIM_CICE5%PRES_DOCN%DOM_SROF_SGLC_SWAV 83 | 84 | 85 | 88 | 89 | 90 | 91 | IHistSlimRsGs 92 | HIST_DATM%GSWP3v1_SLIM_SICE_SOCN_SROF_SGLC_SWAV 93 | 94 | 96 | 97 | IHistSlimQianRsGs 98 | HIST_DATM%QIA_SLIM_SICE_SOCN_SROF_SGLC_SWAV 99 | 100 | 101 | 102 | I2000SlimRsGs 103 | 2000_DATM%GSWP3v1_SLIM_SICE_SOCN_SROF_SGLC_SWAV 104 | 105 | 106 | 107 | 108 | I1850SlimRsGs 109 | 1850_DATM%GSWP3v1_SLIM_SICE_SOCN_SROF_SGLC_SWAV 110 | 111 | 112 | 113 | 114 | I1850SlimCruRsGs 115 | 1850_DATM%CRUv7_SLIM_SICE_SOCN_SROF_SGLC_SWAV 116 | 117 | 118 | 119 | 120 | I1850SlimCplhistRsGs 121 | 1850_DATM%CPLHIST_SLIM_SICE_SOCN_SROF_SGLC_SWAV 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 1850-01-01 131 | 132 | 133 | 134 | 135 | 136 | 137 | -------------------------------------------------------------------------------- /cime_config/namelist_definition.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | SLIM Namelist Definition 14 | 15 | 16 |

17 |

18 |
19 |

20 |

21 |

Definition of SLIM namelist variables

22 |

We list all of the relevant namelist variables for SLIM cases. This includes 23 | SLIM Namelist items.

24 |
25 |

Definition of SLIM namelist variables

26 |

Note, these all would go into the user_nl_slim file

27 |

Included in the table are the following pieces of information:

28 |
    29 |
  • Variable name.
  • 30 |
  • Variable type (char, integer, 31 | real, or logical). The type 32 | char has the length appended 33 | following an asterisk, e.g., char*256. Variables that are 34 | arrays have their dimension specifier appended inside parentheses. For 35 | example char*1(6) denotes a array of six 36 | char*1 values. 37 |
  • 38 |
  • Variable description (includes information on defaults).
  • 39 |
  • Valid values (if restricted).
  • 40 |
41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 |
SLIM Namelist Physics Options
NameTypeDescription
Valid values
54 | 55 | 56 | 57 | 58 | 59 | 60 | 62 | 63 | 64 | 65 | 66 | 67 |
SLIM Namelist Datasets
NameTypeDescription 61 |
Valid values
68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 |
SLIM Namelist History output settings
NameTypeDescription
Valid values
81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 |
SLIM Namelist Performance Tuning
NameTypeDescription
Valid values
94 | 95 |

96 |


97 | 98 |

99 | 100 |
101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | Valid Values: 110 | 111 | 112 | 113 | 114 |
115 | -------------------------------------------------------------------------------- /cime_config/slim_cime_py/__init__.py: -------------------------------------------------------------------------------- 1 | # pylint: disable=missing-module-docstring 2 | from .buildnml import buildnml 3 | -------------------------------------------------------------------------------- /cime_config/testdefs/ExpectedTestFails.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 29 | 30 | 31 | 32 | 33 | 34 | FAIL 35 | ESCOMP/SimpleLand#85 36 | 37 | 38 | 39 | 40 | FAIL 41 | ESCOMP/SimpleLand#85 42 | 43 | 44 | 45 | 46 | FAIL 47 | ESCOMP/SimpleLand#85 48 | 49 | 50 | 51 | 52 | FAIL 53 | ESCOMP/SimpleLand#85 54 | 55 | 56 | 57 | 58 | FAIL 59 | ESCOMP/SimpleLand#17 60 | 61 | 62 | 63 | 64 | FAIL 65 | ESCOMP/SimpleLand#17 66 | 67 | 68 | 69 | 70 | FAIL 71 | ESCOMP/SimpleLand#75 72 | 73 | 74 | 75 | 76 | FAIL 77 | ESCOMP/SimpleLand#79 78 | 79 | 80 | 81 | 82 | FAIL 83 | ESCOMP/SimpleLand#79 84 | 85 | 86 | 87 | 88 | FAIL 89 | ESCOMP/SimpleLand#79 90 | 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /cime_config/testdefs/testmods_dirs/slim/Monthly/include_user_mods: -------------------------------------------------------------------------------- 1 | ../default 2 | -------------------------------------------------------------------------------- /cime_config/testdefs/testmods_dirs/slim/Monthly/user_nl_slim: -------------------------------------------------------------------------------- 1 | hist_nhtfrq = 0 2 | hist_mfilt = 1 3 | -------------------------------------------------------------------------------- /cime_config/testdefs/testmods_dirs/slim/default/shell_commands: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ./xmlchange SLIM_START_TYPE="cold" 3 | -------------------------------------------------------------------------------- /cime_config/testdefs/testmods_dirs/slim/default/user_nl_slim: -------------------------------------------------------------------------------- 1 | hist_ndens = 1 2 | hist_nhtfrq =-24 3 | hist_mfilt = 5 4 | -------------------------------------------------------------------------------- /cime_config/testdefs/testmods_dirs/slim/g16_SOM/include_user_mods: -------------------------------------------------------------------------------- 1 | ../default 2 | -------------------------------------------------------------------------------- /cime_config/testdefs/testmods_dirs/slim/g16_SOM/shell_commands: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | CIMEROOT=`./xmlquery --value -s CIMEROOT` 3 | cp $CIMEROOT/../cime_config/testdefs/testmods_dirs/slim/g16_SOM/user_docn* . 4 | -------------------------------------------------------------------------------- /cime_config/testdefs/testmods_dirs/slim/g16_SOM/user_docn.streams.txt.som: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | GENERIC 5 | 6 | 7 | 8 | time time 9 | xc lon 10 | yc lat 11 | area area 12 | mask mask 13 | 14 | 15 | /gpfs/fs1/work/mlague/CESM/som/qflux 16 | 17 | 18 | pop_frc.b.e11.B1850C5CN.f09_g16.005.082914_j.nc 19 | 20 | 21 | 22 | 23 | T t 24 | U u 25 | V v 26 | dhdx dhdx 27 | dhdy dhdy 28 | hblt h 29 | qdp qbot 30 | 31 | 32 | /gpfs/fs1/work/mlague/CESM/som/qflux 33 | 34 | 35 | pop_frc.b.e11.B1850C5CN.f09_g16.005.082914_j.nc 36 | 37 | 38 | 0 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /cime_config/testdefs/testmods_dirs/slim/g16_SOM_save_cplhist/include_user_mods: -------------------------------------------------------------------------------- 1 | ../g16_SOM 2 | ../save_cplhist 3 | -------------------------------------------------------------------------------- /cime_config/testdefs/testmods_dirs/slim/global_uniform/include_user_mods: -------------------------------------------------------------------------------- 1 | ../default 2 | -------------------------------------------------------------------------------- /cime_config/testdefs/testmods_dirs/slim/global_uniform/shell_commands: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ./xmlchange SLIM_SCENARIO="global_uniform" 3 | -------------------------------------------------------------------------------- /cime_config/testdefs/testmods_dirs/slim/global_uniform_g16_SOM/include_user_mods: -------------------------------------------------------------------------------- 1 | ../global_uniform 2 | ../g16_SOM 3 | -------------------------------------------------------------------------------- /cime_config/testdefs/testmods_dirs/slim/global_uniform_g16_SOMMonthly/include_user_mods: -------------------------------------------------------------------------------- 1 | ../Monthly 2 | ../global_uniform_g16_SOM 3 | -------------------------------------------------------------------------------- /cime_config/testdefs/testmods_dirs/slim/realistic_2000/include_user_mods: -------------------------------------------------------------------------------- 1 | ../default 2 | -------------------------------------------------------------------------------- /cime_config/testdefs/testmods_dirs/slim/realistic_2000/shell_commands: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ./xmlchange SLIM_SCENARIO="realistic_from_2000" 3 | -------------------------------------------------------------------------------- /cime_config/testdefs/testmods_dirs/slim/save_cplhist/include_user_mods: -------------------------------------------------------------------------------- 1 | ../default 2 | -------------------------------------------------------------------------------- /cime_config/testdefs/testmods_dirs/slim/save_cplhist/user_nl_cpl: -------------------------------------------------------------------------------- 1 | histaux_a2x3hr=.true. 2 | histaux_a2x3hrp = .true. 3 | histaux_a2x1hri = .true. 4 | histaux_a2x1hr = .true. 5 | histaux_a2x24hr = .true. 6 | histaux_a2x = .true. 7 | -------------------------------------------------------------------------------- /cime_config/user_nl_slim: -------------------------------------------------------------------------------- 1 | !---------------------------------------------------------------------------------- 2 | ! Users should add all user specific namelist changes below in the form of 3 | ! namelist_var = new_namelist_value 4 | ! 5 | ! EXCEPTIONS: 6 | ! Set dtime with L_NCPL option 7 | ! Set fatmlndfrc with LND_DOMAIN_PATH/LND_DOMAIN_FILE options 8 | ! Set finidat with RUN_REFCASE/RUN_REFDATE/RUN_REFTOD options for hybrid or branch cases 9 | ! (includes $inst_string for multi-ensemble cases) 10 | ! or with SLIM_START_TYPE=cold to do a cold start 11 | ! or set it with an explicit filename here. 12 | !---------------------------------------------------------------------------------- 13 | 14 | -------------------------------------------------------------------------------- /manage_externals/.dir_locals.el: -------------------------------------------------------------------------------- 1 | ; -*- mode: Lisp -*- 2 | 3 | ((python-mode 4 | . ( 5 | ;; fill the paragraph to 80 columns when using M-q 6 | (fill-column . 80) 7 | 8 | ;; Use 4 spaces to indent in Python 9 | (python-indent-offset . 4) 10 | (indent-tabs-mode . nil) 11 | ))) 12 | 13 | -------------------------------------------------------------------------------- /manage_externals/.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ### Summary of Issue: 2 | ### Expected behavior and actual behavior: 3 | ### Steps to reproduce the problem (should include model description file(s) or link to publi c repository): 4 | ### What is the changeset ID of the code, and the machine you are using: 5 | ### have you modified the code? If so, it must be committed and available for testing: 6 | ### Screen output or log file showing the error message and context: 7 | -------------------------------------------------------------------------------- /manage_externals/.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | [ 50 character, one line summary ] 2 | 3 | [ Description of the changes in this commit. It should be enough 4 | information for someone not following this development to understand. 5 | Lines should be wrapped at about 72 characters. ] 6 | 7 | User interface changes?: [ No/Yes ] 8 | [ If yes, describe what changed, and steps taken to ensure backward compatibilty ] 9 | 10 | Fixes: [Github issue #s] And brief description of each issue. 11 | 12 | Testing: 13 | test removed: 14 | unit tests: 15 | system tests: 16 | manual testing: 17 | 18 | -------------------------------------------------------------------------------- /manage_externals/.gitignore: -------------------------------------------------------------------------------- 1 | # directories that are checked out by the tool 2 | cime/ 3 | cime_config/ 4 | components/ 5 | 6 | # generated local files 7 | *.log 8 | 9 | # editor files 10 | *~ 11 | *.bak 12 | 13 | # generated python files 14 | *.pyc 15 | -------------------------------------------------------------------------------- /manage_externals/.travis.yml: -------------------------------------------------------------------------------- 1 | language: python 2 | os: linux 3 | python: 4 | - "2.7" 5 | - "3.4" 6 | - "3.5" 7 | - "3.6" 8 | - "3.7" 9 | - "3.8" 10 | install: 11 | - pip install -r test/requirements.txt 12 | before_script: 13 | - git --version 14 | script: 15 | - cd test; make test 16 | - cd test; make lint 17 | after_success: 18 | - cd test; make coverage 19 | - cd test; coveralls 20 | -------------------------------------------------------------------------------- /manage_externals/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2017-2018, University Corporation for Atmospheric Research (UCAR) 2 | All rights reserved. 3 | 4 | Developed by: 5 | University Corporation for Atmospheric Research - National Center for Atmospheric Research 6 | https://www2.cesm.ucar.edu/working-groups/sewg 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining 9 | a copy of this software and associated documentation files (the "Software"), 10 | to deal with the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom 13 | the Software is furnished to do so, subject to the following conditions: 14 | 15 | - Redistributions of source code must retain the above copyright notice, 16 | this list of conditions and the following disclaimers. 17 | - Redistributions in binary form must reproduce the above copyright notice, 18 | this list of conditions and the following disclaimers in the documentation 19 | and/or other materials provided with the distribution. 20 | - Neither the names of [Name of Development Group, UCAR], 21 | nor the names of its contributors may be used to endorse or promote 22 | products derived from this Software without specific prior written permission. 23 | 24 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 25 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 26 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 28 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 29 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 30 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 31 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 32 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 33 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 34 | POSSIBILITY OF SUCH DAMAGE. 35 | -------------------------------------------------------------------------------- /manage_externals/README_FIRST: -------------------------------------------------------------------------------- 1 | CESM is comprised of a number of different components that are 2 | developed and managed independently. Each component may have 3 | additional 'external' dependancies and optional parts that are also 4 | developed and managed independently. 5 | 6 | The checkout_externals.py tool manages retreiving and updating the 7 | components and their externals so you have a complete set of source 8 | files for the model. 9 | 10 | checkout_externals.py relies on a model description file that 11 | describes what components are needed, where to find them and where to 12 | put them in the source tree. The default file is called "CESM.xml" 13 | regardless of whether you are checking out CESM or a standalone 14 | component. 15 | 16 | checkout_externals requires access to git and svn repositories that 17 | require authentication. checkout_externals may pass through 18 | authentication requests, but it will not cache them for you. For the 19 | best and most robust user experience, you should have svn and git 20 | working without password authentication. See: 21 | 22 | https://help.github.com/articles/connecting-to-github-with-ssh/ 23 | 24 | ?svn ref? 25 | 26 | NOTE: checkout_externals.py *MUST* be run from the root of the source 27 | tree it is managing. For example, if you cloned CLM with: 28 | 29 | $ git clone git@github.com/ncar/clm clm-dev 30 | 31 | Then the root of the source tree is /path/to/cesm-dev. If you obtained 32 | CLM via an svn checkout of CESM and you need to checkout the CLM 33 | externals, then the root of the source tree for CLM is: 34 | 35 | /path/to/cesm-dev/components/clm 36 | 37 | The root of the source tree will be referred to as ${SRC_ROOT} below. 38 | 39 | To get started quickly, checkout all required components from the 40 | default model description file: 41 | 42 | $ cd ${SRC_ROOT} 43 | $ ./checkout_cesm/checkout_externals.py 44 | 45 | For additional information about using checkout model, please see: 46 | 47 | ${SRC_ROOT}/checkout_cesm/README 48 | 49 | or run: 50 | 51 | $ cd ${SRC_ROOT} 52 | $ ./checkout_cesm/checkout_externals.py --help 53 | 54 | 55 | -------------------------------------------------------------------------------- /manage_externals/checkout_externals: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | """Main driver wrapper around the manic/checkout utility. 4 | 5 | Tool to assemble external respositories represented in an externals 6 | description file. 7 | 8 | """ 9 | from __future__ import absolute_import 10 | from __future__ import unicode_literals 11 | from __future__ import print_function 12 | 13 | import sys 14 | import traceback 15 | 16 | import manic 17 | 18 | if sys.hexversion < 0x02070000: 19 | print(70 * '*') 20 | print('ERROR: {0} requires python >= 2.7.x. '.format(sys.argv[0])) 21 | print('It appears that you are running python {0}'.format( 22 | '.'.join(str(x) for x in sys.version_info[0:3]))) 23 | print(70 * '*') 24 | sys.exit(1) 25 | 26 | 27 | if __name__ == '__main__': 28 | ARGS = manic.checkout.commandline_arguments() 29 | try: 30 | RET_STATUS, _ = manic.checkout.main(ARGS) 31 | sys.exit(RET_STATUS) 32 | except Exception as error: # pylint: disable=broad-except 33 | manic.printlog(str(error)) 34 | if ARGS.backtrace: 35 | traceback.print_exc() 36 | sys.exit(1) 37 | -------------------------------------------------------------------------------- /manage_externals/manic/__init__.py: -------------------------------------------------------------------------------- 1 | """Public API for the manage_externals library 2 | """ 3 | 4 | from manic import checkout 5 | from manic.utils import printlog 6 | 7 | __all__ = [ 8 | 'checkout', 'printlog', 9 | ] 10 | -------------------------------------------------------------------------------- /manage_externals/manic/global_constants.py: -------------------------------------------------------------------------------- 1 | """Globals shared across modules 2 | """ 3 | 4 | from __future__ import absolute_import 5 | from __future__ import unicode_literals 6 | from __future__ import print_function 7 | 8 | import pprint 9 | 10 | EMPTY_STR = '' 11 | LOCAL_PATH_INDICATOR = '.' 12 | VERSION_SEPERATOR = '.' 13 | LOG_FILE_NAME = 'manage_externals.log' 14 | PPRINTER = pprint.PrettyPrinter(indent=4) 15 | 16 | VERBOSITY_DEFAULT = 0 17 | VERBOSITY_VERBOSE = 1 18 | VERBOSITY_DUMP = 2 19 | -------------------------------------------------------------------------------- /manage_externals/manic/repository.py: -------------------------------------------------------------------------------- 1 | """Base class representation of a repository 2 | """ 3 | 4 | from .externals_description import ExternalsDescription 5 | from .utils import fatal_error 6 | from .global_constants import EMPTY_STR 7 | 8 | 9 | class Repository(object): 10 | """ 11 | Class to represent and operate on a repository description. 12 | """ 13 | 14 | def __init__(self, component_name, repo): 15 | """ 16 | Parse repo externals description 17 | """ 18 | self._name = component_name 19 | self._protocol = repo[ExternalsDescription.PROTOCOL] 20 | self._tag = repo[ExternalsDescription.TAG] 21 | self._branch = repo[ExternalsDescription.BRANCH] 22 | self._hash = repo[ExternalsDescription.HASH] 23 | self._url = repo[ExternalsDescription.REPO_URL] 24 | self._sparse = repo[ExternalsDescription.SPARSE] 25 | 26 | if self._url is EMPTY_STR: 27 | fatal_error('repo must have a URL') 28 | 29 | if ((self._tag is EMPTY_STR) and (self._branch is EMPTY_STR) and 30 | (self._hash is EMPTY_STR)): 31 | fatal_error('{0} repo must have a branch, tag or hash element') 32 | 33 | ref_count = 0 34 | if self._tag is not EMPTY_STR: 35 | ref_count += 1 36 | if self._branch is not EMPTY_STR: 37 | ref_count += 1 38 | if self._hash is not EMPTY_STR: 39 | ref_count += 1 40 | if ref_count != 1: 41 | fatal_error('repo {0} must have exactly one of ' 42 | 'tag, branch or hash.'.format(self._name)) 43 | 44 | def checkout(self, base_dir_path, repo_dir_name, verbosity, recursive): # pylint: disable=unused-argument 45 | """ 46 | If the repo destination directory exists, ensure it is correct (from 47 | correct URL, correct branch or tag), and possibly update the source. 48 | If the repo destination directory does not exist, checkout the correce 49 | branch or tag. 50 | NB: is include as an argument for compatibility with 51 | git functionality (repository_git.py) 52 | """ 53 | msg = ('DEV_ERROR: checkout method must be implemented in all ' 54 | 'repository classes! {0}'.format(self.__class__.__name__)) 55 | fatal_error(msg) 56 | 57 | def status(self, stat, repo_dir_path): # pylint: disable=unused-argument 58 | """Report the status of the repo 59 | 60 | """ 61 | msg = ('DEV_ERROR: status method must be implemented in all ' 62 | 'repository classes! {0}'.format(self.__class__.__name__)) 63 | fatal_error(msg) 64 | 65 | def submodules_file(self, repo_path=None): 66 | # pylint: disable=no-self-use,unused-argument 67 | """Stub for use by non-git VC systems""" 68 | return None 69 | 70 | def url(self): 71 | """Public access of repo url. 72 | """ 73 | return self._url 74 | 75 | def tag(self): 76 | """Public access of repo tag 77 | """ 78 | return self._tag 79 | 80 | def branch(self): 81 | """Public access of repo branch. 82 | """ 83 | return self._branch 84 | 85 | def hash(self): 86 | """Public access of repo hash. 87 | """ 88 | return self._hash 89 | 90 | def name(self): 91 | """Public access of repo name. 92 | """ 93 | return self._name 94 | 95 | def protocol(self): 96 | """Public access of repo protocol. 97 | """ 98 | return self._protocol 99 | -------------------------------------------------------------------------------- /manage_externals/manic/repository_factory.py: -------------------------------------------------------------------------------- 1 | """Factory for creating and initializing the appropriate repository class 2 | """ 3 | 4 | from __future__ import absolute_import 5 | from __future__ import unicode_literals 6 | from __future__ import print_function 7 | 8 | from .repository_git import GitRepository 9 | from .repository_svn import SvnRepository 10 | from .externals_description import ExternalsDescription 11 | from .utils import fatal_error 12 | 13 | 14 | def create_repository(component_name, repo_info, svn_ignore_ancestry=False): 15 | """Determine what type of repository we have, i.e. git or svn, and 16 | create the appropriate object. 17 | 18 | """ 19 | protocol = repo_info[ExternalsDescription.PROTOCOL].lower() 20 | if protocol == 'git': 21 | repo = GitRepository(component_name, repo_info) 22 | elif protocol == 'svn': 23 | repo = SvnRepository(component_name, repo_info, ignore_ancestry=svn_ignore_ancestry) 24 | elif protocol == 'externals_only': 25 | repo = None 26 | else: 27 | msg = 'Unknown repo protocol "{0}"'.format(protocol) 28 | fatal_error(msg) 29 | return repo 30 | -------------------------------------------------------------------------------- /manage_externals/test/.coveragerc: -------------------------------------------------------------------------------- 1 | [run] 2 | branch = True 3 | omit = test_unit_*.py 4 | test_sys_*.py 5 | /usr/* 6 | .local/* 7 | */site-packages/* -------------------------------------------------------------------------------- /manage_externals/test/.gitignore: -------------------------------------------------------------------------------- 1 | # virtual environments 2 | env_python* 3 | 4 | # python code coverage tool output 5 | .coverage 6 | htmlcov 7 | 8 | -------------------------------------------------------------------------------- /manage_externals/test/Makefile: -------------------------------------------------------------------------------- 1 | python = not-set 2 | verbose = not-set 3 | debug = not-set 4 | 5 | ifneq ($(python), not-set) 6 | PYTHON=$(python) 7 | else 8 | PYTHON=python 9 | endif 10 | 11 | # we need the python path to point one level up to access the package 12 | # and executables 13 | PYPATH=PYTHONPATH=..: 14 | 15 | # common args for running tests 16 | TEST_ARGS=-m unittest discover 17 | 18 | ifeq ($(debug), not-set) 19 | ifeq ($(verbose), not-set) 20 | # summary only output 21 | TEST_ARGS+=--buffer 22 | else 23 | # show individual test summary 24 | TEST_ARGS+=--buffer --verbose 25 | endif 26 | else 27 | # show detailed test output 28 | TEST_ARGS+=--verbose 29 | endif 30 | 31 | 32 | # auto reformat the code 33 | AUTOPEP8=autopep8 34 | AUTOPEP8_ARGS=--aggressive --in-place 35 | 36 | # run lint 37 | PYLINT=pylint 38 | PYLINT_ARGS=-j 2 --rcfile=.pylint.rc 39 | 40 | # code coverage 41 | COVERAGE=coverage 42 | COVERAGE_ARGS=--rcfile=.coveragerc 43 | 44 | # source files 45 | SRC = \ 46 | ../checkout_externals \ 47 | ../manic/*.py 48 | 49 | CHECKOUT_EXE = ../checkout_externals 50 | 51 | TEST_DIR = . 52 | 53 | README = ../README.md 54 | 55 | # 56 | # testing 57 | # 58 | .PHONY : utest 59 | utest : FORCE 60 | $(PYPATH) $(PYTHON) $(TEST_ARGS) --pattern 'test_unit_*.py' 61 | 62 | .PHONY : stest 63 | stest : FORCE 64 | $(PYPATH) $(PYTHON) $(TEST_ARGS) --pattern 'test_sys_*.py' 65 | 66 | .PHONY : test 67 | test : utest stest 68 | 69 | # 70 | # documentation 71 | # 72 | .PHONY : readme 73 | readme : $(CHECKOUT_EXE) 74 | printf "%s\n\n" "-- AUTOMATICALLY GENERATED FILE. DO NOT EDIT --" > $(README) 75 | printf "%s" '[![Build Status](https://travis-ci.org/ESMCI/manage_externals.svg?branch=master)](https://travis-ci.org/ESMCI/manage_externals)' >> $(README) 76 | printf "%s" '[![Coverage Status](https://coveralls.io/repos/github/ESMCI/manage_externals/badge.svg?branch=master)](https://coveralls.io/github/ESMCI/manage_externals?branch=master)' >> $(README) 77 | printf "\n%s\n" '```' >> $(README) 78 | $(CHECKOUT_EXE) --help >> $(README) 79 | 80 | # 81 | # coding standards 82 | # 83 | .PHONY : style 84 | style : FORCE 85 | $(AUTOPEP8) $(AUTOPEP8_ARGS) --recursive $(SRC) $(TEST_DIR)/test_*.py 86 | 87 | .PHONY : lint 88 | lint : FORCE 89 | $(PYLINT) $(PYLINT_ARGS) $(SRC) $(TEST_DIR)/test_*.py 90 | 91 | .PHONY : stylint 92 | stylint : style lint 93 | 94 | .PHONY : coverage 95 | # Need to use a single coverage run with a single pattern rather than 96 | # using two separate commands with separate patterns for test_unit_*.py 97 | # and test_sys_*.py: The latter clobbers some results from the first 98 | # run, even if we use the --append flag to 'coverage run'. 99 | coverage : FORCE 100 | $(PYPATH) $(COVERAGE) erase 101 | $(PYPATH) $(COVERAGE) run $(COVERAGE_ARGS) $(TEST_ARGS) --pattern 'test_*.py' 102 | $(PYPATH) $(COVERAGE) html 103 | 104 | # 105 | # virtual environment creation 106 | # 107 | .PHONY : env 108 | env : FORCE 109 | $(PYPATH) virtualenv --python $(PYTHON) $@_$(PYTHON) 110 | . $@_$(PYTHON)/bin/activate; pip install -r requirements.txt 111 | 112 | # 113 | # utilites 114 | # 115 | .PHONY : clean 116 | clean : FORCE 117 | -rm -rf *~ *.pyc tmp fake htmlcov 118 | 119 | .PHONY : clobber 120 | clobber : clean 121 | -rm -rf env_* 122 | 123 | FORCE : 124 | 125 | -------------------------------------------------------------------------------- /manage_externals/test/README.md: -------------------------------------------------------------------------------- 1 | # Testing for checkout_externals 2 | 3 | NOTE: Python2 is the supported runtime environment. Python3 compatibility is 4 | in progress, complicated by the different proposed input methods 5 | (yaml, xml, cfg/ini, json) and their different handling of strings 6 | (unicode vs byte) in python2. Full python3 compatibility will be 7 | possible once the number of possible input formats has been narrowed. 8 | 9 | ## Setup development environment 10 | 11 | Development environments should be setup for python2 and python3: 12 | 13 | ```SH 14 | cd checkout_externals/test 15 | make python=python2 env 16 | make python=python3 env 17 | ``` 18 | 19 | ## Unit tests 20 | 21 | Tests should be run for both python2 and python3. It is recommended 22 | that you have seperate terminal windows open python2 and python3 23 | testing to avoid errors activating and deactivating environments. 24 | 25 | ```SH 26 | cd checkout_externals/test 27 | . env_python2/bin/activate 28 | make utest 29 | deactivate 30 | ``` 31 | 32 | ```SH 33 | cd checkout_externals/test 34 | . env_python2/bin/activate 35 | make utest 36 | deactivate 37 | ``` 38 | 39 | ## System tests 40 | 41 | Not yet implemented. 42 | 43 | ## Static analysis 44 | 45 | checkout_externals is difficult to test thoroughly because it relies 46 | on git and svn, and svn requires a live network connection and 47 | repository. Static analysis will help catch bugs in code paths that 48 | are not being executed, but it requires conforming to community 49 | standards and best practices. autopep8 and pylint should be run 50 | regularly for automatic code formatting and linting. 51 | 52 | ```SH 53 | cd checkout_externals/test 54 | . env_python2/bin/activate 55 | make lint 56 | deactivate 57 | ``` 58 | 59 | The canonical formatting for the code is whatever autopep8 60 | generates. All issues identified by pylint should be addressed. 61 | 62 | 63 | ## Code coverage 64 | 65 | All changes to the code should include maintaining existing tests and 66 | writing new tests for new or changed functionality. To ensure test 67 | coverage, run the code coverage tool: 68 | 69 | ```SH 70 | cd checkout_externals/test 71 | . env_python2/bin/activate 72 | make coverage 73 | open -a Firefox.app htmlcov/index.html 74 | deactivate 75 | ``` 76 | 77 | 78 | -------------------------------------------------------------------------------- /manage_externals/test/doc/.gitignore: -------------------------------------------------------------------------------- 1 | _build 2 | 3 | -------------------------------------------------------------------------------- /manage_externals/test/doc/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SPHINXPROJ = ManageExternals 8 | SOURCEDIR = . 9 | BUILDDIR = _build 10 | 11 | # Put it first so that "make" without argument is like "make help". 12 | help: 13 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 14 | 15 | .PHONY: help Makefile 16 | 17 | # Catch-all target: route all unknown targets to Sphinx using the new 18 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 19 | %: Makefile 20 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) -------------------------------------------------------------------------------- /manage_externals/test/doc/index.rst: -------------------------------------------------------------------------------- 1 | .. Manage Externals documentation master file, created by 2 | sphinx-quickstart on Wed Nov 29 10:53:25 2017. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | Welcome to Manage Externals's documentation! 7 | ============================================ 8 | 9 | .. toctree:: 10 | :maxdepth: 2 11 | :caption: Contents: 12 | 13 | 14 | develop.rst 15 | testing.rst 16 | 17 | Indices and tables 18 | ================== 19 | 20 | * :ref:`genindex` 21 | * :ref:`modindex` 22 | * :ref:`search` 23 | -------------------------------------------------------------------------------- /manage_externals/test/doc/testing.rst: -------------------------------------------------------------------------------- 1 | Testing 2 | ======= 3 | 4 | The manage_externals package has an automated test suite. All pull 5 | requests are expected to pass 100% of the automated tests, as well as 6 | be pep8 and lint 'clean' and maintain approximately constant (at a 7 | minimum) level of code coverage. 8 | 9 | Quick Start 10 | ----------- 11 | 12 | Do nothing approach 13 | ~~~~~~~~~~~~~~~~~~~ 14 | 15 | When you create a pull request on GitHub, Travis-CI continuous 16 | integration testing will run the test suite in both python2 and 17 | python3. Test results, lint results, and code coverage results are 18 | available online. 19 | 20 | Do something approach 21 | ~~~~~~~~~~~~~~~~~~~~~ 22 | 23 | In the test directory, run: 24 | 25 | .. code-block:: shell 26 | 27 | make env 28 | make lint 29 | make test 30 | make coverage 31 | 32 | 33 | Automated Testing 34 | ----------------- 35 | 36 | The manage_externals manic library and executables are developed to be 37 | python2 and python3 compatible using only the standard library. The 38 | test suites meet the same requirements. But additional tools are 39 | required to provide lint and code coverage metrics and generate 40 | documentation. The requirements are maintained in the requirements.txt 41 | file, and can be automatically installed into an isolated environment 42 | via Makefile. 43 | 44 | Bootstrap requirements: 45 | 46 | * python2 - version 2.7.x or later 47 | 48 | * python3 - version 3.6 tested other versions may work 49 | 50 | * pip and virtualenv for python2 and python3 51 | 52 | Note: all make rules can be of the form ``make python=pythonX rule`` 53 | or ``make rule`` depending if you want to use the default system 54 | python or specify a specific version. 55 | 56 | The Makefile in the test directory has the following rules: 57 | 58 | * ``make python=pythonX env`` - create a python virtual environment 59 | for python2 or python3 and install all required packages. These 60 | packages are required to run lint or coverage. 61 | 62 | * ``make style`` - runs autopep8 63 | 64 | * ``make lint`` - runs autopep8 and pylint 65 | 66 | * ``make test`` - run the full test suite 67 | 68 | * ``make utest`` - run jus the unit tests 69 | 70 | * ``make stest`` - run jus the system integration tests 71 | 72 | * ``make coverage`` - run the full test suite through the code 73 | coverage tool and generate an html report. 74 | 75 | * ``make readme`` - automatically generate the README files. 76 | 77 | * ``make clean`` - remove editor and pyc files 78 | 79 | * ``make clobber`` - remove all generated test files, including 80 | virtual environments, coverage reports, and temporary test 81 | repository directories. 82 | 83 | Unit Tests 84 | ---------- 85 | 86 | Unit tests are probably not 'true unit tests' for the pedantic, but 87 | are pragmatic unit tests. They cover small practicle code blocks: 88 | functions, class methods, and groups of functions and class methods. 89 | 90 | System Integration Tests 91 | ------------------------ 92 | 93 | NOTE(bja, 2017-11) The systems integration tests currently do not include svn repositories. 94 | 95 | The manage_externals package is extremely tedious and error prone to test manually. 96 | 97 | Combinations that must be tested to ensure basic functionality are: 98 | 99 | * container repository pulling in simple externals 100 | 101 | * container repository pulling in mixed externals with sub-externals. 102 | 103 | * mixed repository acting as a container, pulling in simple externals and sub-externals 104 | 105 | Automatic system tests are handled the same way manual testing is done: 106 | 107 | * clone a test repository 108 | 109 | * create an externals description file for the test 110 | 111 | * run the executable with the desired args 112 | 113 | * check the results 114 | 115 | * potentially modify the repo (checkout a different branch) 116 | 117 | * rerun and test 118 | 119 | * etc 120 | 121 | The automated system stores small test repositories in the main repo 122 | by adding them as bare repositories. These repos are cloned via a 123 | subprocess call to git and manipulated during the tests. 124 | -------------------------------------------------------------------------------- /manage_externals/test/repos/container.git/HEAD: -------------------------------------------------------------------------------- 1 | ref: refs/heads/master 2 | -------------------------------------------------------------------------------- /manage_externals/test/repos/container.git/config: -------------------------------------------------------------------------------- 1 | [core] 2 | repositoryformatversion = 0 3 | filemode = true 4 | bare = true 5 | ignorecase = true 6 | precomposeunicode = true 7 | -------------------------------------------------------------------------------- /manage_externals/test/repos/container.git/description: -------------------------------------------------------------------------------- 1 | Unnamed repository; edit this file 'description' to name the repository. 2 | -------------------------------------------------------------------------------- /manage_externals/test/repos/container.git/info/exclude: -------------------------------------------------------------------------------- 1 | # git ls-files --others --exclude-from=.git/info/exclude 2 | # Lines that start with '#' are comments. 3 | # For a project mostly in C, the following would be a good set of 4 | # exclude patterns (uncomment them if you want to use them): 5 | # *.[oa] 6 | # *~ 7 | -------------------------------------------------------------------------------- /manage_externals/test/repos/container.git/objects/41/1de5d96ee418c1c55f3e96e6e6e7c06bb95801: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/container.git/objects/41/1de5d96ee418c1c55f3e96e6e6e7c06bb95801 -------------------------------------------------------------------------------- /manage_externals/test/repos/container.git/objects/71/5b8f3e4afe1802a178e1d603af404ba45d59de: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/container.git/objects/71/5b8f3e4afe1802a178e1d603af404ba45d59de -------------------------------------------------------------------------------- /manage_externals/test/repos/container.git/objects/b0/f87705e2b9601cb831878f3d51efa78b910d7b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/container.git/objects/b0/f87705e2b9601cb831878f3d51efa78b910d7b -------------------------------------------------------------------------------- /manage_externals/test/repos/container.git/objects/f9/e08370a737e941de6f6492e3f427c2ef4c1a03: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/container.git/objects/f9/e08370a737e941de6f6492e3f427c2ef4c1a03 -------------------------------------------------------------------------------- /manage_externals/test/repos/container.git/refs/heads/master: -------------------------------------------------------------------------------- 1 | 715b8f3e4afe1802a178e1d603af404ba45d59de 2 | -------------------------------------------------------------------------------- /manage_externals/test/repos/error/readme.txt: -------------------------------------------------------------------------------- 1 | Invalid or corrupted git repository (.git dir exists, but is empty) for error 2 | testing. 3 | 4 | -------------------------------------------------------------------------------- /manage_externals/test/repos/mixed-cont-ext.git/HEAD: -------------------------------------------------------------------------------- 1 | ref: refs/heads/master 2 | -------------------------------------------------------------------------------- /manage_externals/test/repos/mixed-cont-ext.git/config: -------------------------------------------------------------------------------- 1 | [core] 2 | repositoryformatversion = 0 3 | filemode = true 4 | bare = true 5 | ignorecase = true 6 | precomposeunicode = true 7 | -------------------------------------------------------------------------------- /manage_externals/test/repos/mixed-cont-ext.git/description: -------------------------------------------------------------------------------- 1 | Unnamed repository; edit this file 'description' to name the repository. 2 | -------------------------------------------------------------------------------- /manage_externals/test/repos/mixed-cont-ext.git/info/exclude: -------------------------------------------------------------------------------- 1 | # git ls-files --others --exclude-from=.git/info/exclude 2 | # Lines that start with '#' are comments. 3 | # For a project mostly in C, the following would be a good set of 4 | # exclude patterns (uncomment them if you want to use them): 5 | # *.[oa] 6 | # *~ 7 | -------------------------------------------------------------------------------- /manage_externals/test/repos/mixed-cont-ext.git/objects/00/437ac2000d5f06fb8a572a01a5bbdae98b17cb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/mixed-cont-ext.git/objects/00/437ac2000d5f06fb8a572a01a5bbdae98b17cb -------------------------------------------------------------------------------- /manage_externals/test/repos/mixed-cont-ext.git/objects/01/97458f2dbe5fcd6bc44fa46983be0a30282379: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/mixed-cont-ext.git/objects/01/97458f2dbe5fcd6bc44fa46983be0a30282379 -------------------------------------------------------------------------------- /manage_externals/test/repos/mixed-cont-ext.git/objects/06/ea30b03ffa2f8574705f8b9583f7ca7e2dccf7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/mixed-cont-ext.git/objects/06/ea30b03ffa2f8574705f8b9583f7ca7e2dccf7 -------------------------------------------------------------------------------- /manage_externals/test/repos/mixed-cont-ext.git/objects/14/368b701616a8c53820b610414a4b9a07540cf6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/mixed-cont-ext.git/objects/14/368b701616a8c53820b610414a4b9a07540cf6 -------------------------------------------------------------------------------- /manage_externals/test/repos/mixed-cont-ext.git/objects/15/2b57e1cf23721cd17ff681cb9276e3fb9fc091: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/mixed-cont-ext.git/objects/15/2b57e1cf23721cd17ff681cb9276e3fb9fc091 -------------------------------------------------------------------------------- /manage_externals/test/repos/mixed-cont-ext.git/objects/1f/01fa46c17b1f38b37e6259f6e9d041bda3144f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/mixed-cont-ext.git/objects/1f/01fa46c17b1f38b37e6259f6e9d041bda3144f -------------------------------------------------------------------------------- /manage_externals/test/repos/mixed-cont-ext.git/objects/37/f0e70b609adc90f4c09ee21d82ed1d79c81d69: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/mixed-cont-ext.git/objects/37/f0e70b609adc90f4c09ee21d82ed1d79c81d69 -------------------------------------------------------------------------------- /manage_externals/test/repos/mixed-cont-ext.git/objects/38/9a2b876b8965d3c91a3db8d28a483eaf019d5c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/mixed-cont-ext.git/objects/38/9a2b876b8965d3c91a3db8d28a483eaf019d5c -------------------------------------------------------------------------------- /manage_externals/test/repos/mixed-cont-ext.git/objects/41/1de5d96ee418c1c55f3e96e6e6e7c06bb95801: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/mixed-cont-ext.git/objects/41/1de5d96ee418c1c55f3e96e6e6e7c06bb95801 -------------------------------------------------------------------------------- /manage_externals/test/repos/mixed-cont-ext.git/objects/6e/9f4baa6e94a0af4e094836c2eb55ccedef5fc4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/mixed-cont-ext.git/objects/6e/9f4baa6e94a0af4e094836c2eb55ccedef5fc4 -------------------------------------------------------------------------------- /manage_externals/test/repos/mixed-cont-ext.git/objects/6f/c379457ecb4e576a13c7610ae1fa73f845ee6a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/mixed-cont-ext.git/objects/6f/c379457ecb4e576a13c7610ae1fa73f845ee6a -------------------------------------------------------------------------------- /manage_externals/test/repos/mixed-cont-ext.git/objects/93/a159deb9175bfeb2820a0006ddd92d78131332: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/mixed-cont-ext.git/objects/93/a159deb9175bfeb2820a0006ddd92d78131332 -------------------------------------------------------------------------------- /manage_externals/test/repos/mixed-cont-ext.git/objects/95/80ecc12f16334ce44e42287d5d46f927bb7b75: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/mixed-cont-ext.git/objects/95/80ecc12f16334ce44e42287d5d46f927bb7b75 -------------------------------------------------------------------------------- /manage_externals/test/repos/mixed-cont-ext.git/objects/a9/288dcd8a719a1f4ed3cba43a2a387ae7cd60fd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/mixed-cont-ext.git/objects/a9/288dcd8a719a1f4ed3cba43a2a387ae7cd60fd -------------------------------------------------------------------------------- /manage_externals/test/repos/mixed-cont-ext.git/objects/e8/ea32a11d30ee703f6f661ae7c2376f4ab84d38: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/mixed-cont-ext.git/objects/e8/ea32a11d30ee703f6f661ae7c2376f4ab84d38 -------------------------------------------------------------------------------- /manage_externals/test/repos/mixed-cont-ext.git/objects/fd/15a5ad5204356229c60a831d2a8120a43ac901: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/mixed-cont-ext.git/objects/fd/15a5ad5204356229c60a831d2a8120a43ac901 -------------------------------------------------------------------------------- /manage_externals/test/repos/mixed-cont-ext.git/refs/heads/master: -------------------------------------------------------------------------------- 1 | 6fc379457ecb4e576a13c7610ae1fa73f845ee6a 2 | -------------------------------------------------------------------------------- /manage_externals/test/repos/mixed-cont-ext.git/refs/heads/new-feature: -------------------------------------------------------------------------------- 1 | 9580ecc12f16334ce44e42287d5d46f927bb7b75 2 | -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/HEAD: -------------------------------------------------------------------------------- 1 | ref: refs/heads/master 2 | -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/config: -------------------------------------------------------------------------------- 1 | [core] 2 | repositoryformatversion = 0 3 | filemode = true 4 | bare = true 5 | ignorecase = true 6 | precomposeunicode = true 7 | [remote "origin"] 8 | url = /Users/andreb/projects/ncar/git-conversion/checkout-model-dev/cesm-demo-externals/manage_externals/test/repos/simple-ext.git 9 | -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/description: -------------------------------------------------------------------------------- 1 | Unnamed repository; edit this file 'description' to name the repository. 2 | -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/info/exclude: -------------------------------------------------------------------------------- 1 | # git ls-files --others --exclude-from=.git/info/exclude 2 | # Lines that start with '#' are comments. 3 | # For a project mostly in C, the following would be a good set of 4 | # exclude patterns (uncomment them if you want to use them): 5 | # *.[oa] 6 | # *~ 7 | -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/objects/00/fd13e76189f9134b0506b4b8ed3172723b467f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext-fork.git/objects/00/fd13e76189f9134b0506b4b8ed3172723b467f -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/objects/0b/15e8af3d4615b42314216efeae3fff184046a8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext-fork.git/objects/0b/15e8af3d4615b42314216efeae3fff184046a8 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/objects/0b/67df4e7e8e6e1c6e401542738b352d18744677: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext-fork.git/objects/0b/67df4e7e8e6e1c6e401542738b352d18744677 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/objects/11/a76e3d9a67313dec7ce1230852ab5c86352c5c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext-fork.git/objects/11/a76e3d9a67313dec7ce1230852ab5c86352c5c -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/objects/16/5506a7408a482f50493434e13fffeb44af893f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext-fork.git/objects/16/5506a7408a482f50493434e13fffeb44af893f -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/objects/24/4386e788c9bc608613e127a329c742450a60e4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext-fork.git/objects/24/4386e788c9bc608613e127a329c742450a60e4 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/objects/32/7e97d86e941047d809dba58f2804740c6c30cf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext-fork.git/objects/32/7e97d86e941047d809dba58f2804740c6c30cf -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/objects/36/418b4e5665956a90725c9a1b5a8e551c5f3d48: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext-fork.git/objects/36/418b4e5665956a90725c9a1b5a8e551c5f3d48 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/objects/3d/7099c35404ae6c8640ce263b38bef06e98cc26: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext-fork.git/objects/3d/7099c35404ae6c8640ce263b38bef06e98cc26 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/objects/3d/ec1fdf8e2f5edba28148c5db2fe8d7a842360b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext-fork.git/objects/3d/ec1fdf8e2f5edba28148c5db2fe8d7a842360b -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/objects/41/1de5d96ee418c1c55f3e96e6e6e7c06bb95801: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext-fork.git/objects/41/1de5d96ee418c1c55f3e96e6e6e7c06bb95801 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/objects/4d/837135915ed93eed6fff6b439f284ce317296f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext-fork.git/objects/4d/837135915ed93eed6fff6b439f284ce317296f -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/objects/56/175e017ad38bf3d33d74b6bd7c74624b28466a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext-fork.git/objects/56/175e017ad38bf3d33d74b6bd7c74624b28466a -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/objects/5f/1d4786d12e52d7ab28d2f2f1118c1059a9f1ae: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext-fork.git/objects/5f/1d4786d12e52d7ab28d2f2f1118c1059a9f1ae -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/objects/67/136e5ab4d5c1c65d10c8048763b96b0e53c1d6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext-fork.git/objects/67/136e5ab4d5c1c65d10c8048763b96b0e53c1d6 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/objects/7b/0bd630ac13865735a1dff3437a137d8ab50663: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext-fork.git/objects/7b/0bd630ac13865735a1dff3437a137d8ab50663 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/objects/88/cf20868e0cc445f5642a480ed034c71e0d7e9f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext-fork.git/objects/88/cf20868e0cc445f5642a480ed034c71e0d7e9f -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/objects/8d/2b3b35126224c975d23f109aa1e3cbac452989: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext-fork.git/objects/8d/2b3b35126224c975d23f109aa1e3cbac452989 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/objects/9b/75494003deca69527bb64bcaa352e801611dd2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext-fork.git/objects/9b/75494003deca69527bb64bcaa352e801611dd2 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/objects/a2/2a5da9119328ea6d693f88861457c07e14ac04: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext-fork.git/objects/a2/2a5da9119328ea6d693f88861457c07e14ac04 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/objects/a4/2fe9144f5707bc1e9515ce1b44681f7aba6f95: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext-fork.git/objects/a4/2fe9144f5707bc1e9515ce1b44681f7aba6f95 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/objects/b9/3737be3ea6b19f6255983748a0a0f4d622f936: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext-fork.git/objects/b9/3737be3ea6b19f6255983748a0a0f4d622f936 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/objects/c5/32bc8fde96fa63103a52057f0baffcc9f00c6b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext-fork.git/objects/c5/32bc8fde96fa63103a52057f0baffcc9f00c6b -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/objects/c5/b315915742133dbdfbeed0753e481b55c1d364: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext-fork.git/objects/c5/b315915742133dbdfbeed0753e481b55c1d364 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/objects/f2/68d4e56d067da9bd1d85e55bdc40a8bd2b0bca: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext-fork.git/objects/f2/68d4e56d067da9bd1d85e55bdc40a8bd2b0bca -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/packed-refs: -------------------------------------------------------------------------------- 1 | # pack-refs with: peeled fully-peeled sorted 2 | 36418b4e5665956a90725c9a1b5a8e551c5f3d48 refs/heads/feature2 3 | 9b75494003deca69527bb64bcaa352e801611dd2 refs/heads/master 4 | 11a76e3d9a67313dec7ce1230852ab5c86352c5c refs/tags/tag1 5 | ^9b75494003deca69527bb64bcaa352e801611dd2 6 | -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/refs/heads/feature2: -------------------------------------------------------------------------------- 1 | f268d4e56d067da9bd1d85e55bdc40a8bd2b0bca 2 | -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/refs/tags/abandoned-feature: -------------------------------------------------------------------------------- 1 | a42fe9144f5707bc1e9515ce1b44681f7aba6f95 2 | -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext-fork.git/refs/tags/forked-feature-v1: -------------------------------------------------------------------------------- 1 | 8d2b3b35126224c975d23f109aa1e3cbac452989 2 | -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/HEAD: -------------------------------------------------------------------------------- 1 | ref: refs/heads/master 2 | -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/config: -------------------------------------------------------------------------------- 1 | [core] 2 | repositoryformatversion = 0 3 | filemode = true 4 | bare = true 5 | ignorecase = true 6 | precomposeunicode = true 7 | -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/description: -------------------------------------------------------------------------------- 1 | Unnamed repository; edit this file 'description' to name the repository. 2 | -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/info/exclude: -------------------------------------------------------------------------------- 1 | # git ls-files --others --exclude-from=.git/info/exclude 2 | # Lines that start with '#' are comments. 3 | # For a project mostly in C, the following would be a good set of 4 | # exclude patterns (uncomment them if you want to use them): 5 | # *.[oa] 6 | # *~ 7 | -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/objects/00/fd13e76189f9134b0506b4b8ed3172723b467f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext.git/objects/00/fd13e76189f9134b0506b4b8ed3172723b467f -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/objects/09/0e1034746b2c865f7b0280813dbf4061a700e8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext.git/objects/09/0e1034746b2c865f7b0280813dbf4061a700e8 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/objects/0b/15e8af3d4615b42314216efeae3fff184046a8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext.git/objects/0b/15e8af3d4615b42314216efeae3fff184046a8 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/objects/11/a76e3d9a67313dec7ce1230852ab5c86352c5c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext.git/objects/11/a76e3d9a67313dec7ce1230852ab5c86352c5c -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/objects/14/2711fdbbcb8034d7cad6bae6801887b12fe61d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext.git/objects/14/2711fdbbcb8034d7cad6bae6801887b12fe61d -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/objects/31/dbcd6de441e671a467ef317146539b7ffabb11: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext.git/objects/31/dbcd6de441e671a467ef317146539b7ffabb11 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/objects/36/418b4e5665956a90725c9a1b5a8e551c5f3d48: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext.git/objects/36/418b4e5665956a90725c9a1b5a8e551c5f3d48 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/objects/41/1de5d96ee418c1c55f3e96e6e6e7c06bb95801: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext.git/objects/41/1de5d96ee418c1c55f3e96e6e6e7c06bb95801 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/objects/60/7ec299c17dd285c029edc41a0109e49d441380: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext.git/objects/60/7ec299c17dd285c029edc41a0109e49d441380 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/objects/60/b1cc1a38d63a4bcaa1e767262bbe23dbf9f5f5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext.git/objects/60/b1cc1a38d63a4bcaa1e767262bbe23dbf9f5f5 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/objects/63/a99393d1baff97ccef967af30380659867b139: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext.git/objects/63/a99393d1baff97ccef967af30380659867b139 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/objects/95/3256da5612fcd9263590a353bc18c6f224e74f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext.git/objects/95/3256da5612fcd9263590a353bc18c6f224e74f -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/objects/9b/75494003deca69527bb64bcaa352e801611dd2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext.git/objects/9b/75494003deca69527bb64bcaa352e801611dd2 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/objects/a2/2a5da9119328ea6d693f88861457c07e14ac04: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext.git/objects/a2/2a5da9119328ea6d693f88861457c07e14ac04 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/objects/b7/692b6d391899680da7b9b6fd8af4c413f06fe7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext.git/objects/b7/692b6d391899680da7b9b6fd8af4c413f06fe7 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/objects/c5/b315915742133dbdfbeed0753e481b55c1d364: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext.git/objects/c5/b315915742133dbdfbeed0753e481b55c1d364 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/objects/d1/163870d19c3dee34fada3a76b785cfa2a8424b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext.git/objects/d1/163870d19c3dee34fada3a76b785cfa2a8424b -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/objects/d8/ed2f33179d751937f8fde2e33921e4827babf4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext.git/objects/d8/ed2f33179d751937f8fde2e33921e4827babf4 -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/objects/df/312890f93ba4d2c694208599b665c4a08afeff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ESCOMP/SimpleLand/439ec3e715f36ba243640589ca7e9aa6aa8e207a/manage_externals/test/repos/simple-ext.git/objects/df/312890f93ba4d2c694208599b665c4a08afeff -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/refs/heads/feature2: -------------------------------------------------------------------------------- 1 | 36418b4e5665956a90725c9a1b5a8e551c5f3d48 2 | -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/refs/heads/feature3: -------------------------------------------------------------------------------- 1 | 090e1034746b2c865f7b0280813dbf4061a700e8 2 | -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/refs/heads/master: -------------------------------------------------------------------------------- 1 | 607ec299c17dd285c029edc41a0109e49d441380 2 | -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/refs/tags/tag1: -------------------------------------------------------------------------------- 1 | 11a76e3d9a67313dec7ce1230852ab5c86352c5c 2 | -------------------------------------------------------------------------------- /manage_externals/test/repos/simple-ext.git/refs/tags/tag2: -------------------------------------------------------------------------------- 1 | b7692b6d391899680da7b9b6fd8af4c413f06fe7 2 | -------------------------------------------------------------------------------- /manage_externals/test/requirements.txt: -------------------------------------------------------------------------------- 1 | pylint>=1.7.0 2 | autopep8>=1.3.0 3 | coverage>=4.4.0 4 | coveralls>=1.2.0 5 | sphinx>=1.6.0 6 | -------------------------------------------------------------------------------- /py_env_create: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # py_env_create -- setup the python environment in order to use SLIM python tools 4 | # 5 | # Simple bash script to setup the python environment for the user so they can run the SLIM 6 | # python tools using "conda". 7 | # 8 | dir=${0%/*} 9 | if [ "$dir" = "$0" ];then 10 | dir="." 11 | fi 12 | 13 | # Check if conda is in your path 14 | conda --help >& condahelp.txt 15 | error=$? 16 | if [ $error != 0 ]; then 17 | echo "conda is NOT in your path for the bash shell add it with modules or whatever is required on your system to get it in your path" 18 | echo "on cheyenne/capser/etc use -- module load conda" 19 | echo "on izumi/CGD systems use -- module load lang/python" 20 | echo "For notes on installing on a user system see: https://docs.conda.io/projects/conda/en/latest/user-guide/install/index.html" 21 | echo "Error code was $error" 22 | cat condahelp.txt 23 | exit -1 24 | fi 25 | rm condahelp.txt 26 | python_env=slim_pylib 27 | 28 | 29 | condadir="$dir/python" 30 | 31 | domain=`domainname` 32 | if [[ $domain =~ cgd.* ]]; then 33 | condafile="conda_env_slim_py_cgd.txt" 34 | else 35 | condafile="conda_env_slim_py.txt" 36 | fi 37 | #---------------------------------------------------------------------- 38 | # Usage subroutine 39 | usage() { 40 | echo "" 41 | echo "***********************************************************************" 42 | echo "usage:" 43 | echo "./py_env_create" 44 | echo "" 45 | echo "valid arguments: " 46 | echo "[-h|--help] " 47 | echo " Displays this help message" 48 | echo "[-v|--verbose] " 49 | echo " Run with verbose mode for the install so you see the progress bar" 50 | echo "[-f|--file ] " 51 | echo " Conda environment file to use (can be a text format or YAML format)" 52 | echo " Assumed to be under the directory: $condadir" 53 | echo " Default is: $condafile" 54 | echo "[--option