SWAN4151安装带netcdf时,输出结果lon lat数据是bug。
SWAN4145AB安装带netcdf时,输出结果nc是正常的。
(1)编译器设置,一方面启用最新的mpiifort
source compiler_intel-2021.3.0.sh
source mpi_intelmpi-2021.3.0.sh
(2)安装metis 和 GKlib,三角形网格不再依赖Adcirc,而是直接进行网格划分,计算时运行文件夹清爽多了。
(3)编译时,make mpi会有引用变量的小提示,要将macros.inc稍微要修改一下:
################################################################################
# IA32_Intel/x86-64_Intel: Intel Core/Xeon with Linux using Intel compiler.
################################################################################
F90_SER = ifort
F90_OMP = ifort
# for older compiler versions, use mpif90
F90_MPI = mpiifort
FLAGS_OPT = -O2
FLAGS_MSC = -W0 -assume byterecl -traceback -diag-disable 8290 -diag-disable 8291 -diag-disable 8293
FLAGS90_MSC = $(FLAGS_MSC)
FLAGS_DYN = -fPIC
FLAGS_SER =
FLAGS_OMP = -qopenmp
FLAGS_MPI =
METISROOT = /public/home/chenjq93/models/SWAN/bin_forSWAN
ifneq ($(METISROOT),)
LIBS_SER = -L$(METISROOT)/lib -lmetis -lGKlib
LIBS_OMP = -L$(METISROOT)/lib -lmetis -lGKlib
LIBS_MPI = -L$(METISROOT)/lib -lmetis -lGKlib
PART_OBJS = SwanParallel.o
else
LIBS_SER =
LIBS_OMP =
LIBS_MPI =
PART_OBJS =
endif
NETCDFROOT = /public/home/chenjq93/models/SWAN/netcdf_forswan/netcdf
ifneq ($(NETCDFROOT),)
INCS_SER = -I$(NETCDFROOT)/include
INCS_OMP = -I$(NETCDFROOT)/include
INCS_MPI = -I$(NETCDFROOT)/include
LIBS_SER = $(LIBS_SER) -L$(NETCDFROOT)/lib -lnetcdf -lnetcdff
LIBS_OMP = $(LIBS_OMP) -L$(NETCDFROOT)/lib -lnetcdf -lnetcdff
LIBS_MPI := $(LIBS_MPI) -L$(NETCDFROOT)/lib -lnetcdf -lnetcdff
NCF_OBJS = nctablemd.o agioncmd.o swn_outnc.o
else
INCS_SER =
INCS_OMP =
INCS_MPI =
NCF_OBJS =
endif
OUT = -o
EXTO = o
MAKE = make
RM = rm -f
ifneq ($(METISROOT),)
swch = -unix -impi -metis
else
swch = -unix -impi
endif
ifneq ($(NETCDFROOT),)
swch := $(swch) -netcdf
endif