diff --git a/cesm/2.2.2/24.03-lts/Dockerfile b/cesm/2.2.2/24.03-lts/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..ec18904243e20516eb9ac50fd224fafd1255b402 --- /dev/null +++ b/cesm/2.2.2/24.03-lts/Dockerfile @@ -0,0 +1,86 @@ +ARG BASE=openeuler/openeuler:24.03-lts +FROM ${BASE} + +ARG VERSION=2.2.2 + +RUN yum update -y && \ + yum install -y libcurl-devel m4 zlib-devel git perl make gcc g++ gfortran wget && \ + ln -sf /usr/bin/python3 /usr/bin/python + +WORKDIR /tmp/sources + +# Install all dependecy +RUN wget -O mpich-3.3.2.tar.gz http://www.mpich.org/static/downloads/3.3.2/mpich-3.3.2.tar.gz && \ + tar zxf mpich-3.3.2.tar.gz && \ + cd mpich-3.3.2 && \ + ./configure \ + --prefix=/usr/local \ + FFLAGS="-w -fallow-argument-mismatch -O2" && \ + make -j "$(nproc)" install +RUN wget -O hdf5-1.12.0.tar.gz https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.0/src/hdf5-1.12.0.tar.gz && \ + tar zxf hdf5-1.12.0.tar.gz && \ + cd hdf5-1.12.0 && \ + ./configure --prefix=/usr/local && \ + make -j "$(nproc)" install +RUN wget -O netcdf-c.tar.gz https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.7.4.tar.gz && \ + mkdir -p netcdf-c && tar vxf netcdf-c.tar.gz -C netcdf-c --strip-components=1 && \ + cd netcdf-c && ./configure --prefix=/usr/local && \ + make -j "$(nproc)" install && \ + ldconfig +RUN wget -O netcdf-fortran.tar.gz https://github.com/Unidata/netcdf-fortran/archive/refs/tags/v4.5.3.tar.gz && \ + mkdir netcdf-fortran && tar -zvxf netcdf-fortran.tar.gz -C netcdf-fortran --strip-components=1 && \ + cd netcdf-fortran && \ + LDFLAGS="-L/usr/local/lib" \ + CPPFLAGS="-I/usr/local/include" \ + LD_LIBRARY_PATH=/usr/local/lib:${LD_LIBRARY_PATH} \ + ./configure --prefix=/usr/local && \ + make -j "$(nproc)" install && \ + ldconfig +RUN wget -O pnetcdf-1.12.1.tar.gz https://parallel-netcdf.github.io/Release/pnetcdf-1.12.1.tar.gz && \ + tar zxf pnetcdf-1.12.1.tar.gz && \ + cd pnetcdf-1.12.1 && \ + ./configure \ + --prefix=/usr/local \ + FCFLAGS="-w -fallow-argument-mismatch -O2" \ + FFLAGS="-w -fallow-argument-mismatch -O2" && \ + make -j "$(nproc)" install && \ + ldconfig && \ + rm -rf /tmp/sources + +# Install cesm2 +WORKDIR /opt/ncar +RUN yum install -y subversion cmake lapack-devel blas-devel perl-XML-LibXML && \ + git clone -b release-cesm${VERSION} https://github.com/ESCOMP/cesm.git cesm2 && \ + cd cesm2 && \ + ./manage_externals/checkout_externals + +# Set up the environment - create the group and user, the shell variables, the input data directory and access: +RUN echo 'export CESMDATAROOT=${HOME}' | tee /etc/profile.d/escomp.sh && \ + echo 'export CIME_MACHINE=container' | tee -a /etc/profile.d/escomp.sh && \ + echo 'export USER=$(whoami)' | tee -a /etc/profile.d/escomp.sh && \ + echo 'export PS1="[\u@cesm \W]\$ "' | tee -a /etc/profile.d/escomp.sh && \ + echo 'ulimit -s unlimited' | tee -a /etc/profile.d/escomp.sh && \ + echo 'export PATH=${PATH}:/opt/ncar/cesm2/cime/scripts' | tee -a /etc/profile.d/escomp.sh + +# Get config files +RUN git clone https://github.com/ESCOMP/ESCOMP-Containers.git /containers && \ + cp -rf /containers/CESM/2.2/Files/config_machines.xml /opt/ncar/cesm2/cime/config/cesm/machines/ && \ + cp -rf /containers/CESM/2.2/Files/config_inputdata.xml /opt/ncar/cesm2/cime/config/cesm/ && \ + cp -rf /containers/CESM/2.2/Files/case_setup.py /opt/ncar/cesm2/cime/scripts/lib/CIME/case/case_setup.py && \ + cp -rf /containers/CESM/2.2/Files/config_compsets.xml /opt/ncar/cesm2/cime_config/ && \ + cp -rf /containers/CESM/2.2/Files/config_pes.xml /opt/ncar/cesm2/cime_config/ && \ + cp -rf /containers/CESM/2.2/Files/configs/cam/config_pes.xml /opt/ncar/cesm2/components/cam/cime_config/ && \ + cp -rf /containers/CESM/2.2/Files/configs/cice/config_pes.xml /opt/ncar/cesm2/components/cice/cime_config/ && \ + cp -rf /containers/CESM/2.2/Files/configs/cism/config_pes.xml /opt/ncar/cesm2/components/cism/cime_config/ && \ + cp -rf /containers/CESM/2.2/Files/configs/pop/config_pes.xml /opt/ncar/cesm2/components/pop/cime_config/ && \ + cp -rf /containers/CESM/2.2/Files/configs/clm/config_pes.xml /opt/ncar/cesm2/components/clm/cime_config/ && \ + cp -rf /containers/CESM/2.2/Files/micro_mg3_0.F90 /opt/ncar/cesm2/components/cam/src/physics/pumas/micro_mg3_0.F90 && \ + cp -rf /containers/CESM/2.2/Files/scam_shell_commands /opt/ncar/cesm2/components/cam/cime_config/usermods_dirs/scam_mandatory/shell_commands && \ + cp -rf /containers/CESM/2.2/Files/create_scam6_iop /opt/ncar/cesm2/components/cam/bld/scripts && \ + rm -rf /containers + +COPY config_compilers.xml /opt/ncar/cesm2/cime/config/cesm/machines/ + +ENV CESMROOT=/opt/ncar/cesm2 + +CMD ["/bin/bash", "-l"] \ No newline at end of file diff --git a/cesm/2.2.2/24.03-lts/config_compilers.xml b/cesm/2.2.2/24.03-lts/config_compilers.xml new file mode 100644 index 0000000000000000000000000000000000000000..6f58e588ca9c30e4077eae611a4ecdab800bacb9 --- /dev/null +++ b/cesm/2.2.2/24.03-lts/config_compilers.xml @@ -0,0 +1,1383 @@ + + + + + + + + -DCESMCOUPLED + -D_USE_FLOW_CONTROL + -DSPMD + + + + -I$(EXEROOT)/atm/obj/FMS + + + $(FC_AUTO_R8) + $(FC_AUTO_R8) -Duse_LARGEFILE + + FALSE + + + + + mpicc + mpicxx + mpif90 + clang + clang++ + flang + + -DCPRLLVM + -DHAVE_VPRINTF -DHAVE_BACKTRACE -DHAVE_SLASHPROC -DHAVE_COMM_F2C -DHAVE_TIMES -DHAVE_GETTIMEOFDAY + + + + + + -std=gnu99 + -fopenmp + -g -Wall -Og -fbacktrace -ffpe-trap=invalid,zero,overflow -fcheck=bounds + -O + + + + -DFORTRANUNDERSCORE -DNO_R16 -DCPRGNU + + FORTRAN + + -fdefault-real-8 + + + + -fconvert=big-endian -ffree-line-length-none -ffixed-line-length-none + -fopenmp + + -g -Wall -Og -fbacktrace -ffpe-trap=zero,overflow -fcheck=bounds + -O + + + -O0 + + + -ffixed-form + + + -ffree-form + + FALSE + + -fopenmp + + mpicc + mpicxx + mpif90 + gcc + g++ + gfortran + TRUE + + + + + + + + -h noomp + -g -O0 + -O2 + + + + -DFORTRANUNDERSCORE -DNO_R16 -DCPRCRAY + -DDIR=NOOP + -DDIR=NOOP + + + -s real64 + + + -f free -N 255 -h byteswapio -x dir + -h noomp + -g -O0 -K trap=fp -m1 + -O2,ipa2 -em + + + -O1,fp2,ipa0,scalar0,vector0 + + TRUE + + -Wl,--allow-multiple-definition -h byteswapio + + + + + + -std=gnu99 + -fopenmp + -g -Wall -Og -fbacktrace -ffpe-trap=invalid,zero,overflow -fcheck=bounds + -O + + + + -DFORTRANUNDERSCORE -DNO_R16 -DCPRGNU + + FORTRAN + + -fdefault-real-8 + + + + -fconvert=big-endian -ffree-line-length-none -ffixed-line-length-none + -fopenmp + + -g -Wall -Og -fbacktrace -ffpe-trap=zero,overflow -fcheck=bounds + -O + + + -O0 + + + -ffixed-form + + + -ffree-form + + FALSE + + -fopenmp + + mpicc + mpicxx + mpif90 + gcc + g++ + gfortran + TRUE + + + + + + /usr/local + /usr/local + + + + -w -fallow-argument-mismatch -O2 + -fallow-invalid-boz + + + -lnetcdf -lnetcdff -llapack -lblas + + + + + + -g -qfullpath -qmaxmem=-1 + -O3 + -qsmp=omp + -qsmp=omp:noopt + + + + -DFORTRAN_SAME -DCPRIBM + + -WF,-D + + -qrealsize=8 + + + -g -qfullpath -qmaxmem=-1 + -O2 -qstrict -qinline=auto + -qsmp=omp + -qinitauto=7FF7FFFF -qflttrap=ov:zero:inv:en + -qsmp=omp:noopt + -C + + + -qsuffix=f=f -qfixed=132 + + + -qsuffix=f=f90:cpp=F90 + + TRUE + + -qsmp=omp + -qsmp=omp:noopt + + + + + + -qno-opt-dynamic-align -fp-model precise -std=gnu99 + -qopenmp + -O2 -debug minimal + -O0 -g + + + + -DFORTRANUNDERSCORE -DCPRINTEL + + + -cxxlib + + FORTRAN + + -r8 + + + -qno-opt-dynamic-align -convert big_endian -assume byterecl -ftz -traceback -assume realloc_lhs -fp-model source + -qopenmp + -O0 -g -check uninit -check bounds -check pointers -fpe0 -check noarg_temp_created + -O2 -debug minimal + + + -O0 + + + -fixed + + + -free + + + -qopenmp + + mpicc + mpicxx + mpif90 + icc + icpc + ifort + + -mkl=cluster + -mkl=cluster + -mkl=cluster + -mkl=cluster + -mkl=cluster + -mkl=cluster + -mkl=cluster + -mkl + + TRUE + + + + + -std=gnu99 + -g + + + -DFORTRANUNDERSCORE -DNO_CRAY_POINTERS -DNO_SHR_VMATH -DCPRNAG + + + -r8 + + + + + -Wp,-macro=no_com -convert=BIG_ENDIAN -indirect $ENV{CIMEROOT}/config/cesm/machines/nag_mpi_argument.txt + + -ieee=full -O2 + + + -C=all -g -time -f2003 -ieee=stop + -gline + + -mismatch_all + + + -O0 + + + -fixed + + + -free + + FALSE + mpicc + mpif90 + gcc + nagfor + + + -lpthread + + + FCLIBS="-Wl,--as-needed,--allow-shlib-undefined -L$(COMPILER_PATH)/lib/NAG_Fortran -lf62rts" + + + + + + + -gopt -time + -mp + + + + + + + + + + + + + + + + + + + + + + + + + + + + -DFORTRANUNDERSCORE -DNO_SHR_VMATH -DNO_R16 -DCPRPGI + + CXX + + -r8 + + + -i4 -gopt -time -Mextend -byteswapio -Mflushz -Kieee + -mp + -O0 -g -Ktrap=fp -Mbounds -Kieee + -Mnovect + -Mnovect + -Mnovect + -Mnovect + -Mnovect + -Mnovect + + + -O0 + + + -Mfixed + + + -Mfree + + + + FALSE + + -time -Wl,--allow-multiple-definition + -mp + + mpicc + mpicxx + mpif90 + pgcc + pgc++ + pgf95 + + + + + -qarch=auto -qtune=auto -qcache=auto + + /usr/bin/bash + + -qarch=auto -qtune=auto -qcache=auto -qsclk=micro + -qspill=6000 + + + -qsigtrap=xl__trcedump + -bdatapsize:64K -bstackpsize:64K -btextpsize:32K + + mpcc_r + mpxlf2003_r + cc_r + xlf2003_r + + -lmassv -lessl + -lmass + + + + + + --build=powerpc-bgp-linux --host=powerpc64-suse-linux + + + -DLINUX + + + -g -qfullpath -qmaxmem=-1 -qspillsize=2500 -qextname=flush + -O3 -qstrict -qinline=auto + -qsmp=omp + -qsmp=omp:noopt + + + -Wl,--relax -Wl,--allow-multiple-definition + + + + + + -DCMAKE_SYSTEM_NAME=Catamount + + + -DLINUX + -DHAVE_NANOTIME -DBIT64 -DHAVE_VPRINTF -DHAVE_BACKTRACE -DHAVE_SLASHPROC -DHAVE_COMM_F2C -DHAVE_TIMES -DHAVE_GETTIMEOFDAY + + cc + CC + ftn + $ENV{NETCDF_DIR} + lustre + $ENV{PARALLEL_NETCDF_DIR} + cc + CC + ftn + + + + + -DSYSDARWIN + + + + + + -heap-arrays + + + + + + --host=Linux + + + -xCORE-AVX2 + + + -xCORE-AVX2 + + + -L$(NETCDF_DIR) -lnetcdff -Wl,--as-needed,-L$(NETCDF_DIR)/lib -lnetcdff -lnetcdf + + + -DHAVE_PAPI -DHAVE_SLASHPROC + + + -mkl + + + + + + + -DHAVE_NANOTIME -DBIT64 -DHAVE_VPRINTF -DHAVE_BACKTRACE -DHAVE_SLASHPROC -DHAVE_COMM_F2C -DHAVE_TIMES -DHAVE_GETTIMEOFDAY + + $ENV{NETCDF} + gpfs + $ENV{PNETCDF} + xiar + + cru + + + + + + -xHost + + + -DINTEL_MKL -DHAVE_SSE2 + + + -xHost + + + $(FC_AUTO_R8) -O3 -assume norealloc_lhs + + + $SHELL{${NETCDF_PATH}/bin/nc-config --flibs} + + mpiicpc + mpiicc + mpiifort + icc + ifort + $ENV{TRILINOS_PATH} + + + + + -DHAVE_PAPI + + lustre + + + + FALSE + + -dynamic -mkl=sequential -no-fma + + + -dynamic -mkl=sequential -no-fma + + + + + + -O2 + -nofma + + + -lmpichf90_pgi $ENV{PGI_PATH}/linux86-64/$ENV{PGI_VERSION}/lib/f90main.o + + + -O2 + -nofma + + TRUE + + + + + -I/project/s824/edavin/OASIS3-MCT_2.0/build.pgi/build/lib/mct -I/project/s824/edavin/OASIS3-MCT_2.0/build.pgi/build/lib/psmile.MPI1 + + + -llapack -lblas + -L/project/s824/edavin/OASIS3-MCT_2.0/build.pgi/lib -lpsmile.MPI1 -lscrip -lmct_oasis -lmpeu_oasis + + + + + + -I/project/s824/edavin/OASIS3-MCT_2.0/build.cray/build/lib/mct -I/project/s824/edavin/OASIS3-MCT_2.0/build.cray/build/lib/psmile.MPI1 + + + -L/project/s824/edavin/OASIS3-MCT_2.0/build.cray/lib -lpsmile.MPI1 -lscrip -lmct_oasis -lmpeu_oasis + + + + + -L$(NETCDF_PATH)/lib -Wl,-rpath,$(NETCDF_PATH)/lib -lnetcdff -lnetcdf + + + + + + -Mnofma -acc -ta=tesla:cc70 -Minfo=accel + -I$(EXEROOT)/ocn/obj/FMS + + + -Mnofma -acc -ta=tesla:cc70 -Minfo=accel + + + -acc -ta=tesla:cc70 -Minfo=accel + + + -llapack -lblas -ldl + -ldl + + + + + + + -DHAVE_NANOTIME -DBIT64 -DHAVE_VPRINTF -DHAVE_BACKTRACE -DHAVE_SLASHPROC -DHAVE_COMM_F2C -DHAVE_TIMES -DHAVE_GETTIMEOFDAY + + $ENV{NETCDF} + gpfs + $ENV{PNETCDF} + + + + + -DNO_MPIMOD + + + -ldl + + + + + + -qopt-report -xCORE_AVX2 -no-fma + + + -qopt-report -xCORE_AVX2 -no-fma + + + -DPIO_ENABLE_LOGGING=ON + + $ENV{CESMDATAROOT}/tools/pFUnit/pFUnit3.2.8_cheyenne_Intel17.0.1_noMPI_noOpenMP + $ENV{CESMDATAROOT}/tools/pFUnit/pFUnit3.2.8_cheyenne_Intel17.0.1_MPI_openMP + + TRUE + + + + + -llapack -lblas + -ldl + + + + + /vol/apps/hpc/stow/netcdf/4.4.1.1/gcc-6.3.0 + + -L${NETCDF_PATH}/lib -lnetcdf -lnetcdff -lpmi + + + + + + -O2 + + + --host=Linux + + + -DLINUX + + + -O2 + + $ENV{NETCDF_HOME} + lustre + + -L${NETCDF_PATH}/lib -lnetcdf -lnetcdff -lpmi -L$ENV{MKL_PATH} -lmkl_rt + + + + + + -O2 + + + --host=Linux + + + -DLINUX + + + -O2 + + $ENV{NETCDF_HOME} + lustre + + -L${NETCDF_PATH}/lib -lnetcdf -lnetcdff -lpmi + + + + + + --host=Linux + + + -xCORE-AVX2 + + + -xCORE-AVX2 + + + -L$(NETCDF_DIR) -lnetcdff -Wl,--as-needed,-L$(NETCDF_DIR)/lib -lnetcdff -lnetcdf + + + -DHAVE_SLASHPROC + + + -mkl + + + FALSE + + + + + --host=Linux + + + -xMIC-AVX512 + + + -xMIC-AVX512 + + + -L$(NETCDF_DIR) -lnetcdff -Wl,--as-needed,-L$(NETCDF_DIR)/lib -lnetcdff -lnetcdf + + + -DHAVE_SLASHPROC + + + -mkl -lmemkind -zmuldefs + + + FALSE + + + + + -O2 + + + --host=Linux + + + -DLINUX + + + -O2 + + $ENV{NETCDF_HOME} + lustre + + -L${NETCDF_PATH}/lib -lnetcdf -lnetcdff -lpmi + + + + + + -O2 + -nomp + + + --host=Linux + + + -DLINUX + + + -O2 + -nomp + + + -nomp + + $ENV{NETCDF_HOME} + lustre + + -L${NETCDF_PATH}/lib -lnetcdf -lnetcdff -lpmi + + + + + + -O2 + + + --host=Linux + + + -DHAVE_PAPI + + + -O2 + + + -L$ENV{NETCDF_DIR} -lnetcdff -Wl,--as-needed,-L$ENV{NETCDF_DIR}/lib -lnetcdff -lnetcdf + + + + + + -DLINUX + + $ENV{NETCDF} + lustre + $ENV{PNETCDF} + + -L$ENV{NETCDF}/lib -lnetcdf -lnetcdff + + + + + + -xCORE-AVX2 + + + -xCORE-AVX2 + + + -mkl + + + + + + -O2 + + + -O2 + + + + + + -DLINUX + + $ENV{NETCDF} + lustre + $ENV{PNETCDF} + + -L$ENV{NETCDF}/lib -lnetcdf -lnetcdff + + + + + + -xCORE-AVX2 + + + -xCORE-AVX2 + + + -mkl + + + + + + -O2 + + + -O2 + + + + + + -DLINUX + + $ENV{NETCDF} + lustre + $ENV{PNETCDF} + + -L$ENV{NETCDF}/lib -lnetcdf -lnetcdff + + + + + + -xCORE-AVX2 + + + -xCORE-AVX2 + + + -mkl + + + + + + -O2 + + + -O2 + + + + + + -DHAVE_NANOTIME -DBIT64 -DHAVE_VPRINTF -DHAVE_BACKTRACE -DHAVE_SLASHPROC -DHAVE_COMM_F2C -DHAVE_TIMES -DHAVE_GETTIMEOFDAY + + /usr/lib64 + mpich + $ENV{NETCDF_PATH} + + -L$NETCDF_PATH/lib -lnetcdff -lnetcdf + + + + + + -DHAVE_NANOTIME -DBIT64 -DHAVE_VPRINTF -DHAVE_BACKTRACE -DHAVE_SLASHPROC -DHAVE_COMM_F2C -DHAVE_TIMES -DHAVE_GETTIMEOFDAY + + /usr/lib64 + mpich + $ENV{NETCDF_PATH} + + -L$NETCDF_PATH/lib -lnetcdff -lnetcdf + + + + + /fs/cgd/csm/tools/pFUnit/pFUnit3.3.3_izumi_Intel19.0.1_noMPI_noOpenMP + + + + FORTRAN + TRUE + + + + + + -lifcore + + + -lifcore + -mcmodel medium + + + -lquadmath + -Wl,-rpath,${NETCDF_PATH}/lib + -Wl,-rpath,$ENV{COMPILER_PATH}/lib/intel64 + -Wl,-rpath,$ENV{COMPILER_PATH}/mkl/lib/intel64 + -Wl,-rpath,$ENV{MPI_PATH}/lib + -lifcore + + + -mkl=cluster + + /fs/cgd/csm/tools/pFUnit/pFUnit3.2.8_hobart_Intel15.0.2_noMPI_noOpenMP + + + + + -O0 + + + -O0 + + + -lgomp + -Wl,-R${NETCDF_PATH}/lib + -Wl,-R$ENV{COMPILER_PATH}/lib + -Wl,-R$ENV{COMPILER_PATH}/libso + + + + + + -lm -ldl + + + + + + + -framework Accelerate -Wl,-rpath $(NETCDF)/lib + + + + + + + -DHAVE_NANOTIME -DBIT64 -DHAVE_VPRINTF -DHAVE_BACKTRACE -DHAVE_SLASHPROC -DHAVE_COMM_F2C -DHAVE_TIMES -DHAVE_GETTIMEOFDAY + + $ENV{NETCDF} + gpfs + $ENV{PNETCDF} + + + + -vec-report + + + -vec-report + + + -DPIO_ENABLE_LOGGING=ON + + + + + + -DHAVE_VPRINTF -DHAVE_TIMES -DHAVE_GETTIMEOFDAY + + + -lnetcdff -lnetcdf -mkl + + + -ftrapuv + + + -ftrapuv + + $ENV{NETCDF_DIR} + /global/software/sl-6.x86_64/modules/intel/2016.1.150/lapack/3.6.0-intel/lib + + + + + -DHAVE_VPRINTF -DHAVE_TIMES -DHAVE_GETTIMEOFDAY + + + -lnetcdff -lnetcdf -mkl + + + -ftrapuv + + + -ftrapuv + + $ENV{NETCDF_DIR} + /global/software/sl-6.x86_64/modules/intel/2016.1.150/lapack/3.6.0-intel/lib + + + + /projects/install/rhel6-x86_64/ACME/AlbanyTrilinos/Albany/build/install + + -O2 + + + --host=Linux + + + -lstdc++ -lmpi_cxx + + + -O2 + + $ENV{NETCDFROOT} + $ENV{PNETCDFROOT} + + $SHELL{${NETCDF_PATH}/bin/nf-config --flibs} -lblas -llapack + + + + + + -qfloat=nomaf + + + -qfloat=nomaf + + $ENV{HDF5} + + + /home/pkcoff/mpich-sandboxes/master/install-production/bin/mpixlf77_r + /home/pkcoff/mpich-sandboxes/master/install-production/bin/mpixlc_r + /home/pkcoff/mpich-sandboxes/master/install-production/bin/mpixlf2003_r + /soft/libraries/netcdf/4.3.3-f4.4.1/cnk-xl/current/ + gpfs + /soft/libraries/pnetcdf/1.6.1/cnk-xl/current/ + /home/pkcoff/mpich-sandboxes/master/install-production/bin/mpixlc_r + /home/pkcoff/mpich-sandboxes/master/install-production/bin/mpixlf2003_r + + -L${NETCDF_PATH}/lib -lnetcdff -lnetcdf -L$ENV{HDF5}/lib -lhdf5_hl -lhdf5 -L/soft/libraries/alcf/current/xl/ZLIB/lib -lz -L/soft/libraries/alcf/current/xl/LAPACK/lib -llapack -L/soft/libraries/alcf/current/xl/BLAS/lib -lblas -L/bgsys/drivers/ppcfloor/comm/sys/lib + + + + + + -L$ENV{HDF5_HOME}/lib -lhdf5_fortran -lhdf5 -lhdf5_hl -lhdf5hl_fortran + -L$ENV{NETCDF_PATH}/lib/ -lnetcdff -lnetcdf -lcurl -lblas -llapack + + + -DHAVE_VPRINTF -DHAVE_GETTIMEOFDAY -DHAVE_BACKTRACE + + + + + + -O2 + + + --host=Linux + + + -DLINUX + + + -O2 + + $ENV{NETCDF_LIB}/.. + lustre + + -L${NETCDF_PATH}/lib -lnetcdf -lnetcdff -lpmi + + + + + + -O2 -xCORE-AVX2 + + icc + mpi + $ENV{MPI_ROOT} + $ENV{NETCDF} + + -L$ENV{NETCDF}/lib -lnetcdff -lnetcdf + + /home6/fvitt/esmf_7_1_0r/esmf/lib/libO/Linux.intel.64.mpi.default + + + + + -O2 -xCORE-AVX2 + + icc + mpi + $ENV{MPI_ROOT} + $ENV{NETCDF} + + -L$ENV{NETCDF}/lib -lnetcdff -lnetcdf + + /home6/fvitt/esmf_7_1_0r/esmf/lib/libO/Linux.intel.64.mpi.default + + + + + -O2 -xAVX + + icc + mpi + $ENV{MPI_ROOT} + $ENV{NETCDF} + + -L$ENV{NETCDF}/lib -lnetcdff -lnetcdf + + /home6/fvitt/esmf_7_1_0r/esmf/lib/libO/Linux.intel.64.mpi.default + + + + + -O2 -xAVX + + icc + mpi + $ENV{MPI_ROOT} + $ENV{NETCDF} + + -L$ENV{NETCDF}/lib -lnetcdff -lnetcdf + + /home6/fvitt/esmf_7_1_0r/esmf/lib/libO/Linux.intel.64.mpi.default + + + + + -O2 + + + --host=Linux + + /projects/ccsm/esmf-6.3.0rp1/lib/libO/Linux.intel.64.openmpi.default + + -O2 + + $ENV{NETCDFROOT} + lustre + $ENV{PNETCDFROOT} + + -L${NETCDF_PATH}/lib -lnetcdff -L/projects/ccsm/BLAS-intel -lblas_LINUX + + + + + + -DHAVE_NANOTIME + + $ENV{TACC_NETCDF_DIR} + lustre + $ENV{TACC_PNETCDF_DIR} + + -Wl,-rpath,${NETCDF_PATH}/lib + + + -L${NETCDF_PATH}/lib -lnetcdff -lnetcdf + + + + + + -DHAVE_NANOTIME + + $ENV{TACC_NETCDF_DIR} + lustre + $ENV{TACC_PNETCDF_DIR} + + + + + -xCOMMON-AVX512 -no-fma + + + -xCOMMON-AVX512 -no-fma + -mcmodel medium + + + -L$ENV{TACC_HDF5_LIB} -lhdf5 $(MKL) -zmuldefs -xCOMMON-AVX512 + + + $SHELL{${NETCDF_PATH}/bin/nf-config --flibs} -L$ENV{TACC_HDF5_LIB} -lhdf5 + + $ENV{TRILINOS_PATH} + FALSE + + + + + -DHAVE_NANOTIME + + $ENV{TACC_NETCDF_DIR} + lustre + $ENV{TACC_PNETCDF_DIR} + + + + + -xCOMMON-AVX512 -no-fma + + + -xCOMMON-AVX512 -no-fma + -mcmodel medium + + + -L$ENV{TACC_HDF5_LIB} -lhdf5 $(MKL) -zmuldefs -xCOMMON-AVX512 + + + $SHELL{${NETCDF_PATH}/bin/nf-config --flibs} -L$ENV{TACC_HDF5_LIB} -lhdf5 + + $ENV{TRILINOS_PATH} + FALSE + + + + mpiicc + mpiicpc + mpiifort + /apps/netcdf/4.3.0-intel + + + + + -xMIC-AVX512 + + + -xMIC-AVX512 + + + --host=Linux + + + -L$(NETCDF_DIR)/lib -lnetcdff -L$(NETCDF_DIR)/lib -lnetcdf -Wl,-rpath -Wl,$(NETCDF_DIR)/lib + + + + + + + + + + + + + + USERDEFINED_MUST_EDIT_THIS + + + # USERDEFINED $SHELL{${NETCDF_PATH}/bin/nc-config --flibs} + + + + \ No newline at end of file diff --git a/cesm/README.md b/cesm/README.md new file mode 100644 index 0000000000000000000000000000000000000000..a36096ac8e7e1f4b20ddff7e5081bb10bf3442f3 --- /dev/null +++ b/cesm/README.md @@ -0,0 +1,59 @@ +# Quick reference + +- The official cesm docker image. + +- Maintained by: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative). + +- Where to get help: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative), [openEuler](https://gitee.com/openeuler/community). +# CESM | openEuler +Current cesm docker images are built on the [openEuler](https://repo.openeuler.org/). This repository is free to use and exempted from per-user rate limits. + +The Community Earth System Model(CESM) is a fully coupled global climate model developed in collaboration with colleagues in the research community. CESM provides state of the art computer simulations of Earth's past, present, and future climate states. + +Learn more on [cesm website](https://www.cesm.ucar.edu/). + + +# Supported tags and respective Dockerfile links +The tag of each cesm docker image is consist of the version of cesm and the version of basic image. The details are as follows + +| Tags | Currently | Architectures| +|------|-----------|---------------| +|[2.2.2-oe2403lts](https://gitee.com/openeuler/openeuler-docker-images/blob/master/cesm/2.2.2/24.03-lts/Dockerfile)| CESM 2.2.2 on openEuler 24.03-LTS | amd64, arm64 | + + +# Usage +Here, users can select the corresponding `{Tag}` and `container startup options` based on their requirements. + +- Pull the `openeuler/cesm` image from `hub.docker.com` + + ```bash + docker pull openeuler/cesm:{Tag} + ``` + +- Start a `cesm` instance + + ```bash + docker run -it --name my-cesm openeuler/cesm:{Tag} + ``` + This will give you a bash prompt like this: + ``` + [root@cesm ncar]$ + ``` + From here, you can follow the standard CESM documentation on creating/building/submitting cases. + In this case, the submission runs in the foreground. An example set of commands to build a 2-degree F2000climo (scientifically unsupported, just used as an example) case, with a case name / directory of 'mycase' follows: + ``` + create_newcase --case mycase --compset F2000climo --res f19_g17 --run-unsupported + cd mycase + ./xmlchange NTASKS=4 + ./case.setup + ./case.build + ``` + It finishes successfully as follows: + ``` + Time spent building: 289.431136 sec + MODEL BUILD HAS FINISHED SUCCESSFULLY + ``` + This will require about 7-10GB of RAM for 1-4 tasks - if you haven't configured your Docker environment to allow that, you'll need to change that under Docker's settings. + +# Question and answering +If you have any questions or want to use some special features, please submit an issue or a pull request on [openeuler-docker-images](https://gitee.com/openeuler/openeuler-docker-images). \ No newline at end of file diff --git a/cesm/doc/image-info.yml b/cesm/doc/image-info.yml new file mode 100644 index 0000000000000000000000000000000000000000..7e47a3122de2ba428759cc72e43c59099f3ff862 --- /dev/null +++ b/cesm/doc/image-info.yml @@ -0,0 +1,66 @@ +name: cesm +category: hpc +description: CESM,全称 The Community Earth System Model,是一个完全耦合的气候模型,在CESM中包括大气、陆地、海洋、海冰、陆冰等几大模块。其主要用于研究地球过去、现在、和未来的气候状况。 +environment: | + 本应用在Docker环境中运行,安装Docker执行如下命令 + ``` + yum install -y docker + ``` +tags: | + cesm镜像的Tag由其版本信息和基础镜像版本信息组成,详细内容如下 + + | Tags | Currently | Architectures| + |------|-----------|---------------| + |[2.2.2-oe2403lts](https://gitee.com/openeuler/openeuler-docker-images/blob/master/cesm/2.2.2/24.03-lts/Dockerfile)| CESM 2.2.2 on openEuler 24.03-LTS | amd64, arm64 | + +download: | + 拉取镜像到本地 + ``` + docker pull openeuler/cesm:{Tag} + ``` + +usage: | + - 拉取镜像 + + ``` + docker pull openeuler/cesm:{Tag} + ``` + 用户可根据自身需求选择对应版本的{Tag}、容器启动的选项。 + + - 运行容器 + + ``` + docker run -it --name my-cesm openeuler/cesm:{Tag} + ``` + `my-cesm`启动之后,会进入如下目录 + ``` + [root@cesm ncar]$ + ``` + 这里,用户可以按照标准 CESM 文档执行 creating/building 用例。 + + - 测试验证 + + 这里,提供一个构建`2-degree F2000climo`的测试用例 + ``` + create_newcase --case mycase --compset F2000climo --res f19_g17 --run-unsupported + cd mycase + ./xmlchange NTASKS=4 + ./case.setup + ./case.build + ``` + + 执行成功后的结果示例如下 + ``` + Time spent building: 289.431136 sec + MODEL BUILD HAS FINISHED SUCCESSFULLY + ``` + +license: Artistic License 2.0 +similar_packages: + - N/A +dependency: + - mpich + - hdf5 + - netcdf-c + - netcdf-fortran + - pnetcdf diff --git a/cesm/doc/picture/logo.png b/cesm/doc/picture/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2f0bcbe934f63ba570084b1cdc0c634979a013ce Binary files /dev/null and b/cesm/doc/picture/logo.png differ diff --git a/cesm/meta.yml b/cesm/meta.yml new file mode 100644 index 0000000000000000000000000000000000000000..ae1e65362902634626c274226a5faef395bd7f33 --- /dev/null +++ b/cesm/meta.yml @@ -0,0 +1,2 @@ +2.2.2-oe2403lts: + path: cesm/2.2.2/24.03-lts/Dockerfile \ No newline at end of file