From 52f6ed458c2f6833b6b0a79d5d930896a8d438ac Mon Sep 17 00:00:00 2001 From: yuanchunlin1 <798049430@qq.com> Date: Tue, 17 May 2022 19:16:59 +0800 Subject: [PATCH 1/2] add-CMAQ --- .../optimized-routines/20.02/clang/install.sh | 14 +++ package/optimized-routines/20.02/install.sh | 11 ++ .../CMAQ/5.3.1/data.CMAQ.arm_kgcc.cpu.config | 110 ++++++++++++++++++ 3 files changed, 135 insertions(+) create mode 100644 package/optimized-routines/20.02/clang/install.sh create mode 100644 package/optimized-routines/20.02/install.sh create mode 100644 templates/CMAQ/5.3.1/data.CMAQ.arm_kgcc.cpu.config diff --git a/package/optimized-routines/20.02/clang/install.sh b/package/optimized-routines/20.02/clang/install.sh new file mode 100644 index 0000000..9e41792 --- /dev/null +++ b/package/optimized-routines/20.02/clang/install.sh @@ -0,0 +1,14 @@ +#!/bin/bash +set -x +set -e +. ${DOWNLOAD_TOOL} -u https://codeload.github.com/ARM-software/optimized-routines/tar.gz/v20.02 -f optimized-routines-20.02.tar.gz +cd ${JARVIS_TMP} +tar zxvf ${JARVIS_DOWNLOAD}/optimized-routines-20.02.tar.gz +cd optimized-routines-20.02 +sed -i "13c\CC = clang" config.mk.dist +sed -i "19c\HOST_CC = clang" config.mk.dist +sed -i "14c\HOST_CC = clang" Makefile +cp config.mk.dist config.mk +make -j16 +cp -r ./build/* $1 + diff --git a/package/optimized-routines/20.02/install.sh b/package/optimized-routines/20.02/install.sh new file mode 100644 index 0000000..a86683a --- /dev/null +++ b/package/optimized-routines/20.02/install.sh @@ -0,0 +1,11 @@ +#!/bin/bash +set -x +set -e +. ${DOWNLOAD_TOOL} -u https://codeload.github.com/ARM-software/optimized-routines/tar.gz/v20.02 -f optimized-routines-20.02.tar.gz +cd ${JARVIS_TMP} +tar zxvf ${JARVIS_DOWNLOAD}/optimized-routines-20.02.tar.gz +cd optimized-routines-20.02 +cp config.mk.dist config.mk +make -j16 +cp -r ./build/* $1 + diff --git a/templates/CMAQ/5.3.1/data.CMAQ.arm_kgcc.cpu.config b/templates/CMAQ/5.3.1/data.CMAQ.arm_kgcc.cpu.config new file mode 100644 index 0000000..ab113d9 --- /dev/null +++ b/templates/CMAQ/5.3.1/data.CMAQ.arm_kgcc.cpu.config @@ -0,0 +1,110 @@ +[SERVER] +11.11.11.11 + +[DOWNLOAD] +ioapi/3.2 https://codeload.github.com/cjcoats/ioapi-3.2/tar.gz/2020111 ioapi-3.2-2020111.tar.gz +CMAQ/5.3.1 https://codeload.github.com/USEPA/CMAQ/tar.gz/CMAQv5.3.1_19Dec2019 CMAQ-CMAQv5.3.1_19Dec2019.tar.gz + +[DEPENDENCY] +module use ${JARVIS_ROOT}/software/modulefiles +module purge +./jarvis -install kgcc9/9.3.1 com +module load kgcc9/9.3.1 +./jarvis -install hmpi/1.1.1 gcc +module load hmpi1/1.1.1 +export CC=mpicc CXX=mpicxx FC=mpifort F77=mpifort +./jarvis -install hdf5/1.10.1 gcc+mpi +module load hdf5/1.10.1 +./jarvis -install pnetcdf/1.11.2 gcc+mpi +./jarvis -install netcdf/4.7.0 gcc+mpi +module add netcdf/4.7.0 +./jarvis -install optimized-routines/20.02 gcc+mpi +module load optimized-routines/20.02 +cd ${JARVIS_TMP} +rm -rf ioapi-3.2 CMAQ-CMAQv5.3.1_19Dec2019 +tar -xvf ${JARVIS_DOWNLOAD}/ioapi-3.2-2020111.tar.gz +tar -xvf ${JARVIS_DOWNLOAD}/CMAQ-CMAQv5.3.1_19Dec2019.tar.gz +mv ioapi-3.2-2020111 ioapi-3.2 + +[ENV] +module use ./software/modulefiles +module purge +module load kgcc9/9.3.1 +module load hmpi1/1.1.1 +module load hdf5/1.10.1 +module load netcdf/4.7.0 +module load optimized-routines/20.02 + +[APP] +app_name = CMAQ +build_dir = ${JARVIS_TMP} +binary_dir = +case_dir = + +[BUILD] +set -x +cd ${JARVIS_TMP} +cd ioapi-3.2 +cp ioapi/Makeinclude.Linux2_ia64gfort ioapi/Makeinclude.Linux4_aarch64 +sed -i "14c\CC = mpicc" ioapi/Makeinclude.Linux4_aarch64 +sed -i "15c\CXX = mpicxx" ioapi/Makeinclude.Linux4_aarch64 +sed -i "16c\FC = mpifort" ioapi/Makeinclude.Linux4_aarch64 +sed -i "30c\#FSFLAGS = -save" ioapi/Makeinclude.Linux4_aarch64 +cp ioapi/Makefile.nocpl ioapi/Makefile +export HOME=${JARVIS_TMP} +cp m3tools/Makefile.nocpl m3tools/Makefile +sed -i "65c\LIBS = -L${OBJDIR} -lioapi -L${JARVIS_ROOT}/software/libs/kgcc9/hmpi1/netcdf/4.7.0/lib/ -lnetcdff -lnetcdf -L${JARVIS_ROOT}/software/libs/kgcc9/hmpi1/hdf5/1.10.1/lib -lhdf5_hl -lhdf5 -lz \$(OMPLIBS) \$(ARCHLIB) \$(ARCHLIBS)" m3tools/Makefile +sed -i "146c\LIBS = -L${OBJDIR} -lioapi -L${JARVIS_ROOT}/software/libs/kgcc9/hmpi1/netcdf/4.7.0/lib/ -lnetcdff -lnetcdf -L${JARVIS_ROOT}/software/libs/kgcc9/hmpi1/hdf5/1.10.1/lib -lhdf5_hl -lhdf5 -lz \$(OMPLIBS) \$(ARCHLIB) \$(ARCHLIBS)" m3tools/Makefile + +cp Makefile.template Makefile +sed -i "138c\BIN = Linux4_aarch64" Makefile +sed -i "139c\BASEDIR = \${PWD}" Makefile +sed -i "140c\INSTALL = \${HOME}" Makefile +sed -i "141c\LIBINST = \$(INSTALL)/\$(BIN)" Makefile +sed -i "142c\BININST = \$(INSTALL)/\$(BIN)" Makefile +sed -i "143c\CPLMODE = nocpl" Makefile +sed -i '144c\IOAPIDEFS = "-DIOAPI_NCF4"' Makefile +sed -i "193c\NCFLIBS = -L${JARVIS_ROOT}/software/libs/kgcc9/hmpi1/netcdf/4.7.0/lib/ -lnetcdff -lnetcdf -L${JARVIS_ROOT}/software/libs/kgcc9/hmpi1/hdf5/1.10.1/lib -lhdf5_hl -lhdf5 -lz" Makefile +make BIN=Linux4_aarch64 +sed -i "174c\ COMMON / BSTATE3 / " ioapi/STATE3.EXT +sed -i "175c\ & P_ALP3, P_BET3, P_GAM3, " ioapi/STATE3.EXT +sed -i "176c\ & XCENT3, YCENT3, XORIG3, YORIG3, XCELL3, YCELL3, " ioapi/STATE3.EXT +sed -i "177c\ & VGTYP3, VGTOP3, VGLVS3, " ioapi/STATE3.EXT +sed -i "178c\ & FINIT3, COUNT3, CURDATE, CURTIME, LOGDEV, " ioapi/STATE3.EXT +sed -i "179c\ & CDFID3, FTYPE3, SDATE3, STIME3, TSTEP3, MXREC3, " ioapi/STATE3.EXT +sed -i "180c\ & NVARS3, NLAYS3, NROWS3, NCOLS3, NTHIK3, " ioapi/STATE3.EXT +sed -i "181c\ & TINDX3, NINDX3, SINDX3, LINDX3, WCNDX3, WRNDX3, " ioapi/STATE3.EXT +sed -i "182c\ & XINDX3, YINDX3, ZINDX3, DXNDX3, DYNDX3, VINDX3, " ioapi/STATE3.EXT +sed -i "183c\ & GDTYP3, VOLAT3, RONLY3, " ioapi/STATE3.EXT +sed -i "184c\ & BSIZE3, LDATE3, LTIME3, NDATE3, NTIME3, ILAST3, " ioapi/STATE3.EXT +sed -i "185c\ & VTYPE3, " ioapi/STATE3.EXT +sed -i "186c\ & ILCNT3, NLIST3, IFRST3, ILIST3, BEGRC3, ENDRC3, " ioapi/STATE3.EXT +sed -i "191c\ COMMON / CSTATE3 / " ioapi/STATE3.EXT + +cd ${JARVIS_TMP}/CMAQ-CMAQv5.3.1_19Dec2019 +sed -i "20c\set CMAQ_HOME = ${JARVIS_TMP}/CMAQ_Project" bldit_project.csh +./bldit_project.csh +cd ../CMAQ_Project/ +sed -i "138c\ case kgcc:" config_cmaq.csh +sed -i "140c\ setenv IOAPI_MOD_DIR ${JARVIS_ROOT}/tmp/ioapi-3.2/Linux4_aarch64/" config_cmaq.csh +sed -i "141c\ setenv IOAPI_INCL_DIR ${JARVIS_ROOT}/tmp/ioapi-3.2/ioapi/" config_cmaq.csh +sed -i "142c\ setenv IOAPI_LIB_DIR ${JARVIS_ROOT}/tmp/ioapi-3.2/Linux4_aarch64/" config_cmaq.csh +sed -i "143c\ setenv NETCDF_LIB_DIR ${JARVIS_ROOT}/software/libs/kgcc9/hmpi1/netcdf/4.7.0/lib/" config_cmaq.csh +sed -i "144c\ setenv NETCDF_INCL_DIR ${JARVIS_ROOT}/software/libs/kgcc9/hmpi1/netcdf/4.7.0/include/" config_cmaq.csh +sed -i "147c\ setenv MPI_LIB_DIR ${JARVIS_ROOT}/software/mpi/hmpi1-kgcc9/1.1.1/" config_cmaq.csh +sed -i "145c\ setenv NETCDFF_LIB_DIR ${JARVIS_ROOT}/software/libs/kgcc9/hmpi1/netcdf/4.7.0/lib/ #> netCDF Fortran directory path" config_cmaq.csh +sed -i "146c\ setenv NETCDFF_INCL_DIR ${JARVIS_ROOT}/software/libs/kgcc9/hmpi1/netcdf/4.7.0/include/ #> netCDF Fortran directory path" config_cmaq.csh +sed -i "151c\ setenv myFC mpifort" config_cmaq.csh +sed -i "152c\ setenv myCC mpicc" config_cmaq.csh +sed -i '158c\ setenv myLINK_FLAG "-fopenmp"' config_cmaq.csh +sed -i "161c\ setenv mpi_lib "-lmpi" #> -lmpich for mvapich or -lmpi for openmpi" config_cmaq.csh +sed -i '184c\ setenv netcdf_lib "-lnetcdf -lnetcdff -lgomp" #> -lnetcdff -lnetcdf for netCDF v4.2.0 and later' config_cmaq.csh +./config_cmaq.csh kgcc 9.3.1 +cd CCTM/scripts/ +./bldit_cctm.csh kgcc 9.3.1 + + +[RUN] +run = +binary = +nodes = 1 -- Gitee From bb743445f1b101bac0fdba07a07f5d238383ed4d Mon Sep 17 00:00:00 2001 From: yuanchunlin1 Date: Tue, 17 May 2022 19:38:41 +0800 Subject: [PATCH 2/2] add-CMAQ --- templates/CMAQ/5.3.1/data.CMAQ.arm_kgcc.cpu.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/CMAQ/5.3.1/data.CMAQ.arm_kgcc.cpu.config b/templates/CMAQ/5.3.1/data.CMAQ.arm_kgcc.cpu.config index ab113d9..3bc0bbd 100644 --- a/templates/CMAQ/5.3.1/data.CMAQ.arm_kgcc.cpu.config +++ b/templates/CMAQ/5.3.1/data.CMAQ.arm_kgcc.cpu.config @@ -27,7 +27,7 @@ tar -xvf ${JARVIS_DOWNLOAD}/CMAQ-CMAQv5.3.1_19Dec2019.tar.gz mv ioapi-3.2-2020111 ioapi-3.2 [ENV] -module use ./software/modulefiles +module use ${JARVIS_ROOT}/software/modulefiles module purge module load kgcc9/9.3.1 module load hmpi1/1.1.1 -- Gitee