XiZi's Blog
NetCDF Windows 多线程调试(MT,MTD)编译的动态库。
-
编译环境为:
Windows Server 2008 R2
Visual Studio 2012 Update3
Cmake 2.8.11
IntelMPI 4.1.1.036
Fortran Intel Fortran Version 13.1.3.198 Build 20130607
-
主要分为NetCDF4_Enabled ON 和 OFF 版本
-
OFF的版本比较简单,去掉Enable_CDF4和Use_NetCDF4即可。
-
ON的版本比较麻烦,对NetCDF的代码需要小的修改。
基于intel mpi的并行环境编译
-
-
最后给出下载链接
http://pan.baidu.com/share/link?shareid=502022239&uk=1143913763
Build NetCDF For C,C++,Fortran interface with intel comilers
由于版本的变化,导致了NetCDF的一些变化。因此,此过程仅适用于NetCDF的版本为4.1.3(估计适用于3.6.3-4.1.3),但不适用于后来的4.2版本。
1、解压源程序包,修改configure文件
--- netcdf-4.1.3/configure 2011-07-01 07:22:45.000000000 +0800 +++ netcdf-4.1.3n/configure 2013-04-19 05:39:43.029982048 +0800 @@ -24472,7 +24472,7 @@ call sub() end EOF - doit='$FC -c ${FFLAGS} conftest.f' + doit='$FC -c conftest.f' if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$doit\""; } >&5 (eval $doit) 2>&5 ac_status=$?
2、configure and install
./configure --disable-netcdf-4 --disable-dap --prefix=/opt/netcdf \ CPP='icc -E' CXXCPP='icpc -E' CC=icc CXX=icpc FC=ifort F90=ifort F77=ifort \ CFLAGS="-fast -w" CXXFLAGS="-fast -w" FFLAGS="-fast -w" LD=ifort \ LFLAGS="-fast -w" AR=xiar CPPFLAGS='-DNDEBUG -DINTEL_COMPILER' make install
PS: 如果在Centos下configure失败,请安装依赖库。
yum install glibc-devel glibc-headers glibc-static
Fortran Makefile in Linux
FC = ifort FFLAGS = -O2 ALL_SRCS = $(wildcard *.f *.for *.f90) MODSRCS = $(filter mod_%,$(ALL_SRCS)) #MODSRCS = zmod.f MODS := $(addsuffix .o, $(basename $(MODSRCS))) SRCS = $(filter-out mod_%,$(ALL_SRCS)) #SRCS = sub1.f \ main.f90 OBJS := $(addsuffix .o, $(basename $(SRCS))) TARGET = Program_N #all: # @echo "ALL_SRCS=$(ALL_SRCS)" # @echo "OBJS=$(OBJS)" # @echo "MODS=$(MODS)" $(TARGET): $(OBJS) $(FC) $(FFLAGS) -o $@ $(MODS) $(OBJS) clean: rm -f $(TARGET) *.o *.mod $(OBJS): $(MODS) .SUFFIXES: .o .f .for .f90 .f.o: $(FC) $(FFLAGS) -c $< .for.o: $(FC) $(FFLAGS) -c $< .f90.o: $(FC) $(FFLAGS) -c $<