forked from ESCOMP/CAM-SIMA
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile.esmf
54 lines (48 loc) · 1.71 KB
/
Dockerfile.esmf
1
2
3
4
5
6
7
8
9
10
11
12
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
52
53
54
# parts of CAM require x86 architecture (gptl, which relies on the rdtsc x86 assembly instruction)
FROM --platform=linux/amd64 fedora:latest
###################################################
## Install necessary packages
###################################################
RUN dnf -y update \
&& dnf -y install \
blas-devel \
cmake \
gcc-c++ \
gcc-gfortran \
lapack-devel \
netcdf-devel \
netcdf-fortran-devel \
make \
mpich \
mpich-devel \
wget \
&& dnf clean all
###################################################
## Make sure the mpi compilers can be found
###################################################
ENV PATH="${PATH}:/usr/lib64/mpich/bin/"
ENV OMP_NUM_THREADS=5
###################################################
## Build and install ESMF
###################################################
ENV ESMF_TAG="8.6.0"
# set necessary environment variables
ENV ESMF_DIR=/esmf-${ESMF_TAG}
ENV ESMF_COMM=mpich3
ENV ESMF_BOPT="g"
ENV ESMF_NETCDF="nc-config"
ENV ESMF_NETCDFF_INCLUDE=/usr/lib64/gfortran/modules
ENV ESMF_INSTALL_PREFIX=/usr/local
ENV ESMF_INSTALL_BINDIR=${ESMF_INSTALL_PREFIX}/bin
ENV ESMF_INSTALL_DOCDIR=${ESMF_INSTALL_PREFIX}/doc
ENV ESMF_INSTALL_HEADERDIR=${ESMF_INSTALL_PREFIX}/include
ENV ESMF_INSTALL_LIBDIR=${ESMF_INSTALL_PREFIX}/lib
ENV ESMF_INSTALL_MODDIR=${ESMF_INSTALL_PREFIX}/mod
ENV ESMF_TESTEXHAUSTIVE="OFF"
RUN wget -q https://github.com/esmf-org/esmf/archive/refs/tags/v${ESMF_TAG}.tar.gz && \
tar zxf v${ESMF_TAG}.tar.gz && \
cd esmf-${ESMF_TAG} && \
# This command lets you see what esmf thinks its build options are but may not necessary to build, not sure
make info && \
make -j 8 && \
make install