Skip to content

Commit

Permalink
machines: add conda environment for macOS and Linux
Browse files Browse the repository at this point in the history
  • Loading branch information
phil-blain committed Feb 6, 2020
1 parent 0962a6d commit 601037c
Show file tree
Hide file tree
Showing 6 changed files with 171 additions and 0 deletions.
5 changes: 5 additions & 0 deletions configuration/scripts/icepack.batch.csh
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,11 @@ cat >> ${jobfile} << EOFB
# nothing to do
EOFB

else if (${ICE_MACHINE} =~ conda*) then
cat >> ${jobfile} << EOFB
# nothing to do
EOFB

else
echo "${0} ERROR: ${ICE_MACHINE} unknown"
exit -1
Expand Down
35 changes: 35 additions & 0 deletions configuration/scripts/machines/Macros.conda_linux
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#==============================================================================
# Makefile macros for conda environment, GNU/Linux systems
#==============================================================================

# Preprocessor macros
CPPDEFS := -DFORTRANUNDERSCORE ${ICE_CPPDEFS}

# Flags for the C compiler
CFLAGS := -c -O2

# Flags for the Fortran compiler
FREEFLAGS := -ffree-form
FFLAGS := -fconvert=big-endian -fbacktrace -ffree-line-length-none

# Additional flags for the Fortran compiler when compiling in debug mode
ifeq ($(ICE_BLDDEBUG), true)
FFLAGS += -O0 -g -fcheck=bounds -finit-real=nan -fimplicit-none -ffpe-trap=invalid,zero,overflow
else
FFLAGS += -O2
endif

# C and Fortran compilers
SCC := gcc
SFC := gfortran
CC := $(SCC)
FC := $(SFC)
LD := $(FC)

# Necessary flag to compile with OpenMP support
ifeq ($(ICE_THREADED), true)
LDFLAGS += -fopenmp
CFLAGS += -fopenmp
FFLAGS += -fopenmp
endif

38 changes: 38 additions & 0 deletions configuration/scripts/machines/Macros.conda_macos
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#==============================================================================
# Makefile macros for conda environment, macOS systems
#==============================================================================

# Preprocessor macros
CPPDEFS := -DFORTRANUNDERSCORE ${ICE_CPPDEFS}

# Flags for the C compiler
CFLAGS := -c -O2

# Flags for the Fortran compiler
FREEFLAGS := -ffree-form
FFLAGS := -fconvert=big-endian -fbacktrace -ffree-line-length-none

# Additional flags for the Fortran compiler when compiling in debug mode
ifeq ($(ICE_BLDDEBUG), true)
FFLAGS += -O0 -g -fcheck=bounds -finit-real=nan -fimplicit-none -ffpe-trap=invalid,zero,overflow
else
FFLAGS += -O2
endif

# C and Fortran compilers
SCC := clang
SFC := gfortran
CC := $(SCC)
FC := $(SFC)
LD := $(FC)

# Location of the system C header files (required on recent macOS to compile makdep)
CFLAGS_HOST = -isysroot$(shell xcrun --show-sdk-path)

# Necessary flag to compile with OpenMP support
ifeq ($(ICE_THREADED), true)
LDFLAGS += -fopenmp
CFLAGS += -fopenmp
FFLAGS += -fopenmp
endif

41 changes: 41 additions & 0 deletions configuration/scripts/machines/env.conda_linux
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#!/bin/csh -f

set inp = "undefined"
if ($#argv == 1) then
set inp = $1
endif

if ("$inp" != "-nomodules") then

# Init conda
if ! $?CONDA_EXE then
echo ""
echo "${0}: conda executable not found, see the Icepack documentation for how to initialize your login shell to use conda"
echo ""
exit 1
endif
source `$CONDA_EXE info --base`/etc/profile.d/conda.csh
# Activate "icepack" conda environment
conda activate icepack
if $status then
echo ""
echo "${0}: 'icepack' conda environment not found, see the Icepack documentation for how to create the conda icepack env"
echo ""
exit 1
endif

endif

setenv ICE_MACHINE_ENVNAME conda
setenv ICE_MACHINE_COMPILER linux
setenv ICE_MACHINE_MAKE make
setenv ICE_MACHINE_WKDIR $HOME/icepack-dirs/runs
setenv ICE_MACHINE_INPUTDATA $HOME/icepack-dirs/input
setenv ICE_MACHINE_BASELINE $HOME/icepack-dirs/baseline
setenv ICE_MACHINE_SUBMIT " "
setenv ICE_MACHINE_TPNODE 4
setenv ICE_MACHINE_ACCT P0000000
setenv ICE_MACHINE_QUEUE "debug"
setenv ICE_MACHINE_BLDTHRDS 4
setenv ICE_MACHINE_QSTAT " "

41 changes: 41 additions & 0 deletions configuration/scripts/machines/env.conda_macos
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#!/bin/csh -f

set inp = "undefined"
if ($#argv == 1) then
set inp = $1
endif

if ("$inp" != "-nomodules") then

# Init conda
if ! $?CONDA_EXE then
echo ""
echo "${0}: conda executable not found, see the Icepack documentation for how to initialize your login shell to use conda"
echo ""
exit 1
endif
source `$CONDA_EXE info --base`/etc/profile.d/conda.csh
# Activate "icepack" conda environment
conda activate cice
if $status then
echo ""
echo "${0}: 'cice' conda environment not found, see the Icepack documentation for how to create the conda icepack env"
echo ""
exit 1
endif

endif

setenv ICE_MACHINE_ENVNAME conda
setenv ICE_MACHINE_COMPILER macos
setenv ICE_MACHINE_MAKE make
setenv ICE_MACHINE_WKDIR $HOME/icepack-dirs/runs
setenv ICE_MACHINE_INPUTDATA $HOME/icepack-dirs/input
setenv ICE_MACHINE_BASELINE $HOME/icepack-dirs/baseline
setenv ICE_MACHINE_SUBMIT " "
setenv ICE_MACHINE_TPNODE 4
setenv ICE_MACHINE_ACCT P0000000
setenv ICE_MACHINE_QUEUE "debug"
setenv ICE_MACHINE_BLDTHRDS 4
setenv ICE_MACHINE_QSTAT " "

11 changes: 11 additions & 0 deletions configuration/scripts/machines/environment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: icepack
channels:
- conda-forge
- nodefaults
dependencies:
# Build dependencies
- compilers
- make
# Python dependencies for building the HTML documentation
- sphinx
- sphinxcontrib-bibtex

0 comments on commit 601037c

Please sign in to comment.