All Platforms System Requirements

  • CMOR 3.8.0 on conda-forge has support for Python 3.8, 3.9, 3.10, 3.11, and 3.12.

  • CDMS2 is no longer supported by conda-forge or nightly builds.
  • See the source installation instructions to build CMOR with CDMS2 support.

  • Anaconda

  • Make sure anaconda is in your PATH (assuming ananconda is installed in ${HOME}/anaconda)

    export PATH=${HOME}/anaconda/bin:${PATH} # for [ba]sh
    setenv PATH ${HOME}/anaconda/bin:${PATH} # for [t]csh
    

Installing CMOR and PrePARE

  • Run the following commands

    # install cmor
    # ------------------------------------------------
    conda create -n CMOR -c conda-forge cmor
    conda activate CMOR
    
    # Clone the CMIP6 table to your working directory.
    # ------------------------------------------------
    mkdir CMIP6_work
    cd  CMIP6_work
    git clone https://github.com/PCMDI/cmip6-cmor-tables.git
    
    # Note:
    # -----------------------------------------------------------
    # UDUNITS2_XML_PATH is set automatically by activating CMOR. 
    # export UDUNITS2_XML_PATH=${CONDA_PREFIX}/share/udunits/udunits2.xml
    #
    

Testing

  • Run the full test suite for C, Fortran, and Python

    Clone CMOR code and CMIP6 tables

    # Clone the CMOR repository to your working directory.
    # ------------------------------------------------
    git clone https://github.com/PCMDI/cmor.git
    cd cmor
    
    # Update the CMIP6 tables submodule.
    # ------------------------------------------------
    git submodule init
    git submodule update
    

    Install gcc and gfortran and linking environment variable

    Linux:

    conda install -n CMOR -c conda-forge gcc_linux-64 gfortran_linux-64
    export LDSHARED_FLAGS="-shared -pthread"
    

    Mac:

    conda install -n CMOR -c conda-forge clang_osx-64 gfortran_osx-64
    export LDSHARED_FLAGS=" -bundle -undefined dynamic_lookup"
    

    Build and run tests

    # Set prefix for configure step.
    # ------------------------------------------------
    export PREFIX=$(python -c "import sys; print(sys.prefix)")
    
    # Configure the Makefile.
    # ------------------------------------------------
    ./configure --prefix=$PREFIX --with-python --with-uuid=$PREFIX --with-json-c=$PREFIX --with-udunits2=$PREFIX --with-netcdf=$PREFIX  --enable-verbose-test
    
    # Run the tests with the Makefile (without rebuilding CMOR).
    # ------------------------------------------------
    make test -o cmor -o python
    

Conda environment

Obtaining Nighlty builds

  • Create a dedicated environment for nightly (in between releases code):
    conda create -n [YOUR_ENV_NAME_HERE] -c pcmdi/label/nightly -c conda-forge cmor
    source activate [YOUR_ENV_NAME_HERE]
    
  • Create an environment with compilers for development/testing:
    conda create -n [YOUR_ENV_NAME_HERE] -c pcmdi/label/nightly -c conda-forge cmor gcc_linux-64 gfortran_linux-64
    source activate [YOUR_ENV_NAME_HERE]
    
Tags: conda