**************************************** Installation on the NOAA and MSU Systems **************************************** The following instructions provide guidance for installing the METplus components on the `NOAA Research and Development High Performance Computing System (RDHPCS) `_. and on the `MSU-HPC systems `_. The RDHPCS systems include Ursa, Hera, Jet, and Gaea. The MSU-HPC systems include Orion and Hercules. These systems provide the computational resources needed to run and evaluate the Model Evaluation Tools (MET) and METplus framework. This documentation is intended for METplus team members and collaborators who require a consistent and reliable installation of the METplus components in the NOAA RDHPCS environment. It outlines the necessary prerequisites, environment configurations, and installation steps to ensure successful deployment and use of METplus on these systems. Logging On ========== For these instructions, logging on to the RDHPCS systems is done using the Secure Shell (SSH) protocol to one of the system’s bastions. RDHPCS users with a CAC could alternatively use a CAC login. Ursa, Hera, Jet, and Gaea Login ------------------------------- The format for login is .. code-block:: ssh -Y @-rsa..rdhpcs.noaa.gov where the :code:`` and :code:`` options are listed below. .. role:: raw-html(raw) :format: html .. list-table:: * - **RDHPCS System** - **RSA Bastion hostnames** * - Ursa - ursa-rsa.princeton.rdhpcs.noaa.gov :raw-html:`
` ursa-rsa.boulder.rdhpcs.noaa.gov * - Hera - hera-rsa.princeton.rdhpcs.noaa.gov :raw-html:`
` hera-rsa.boulder.rdhpcs.noaa.gov * - Jet - jet-rsa.princeton.rdhpcs.noaa.gov :raw-html:`
` jet-rsa.boulder.rdhpcs.noaa.gov * - Gaea - gaea-rsa.princeton.rdhpcs.noaa.gov :raw-html:`
` gaea-rsa.boulder.rdhpcs.noaa.gov On **Ursa**, **Hera**, and **Jet** installations must be performed using the :code:`role.metplus` account. After logging in with your personal account, switch to the role account with the following command: .. code-block:: sudo su - role.metplus This ensures that installations are done in the shared role environment rather than under an individual user account. .. note:: On **Gaea**, the :code:`role.metplus` account is not available. In this case, you will perform the installation using your personal account. Orion and Hercules Login ------------------------ The format for login is .. code-block:: ssh -Y @-dtn.hpc.msstate.edu where the :code:`` is either :code:`orion` or :code:`hercules`. While compilations may be done on any of the nodes, the development nodes serve the purpose for software development and compiles in which additional system libraries may be requested to be installed that are normally not required for runtime. Also, the development nodes provide the only gateway for writing into the **/apps/contrib/** directories. The development nodes are: .. role:: raw-html(raw) :format: html .. list-table:: * - **MSU-HPC System** - **Development Nodes** * - Orion - orion-devel-1 :raw-html:`
` orion-devel-2 * - Hercules - hercules-devel-1 :raw-html:`
` hercules-devel-2 Switch to a development node with the following command: .. code-block:: ssh replacing :code:`` with one of the development nodes from the table above. On **Orion** and **Hercules**, installations must be performed using the :code:`role-ovp` account. After logging in with your personal account, switch to the role account with the following command: .. code-block:: sudo -su role-ovp This ensures that installations are done in the shared role environment rather than under an individual user account. Conda Environment ================= Ensure the proper conda environment is set for the METplus installations. The table below lists the system name, the location of the conda environment, the account used to install the environment, any applicable notes. The :code:`` referred to below is in the format *metplus_v._py.*, where :code:`` is the major version of METplus release, :code:`` is the minor version of the METplus release, :code:`` is the major version of the Python release, and :code:`` is the minor version of the Python release. For example, METplus version 5.1 used version 3.10 of Python so the :code:`` used for the coordinated METplus-5.1 release is :code:`metplus_v5.1_py3.10`. However, with the coordinated METplus-6.1 release, METplus started using Python version 3.12, so a new environment was necessary. As such, the :code:`metplus_v6.1_py3.12` environment was created. .. list-table:: * - **System** - **Location** - **Account Access** - **Note** * - Ursa - /scratch3/BMC/dtc/METplus/miniconda/miniconda3/envs/ - role.metplus - Replace with the environment name * - Hera - /scratch3/BMC/dtc/METplus/miniconda/miniconda3/envs/ - role.metplus - Replace with the environment name * - Jet - /mnt/lfs6/HFIP/dtc-hurr/METplus/miniconda/miniconda3/envs/ - role.metplus - Replace with the environment name * - Gaea - /ncrc/proj/nggps_psd//projects/miniconda/miniconda3/envs/ - personal - Replace with the username and with the environment name * - Orion - /work/noaa/ovp/miniconda/miniconda3/envs/ - role-ovp - Replace with the environment name * - Hercules - /work/noaa/ovp/miniconda/miniconda3/envs/ - role-ovp - Replace with the environment name If the appropriate conda environment does not currently exist, one will need to be added. The installation scripts for the conda environments are stored in `METplus GitHub repository `_ in the **internal/scripts/installation** directory and are named with the format *metplus_components_v._py..sh*. This script should be placed in the :code:`miniconda` directory listed above. For example, on Orion, the script would be placed in **/work/noaa/ovp/miniconda/**. The script contains :code:`MINICONDA_PATH=/path/to/miniconda3`. Note that :code:`/path/to/miniconda3` should be replaced with the actual path. For example, on Orion, :code:`MINICONDA_PATH` would be set to **/work/noaa/ovp/miniconda/miniconda3/**. In the :code:`miniconda` directory, obtain the script. For example: .. code-block:: wget https://raw.githubusercontent.com/dtcenter/METplus/refs/heads/develop/internal/scripts/installation/metplus_components_v6.1_py3.12.sh .. warning:: Note that the link above links to the **RAW** content of the file. It is essential to download the raw format, otherwise the file will contain unwanted HTML information and will not work appropriately. Modify the line :code:`MINICONDA_PATH=/path/to/miniconda3`, then make the script executable: .. code-block:: chmod 775 metplus_components_v6.1_py3.12.sh and run the script: .. code-block:: ./metplus_components_v6.1_py3.12.sh Installing MET ============== Installation Location --------------------- The table below lists the system name, the location for the MET installation, and the account used for the installation. .. list-table:: * - **System** - **Location** - **Account Access** * - Ursa - /contrib/met - role.metplus * - Hera - /contrib/met - role.metplus * - Jet - /contrib/met - role.metplus * - Gaea - /usw/met - personal * - Orion - /apps/contrib/MET - role-ovp * - Hercules - /apps/contrib/MET - role-ovp On the system, in the location listed above, create a directory using the version number for the version of MET to be installed (e.g. X.Y.Z or X.Y.Z-betaN or X.Y.Z-rcN) and change into that directory. For example: .. code-block:: mkdir X.Y.Z cd X.Y.Z Installation Process -------------------- Download the compilation script, *compile_MET_all.sh*. For example: .. code-block:: wget https://raw.githubusercontent.com/dtcenter/MET/develop/internal/scripts/installation/compile_MET_all.sh .. warning:: Note that the link above links to the **RAW** content of the file. It is essential to download the raw format, otherwise the file will contain unwanted HTML information and will not work appropriately. .. note:: The :code:`wget` command above will get the latest and greatest script from the **develop** branch. If that is not desired, replace **develop** with the branch of your choice (e.g. **main_v12.1** or other). Make the script executable: .. code-block:: chmod 775 compile_MET_all.sh The tar file dependency packages for the various versions of MET are located on the DTC website `here `_. Download the desired package. For example, to get the latest tar files package, run: .. code-block:: wget https://dtcenter.ucar.edu/dfiles/code/METplus/MET/installation/tar_files.latest.tgz Unpack the tar files package and remove the .tgz file: .. code-block:: tar -zxf tar_files.latest.tgz rm tar_files.latest.tgz Change directories to the **tar_files** directory. Download the desired version of MET: .. code-block:: cd tar_files wget https://github.com/dtcenter/MET/archive/refs/tags/vX.Y.Z.tar.gz .. note:: The :code:`wget` command above will get the **vX.Y.Z** release. Replace the *X.Y.Z* with the desired version numbers, which may take the format of *X.Y.Z-betaN* or the *X.Y.Z-rcN*. Go up one directory from the **tar_files** directory: .. code-block:: cd .. Download the existing installation configuration file for the appropriate system. These configuration files are located in the `MET GitHub repository `_ in the **internal/scripts/installation/config** directory and are named with the format *install_met_env.*. For example, install_met_env.jet or install_met_env.ursa. To download the file for **Ursa** for MET version X.Y.Z, for example, run: .. code-block:: wget https://raw.githubusercontent.com/dtcenter/MET/refs/heads/main_vX.Y/internal/scripts/installation/config/install_met_env.ursa .. note:: The :code:`wget` command above will get the installation configuration file for the MET X.Y release. Replace the *main_vX.Y* with the actual version number for an official release or with *develop* for a betaN or rcN release. .. warning:: Note that the link above links to the **RAW** content of the file. It is essential to download the raw format, otherwise the file will contain unwanted HTML information and will not work appropriately. This file includes the version number for official releases. For example, for the MET X.Y.Z release, the file contains the following entries specific to the X.Y.Z release: .. code-block:: export TEST_BASE=/contrib/met/X.Y.Z export MET_TARBALL=vX.Y.Z.tar.gz If installing a beta release (X.Y.Z-betaN) or a rc release (X.Y.Z-rcN), these values will need to be modified appropriately. .. warning:: The values for **TEST_BASE** and **MET_TARBALL** should be modified in the *install_met_env.* file and should **NOT** be executed on the command line. Similarly, if installing with Python embedding functionality (recommended), there are references to the specific conda environment. For example: .. code-block:: export MET_PYTHON=/scratch3/BMC/dtc/METplus/miniconda/miniconda3/envs/metplus_v6.1_py3.12 export MET_PYTHON_CC=-I${MET_PYTHON}/include/python3.12 export MET_PYTHON_LD="-L${MET_PYTHON}/lib/python3.12/config-3.12-x86_64-linux-gnu -L${MET_PYTHON}/lib -lpython3.12 -lpthread -ldl -lutil -lm" If a conda environment different from *metplus_v6.1_py3.12* is desired, these values will need to be updated. For more detailed information about the variables in the script, see the `Using the compile_MET_all.sh script `_ section of the `MET User's Guide `_ for the version of MET being installed. Run the following to execute the script: .. code-block:: ./compile_MET_all.sh install_met_env. After the installation is complete, to confirm that MET was installed successfully, run the following command from the installation directory to check for errors in the test file: .. code-block:: grep -i error MET-X.Y.Z/met.make_test.log replacing :code:`X.Y.Z` with the installed version. Create a Modulefile ------------------- The table below lists the system name, the location for the MET modulefile, and the account used for the installation. .. list-table:: * - **System** - **Location** - **Account Access** * - Ursa - /contrib/met/modulefiles/met - role.metplus * - Hera - /contrib/met/modulefiles/met - role.metplus * - Jet - /contrib/met/modulefiles/met - role.metplus * - Gaea - /usw/met/modulefiles/met - personal * - Orion - /apps/contrib/modulefiles/met - role-ovp * - Hercules - /apps/contrib/modulefiles/met - role-ovp Download the existing installation modulefile for the appropriate system. These modulefiles are located in the `MET GitHub repository `_ in the **internal/scripts/installation/modulefiles** directory and are named with the format *_*. For example, *12.1.0_jet* or *12.1.0_ursa*. To download the file for **Ursa** for MET version X.Y.Z, for example, run: .. code-block:: wget https://raw.githubusercontent.com/dtcenter/MET/refs/heads/main_vX.Y/internal/scripts/installation/modulefiles/X.Y.Z_ursa .. note:: The :code:`wget` command above will get the modulefile for the MET X.Y.Z release. Replace the *main_vX.Y* with the actual version numbers or with *develop* for a betaN or rcN release, and replace the *X.Y.Z* in the *X.Y.Z_* filename with the actual version numbers. .. warning:: Note that the link above links to the **RAW** content of the file. It is essential to download the raw format, otherwise the file will contain unwanted HTML information and will not work appropriately. If installing an official release, rename the file simply X.Y.Z. For example: .. code-block:: mv X.Y.Z_ursa X.Y.Z If installing a beta release, rename the file X.Y.Z-betaN. For example: .. code-block:: mv X.Y.Z_ursa X.Y.Z-betaN Open the file using the editor of your choice and change any references to X.Y.Z to X.Y.Z-betaN. Save the file. If installing a rc release, rename the file X.Y.Z-rcN. For example: .. code-block:: mv X.Y.Z_ursa X.Y.Z-rcN Open the file using the editor of your choice and change any references to X.Y.Z to X.Y.Z-rcN. Save the file. **Review the file to ensure no other updates need to be made.** Installing METplus ================== Sample Data Installation Location --------------------------------- The METplus Sample Data is available online at this `location `_. Click on the link for the desired version of METplus to access the data for that version. The table below lists the system name, the location for the installation of the METplus sample data and the account used for the installation of the sample data. Check to see if a directory exists with the format *METplus-X.Y_sample_data* for the desired version of METplus. If no data exists, create a new directory for the sample data. Note the directory should be named *METplus-X.Y_sample_data* even for a beta or rc installation as the data is the same for development and official releases. If the sample data does not yet exist or needs to be updated, use the following commands to download the desired data, replacing the X.Y with the appropriate version number. First, navigate to the correct directory as listed in the table below. If necessary, create the *METplus-X.Y_sample_data* directory, otherwise, navigate into that directory. .. code-block:: wget -r --no-parent https://dtcenter.ucar.edu/dfiles/code/METplus/METplus_Data/vX.Y/met_test/ wget -r --no-parent https://dtcenter.ucar.edu/dfiles/code/METplus/METplus_Data/vX.Y/model_applications/ mv dtcenter.ucar.edu/dfiles/code/METplus/METplus_Data/vX.Y/met_test . mv dtcenter.ucar.edu/dfiles/code/METplus/METplus_Data/vX.Y/model_applications . rm -rf dtcenter.ucar.edu find . -name "*index.html*" -type f -delete .. note:: Due to the size of the data, the wget commands could potentially take hours to download all of the data. .. list-table:: * - **System** - **Location** - **Account Access** * - Ursa - /scratch3/BMC/dtc/METplus/ - role.metplus * - Hera - /scratch3/BMC/dtc/METplus/ - role.metplus * - Jet - /mnt/lfs6/HFIP/dtc-hurr/METplus/sample_data/ - role.metplus * - Gaea - /ncrc/proj/nggps_psd/METplus/sample_data - personal * - Orion - /work/noaa/ovp/METplus/sample_data - role-ovp * - Hercules - /work/noaa/ovp/METplus/sample_data - role-ovp Installation Location --------------------- The table below lists the system name, the location for the METplus installation and the account used for the installation. .. list-table:: * - **System** - **Location** - **Account Access** * - Ursa - /contrib/METplus - role.metplus * - Hera - /contrib/METplus - role.metplus * - Jet - /contrib/met/METplus - role.metplus * - Gaea - /usw/met/METplus - personal * - Orion - /apps/contrib/MET/METplus - role-ovp * - Hercules - /apps/contrib/MET/METplus - role-ovp Installation Process -------------------- Download the desired version of METplus: .. code-block:: wget https://github.com/dtcenter/METplus/archive/refs/tags/vX.Y.Z.tar.gz .. note:: The :code:`wget` command above will get the **vX.Y.Z** release. Replace the *X.Y.Z* with the desired version numbers, which may take the format of *X.Y.Z-betaN* or the *X.Y.Z-rcN*. Unpack the tar files package and remove the .tgz file: .. code-block:: tar -zxf vX.Y.X.tar.gz rm vX.Y.Z.tar.gz Open the METplus-X.Y.Z/parm/metplus_config/defaults.conf file using the editor of your choice and update the values for :code:`MET_INSTALL_DIR` and :code:`INPUT_BASE`. Update the location of :code:`MET_INSTALL_DIR` to be the location of the recent MET installation. For example, **/contrib/met/X.Y.Z**, **/contrib/met/X.Y.Z-betaN**, or **/contrib/met/X.Y.Z-rcN**. Update the location of :code:`INPUT_BASE` to be the location for the corresponding version of the METplus sample data. For example, **/contrib/METplus/METplus-X.Y_sample_data**. Create a Modulefile ------------------- The table below lists the system name, the location for the METplus modulefile, and the account used for the installation. .. list-table:: * - **System** - **Location** - **Account Access** * - Ursa - /contrib/METplus/modulefiles/metplus - role.metplus * - Hera - /contrib/METplus/modulefiles/metplus - role.metplus * - Jet - /contrib/met/METplus/modulefiles/metplus - role.metplus * - Gaea - /usw/met/METplus/modulefiles/metplus - personal * - Orion - /apps/contrib/modulefiles/metplus - role-ovp * - Hercules - /apps/contrib/modulefiles/metplus - role-ovp Download the existing installation modulefile for the appropriate system. These modulefiles are located in the `METplus GitHub repository `_ in the **internal/scripts/installation/modulefiles** directory and are named with the format *_*. For example, *6.1.0_jet* or *6.1.0_ursa*. To download the file for **Ursa** for METplus version X.Y.Z, for example, run: .. code-block:: wget https://raw.githubusercontent.com/dtcenter/METplus/refs/heads/main_vX.Y/internal/scripts/installation/modulefiles/X.Y.Z_ursa .. note:: The :code:`wget` command above will get the modulefile for the METplus X.Y.Z release. Replace the *main_v6.1* with the actual version numbers or with *develop* for a **beta** or **rc** release, and the *X.Y.Z* in the *X.Y.Z_* filename with tha actual version numbers. .. warning:: Note that the link above links to the **RAW** content of the file. It is essential to download the raw format, otherwise the file will contain unwanted HTML information and will not work appropriately. If installing an official release, rename the file simply X.Y.Z. For example: .. code-block:: mv X.Y.Z_ursa X.Y.Z If installing a beta release, rename the file X.Y.Z-betaN. For example: .. code-block:: mv X.Y.Z_ursa X.Y.Z-betaN Open the file using the editor of your choice and change any references to X.Y.Z to X.Y.Z-betaN. Save the file. If installing a rc release, rename the file X.Y.Z-rcN. For example: .. code-block:: mv X.Y.Z_ursa X.Y.Z-rcN Open the file using the editor of your choice and change any references to X.Y.Z to X.Y.Z-rcN. Save the file. **Review the file to ensure no other updates need to be made.** Installing METdataio ==================== Installation Location --------------------- The table below lists the system name, the location for the METdataio installation and the account used for the installation. .. list-table:: * - **System** - **Location** - **Account Access** * - Ursa - /contrib/METdataio - role.metplus * - Hera - /contrib/METdataio - role.metplus * - Jet - /contrib/met/METdataio - role.metplus * - Gaea - /usw/met/METdataio - personal * - Orion - /apps/contrib/MET/METdataio - role-ovp * - Hercules - /apps/contrib/MET/METdataio - role-ovp Installation Process -------------------- Download the desired version of METdataio: .. code-block:: wget https://github.com/dtcenter/METdataio/archive/refs/tags/vX.Y.Z.tar.gz .. note:: The :code:`wget` command above will get the **vX.Y.Z** release. Replace the *X.Y.Z* with the desired version numbers, which may take the format of *X.Y.Z-betaN* or the *X.Y.Z-rcN*. Unpack the tar files package and remove the .tgz file: .. code-block:: tar -zxf vX.Y.Z.tar.gz rm vX.Y.Z.tar.gz Create a Modulefile ------------------- The table below lists the system name, the location for the METdataio modulefile, and the account used for the installation. .. list-table:: * - **System** - **Location** - **Account Access** * - Ursa - /contrib/METdataio/modulefiles/metdataio - role.metplus * - Hera - /contrib/METdataio/modulefiles/metdataio - role.metplus * - Jet - /contrib/met/METdataio/modulefiles/metdataio - role.metplus * - Gaea - /usw/met/METdataio/modulefiles/metdataio - personal * - Orion - /apps/contrib/modulefiles/metdataio - role-ovp * - Hercules - /apps/contrib/modulefiles/metdataio - role-ovp Download the existing installation modulefile for the appropriate system. These modulefiles are located in the `METdataio GitHub repository `_ in the **internal/scripts/installation/modulefiles** directory and are named with the format *_*. For example, *3.1.0_jet* or *3.1.0_ursa*. To download the file for **Ursa** for METdataio version X.Y.Z, for example, run: .. code-block:: wget https://raw.githubusercontent.com/dtcenter/METdataio/refs/heads/main_vX.Y/internal/scripts/installation/modulefiles/X.Y.Z_ursa .. note:: The :code:`wget` command above will get the modulefile for the METdataio X.Y.Z release. Replace the *main_vX.Y* with the actual version numbers or with *develop* for a betaN or rcN release and the *X.Y.Z* in the *X.Y.Z_* filename with the actual version numbers. .. warning:: Note that the link above links to the **RAW** content of the file. It is essential to download the raw format, otherwise the file will contain unwanted HTML information and will not work appropriately. If installing an official release, rename the file simply X.Y.Z. For example: .. code-block:: mv X.Y.Z_ursa X.Y.Z If installing a beta release, rename the file X.Y.Z-betaN. For example: .. code-block:: mv X.Y.Z_ursa X.Y.Z-betaN Open the file using the editor of your choice and change any references to X.Y.Z to X.Y.Z-betaN. Save the file. If installing a rc release, rename the file X.Y.Z-rcN. For example: .. code-block:: mv X.Y.Z_ursa X.Y.Z-rcN Open the file using the editor of your choice and change any references to X.Y.Z to X.Y.Z-rcN. Save the file. **Review the file to ensure no other updates need to be made.** Installing METcalcpy ==================== Installation Location --------------------- The table below lists the system name, the location for the METcalcpy installation and the account used for the installation. .. list-table:: * - **System** - **Location** - **Account Access** * - Ursa - /contrib/METcalcpy - role.metplus * - Hera - /contrib/METcalcpy - role.metplus * - Jet - /contrib/met/METcalcpy - role.metplus * - Gaea - /usw/met/METcalcpy - personal * - Orion - /apps/contrib/MET/METcalcpy - role-ovp * - Hercules - /apps/contrib/MET/METcalcpy - role-ovp Installation Process -------------------- Download the desired version of METcalcpy: .. code-block:: wget https://github.com/dtcenter/METcalcpy/archive/refs/tags/vX.Y.Z.tar.gz .. note:: The :code:`wget` command above will get the **vX.Y.Z** release. Replace the *X.Y.Z* with the desired version numbers, which may take the format of *X.Y.Z-betaN* or the *X.Y.Z-rcN*. Unpack the tar files package and remove the .tgz file: .. code-block:: tar -zxf vX.Y.Z.tar.gz rm vX.Y.Z.tar.gz Create a Modulefile ------------------- The table below lists the system name, the location for the METcalcpy modulefile, and the account used for the installation. .. list-table:: * - **System** - **Location** - **Account Access** * - Ursa - /contrib/METcalcpy/modulefiles/metcalcpy - role.metplus * - Hera - /contrib/METcalcpy/modulefiles/metcalcpy - role.metplus * - Jet - /contrib/met/METcalcpy/modulefiles/metcalcpy - role.metplus * - Gaea - /usw/met/METcalcpy/modulefiles/metcalcpy - personal * - Orion - /apps/contrib/modulefiles/metcalcpy - role-ovp * - Hercules - /apps/contrib/modulefiles/metcalcpy - role-ovp Download the existing installation modulefile for the appropriate system. These modulefiles are located in the `METcalcpy GitHub repository `_ in the **internal/scripts/installation/modulefiles** directory and are named with the format *_*. For example, *3.1.0_jet* or *3.1.0_ursa*. To download the file for **Ursa** for METcalcpy version X.Y.Z, for example, run: .. code-block:: wget https://raw.githubusercontent.com/dtcenter/METcalcpy/refs/heads/main_vX.Y/internal/scripts/installation/modulefiles/X.Y.Z_ursa .. note:: The :code:`wget` command above will get the modulefile for the METcalcpy X.Y.Z release. Replace the *main_vX.Y* with the actual version numbers with *develop* for a betaN or rcN release, and replace the *X.Y.Z* in the *X.Y.Z_* filename with the actual version numbers. .. warning:: Note that the link above links to the **RAW** content of the file. It is essential to download the raw format, otherwise the file will contain unwanted HTML information and will not work appropriately. If installing an official release, rename the file simply X.Y.Z. For example: .. code-block:: mv X.Y.Z_ursa X.Y.Z If installing a beta release, rename the file X.Y.Z-betaN. For example: .. code-block:: mv X.Y.Z_ursa X.Y.Z-betaN Open the file using the editor of your choice and change any references to X.Y.Z to X.Y.Z-betaN. Save the file. If installing a rc release, rename the file X.Y.Z-rcN. For example: .. code-block:: mv X.Y.Z_ursa X.Y.Z-rcN Open the file using the editor of your choice and change any references to X.Y.Z to X.Y.Z-rcN. Save the file. **Review the file to ensure no other updates need to be made.** Installing METplotpy ==================== Installation Location --------------------- The table below lists the system name, the location for the METplotpy installation and the account used for the installation. .. list-table:: * - **System** - **Location** - **Account Access** * - Ursa - /contrib/METplotpy - role.metplus * - Hera - /contrib/METplotpy - role.metplus * - Jet - /contrib/met/METplotpy - role.metplus * - Gaea - /usw/met/METplotpy - personal * - Orion - /apps/contrib/MET/METplotpy - role-ovp * - Hercules - /apps/contrib/MET/METplotpy - role-ovp Installation Process -------------------- Download the desired version of METplotpy: .. code-block:: wget https://github.com/dtcenter/METplotpy/archive/refs/tags/vX.Y.Z.tar.gz .. note:: The :code:`wget` command above will get the **vX.Y.Z** release. Replace the *X.Y.Z* with the desired version numbers, which may take the format of *X.Y.Z-betaN* or the *X.Y.Z-rcN*. Unpack the tar files package and remove the .tgz file: .. code-block:: tar -zxf vX.Y.Z.tar.gz rm vX.Y.Z.tar.gz Create a Modulefile ------------------- The table below lists the system name, the location for the METplotpy modulefile, and the account used for the installation. .. list-table:: * - **System** - **Location** - **Account Access** * - Ursa - /contrib/METplotpy/modulefiles/metplotpy - role.metplus * - Hera - /contrib/METplotpy/modulefiles/metplotpy - role.metplus * - Jet - /contrib/met/METplotpy/modulefiles/metplotpy - role.metplus * - Gaea - /usw/met/METplotpy/modulefiles/metplotpy - personal * - Orion - /apps/contrib/modulefiles/metplotpy - role-ovp * - Hercules - /apps/contrib/modulefiles/metplotpy - role-ovp Download the existing installation modulefile for the appropriate system. These modulefiles are located in the `METplotpy GitHub repository `_ in the **internal/scripts/installation/modulefiles** directory and are named with the format *_*. For example, *3.1.0_jet* or *3.1.0_ursa*. To download the file for **Ursa** for METplotpy version X.Y.Z, for example, run: .. code-block:: wget https://raw.githubusercontent.com/dtcenter/METplotpy/refs/heads/main_vX.Y/internal/scripts/installation/modulefiles/X.Y.Z_ursa .. note:: The :code:`wget` command above will get the modulefile for the METplotpy X.Y.Z release. Replace the *main_vX.Y* with the actual version numbers or with *develop* for a betaN or rcN release and the *X.Y.Z* in the *X.Y.Z_* filename with the actual version numbers. .. warning:: Note that the link above links to the **RAW** content of the file. It is essential to download the raw format, otherwise the file will contain unwanted HTML information and will not work appropriately. If installing an official release, rename the file simply X.Y.Z. For example: .. code-block:: mv X.Y.Z_ursa X.Y.Z If installing a beta release, rename the file X.Y.Z-betaN. For example: .. code-block:: mv X.Y.Z_ursa X.Y.Z-betaN Open the file using the editor of your choice and change any references to X.Y.Z to X.Y.Z-betaN. Save the file. If installing a rc release, rename the file X.Y.Z-rcN. For example: .. code-block:: mv X.Y.Z_ursa X.Y.Z-rcN Open the file using the editor of your choice and change any references to X.Y.Z to X.Y.Z-rcN. Save the file. **Review the file to ensure no other updates need to be made.** Test the Installation ===================== Use the `Existing Builds `_ page for the latest release as an example to see how to load the modulefiles for the system where the software was installed. Run the commands to load the modulefiles that were just created to ensure they load with no errors. Troubleshoot any errors received until all modules load successfully. Update the Existing Builds Section ================================== Update the Existing Builds section in the `METplus GitHub Repository `_ in the **docs/Users_Guide/existing_builds.rst** file for the appropriate branch with an information that needs to be updated, including the *Last updated:* date. For example: * If installing an official release, update in the *main_X.Y* branch. * If installing a betaN release, update in the *develop* branch. * If installing a rcN release, update in both the *main_X.Y* branch AND the *develop* branch.