diff --git a/images/wechat-group-qr.png b/images/wechat-group-qr.png index 30e5c98ce7a92ffe6ff0a8ed81c9e28ec6f9e34e..34d8a0b7af1207d390a7e92157c09ad44f3637a0 100644 Binary files a/images/wechat-group-qr.png and b/images/wechat-group-qr.png differ diff --git a/package/hdf5/1.8.12/clang/install.sh b/package/hdf5/1.8.12/clang/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..58a71f094ca377fd4308948696bbcb2cc51757e8 --- /dev/null +++ b/package/hdf5/1.8.12/clang/install.sh @@ -0,0 +1,18 @@ +#!/bin/bash +set -x +set -e +hdf5_ver='1.8.12' +. ${DOWNLOAD_TOOL} -u https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8/hdf5-${hdf5_ver}/src/hdf5-${hdf5_ver}.tar.gz +cd ${JARVIS_TMP} +rm -rf hdf5-${hdf5_ver} +tar -xvf ${JARVIS_DOWNLOAD}/hdf5-${hdf5_ver}.tar.gz +cd hdf5-${hdf5_ver} +if [ x"$(arch)" = xaarch64 ];then + build_type='--build=aarch64-unknown-linux-gnu' +else + build_type='' +fi +./configure --prefix=$1 ${build_type} --enable-fortran --enable-static=yes --enable-parallel --disable-shared CFLAGS="-O3 -fPIC -Wno-incompatible-pointer-types-discards-qualifiers -Wno-non-literal-null-conversion" FCFLAGS="-O3 -fPIC" +sed -i '11835c wl="-Wl,"' libtool +make -j +make install \ No newline at end of file diff --git a/package/hdf5/1.8.12/install.sh b/package/hdf5/1.8.12/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..0ae99d0356592842348d3b1ae81fdfece9d84c61 --- /dev/null +++ b/package/hdf5/1.8.12/install.sh @@ -0,0 +1,13 @@ +#!/bin/bash +set -x +set -e +hdf5_ver='1.8.12' +. ${DOWNLOAD_TOOL} -u https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8/hdf5-${hdf5_ver}/src/hdf5-${hdf5_ver}.tar.gz +cd ${JARVIS_TMP} +rm -rf hdf5-${hdf5_ver} +tar -xvf ${JARVIS_DOWNLOAD}/hdf5-${hdf5_ver}.tar.gz +cd hdf5-${hdf5_ver} +# +./configure --prefix=$1 --enable-fortran --enable-static=yes --enable-parallel --enable-shared +make -j +make install diff --git a/package/netcdf/4.7.4/clang/install.sh b/package/netcdf/4.7.4/clang/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..691474c16991f56003f72b5ab3adefc3a3ab40aa --- /dev/null +++ b/package/netcdf/4.7.4/clang/install.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +set -x +set -e +netcdf_c_version='4.7.4' +netcdf_f_version='4.5.3' +. ${DOWNLOAD_TOOL} -u https://codeload.github.com/Unidata/netcdf-fortran/tar.gz/refs/tags/v${netcdf_f_version} -f netcdf-fortran-${netcdf_f_version}.tar.gz +. ${DOWNLOAD_TOOL} -u https://codeload.github.com/Unidata/netcdf-c/tar.gz/refs/tags/v${netcdf_c_version} -f netcdf-c-${netcdf_c_version}.tar.gz +cd ${JARVIS_TMP} +rm -rf netcdf-c-${netcdf_c_version} netcdf-fortran-${netcdf_f_version} +tar -xvf ${JARVIS_DOWNLOAD}/netcdf-c-${netcdf_c_version}.tar.gz +tar -xvf ${JARVIS_DOWNLOAD}/netcdf-fortran-${netcdf_f_version}.tar.gz +cd netcdf-c-${netcdf_c_version} +if [ x"$(arch)" = xaarch64 ];then + build_type='--build=aarch64-unknown-linux-gnu' +else + build_type='' +fi +HDF5_DIR=${1%/*/*}/hdf5-clang/1.8.12 +PNETCDF_DIR=${1%/*/*}/pnetcdf/1.11.2 +./configure --prefix=$1 ${build_type} --disable-shared --enable-netcdf-4 --disable-dap --with-pic --disable-doxygen --enable-static --enable-pnetcdf --enable-largefile CPPFLAGS="-O3 -I${HDF5_DIR}/include -I${PNETCDF_DIR}/include" LDFLAGS="-L${HDF5_DIR}/lib -L${PNETCDF_DIR}/lib -Wl,-rpath=${HDF5_DIR}/lib -Wl,-rpath=${PNETCDF_DIR}/lib" CFLAGS="-O3 -L${HDF5_DIR}/lib -L${PNETCDF_DIR}/lib -I${HDF5_DIR}/include -I${PNETCDF_DIR}/include" + +make -j16 +make install + +export PATH=$1/bin:$PATH +export LD_LIBRARY_PATH=$1/lib:$LD_LIBRARY_PATH +export NETCDF=${1} + +cd ../netcdf-fortran-${netcdf_f_version} +./configure --prefix=$1 ${build_type} --disable-shared --with-pic --disable-doxygen --enable-largefile --enable-static CPPFLAGS="-O3 -I${HDF5_DIR}/include -I${1}/include" LDFLAGS="-L${HDF5_DIR}/lib -L${1}/lib -Wl,-rpath=${HDF5_DIR}/lib -Wl,-rpath=${1}/lib" CFLAGS="-O3 -L${HDF5_DIR}/HDF5/lib -L${1}/lib -I${HDF5_DIR}/include -I${1}/include" CXXFLAGS="-O3 -L${HDF5_DIR}/lib -L${1}/lib -I${HDF5_DIR}/include -I${1}/include" FCFLAGS="-O3 -L${HDF5_DIR}/lib -L${1}/lib -I${HDF5_DIR}/include -I${1}/include" +make -j16 +make install diff --git a/package/netcdf/4.7.4/install.sh b/package/netcdf/4.7.4/install.sh index 25d8b0b87ebcf813eb08a2f0c9b565f8229dc060..4537fd8d9a212df96fc7abe62de105df20cc2199 100644 --- a/package/netcdf/4.7.4/install.sh +++ b/package/netcdf/4.7.4/install.sh @@ -11,9 +11,14 @@ rm -rf netcdf-c-${netcdf_c_version} netcdf-fortran-${netcdf_f_version} tar -xvf ${JARVIS_DOWNLOAD}/netcdf-c-${netcdf_c_version}.tar.gz tar -xvf ${JARVIS_DOWNLOAD}/netcdf-fortran-${netcdf_f_version}.tar.gz cd netcdf-c-${netcdf_c_version} -HDF5_DIR=${1%/*/*}/hdf5-clang/1.12.0 -PNETCDF_DIR=${1%/*/*}/pnetcdf/1.12.1 -./configure --prefix=$1 --build=aarch64-unknown-linux-gnu --enable-shared --enable-netcdf-4 --disable-dap --with-pic --disable-doxygen --enable-static --enable-pnetcdf --enable-largefile CPPFLAGS="-O3 -I${HDF5_DIR}/include -I${PNETCDF_DIR}/include" LDFLAGS="-L${HDF5_DIR}/lib -L${PNETCDF_DIR}/lib -Wl,-rpath=${HDF5_DIR}/lib -Wl,-rpath=${PNETCDF_DIR}/lib" CFLAGS="-O3 -L${HDF5_DIR}/lib -L${PNETCDF_DIR}/lib -I${HDF5_DIR}/include -I${PNETCDF_DIR}/include" +if [ x"$(arch)" = xaarch64 ];then + build_type='--build=aarch64-unknown-linux-gnu' +else + build_type='' +fi +HDF5_DIR=${1%/*/*}/hdf5/1.8.12 +PNETCDF_DIR=${1%/*/*}/pnetcdf/1.11.2 +./configure --prefix=$1 ${build_type} --disable-shared --enable-netcdf-4 --disable-dap --with-pic --disable-doxygen --enable-static --enable-pnetcdf --enable-largefile CPPFLAGS="-O3 -I${HDF5_DIR}/include -I${PNETCDF_DIR}/include" LDFLAGS="-L${HDF5_DIR}/lib -L${PNETCDF_DIR}/lib -Wl,-rpath=${HDF5_DIR}/lib -Wl,-rpath=${PNETCDF_DIR}/lib" CFLAGS="-O3 -L${HDF5_DIR}/lib -L${PNETCDF_DIR}/lib -I${HDF5_DIR}/include -I${PNETCDF_DIR}/include" make -j16 make install @@ -23,7 +28,6 @@ export LD_LIBRARY_PATH=$1/lib:$LD_LIBRARY_PATH export NETCDF=${1} cd ../netcdf-fortran-${netcdf_f_version} -./configure --prefix=$1 --build=aarch64-unknown-linux-gnu --enable-shared --with-pic --disable-doxygen --enable-largefile --enable-static CPPFLAGS="-O3 -I${HDF5_DIR}/include -I${1}/include" LDFLAGS="-L${HDF5_DIR}/lib -L${1}/lib -Wl,-rpath=${HDF5_DIR}/lib -Wl,-rpath=${1}/lib" CFLAGS="-O3 -L${HDF5_DIR}/HDF5/lib -L${1}/lib -I${HDF5_DIR}/include -I${1}/include" CXXFLAGS="-O3 -L${HDF5_DIR}/lib -L${1}/lib -I${HDF5_DIR}/include -I${1}/include" FCFLAGS="-O3 -L${HDF5_DIR}/lib -L${1}/lib -I${HDF5_DIR}/include -I${1}/include" -sed -i '11838c wl="-Wl,"' libtool +./configure --prefix=$1 ${build_type} --disable-shared --with-pic --disable-doxygen --enable-largefile --enable-static CPPFLAGS="-O3 -I${HDF5_DIR}/include -I${1}/include" LDFLAGS="-L${HDF5_DIR}/lib -L${1}/lib -Wl,-rpath=${HDF5_DIR}/lib -Wl,-rpath=${1}/lib" CFLAGS="-O3 -L${HDF5_DIR}/HDF5/lib -L${1}/lib -I${HDF5_DIR}/include -I${1}/include" CXXFLAGS="-O3 -L${HDF5_DIR}/lib -L${1}/lib -I${HDF5_DIR}/include -I${1}/include" FCFLAGS="-O3 -L${HDF5_DIR}/lib -L${1}/lib -I${HDF5_DIR}/include -I${1}/include" make -j16 make install diff --git a/package/pnetcdf/1.11.2/install.sh b/package/pnetcdf/1.11.2/install.sh index 79379fc91d25df3b8629b4c55e0d500cd7b0ac07..61cd7540c08425544877d8773d3fa462b7fa8f62 100644 --- a/package/pnetcdf/1.11.2/install.sh +++ b/package/pnetcdf/1.11.2/install.sh @@ -1,13 +1,13 @@ #!/bin/bash -#http://cucis.ece.northwestern.edu/projects/PnetCDF/Release/pnetcdf-1.11.2.tar.gz set -x set -e -. ${DOWNLOAD_TOOL} -u http://cucis.ece.northwestern.edu/projects/PnetCDF/Release/pnetcdf-1.11.2.tar.gz +pnetcdf_ver='1.11.2' +. ${DOWNLOAD_TOOL} -u http://cucis.ece.northwestern.edu/projects/PnetCDF/Release/pnetcdf-${pnetcdf_ver}.tar.gz cd ${JARVIS_TMP} -tar zxvf ${JARVIS_DOWNLOAD}/pnetcdf-1.11.2.tar.gz -cd pnetcdf-1.11.2 -#./configure --prefix=$1 --build=aarch64-linux --enable-shared --enable-fortran --enable-large-file-test CC=mpicc CXX=mpicxx FC=mpifort F77=mpifort -./configure --prefix=$1 --build=aarch64-linux --enable-shared --enable-fortran --enable-large-file-test +rm -rf pnetcdf-${pnetcdf_ver} +tar zxvf ${JARVIS_DOWNLOAD}/pnetcdf-${pnetcdf_ver}.tar.gz +cd pnetcdf-${pnetcdf_ver} +./configure --prefix=$1 --enable-shared --enable-fortran --enable-large-file-test make -j16 make install diff --git a/package/szip/2.1.1/install.sh b/package/szip/2.1.1/install.sh index 6cc1367ef31768c4a77517e146080d947d69b6dd..1709286450d01f83d80d888866212b79f237af9b 100644 --- a/package/szip/2.1.1/install.sh +++ b/package/szip/2.1.1/install.sh @@ -1,10 +1,11 @@ #!/bin/bash set -x set -e -. ${DOWNLOAD_TOOL} -u https://distfiles.macports.org/szip/szip-2.1.1.tar.gz +szip_ver='2.1.1' +. ${DOWNLOAD_TOOL} -u https://distfiles.macports.org/szip/szip-${szip_ver}.tar.gz cd ${JARVIS_TMP} -tar xvf ${JARVIS_DOWNLOAD}/szip-2.1.1.tar.gz -cd szip-2.1.1 +tar xvf ${JARVIS_DOWNLOAD}/szip-${szip_ver}.tar.gz +cd szip-${szip_ver} ./configure --prefix=$1 make -j make install diff --git a/package/valgrind/3.20/install.sh b/package/valgrind/3.20/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..0f2cda540c2483f024ae186ffb3cbc8c7c1d27fb --- /dev/null +++ b/package/valgrind/3.20/install.sh @@ -0,0 +1,10 @@ +#!/bin/bash +set -x +set -e +. ${DOWNLOAD_TOOL} -u git://sourceware.org/git/valgrind.git -t git +cd ${JARVIS_DOWNLOAD} +cd valgrind +./autogen.sh +./configure --prefix=$1 +make -j +make install \ No newline at end of file diff --git a/package/zlib/1.2.12/clang/install.sh b/package/zlib/1.2.12/clang/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..3ef948410c892b40852bc0fe6a596fffcb05b541 --- /dev/null +++ b/package/zlib/1.2.12/clang/install.sh @@ -0,0 +1,11 @@ +#!/bin/bash +set -x +set -e +zlib_ver='1.2.12' +. ${DOWNLOAD_TOOL} -u https://zlib.net/zlib-${zlib_ver}.tar.gz +cd ${JARVIS_TMP} +tar -xvf ${JARVIS_DOWNLOAD}/zlib-${zlib_ver}.tar.gz +cd zlib-${zlib_ver} +./configure --prefix=$1 FCFLAGS="-O3 -fPIC" +make -j +make install diff --git a/package/zlib/1.2.11/install.sh b/package/zlib/1.2.12/install.sh similarity index 33% rename from package/zlib/1.2.11/install.sh rename to package/zlib/1.2.12/install.sh index 2fa41858cb03c71c17b647d2e0ca1576d53c3daa..3b77899fc7d327d86c40fcbdc226e0481ea37130 100644 --- a/package/zlib/1.2.11/install.sh +++ b/package/zlib/1.2.12/install.sh @@ -1,10 +1,12 @@ #!/bin/bash set -x set -e -. ${DOWNLOAD_TOOL} -u http://downloads.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz +zlib_ver='1.2.12' +. ${DOWNLOAD_TOOL} -u https://zlib.net/zlib-${zlib_ver}.tar.gz cd ${JARVIS_TMP} -tar -xvf ${JARVIS_DOWNLOAD}/zlib-1.2.11.tar.gz -cd zlib-1.2.11 +rm -rf zlib-${zlib_ver} +tar -xvf ${JARVIS_DOWNLOAD}/zlib-${zlib_ver}.tar.gz +cd zlib-${zlib_ver} ./configure --prefix=$1 make -j make install diff --git a/templates/rmaps-now/configure-ARM b/templates/rmaps-now/configure-ARM new file mode 100644 index 0000000000000000000000000000000000000000..8637e241464240b35b6f8fddea2be12e80b3775b --- /dev/null +++ b/templates/rmaps-now/configure-ARM @@ -0,0 +1,273 @@ +#!/bin/csh -f + set netcdf_option='0' + + echo 'Select the following NetCDF option:' + + echo ' 3) NetCDF 3' + echo ' 4) NetCDF 4' + + echo '' + echo 'Please your NetCDF option [3 or 4]: ' + + set netcdf_option = 4 + + if($netcdf_option < 3 || $netcdf_option > 4) then + echo "Invalid NetCDF option, can not generate Makefile." + exit ( -1 ) + endif + + switch ($netcdf_option) + case 3: + set use_netcdf3 = 1 + breaksw + case 4: + set use_netcdf3 = 0 + breaksw + default: + set use_netcdf3 = 1 + breaksw + endsw + + set compile_option='0' + + echo 'Select the following compiling option:' + + echo ' 1) Serial (No OpenMP, no MPI)' + echo ' 2) Pure OpenMP' + echo ' 3) Pure MPI' + echo ' 4) Hybrid (MPI with OpenMP)' + + echo '' + echo 'Please your compiling option [1-4]: ' + + set compile_option = 3 + + if($compile_option < 1 || $compile_option > 4) then + echo "Invalid compiling option, can not generate Makefile." + exit ( -1 ) + endif + +# +# Set environment variables for different machines... +# + set date_string = `date +%Y-%m-%d_%H:%M:%S` + + set RMAPSNOW_HOME = `pwd` + + set DEBUGFLAGS = "" + + set CPP = "/usr/bin/cpp -C -P -nostdinc" + + set DMP_FLAGS = " " + set SMP_FLAGS = " " + set RANLIB = echo + + set lmn = `uname -n` + + set mn = `echo $lmn | cut -c 1-2` + + setenv NODE_HDR $mn + + switch ($NODE_HDR) + case mu: + set machine_name = mu01 + breaksw + case da: + set machine_name = dawning + breaksw + case be: + set machine_name = bluefire + breaksw + case cl: + set machine_name = cli_intel + breaksw + default: + echo "Do not know how to generate make_rules for $NODE_HDR" + exit + endsw + + switch ($compile_option) + case 1: + set dmp = 0 + set smp = 0 + breaksw + case 2: + set dmp = 0 + set smp = 1 + breaksw + case 3: + set dmp = 1 + set smp = 0 + breaksw + case 4: + set dmp = 1 + set smp = 1 + breaksw + default: + set dmp = 0 + set smp = 0 + echo "Unknown configure option." + exit + endsw + + switch ($machine_name) + + case cli: + set UNDERSCORE = "-DUNDERSCORE " + if($dmp) then + set CXX = mpicxx + set CC = mpicc + set FC = mpifort + set SFC = mpifort + set DMP_FLAGS = "-DDM_PARALLEL " + set DEPS_PATH = /software/libs/bisheng2/hmpi1 + set NETCDFPATH = ${DEPS_PATH}/netcdf/4.7.4 + set HDF5PATH = ${DEPS_PATH}/hdf5-clang/1.8.12 + set DMP_LIB = "-L/software/mpi/hmpi1-bisheng2/1.1.1/lib/libmpi.so" + else + set CXX = g++ + set FC = gfortran + set CC = gcc + set SFC = gfortran + set DMP_FLAGS = " " + set NETCDFPATH = /dependencies/netcdf + set HDF5PATH = /dependencies/hdf5 + + set DMP_LIB = " " + endif + + set RAP_DIR = /rap + + set ZLIBPATH = /usr + set SZLIBPATH = /software/libs/bisheng2/szip/2.1.1 + + if($use_netcdf3) then + set NETCDF_OPTION = " " + set HDF5_LIB = '-L$(HDF5PATH)/lib -lhdf5_hl -lhdf5 ' + set ZLIB_LIB = '-L$(ZLIBPATH)/lib64 -lz ' + set SZLIB_LIB = '-L$(SZLIBPATH)/lib ' + else + set NETCDF_OPTION = " " + set HDF5_LIB = '-L$(HDF5PATH)/lib -lhdf5_hl -lhdf5 ' + set ZLIB_LIB = '-L$(ZLIBPATH)/lib64 -lz ' + set SZLIB_LIB = '-L$(SZLIBPATH)/lib ' + endif + set NETCDF_LIB = '-L$(NETCDFPATH)/lib -lnetcdff -lnetcdf ' + set RAP_LIB = '-L$(RAP_DIR)/lib -lSpdb -lMdv -ldsserver -ldidss -lrapformats -ltoolsa -lrapmath -ldataport -ltdrp -leuclid -lstdc++ -lgcc_s' + + if($smp) then + set SMP_FLAGS = "-fopenmp " + endif + + set LOC_LIBS = '$(NETCDF_LIB) $(HDF5_LIB) $(ZLIB_LIB) $(SZLIB_LIB) $(DMP_LIB) $(RAP_LIB) -lm -lc -lcurl' + + set CXX_INCLUDES = '-I. -I$(RAP_DIR)/include ' + set CXX_US_FLAGS = '-Wl,-Bstatic ' + set CXX_COMPILE_OPTIONS = '-DUSE_MDV -DUSE_RAP_UTIL -DUNDERSCORE ' + + set CC_US_FLAGS = '$(DEBUGFLAGS) $(UNDERSCORE) $(DMP_FLAGS) $(NETCDF_OPTION) ' + set CC_INCLUDES = "-I. -I/usr/local/mpich-gnu/include" + set CC_COMPILE_OPTIONS = " " + set CC_OPTIMIZATIONS = "-O3 " + + set FC_US_FLAGS = '$(NETCDF_OPTION) $(SMP_FLAGS) ' + set FC_INCLUDES = '-I. -I$(RMAPSNOW_HOME)/mpi_util -I$(RMAPSNOW_HOME)/src -I$(RMAPSNOW_HOME)/io/netcdf4 -I$(NETCDFPATH)/include -I$(RMAPSNOW_HOME)/share -I$(RMAPSNOW_HOME)/io/mdv -I$(RAP_DIR)/include -I/usr/local/mpich-gnu/include ' + set FC_COMPILE_OPTIONS = '-Mfree #-fdefault-real-8' + set SFC_COMPILE_OPTIONS = '-Mfixed #-fdefault-real-8' + set FC_OPTIMIZATIONS = '-O3 ' + set SFC_OPTIMIZATIONS = '-O3 ' + set RANLIB = ranlib + + breaksw + + default: + echo "Do not know how to generate make_rules for $NODE_HDR" + exit + endsw + +# +# Generate a new make_rules file... +# + + if( -f make_rules ) then + mv make_rules make_rules.backup + cp make_rules.backup arch/make_rules.saved.${date_string} + endif + + cp arch/common make_rules + + set CXXFLAGS = '$(CXX_US_FLAGS) $(CXX_INCLUDES) $(CXX_COMPILE_OPTIONS) #$(SMP_FLAGS)' + set CFLAGS = '$(CC_US_FLAGS) $(CC_INCLUDES) $(CC_COMPILE_OPTIONS) $(CC_OPTIMIZATIONS) $(DMP_FLAGS) $(SMP_FLAGS)' + set FFLAGS = '$(FC_US_FLAGS) $(FC_INCLUDES) $(FC_COMPILE_OPTIONS) $(FC_OPTIMIZATIONS)' + set SFFLAGS = '$(FC_US_FLAGS) $(FC_INCLUDES) $(SFC_COMPILE_OPTIONS) $(SFC_OPTIMIZATIONS)' + set CPPFLAGS = '-I. $(DEBUGFLAGS) $(DMP_FLAGS) $(NETCDF_OPTION) -DUSE_MDV -DUSE_RAP_UTIL ' + set LDFLAGS = '$(CC_COMPILE_OPTIONS) $(SFC_OPTIMIZATIONS) ' + +cat >> make_rules << EOF +RMAPSNOW_HOME = ${RMAPSNOW_HOME} +NETCDFPATH = ${NETCDFPATH} +HDF5PATH = ${HDF5PATH} +ZLIBPATH = ${ZLIBPATH} +SZLIBPATH = ${SZLIBPATH} +RAP_DIR = ${RAP_DIR} + +#################################################### + +NETCDF_OPTION = ${NETCDF_OPTION} + +NETCDF_LIB = ${NETCDF_LIB} +HDF5_LIB = ${HDF5_LIB} +ZLIB_LIB = ${ZLIB_LIB} +SZLIB_LIB = ${SZLIB_LIB} + +DMP_LIB = ${DMP_LIB} +RAP_LIB = ${RAP_LIB} + +DEBUGFLAGS = ${DEBUGFLAGS} +UNDERSCORE = ${UNDERSCORE} +DMP_FLAGS = ${DMP_FLAGS} +SMP_FLAGS = ${SMP_FLAGS} + +CXX_US_FLAGS = ${CXX_US_FLAGS} +CXX_INCLUDES = ${CXX_INCLUDES} +CXX_COMPILE_OPTIONS = ${CXX_COMPILE_OPTIONS} + +CC_US_FLAGS = ${CC_US_FLAGS} +CC_INCLUDES = ${CC_INCLUDES} +CC_COMPILE_OPTIONS = ${CC_COMPILE_OPTIONS} + +FC_US_FLAGS = ${FC_US_FLAGS} +FC_INCLUDES = ${FC_INCLUDES} +FC_COMPILE_OPTIONS = ${FC_COMPILE_OPTIONS} +SFC_COMPILE_OPTIONS = ${SFC_COMPILE_OPTIONS} + +CC_OPTIMIZATIONS = ${CC_OPTIMIZATIONS} +FC_OPTIMIZATIONS = ${FC_OPTIMIZATIONS} +SFC_OPTIMIZATIONS = ${SFC_OPTIMIZATIONS} + +#################################################### + +CXX = ${CXX} +CXXFLAGS = ${CXXFLAGS} + +CC = ${CC} +CFLAGS = ${CFLAGS} + +FC = ${FC} +FFLAGS = ${FFLAGS} + +SFC = ${SFC} +SFFLAGS = ${SFFLAGS} + +LDFLAGS = ${LDFLAGS} + +CPP = ${CPP} +CPPFLAGS = ${CPPFLAGS} + +LOC_LIBS = ${LOC_LIBS} + +RANLIB = ${RANLIB} + +EOF + + cat arch/rules >> make_rules \ No newline at end of file diff --git a/templates/rmaps-now/configure-x86 b/templates/rmaps-now/configure-x86 new file mode 100644 index 0000000000000000000000000000000000000000..4a8bb7503782a55c4a60b59a97c19811c1654ef9 --- /dev/null +++ b/templates/rmaps-now/configure-x86 @@ -0,0 +1,280 @@ +#!/bin/csh -f + + set netcdf_option='0' + + echo 'Select the following NetCDF option:' + + echo ' 3) NetCDF 3' + echo ' 4) NetCDF 4' + + echo '' + echo 'Please your NetCDF option [3 or 4]: ' + + set netcdf_option = 4 + + if($netcdf_option < 3 || $netcdf_option > 4) then + echo "Invalid NetCDF option, can not generate Makefile." + exit ( -1 ) + endif + + switch ($netcdf_option) + case 3: + set use_netcdf3 = 1 + breaksw + case 4: + set use_netcdf3 = 0 + breaksw + default: + set use_netcdf3 = 1 + breaksw + endsw + + set compile_option='0' + + echo 'Select the following compiling option:' + + echo ' 1) Serial (No OpenMP, no MPI)' + echo ' 2) Pure OpenMP' + echo ' 3) Pure MPI' + echo ' 4) Hybrid (MPI with OpenMP)' + + echo '' + echo 'Please your compiling option [1-4]: ' + + set compile_option = 3 + + if($compile_option < 1 || $compile_option > 4) then + echo "Invalid compiling option, can not generate Makefile." + exit ( -1 ) + endif + +# +# Set environment variables for different machines... +# + + set date_string = `date +%Y-%m-%d_%H:%M:%S` + + set RMAPSNOW_HOME = `pwd` + +#set DEBUGFLAGS = "-DDEBUG " + set DEBUGFLAGS = "" + + set CPP = "/usr/bin/cpp -C -P -nostdinc" + + set DMP_FLAGS = " " + set SMP_FLAGS = " " + set RANLIB = echo + + set lmn = `uname -n` + + set mn = `echo $lmn | cut -c 1-2` + + setenv NODE_HDR $mn + + switch ($NODE_HDR) + case mu: + set machine_name = mu01 + breaksw + case da: + set machine_name = dawning + breaksw + case be: + set machine_name = bluefire + breaksw + case cl: + set machine_name = cli_intel + breaksw + default: + echo "Do not know how to generate make_rules for $NODE_HDR" + exit + endsw + + switch ($compile_option) + case 1: + set dmp = 0 + set smp = 0 + breaksw + case 2: + set dmp = 0 + set smp = 1 + breaksw + case 3: + set dmp = 1 + set smp = 0 + breaksw + case 4: + set dmp = 1 + set smp = 1 + breaksw + default: + set dmp = 0 + set smp = 0 + echo "Unknown configure option." + exit + endsw + + switch ($machine_name) + +# Intel(R) Xeon(R) Gold 6230R CPU @ 2.10GHz + case cli_intel: + set UNDERSCORE = "-DUNDERSCORE " + if($dmp) then + set CXX = icpc + set CC = mpiicc + set FC = mpiifort + set SFC = mpiifort + set DMP_FLAGS = "-DDM_PARALLEL " + set DEPS_PATH = /software/libs/icc11/ + set NETCDFPATH = ${DEPS_PATH}/netcdf/4.7.4 + set HDF5PATH = ${DEPS_PATH}/hdf5/1.8.12 + + set DMP_LIB = "-L/home/share/kunptzdui/home/hejiancong/intel/oneapi/mpi/2021.7.0/lib/release/libmpi.so" + else + set CXX = g++ + set FC = gfortran + set CC = gcc + set SFC = gfortran + set DMP_FLAGS = " " + set NETCDFPATH = /dependencies/netcdf + set HDF5PATH = /dependencies/hdf5 + + set DMP_LIB = " " + endif + + set RAP_DIR = /rap + + set ZLIBPATH = /usr + set SZLIBPATH = ${DEPS_PATH}/szip/2.1.1 + + if($use_netcdf3) then + set NETCDF_OPTION = " " + set HDF5_LIB = '-L$(HDF5PATH)/lib -lhdf5_hl -lhdf5 ' + set ZLIB_LIB = '-L$(ZLIBPATH)/lib64 -lz ' + set SZLIB_LIB = '-L$(SZLIBPATH)/lib ' + else + set NETCDF_OPTION = " " + set HDF5_LIB = '-L$(HDF5PATH)/lib -lhdf5_hl -lhdf5 ' + set ZLIB_LIB = '-L$(ZLIBPATH)/lib64 -lz ' + set SZLIB_LIB = '-L$(SZLIBPATH)/lib ' + endif + set NETCDF_LIB = '-L$(NETCDFPATH)/lib -lnetcdff -lnetcdf ' + set RAP_LIB = '-L$(RAP_DIR)/lib -lSpdb -lMdv -ldsserver -ldidss -lrapformats -ltoolsa -lrapmath -ldataport -ltdrp -leuclid -lstdc++ -lgcc_s' + + if($smp) then + set SMP_FLAGS = "-fopenmp " + endif + + set LOC_LIBS = '$(NETCDF_LIB) $(HDF5_LIB) $(ZLIB_LIB) $(SZLIB_LIB) $(DMP_LIB) $(RAP_LIB) -lm -lc -L/curl/lib/libcurl.a' + + set CXX_INCLUDES = '-I. -I$(RAP_DIR)/include ' + set CXX_US_FLAGS = '-Wl,-Bstatic ' + set CXX_COMPILE_OPTIONS = '-DUSE_MDV -DUSE_RAP_UTIL -DUNDERSCORE ' + + set CC_US_FLAGS = '-DDEBUG -traceback $(DEBUGFLAGS) $(UNDERSCORE) $(DMP_FLAGS) $(NETCDF_OPTION) ' + set CC_INCLUDES = "-I." + set CC_COMPILE_OPTIONS = " " + set CC_OPTIMIZATIONS = "-O3 " + + set FC_US_FLAGS = '$(NETCDF_OPTION) $(SMP_FLAGS) ' + set FC_INCLUDES = '-I. -I$(RMAPSNOW_HOME)/mpi_util -I$(RMAPSNOW_HOME)/src -I$(RMAPSNOW_HOME)/io/netcdf4 -I$(NETCDFPATH)/include -I$(RMAPSNOW_HOME)/share -I$(RMAPSNOW_HOME)/io/mdv -I$(RAP_DIR)/include' + set FC_COMPILE_OPTIONS = '-free #-fdefault-real-8' + set SFC_COMPILE_OPTIONS = '-fixed #-fdefault-real-8' + + set FC_OPTIMIZATIONS = '-O3 ' + set SFC_OPTIMIZATIONS = '-O3 ' + + set RANLIB = ranlib + + breaksw + + default: + echo "Do not know how to generate make_rules for $NODE_HDR" + exit + endsw + +# +# Generate a new make_rules file... +# + + if( -f make_rules ) then + mv make_rules make_rules.backup + cp make_rules.backup arch/make_rules.saved.${date_string} + endif + + cp arch/common make_rules + + set CXXFLAGS = '$(CXX_US_FLAGS) $(CXX_INCLUDES) $(CXX_COMPILE_OPTIONS) #$(SMP_FLAGS)' + set CFLAGS = '$(CC_US_FLAGS) $(CC_INCLUDES) $(CC_COMPILE_OPTIONS) $(CC_OPTIMIZATIONS) $(DMP_FLAGS) $(SMP_FLAGS)' + set FFLAGS = '$(FC_US_FLAGS) $(FC_INCLUDES) $(FC_COMPILE_OPTIONS) $(FC_OPTIMIZATIONS)' + set SFFLAGS = '$(FC_US_FLAGS) $(FC_INCLUDES) $(SFC_COMPILE_OPTIONS) $(SFC_OPTIMIZATIONS)' + set CPPFLAGS = '-I. $(DEBUGFLAGS) $(DMP_FLAGS) $(NETCDF_OPTION) -DUSE_MDV -DUSE_RAP_UTIL ' + set LDFLAGS = '$(CC_COMPILE_OPTIONS) $(SFC_OPTIMIZATIONS) ' + +cat >> make_rules << EOF +RMAPSNOW_HOME = ${RMAPSNOW_HOME} +NETCDFPATH = ${NETCDFPATH} +HDF5PATH = ${HDF5PATH} +ZLIBPATH = ${ZLIBPATH} +SZLIBPATH = ${SZLIBPATH} +RAP_DIR = ${RAP_DIR} + +#################################################### + +NETCDF_OPTION = ${NETCDF_OPTION} + +NETCDF_LIB = ${NETCDF_LIB} +HDF5_LIB = ${HDF5_LIB} +ZLIB_LIB = ${ZLIB_LIB} +SZLIB_LIB = ${SZLIB_LIB} + +DMP_LIB = ${DMP_LIB} +RAP_LIB = ${RAP_LIB} + +DEBUGFLAGS = ${DEBUGFLAGS} +UNDERSCORE = ${UNDERSCORE} +DMP_FLAGS = ${DMP_FLAGS} +SMP_FLAGS = ${SMP_FLAGS} + +CXX_US_FLAGS = ${CXX_US_FLAGS} +CXX_INCLUDES = ${CXX_INCLUDES} +CXX_COMPILE_OPTIONS = ${CXX_COMPILE_OPTIONS} + +CC_US_FLAGS = ${CC_US_FLAGS} +CC_INCLUDES = ${CC_INCLUDES} +CC_COMPILE_OPTIONS = ${CC_COMPILE_OPTIONS} + +FC_US_FLAGS = ${FC_US_FLAGS} +FC_INCLUDES = ${FC_INCLUDES} +FC_COMPILE_OPTIONS = ${FC_COMPILE_OPTIONS} +SFC_COMPILE_OPTIONS = ${SFC_COMPILE_OPTIONS} + +CC_OPTIMIZATIONS = ${CC_OPTIMIZATIONS} +FC_OPTIMIZATIONS = ${FC_OPTIMIZATIONS} +SFC_OPTIMIZATIONS = ${SFC_OPTIMIZATIONS} + +#################################################### + +CXX = ${CXX} +CXXFLAGS = ${CXXFLAGS} + +CC = ${CC} +CFLAGS = ${CFLAGS} + +FC = ${FC} +FFLAGS = ${FFLAGS} + +SFC = ${SFC} +SFFLAGS = ${SFFLAGS} + +LDFLAGS = ${LDFLAGS} + +CPP = ${CPP} +CPPFLAGS = ${CPPFLAGS} + +LOC_LIBS = ${LOC_LIBS} + +RANLIB = ${RANLIB} + +EOF + + cat arch/rules >> make_rules \ No newline at end of file diff --git a/templates/rmaps-now/rmapsnow.arm.cpu.config b/templates/rmaps-now/rmapsnow.arm.cpu.config new file mode 100644 index 0000000000000000000000000000000000000000..2b6935a60f427cd4ba75bd159494cc28a6ce3b38 --- /dev/null +++ b/templates/rmaps-now/rmapsnow.arm.cpu.config @@ -0,0 +1,57 @@ +[SERVER] +11.11.11.11 + +[DOWNLOAD] +rmaps-now/4.0 https://www.ium.cn/index.php/Home/Product/view/id/858.html + +[DEPENDENCY] +set -x +set -e +module purge +module use ./software/modulefiles +./jarvis -install zlib/1.2.12 gcc +./jarvis -install bisheng/2.1.0 com +module load bisheng2/2.1.0 +export CC=clang CXX=clang++ FC=flang F77=flang +./jarvis -install szip/2.1.1 clang +./jarvis -install hmpi/1.1.1 clang +module load hmpi1/1.1.1 +export CC=mpicc CXX=mpicxx FC=mpifort F77=mpifort +./jarvis -install hdf5/1.8.12/clang clang+mpi +./jarvis -install pnetcdf/1.11.2 clang+mpi +./jarvis -install netcdf/4.7.4/clang clang+mpi + +[ENV] +module purge +module use ./software/modulefiles +module use ./software/moduledeps/ +export OMP_NUM_THREADS=1 +export I_MPI_CC=clang +export CC=mpicc CXX=mpicxx FC=mpifort F77=mpifort +module load bisheng2/2.1.0 +module load hmpi1/1.1.1 +module load hdf5-clang/1.8.12 +module load netcdf-clang/4.7.4 +module load pnetcdf/1.11.2 +module load szip/2.1.1 +module load gcc7/zlib/1.2.12 + +[APP] +app_name = rmaps-now +build_dir = $JARVIS_ROOT/v2020-bak +binary_dir = $JARVIS_ROOT/v2020-bak +case_dir = $JARVIS_ROOT/NOW3km-040300/ + +[BUILD] +./configure +make -j + +[CLEAN] +make clean + +[RUN] +#run = mpirun -np 32 -mca pml ucx -mca btl ^vader,tcp,openib,uct +#binary = rmapsnow-all.exe +run = ./run-2020.csh +binary = +nodes = 1 diff --git a/templates/rmaps-now/rmapsnow.x86.cpu.config b/templates/rmaps-now/rmapsnow.x86.cpu.config new file mode 100644 index 0000000000000000000000000000000000000000..074f7f2583d9db577063803d041ec39af677456d --- /dev/null +++ b/templates/rmaps-now/rmapsnow.x86.cpu.config @@ -0,0 +1,52 @@ +[SERVER] +11.11.11.11 + +[DOWNLOAD] +rmaps-now/4.0 http://forecast.bcccsm.ncc-cma.net/web/?down_id=350 + +[DEPENDENCY] +set -x +set -e +module purge +./jarvis -install oneapi/2021.1.0 com +source /opt/intel/oneapi/setvars.sh +export CC=icc CXX=icpc FC=ifort F77=ifort +./jarvis -install szip/2.1.1 icc +./jarvis -install zlib/1.2.12 icc +export CC=mpiicc CXX=mpiicpc FC=mpiifort F77=mpiifort +./jarvis -install hdf5/1.8.12 icc +./jarvis -install pnetcdf/1.11.2 icc +./jarvis -install netcdf/4.7.4 icc + +[ENV] +module purge +source source /opt/intel/oneapi/setvars.sh +module use software/modulefiles +module use software/moduledeps/icc11 +export OMP_NUM_THREADS=1 +export I_MPI_CC=icc +module load hdf5/1.8.12 +module load netcdf/4.7.4 +module load pnetcdf/1.11.2 +module load szip/2.1.1 +module load zlib/1.2.12 + +[APP] +app_name = rmaps-now +build_dir = $JARVIS_ROOT/v2020_b1 +binary_dir = $JARVIS_ROOT/v2020_b1 +case_dir = $JARVIS_ROOT/NOW3km-040300/ + +[BUILD] +./configure +make -j + +[CLEAN] +make clean + +[RUN] +#run = mpirun -np 16 +#binary = rmapsnow-all.exe +run = ./run-2020-x86.csh +binary = +nodes = 1 diff --git a/templates/rmaps-now/run-ARM.csh b/templates/rmaps-now/run-ARM.csh new file mode 100644 index 0000000000000000000000000000000000000000..9cbb57df9e9cbe03e73dcb1f92817436c74e1a07 --- /dev/null +++ b/templates/rmaps-now/run-ARM.csh @@ -0,0 +1,85 @@ +#!/bin/csh -f + set install_dir = /v2020 + setenv RUNDIR /NOW3km-040300 + + set echo + set ln_name = vdras.inst-3km.start-2022-09-04_03:00:00_UTC.exe + limit stacksize unlimited + + setenv EXEDIR $install_dir + set output_dir = $RUNDIR/output + set input_dir = $RUNDIR/input + + cd $RUNDIR + + rm -f core* fort.* + rm -f std.* + rm -f new_start_time + mv -f namelist.input namelist.input.old +######################################################### +sed -i 's/\(.*#\).*/\1/g' namelist.input +sed -i 's/#//g' namelist.input +sed -i 's/\(.*\!\).*/\1/g' namelist.input +sed -i 's/\!//g' namelist.input +sed -i 's/[ \t]*$//g' namelist.input +sed -i '/^$/d' namelist.input + +######################################################### +# +# Run the program. +# +######################################################### + + ln -sf $EXEDIR/base_data/vcp.* ./ + ln -sf $EXEDIR/base_data/psadilookup.dat ./ + ln -sf $EXEDIR/base_data/pblh.dat ./ + ln -sf $EXEDIR/base_data/pblh2.dat ./ + ln -sf $EXEDIR/main/rmapsnow-all.exe ./${ln_name} + +########################################################### +# use dsub to run + +cat > run.sh << \EOF +#!/bin/bash +#DSUB -n rmapsnow-arm +#DSUB --job_type cosched +#DSUB -N 2 +#DSUB -R "cpu=128;mem=256000" +#DSUB -A XXX +#DSUB -q root.default +#DSUB -o rmapsnow-2020_%J.log +#DSUB -e rmapsnow-2020_err_%J.log + +if [ "${CCSCHEDULER_ALLOC_FILE}" != "" ]; then + echo " " + ls -la ${CCSCHEDULER_ALLOC_FILE} + echo ------ cat ${CCSCHEDULER_ALLOC_FILE} + cat ${CCSCHEDULER_ALLOC_FILE} +fi + +export HOSTFILE=/tmp/hostfile.$$ +rm -rf $HOSTFILE +touch $HOSTFILE +# print a[1]" slots="a[3] >> fff +ntask=`cat ${CCSCHEDULER_ALLOC_FILE} | awk -v fff="$HOSTFILE" '{} +{ + split($0, a, " ") + if (length(a[1]) >0 && length(a[3]) >0) { + print a[1]":"a[2]>> fff + total_task+=a[3] + } +}END{print total_task}'` +rm -rf rmapsnow* +echo "openmpi hostfile $HOSTFILE generated:" +echo "-----------------------" +cat $HOSTFILE +echo "-----------------------" +echo "Total tasks is $ntask" +echo "mpirun -hostfile $HOSTFILE -n $ntask " +date +mpirun -hostfile $HOSTFILE -np 200 -map-by ppr:100:node:pe=1 --rank-by core --mca plm_rsh_agent /opt/batch/agent/tools/dstart ./vdras.inst-3km.start-2022-09-04_03:00:00_UTC.exe +date +\EOF + +dsub -s run.sh +#####################END###END###END##################### \ No newline at end of file diff --git a/templates/rmaps-now/run-x86.csh b/templates/rmaps-now/run-x86.csh new file mode 100644 index 0000000000000000000000000000000000000000..f77f9e8067d950c74b3f99f47a019a17e44532ff --- /dev/null +++ b/templates/rmaps-now/run-x86.csh @@ -0,0 +1,88 @@ +#!/bin/csh -f + set install_dir = /v2020 + setenv RUNDIR /NOW3km-040300 + + set echo + + set ln_name = vdras.inst-3km.start-2022-09-04_03:00:00_UTC.exe + limit stacksize unlimited + + setenv EXEDIR $install_dir + set output_dir = $RUNDIR/output + set input_dir = $RUNDIR/input + + cd $RUNDIR + + rm -f core* fort.* + rm -f std.* + rm -f new_start_time + mv -f namelist.input namelist.input.old +######################################################### +sed -i 's/\(.*#\).*/\1/g' namelist.input +sed -i 's/#//g' namelist.input +sed -i 's/\(.*\!\).*/\1/g' namelist.input +sed -i 's/\!//g' namelist.input +sed -i 's/[ \t]*$//g' namelist.input +sed -i '/^$/d' namelist.input + +######################################################### +# +# Run the program. +# +######################################################### + + ln -sf $EXEDIR/base_data/vcp.* ./ + ln -sf $EXEDIR/base_data/psadilookup.dat ./ + ln -sf $EXEDIR/base_data/pblh.dat ./ + ln -sf $EXEDIR/base_data/pblh2.dat ./ + ln -sf $EXEDIR/main/rmapsnow-all.exe ./${ln_name} + +########################################################### +# use dsub to run + +cat > run.sh << \EOF +#!/bin/bash +#DSUB -n rmapsnow +#DSUB --job_type cosched +#DSUB -N 2 +#DSUB -R "cpu=100;mem=320000" +#DSUB -A XXX +#DSUB -q root.default +#DSUB -o rmapsnow-2020_%J.log +#DSUB -e rmapsnow-2020_err_%J.log +#DSUB -l XXX + +if [ "${CCSCHEDULER_ALLOC_FILE}" != "" ]; then + echo " " + ls -la ${CCSCHEDULER_ALLOC_FILE} + echo ------ cat ${CCSCHEDULER_ALLOC_FILE} + cat ${CCSCHEDULER_ALLOC_FILE} +fi + +export HOSTFILE=/tmp/hostfile.$$ +rm -rf $HOSTFILE +touch $HOSTFILE +# print a[1]" slots="a[3] >> fff +ntask=`cat ${CCSCHEDULER_ALLOC_FILE} | awk -v fff="$HOSTFILE" '{} +{ + split($0, a, " ") + if (length(a[1]) >0 && length(a[3]) >0) { + print a[1]":"a[2]>> fff + total_task+=a[3] + } +}END{print total_task}'` +rm -rf rmapsnow* +rm -rf nc.vg.* +export OMP_NUM_THREADS=1 +ulimit -n 1000000 +ulimit -s unlimited +echo 3 > /proc/sys/vm/drop_caches +date +#mpirun -hostfile $HOSTFILE -ppn 100 -launcher ssh -launcher-exec /opt/batch/agent/tools/dstart valgrind --leak-check=full --track-origins=yes --log-file=nc.vg.%p ./vdras.inst-3km.start-2022-09-04_03:00:00_UTC.exe +mpirun -hostfile $HOSTFILE -ppn 100 -launcher ssh -launcher-exec /opt/batch/agent/tools/dstart ./vdras.inst-3km.start-2022-09-04_03:00:00_UTC.exe + +date +\EOF + +dsub -s run.sh +#####################END###END###END##################### \ No newline at end of file