mirror of
https://code.it4i.cz/sccs/easyconfigs-it4i.git
synced 2025-04-08 07:52:11 +01:00
226 lines
11 KiB
Diff
226 lines
11 KiB
Diff
add support for using netCDF and netCDF-Fortran installations in separate paths
|
|
author: Kenneth Hoste (HPC-UGent)
|
|
diff -ru WRFV3.orig/arch/Config_new.pl WRFV3/arch/Config_new.pl
|
|
--- WRFV3.orig/arch/Config_new.pl 2015-12-11 19:38:11.000000000 +0100
|
|
+++ WRFV3/arch/Config_new.pl 2016-04-27 12:07:59.419553000 +0200
|
|
@@ -8,6 +8,7 @@
|
|
select((select(STDOUT), $|=1)[0]);
|
|
$sw_perl_path = perl ;
|
|
$sw_netcdf_path = "" ;
|
|
+$sw_netcdff_path = "" ; # for netCDF 4.2 and greater, Fortran lib may be in a different path
|
|
$sw_pnetcdf_path = "" ;
|
|
$sw_hdf5_path="";
|
|
$sw_phdf5_path="";
|
|
@@ -87,6 +88,10 @@
|
|
}
|
|
}
|
|
}
|
|
+ if ( substr( $ARGV[0], 1, 8 ) eq "netcdff=" )
|
|
+ {
|
|
+ $sw_netcdff_path = substr( $ARGV[0], 9 ) ;
|
|
+ }
|
|
if ( substr( $ARGV[0], 1, 8 ) eq "pnetcdf=" )
|
|
{
|
|
$sw_pnetcdf_path = substr( $ARGV[0], 9 ) ;
|
|
@@ -114,6 +119,7 @@
|
|
if ( substr( $ARGV[0], 1, 11 ) eq "USENETCDFF=" )
|
|
{
|
|
$sw_usenetcdff = substr( $ARGV[0], 12 ) ;
|
|
+ $sw_usenetcdff =~ s/!/ /g ;
|
|
}
|
|
if ( substr( $ARGV[0], 1, 10 ) eq "USENETCDF=" )
|
|
{
|
|
@@ -417,6 +423,7 @@
|
|
{
|
|
$_ =~ s/CONFIGURE_PERL_PATH/$sw_perl_path/g ;
|
|
$_ =~ s/CONFIGURE_NETCDF_PATH/$sw_netcdf_path/g ;
|
|
+ $_ =~ s/CONFIGURE_NETCDFF_PATH/$sw_netcdff_path/g ;
|
|
$_ =~ s/CONFIGURE_PNETCDF_PATH/$sw_pnetcdf_path/g ;
|
|
$_ =~ s/CONFIGURE_HDF5_PATH/$sw_hdf5_path/g ;
|
|
$_ =~ s/CONFIGURE_PHDF5_PATH/$sw_phdf5_path/g ;
|
|
Only in WRFV3/arch: Config_new.pl.orig
|
|
diff -ru WRFV3.orig/arch/configure_new.defaults WRFV3/arch/configure_new.defaults
|
|
--- WRFV3.orig/arch/configure_new.defaults 2016-02-29 07:22:29.000000000 +0100
|
|
+++ WRFV3/arch/configure_new.defaults 2016-04-27 12:07:59.429182000 +0200
|
|
@@ -1626,6 +1626,7 @@
|
|
|
|
LIB_EXTERNAL = \
|
|
../external/io_netcdf/libwrfio_nf.a CONFIGURE_NETCDF_PATH/lib/libnetcdf.lib \
|
|
+ CONFIGURE_NETCDFF_PATH/lib/libnetcdff.lib \
|
|
../external/wavelet/libWavelet.a ../external/wavelet/lib_wavelet.a
|
|
ESMF_IO_LIB = ../external/esmf_time_f90/libesmf_time.a
|
|
LIB_BUNDLED = \
|
|
Only in WRFV3/arch: configure_new.defaults.orig
|
|
diff -ru WRFV3.orig/arch/conf_tokens WRFV3/arch/conf_tokens
|
|
--- WRFV3.orig/arch/conf_tokens 2008-02-26 16:39:38.000000000 +0100
|
|
+++ WRFV3/arch/conf_tokens 2016-04-27 12:07:59.435906000 +0200
|
|
@@ -5,6 +5,7 @@
|
|
CONFIGURE_DMPARALLEL
|
|
CONFIGURE_RWORDSIZE
|
|
CONFIGURE_NETCDF_FLAG
|
|
+CONFIGURE_NETCDF_FLAG
|
|
CONFIGURE_GRIB2_FLAG
|
|
CONFIGURE_NETCDF_LIB_PATH
|
|
CONFIGURE_GRIB2_LIB
|
|
@@ -13,4 +14,5 @@
|
|
CONFIGURE_WRFIO_NF
|
|
CONFIGURE_WRFIO_GRIB2
|
|
CONFIGURE_NETCDF_PATH
|
|
+CONFIGURE_NETCDFF_PATH
|
|
CONFIGURE_GRIB2_INC
|
|
diff -ru WRFV3.orig/arch/postamble_new WRFV3/arch/postamble_new
|
|
--- WRFV3.orig/arch/postamble_new 2016-02-05 22:22:09.000000000 +0100
|
|
+++ WRFV3/arch/postamble_new 2016-04-27 12:08:58.368686000 +0200
|
|
@@ -45,6 +45,7 @@
|
|
-I$(WRF_SRC_ROOT_DIR)/phys \
|
|
-I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc \
|
|
-I$(NETCDFPATH)/include \
|
|
+ -I$(NETCDFFPATH)/include \
|
|
CONFIGURE_RTTOV_INC
|
|
REGISTRY = Registry
|
|
CC_TOOLS_CFLAGS = CONFIGURE_NMM_CORE
|
|
@@ -67,6 +68,7 @@
|
|
ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS
|
|
CPPFLAGS = $(ARCHFLAGS) $(ENVCOMPDEFS) -I$(LIBINCLUDE) $(TRADFLAG) CONFIGURE_COMMS_INCLUDE
|
|
NETCDFPATH = CONFIGURE_NETCDF_PATH
|
|
++NETCDFFPATH = CONFIGURE_NETCDFF_PATH
|
|
HDF5PATH = CONFIGURE_HDF5_PATH
|
|
WRFPLUSPATH = CONFIGURE_WRFPLUS_PATH
|
|
PNETCDFPATH = CONFIGURE_PNETCDF_PATH
|
|
@@ -97,7 +99,7 @@
|
|
|
|
wrfio_nf :
|
|
( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
|
|
- make $(J) NETCDFPATH="$(NETCDFPATH)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
|
|
+ make $(J) NETCDFPATH="$(NETCDFPATH)" NETCDFFPATH="$(NETCDFFPATH)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
|
|
CC="$(SCC)" CFLAGS="$(CFLAGS)" \
|
|
FC="$(SFC) $(PROMOTION) $(OMP) $(FCFLAGS)" TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" )
|
|
|
|
Only in WRFV3/arch: postamble_new.orig
|
|
Only in WRFV3/arch: postamble_new.rej
|
|
diff -ru WRFV3.orig/configure WRFV3/configure
|
|
--- WRFV3.orig/configure 2015-12-11 19:38:11.000000000 +0100
|
|
+++ WRFV3/configure 2016-04-27 12:58:24.475136000 +0200
|
|
@@ -287,16 +287,28 @@
|
|
USENETCDFF="" # see below
|
|
if [ -n "$NETCDF" ] ; then
|
|
echo "Will use NETCDF in dir: $NETCDF"
|
|
+ # for netCDF 4.2 and greater, the Fortran library is a separate install
|
|
+ if [ -z "$NETCDFF" ]; then
|
|
+ NETCDFF="$NETCDFF"
|
|
+ fi
|
|
# Oh UNIDATA, why make it so hard ...
|
|
if [ -f "$NETCDF/lib/libnetcdff.a" -o -f "$NETCDF/lib/libnetcdff.so" ] ; then
|
|
USENETCDFF="-lnetcdff"
|
|
else
|
|
- USENETCDFF=" "
|
|
+ if [ -f "$NETCDFF/lib/libnetcdff.a" -o -f "$NETCDFF/lib/libnetcdff.so" -o -f "$NETCDFF/lib64/libnetcdff.so" -o -f "$NETCDFF/lib64/libnetcdff.so" ] ; then
|
|
+ USENETCDFF="-L$NETCDFF/lib!-L$NETCDFF/lib64!-lnetcdff" # ! will be replaced with space
|
|
+ else
|
|
+ USENETCDFF=" "
|
|
+ fi
|
|
fi
|
|
if [ -f "$NETCDF/lib/libnetcdf.a" -o -f "$NETCDF/lib/libnetcdf.so" ] ; then
|
|
USENETCDF="-lnetcdf"
|
|
else
|
|
- USENETCDF=" "
|
|
+ if [ -f "$NETCDF/lib/libnetcdf.a" -o -f "$NETCDF/lib/libnetcdf.so" -o -f "$NETCDF/lib64/libnetcdf.a" -o -f "$NETCDF/lib64/libnetcdf.so" ] ; then
|
|
+ USENETCDF="-L$NETCDF/lib!-L$NETCDF/lib64!-lnetcdf" # ! will be replaced with space
|
|
+ else
|
|
+ USENETCDF=" "
|
|
+ fi
|
|
fi
|
|
else
|
|
echo "Will configure for use without NetCDF"
|
|
@@ -595,7 +607,7 @@
|
|
srch=`grep -i "^#ARCH.*$os" arch/configure_new.defaults | grep -i "$mach"`
|
|
if [ -n "$srch" ] ; then
|
|
$PERL arch/Config_new.pl -dmparallel=$COMMLIB -ompparallel=$OMP -perl=$PERL \
|
|
- -netcdf=$NETCDF -pnetcdf=$PNETCDF -hdf5=$HDF5 -phdf5=$PHDF5 -os=$os -mach=$mach -ldflags=$ldflags \
|
|
+ -netcdf=$NETCDF -netcdff=$NETCDFF -pnetcdf=$PNETCDF -phdf5=$PHDF5 -os=$os -mach=$mach -ldflags=$ldflags \
|
|
-compileflags=$compileflags -opt_level=$opt_level -USENETCDFF=$USENETCDFF -USENETCDF=$USENETCDF \
|
|
-time=$FORTRAN_COMPILER_TIMER \
|
|
-wrf_core=$wrf_core -gpfs=$GPFS_PATH -curl=$CURL_PATH -dep_lib_path="$DEP_LIB_PATH"
|
|
@@ -707,10 +719,10 @@
|
|
echo "If you wish to change the default options, edit the file:"
|
|
echo " arch/configure_new.defaults"
|
|
|
|
-if test -n "$NETCDF" ; then
|
|
- if [ ! -f $NETCDF/include/netcdf.inc ] ; then
|
|
+if test -n "$NETCDFF" ; then
|
|
+ if [ ! -f $NETCDFF/include/netcdf.inc ] ; then
|
|
echo
|
|
- echo "Error : Not found $NETCDF/include/netcdf.inc"
|
|
+ echo "Error : Not found $NETCDFF/include/netcdf.inc"
|
|
echo " Please check this installation of NetCDF and re-run this configure script"
|
|
echo
|
|
if test -n "$NETCDF4" ; then
|
|
@@ -719,7 +731,7 @@
|
|
fi
|
|
exit -1
|
|
fi
|
|
- grep nf_format_64bit $NETCDF/include/netcdf.inc > /dev/null
|
|
+ grep nf_format_64bit $NETCDFF/include/netcdf.inc > /dev/null
|
|
configure_aaaa=$? ; export configure_aaaa
|
|
if [ $configure_aaaa -a -z "$WRFIO_NCD_LARGE_FILE_SUPPORT" ] ; then
|
|
echo "NetCDF users note:"
|
|
Only in WRFV3: configure.orig
|
|
Only in WRFV3: configure.rej
|
|
diff -ru WRFV3.orig/external/io_netcdf/makefile WRFV3/external/io_netcdf/makefile
|
|
--- WRFV3.orig/external/io_netcdf/makefile 2014-07-13 01:39:10.000000000 +0200
|
|
+++ WRFV3/external/io_netcdf/makefile 2016-04-27 12:07:59.490731000 +0200
|
|
@@ -3,9 +3,9 @@
|
|
OBJSL = wrf_io.o field_routines.o module_wrfsi_static.o
|
|
OBJS = $(OBJSL)
|
|
CODE = ext_ncd_get_dom_ti.code ext_ncd_get_var_td.code ext_ncd_get_var_ti.code ext_ncd_put_dom_ti.code ext_ncd_put_var_td.code ext_ncd_put_var_ti.code transpose.code
|
|
-FFLAGS = $(FCFLAGS) -I$(NETCDFPATH)/include -I../ioapi_share
|
|
-LIBS = $(LIB_LOCAL) -L$(NETCDFPATH)/lib -lnetcdf
|
|
-LIBFFS = $(LIB_LOCAL) -L$(NETCDFPATH)/lib -lnetcdff -lnetcdf $(NETCDF4_DEP_LIB)
|
|
+FFLAGS = $(FCFLAGS) -I$(NETCDFFPATH)/include -I../ioapi_share
|
|
+LIBS = $(LIB_LOCAL) -L$(NETCDFPATH)/lib -L$(NETCDFPATH)/lib64 -lnetcdf
|
|
+LIBFFS = $(LIB_LOCAL) -L$(NETCDFPATH)/lib -L$(NETCDFPATH)/lib64 -L$(NETCDFFPATH)/lib -L$(NETCDFFPATH)/lib64 -lnetcdff -lnetcdf $(NETCDF4_DEP_LIB)
|
|
CPP1 = $(CPP) -P $(TRADFLAG)
|
|
M4 = m4 -Uinclude -Uindex -Ulen
|
|
AR = ar
|
|
@@ -24,7 +24,7 @@
|
|
$(RANLIB) $@
|
|
|
|
wrf_io.o: wrf_io.F90 $(CODE)
|
|
- grep nf_format_64bit $(NETCDFPATH)/include/netcdf.inc ;\
|
|
+ grep nf_format_64bit $(NETCDFFPATH)/include/netcdf.inc ;\
|
|
a=$$? ; export a ; \
|
|
if [ $$a -a "$$WRFIO_NCD_LARGE_FILE_SUPPORT" = "1" ] ; then \
|
|
$(CPP1) -DWRFIO_NCD_LARGE_FILE_SUPPORT -I../ioapi_share wrf_io.F90 | $(M4) - > wrf_io.f ; \
|
|
@@ -43,14 +43,14 @@
|
|
x=`echo "$(FC)" | awk '{print $$1}'` ; export x ; \
|
|
if [ $$x = "gfortran" ] ; then \
|
|
echo removing external declaration of iargc for gfortran ; \
|
|
- $(CPP1) -I$(NETCDFPATH)/include -I../ioapi_share diffwrf.F90 | sed '/integer *, *external.*iargc/d' > diffwrf.f ;\
|
|
+ $(CPP1) -I$(NETCDFFPATH)/include -I../ioapi_share diffwrf.F90 | sed '/integer *, *external.*iargc/d' > diffwrf.f ;\
|
|
else \
|
|
- $(CPP1) -I$(NETCDFPATH)/include -I../ioapi_share diffwrf.F90 > diffwrf.f ; \
|
|
+ $(CPP1) -I$(NETCDFFPATH)/include -I../ioapi_share diffwrf.F90 > diffwrf.f ; \
|
|
fi
|
|
$(FC) -c $(FFLAGS) diffwrf.f
|
|
@if [ \( -f ../../frame/wrf_debug.o \) -a \( -f ../../frame/module_wrf_error.o \) -a \( -f $(ESMF_MOD_DEPENDENCE) \) -a \( -f ../../frame/clog.o \) ] ; then \
|
|
echo "diffwrf io_netcdf is being built now. " ; \
|
|
- if [ \( -f $(NETCDFPATH)/lib/libnetcdff.a -o -f $(NETCDFPATH)/lib/libnetcdff.so \) ] ; then \
|
|
+ if [ \( -f $(NETCDFFPATH)/lib/libnetcdff.a -o -f $(NETCDFFPATH)/lib/libnetcdff.so -o -f $(NETCDFFPATH)/lib64/libnetcdff.a -o -f $(NETCDFFPATH)/lib64/libnetcdff.so \) ] ; then \
|
|
$(FC) $(FFLAGS) $(LDFLAGS) -o diffwrf diffwrf.o $(OBJSL) ../../frame/wrf_debug.o ../../frame/module_wrf_error.o ../../frame/clog.o $(ESMF_IO_LIB_EXT) $(LIBFFS) ;\
|
|
else \
|
|
$(FC) $(FFLAGS) $(LDFLAGS) -o diffwrf diffwrf.o $(OBJSL) ../../frame/wrf_debug.o ../../frame/module_wrf_error.o ../../frame/clog.o $(ESMF_IO_LIB_EXT) $(LIBS) ;\
|
|
diff -ru WRFV3.orig/Makefile WRFV3/Makefile
|
|
--- WRFV3.orig/Makefile 2016-03-11 18:47:37.000000000 +0100
|
|
+++ WRFV3/Makefile 2016-04-27 12:09:30.391608000 +0200
|
|
@@ -867,7 +867,7 @@
|
|
@ echo '--------------------------------------'
|
|
( cd frame ; $(MAKE) $(J) framework; \
|
|
cd ../external/io_netcdf ; \
|
|
- $(MAKE) NETCDFPATH="$(NETCDFPATH)" FC="$(FC) $(FCBASEOPTS)" RANLIB="$(RANLIB)" \
|
|
+ $(MAKE) NETCDFPATH="$(NETCDFPATH)" NETCDFFPATH="$(NETCDFFPATH)" FC="$(SFC) $(FCBASEOPTS)" RANLIB="$(RANLIB)" \
|
|
CPP="$(CPP)" LDFLAGS="$(LDFLAGS)" TRADFLAG="$(TRADFLAG)" ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
|
|
LIB_LOCAL="$(LIB_LOCAL)" \
|
|
ESMF_MOD_DEPENDENCE="$(ESMF_MOD_DEPENDENCE)" AR="INTERNAL_BUILD_ERROR_SHOULD_NOT_NEED_AR" diffwrf; \
|
|
Only in WRFV3: Makefile.orig
|
|
Only in WRFV3: Makefile.rej
|