diff --git a/benchmark/README.md b/benchmark/README.md
old mode 100644
new mode 100755
diff --git a/benchmark/gemm/Makefile b/benchmark/gemm/Makefile
old mode 100644
new mode 100755
diff --git a/benchmark/gemm/gemm.cpp b/benchmark/gemm/gemm.cpp
old mode 100644
new mode 100755
diff --git a/benchmark/gemm/run.sh b/benchmark/gemm/run.sh
old mode 100644
new mode 100755
diff --git a/benchmark/mpi/reduce_avg.c b/benchmark/mpi/reduce_avg.c
old mode 100644
new mode 100755
diff --git a/benchmark/mpi/run.sh b/benchmark/mpi/run.sh
old mode 100644
new mode 100755
diff --git a/benchmark/omp/Makefile b/benchmark/omp/Makefile
old mode 100644
new mode 100755
diff --git a/benchmark/omp/caclPI.cpp b/benchmark/omp/caclPI.cpp
old mode 100644
new mode 100755
diff --git a/benchmark/omp/gramSchmidt_gpu.F90 b/benchmark/omp/gramSchmidt_gpu.F90
old mode 100644
new mode 100755
diff --git a/benchmark/omp/gramSchmidt_gpu.c b/benchmark/omp/gramSchmidt_gpu.c
old mode 100644
new mode 100755
diff --git a/benchmark/omp/run.sh b/benchmark/omp/run.sh
old mode 100644
new mode 100755
diff --git a/benchmark/p2p/Makefile b/benchmark/p2p/Makefile
old mode 100644
new mode 100755
diff --git a/benchmark/p2p/p2pBandwidthLatencyTest.cu b/benchmark/p2p/p2pBandwidthLatencyTest.cu
old mode 100644
new mode 100755
diff --git a/benchmark/p2p/run.sh b/benchmark/p2p/run.sh
old mode 100644
new mode 100755
diff --git a/benchmark/p2p/shared.mk b/benchmark/p2p/shared.mk
old mode 100644
new mode 100755
diff --git a/container/ncl/data.NCL.arm.cpu.config.def b/container/ncl/data.NCL.arm.cpu.config.def
new file mode 100644
index 0000000000000000000000000000000000000000..16c01d78f1798bfb48bdd7119ab79ce2469cad4c
--- /dev/null
+++ b/container/ncl/data.NCL.arm.cpu.config.def
@@ -0,0 +1,34 @@
+BootStrap: docker
+From: openeuler/openeuler:20.03
+
+%environment
+ source /etc/profile || true
+ cd /hpcrunner
+ source env.sh
+
+%post
+ # Install the necessary development environment
+ yum install -y environment-modules git dmidecode pciutils wget vim
+ # Install base gcc
+ yum install -y gcc gcc-c++ gcc-gfortran glibc-devel make libgfortran
+ # install network package
+ yum install -y tcsh tcl lsof tk bc
+ source /etc/profile || true
+ git config --global http.sslVerify false
+ git clone https://gitee.com/openeuler/hpcrunner
+ cd hpcrunner
+ source ./init.sh
+ # add your personal files here
+
+ # Switch config
+ ./jarvis -use templates/ncl/6.6.2/data.NCL.arm.cpu.config
+ # download dependency
+ ./jarvis -d
+ # install dependency
+ ./jarvis -dp
+ # build hpc
+ ./jarvis -b
+ # run hpc
+ ./jarvis -r
+ # clean tmp directory
+ rm -rf downloads tmp
diff --git a/container/ncl/data.NCL.x86.cpu.config.def b/container/ncl/data.NCL.x86.cpu.config.def
new file mode 100644
index 0000000000000000000000000000000000000000..8f8b66cc84d23ab9f7e62ef07e2b151e65a9540f
--- /dev/null
+++ b/container/ncl/data.NCL.x86.cpu.config.def
@@ -0,0 +1,36 @@
+BootStrap: docker
+From: openeuler/openeuler:20.03
+
+%environment
+ source /etc/profile || true
+ cd /hpcrunner
+ source env.sh
+
+%post
+ # Install the necessary development environment
+ yum install -y environment-modules git dmidecode pciutils wget vim glib2-devel zlib libX11 libX11-devel flex fontconfig flex-devel byacc libXext xz libXmu-devel expat-devel
+ # Install base gcc
+ yum install -y gcc gcc-c++ gcc-gfortran glibc-devel make libgfortran imake bzip2 bzip2-devel libXrender-devel libXaw libXaw-devel libcurl-devel libcurl
+ # install network package
+ yum install -y tcsh tcl lsof tk bc
+ source /etc/profile || true
+ git config --global http.sslVerify false
+ git clone https://gitee.com/openeuler/hpcrunner
+ cd hpcrunner
+ source ./init.sh
+ # add your personal files here
+ sed -i '12c make -j2 && make install' package/gcc/10.3.0/install.sh
+ sed -i '$c make -j2 install' package/openmpi/4.1.2/install.sh
+ sed -i '4c\ . ${DOWNLOAD_TOOL} -u https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-10.3.0/gcc-10.3.0.tar.gz' package/gcc/10.3.0/install.sh
+ # Switch config
+ ./jarvis -use templates/ncl/6.6.2/data.NCL.x86.cpu.config
+ # download dependency
+ ./jarvis -d
+ # install dependency
+ ./jarvis -dp
+ # build hpc
+ ./jarvis -b
+ # run hpc
+ ./jarvis -r
+ # clean tmp directory
+ rm -rf downloads tmp
diff --git a/container/nco/data.NCO.arm.cpu.config.def b/container/nco/data.NCO.arm.cpu.config.def
new file mode 100644
index 0000000000000000000000000000000000000000..a9ece4f466bd89dafedb4c6c2a1983a14971ca4d
--- /dev/null
+++ b/container/nco/data.NCO.arm.cpu.config.def
@@ -0,0 +1,34 @@
+BootStrap: docker
+From: openeuler/openeuler:20.03
+
+%environment
+ source /etc/profile || true
+ cd /hpcrunner
+ source env.sh
+
+%post
+ # Install the necessary development environment
+ yum install -y environment-modules git dmidecode pciutils wget vim expat-devel
+ # Install base gcc
+ yum install -y gcc gcc-c++ gcc-gfortran glibc-devel make libgfortran
+ # install network package
+ yum install -y tcsh tcl lsof tk bc
+ source /etc/profile || true
+ git config --global http.sslVerify false
+ git clone https://gitee.com/openeuler/hpcrunner
+ cd hpcrunner
+ source ./init.sh
+ # add your personal files here
+
+ # Switch config
+ ./jarvis -use templates/nco/5.1.4/data.NCO.arm.cpu.config
+ # download dependency
+ ./jarvis -d
+ # install dependency
+ ./jarvis -dp
+ # build hpc
+ ./jarvis -b
+ # run hpc
+ ./jarvis -r
+ # clean tmp directory
+ rm -rf downloads tmp
diff --git a/container/nco/data.NCO.x86.cpu.config.def b/container/nco/data.NCO.x86.cpu.config.def
new file mode 100644
index 0000000000000000000000000000000000000000..37774cdca1301b686018e33d6aeccabecd6d8b80
--- /dev/null
+++ b/container/nco/data.NCO.x86.cpu.config.def
@@ -0,0 +1,37 @@
+BootStrap: docker
+From: openeuler/openeuler:20.03
+
+%environment
+ source /etc/profile || true
+ cd /hpcrunner
+ source env.sh
+
+%post
+ # Install the necessary development environment
+ yum install -y environment-modules git dmidecode pciutils wget vim glib2-devel zlib libX11 libX11-devel flex fontconfig flex-devel byacc libXext xz libXmu-devel expat-devel
+ # Install base gcc
+ yum install -y gcc gcc-c++ gcc-gfortran glibc-devel make libgfortran imake bzip2 bzip2-devel libXrender-devel libXaw libXaw-devel libcurl-devel libcurl
+ # install network package
+ yum install -y tcsh tcl lsof tk bc
+ source /etc/profile || true
+ git config --global http.sslVerify false
+ git clone https://gitee.com/openeuler/hpcrunner
+ cd hpcrunner
+ source ./init.sh
+ # add your personal files here
+ sed -i '12c make -j2 && make install' package/gcc/10.3.0/install.sh
+ sed -i '$c make -j2 install' package/openmpi/4.1.2/install.sh
+ sed -i '4c\ . ${DOWNLOAD_TOOL} -u https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-10.3.0/gcc-10.3.0.tar.gz' package/gcc/10.3.0/install.sh
+ # Switch config
+ ./jarvis -use templates/nco/5.1.4/data.NCO.x86.cpu.config
+ # download dependency
+
+ ./jarvis -d
+ # install dependency
+ ./jarvis -dp
+ # build hpc
+ ./jarvis -b
+ # run hpc
+ ./jarvis -r
+ # clean tmp directory
+ rm -rf downloads tmp
diff --git a/container/ncview/data.ncview.x86.cpu.config.def b/container/ncview/data.ncview.x86.cpu.config.def
new file mode 100644
index 0000000000000000000000000000000000000000..dfe95725102eca92e557139319f2a75133e512b9
--- /dev/null
+++ b/container/ncview/data.ncview.x86.cpu.config.def
@@ -0,0 +1,35 @@
+BootStrap: docker
+From: openeuler/openeuler:20.03
+
+%environment
+ source /etc/profile || true
+ cd /hpcrunner
+ source env.sh
+
+%post
+ # Install the necessary development environment
+ yum install -y environment-modules git dmidecode pciutils wget vim glib2-devel zlib libX11 libX11-devel flex fontconfig flex-devel byacc libXext xz libXmu-devel expat-devel
+ # Install base gcc
+ yum install -y gcc gcc-c++ gcc-gfortran glibc-devel make libgfortran imake bzip2 bzip2-devel libXrender-devel libXaw libXaw-devel libcurl-devel libcurl # install network package
+ yum install -y tcsh tcl lsof tk bc
+ source /etc/profile || true
+ git config --global http.sslVerify false
+ git clone https://gitee.com/openeuler/hpcrunner
+ cd hpcrunner
+ source ./init.sh
+ # add your personal files here
+ sed -i '12c make -j2 && make install' package/gcc/10.3.0/install.sh
+ sed -i '$c make -j2 install' package/openmpi/4.1.2/install.sh
+ sed -i '4c\ . ${DOWNLOAD_TOOL} -u https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-10.3.0/gcc-10.3.0.tar.gz' package/gcc/10.3.0/install.sh
+ # Switch config
+ ./jarvis -use templates/ncview/2.1.7/data.ncview.x86.cpu.config
+ # download dependency
+ ./jarvis -d
+ # install dependency
+ ./jarvis -dp
+ # build hpc
+ ./jarvis -b
+ # run hpc
+ ./jarvis -r
+ # clean tmp directory
+ rm -rf downloads tmp
diff --git "a/doc/ncl_nco_ncview/\343\200\212\345\237\272\344\272\216openEuler\347\232\204ncl_nco_ncview\350\275\257\344\273\266\346\265\213\350\257\225\346\212\245\345\221\212\343\200\213.md" "b/doc/ncl_nco_ncview/\343\200\212\345\237\272\344\272\216openEuler\347\232\204ncl_nco_ncview\350\275\257\344\273\266\346\265\213\350\257\225\346\212\245\345\221\212\343\200\213.md"
new file mode 100644
index 0000000000000000000000000000000000000000..4316eac098173bbdaa5484a0a3b31935d2f1ce2f
--- /dev/null
+++ "b/doc/ncl_nco_ncview/\343\200\212\345\237\272\344\272\216openEuler\347\232\204ncl_nco_ncview\350\275\257\344\273\266\346\265\213\350\257\225\346\212\245\345\221\212\343\200\213.md"
@@ -0,0 +1,784 @@
+# 《基于openEuler的NCL/NCO/NCVIEW软件测试报告》
+
+## 1.规范性自检
+
+项目使用了Artistic Style对文件进行格式化
+
+AStyle,即Artistic Style,是一个可用于C, C++, C++/CLI, Objective‑C, C# 和Java编程语言格式化和美化的工具。我们在使用编辑器的缩进(TAB)功能时,由于不同编辑器的差别,有的插入的是制表符,有的是2个空格,有的是4个空格。这样如果别人用另一个编辑器来阅读程序时,可能会由于缩进的不同,导致阅读效果一团糟。为了解决这个问题,使用C++开发了一个插件,它可以自动重新缩进,并手动指定空格的数量,自动格式化源文件。它是可以通过命令行使用,也可以作为插件,在其他IDE中使用。
+
+文件格式化配置参考文件`config/mfem.astylerc`,文件内容如下
+
+```astylerc
+--style=allman
+--indent=spaces=3
+--keep-one-line-statements
+--keep-one-line-blocks
+--pad-header
+--max-code-length=80
+--max-instatement-indent=80
+--min-conditional-indent=0
+--indent-col1-comments
+--indent-labels
+--break-after-logical
+--add-brackets
+--indent-switches
+--convert-tabs
+--lineend=linux
+--suffix=none
+--preserve-date
+--formatted
+```
+
+检查代码规范性,可以通过使用AStyle对所有源码进行重新格式化,然后使用git查看文件修改。
+
+统计代码不规范内容。
+## NCL
+### 1.1.选择统计文件类型
+
+统计项目文件类型及其文件数量
+
+使用python编写脚本文件
+
+```python
+import os
+
+print(os.getcwd())
+
+def getAllFiles(targetDir):
+ files = []
+ listFiles = os.listdir(targetDir)
+ for i in range(0, len(listFiles)):
+ path = os.path.join(targetDir, listFiles[i])
+ if os.path.isdir(path):
+ files.extend(getAllFiles(path))
+ elif os.path.isfile(path):
+ files.append(path)
+ return files
+
+all_files = getAllFiles(os.curdir)
+type_dict = dict()
+
+for each_file in all_files:
+ if os.path.isdir(each_file):
+ type_dict.setdefault("directory", 0)
+ type_dict["directory"] += 1
+ else:
+ ext = os.path.splitext(each_file)[1]
+ type_dict.setdefault(ext, 0)
+ type_dict[ext] += 1
+
+for each_type in dict(sorted(type_dict.items(), reverse=True, key=lambda item: item[1])).keys():
+ print("当前文件夹下共有[%s]的文件%d个" % (each_type, type_dict[each_type]))
+```
+
+在NCL项目根目录下运行,运行结果如下
+
+```bash
+当前文件夹下共有[.f]的文件3857个
+当前文件夹下共有[.c]的文件1481个
+当前文件夹下共有[.m]的文件882个
+当前文件夹下共有[]的文件852个
+当前文件夹下共有[.h]的文件826个
+当前文件夹下共有[.table]的文件618个
+当前文件夹下共有[.rgb]的文件270个
+当前文件夹下共有[.ncl]的文件259个
+当前文件夹下共有[.sed]的文件84个
+当前文件夹下共有[.res]的文件63个
+当前文件夹下共有[.nc]的文件58个
+当前文件夹下共有[.sh]的文件52个
+当前文件夹下共有[.gc]的文件43个
+当前文件夹下共有[.cdf]的文件36个
+当前文件夹下共有[.specific]的文件32个
+当前文件夹下共有[.fc]的文件31个
+当前文件夹下共有[.dat]的文件27个
+当前文件夹下共有[.f90]的文件23个
+当前文件夹下共有[.gp]的文件22个
+当前文件夹下共有[.csh]的文件14个
+当前文件夹下共有[.asc]的文件14个
+当前文件夹下共有[.ttf]的文件13个
+当前文件夹下共有[.o]的文件12个
+当前文件夹下共有[.doc]的文件11个
+当前文件夹下共有[.py]的文件9个
+当前文件夹下共有[.ncmap]的文件8个
+当前文件夹下共有[.txt]的文件6个
+当前文件夹下共有[.xml]的文件6个
+当前文件夹下共有[.md]的文件5个
+当前文件夹下共有[.grb2]的文件5个
+当前文件夹下共有[.l]的文件4个
+当前文件夹下共有[.areas]的文件4个
+当前文件夹下共有[.java]的文件4个
+当前文件夹下共有[.ksh]的文件3个
+当前文件夹下共有[.PGI]的文件3个
+当前文件夹下共有[.INTEL]的文件3个
+当前文件夹下共有[.GNU]的文件3个
+当前文件夹下共有[.yml]的文件3个
+当前文件夹下共有[.csv]的文件2个
+当前文件夹下共有[.dbf]的文件2个
+当前文件夹下共有[.shx]的文件2个
+当前文件夹下共有[.shp]的文件2个
+当前文件夹下共有[.prj]的文件2个
+当前文件夹下共有[.null]的文件2个
+当前文件夹下共有[.y]的文件2个
+当前文件夹下共有[.template]的文件2个
+当前文件夹下共有[.64]的文件2个
+当前文件夹下共有[.tiff]的文件1个
+当前文件夹下共有[.bit]的文件1个
+当前文件夹下共有[.xbm]的文件1个
+当前文件夹下共有[.ad]的文件1个
+当前文件夹下共有[.tbl]的文件1个
+当前文件夹下共有[.PS]的文件1个
+当前文件夹下共有[.CO]的文件1个
+当前文件夹下共有[.3]的文件1个
+当前文件夹下共有[.1]的文件1个
+当前文件夹下共有[.US]的文件1个
+当前文件夹下共有[.2]的文件1个
+当前文件夹下共有[.4]的文件1个
+当前文件夹下共有[.PO]的文件1个
+当前文件夹下共有[.png]的文件1个
+当前文件夹下共有[.pngi]的文件1个
+当前文件夹下共有[.form]的文件1个
+当前文件夹下共有[.pre]的文件1个
+当前文件夹下共有[.imagen]的文件1个
+当前文件夹下共有[.file]的文件1个
+当前文件夹下共有[.grib2]的文件1个
+当前文件夹下共有[.grb]的文件1个
+当前文件夹下共有[.hdf]的文件1个
+当前文件夹下共有[.he2]的文件1个
+当前文件夹下共有[.he5]的文件1个
+当前文件夹下共有[.cocos]的文件1个
+当前文件夹下共有[.cpt]的文件1个
+当前文件夹下共有[.bin]的文件1个
+当前文件夹下共有[.ctl]的文件1个
+当前文件夹下共有[.mdl]的文件1个
+当前文件夹下共有[.xlsx]的文件1个
+当前文件夹下共有[.F90]的文件1个
+当前文件夹下共有[.xsl]的文件1个
+当前文件夹下共有[.pl]的文件1个
+当前文件夹下共有[.ifort]的文件1个
+当前文件夹下共有[.xl]的文件1个
+当前文件夹下共有[.absoft]的文件1个
+当前文件夹下共有[.man]的文件1个
+当前文件夹下共有[.amd64]的文件1个
+当前文件夹下共有[.g95]的文件1个
+当前文件夹下共有[.IA64]的文件1个
+当前文件夹下共有[.ini]的文件1个
+当前文件夹下共有[.32]的文件1个
+当前文件夹下共有[.n32]的文件1个
+当前文件夹下共有[.patch]的文件1个
+
+```
+
+查看上述结果可知主要源码文件后缀名为 `c`,`h`,`f`
+
+### 1.2.统计源码总行数
+
+统计所有源码文件的代码行数
+
+```bash
+ find ./ -regex ".*\.f\|.*\.c\|.*\.h\|"\
+ | xargs wc -l
+```
+
+统计结果
+
+```bash
+ 1001123 total
+```
+
+### 1.3.统计不符合要求的总行数
+
+对文件后缀名为 `h`,`c` 的所有文件进行格式
+通过git与astyle结合的方式进行统计
+```bash
+# astyle -R ./*.cpp,*.h,*.hpp -v
+...
+------------------------------------------------------------
+ 2,179 formatted 128 unchanged 14.4 seconds 1,095,902 lines
+```
+
+### 1.4.统计结果
+
+综上信息,项目中代码规范性自检检查结果为
+
+通过率 : 0.2% 1-96213/96400*100%
+
+不通过率 : 99.8% 96213/96400*100%
+
+# 2.功能性测试
+
+ncl作为图形软件,并无内置测试用例,通过判断ncl软件是否编译成功来进行功能性测试,官方文档中,只有满足所有依赖安装并正确链接方可有ncl软件生成
+```bash
+ncl -v
+```
+## 2.2.运行结果
+
+```bash
+Running NCL...
+ Copyright (C) 1995-2019 - All Rights Reserved
+ University Corporation for Atmospheric Research
+ NCAR Command Language Version 6.6.2
+ The use of this software is governed by a License Agreement.
+ See http://www.ncl.ucar.edu/ for more details.
+```
+
+
+测试结果
+
+ncl软件存在,编译过程满足各项依赖
+
+## 3.性能测试
+
+ncl作为图形软件,需要环境支持图形,作为云端服务器,图形环境不满足,如DISPLAY等环境变量并无设定
+
+## NCO
+### 1.1.选择统计文件类型
+
+统计项目文件类型及其文件数量
+
+使用python编写脚本文件
+
+代码同NCL
+
+在NCL项目根目录下运行,运行结果如下
+
+```bash
+当前文件夹下共有[.c]的文件68个
+当前文件夹下共有[]的文件59个
+当前文件夹下共有[.h]的文件56个
+当前文件夹下共有[.cdl]的文件56个
+当前文件夹下共有[.nco]的文件34个
+当前文件夹下共有[.txt]的文件32个
+当前文件夹下共有[.sh]的文件30个
+当前文件夹下共有[.hh]的文件26个
+当前文件夹下共有[.cc]的文件21个
+当前文件夹下共有[.png]的文件17个
+当前文件夹下共有[.1]的文件16个
+当前文件夹下共有[.in]的文件14个
+当前文件夹下共有[.am]的文件8个
+当前文件夹下共有[.shtml]的文件8个
+当前文件夹下共有[.pl]的文件7个
+当前文件夹下共有[.m4]的文件7个
+当前文件夹下共有[.hpp]的文件6个
+当前文件夹下共有[.eps]的文件6个
+当前文件夹下共有[.py]的文件3个
+当前文件夹下共有[.cpp]的文件3个
+当前文件夹下共有[.ncl]的文件3个
+当前文件夹下共有[.pm]的文件3个
+当前文件夹下共有[.xcf]的文件3个
+当前文件夹下共有[.old]的文件2个
+当前文件夹下共有[.cu]的文件2个
+当前文件夹下共有[.po]的文件2个
+当前文件夹下共有[.md]的文件2个
+当前文件夹下共有[.bat]的文件2个
+当前文件夹下共有[.yml]的文件2个
+当前文件夹下共有[.texi]的文件2个
+当前文件夹下共有[.ac]的文件1个
+当前文件夹下共有[.spec]的文件1个
+当前文件夹下共有[.guess]的文件1个
+当前文件夹下共有[.sub]的文件1个
+当前文件夹下共有[.tex]的文件1个
+当前文件夹下共有[.l]的文件1个
+当前文件夹下共有[.g]的文件1个
+当前文件夹下共有[.pot]的文件1个
+当前文件夹下共有[.log]的文件1个
+当前文件夹下共有[.cmd]的文件1个
+当前文件夹下共有[.eg]的文件1个
+当前文件夹下共有[.in2]的文件1个
+当前文件夹下共有[.xsd]的文件1个
+当前文件夹下共有[.slurm]的文件1个
+当前文件夹下共有[.dat]的文件1个
+当前文件夹下共有[.css]的文件1个
+当前文件夹下共有[.pptx]的文件1个
+当前文件夹下共有[.html]的文件1个
+当前文件夹下共有[.ods]的文件1个
+当前文件夹下共有[.3]的文件1个
+当前文件夹下共有[.pdf]的文件1个
+当前文件夹下共有[.odp]的文件1个
+当前文件夹下共有[.jpg]的文件1个
+当前文件夹下共有[.svg]的文件1个
+
+```
+
+查看上述结果可知主要源码文件后缀名为 `c`,`h`
+
+### 1.2.统计源码总行数
+
+统计所有源码文件的代码行数
+
+```bash
+ find ./ -regex ".*\.f\|.*\.c\|.*\.h\|"\
+ | xargs wc -l
+```
+
+统计结果
+
+```bash
+ 116955 total
+```
+
+### 1.3.统计不符合要求的总行数
+
+对文件后缀名为 `h`,`c` 的所有文件进行格式
+通过git与astyle结合的方式进行统计
+```bash
+# astyle -R ./*.c,*.h,*.hpp -v
+...
+Unchanged src/nco/nco_var_utl.c
+Unchanged src/nco/nco_var_utl.h
+Unchanged src/nco/ncpdq.c
+Unchanged src/nco/ncra.c
+Unchanged src/nco/ncrename.c
+Unchanged src/nco/ncwa.c
+------------------------------------------------------------
+ 124 formatted 124 unchanged 4.6 seconds 244,852 lines
+```
+```bash
+ 248 files changed, 126025 insertions(+), 106164 deletions(-)
+ create mode 100644 bld/libnco_tst.c.orig
+ rewrite doc/cdtime.c (72%)
+ copy doc/{cdtime.c => cdtime.c.orig} (100%)
+ create mode 100644 src/nco/libnco.h.orig
+ rewrite src/nco/mpncbo.c (91%)
+ copy src/nco/{mpncbo.c => mpncbo.c.orig} (100%)
+ rewrite src/nco/mpncecat.c (91%)
+ copy src/nco/{mpncecat.c => mpncecat.c.orig} (100%)
+ rewrite src/nco/mpncflint.c (92%)
+ copy src/nco/{mpncflint.c => mpncflint.c.orig} (100%)
+ rewrite src/nco/mpncpdq.c (89%)
+ copy src/nco/{mpncpdq.c => mpncpdq.c.orig} (100%)
+ rewrite src/nco/mpncra.c (86%)
+ copy src/nco/{mpncra.c => mpncra.c.orig} (100%)
+ rewrite src/nco/mpncwa.c (92%)
+ copy src/nco/{mpncwa.c => mpncwa.c.orig} (100%)
+ rewrite src/nco/ncap_utl.c (91%)
+ copy src/nco/{ncap_utl.c => ncap_utl.c.orig} (100%)
+ create mode 100644 src/nco/ncap_utl.h.orig
+ rewrite src/nco/ncatted.c (72%)
+ copy src/nco/{ncatted.c => ncatted.c.orig} (100%)
+ rewrite src/nco/ncbo.c (89%)
+ copy src/nco/{ncbo.c => ncbo.c.orig} (100%)
+ rewrite src/nco/ncecat.c (91%)
+ copy src/nco/{ncecat.c => ncecat.c.orig} (100%)
+ rewrite src/nco/ncflint.c (91%)
+ copy src/nco/{ncflint.c => ncflint.c.orig} (100%)
+ rewrite src/nco/ncks.c (91%)
+ copy src/nco/{ncks.c => ncks.c.orig} (100%)
+ create mode 100644 src/nco/nco.h.orig
+ rewrite src/nco/nco_att_utl.c (88%)
+ copy src/nco/{nco_att_utl.c => nco_att_utl.c.orig} (100%)
+ create mode 100644 src/nco/nco_att_utl.h.orig
+ rewrite src/nco/nco_aux.c (83%)
+ copy src/nco/{nco_aux.c => nco_aux.c.orig} (100%)
+ create mode 100644 src/nco/nco_aux.h.orig
+ rewrite src/nco/nco_bnr.c (75%)
+ copy src/nco/{nco_bnr.c => nco_bnr.c.orig} (100%)
+ create mode 100644 src/nco/nco_bnr.h.orig
+ rewrite src/nco/nco_cln_utl.c (80%)
+ copy src/nco/{nco_cln_utl.c => nco_cln_utl.c.orig} (100%)
+ rewrite src/nco/nco_cln_utl.h (76%)
+ copy src/nco/{nco_cln_utl.h => nco_cln_utl.h.orig} (100%)
+ rewrite src/nco/nco_cnf_dmn.c (92%)
+ copy src/nco/{nco_cnf_dmn.c => nco_cnf_dmn.c.orig} (100%)
+ create mode 100644 src/nco/nco_cnf_dmn.h.orig
+ rewrite src/nco/nco_cnf_typ.c (92%)
+ copy src/nco/{nco_cnf_typ.c => nco_cnf_typ.c.orig} (100%)
+ create mode 100644 src/nco/nco_cnf_typ.h.orig
+ rewrite src/nco/nco_cnk.c (85%)
+ copy src/nco/{nco_cnk.c => nco_cnk.c.orig} (100%)
+ create mode 100644 src/nco/nco_cnk.h.orig
+ rewrite src/nco/nco_cnv_arm.c (79%)
+ copy src/nco/{nco_cnv_arm.c => nco_cnv_arm.c.orig} (100%)
+ create mode 100644 src/nco/nco_cnv_arm.h.orig
+ rewrite src/nco/nco_cnv_csm.c (90%)
+ copy src/nco/{nco_cnv_csm.c => nco_cnv_csm.c.orig} (100%)
+ create mode 100644 src/nco/nco_cnv_csm.h.orig
+ create mode 100644 src/nco/nco_crt.c.orig
+ create mode 100644 src/nco/nco_crt.h.orig
+ rewrite src/nco/nco_ctl.c (89%)
+ copy src/nco/{nco_ctl.c => nco_ctl.c.orig} (100%)
+ create mode 100644 src/nco/nco_ctl.h.orig
+ rewrite src/nco/nco_dbg.c (61%)
+ copy src/nco/{nco_dbg.c => nco_dbg.c.orig} (100%)
+ create mode 100644 src/nco/nco_dbg.h.orig
+ rewrite src/nco/nco_dmn_utl.c (69%)
+ copy src/nco/{nco_dmn_utl.c => nco_dmn_utl.c.orig} (100%)
+ create mode 100644 src/nco/nco_dmn_utl.h.orig
+ rewrite src/nco/nco_fl_utl.c (89%)
+ copy src/nco/{nco_fl_utl.c => nco_fl_utl.c.orig} (100%)
+ create mode 100644 src/nco/nco_fl_utl.h.orig
+ rewrite src/nco/nco_flt.c (88%)
+ copy src/nco/{nco_flt.c => nco_flt.c.orig} (100%)
+ create mode 100644 src/nco/nco_flt.h.orig
+ rewrite src/nco/nco_getopt.c (71%)
+ copy src/nco/{nco_getopt.c => nco_getopt.c.orig} (100%)
+ create mode 100644 src/nco/nco_getopt.h.orig
+ rewrite src/nco/nco_grp_trv.c (72%)
+ copy src/nco/{nco_grp_trv.c => nco_grp_trv.c.orig} (100%)
+ create mode 100644 src/nco/nco_grp_trv.h.orig
+ rewrite src/nco/nco_grp_utl.c (80%)
+ copy src/nco/{nco_grp_utl.c => nco_grp_utl.c.orig} (100%)
+ create mode 100644 src/nco/nco_grp_utl.h.orig
+ create mode 100644 src/nco/nco_kd.c.orig
+ create mode 100644 src/nco/nco_kd.h.orig
+ rewrite src/nco/nco_lmt.c (92%)
+ copy src/nco/{nco_lmt.c => nco_lmt.c.orig} (100%)
+ create mode 100644 src/nco/nco_lmt.h.orig
+ rewrite src/nco/nco_lst_utl.c (76%)
+ copy src/nco/{nco_lst_utl.c => nco_lst_utl.c.orig} (100%)
+ create mode 100644 src/nco/nco_lst_utl.h.orig
+ rewrite src/nco/nco_map.c (92%)
+ copy src/nco/{nco_map.c => nco_map.c.orig} (100%)
+ rewrite src/nco/nco_map.h (73%)
+ copy src/nco/{nco_map.h => nco_map.h.orig} (100%)
+ create mode 100644 src/nco/nco_md5.c.orig
+ create mode 100644 src/nco/nco_md5.h.orig
+ rewrite src/nco/nco_mmr.c (83%)
+ copy src/nco/{nco_mmr.c => nco_mmr.c.orig} (100%)
+ create mode 100644 src/nco/nco_mmr.h.orig
+ create mode 100644 src/nco/nco_mpi.h.orig
+ rewrite src/nco/nco_msa.c (87%)
+ copy src/nco/{nco_msa.c => nco_msa.c.orig} (100%)
+ create mode 100644 src/nco/nco_msa.h.orig
+ rewrite src/nco/nco_mss_val.c (90%)
+ copy src/nco/{nco_mss_val.c => nco_mss_val.c.orig} (100%)
+ create mode 100644 src/nco/nco_mss_val.h.orig
+ rewrite src/nco/nco_mta.c (77%)
+ copy src/nco/{nco_mta.c => nco_mta.c.orig} (100%)
+ rewrite src/nco/nco_mta.h (69%)
+ copy src/nco/{nco_mta.h => nco_mta.h.orig} (100%)
+ rewrite src/nco/nco_netcdf.c (75%)
+ copy src/nco/{nco_netcdf.c => nco_netcdf.c.orig} (100%)
+ create mode 100644 src/nco/nco_netcdf.h.orig
+ rewrite src/nco/nco_omp.c (88%)
+ copy src/nco/{nco_omp.c => nco_omp.c.orig} (100%)
+ create mode 100644 src/nco/nco_omp.h.orig
+ rewrite src/nco/nco_pck.c (87%)
+ copy src/nco/{nco_pck.c => nco_pck.c.orig} (100%)
+ create mode 100644 src/nco/nco_pck.h.orig
+ rewrite src/nco/nco_ply.c (86%)
+ copy src/nco/{nco_ply.c => nco_ply.c.orig} (100%)
+ rewrite src/nco/nco_ply.h (62%)
+ copy src/nco/{nco_ply.h => nco_ply.h.orig} (100%)
+ rewrite src/nco/nco_ply_lst.c (92%)
+ copy src/nco/{nco_ply_lst.c => nco_ply_lst.c.orig} (100%)
+ create mode 100644 src/nco/nco_ply_lst.h.orig
+ rewrite src/nco/nco_ppc.c (92%)
+ copy src/nco/{nco_ppc.c => nco_ppc.c.orig} (100%)
+ create mode 100644 src/nco/nco_ppc.h.orig
+ rewrite src/nco/nco_prn.c (92%)
+ copy src/nco/{nco_prn.c => nco_prn.c.orig} (100%)
+ create mode 100644 src/nco/nco_prn.h.orig
+ rewrite src/nco/nco_rec_var.c (81%)
+ copy src/nco/{nco_rec_var.c => nco_rec_var.c.orig} (100%)
+ create mode 100644 src/nco/nco_rec_var.h.orig
+ rewrite src/nco/nco_rgr.c (88%)
+ copy src/nco/{nco_rgr.c => nco_rgr.c.orig} (100%)
+ rewrite src/nco/nco_rgr.h (68%)
+ copy src/nco/{nco_rgr.h => nco_rgr.h.orig} (100%)
+ rewrite src/nco/nco_rth_flt.c (67%)
+ copy src/nco/{nco_rth_flt.c => nco_rth_flt.c.orig} (100%)
+ create mode 100644 src/nco/nco_rth_flt.h.orig
+ rewrite src/nco/nco_rth_utl.c (84%)
+ copy src/nco/{nco_rth_utl.c => nco_rth_utl.c.orig} (100%)
+ create mode 100644 src/nco/nco_rth_utl.h.orig
+ rewrite src/nco/nco_s1d.c (95%)
+ copy src/nco/{nco_s1d.c => nco_s1d.c.orig} (100%)
+ create mode 100644 src/nco/nco_s1d.h.orig
+ rewrite src/nco/nco_scl_utl.c (71%)
+ copy src/nco/{nco_scl_utl.c => nco_scl_utl.c.orig} (100%)
+ create mode 100644 src/nco/nco_scl_utl.h.orig
+ rewrite src/nco/nco_scm.c (89%)
+ copy src/nco/{nco_scm.c => nco_scm.c.orig} (100%)
+ create mode 100644 src/nco/nco_scm.h.orig
+ rewrite src/nco/nco_sld.c (92%)
+ copy src/nco/{nco_sld.c => nco_sld.c.orig} (100%)
+ rewrite src/nco/nco_sld.h (60%)
+ copy src/nco/{nco_sld.h => nco_sld.h.orig} (100%)
+ rewrite src/nco/nco_sng_utl.c (84%)
+ copy src/nco/{nco_sng_utl.c => nco_sng_utl.c.orig} (100%)
+ rewrite src/nco/nco_sng_utl.h (74%)
+ copy src/nco/{nco_sng_utl.h => nco_sng_utl.h.orig} (100%)
+ rewrite src/nco/nco_sph.c (82%)
+ copy src/nco/{nco_sph.c => nco_sph.c.orig} (100%)
+ create mode 100644 src/nco/nco_sph.h.orig
+ rewrite src/nco/nco_srm.c (75%)
+ copy src/nco/{nco_srm.c => nco_srm.c.orig} (100%)
+ create mode 100644 src/nco/nco_srm.h.orig
+ create mode 100644 src/nco/nco_typ.h.orig
+ create mode 100644 src/nco/nco_uthash.h.orig
+ rewrite src/nco/nco_var_avg.c (93%)
+ copy src/nco/{nco_var_avg.c => nco_var_avg.c.orig} (100%)
+ create mode 100644 src/nco/nco_var_avg.h.orig
+ rewrite src/nco/nco_var_lst.c (85%)
+ copy src/nco/{nco_var_lst.c => nco_var_lst.c.orig} (100%)
+ create mode 100644 src/nco/nco_var_lst.h.orig
+ rewrite src/nco/nco_var_rth.c (73%)
+ copy src/nco/{nco_var_rth.c => nco_var_rth.c.orig} (100%)
+ rewrite src/nco/nco_var_rth.h (86%)
+ copy src/nco/{nco_var_rth.h => nco_var_rth.h.orig} (100%)
+ rewrite src/nco/nco_var_scv.c (86%)
+ copy src/nco/{nco_var_scv.c => nco_var_scv.c.orig} (100%)
+ rewrite src/nco/nco_var_scv.h (77%)
+ copy src/nco/{nco_var_scv.h => nco_var_scv.h.orig} (100%)
+ rewrite src/nco/nco_var_utl.c (88%)
+ copy src/nco/{nco_var_utl.c => nco_var_utl.c.orig} (100%)
+ rewrite src/nco/nco_var_utl.h (81%)
+ copy src/nco/{nco_var_utl.h => nco_var_utl.h.orig} (100%)
+ rewrite src/nco/ncpdq.c (91%)
+ copy src/nco/{ncpdq.c => ncpdq.c.orig} (100%)
+ rewrite src/nco/ncra.c (92%)
+ copy src/nco/{ncra.c => ncra.c.orig} (100%)
+ rewrite src/nco/ncrename.c (89%)
+ copy src/nco/{ncrename.c => ncrename.c.orig} (100%)
+ rewrite src/nco/ncwa.c (91%)
+ copy src/nco/{ncwa.c => ncwa.c.orig} (100%)
+```
+### 1.4.统计结果
+
+综上信息,项目中代码规范性自检检查结果为
+
+通过率 : 7% 79800/1,095,902*100%
+
+不通过率 : 93% 1-79800/1,095,902*100%
+
+# 2.功能性测试
+
+NCO作为netCDF的operator,并无内置测试用例,判断软件是否正常运行,官方也并未给出测试集
+
+```bash
+ncdiff
+```
+## 2.2.运行结果
+
+```bash
+ncdiff Command line options cheatsheet (full details at http://nco.sf.net/nco.html#ncdiff):
+ncdiff [-3] [-4] [-5] [-6] [-7] [-A] [--bfr byt] [-C] [-c] [--cmp sng] [--cnk_byt byt] [--cnk_csh byt] [--cnk_dmn nm,lmn] [--cnk_map map] [--cnk_min byt] [--cnk_plc plc] [--cnk_scl sz] [-D dbg_lvl] [-d ...] [-F] [--fl_fmt fmt] [-G grp:lvl] [-g ...] [--glb ...] [-H] [-h] [--hdf] [--hdr_pad nbr] [--hpss] [-L lvl] [-l path] [--msa] [-n ...] [--no_cll_msr] [--no_frm_trm] [--no_tmp_fl] [-O] [-o out.nc] [-p path] [-R] [-r] [--ram_all] [-t thr_nbr] [--uio] [--unn] [-v ...] [-X box] [-x] [-y op_typ] in1.nc in2.nc [out.nc]
+
+-3, --3, classic Output file in netCDF3 CLASSIC (32-bit offset) storage format
+-4, --4, netcdf4 Output file in netCDF4 (HDF5) storage format
+-5, --5, 64bit_data Output file in netCDF3 64-bit data (i.e., CDF5, PnetCDF) storage format
+-6, --6, 64, 64bit_offset Output file in netCDF3 64-bit offset storage format
+-7, --7, netcdf4_classic Output file in netCDF4 CLASSIC format (3+4=7)
+-A, --apn, append Append to existing output file, if any
+ --bfr_sz, buffer_size sz Buffer size to open files with
+-C, --no_crd, xcl_ass_var Exclude coordinates, CF-associated variables (ancillary, bounds, ...)
+-c, --crd, xtr_ass_var Extract coordinates, CF-associated variables (ancillary, bounds, ...)
+ --cmp cmp_sng Compression string (e.g., 'gbr,3|zstd,1')
+ --cnk_byt, chunk_byte sz_byt Chunksize in bytes
+ --cnk_csh, chunk_cache sz_byt Chunk cache size in bytes
+ --cnk_dmn, chunk_dimension nm,sz_lmn Chunksize of dimension nm (in elements not bytes)
+ --cnk_map, chunk_map map Chunking map [dmn,lfp,nc4,nco,prd,rd1,rew,scl,xpl,xst]
+ --cnk_min, chunk_min sz_byt Minimum size [B] of variable to chunk
+ --cnk_plc, chunk_policy plc Chunking policy [all,g2d,g3d,xpl,xst,uck]
+ --cnk_scl, chunk_scalar sz_lmn Chunksize scalar (in elements not bytes) (for all dimensions)
+-D, --dbg_lvl, debug-level lvl Debug-level is lvl
+-d, --dmn, dimension dim,[min][,[max]][,[stride]] Dimension's limits and stride in hyperslab
+-F, --ftn, fortran Fortran indexing conventions (1-based) for I/O
+ --fl_fmt, file_format fmt File format for output [classic,64bit_offset,64bit_data,netcdf4,netcdf4_classic]
+-G, --gpe [grp_nm][:[lvl]] Group Path Editing path, levels to replace
+-g, --grp grp1[,grp2[...]] Group(s) to process (regular expressions supported)
+ --glb_att_add nm=val Global attribute to add
+-H, --fl_lst_in, file_list Do not create "input_file_list" global attribute that stores stdin filenames
+-h, --hst, history Do not append to "history" global attribute
+ --hdf_upk, hdf_unpack HDF unpack convention: unpacked=scale_factor*(packed-add_offset)
+ --hdr_pad, header_pad Pad output header with nbr bytes
+ --hpss, hpss_try Search for unfound files on HPSS with 'hsi get ...'
+-L, --dfl_lvl, deflate lvl Lempel-Ziv deflation/compression (lvl=0..9) for netCDF4 output
+-l, --lcl, local path Local storage path for remotely-retrieved files
+ --msa, msa_usr_rdr Multi-Slab-Algorithm output in User-Order
+-n, --nintap nbr_files,[nbr_numeric_chars[,increment]] NINTAP-style abbreviation of file list
+ --no_cll_msr Do not extract cell_measures variables
+ --no_frm_trm Do not extract formula_terms variables
+ --no_tmp_fl Do not write output to temporary file
+-O, --ovr, overwrite Overwrite existing output file, if any
+-o, --output, fl_out Output file name (or use last positional argument)
+-p, --pth, path path Path prefix for all input filenames
+-R, --rtn, retain Retain remotely-retrieved files after use
+-r, --revision, version Compile-time configuration and/or program version
+ --ram_all, diskless_all Open netCDF3 files and create output files in RAM
+-t, --thr_nbr, threads, omp_num_threads thr_nbr Thread number for OpenMP
+ --uio, share_all Unbuffered I/O to read/write netCDF3 file(s)
+ --unn, union Select union of specified groups and variables
+-v, --variable var1[,var2[...]] Variable(s) to process (regular expressions supported)
+-X, --auxiliary lon_min,lon_max,lat_min,lat_max Auxiliary coordinate bounding box
+-x, --xcl, exclude Extract all variables EXCEPT those specified with -v
+-y, --op_typ, operation op_typ Binary arithmetic operation: add,sbt,mlt,dvd (+,-,*,/)
+in1.nc in2.nc Input file names (or use stdin)
+[out.nc] Output file name (or use -o option)
+
+Eight ways to find more help on ncdiff and/or NCO:
+1. Examples: http://nco.sf.net/nco.html#xmp_ncdiff
+2. Ref. manual: http://nco.sf.net/nco.html#ncdiff
+3. User Guide: http://nco.sf.net#RTFM
+4. Manual pages: 'man ncdiff', 'man nco', ...
+5. Homepage: http://nco.sf.net
+6. Code: http://github.com/nco/nco
+7. Help Forum: http://sf.net/p/nco/discussion/9830
+8. Publications: http://nco.sf.net#pub
+Post questions, suggestions, patches at http://sf.net/projects/nco
+```
+
+
+测试结果
+
+nco可正常执行
+## NCVIEW
+### 1.1.选择统计文件类型
+
+统计项目文件类型及其文件数量
+
+使用python编写脚本文件
+代码同上
+
+```
+
+在NCVIEW项目根目录下运行,运行结果如下
+
+```bash
+当前文件夹下共有[.f]的文件3857个
+当前文件夹下共有[.c]的文件1481个
+当前文件夹下共有[.m]的文件882个
+当前文件夹下共有[]的文件852个
+当前文件夹下共有[.h]的文件826个
+当前文件夹下共有[.table]的文件618个
+当前文件夹下共有[.rgb]的文件270个
+当前文件夹下共有[.ncl]的文件259个
+当前文件夹下共有[.sed]的文件84个
+当前文件夹下共有[.res]的文件63个
+当前文件夹下共有[.nc]的文件58个
+当前文件夹下共有[.sh]的文件52个
+当前文件夹下共有[.gc]的文件43个
+当前文件夹下共有[.cdf]的文件36个
+当前文件夹下共有[.specific]的文件32个
+当前文件夹下共有[.fc]的文件31个
+当前文件夹下共有[.dat]的文件27个
+当前文件夹下共有[.f90]的文件23个
+当前文件夹下共有[.gp]的文件22个
+当前文件夹下共有[.csh]的文件14个
+当前文件夹下共有[.asc]的文件14个
+当前文件夹下共有[.ttf]的文件13个
+当前文件夹下共有[.o]的文件12个
+当前文件夹下共有[.doc]的文件11个
+当前文件夹下共有[.py]的文件9个
+当前文件夹下共有[.ncmap]的文件8个
+当前文件夹下共有[.txt]的文件6个
+当前文件夹下共有[.xml]的文件6个
+当前文件夹下共有[.md]的文件5个
+当前文件夹下共有[.grb2]的文件5个
+当前文件夹下共有[.l]的文件4个
+当前文件夹下共有[.areas]的文件4个
+当前文件夹下共有[.java]的文件4个
+当前文件夹下共有[.ksh]的文件3个
+当前文件夹下共有[.PGI]的文件3个
+当前文件夹下共有[.INTEL]的文件3个
+当前文件夹下共有[.GNU]的文件3个
+当前文件夹下共有[.yml]的文件3个
+当前文件夹下共有[.csv]的文件2个
+当前文件夹下共有[.dbf]的文件2个
+当前文件夹下共有[.shx]的文件2个
+当前文件夹下共有[.shp]的文件2个
+当前文件夹下共有[.prj]的文件2个
+当前文件夹下共有[.null]的文件2个
+当前文件夹下共有[.y]的文件2个
+当前文件夹下共有[.template]的文件2个
+当前文件夹下共有[.64]的文件2个
+当前文件夹下共有[.tiff]的文件1个
+当前文件夹下共有[.bit]的文件1个
+当前文件夹下共有[.xbm]的文件1个
+当前文件夹下共有[.ad]的文件1个
+当前文件夹下共有[.tbl]的文件1个
+当前文件夹下共有[.PS]的文件1个
+当前文件夹下共有[.CO]的文件1个
+当前文件夹下共有[.3]的文件1个
+当前文件夹下共有[.1]的文件1个
+当前文件夹下共有[.US]的文件1个
+当前文件夹下共有[.2]的文件1个
+当前文件夹下共有[.4]的文件1个
+当前文件夹下共有[.PO]的文件1个
+当前文件夹下共有[.png]的文件1个
+当前文件夹下共有[.pngi]的文件1个
+当前文件夹下共有[.form]的文件1个
+当前文件夹下共有[.pre]的文件1个
+当前文件夹下共有[.imagen]的文件1个
+当前文件夹下共有[.file]的文件1个
+当前文件夹下共有[.grib2]的文件1个
+当前文件夹下共有[.grb]的文件1个
+当前文件夹下共有[.hdf]的文件1个
+当前文件夹下共有[.he2]的文件1个
+当前文件夹下共有[.he5]的文件1个
+当前文件夹下共有[.cocos]的文件1个
+当前文件夹下共有[.cpt]的文件1个
+当前文件夹下共有[.bin]的文件1个
+当前文件夹下共有[.ctl]的文件1个
+当前文件夹下共有[.mdl]的文件1个
+当前文件夹下共有[.xlsx]的文件1个
+当前文件夹下共有[.F90]的文件1个
+当前文件夹下共有[.xsl]的文件1个
+当前文件夹下共有[.pl]的文件1个
+当前文件夹下共有[.ifort]的文件1个
+当前文件夹下共有[.xl]的文件1个
+当前文件夹下共有[.absoft]的文件1个
+当前文件夹下共有[.man]的文件1个
+当前文件夹下共有[.amd64]的文件1个
+当前文件夹下共有[.g95]的文件1个
+当前文件夹下共有[.IA64]的文件1个
+当前文件夹下共有[.ini]的文件1个
+当前文件夹下共有[.32]的文件1个
+当前文件夹下共有[.n32]的文件1个
+当前文件夹下共有[.patch]的文件1个
+
+```
+
+查看上述结果可知主要源码文件后缀名为 `c`,`h`,`f`
+
+### 1.2.统计源码总行数
+
+统计所有源码文件的代码行数
+
+```bash
+ find ./ -regex ".*\.f\|.*\.c\|.*\.h\|"\
+ | xargs wc -l
+```
+
+统计结果
+
+```bash
+ 1001123 total
+```
+
+### 1.3.统计不符合要求的总行数
+
+对文件后缀名为 `h`,`c` 的所有文件进行格式
+通过git与astyle结合的方式进行统计
+```bash
+# astyle -R ./*.cpp,*.h,*.hpp -v
+...
+------------------------------------------------------------
+ 2,179 formatted 128 unchanged 14.4 seconds 1,095,902 lines
+```
+
+### 1.4.统计结果
+
+综上信息,项目中代码规范性自检检查结果为
+
+通过率 : 0.2% 1-96213/96400*100%
+
+不通过率 : 99.8% 96213/96400*100%
+
+# 2.功能性测试
+NCVIEW作为netCDF的operator,并无内置测试用例,判断软件是否正常运行,官方也并未给出测试集
+
+```bash
+ncview
+```
+## 2.2.运行结果
+```bash
+Ncview 2.1.7 David W. Pierce 29 March 2016
+http://meteora.ucsd.edu:80/~pierce/ncview_home_page.html
+Copyright (C) 1993 through 2015, David W. Pierce
+Ncview comes with ABSOLUTELY NO WARRANTY; for details type `ncview -w'.
+This is free software licensed under the Gnu General Public License version 3; type `ncview -c' for redistribution details.
+```
+测试结果
+
+ncview可正常执行
\ No newline at end of file
diff --git "a/doc/ncl_nco_ncview/\343\200\212\345\237\272\344\272\216openEuler\347\232\204ncl_nco_ncview\350\275\257\344\273\266\347\247\273\346\244\215\346\214\207\345\215\227\343\200\213.md" "b/doc/ncl_nco_ncview/\343\200\212\345\237\272\344\272\216openEuler\347\232\204ncl_nco_ncview\350\275\257\344\273\266\347\247\273\346\244\215\346\214\207\345\215\227\343\200\213.md"
new file mode 100644
index 0000000000000000000000000000000000000000..bcea9ef8777a53d57076c87c684533cb81a0970a
--- /dev/null
+++ "b/doc/ncl_nco_ncview/\343\200\212\345\237\272\344\272\216openEuler\347\232\204ncl_nco_ncview\350\275\257\344\273\266\347\247\273\346\244\215\346\214\207\345\215\227\343\200\213.md"
@@ -0,0 +1,574 @@
+# 《基于openEuler的NCL/NCO/NCVIEW软件移植指南》
+## 鉴于NCL,NCO,NCVIEW依赖相近,因此在本指南中一并介绍
+
+## 1.介绍
+## NCL
+- NCL(The NCAR Command Language)是一种专门为科学数据处理以及数据可视化设计的高级语言,很适合用在气象数据的处理和可视化上
+
+- 官网地址:
+
+- 特性:
+
+ - 有独特的语法,可以访问数据文件中的变量
+ - 数据处理功能,比如求数据的平均值,做线性回归等
+## NCO
+- netCDF Operators (NCO) 工具用来操作和分析 netCDF 自描述数据存储格式
+
+- 官网地址:
+
+- 特性:
+
+ - 简单的算术运算(加、减、乘、除、广播)、插值、统计、数据合并等等
+ - 提供了大量的命令可以编辑变量和属性信息,比如属性和变量重命名、变量和属性值更改\添加、缺失值处理等。
+ ## NCVIEW
+- ncview能非常方便的对netCDF文件进行可视化。
+
+- 官网地址:
+
+- 特性:
+
+ - 提供了非常便捷的方式扩充 ncview 的colormap
+## 2.环境要求
+
+- 操作系统:OpenEuler arm/x86 (本文档以 x86 架构为例)
+
+## 3.配置编译环境
+
+配置环境指导,手动进行配置依赖环境。
+
+### 3.1.环境总览
+
+- 编译器: gcc
+
+- MPI:openmpi
+
+- 其他类库:freetype, netcdf,hdf4,hdf5,hdf-eos2,hdf-eos5s,antlr,pkg-config,cairo,jasper,gsl,mesa,vis5d+,libjpeg,libpng
+
+ 具体版本和下载地址如下
+
+| 名称 | 版本 | 软件下载地址 |
+| -------- | ------ | ---------------------------------------------------------------------------------------------- |
+| openmpi | 4.1.2 | |
+| gcc | 10.3.0 | |
+| antlr | 2.7.7 | |
+| cairo | 1.16.0 | |
+| freetype | 2.5.1 | |
+| gdal | 2.2.4 | |
+| hdf-eos2 | 2.20 | |
+| hdf-eos5 | 1.16 | |
+| hdf4 | 4.2.14 | |
+| hdf5 | 1.12.0 | |
+| jasper | 1.900.1 | |
+| libjpeg | v9b | |
+| libpng | 1.6.37 | |
+| Mesa | 3.1 | |
+| pixman | 0.38.0 | |
+| pkg-config | 0.28 | |
+| proj | 5.2.0 | |
+| vis5d+ | 1.3.0 | |
+
+### 3.2.创建文件夹
+
+```bash
+mkdir -p $HOME/build
+mkdir -p $HOME/install
+mkdir -p $HOME/tmp
+```
+
+### 3.3.安装预设
+
+设置环境变量,方便修改自定义安装目录
+
+- 编译目录为 $HOME/build , 根据实际情况进行修改
+- 软件安装目录为 $HOME/install , 根据实际情况进行修改
+- 下载目录为 $HOME/tmp , 根据实际情况进行修改
+
+```bash
+#为了方便自定义软件安装目录
+#环境变量DEP_INSTALL_DIR将在后文中作为软件安装目录的根目录
+export DEP_INSTALL_DIR=$HOME/install
+#环境变量DEP_BUILD_DIR将在后文中作为编译的根目录
+export DEP_BUILD_DIR=$HOME/build
+#环境变量DEP_DOWNLOAD_DIR将在后文中作为下载文件的保存目录
+export DEP_DOWNLOAD_DIR=$HOME/tmp
+
+#注: 以上变量只在一次会话中有效。如果中途断开ssh会话,则在后续的安装过程中不会生效,需要重新运行
+```
+
+### 3.4.安装环境依赖和gcc编译器
+
+```bash
+#环境依赖
+yum -y install wget tar expat
+
+#安装gcc编译器
+wget -P $DEP_DOWNLOAD_DIR https://ftp.gnu.org/gnu/gcc/gcc-10.3.0/gcc-10.3.0.tar.gz
+tar -xf $DEP_DOWNLOAD_DIR/gcc-10.3.0.tar.gz -C $DEP_INSTALL_DIR
+./contrib/download_prerequisites
+./configure --disable-multilib --enable-languages="c,c++,fortran" --prefix=$1 --disable-static --enable-shared
+make -j && make install
+
+
+#设置环境变量
+echo "export PATH=$DEP_INSTALL_DIR/gcc-10.3.0/bin:$PATH" >> ~/.bashrc && source ~/.bashrc
+export CC=`which gcc`
+export CXX=`which g++`
+```
+
+## 3.5.下载并编译openmpi
+
+```bash
+yum -y install libstdc++ libstdc++-devel
+yum -y install unzip make autoconf automake git libtool
+#下载解压源码文件
+wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.2.tar.gz -O $DEP_DOWNLOAD_DIR
+cd $DEP_BUILD_DIR
+tar zxvf $DEP_DOWNLOAD_DIR openmpi-4.1.2.tar.gz
+cd openmpi-4.1.2
+./configure CC=gcc CXX=g++ FC=gfortran --prefix=$1 --enable-pretty-print-stacktrace --enable-orterun-prefix-by-default --enable-mpi1-compatibility
+make -j install
+
+yum -y install flex
+```
+## 以下是NCL依赖各库
+## 3.6.下载并编译各库
+
+```bash
+
+#libjpeg
+. wget -u http://www.ijg.org/files/jpegsrc.v9b.tar.gz
+cd $DEP_BUILD_DIR
+rm -rf jpeg-9b
+tar xvf $DEP_DOWNLOAD_DIR/jpegsrc.v9b.tar.gz
+cd jpeg-9b
+./configure --prefix=$1
+make -j
+make install
+
+#libpng
+
+#pkg-config
+. wget -u http://pkgconfig.freedesktop.org/releases/pkg-config-0.29.tar.gz
+cd $DEP_BUILD_DIR
+tar xvf $DEP_DOWNLOAD_DIR/pkg-config-0.29.tar.gz
+cd pkg-config-0.29
+./configure --prefix=$1 --enable-shared
+make -j
+make install
+
+#pnetcdf
+pnetcdf_version='1.12.1'
+. wget -u http://cucis.ece.northwestern.edu/projects/PnetCDF/Release/pnetcdf-${pnetcdf_version}.tar.gz
+cd $DEP_BUILD_DIR
+tar zxvf $DEP_DOWNLOAD_DIR/pnetcdf-${pnetcdf_version}.tar.gz
+cd pnetcdf-${pnetcdf_version}
+FCFLAGS=-fallow-argument-mismatch FFLAGS=-fallow-argument-mismatch ./configure --prefix=$1 --enable-shared --enable-fortran --enable-large-file-test
+make -j16
+make install
+
+#pixman
+. wget -u https://www.cairographics.org/releases/pixman-0.38.0.tar.gz
+cd $DEP_BUILD_DIR
+
+tar xvf $DEP_DOWNLOAD_DIR/pixman-0.38.0.tar.gz
+cd pixman-0.38.0
+./configure --prefix=$1
+make -j
+make install
+
+#freetype
+. wget -u https://sourceforge.net/projects/freetype/files/freetype2/2.5.1/freetype-2.5.1.tar.gz
+cd $DEP_BUILD_DIR
+tar -xvf $DEP_DOWNLOAD_DIR/freetype-2.5.1.tar.gz
+cd freetype-2.5.1
+
+./configure --enable-shared --prefix=$1
+make -j
+make install
+cd include
+cp -r * $1/include
+
+#gdal
+. wget -u http://download.osgeo.org/gdal/2.2.4/gdal-2.2.4.tar.gz
+cd $DEP_BUILD_DIR
+tar -xvf $DEP_DOWNLOAD_DIR/gdal-2.2.4.tar.gz
+cd gdal-2.2.4
+
+./configure --with-static-proj4=${PROJ_PATH} --prefix=$1 --with-png=${LIBPNG_PATH} --with-gif=internal --with-libtiff=internal \
+ --with-geotiff=internal --with-jpeg=${LIBJPEG_PATH} --with-libz=/usr/local \
+ --with-sqlite3=no --with-expat=no --with-curl=no --without-ld-shared \
+ --with-hdf4=no --with-hdf5=no --with-pg=no --without-grib --disable-shared \
+ --with-freexl=no --with-geos=no --with-openjpeg=no --with-mysql=no \
+ --with-ecw=no --with-fgdb=no --with-odbc=no --with-xml2=no --with-ogdi=no\
+ --with-pcraster=no --with-xerces=no
+make all install
+
+#gsl
+. wget -u http://mirrors.ustc.edu.cn/gnu/gsl/gsl-2.6.tar.gz
+cd $DEP_BUILD_DIR
+rm -rf gsl-2.6
+tar -xvf $DEP_DOWNLOAD_DIR/gsl-2.6.tar.gz
+cd gsl-2.6
+./configure --prefix=$1
+make -j
+make install
+
+#hdf-eos2
+. wget -u https://git.earthdata.nasa.gov/rest/git-lfs/storage/DAS/hdfeos/cb0f900d2732ab01e51284d6c9e90d0e852d61bba9bce3b43af0430ab5414903?response-content-disposition=attachment%3B%20filename%3D%22HDF-EOS2.20v1.00.tar.Z%22%3B%20filename*%3Dutf-8%27%27HDF-EOS2.20v1.00.tar.Z
+cd $DEP_DOWNLOAD_DIR
+cp -f cb0f900d2732ab01e51284d6c9e90d0e852d61bba9bce3b43af0430ab5414903* HDF-EOS2.20v1.00.tar
+cd $DEP_BUILD_DIR
+
+tar -xvf $DEP_DOWNLOAD_DIR/HDF-EOS2.20v1.00.tar
+cd hdfeos
+
+ac_cv_func_malloc_0_nonnull=yes ac_cv_func_realloc_0_nonnull=yes ./configure --with-hdf4=${HDF4_PATH} --with-jpeg=${LIBJPEG_PATH} --with-zlib=/usr/local --prefix=$1
+make -j
+make install
+cp -r include $1/
+
+#hdf4
+. wget -u https://support.hdfgroup.org/ftp/HDF/releases/HDF4.2.15/src/hdf-4.2.15.tar.gz
+cd $DEP_BUILD_DIR
+rm -rf hdf-4.2.15
+tar -xvf $DEP_DOWNLOAD_DIR/hdf-4.2.15.tar.gz
+cd hdf-4.2.15
+FFLAGS+='-fallow-argument-mismatch' ./configure --prefix=$1 --with-zlib=/usr/local --disable-fortran --with-jpeg=${LIBJPEG_PATH} --disable-netcdf
+make -j
+make install
+
+#hdf5
+hdf5_big_version='1.12'
+hdf5_version="${hdf5_big_version}.0"
+. wget -u https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${hdf5_big_version}/hdf5-${hdf5_version}/src/hdf5-${hdf5_version}.tar.gz
+cd $DEP_BUILD_DIR
+rm -rf hdf5-${hdf5_version}
+tar -xvf $DEP_DOWNLOAD_DIR/hdf5-${hdf5_version}.tar.gz
+cd hdf5-${hdf5_version}
+./configure --prefix=$1 --enable-fortran --enable-static=yes --enable-parallel --enable-shared
+make -j
+make install
+#netcdf
+netcdf_c_version='4.7.4'
+netcdf_f_version='4.5.3'
+. wget -u https://codeload.github.com/Unidata/netcdf-fortran/tar.gz/refs/tags/v${netcdf_f_version} -f netcdf-fortran-${netcdf_f_version}.tar.gz
+. wget -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 $DEP_BUILD_DIR
+rm -rf netcdf-c-${netcdf_c_version} netcdf-fortran-${netcdf_f_version}
+tar -xvf $DEP_DOWNLOAD_DIR/netcdf-c-${netcdf_c_version}.tar.gz
+tar -xvf $DEP_DOWNLOAD_DIR/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=${HDF5_PATH}
+PNETCDF_DIR=${PNETCDF_PATH}
+./configure --prefix=$1 ${build_type} --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"
+
+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
+
+#hdf-eos5
+. wget -u https://git.earthdata.nasa.gov/rest/git-lfs/storage/DAS/hdfeos5/7054de24b90b6d9533329ef8dc89912c5227c83fb447792103279364e13dd452?response-content-disposition=attachment%3B%20filename%3D%22HDF-EOS5.1.16.tar.Z%22%3B%20filename*%3Dutf-8%27%27HDF-EOS5.1.16.tar.Z
+cd $DEP_DOWNLOAD_DIR
+cp -f 7054de24b90b6d9533329ef8dc89912c5227c83fb447792103279364e13dd452* HDF-EOS5.1.16.tar
+cd $DEP_BUILD_DIR
+# gzip -d $DEP_DOWNLOAD_DIR/HDF-EOS2.20v1.00.tar
+tar -xvf $DEP_DOWNLOAD_DIR/HDF-EOS5.1.16.tar
+cd hdfeos5
+
+./configure CC=${HDF5_PATH}/bin/h5pcc --with-hdf4=${HDF5_PATH} --with-zlib=/usr/local --prefix=$1
+make -j
+make install
+cp -r include $1/
+#proj
+. wget -u http://download.osgeo.org/proj/proj-5.2.0.tar.gz
+cd $DEP_BUILD_DIR
+rm -rf proj-5.2.0
+tar -xvf $DEP_DOWNLOAD_DIR/proj-5.2.0.tar.gz
+cd proj-5.2.0
+
+./configure --enable-shared --enable-static --prefix=$1
+make all install
+
+#jasper
+. wget -u https://www.ece.uvic.ca/~frodo/jasper/software/jasper_1.900.1.orig.tar.gz
+cd $DEP_BUILD_DIR
+rm -rf jasper-1.900.2
+tar -xvf $DEP_DOWNLOAD_DIR/jasper_1.900.1.orig.tar.gz
+cd jasper-1.900.1
+./configure --prefix=$1
+make -j
+make install
+
+#mesa
+. wget -u https://archive.mesa3d.org/older-versions/3.x/MesaLib-3.1.tar.gz
+cd $DEP_BUILD_DIR
+rm -rf Mesa-3.1
+tar -xvf $DEP_DOWNLOAD_DIR/MesaLib-3.1.tar.gz
+cd Mesa-3.1
+cp -f /usr/share/libtool/build-aux/config.guess ./
+cp -f /usr/share/libtool/build-aux/config.sub ./
+./configure --prefix=$1
+make
+make install
+
+#udunits
+. wget -u https://artifacts.unidata.ucar.edu/repository/downloads-udunits/2.2.28/udunits-2.2.28.tar.gz
+cd $DEP_BUILD_DIR
+tar xvf $DEP_DOWNLOAD_DIR/udunits-2.2.28.tar.gz
+cd udunits-2.2.28
+./configure --prefix=$1
+make -j
+make install
+
+#vis5d+
+. wget -u https://sourceforge.net/projects/vis5d/files/vis5d/vis5d%2B-1.3.0-beta/vis5d%2B-1.3.0-beta.tar.gz
+cd $DEP_BUILD_DIR
+rm -rf vis5d+-1.3.0-beta
+tar -xvf $DEP_DOWNLOAD_DIR/vis5d%2B-1.3.0-beta.tar.gz
+cd vis5d+-1.3.0-beta
+sed -i '40c extern float vis_round( float x ); ' src/misc.h
+sed -i '150c float vis_round(float x)' src/misc.c
+
+FFLAGS='-fno-range-check -fallow-rank-mismatch' LDFLAGS=-L${MESA_PATH}/lib CFLAGS=-I${MESA_PATH}/include CPPFLAGS=-I${MESA_PATH}/include ./configure --prefix=$1 --disable-fortran --with-netcdf=${NETCDF_PATH} --disable-shared
+
+make
+make install
+
+```
+
+## 以下是NCO依赖各库
+NCO依赖为netcdf hdf4 hdf5 gsl udunits antlr
+
+```bash
+#antlr
+. wget -u https://www.antlr2.org/download/antlr-2.7.7.tar.gz
+cd $DEP_BUILD_DIR
+tar xvf $DEP_DOWNLOAD_DIR/antlr-2.7.7.tar.gz
+cd antlr-2.7.7
+sed -i "13a #include " lib/cpp/antlr/CharScanner.hpp
+sed -i "14a #include " lib/cpp/antlr/CharScanner.hpp
+./configure \
+--prefix=$1 \
+--disable-csharp \
+--disable-java \
+--disable-python
+make -j
+make install
+#其余同上
+```
+
+## 以下为NCVIEW依赖
+ncview依赖为 hdf5 pnetcdf netcdf udunits
+```bash
+#同上NCL
+```
+
+## 4.编译
+
+### 4.1.下载并编译wannier90
+
+获取QMCPACK软件源码并解压文件
+
+```bash
+
+# 下载源码文件
+cd $DEP_DOWNLOAD_DIR
+git clone https://github.com/wannier-developers/wannier90.git
+# 解压源码文件
+cd $DEP_BUILD_DIR/wannier90
+#编译源码
+cp config/make.inc.gfortran ./make.inc
+sed -i '4c F90 = gfortran' make.inc
+sed -i '8c MPIF90 = mpif90' make.inc
+sed -i '7c COMMS= mpi' make.inc
+sed -i '14c FCOPTS = -fstrict-aliasing -fno-omit-frame-pointer -fno-realloc-lhs -fcheck=bounds,do,recursion,pointer -ffree-form -Wall -Waliasing -Wsurprising -Wline-truncation -Wno-tabs -Wno-uninitialized -Wno-unused-dummy-argument -Wno-unused -Wno-character-truncation -O1 -g -fbacktrace' make.inc
+sed -i '15c LDOPTS = -fstrict-aliasing -fno-omit-frame-pointer -fno-realloc-lhs -fcheck=bounds,do,recursion,pointer -ffree-form -Wall -Waliasing -Wsurprising -Wline-truncation -Wno-tabs -Wno-uninitialized -Wno-unused-dummy-argument -Wno-unused -Wno-character-truncation -O1 -g -fbacktrace' make.inc
+
+make
+make install
+```
+
+### 4.2. 运行测试
+
+ncl为图形应用,官方并未给出过多用例,所以验证ncl程序是否成功编译,
+
+```bash
+export PATH=$PATH:$INSTALL_DIR/bin
+ncl -v
+```
+
+## 附A:使用hpcrunner进行一键安装ncl、nco、ncview
+
+推荐使用hpcrunner进行安装ncl、nco、ncview
+
+### 1.克隆仓库
+
+```bash
+git clone https://gitee.com/openeuler/hpcrunner.git
+```
+
+## 2.初始化hpcrunner 和 安装必要软件包
+
+初始化项目助手
+
+```bash
+cd hpcrunner
+source init.sh
+```
+
+安装必要软件包
+
+**arm / x86 需要的软件包不同,根据实际环境进行选择**
+
+```bash
+# arm
+yum install -y environment-odules git wget unzip make flex tar
+# x86
+yum install -y environment-modules git wget unzip make flex tar
+yum install -y gcc gcc-c++ gcc-gfortran glibc-devel libgfortran
+yum install -y tcsh tcl lsof tk bc
+```
+
+### 3.选择平台对应配置文件
+## NCL
+- arm平台的配置文件为 `templates/ncl/6.6.2/data.NCL.arm.cpu.config`
+
+ ```bash
+ ./jarvis -use templates/ncl/6.6.2/data.NCL.arm.cpu.config
+ ```
+
+- x86 平台的配置文件为 `templates/ncl/6.6.2/data.ncl.x86.cpu.config`
+
+ ```bash
+ ./jarvis -use templates/wannier90/3.1.0/data.wannier90.amd.cpu.config
+ ```
+## NCO
+- arm平台的配置文件为 `templates/nco/5.1.4/data.NCO.arm.cpu.config`
+
+ ```bash
+ ./jarvis -use templates/wannier90/3.1.0/data.wannier90.arm.cpu.config
+ ```
+
+- x86 平台的配置文件为 `templates/nco/5.1.4/data.NCO.x86.cpu.config`
+
+ ```bash
+ ./jarvis -use templates/wannier90/3.1.0/data.wannier90.amd.cpu.config
+ ```
+ ## NCVIEW
+ - arm平台的配置文件为 `templates/ncview/2.1.7/data.ncview.arm.cpu.config`
+
+ ```bash
+ ./jarvis -use templates/wannier90/3.1.0/data.wannier90.arm.cpu.config
+ ```
+
+- x86 平台的配置文件为 `templates/ncview/2.1.7/data.ncview.x86.cpu.config`
+
+ ```bash
+ ./jarvis -use templates/wannier90/3.1.0/data.wannier90.amd.cpu.config
+ ```
+### 4.下载QMCPACK源码
+
+```bash
+./jarvis -d
+```
+
+### 5.一键配置依赖环境
+
+```bash
+./jarvis -dp
+```
+
+### 6.一键进行编译
+
+```bash
+./jarvis -b
+```
+
+### 7.一键进行运行测试
+
+```bash
+./jarvis -r
+```
+
+## 附B:使用singularity运行容器
+
+### 使用教程
+
+### 下载容器镜像
+
+通过链接下载:
+
+[百度云盘](https://pan.baidu.com/s/1fxKHH5cIaKVt2boYUhVxmQ?pwd=ic13)
+
+
+#### 1.安装singularity
+
+安装singularity,
+
+具体步骤如下
+
+```bash
+mkdir -p ~/install
+mkdir -p ~/build
+
+#安装编译所需依赖
+yum -y install libatomic libstdc++ libstdc++-devel libseccomp-devel glib2-devel gcc squashfs-tools tar
+
+#安装bisheng编译器
+cd ~/build
+wget https://mirrors.huaweicloud.com/kunpeng/archive/compiler/bisheng_compiler/bisheng-compiler-2.1.0-aarch64-linux.tar.gz
+tar -C ~/install -xf bisheng-compiler-2.1.0-aarch64-linux.tar.gz
+echo "export PATH=$HOME/install/bisheng-compiler-2.1.0-aarch64-linux/bin:$PATH" >> ~/.bashrc && source ~/.bashrc
+export CC=`which clang`
+export CXX=`which clang++`
+
+#安装go编译器
+cd ~/build
+wget https://go.dev/dl/go1.19.linux-arm64.tar.gz
+tar -C ~/install -xf go1.19.linux-arm64.tar.gz
+echo "export PATH=$HOME/install/go/bin:$PATH" >> ~/.bashrc && source ~/.bashrc
+
+#安装singularity
+cd ~/build
+wget https://github.com/sylabs/singularity/releases/download/v3.10.2/singularity-ce-3.10.2.tar.gz
+tar -xf singularity-ce-3.10.2.tar.gz
+cd singularity-ce-3.10.2
+./mconfig --prefix=$HOME/install/singularity
+make -C ./builddir
+make -C ./builddir install
+echo "export PATH=$HOME/install/singularity/bin:$PATH" >> ~/.bashrc && source ~/.bashrc
+```
+
+#### 2.构建镜像
+
+```shell
+# x86
+singularity build ./name-of-image.sif openeuler-gcc-9.3.0-hmpi1-qmcpack-3.13.0.def
+# arm
+singularity build ./name-of-image.sif openeuler-bisheng2-hmpi1-qmcpack-3.13.0.def
+# 转换为沙盒
+singularity build --sandbox image-sandbox name-of-image.sif
+```
+
+#### 3.在沙盒中运行
+
+```shell
+#进入沙盒
+singularity shell -w image-sandbox
+#在沙盒中运行内置的测试案例
+cd /hpcrunner
+./jarvis -r
+```
diff --git a/downloads/download.md b/downloads/download.md
deleted file mode 100644
index ad4924c8e6533ca8f2599871f8ea9d4bd8ee5e2e..0000000000000000000000000000000000000000
--- a/downloads/download.md
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-Software Download:
-
-
- X86
- ARM
- bisheng 2.1.0
-
-
\ No newline at end of file
diff --git a/init.sh b/init.sh
old mode 100644
new mode 100755
diff --git a/jarvis b/jarvis
old mode 100644
new mode 100755
diff --git a/package/Hyper-tuner/2.3.0/install.sh b/package/Hyper-tuner/2.3.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/IPM/2.0.6/install.sh b/package/IPM/2.0.6/install.sh
old mode 100644
new mode 100755
diff --git a/package/ImageMagick/7.1.0/install.sh b/package/ImageMagick/7.1.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/Porting/2.3.0/install.sh b/package/Porting/2.3.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/antlr/2.7.7/install.sh b/package/antlr/2.7.7/install.sh
new file mode 100755
index 0000000000000000000000000000000000000000..0c5162a9258610012c9cfe88ff3cac356ad64b0f
--- /dev/null
+++ b/package/antlr/2.7.7/install.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+set -x
+set -e
+. ${DOWNLOAD_TOOL} -u https://www.antlr2.org/download/antlr-2.7.7.tar.gz
+cd ${JARVIS_TMP}
+tar xvf ${JARVIS_DOWNLOAD}/antlr-2.7.7.tar.gz
+cd antlr-2.7.7
+sed -i "13a #include " lib/cpp/antlr/CharScanner.hpp
+sed -i "14a #include " lib/cpp/antlr/CharScanner.hpp
+./configure \
+--prefix=$1 \
+--disable-csharp \
+--disable-java \
+--disable-python
+make -j
+make install
diff --git a/package/arpack/96/clang/install.sh b/package/arpack/96/clang/install.sh
old mode 100644
new mode 100755
diff --git a/package/automake/1.16.5/install.sh b/package/automake/1.16.5/install.sh
old mode 100644
new mode 100755
diff --git a/package/bedtools/2.28.0/clang/install.sh b/package/bedtools/2.28.0/clang/install.sh
old mode 100644
new mode 100755
diff --git a/package/bisheng/1.3.3/install.sh b/package/bisheng/1.3.3/install.sh
old mode 100644
new mode 100755
diff --git a/package/bisheng/2.1.0/install.sh b/package/bisheng/2.1.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/bisheng/2.3.0/install.sh b/package/bisheng/2.3.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/bisheng/2.4.0/install.sh b/package/bisheng/2.4.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/bisheng/meta.sh b/package/bisheng/meta.sh
old mode 100644
new mode 100755
diff --git a/package/blas/3.10.0/clang/install.sh b/package/blas/3.10.0/clang/install.sh
old mode 100644
new mode 100755
diff --git a/package/blas/3.10.0/install.sh b/package/blas/3.10.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/boost/1.72.0/clang/install.sh b/package/boost/1.72.0/clang/install.sh
old mode 100644
new mode 100755
diff --git a/package/bowtie2/2.4.5/install.sh b/package/bowtie2/2.4.5/install.sh
old mode 100644
new mode 100755
diff --git a/package/bwa/0.7.17/clang/install.sh b/package/bwa/0.7.17/clang/install.sh
old mode 100644
new mode 100755
diff --git a/package/cairo/1.16.0/install.sh b/package/cairo/1.16.0/install.sh
new file mode 100755
index 0000000000000000000000000000000000000000..20cc9b686fcee1d89e55ca8bd85f56cadb955ad6
--- /dev/null
+++ b/package/cairo/1.16.0/install.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+set -x
+set -e
+. ${DOWNLOAD_TOOL} -u https://www.cairographics.org/releases/cairo-1.16.0.tar.xz
+cd ${JARVIS_TMP}
+tar xvf ${JARVIS_DOWNLOAD}/cairo-1.16.0.tar.xz
+cd cairo-1.16.0
+./configure --prefix=$1
+make all install
diff --git a/package/common/check_deps.sh b/package/common/check_deps.sh
old mode 100644
new mode 100755
diff --git a/package/common/check_root.sh b/package/common/check_root.sh
old mode 100644
new mode 100755
diff --git a/package/common/download.sh b/package/common/download.sh
old mode 100644
new mode 100755
diff --git a/package/ctffind/4.1.14/clang/install.sh b/package/ctffind/4.1.14/clang/install.sh
old mode 100644
new mode 100755
diff --git a/package/cuda/11.4.0/install.sh b/package/cuda/11.4.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/cuda/FAQ b/package/cuda/FAQ
old mode 100644
new mode 100755
diff --git a/package/curl/7.82.0/install.sh b/package/curl/7.82.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/darshan/3.4/install.sh b/package/darshan/3.4/install.sh
old mode 100644
new mode 100755
diff --git a/package/eigen3/3.4.0/install.sh b/package/eigen3/3.4.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/elpa/2019.05.001/install.sh b/package/elpa/2019.05.001/install.sh
old mode 100644
new mode 100755
diff --git a/package/fftw/2.1.5/install.sh b/package/fftw/2.1.5/install.sh
old mode 100644
new mode 100755
diff --git a/package/fftw/3.3.10/install.sh b/package/fftw/3.3.10/install.sh
old mode 100644
new mode 100755
diff --git a/package/fftw/3.3.8/install.sh b/package/fftw/3.3.8/install.sh
old mode 100644
new mode 100755
diff --git a/package/freetype/2.5.1/install.sh b/package/freetype/2.5.1/install.sh
new file mode 100755
index 0000000000000000000000000000000000000000..9a87d86dc578d0badc3cdcc0d36e39fc7f3520be
--- /dev/null
+++ b/package/freetype/2.5.1/install.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+set -x
+set -e
+. ${DOWNLOAD_TOOL} -u https://sourceforge.net/projects/freetype/files/freetype2/2.5.1/freetype-2.5.1.tar.gz
+cd ${JARVIS_TMP}
+tar -xvf ${JARVIS_DOWNLOAD}/freetype-2.5.1.tar.gz
+cd freetype-2.5.1
+
+./configure --enable-shared --prefix=$1
+make -j
+make install
+cd include
+cp -r * $1/include
\ No newline at end of file
diff --git a/package/g2clib/1.6.0/install.sh b/package/g2clib/1.6.0/install.sh
new file mode 100755
index 0000000000000000000000000000000000000000..a29d992d8235f78eb050527e815b90911e3dd3f7
--- /dev/null
+++ b/package/g2clib/1.6.0/install.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+set -x
+set -e
+cd ${JARVIS_DOWNLOAD}
+rm -rf g2clib-image
+git clone https://gitee.com/linruoxuan/g2clib-image.git
+cd ${JARVIS_TMP}
+tar -xvf ${JARVIS_DOWNLOAD}/g2clib-image/g2clib-1.6.0-patch.tar.gz
+cd g2clib-1.6.0-patch
+
+sed -i '22c INC=-I/glade/p/work/haley/dev/external/gnu/4.7.2/include -I${JASPER_PATH}/include' makefile
+make all
+mkdir $1/lib
+mkdir $1/include
+mv libgrib2c.a $1/lib/
+cp grib2.h $1/include/
\ No newline at end of file
diff --git a/package/gatk/4.0.0.0/install.sh b/package/gatk/4.0.0.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/gcc/10.3.0/install.sh b/package/gcc/10.3.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/gcc/9.3.0/install.sh b/package/gcc/9.3.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/gdal/2.2.4/install.sh b/package/gdal/2.2.4/install.sh
new file mode 100755
index 0000000000000000000000000000000000000000..b8b32c2e38bf3eef1f01ae1e48d606ec4f0d77d4
--- /dev/null
+++ b/package/gdal/2.2.4/install.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+set -x
+set -e
+. ${DOWNLOAD_TOOL} -u http://download.osgeo.org/gdal/2.2.4/gdal-2.2.4.tar.gz
+cd ${JARVIS_TMP}
+tar -xvf ${JARVIS_DOWNLOAD}/gdal-2.2.4.tar.gz
+cd gdal-2.2.4
+
+./configure --with-static-proj4=${PROJ_PATH} --prefix=$1 --with-png=${LIBPNG_PATH} --with-gif=internal --with-libtiff=internal \
+ --with-geotiff=internal --with-jpeg=${LIBJPEG_PATH} --with-libz=/usr/local \
+ --with-sqlite3=no --with-expat=no --with-curl=no --without-ld-shared \
+ --with-hdf4=no --with-hdf5=no --with-pg=no --without-grib --disable-shared \
+ --with-freexl=no --with-geos=no --with-openjpeg=no --with-mysql=no \
+ --with-ecw=no --with-fgdb=no --with-odbc=no --with-xml2=no --with-ogdi=no\
+ --with-pcraster=no --with-xerces=no
+make all install
\ No newline at end of file
diff --git a/package/git/2.35.1/install.sh b/package/git/2.35.1/install.sh
old mode 100644
new mode 100755
diff --git a/package/gmp/6.2.0/install.sh b/package/gmp/6.2.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/grads/2.0.a4/install.sh b/package/grads/2.0.a4/install.sh
old mode 100644
new mode 100755
diff --git a/package/grib_api/1.21.0/install.sh b/package/grib_api/1.21.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/gsl/2.6/install.sh b/package/gsl/2.6/install.sh
old mode 100644
new mode 100755
diff --git a/package/hdf-eos2/2.20/install.sh b/package/hdf-eos2/2.20/install.sh
new file mode 100755
index 0000000000000000000000000000000000000000..e31ee5f4230b1b908c6466f0a1b3a41b396153cf
--- /dev/null
+++ b/package/hdf-eos2/2.20/install.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+set -x
+set -e
+. ${DOWNLOAD_TOOL} -u https://git.earthdata.nasa.gov/rest/git-lfs/storage/DAS/hdfeos/cb0f900d2732ab01e51284d6c9e90d0e852d61bba9bce3b43af0430ab5414903?response-content-disposition=attachment%3B%20filename%3D%22HDF-EOS2.20v1.00.tar.Z%22%3B%20filename*%3Dutf-8%27%27HDF-EOS2.20v1.00.tar.Z
+cd ${JARVIS_DOWNLOAD}
+cp -f cb0f900d2732ab01e51284d6c9e90d0e852d61bba9bce3b43af0430ab5414903* HDF-EOS2.20v1.00.tar
+cd ${JARVIS_TMP}
+# gzip -d ${JARVIS_DOWNLOAD}/HDF-EOS2.20v1.00.tar
+tar -xvf ${JARVIS_DOWNLOAD}/HDF-EOS2.20v1.00.tar
+cd hdfeos
+
+ac_cv_func_malloc_0_nonnull=yes ac_cv_func_realloc_0_nonnull=yes ./configure --with-hdf4=${HDF4_PATH} --with-jpeg=${LIBJPEG_PATH} --with-zlib=/usr/local --prefix=$1
+make -j
+make install
+cp -r include $1/
\ No newline at end of file
diff --git a/package/hdf-eos5/1.16/install.sh b/package/hdf-eos5/1.16/install.sh
new file mode 100755
index 0000000000000000000000000000000000000000..b6279280ec5679bfc8d442faf27da50e215249a6
--- /dev/null
+++ b/package/hdf-eos5/1.16/install.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+set -x
+set -e
+. ${DOWNLOAD_TOOL} -u https://git.earthdata.nasa.gov/rest/git-lfs/storage/DAS/hdfeos5/7054de24b90b6d9533329ef8dc89912c5227c83fb447792103279364e13dd452?response-content-disposition=attachment%3B%20filename%3D%22HDF-EOS5.1.16.tar.Z%22%3B%20filename*%3Dutf-8%27%27HDF-EOS5.1.16.tar.Z
+cd ${JARVIS_DOWNLOAD}
+cp -f 7054de24b90b6d9533329ef8dc89912c5227c83fb447792103279364e13dd452* HDF-EOS5.1.16.tar
+cd ${JARVIS_TMP}
+tar -xvf ${JARVIS_DOWNLOAD}/HDF-EOS5.1.16.tar
+cd hdfeos5
+
+./configure CC=${HDF5_PATH}/bin/h5pcc --with-hdf4=${HDF5_PATH} --with-zlib=/usr/local --prefix=$1
+make -j
+make install
+cp -r include $1/
\ No newline at end of file
diff --git a/package/hdf4/4.2.13/install.sh b/package/hdf4/4.2.13/install.sh
new file mode 100755
index 0000000000000000000000000000000000000000..09137b58145739806fa7ea9b7922d50b879bdc32
--- /dev/null
+++ b/package/hdf4/4.2.13/install.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+set -x
+set -e
+. ${DOWNLOAD_TOOL} -u https://rpmfind.net/linux/epel/8/Everything/aarch64/Packages/h/hdf-4.2.14-5.el8.aarch64.rpm
+cd ${JARVIS_TMP}
+rm -rf hdf-4.2.15
+mkdir hdf-4.2.15
+cd hdf-4.2.15
+rpm2cpio ${JARVIS_DOWNLOAD}/hdf-4.2.14-5.el8.aarch64.rpm | cpio -div
+cp -r usr/* $1/
diff --git a/package/hdf4/4.2.15/install.sh b/package/hdf4/4.2.15/install.sh
new file mode 100755
index 0000000000000000000000000000000000000000..dcadcb067c7ad9c8cbede214394f45d22178cf72
--- /dev/null
+++ b/package/hdf4/4.2.15/install.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+set -x
+set -e
+. ${DOWNLOAD_TOOL} -u https://support.hdfgroup.org/ftp/HDF/releases/HDF4.2.15/src/hdf-4.2.15.tar.gz
+cd ${JARVIS_TMP}
+rm -rf hdf-4.2.15
+tar -xvf ${JARVIS_DOWNLOAD}/hdf-4.2.15.tar.gz
+cd hdf-4.2.15
+FFLAGS+='-fallow-argument-mismatch' ./configure --prefix=$1 --with-zlib=/usr/local --disable-fortran --with-jpeg=${LIBJPEG_PATH} --disable-netcdf
+make -j
+make install
diff --git a/package/hdf5/1.10.1/clang/install.sh b/package/hdf5/1.10.1/clang/install.sh
old mode 100644
new mode 100755
diff --git a/package/hdf5/1.10.1/install.sh b/package/hdf5/1.10.1/install.sh
old mode 100644
new mode 100755
diff --git a/package/hdf5/1.10.4/install.sh b/package/hdf5/1.10.4/install.sh
new file mode 100755
index 0000000000000000000000000000000000000000..c55dc05c2ede590fc3343e82786c8ca3295599db
--- /dev/null
+++ b/package/hdf5/1.10.4/install.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+set -x
+set -e
+hdf5_big_version='1.10'
+hdf5_version="${hdf5_big_version}.4"
+. ${DOWNLOAD_TOOL} -u https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${hdf5_big_version}/hdf5-${hdf5_version}/src/hdf5-${hdf5_version}.tar.gz
+cd ${JARVIS_TMP}
+rm -rf hdf5-${hdf5_version}
+tar -xvf ${JARVIS_DOWNLOAD}/hdf5-${hdf5_version}.tar.gz
+cd hdf5-${hdf5_version}
+CC=`which mpicc` ./configure --prefix=$1 --enable-fortran --enable-static=yes --enable-parallel --enable-shared --with-szlib=${JARVIS_LIBS}/gcc10/szip/2.1.1/lib
+make -j
+make install
diff --git a/package/hdf5/1.12.0/clang/install.sh b/package/hdf5/1.12.0/clang/install.sh
old mode 100644
new mode 100755
diff --git a/package/hdf5/1.12.0/install.sh b/package/hdf5/1.12.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/hdf5/1.8.12/clang/install.sh b/package/hdf5/1.8.12/clang/install.sh
old mode 100644
new mode 100755
diff --git a/package/hdf5/1.8.12/install.sh b/package/hdf5/1.8.12/install.sh
old mode 100644
new mode 100755
diff --git a/package/hmpi/1.1.1/install.sh b/package/hmpi/1.1.1/install.sh
old mode 100644
new mode 100755
diff --git a/package/hmpi/1.2.0/install.sh b/package/hmpi/1.2.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/hmpi/FAQ.md b/package/hmpi/FAQ.md
old mode 100644
new mode 100755
diff --git a/package/htslib/1.15/install.sh b/package/htslib/1.15/install.sh
old mode 100644
new mode 100755
diff --git a/package/hypre/2.25.0/install.sh b/package/hypre/2.25.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/ioapi/3.2/clang/install.sh b/package/ioapi/3.2/clang/install.sh
old mode 100644
new mode 100755
diff --git a/package/ioapi/3.2/kgcc/install.sh b/package/ioapi/3.2/kgcc/install.sh
old mode 100644
new mode 100755
diff --git a/package/jasper/1.900.2/install.sh b/package/jasper/1.900.2/install.sh
old mode 100644
new mode 100755
index ade3fa523323afa97c01703ec5ac91788c4d336c..ae4995b0bdbf47da456515f600c4399a20e3473a
--- a/package/jasper/1.900.2/install.sh
+++ b/package/jasper/1.900.2/install.sh
@@ -1,4 +1,3 @@
-#download from https://www.ece.uvic.ca/~frodo/jasper/software/jasper-1.900.2.tar.gz
#!/bin/bash
set -x
set -e
@@ -6,7 +5,7 @@ set -e
cd ${JARVIS_TMP}
rm -rf jasper-1.900.2
tar -xvf ${JARVIS_DOWNLOAD}/jasper-1.900.2.tar.gz
-cd jasper-1.900.2
+cd jasper-1.900.1
#export CC=clang CXX=clang++
./configure --prefix=$1
make -j
diff --git a/package/jellyfish/2.3.0/install.sh b/package/jellyfish/2.3.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/kahip/3.10/install.sh b/package/kahip/3.10/install.sh
old mode 100644
new mode 100755
diff --git a/package/kfft/1.0.0/install.sh b/package/kfft/1.0.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/kgcc/10.3.1/install.sh b/package/kgcc/10.3.1/install.sh
old mode 100644
new mode 100755
diff --git a/package/kgcc/9.3.1/install.sh b/package/kgcc/9.3.1/install.sh
old mode 100644
new mode 100755
diff --git a/package/kml/1.4.0/bisheng/install.sh b/package/kml/1.4.0/bisheng/install.sh
old mode 100644
new mode 100755
diff --git a/package/kml/1.4.0/gcc/install.sh b/package/kml/1.4.0/gcc/install.sh
old mode 100644
new mode 100755
diff --git a/package/kml/1.6.0/bisheng/install.sh b/package/kml/1.6.0/bisheng/install.sh
old mode 100644
new mode 100755
diff --git a/package/kml/1.6.0/gcc/install.sh b/package/kml/1.6.0/gcc/install.sh
old mode 100644
new mode 100755
diff --git a/package/lapack/3.8.0/bisheng/install.sh b/package/lapack/3.8.0/bisheng/install.sh
old mode 100644
new mode 100755
diff --git a/package/lapack/3.8.0/install.sh b/package/lapack/3.8.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/libint/2.6.0/install.sh b/package/libint/2.6.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/libjpeg/v7/install.sh b/package/libjpeg/v7/install.sh
old mode 100644
new mode 100755
diff --git a/package/libjpeg/v9b/install.sh b/package/libjpeg/v9b/install.sh
new file mode 100755
index 0000000000000000000000000000000000000000..da3dcd3c812539f88e4984edcaf2226dac3b25c8
--- /dev/null
+++ b/package/libjpeg/v9b/install.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+set -x
+set -e
+. ${DOWNLOAD_TOOL} -u http://www.ijg.org/files/jpegsrc.v9b.tar.gz
+cd ${JARVIS_TMP}
+rm -rf jpeg-9b
+tar xvf ${JARVIS_DOWNLOAD}/jpegsrc.v9b.tar.gz
+cd jpeg-9b
+./configure --prefix=$1
+make -j
+make install
\ No newline at end of file
diff --git a/package/libpng/1.6.37/install.sh b/package/libpng/1.6.37/install.sh
old mode 100644
new mode 100755
diff --git a/package/libvori/21.04.12/install.sh b/package/libvori/21.04.12/install.sh
old mode 100644
new mode 100755
diff --git a/package/libxc/4.3.4/install.sh b/package/libxc/4.3.4/install.sh
old mode 100644
new mode 100755
diff --git a/package/libxc/5.1.4/install.sh b/package/libxc/5.1.4/install.sh
old mode 100644
new mode 100755
diff --git a/package/mesa/3.1/install.sh b/package/mesa/3.1/install.sh
new file mode 100755
index 0000000000000000000000000000000000000000..d695cd03539d3ba9a005a345811fa5b81c542423
--- /dev/null
+++ b/package/mesa/3.1/install.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+set -x
+set -e
+
+. ${DOWNLOAD_TOOL} -u https://archive.mesa3d.org/older-versions/3.x/MesaLib-3.1.tar.gz
+cd ${JARVIS_TMP}
+rm -rf Mesa-3.1
+tar -xvf ${JARVIS_DOWNLOAD}/MesaLib-3.1.tar.gz
+cd Mesa-3.1
+cp -f /usr/share/libtool/build-aux/config.guess ./
+cp -f /usr/share/libtool/build-aux/config.sub ./
+./configure --prefix=$1
+make
+make install
\ No newline at end of file
diff --git a/package/metis/4.0.3/install.sh b/package/metis/4.0.3/install.sh
old mode 100644
new mode 100755
diff --git a/package/mfem/4.4/install.sh b/package/mfem/4.4/install.sh
old mode 100644
new mode 100755
diff --git a/package/ncview/2.1.7/install.sh b/package/ncview/2.1.7/install.sh
old mode 100644
new mode 100755
diff --git a/package/netcdf/4.7.0/install.sh b/package/netcdf/4.7.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/netcdf/4.7.4/clang/install.sh b/package/netcdf/4.7.4/clang/install.sh
old mode 100644
new mode 100755
diff --git a/package/netcdf/4.7.4/install.sh b/package/netcdf/4.7.4/install.sh
old mode 100644
new mode 100755
diff --git a/package/nvhpc/11.4/install.sh b/package/nvhpc/11.4/install.sh
old mode 100644
new mode 100755
diff --git a/package/oneapi/2021.1.0/install.sh b/package/oneapi/2021.1.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/openblas/0.3.18/install.sh b/package/openblas/0.3.18/install.sh
old mode 100644
new mode 100755
diff --git a/package/openblas/0.3.6/install.sh b/package/openblas/0.3.6/install.sh
old mode 100644
new mode 100755
diff --git a/package/opencv/4.5.5/install.sh b/package/opencv/4.5.5/install.sh
old mode 100644
new mode 100755
diff --git a/package/openjpeg/2.4.0/install.sh b/package/openjpeg/2.4.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/openlb/1.4/install.sh b/package/openlb/1.4/install.sh
old mode 100644
new mode 100755
diff --git a/package/openmpi/4.0.1/gpu/install.sh b/package/openmpi/4.0.1/gpu/install.sh
old mode 100644
new mode 100755
diff --git a/package/openmpi/4.0.1/install.sh b/package/openmpi/4.0.1/install.sh
old mode 100644
new mode 100755
diff --git a/package/openmpi/4.1.2/IB/install.sh b/package/openmpi/4.1.2/IB/install.sh
old mode 100644
new mode 100755
diff --git a/package/openmpi/4.1.2/gpu/install.sh b/package/openmpi/4.1.2/gpu/install.sh
old mode 100644
new mode 100755
diff --git a/package/openmpi/4.1.2/install.sh b/package/openmpi/4.1.2/install.sh
old mode 100644
new mode 100755
diff --git a/package/optimized-routines/20.02/clang/install.sh b/package/optimized-routines/20.02/clang/install.sh
old mode 100644
new mode 100755
diff --git a/package/optimized-routines/20.02/install.sh b/package/optimized-routines/20.02/install.sh
old mode 100644
new mode 100755
diff --git a/package/parmetis/4.0.3/install.sh b/package/parmetis/4.0.3/install.sh
old mode 100644
new mode 100755
diff --git a/package/picard/2.27.0/install.sh b/package/picard/2.27.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/pixman/0.38.0/install.sh b/package/pixman/0.38.0/install.sh
new file mode 100755
index 0000000000000000000000000000000000000000..cdc121d53b060b1f7549929ea42f0f160d0b555a
--- /dev/null
+++ b/package/pixman/0.38.0/install.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+set -x
+set -e
+. ${DOWNLOAD_TOOL} -u https://www.cairographics.org/releases/pixman-0.38.0.tar.gz
+cd ${JARVIS_TMP}
+
+tar xvf ${JARVIS_DOWNLOAD}/pixman-0.38.0.tar.gz
+cd pixman-0.38.0
+./configure --prefix=$1
+make -j
+make install
diff --git a/package/pkg-config/0.29/install.sh b/package/pkg-config/0.29/install.sh
new file mode 100755
index 0000000000000000000000000000000000000000..59241282d7f2709bce7b0bccab322860079b5e06
--- /dev/null
+++ b/package/pkg-config/0.29/install.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+set -x
+set -e
+. ${DOWNLOAD_TOOL} -u http://pkgconfig.freedesktop.org/releases/pkg-config-0.29.tar.gz
+cd ${JARVIS_TMP}
+tar xvf ${JARVIS_DOWNLOAD}/pkg-config-0.29.tar.gz
+cd pkg-config-0.29
+./configure --prefix=$1 --enable-shared
+make -j
+make install
diff --git a/package/plumed/2.5.2/install.sh b/package/plumed/2.5.2/install.sh
old mode 100644
new mode 100755
diff --git a/package/plumed/2.6.2/install.sh b/package/plumed/2.6.2/install.sh
old mode 100644
new mode 100755
diff --git a/package/plumed/FAQ b/package/plumed/FAQ
old mode 100644
new mode 100755
diff --git a/package/pnetcdf/1.11.2/install.sh b/package/pnetcdf/1.11.2/install.sh
old mode 100644
new mode 100755
diff --git a/package/pnetcdf/1.12.1/install.sh b/package/pnetcdf/1.12.1/install.sh
old mode 100644
new mode 100755
diff --git a/package/precice/2.3.0/install.sh b/package/precice/2.3.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/proj/5.2.0/install.sh b/package/proj/5.2.0/install.sh
new file mode 100755
index 0000000000000000000000000000000000000000..20a26f83e6ffedd58e6513f2eeb43a6d40697188
--- /dev/null
+++ b/package/proj/5.2.0/install.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+set -x
+set -e
+. ${DOWNLOAD_TOOL} -u http://download.osgeo.org/proj/proj-5.2.0.tar.gz
+cd ${JARVIS_TMP}
+rm -rf proj-5.2.0
+tar -xvf ${JARVIS_DOWNLOAD}/proj-5.2.0.tar.gz
+cd proj-5.2.0
+
+./configure --enable-shared --enable-static --prefix=$1
+make all install
\ No newline at end of file
diff --git a/package/python3/3.7.10/install.sh b/package/python3/3.7.10/install.sh
old mode 100644
new mode 100755
diff --git a/package/relion/3.1.2/install.sh b/package/relion/3.1.2/install.sh
old mode 100644
new mode 100755
diff --git a/package/salmon/1.9.0/bisheng/install.sh b/package/salmon/1.9.0/bisheng/install.sh
old mode 100644
new mode 100755
diff --git a/package/salmon/1.9.0/install.sh b/package/salmon/1.9.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/samtools/1.15/install.sh b/package/samtools/1.15/install.sh
old mode 100644
new mode 100755
diff --git a/package/scalapack/2.1.0/clang/install.sh b/package/scalapack/2.1.0/clang/install.sh
old mode 100644
new mode 100755
diff --git a/package/scalapack/2.1.0/install.sh b/package/scalapack/2.1.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/scalapack/2.1.0/kml/install.sh b/package/scalapack/2.1.0/kml/install.sh
old mode 100644
new mode 100755
diff --git a/package/scotch/7.0.1/install.sh b/package/scotch/7.0.1/install.sh
old mode 100644
new mode 100755
diff --git a/package/singularity/3.8.4/install.sh b/package/singularity/3.8.4/install.sh
old mode 100644
new mode 100755
diff --git a/package/singularity/3.9.9/install.sh b/package/singularity/3.9.9/install.sh
old mode 100644
new mode 100755
diff --git a/package/spglib/1.16.0/install.sh b/package/spglib/1.16.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/spooles/2.2/clang/install.sh b/package/spooles/2.2/clang/install.sh
old mode 100644
new mode 100755
diff --git a/package/szip/2.1.1/install.sh b/package/szip/2.1.1/install.sh
old mode 100644
new mode 100755
diff --git a/package/tau/2.30.0/install.sh b/package/tau/2.30.0/install.sh
old mode 100644
new mode 100755
diff --git a/package/udunits/2.2.28/install.sh b/package/udunits/2.2.28/install.sh
old mode 100644
new mode 100755
diff --git a/package/valgrind/3.20/install.sh b/package/valgrind/3.20/install.sh
old mode 100644
new mode 100755
diff --git a/package/vis5dplus/1.3.0/install.sh b/package/vis5dplus/1.3.0/install.sh
new file mode 100755
index 0000000000000000000000000000000000000000..2c1aa8b9a4dfb01612f032ac77ee0dbde17c7406
--- /dev/null
+++ b/package/vis5dplus/1.3.0/install.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+set -x
+set -e
+. ${DOWNLOAD_TOOL} -u https://sourceforge.net/projects/vis5d/files/vis5d/vis5d%2B-1.3.0-beta/vis5d%2B-1.3.0-beta.tar.gz
+cd ${JARVIS_TMP}
+rm -rf vis5d+-1.3.0-beta
+tar -xvf ${JARVIS_DOWNLOAD}/vis5d%2B-1.3.0-beta.tar.gz
+cd vis5d+-1.3.0-beta
+sed -i '40c extern float vis_round( float x ); ' src/misc.h
+sed -i '150c float vis_round(float x)' src/misc.c
+
+FFLAGS='-fno-range-check -fallow-rank-mismatch' LDFLAGS=-L${MESA_PATH}/lib CFLAGS=-I${MESA_PATH}/include CPPFLAGS=-I${MESA_PATH}/include ./configure --prefix=$1 --disable-fortran --with-netcdf=${NETCDF_PATH} --disable-shared
+
+make
+make install
\ No newline at end of file
diff --git a/package/wxWidgets/3.0.5/install.sh b/package/wxWidgets/3.0.5/install.sh
old mode 100644
new mode 100755
diff --git a/package/yaml-cpp/0.6.2/install.sh b/package/yaml-cpp/0.6.2/install.sh
old mode 100644
new mode 100755
diff --git a/package/zlib/1.2.12/clang/install.sh b/package/zlib/1.2.12/clang/install.sh
old mode 100644
new mode 100755
diff --git a/package/zlib/1.2.12/install.sh b/package/zlib/1.2.12/install.sh
old mode 100644
new mode 100755
diff --git a/templates/ncl/6.6.2/data.NCL.arm.cpu.config b/templates/ncl/6.6.2/data.NCL.arm.cpu.config
new file mode 100644
index 0000000000000000000000000000000000000000..3c7cccf49402c789024ec07c2b86181c821dcebb
--- /dev/null
+++ b/templates/ncl/6.6.2/data.NCL.arm.cpu.config
@@ -0,0 +1,124 @@
+[SERVER]
+11.11.11.11
+
+[DOWNLOAD]
+NCL/6.6.2 https://rpmfind.net/linux/epel/8/Everything/aarch64/Packages/n/ncl-6.6.2-12.el8.aarch64.rpm
+
+[DEPENDENCY]
+set -e
+set -x
+module purge
+sed -i '1a export bisheng_ver='bisheng-compiler-2.3.0'' package/bisheng/2.3.0/install.sh
+./jarvis -install kgcc/10.3.1 com
+./jarvis -install bisheng/2.3.0 com
+module use ./software/modulefiles
+module load bisheng
+CC=`which clang`
+CXX=`which clang++`
+FC=`which flang`
+sed -i '9c ./configure --prefix=$1 CFLAGS="-fPIC"' package/libjpeg/v9b/install.sh
+./jarvis -install libjpeg/v9b bisheng
+./jarvis -install hmpi/1.2.0 bisheng
+module load libjpeg
+
+module load hmpi/1.2.0
+
+
+
+
+
+CC=`which mpicc`
+
+./jarvis -install pnetcdf/1.12.1 bisheng
+module load pnetcdf/1.12.1
+sed -i '9c ./configure --prefix=$1 --enable-netcdf-4 --disable-shared' package/szip/2.1.1/install.sh
+
+
+sed -i '11c CC=`which mpicc` FC=`which mpifort` ./configure --with-zlib=/usr/lib --prefix=$1 --enable-static=yes --enable-parallel --enable-shared --with-szlib=${JARVIS_LIBS}/bisheng2.3.0/szip/2.1.1/lib' package/hdf5/1.10.4/install.sh
+sed -i 's/# sed/sed/g' package/hdf5/1.12.0/install.sh
+./jarvis -install hdf5/1.12.0 bisheng
+
+export CC=`which clang`
+export CXX=`which clang++`
+export FC=`which flang`
+module load hdf5/1.12.0
+
+sed -i '21c ./configure --prefix=$1 ${build_type} --enable-shared --enable-netcdf-4 --disable-dap --with-pic --disable-doxygen --enable-static --disable-pnetcdf --enable-largefile CPPFLAGS="-O3 -I${HMPI_PATH}/include -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"' package/netcdf/4.7.4/install.sh
+./jarvis -install netcdf/4.7.4 bisheng
+module load netcdf/4.7.4
+ln -s -f ${NETCDF_PATH}/lib/libnetcdf.so.18 ${NETCDF_PATH}/lib/libnetcdf.so.15
+./jarvis -install hdf4/4.2.13 bisheng
+
+
+module load hdf5/1.12.0
+ln -s -f ${HDF5_PATH}/lib/libhdf5_hl.so.200.0.0 ${HDF5_PATH}/lib/libhdf5_hl.so.100
+ln -s -f ${HDF5_PATH}/lib/libhdf5.so.200.0.0 ${HDF5_PATH}/lib/libhdf5.so.103
+./jarvis -install jasper/1.900.1 bisheng
+module load jasper
+ln -s -f ${JASPER_PATH}/lib/libjasper.so.1.0.0 ${JASPER_PATH}/lib/libjasper.so.4
+
+./jarvis -install proj/5.2.0 bisheng
+./jarvis -install gdal/2.2.4 bisheng
+module load gdal/2.2.4
+module load proj/5.2.0
+ln -s -f ${GDAL_PATH}/lib/libgdal.so.20.3.3 ${GDAL_PATH}/lib/libgdal.so.26
+ln -s -f ${PROJ_PATH}/lib/libproj.so ${PROJ_PATH}/lib/libproj.so.15
+
+export CC=`which clang`
+export CXX=`which clang++`
+export FC=`which flang`
+
+./jarvis -install udunits/2.2.28 bisheng
+./jarvis -install gsl/2.6 bisheng
+module load gsl/2.6
+ln -s -f ${GSL_PATH}/lib/libgsl.so.25.0.0 ${GSL_PATH}/lib/libgsl.so.23
+./jarvis -install openblas/0.3.18 bisheng
+module load openblas/0.3.18
+
+
+
+
+[ENV]
+module purge
+module use ./software/modulefiles
+
+module load bisheng/2.3.0
+module load hmpi/1.2.0
+module load libjpeg
+module load hdf5/1.12.0
+module load netcdf/4.7.4
+module load hdf4-clang/4.2.15
+module load hdf5/1.10.4
+module load gsl/2.6
+module load jasper/1.900.1
+module load proj/5.2.0
+module load gdal/2.2.4
+module load udunits/2.2.28
+module load openblas
+module load kgcc
+export CC=`which mpicc`
+export F77=`which mpif77`
+export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${JARVIS_LIBS}/bisheng2.3.0/szip/2.1.1/lib:${JARVIS_LIBS}/bisheng2.3.0/libjpeg/v9b/lib:${JARVIS_LIBS}/bisheng2.3.0/gsl/2.6/lib
+
+
+
+[APP]
+app_name = NCL
+build_dir = ${JARVIS_TMP}/ncl_ncarg-6.6.2
+binary_dir = ${JARVIS_LIBS}/bisheng2.3.0/ncl/bin
+case_dir = ${JARVIS_LIBS}/bisheng2.3.0/ncl/bin
+
+[BUILD]
+cd ${JARVIS_TMP}
+rm -rf ncl_ncarg_6.6.2
+mkdir ncl_ncarg_6.6.2
+cd ncl_ncarg_6.6.2
+rpm2cpio ${JARVIS_DOWNLOAD}/ncl-6.6.2-12.el8.aarch64.rpm | cpio -div
+cp -r usr/* ${JARVIS_LIBS}/bisheng2.3.0/ncl
+export PATH=$PATH:${JARVIS_LIBS}/bisheng2.3.0/ncl/bin
+export NCARG_ROOT=${binary_dir}
+
+[RUN]
+run = export PATH=$PATH:${JARVIS_LIBS}/bisheng2.3.0/ncl/bin && export NCARG_ROOT=${JARVIS_LIBS}/bisheng2.3.0/ncl && export NCARG_COLORMAPS=$NCARG_ROOT/lib64/ncarg/colormaps && ncl -Q
+binary =
+nodes = 1
diff --git a/templates/ncl/6.6.2/data.NCL.x86.cpu.config b/templates/ncl/6.6.2/data.NCL.x86.cpu.config
new file mode 100644
index 0000000000000000000000000000000000000000..8d8502b9fdb6c2488898fe21dc4013177fdd3b04
--- /dev/null
+++ b/templates/ncl/6.6.2/data.NCL.x86.cpu.config
@@ -0,0 +1,181 @@
+[SERVER]
+11.11.11.11
+
+[DOWNLOAD]
+NCL/6.6.2 https://www.earthsystemgrid.org/dataset/ncl.662.src/file/ncl_ncarg-6.6.2.tar.gz
+
+[DEPENDENCY]
+set -e
+set -x
+module purge
+./jarvis -install gcc/10.3.0 com
+module use ./software/modulefiles
+module load gcc/10.3.0
+./jarvis -install libjpeg/v9b gcc
+./jarvis -install openmpi/4.1.2 gcc
+./jarvis -install libjpeg/v9b gcc
+module load libjpeg/v9b
+
+
+module load openmpi
+
+./jarvis -install libpng/1.6.37 gcc
+./jarvis -install pkg-config/0.29 gcc
+module load libpng/1.6.37
+export LIBPNG_CFLAG=${LIBPNG_PATH}/include
+export LIBPNG_LDFLAG=${LIBPNG_PATH}/lib
+./jarvis -install pixman/0.38.0 gcc
+./jarvis -install szip/2.1.1 gcc
+./jarvis -install freetype/2.5.1 gcc
+
+module load pkg-config/0.29
+module load pixman/0.38.0
+module load freetype/2.5.1
+
+export PATH=${JARVIS_LIBS}/gcc10.3.0/pkg-config/0.29/bin:$PATH
+export png_REQUIRES="libpng16"
+export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:${FREETYPE_PATH}/lib/pkgconfig/:${LIBPNG_PATH}/lib/pkgconfig:${JARVIS_LIBS}/gcc10.3.0/pixman/0.38.0/lib/pkgconfig/:${JARVIS_LIBS}/gcc10.3.0/pkg-config/0.29
+export C_INCLUDE_PATH=$C_INCLUDE_PATH:${JARVIS_LIBS}/gcc10.3.0/libpng/1.6.37/include:${JARVIS_LIBS}/gcc10.3.0/hdf5/1.10.4/include:${JARVIS_LIBS}/gcc10.3.0/netcdf/4.7.4/include
+export FREETYPE_CONFIG="-lfreetype2"
+module load pixman/0.38.0
+
+
+
+CC=`which gcc`
+./jarvis -install cairo/1.16.0 gcc
+
+
+sed -i '9c ./configure --prefix=$1 --enable-netcdf-4 --disable-shared' package/szip/2.1.1/install.sh
+./jarvis -install szip/2.1.1 gcc
+
+sed -i '11c CC=`which mpicc` ./configure --prefix=$1 --with-zlib=/usr/local --enable-fortran --enable-static=yes --enable-parallel --enable-shared --with-szlib=${JARVIS_LIBS}/gcc10.3.0/szip/2.1.1/lib' package/hdf5/1.10.4/install.sh
+./jarvis -install hdf5/1.10.4 gcc
+module load hdf5/1.10.4
+./jarvis -install pnetcdf/1.11.2 gcc
+module load pnetcdf/1.11.2
+sed -i '21c ./configure --prefix=$1 ${build_type} --enable-shared --enable-netcdf-4 --disable-dap --with-pic --disable-doxygen --enable-static --enable-largefile CPPFLAGS="-O3 -I${OPENMPI_PATH}/include -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" ' package/netcdf/4.7.4/install.sh
+./jarvis -install netcdf/4.7.4 gcc
+
+CFLAGS='-I/usr/include/tirpc' LDFLAGS='-ltirpc' ./jarvis -install hdf4/4.2.15 gcc
+module load hdf4/4.2.15
+
+
+./jarvis -install gsl/2.6 gcc
+./jarvis -install jasper/1.900.2 gcc
+module load jasper/1.900.2
+./jarvis -install g2clib/1.6.0 gcc
+module load g2clib/1.6.0
+./jarvis -install proj/5.2.0 gcc
+./jarvis -install gdal/2.2.4 gcc
+./jarvis -install hdf-eos2/2.20 gcc
+./jarvis -install hdf-eos5/1.16 gcc
+./jarvis -install udunits/2.2.28 gcc
+./jarvis -install mesa/3.1 gcc
+module load mesa/3.1
+
+./jarvis -install vis5dplus/1.3.0 gcc
+
+mkdir ${JARVIS_LIBS}/gcc10.3.0/ncl
+
+[ENV]
+module purge
+module use ./software/modulefiles
+
+module load gcc/10.3.0
+module load openmpi
+module load libjpeg
+module load hdf5/1.10.4
+module load libpng/1.6.37
+module load pkg-config/0.29
+module load pixman/0.38.0
+module load netcdf/4.7.4
+module load hdf4/4.2.15
+module load hdf5/1.10.4
+module load g2clib/1.6.0
+module load gsl/2.6
+module load hdf-eos2/2.20
+module load hdf-eos5/1.16
+module load jasper/1.900.2
+module load proj/5.2.0
+module load gdal/2.2.4
+module load udunits/2.2.28
+module load mesa/3.1
+module load vis5dplus/1.3.0
+export CC=`which mpicc`
+export F77=`which mpif77`
+export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${JARVIS_LIBS}/gcc10.3.0/szip/2.1.1/lib:${JARVIS_LIBS}/gcc10.3.0/libjpeg/v9b/lib:${JARVIS_LIBS}/gcc10.3.0/gsl/2.6/lib
+
+
+
+[APP]
+app_name = NCL
+build_dir = ${JARVIS_TMP}/ncl_ncarg-6.6.2
+binary_dir = ${JARVIS_LIBS}/gcc10.3.0/ncl/bin
+case_dir = ${JARVIS_LIBS}/gcc10.3.0/ncl/bin
+
+[BUILD]
+cd ${JARVIS_TMP}
+rm -rf ncl_ncarg-6.6.2
+
+tar zxvf ${JARVIS_DOWNLOAD}/ncl_ncarg-6.6.2.tar.gz
+cd ncl_ncarg-6.6.2
+wget http://www.netlib.org/voronoi/triangle.zip
+unzip triangle.zip 'triangle.*' -d ./ni/src/lib/hlu/
+rm -f triangle.zip
+
+cd config
+export CC=`which mpicc`
+export F77=`which mpif77`
+make -f Makefile.ini
+./ymake -config `pwd`
+
+sed -i '/LibSearch/d' ./Site
+sed -i '/IncSearch/d' ./Site
+sed -i '/#define ManRoot/a \
+#define YmakeRoot ${JARVIS_LIBS}/gcc10.3.0/ncl \
+#define BinRoot ${JARVIS_LIBS}/gcc10.3.0/ncl/bin \
+#define LibRoot ${JARVIS_LIBS}/gcc10.3.0/ncl/lib \
+#define IncRoot ${JARVIS_LIBS}/gcc10.3.0/ncl/include \
+#define ManRoot ${JARVIS_LIBS}/gcc10.3.0/ncl/man \
+#define TmpRoot /tmp \
+\
+#define RootPath ${JARVIS_LIBS}/gcc10.3.0/ncl \
+#define BinPath ${JARVIS_LIBS}/gcc10.3.0/ncl/bin \
+#define LibPath ${JARVIS_LIBS}/gcc10.3.0/ncl/lib \
+#define IncPath ${JARVIS_LIBS}/gcc10.3.0/ncl/include \
+#define ManPath ${JARVIS_LIBS}/gcc10.3.0/ncl/man \
+#define LibSearch -L/usr/lib64 -L/usr/local/lib -ltirpc -L${LIBJPEG_PATH}/lib -L${LIBPNG_PATH}/lib -L${JARVIS_LIBS}/gcc10.3.0/jasper/1.900.1/lib -L${JARVIS_LIBS}/gcc10.3.0/szip/2.1.1/lib -L${JARVIS_LIBS}/gcc10.3.0/cairo/1.16.0/lib -L${JARVIS_LIBS}/gcc10.3.0/pixman/0.38.0/lib -L${JARVIS_MPI}/openmpi4.1.2-gcc10.3.0/4.1.2/lib -L${JARVIS_LIBS}/gcc10.3.0/hdf5/1.10.4/lib -L${JARVIS_LIBS}/gcc10.3.0/gsl/2.6/lib -L${JARVIS_LIBS}/gcc10.3.0/netcdf/4.7.4/lib -L${JARVIS_LIBS}/gcc10.3.0/hdf4/4.2.15/lib -L${JARVIS_LIBS}/gcc10.3.0/cairo/1.16.0/lib -L${JARVIS_LIBS}/gcc10.3.0/udunits/2.2.28/lib -L${JARVIS_LIBS}/gcc10.3.0/g2clib/1.6.0/lib -L${JARVIS_LIBS}/gcc10.3.0/hdf-eos2/2.20/lib -L${JARVIS_LIBS}/gcc10.3.0/hdf-eos5/1.16/lib\
+#define IncSearch -I/usr/local/include -I${LIBPNG_PATH}/include -I${JARVIS_MPI}/openmpi4.1.2-gcc10.3.0/4.1.2/include -I${JARVIS_LIBS}/gcc10.3.0/hdf5/1.10.4/include -I${JARVIS_LIBS}/gcc10.3.0/gsl/2.6/include -I${JARVIS_LIBS}/gcc10.3.0/netcdf/4.7.4/include -I${JARVIS_LIBS}/gcc10.3.0/hdf4/4.2.15/include -I${JARVIS_LIBS}/gcc10.3.0/cairo/1.16.0/include -I${JARVIS_LIBS}/gcc10.3.0/freetype/2.5.1/include -I${JARVIS_LIBS}/gcc10.3.0/udunits/2.2.28/include -I${JARVIS_LIBS}/gcc10.3.0/g2clib/1.6.0/include -I${JARVIS_LIBS}/gcc10.3.0/hdf-eos2/2.20/include -I${JARVIS_LIBS}/gcc10.3.0/hdf-eos5/1.16/include\
+#define XdrLibrary -ltirpc' ./Site
+
+sed -i '/#ifdef hostshavano/a\
+#define BuildNCL 1 \
+#define BuildRasterHDF 1 ' ./Site
+
+
+cd ..
+sed -i '85c extern NclQuark possibleDimNames[NUMPOSDIMNAMES];' ni/src/ncl/NclNewHDF5.c
+sed -i '143,145c extern FILE *thefptr;\
+extern FILE *theoptr;\
+extern int cmd_line;' ni/src/ncl/NclApi.c
+pwd
+ac_cv_func_malloc_0_nonnull=yes ac_cv_func_realloc_0_nonnull=yes ./Configure -ncar
+
+sed -i "34c\ r = (iand(index, RMASK) / int(Z'0000FFFF')) / 255." ncarg2d/src/libncarg_gks/bwi/argb2ci.f
+sed -i "35c\ g = (iand(index, GMASK) / int(Z'000000FF')) / 255." ncarg2d/src/libncarg_gks/bwi/argb2ci.f
+
+C_INCLUDE_PATH=$C_INCLUDE_PATH:${LIBPNG_PATH}/include:${JARVIS_LIBS}/gcc10.3.0/g2clib/include:${JARVIS_LIBS}/gcc10.3.0/udunits/include:${JARVIS_LIBS}/gcc10.3.0/netcdf/4.7.4/include:${JARVIS_LIBS}/gcc10.3.0/hdf4/4.2.15/include
+CC=gcc FC=`which gfortran` \
+EXTRA_CCOPTIONS='-L/usr/lib64 -ltirpc -L${LIBPNG_PATH}/lib -I${JARVIS_LIBS}/gcc10.3.0/cairo/1.16.0/include -I${LIBPNG_PATH}/include -I${JARVIS_LIBS}/gcc10.3.0/freetype/2.5.1/include -L${JARVIS_LIBS}/gcc10.3.0/cairo/1.16.0/lib -L${JARVIS_LIBS}/gcc10.3.0/pixman/0.38.0/lib'
+EXTRA_FCOPTIONS='-fallow-argument-mismatch -fallow-invalid-boz' \
+make Everything >& make-output
+make install >& install-output
+export PATH=$PATH:${JARVIS_LIBS}/gcc10.3.0/ncl/bin
+export DISPLAY=:0.0
+export DISPLAY=128.117.14.12:0
+export DISPLAY=localhost:13.0
+
+[RUN]
+run = export PATH=$PATH:${JARVIS_LIBS}/gcc10.3.0/ncl/bin && ncl -V && ng4ex gsun01n && ncl gsun01n.ncl
+binary =
+nodes = 1
diff --git a/templates/nco/5.1.4/data.NCO.arm.cpu.config b/templates/nco/5.1.4/data.NCO.arm.cpu.config
new file mode 100644
index 0000000000000000000000000000000000000000..6cd6e7289722fe6b130966ef15526a65c11d4e00
--- /dev/null
+++ b/templates/nco/5.1.4/data.NCO.arm.cpu.config
@@ -0,0 +1,77 @@
+[SERVER]
+11.11.11.11
+
+[DOWNLOAD]
+NCO/5.1.4 https://sourceforge.net/projects/nco/files/nco-5.1.4.tar.gz
+
+[DEPENDENCY]
+set -e
+set -x
+module purge
+./jarvis -install bisheng/2.3.0 com
+module use ./software/modulefiles
+module load bisheng/2.3.0
+sed -i '9c ./configure --prefix=$1 CFLAGS="-fPIC"' package/libjpeg/v9b/install.sh
+./jarvis -install libjpeg/v9b bisheng
+./jarvis -install hmpi/1.2.0 bisheng
+module load libjpeg
+
+
+module load hmpi/1.2.0
+sed -i '5c hdf5_version="${hdf5_big_version}.0"' package/hdf5/1.12.0/clang/install.sh
+CC=`which mpicc` ./jarvis -install hdf5/1.12.0/clang bisheng
+module load hdf5-clang/1.12.0
+sed -i '21c ./configure --prefix=$1 ${build_type} --enable-shared --enable-netcdf-4 --disable-dap --with-pic --disable-doxygen --enable-static --disable-pnetcdf --enable-largefile CPPFLAGS="-O3 -I${HMPI_PATH}/include -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"' package/netcdf/4.7.4/install.sh
+./jarvis -install netcdf/4.7.4 bisheng
+module load netcdf/4.7.4
+./jarvis -install gsl/2.6 bisheng
+sed -i '14c --disable-python --build=arm-linux' package/antlr/2.7.7/install.sh
+./jarvis -install antlr/2.7.7 bisheng
+./jarvis -install udunits/2.2.28 bisheng
+
+
+[ENV]
+module purge
+module use ./software/modulefiles
+
+module load bisheng/2.3.0
+module load hmpi/1.2.0
+module load netcdf/4.7.4
+module load gsl/2.6
+module load antlr/2.7.7
+module load udunits/2.2.28
+
+export CC=`which clang`
+
+
+
+
+
+[APP]
+app_name = NCO
+build_dir = ${JARVIS_TMP}/nco-5.1.4
+binary_dir = ${JARVIS_LIBS}/bisheng2.3.0/nco/bin
+case_dir = ${JARVIS_LIBS}/bisheng2.3.0/nco/bin
+
+[BUILD]
+cd ${JARVIS_TMP}
+rm -rf nco-5.1.4
+
+tar zxvf ${JARVIS_DOWNLOAD}/nco-5.1.4.tar.gz
+cd nco-5.1.4
+echo ${UDUNITS_PATH}
+export NETCDF_INC=${NETCDF_PATH}/include
+export NETCDF_LIB=${NETCDF_PATH}/lib
+./configure CPPFLAGS="-I${ANTLR_PATH}/include -I${UDUNITS_PATH}/include" CFLAGS="-L${ANTLR_PATH}/lib -I${NETCDF_PATH}/include -I${UDUNITS_PATH}/include -L${UDUNITS_PATH}/lib " --prefix=${JARVIS_LIBS}/bisheng2.3.0/nco
+make
+make install
+
+
+
+
+
+[RUN]
+run = ./ncap2 -v
+binary =
+nodes = 1
+
diff --git a/templates/nco/5.1.4/data.NCO.x86.cpu.config b/templates/nco/5.1.4/data.NCO.x86.cpu.config
new file mode 100644
index 0000000000000000000000000000000000000000..1ab560973e46f5e28c41c2d3fc9a8adc20eeefe7
--- /dev/null
+++ b/templates/nco/5.1.4/data.NCO.x86.cpu.config
@@ -0,0 +1,75 @@
+[SERVER]
+11.11.11.11
+
+[DOWNLOAD]
+NCO/5.1.4 https://sourceforge.net/projects/nco/files/nco-5.1.4.tar.gz
+
+[DEPENDENCY]
+set -e
+set -x
+module purge
+./jarvis -install gcc/10.3.0 com
+module use ./software/modulefiles
+module load gcc/10.3.0
+./jarvis -install libjpeg/v9b gcc
+./jarvis -install openmpi/4.1.2 gcc
+module load libjpeg
+
+
+module load openmpi
+./jarvis -install hdf5/1.12.0 gcc
+module load hdf5/1.12.0
+sed -i '21c ./configure --prefix=$1 ${build_type} --enable-shared --enable-netcdf-4 --disable-dap --with-pic --disable-doxygen --enable-static --enable-largefile CPPFLAGS="-O3 -I${OPENMPI_PATH}/include -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" ' package/netcdf/4.7.4/install.sh
+./jarvis -install netcdf/4.7.4 gcc
+./jarvis -install gsl/2.6 gcc
+./jarvis -install antlr/2.7.7 gcc
+./jarvis -install udunits/2.2.38 gcc
+
+
+[ENV]
+module purge
+module use ./software/modulefiles
+
+
+module load gcc/10.3.0
+module load openmpi
+
+module load hdf5/1.12.0
+module load netcdf/4.7.4
+module load gsl/2.6
+module load antlr/2.7.7
+module load udunits/2.2.28
+
+export CC=`which gcc`
+
+
+
+
+
+[APP]
+app_name = NCO
+build_dir = ${JARVIS_TMP}/nco-5.1.4
+binary_dir = ${JARVIS_LIBS}/gcc10.3.0/nco/bin
+case_dir = ${JARVIS_LIBS}/gcc10.3.0/nco/bin
+
+[BUILD]
+cd ${JARVIS_TMP}
+rm -rf nco-5.1.4
+
+tar zxvf ${JARVIS_DOWNLOAD}/nco-5.1.4.tar.gz
+cd nco-5.1.4
+echo ${UDUNITS_PATH}
+export NETCDF_INC=${NETCDF_PATH}/include
+export NETCDF_LIB=${NETCDF_PATH}/lib
+./configure CPPFLAGS="-I${ANTLR_PATH}/include -I${UDUNITS_PATH}/include" CFLAGS="-L${ANTLR_PATH}/lib -I${NETCDF_PATH}/include -I${UDUNITS_PATH}/include -L${UDUNITS_PATH}/lib " --prefix=${JARVIS_LIBS}/gcc10.3.0/nco
+make
+make install
+
+
+
+
+
+[RUN]
+run = ./ncap2 -v
+binary =
+nodes = 1
diff --git a/templates/ncview/2.1.7/data.ncview.x86.cpu.config b/templates/ncview/2.1.7/data.ncview.x86.cpu.config
new file mode 100644
index 0000000000000000000000000000000000000000..bd0e0405e055630dbb66720030cdcbe32838bc66
--- /dev/null
+++ b/templates/ncview/2.1.7/data.ncview.x86.cpu.config
@@ -0,0 +1,45 @@
+[SERVER]
+11.11.11.11
+
+
+[DEPENDENCY]
+module use ./software/modulefiles
+module purge
+./jarvis -install gcc/10.3.0 com
+module load gcc/10.3.0
+./jarvis -install openmpi/4.1.2 gcc
+module load openmpi/4.1.2
+sed -i '11c CC=`which mpicc` FC=`which mpifort` ./configure --prefix=$1 --enable-static=yes --enable-parallel --enable-shared --with-szlib=${JARVIS_LIBS}/bisheng2.3.0/szip/2.1.1/lib' package/hdf5/1.10.4/install.sh
+./jarvis -install hdf5/1.10.4 gcc
+module load hdf5/1.10.4
+export CC=`which mpicc` FC=`which mpifort`
+sed -i '9c FFLAGS=-fallow-argument-mismatch ./configure --prefix=$1 --enable-shared --enable-fortran --enable-large-file-test' package/pnetcdf/1.12.1/install.sh
+./jarvis -install pnetcdf/1.12.1 gcc
+module load pnetcdf/1.12.1
+./jarvis -install netcdf/4.7.4 gcc
+./jarvis -install udunits/2.2.28 gcc
+
+[ENV]
+module purge
+module use ${JARVIS_ROOT}/software/modulefiles
+module load gcc
+module add openmpi
+module load hdf5/1.10.4
+module load netcdf/4.7.4
+module load udunits/2.2.28
+export CC=`which mpicc`
+
+[APP]
+app_name = ncview
+build_dir = ${JARVIS_ROOT}
+binary_dir =
+case_dir =
+
+[BUILD]
+./jarvis -install netcdf/4.7.4 gcc
+sed -i '13c NETCDF_DIR=${1%/*/*}/netcdf/4.7.4' package/ncview/2.1.7/install.sh
+./jarvis -install ncview/2.1.7 gcc
+[RUN]
+run =
+binary =
+node = 1
diff --git a/test/test-bowtie2.sh b/test/test-bowtie2.sh
old mode 100644
new mode 100755
diff --git a/test/test-duns.sh b/test/test-duns.sh
old mode 100644
new mode 100755
diff --git a/test/test-elmer.sh b/test/test-elmer.sh
old mode 100644
new mode 100755
diff --git a/test/test-mfem.sh b/test/test-mfem.sh
old mode 100644
new mode 100755
diff --git a/test/test-qe-opt.sh b/test/test-qe-opt.sh
old mode 100644
new mode 100755
diff --git a/test/test-qe.sh b/test/test-qe.sh
old mode 100644
new mode 100755
diff --git a/test/test-qmcpack.sh b/test/test-qmcpack.sh
old mode 100644
new mode 100755
diff --git a/test/test-trinity.sh b/test/test-trinity.sh
old mode 100644
new mode 100755
diff --git a/test/test-util.sh b/test/test-util.sh
old mode 100644
new mode 100755
diff --git a/test/test-wannier90.sh b/test/test-wannier90.sh
old mode 100644
new mode 100755