wrf: Add New version, support fujitsu compiler, refactor and bug fix. (#28567)
* wrf: Add version 4.3, support fujitsu compioler, output build log, and fix to build diffwrf.
This commit is contained in:
parent
cccd1ce376
commit
c29e6dbd20
@ -7,7 +7,7 @@
|
||||
import re
|
||||
import time
|
||||
from fcntl import F_GETFL, F_SETFL, fcntl
|
||||
from os import O_NONBLOCK, rename
|
||||
from os import O_NONBLOCK
|
||||
from os.path import basename
|
||||
from subprocess import PIPE, Popen
|
||||
from sys import stdout
|
||||
@ -65,6 +65,9 @@ class Wrf(Package):
|
||||
url = "https://github.com/wrf-model/WRF/archive/v4.2.tar.gz"
|
||||
maintainers = ["MichaelLaufer", "ptooley"]
|
||||
|
||||
version("4.3.3", sha256='1b98b8673513f95716c7fc54e950dfebdb582516e22758cd94bc442bccfc0b86')
|
||||
version("4.3.2", sha256='2c682da0cd0fd13f57d5125eef331f9871ec6a43d860d13b0c94a07fa64348ec')
|
||||
version("4.3.1", sha256='6c9a69d05ee17d2c80b3699da173cfe6fdf65487db7587c8cc96bfa9ceafce87')
|
||||
version("4.2", sha256="c39a1464fd5c439134bbd39be632f7ce1afd9a82ad726737e37228c6a3d74706")
|
||||
version("4.0", sha256="9718f26ee48e6c348d8e28b8bc5e8ff20eafee151334b3959a11b7320999cf65")
|
||||
version("3.9.1.1", sha256="a04f5c425bedd262413ec88192a0f0896572cc38549de85ca120863c43df047a", url="https://github.com/wrf-model/WRF/archive/V3.9.1.1.tar.gz")
|
||||
@ -109,6 +112,7 @@ class Wrf(Package):
|
||||
patch("patches/3.9/configure_aocc_2.3.patch", when="@3.9.1.1 %aocc@:2.4.0")
|
||||
patch("patches/3.9/configure_aocc_3.0.patch", when="@3.9.1.1 %aocc@3.0.0")
|
||||
patch("patches/3.9/configure_aocc_3.1.patch", when="@3.9.1.1 %aocc@3.1.0")
|
||||
patch("patches/3.9/fujitsu.patch", when="@3.9.1.1 %fj")
|
||||
|
||||
# These patches deal with netcdf & netcdf-fortran being two diff things
|
||||
# Patches are based on:
|
||||
@ -123,20 +127,33 @@ class Wrf(Package):
|
||||
patch("patches/4.0/tirpc_detect.patch", when="@4.0")
|
||||
patch("patches/4.0/add_aarch64.patch", when="@4.0")
|
||||
|
||||
patch("patches/4.2/arch.Config.pl.patch", when="@4.2")
|
||||
patch("patches/4.2/arch.Config.pl.patch", when="@4.2:")
|
||||
patch("patches/4.2/arch.configure.defaults.patch", when="@4.2")
|
||||
patch("patches/4.2/arch.conf_tokens.patch", when="@4.2")
|
||||
patch("patches/4.2/arch.conf_tokens.patch", when="@4.2:")
|
||||
patch("patches/4.2/arch.postamble.patch", when="@4.2")
|
||||
patch("patches/4.2/configure.patch", when="@4.2")
|
||||
patch("patches/4.2/external.io_netcdf.makefile.patch", when="@4.2")
|
||||
patch("patches/4.2/var.gen_be.Makefile.patch", when="@4.2")
|
||||
patch("patches/4.2/configure.patch", when="@4.2:")
|
||||
patch("patches/4.2/external.io_netcdf.makefile.patch", when="@4.2:")
|
||||
patch("patches/4.2/var.gen_be.Makefile.patch", when="@4.2:")
|
||||
patch("patches/4.2/Makefile.patch", when="@4.2")
|
||||
patch("patches/4.2/tirpc_detect.patch", when="@4.2")
|
||||
patch("patches/4.2/add_aarch64.patch", when="@4.2")
|
||||
patch("patches/4.2/add_aarch64.patch", when="@4.2:")
|
||||
patch("patches/4.2/configure_aocc_2.3.patch", when="@4.2 %aocc@:2.4.0")
|
||||
patch("patches/4.2/configure_aocc_3.0.patch", when="@4.2 %aocc@3.0.0:3.2.0")
|
||||
patch("patches/4.2/hdf5_fix.patch", when="@4.2 %aocc")
|
||||
patch("patches/4.2/derf_fix.patch", when="@4.2 %aocc")
|
||||
# Various syntax fixes found by FPT tool
|
||||
patch("https://github.com/wrf-model/WRF/commit/6502d5d9c15f5f9a652dec244cc12434af737c3c.patch",
|
||||
sha256="d685a77c82d770f2af4e66711effa0cb115e2bc6e601de4cb92f15b138c6c85b", when="@4.2 %fj")
|
||||
patch("patches/4.2/configure_fujitsu.patch", when="@4 %fj")
|
||||
|
||||
patch("patches/4.3/Makefile.patch", when="@4.3:")
|
||||
patch("patches/4.3/arch.postamble.patch", when="@4.3:")
|
||||
patch("patches/4.3/fujitsu.patch", when="@4.3: %fj")
|
||||
# Syntax errors in physics routines
|
||||
patch("https://github.com/wrf-model/WRF/commit/7c6fd575b7a8fe5715b07b38db160e606c302956.patch",
|
||||
sha256="bc24b6c8a073837404dbd33b0a4402843bd4771441dd766899d9274583db683f", when="@4.3.1")
|
||||
patch("https://github.com/wrf-model/WRF/commit/238a7d219b7c8e285db28fe4f0c96ebe5068d91c.patch",
|
||||
sha256="d3fe347fd57c0f989744113c0bc8faf98bab2dd4e88867efa4b154c2b4265636", when="@4.3.1")
|
||||
|
||||
depends_on("pkgconfig", type=("build"))
|
||||
depends_on("libtirpc")
|
||||
@ -164,6 +181,11 @@ class Wrf(Package):
|
||||
depends_on("libtool", type="build")
|
||||
phases = ["configure", "build", "install"]
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
env.set("WRF_HOME", self.prefix)
|
||||
env.append_path("PATH", self.prefix.main)
|
||||
env.append_path("PATH", self.prefix.tools)
|
||||
|
||||
def setup_build_environment(self, env):
|
||||
env.set("NETCDF", self.spec["netcdf-c"].prefix)
|
||||
if "+pnetcdf" in self.spec:
|
||||
@ -229,86 +251,43 @@ def answer_configure_question(self, outputbuf):
|
||||
|
||||
def do_configure_fixup(self):
|
||||
# Fix mpi compiler wrapper aliases
|
||||
|
||||
# In version 4.2 the file to be patched is called
|
||||
# configure.defaults, while in earlier versions
|
||||
# it's configure_new.defaults
|
||||
if self.spec.satisfies("@3.9.1.1"):
|
||||
config = FileFilter(join_path('arch', 'configure_new.defaults'))
|
||||
else:
|
||||
config = FileFilter(join_path('arch', 'configure.defaults'))
|
||||
|
||||
if self.spec.satisfies("@3.9.1.1 %gcc"):
|
||||
rename(
|
||||
"./arch/configure_new.defaults",
|
||||
"./arch/configure_new.defaults.bak",
|
||||
)
|
||||
with open("./arch/configure_new.defaults.bak", "rt") as ifh:
|
||||
with open("./arch/configure_new.defaults", "wt") as ofh:
|
||||
for line in ifh:
|
||||
if line.startswith("DM_"):
|
||||
line = line.replace(
|
||||
"mpif90 -f90=$(SFC)", self.spec['mpi'].mpifc
|
||||
)
|
||||
line = line.replace(
|
||||
"mpicc -cc=$(SCC)", self.spec['mpi'].mpicc
|
||||
)
|
||||
ofh.write(line)
|
||||
config.filter('^DM_FC.*mpif90 -f90=$(SFC)',
|
||||
'DM_FC = {0}'.format(self.spec['mpi'].mpifc))
|
||||
config.filter('^DM_CC.*mpicc -cc=$(SCC))',
|
||||
'DM_CC = {0}'.format(self.spec['mpi'].mpicc))
|
||||
|
||||
if self.spec.satisfies("@3.9.1.1 %aocc"):
|
||||
rename(
|
||||
"./arch/configure_new.defaults",
|
||||
"./arch/configure_new.defaults.bak",
|
||||
if self.spec.satisfies("%aocc"):
|
||||
config.filter(
|
||||
'^DM_FC.*mpif90 -DMPI2SUPPORT',
|
||||
'DM_FC = {0}'.format(self.spec['mpi'].mpifc + ' -DMPI2_SUPPORT')
|
||||
)
|
||||
config.filter(
|
||||
'^DM_.CC*mpicc -DMPI2SUPPORT',
|
||||
'DM_CC = {0}'.format(self.spec['mpi'].mpicc) + ' -DMPI2_SUPPORT'
|
||||
)
|
||||
with open("./arch/configure_new.defaults.bak", "rt") as ifh:
|
||||
with open("./arch/configure_new.defaults", "wt") as ofh:
|
||||
for line in ifh:
|
||||
if line.startswith("DM_"):
|
||||
line = line.replace(
|
||||
"mpif90 -DMPI2_SUPPORT",
|
||||
self.spec['mpi'].mpifc + " -DMPI2_SUPPORT"
|
||||
)
|
||||
line = line.replace(
|
||||
"mpicc -DMPI2_SUPPORT",
|
||||
self.spec['mpi'].mpicc + " -DMPI2_SUPPORT"
|
||||
)
|
||||
ofh.write(line)
|
||||
|
||||
if self.spec.satisfies("@4.2 %aocc"):
|
||||
# In version 4.2 the file to be patched is called
|
||||
# configure.defaults, while in earlier versions
|
||||
# it's configure_new.defaults
|
||||
rename(
|
||||
"./arch/configure.defaults",
|
||||
"./arch/configure.defaults.bak",
|
||||
)
|
||||
with open("./arch/configure.defaults.bak", "rt") as ifh:
|
||||
with open("./arch/configure.defaults", "wt") as ofh:
|
||||
for line in ifh:
|
||||
if line.startswith("DM_"):
|
||||
line = line.replace(
|
||||
"mpif90 -DMPI2_SUPPORT",
|
||||
self.spec['mpi'].mpifc + " -DMPI2_SUPPORT"
|
||||
)
|
||||
line = line.replace(
|
||||
"mpicc -DMPI2_SUPPORT",
|
||||
self.spec['mpi'].mpicc + " -DMPI2_SUPPORT"
|
||||
)
|
||||
ofh.write(line)
|
||||
|
||||
if self.spec.satisfies("@4.2 %intel"):
|
||||
# In version 4.2 the file to be patched is called
|
||||
# configure.defaults, while in earlier versions
|
||||
# it's configure_new.defaults
|
||||
rename(
|
||||
"./arch/configure.defaults",
|
||||
"./arch/configure.defaults.bak",
|
||||
)
|
||||
with open("./arch/configure.defaults.bak", "rt") as ifh:
|
||||
with open("./arch/configure.defaults", "wt") as ofh:
|
||||
for line in ifh:
|
||||
if line.startswith("DM_"):
|
||||
line = line.replace("mpif90", self.spec['mpi'].mpifc)
|
||||
line = line.replace("mpicc", self.spec['mpi'].mpicc)
|
||||
ofh.write(line)
|
||||
if self.spec.satisfies("@4.2: %intel"):
|
||||
config.filter('^DM_FC.*mpif90',
|
||||
'DM_FC = {0}'.format(self.spec['mpi'].mpifc))
|
||||
config.filter('^DM_CC.*mpicc',
|
||||
'DM_CC = {0}'.format(self.spec['mpi'].mpicc))
|
||||
|
||||
def configure(self, spec, prefix):
|
||||
|
||||
# Remove broken default options...
|
||||
self.do_configure_fixup()
|
||||
|
||||
if self.spec.compiler.name not in ["intel", "gcc", "aocc"]:
|
||||
if self.spec.compiler.name not in ["intel", "gcc", "aocc", "fj"]:
|
||||
raise InstallError(
|
||||
"Compiler %s not currently supported for WRF build."
|
||||
% self.spec.compiler.name
|
||||
@ -381,6 +360,7 @@ def run_compile_script(self):
|
||||
error=str
|
||||
)
|
||||
|
||||
print(result_buf)
|
||||
if "Executables successfully built" in result_buf:
|
||||
return True
|
||||
|
||||
|
73
var/spack/repos/builtin/packages/wrf/patches/3.9/fujitsu.patch
vendored
Normal file
73
var/spack/repos/builtin/packages/wrf/patches/3.9/fujitsu.patch
vendored
Normal file
@ -0,0 +1,73 @@
|
||||
--- WRF-3.9.1.1.orig/arch/Config_new.pl 2021-09-29 14:14:23.000000000 +0900
|
||||
+++ WRF-3.9.1.1/arch/Config_new.pl 2021-10-04 19:25:57.000000000 +0900
|
||||
@@ -516,7 +516,7 @@ while ( <CONFIGURE_DEFAULTS> )
|
||||
}
|
||||
|
||||
if ( $sw_hdf5_path )
|
||||
- { $_ =~ s:CONFIGURE_HDF5_LIB_PATH:-L$sw_hdf5_path/lib -lhdf5_fortran -lhdf5 -lm -lz: ;
|
||||
+ { $_ =~ s:CONFIGURE_HDF5_LIB_PATH:-L$sw_hdf5_path/lib -ltirpc -lhdf5_fortran -lhdf5 -lm -lz: ;
|
||||
$_ =~ s:CONFIGURE_HDF5_FLAG:-DHDF5: ;
|
||||
}
|
||||
else
|
||||
--- WRF-3.9.1.1.orig/external/RSL_LITE/module_dm.F 2021-09-29 14:14:21.000000000 +0900
|
||||
+++ WRF-3.9.1.1/external/RSL_LITE/module_dm.F 2021-09-29 14:43:17.000000000 +0900
|
||||
@@ -1313,7 +1313,7 @@ CONTAINS
|
||||
REAL FUNCTION wrf_dm_max_int ( inval )
|
||||
IMPLICIT NONE
|
||||
#ifndef STUBMPI
|
||||
- INCLUDE 'mpif.h'
|
||||
+! INCLUDE 'mpif.h'
|
||||
INTEGER, intent(in) :: inval
|
||||
INTEGER :: ierr, retval
|
||||
CALL mpi_allreduce ( inval, retval , 1, MPI_INT, MPI_MAX, local_communicator, ierr )
|
||||
--- WRF-3.9.1.1.orig/arch/configure_new.defaults 2021-09-30 09:18:18.000000000 +0900
|
||||
+++ WRF-3.9.1.1/arch/configure_new.defaults 2021-09-30 09:25:42.000000000 +0900
|
||||
@@ -1961,6 +1961,48 @@ RANLIB = ranlib
|
||||
RLFLAGS =
|
||||
CC_TOOLS = /usr/bin/gcc -Wall
|
||||
|
||||
+###########################################################
|
||||
+#ARCH Fujitsu FX1000/FX700 Linux aarch64 A64FX, mpifrt and mpifcc compilers #serial smpar dmpar dm+sm
|
||||
+#
|
||||
+DESCRIPTION = FUJITSU ($SFC/$SCC): FX1000/FX700 A64FX
|
||||
+DMPARALLEL = # 1
|
||||
+OMPCPP = # -D_OPENMP
|
||||
+OMP = # -Kopenmp
|
||||
+OMPCC = # -Kopenmp
|
||||
+SFC = frt
|
||||
+SCC = fcc
|
||||
+CCOMP = fcc
|
||||
+DM_FC = mpifrt
|
||||
+DM_CC = mpifcc -DMPI2_SUPPORT -DMPI2_THREAD_SUPPORT
|
||||
+FC = CONFIGURE_FC
|
||||
+CC = CONFIGURE_CC
|
||||
+LD = $(FC)
|
||||
+RWORDSIZE = CONFIGURE_RWORDSIZE
|
||||
+PROMOTION = -CcdRR$(RWORDSIZE)
|
||||
+ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -DWRF_USE_CLM
|
||||
+CFLAGS_LOCAL = -Kfast -DSUN -I/usr/include/tirpc
|
||||
+LDFLAGS_LOCAL =
|
||||
+CPLUSPLUSLIB =
|
||||
+ESMF_LDFLAG = $(CPLUSPLUSLIB)
|
||||
+FCOPTIM = -Kfast
|
||||
+FCREDUCEDOPT = $(FCOPTIM)
|
||||
+FCNOOPT = -O0
|
||||
+FCDEBUG = # -g $(FCNOOPT)
|
||||
+FORMAT_FIXED = -Fixed
|
||||
+FORMAT_FREE = -Free
|
||||
+FCSUFFIX =
|
||||
+BYTESWAPIO =
|
||||
+FCBASEOPTS_NO_G = -Kautoobjstack,ocl -fw $(FORMAT_FREE) $(BYTESWAPIO) $(OMP)
|
||||
+FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
|
||||
+MODULE_SRCH_FLAG =
|
||||
+TRADFLAG = -traditional
|
||||
+CPP = /lib/cpp -P
|
||||
+AR = ar
|
||||
+ARFLAGS = ru
|
||||
+M4 = m4
|
||||
+RANLIB = ranlib
|
||||
+RLFLAGS =
|
||||
+CC_TOOLS = /usr/bin/gcc -Wall
|
||||
#insert new stanza before the Fujitsu block, keep Fujitsu at the end of the list
|
||||
###########################################################
|
||||
#ARCH NULL
|
@ -7,16 +7,16 @@ diff -Naur a/Makefile b/Makefile
|
||||
cd ../external/io_netcdf ; \
|
||||
- $(MAKE) NETCDFPATH="$(NETCDFPATH)" \
|
||||
- FC="$(FC) $(FCBASEOPTS) $(PROMOTION) $(FCDEBUG) $(OMP)" RANLIB="$(RANLIB)" \
|
||||
+ $(MAKE) NETCDFPATH="$(NETCDFPATH)" FNETCDFFPATH="$(NETCDFFPATH)" \
|
||||
+ C="$(FC) $(FCBASEOPTS) $(PROMOTION) $(FCDEBUG) $(OMP)" RANLIB="$(RANLIB)" \
|
||||
+ $(MAKE) NETCDFPATH="$(NETCDFPATH)" NETCDFFPATH="$(NETCDFFPATH)" \
|
||||
+ FC="$(FC) $(FCBASEOPTS) $(PROMOTION) $(FCDEBUG) $(OMP)" 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; \
|
||||
cd ../io_netcdf ; \
|
||||
- $(MAKE) NETCDFPATH="$(NETCDFPATH)" \
|
||||
- FC="$(SFC) $(FCBASEOPTS) $(PROMOTION) $(FCDEBUG) $(OMP)" RANLIB="$(RANLIB)" \
|
||||
+ $(MAKE) NETCDFPATH="$(NETCDFPATH)" FNETCDFFPATH="$(NETCDFFPATH)"\
|
||||
+ C="$(SFC) $(FCBASEOPTS) $(PROMOTION) $(FCDEBUG) $(OMP)" RANLIB="$(RANLIB)" \
|
||||
+ $(MAKE) NETCDFPATH="$(NETCDFPATH)" NETCDFFPATH="$(NETCDFFPATH)"\
|
||||
+ FC="$(SFC) $(FCBASEOPTS) $(PROMOTION) $(FCDEBUG) $(OMP)" 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"; \
|
||||
@ -226,8 +226,8 @@ diff -Naur a/external/io_netcdf/makefile b/external/io_netcdf/makefile
|
||||
-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$(NETCDFFPATH)/lib -lnetcdf
|
||||
+LIBFFS = $(LIB_LOCAL) -L$(NETCDFFPATH)/lib -lnetcdff -lnetcdf $(NETCDF4_DEP_LIB)
|
||||
+LIBS = $(LIB_LOCAL) -L$(NETCDFPATH)/lib -lnetcdf
|
||||
+LIBFFS = $(LIB_LOCAL) -L$(NETCDFFPATH)/lib -lnetcdff -L$(NETCDFPATH)/lib -lnetcdf $(NETCDF4_DEP_LIB)
|
||||
CPP1 = $(CPP) -P $(TRADFLAG)
|
||||
M4 = m4 -Uinclude -Uindex -Ulen
|
||||
AR = ar
|
||||
@ -254,7 +254,7 @@ diff -Naur a/external/io_netcdf/makefile b/external/io_netcdf/makefile
|
||||
@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 $(NETCDFPATH)/lib/libnetcdff.so \) ] ; then \
|
||||
+ if [ \( -f $(NETCDFFPATH)/lib/libnetcdff.a -o -f $(NETCDFFPATH)/lib/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) ;\
|
||||
|
@ -6,8 +6,8 @@
|
||||
cd ../external/io_netcdf ; \
|
||||
- $(MAKE) NETCDFPATH="$(NETCDFPATH)" \
|
||||
- FC="$(FC) $(FCBASEOPTS) $(PROMOTION) $(FCDEBUG) $(OMP)" RANLIB="$(RANLIB)" \
|
||||
+ $(MAKE) NETCDFPATH="$(NETCDFPATH)" FNETCDFFPATH="$(NETCDFFPATH)" \
|
||||
+ C="$(FC) $(FCBASEOPTS) $(PROMOTION) $(FCDEBUG) $(OMP)" RANLIB="$(RANLIB)" \
|
||||
+ $(MAKE) NETCDFPATH="$(NETCDFPATH)" NETCDFFPATH="$(NETCDFFPATH)" \
|
||||
+ FC="$(FC) $(FCBASEOPTS) $(PROMOTION) $(FCDEBUG) $(OMP)" 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; \
|
||||
@ -15,7 +15,7 @@
|
||||
- $(MAKE) NETCDFPATH="$(NETCDFPATH)" \
|
||||
- FC="$(SFC) $(FCBASEOPTS) $(PROMOTION) $(FCDEBUG) $(OMP)" RANLIB="$(RANLIB)" \
|
||||
+ $(MAKE) NETCDFPATH="$(NETCDFPATH)" FNETCDFFPATH="$(NETCDFFPATH)" \
|
||||
+ C="$(SFC) $(FCBASEOPTS) $(PROMOTION) $(FCDEBUG) $(OMP)" RANLIB="$(RANLIB)" \
|
||||
+ FC="$(SFC) $(FCBASEOPTS) $(PROMOTION) $(FCDEBUG) $(OMP)" 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"; \
|
||||
|
@ -8,8 +8,8 @@
|
||||
-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$(NETCDFFPATH)/lib -lnetcdf
|
||||
+LIBFFS = $(LIB_LOCAL) -L$(NETCDFFPATH)/lib -lnetcdff -lnetcdf $(NETCDF4_DEP_LIB)
|
||||
+LIBS = $(LIB_LOCAL) -L$(NETCDFPATH)/lib -lnetcdf
|
||||
+LIBFFS = $(LIB_LOCAL) -L$(NETCDFPATH)/lib -lnetcdff -L$(NETCDFFPATH)/lib -lnetcdf $(NETCDF4_DEP_LIB)
|
||||
CPP1 = $(CPP) -P $(TRADFLAG)
|
||||
M4 = m4 -Uinclude -Uindex -Ulen
|
||||
AR = ar
|
||||
|
@ -1,16 +1,15 @@
|
||||
diff --git a/arch/Config.pl b/arch/Config.pl
|
||||
index b6f45db..75fad32 100644
|
||||
--- a/arch/Config.pl
|
||||
+++ b/arch/Config.pl
|
||||
@@ -8,6 +8,7 @@
|
||||
select((select(STDOUT), $|=1)[0]);
|
||||
$sw_perl_path = perl ;
|
||||
diff -ru a/arch/Config.pl b/arch/Config.pl
|
||||
--- a/arch/Config.pl 2021-10-28 17:42:41.000000000 +0900
|
||||
+++ b/arch/Config.pl 2021-10-28 17:48:01.000000000 +0900
|
||||
@@ -11,6 +11,7 @@
|
||||
$sw_tirpc_lib = "";
|
||||
$sw_tirpc_libdir = "";
|
||||
$sw_netcdf_path = "" ;
|
||||
+$sw_netcdff_path = "" ;
|
||||
$sw_pnetcdf_path = "" ;
|
||||
$sw_hdf5_path="";
|
||||
$sw_phdf5_path="";
|
||||
@@ -63,6 +64,10 @@ while ( substr( $ARGV[0], 0, 1 ) eq "-" )
|
||||
@@ -75,6 +76,10 @@
|
||||
{
|
||||
$sw_netcdf_path = substr( $ARGV[0], 8 ) ;
|
||||
}
|
||||
@ -21,7 +20,7 @@ index b6f45db..75fad32 100644
|
||||
if ( substr( $ARGV[0], 1, 13 ) eq "dep_lib_path=" )
|
||||
{
|
||||
$sw_dep_lib_path = substr( $ARGV[0], 14 ) ;
|
||||
@@ -117,6 +122,7 @@ while ( substr( $ARGV[0], 0, 1 ) eq "-" )
|
||||
@@ -129,6 +134,7 @@
|
||||
if ( substr( $ARGV[0], 1, 11 ) eq "USENETCDFF=" )
|
||||
{
|
||||
$sw_usenetcdff = substr( $ARGV[0], 12 ) ;
|
||||
@ -29,15 +28,15 @@ index b6f45db..75fad32 100644
|
||||
}
|
||||
if ( substr( $ARGV[0], 1, 10 ) eq "USENETCDF=" )
|
||||
{
|
||||
@@ -443,6 +449,7 @@ while ( <CONFIGURE_DEFAULTS> )
|
||||
{
|
||||
$_ =~ s/CONFIGURE_PERL_PATH/$sw_perl_path/g ;
|
||||
@@ -457,6 +463,7 @@
|
||||
$_ =~ s/CONFIGURE_TIRPC_INC/$sw_tirpc_inc/g ;
|
||||
$_ =~ s/CONFIGURE_TIRPC_LIB/$sw_tirpc_libdir $sw_tirpc_lib/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 ;
|
||||
@@ -484,17 +491,19 @@ while ( <CONFIGURE_DEFAULTS> )
|
||||
@@ -498,17 +505,19 @@
|
||||
if ( $sw_netcdf_path )
|
||||
{ $_ =~ s/CONFIGURE_WRFIO_NF/wrfio_nf/g ;
|
||||
$_ =~ s:CONFIGURE_NETCDF_FLAG:-DNETCDF: ;
|
||||
@ -60,3 +59,15 @@ index b6f45db..75fad32 100644
|
||||
$_ =~ s:CONFIGURE_NETCDF_LIB_PATH::g ;
|
||||
}
|
||||
|
||||
@@ -823,9 +832,9 @@
|
||||
if ( $ENV{NETCDF_LDFLAGS} ) {
|
||||
$_ =~ s:CONFIGURE_NETCDF_LIB_PATH:\$\(WRF_SRC_ROOT_DIR\)/external/io_netcdf/libwrfio_nf.a $ENV{NETCDF_LDFLAGS} : ;
|
||||
} elsif ( $sw_os eq "Interix" ) {
|
||||
- $_ =~ s:CONFIGURE_NETCDF_LIB_PATH:\$\(WRF_SRC_ROOT_DIR\)/external/io_netcdf/libwrfio_nf.a -L$sw_netcdf_path/lib $sw_usenetcdff $sw_usenetcdf : ;
|
||||
+ $_ =~ s:CONFIGURE_NETCDF_LIB_PATH:\$\(WRF_SRC_ROOT_DIR\)/external/io_netcdf/libwrfio_nf.a -L$sw_netcdf_path/lib -L$sw_netcdff_path/lib $sw_usenetcdff $sw_usenetcdf : ;
|
||||
} else {
|
||||
- $_ =~ s:CONFIGURE_NETCDF_LIB_PATH:-L\$\(WRF_SRC_ROOT_DIR\)/external/io_netcdf -lwrfio_nf -L$sw_netcdf_path/lib $sw_usenetcdff $sw_usenetcdf : ;
|
||||
+ $_ =~ s:CONFIGURE_NETCDF_LIB_PATH:-L\$\(WRF_SRC_ROOT_DIR\)/external/io_netcdf -lwrfio_nf -L$sw_netcdf_path/lib -L$sw_netcdff_path/lib $sw_usenetcdff $sw_usenetcdf : ;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
52
var/spack/repos/builtin/packages/wrf/patches/4.2/configure_fujitsu.patch
vendored
Normal file
52
var/spack/repos/builtin/packages/wrf/patches/4.2/configure_fujitsu.patch
vendored
Normal file
@ -0,0 +1,52 @@
|
||||
--- spack-src/arch/configure.defaults.org 2021-10-26 13:21:41.000000000 +0900
|
||||
+++ spack-src/arch/configure.defaults 2021-10-26 13:24:04.000000000 +0900
|
||||
@@ -2019,6 +2019,49 @@
|
||||
RLFLAGS =
|
||||
CC_TOOLS = /usr/bin/gcc -Wall
|
||||
|
||||
+###########################################################
|
||||
+#ARCH Fujitsu FX1000/FX700 Linux aarch64 A64FX, mpifrt and mpifcc compilers #serial smpar dmpar dm+sm
|
||||
+#
|
||||
+DESCRIPTION = FUJITSU ($SFC/$SCC): FX1000/FX700 A64FX
|
||||
+DMPARALLEL = # 1
|
||||
+OMPCPP = # -D_OPENMP
|
||||
+OMP = # -Kopenmp
|
||||
+OMPCC = # -Kopenmp
|
||||
+SFC = frt
|
||||
+SCC = fcc
|
||||
+CCOMP = fcc
|
||||
+DM_FC = mpifrt
|
||||
+DM_CC = mpifcc -DMPI2_SUPPORT -DMPI2_THREAD_SUPPORT
|
||||
+FC = CONFIGURE_FC
|
||||
+CC = CONFIGURE_CC
|
||||
+LD = $(FC)
|
||||
+RWORDSIZE = CONFIGURE_RWORDSIZE
|
||||
+PROMOTION = -CcdRR$(RWORDSIZE)
|
||||
+ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -DWRF_USE_CLM
|
||||
+CFLAGS_LOCAL = -Kfast -DSUN -I/usr/include/tirpc
|
||||
+LDFLAGS_LOCAL =
|
||||
+CPLUSPLUSLIB =
|
||||
+ESMF_LDFLAG = $(CPLUSPLUSLIB)
|
||||
+FCOPTIM = -Kfast
|
||||
+FCREDUCEDOPT = $(FCOPTIM)
|
||||
+FCNOOPT = -O0
|
||||
+FCDEBUG = # -g $(FCNOOPT)
|
||||
+FORMAT_FIXED = -Fixed
|
||||
+FORMAT_FREE = -Free
|
||||
+FCSUFFIX =
|
||||
+BYTESWAPIO =
|
||||
+FCBASEOPTS_NO_G = -Kautoobjstack,ocl -fw $(FORMAT_FREE) $(BYTESWAPIO) $(OMP)
|
||||
+FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
|
||||
+MODULE_SRCH_FLAG =
|
||||
+TRADFLAG = -traditional
|
||||
+CPP = /lib/cpp -P
|
||||
+AR = ar
|
||||
+ARFLAGS = ru
|
||||
+M4 = m4
|
||||
+RANLIB = ranlib
|
||||
+RLFLAGS =
|
||||
+CC_TOOLS = /usr/bin/gcc -Wall
|
||||
+
|
||||
#insert new stanza before the Fujitsu block, keep Fujitsu at the end of the list
|
||||
###########################################################
|
||||
#ARCH NULL
|
41
var/spack/repos/builtin/packages/wrf/patches/4.3/Makefile.patch
vendored
Normal file
41
var/spack/repos/builtin/packages/wrf/patches/4.3/Makefile.patch
vendored
Normal file
@ -0,0 +1,41 @@
|
||||
--- a/Makefile 2021-11-01 15:24:26.000000000 +0900
|
||||
+++ b/Makefile 2021-11-01 15:30:08.000000000 +0900
|
||||
@@ -1003,13 +1003,13 @@
|
||||
@ echo '--------------------------------------'
|
||||
( cd frame ; $(MAKE) $(J) LLIST="$(LINKLIST)" framework ; \
|
||||
cd ../external/io_netcdf ; \
|
||||
- $(MAKE) NETCDFPATH="$(NETCDFPATH)" \
|
||||
+ $(MAKE) NETCDFPATH="$(NETCDFPATH)" NETCDFFPATH="$(NETCDFFPATH)" \
|
||||
FC="$(FC) $(FCBASEOPTS) $(PROMOTION) $(FCDEBUG) $(OMP)" 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; \
|
||||
cd ../io_netcdf ; \
|
||||
- $(MAKE) NETCDFPATH="$(NETCDFPATH)" \
|
||||
+ $(MAKE) NETCDFPATH="$(NETCDFPATH)" NETCDFFPATH="$(NETCDFFPATH)" \
|
||||
FC="$(SFC) $(FCBASEOPTS) $(PROMOTION) $(FCDEBUG) $(OMP)" RANLIB="$(RANLIB)" \
|
||||
CPP="$(CPP)" LDFLAGS="$(LDFLAGS)" TRADFLAG="$(TRADFLAG)" ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
|
||||
LIB_LOCAL="$(LIB_LOCAL)" \
|
||||
@@ -1032,19 +1032,19 @@
|
||||
@ echo '--------------------------------------'
|
||||
( cd frame ; $(MAKE) $(J) LLIST="$(MODLL)" framework ; \
|
||||
cd ../external/io_netcdf ; \
|
||||
- $(MAKE) NETCDFPATH="$(NETCDFPATH)" \
|
||||
+ $(MAKE) NETCDFPATH="$(NETCDFPATH)" NETCDFFPATH="$(NETCDFFPATH)"\
|
||||
FC="$(FC) $(FCBASEOPTS) $(PROMOTION) $(FCDEBUG) $(OMP)" 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; \
|
||||
cd ../io_netcdf ; \
|
||||
- $(MAKE) NETCDFPATH="$(NETCDFPATH)" \
|
||||
+ $(MAKE) NETCDFPATH="$(NETCDFPATH)" NETCDFFPATH="$(NETCDFFPATH)"\
|
||||
FC="$(SFC) $(FCBASEOPTS) $(PROMOTION) $(FCDEBUG) $(OMP)" 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"; \
|
||||
cd ../io_pio ; \
|
||||
- echo SKIPPING PIO BUILD $(MAKE) NETCDFPATH="$(PNETCDFPATH)" \
|
||||
+ echo SKIPPING PIO BUILD $(MAKE) NETCDFPATH="$(PNETCDFPATH)" NETCDFFPATH="$(NETCDFFPATH)"\
|
||||
FC="$(SFC) $(FCBASEOPTS) $(PROMOTION) $(FCDEBUG) $(OMP)" RANLIB="$(RANLIB)" \
|
||||
CPP="$(CPP)" LDFLAGS="$(LDFLAGS)" TRADFLAG="$(TRADFLAG)" ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \
|
||||
LIB_LOCAL="$(LIB_LOCAL)" \
|
34
var/spack/repos/builtin/packages/wrf/patches/4.3/arch.postamble.patch
vendored
Normal file
34
var/spack/repos/builtin/packages/wrf/patches/4.3/arch.postamble.patch
vendored
Normal file
@ -0,0 +1,34 @@
|
||||
--- a/arch/postamble 2021-11-01 16:51:50.000000000 +0900
|
||||
+++ b/arch/postamble 2021-11-01 16:54:34.000000000 +0900
|
||||
@@ -53,6 +53,7 @@
|
||||
-I$(WRF_SRC_ROOT_DIR)/wrftladj \
|
||||
-I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc \
|
||||
-I$(NETCDFPATH)/include \
|
||||
+ -I$(NETCDFFPATH)/include \
|
||||
CONFIGURE_RTTOV_INC CONFIGURE_CTSM_INC
|
||||
REGISTRY = Registry
|
||||
CC_TOOLS_CFLAGS = CONFIGURE_NMM_CORE
|
||||
@@ -62,6 +63,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
|
||||
RTTOVPATH = CONFIGURE_RTTOV_PATH
|
||||
@@ -93,13 +95,13 @@
|
||||
|
||||
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)" )
|
||||
|
||||
wrfio_pnf :
|
||||
( cd $(WRF_SRC_ROOT_DIR)/external/io_pnetcdf ; \
|
||||
- make $(J) NETCDFPATH="$(PNETCDFPATH)" RANLIB="$(RANLIB)" CPP="$(CPP) $(ARCHFLAGS)" \
|
||||
+ make $(J) NETCDFPATH="$(PNETCDFPATH)" NETCDFFPATH="$(NETCDFFPATH)" RANLIB="$(RANLIB)" CPP="$(CPP) $(ARCHFLAGS)" \
|
||||
FC="$(FC) $(PROMOTION) $(OMP) $(FCFLAGS)" TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" )
|
||||
|
||||
wrfio_grib_share :
|
10
var/spack/repos/builtin/packages/wrf/patches/4.3/fujitsu.patch
vendored
Normal file
10
var/spack/repos/builtin/packages/wrf/patches/4.3/fujitsu.patch
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
--- spack-src/phys/module_mp_ntu.F.org 2021-11-04 09:33:01.000000000 +0900
|
||||
+++ spack-src/phys/module_mp_ntu.F 2021-11-04 09:41:00.000000000 +0900
|
||||
@@ -352,7 +352,7 @@
|
||||
DO I = 1,ITERMAX
|
||||
Y = Y0
|
||||
DY = DYEQU(DRC,DWMAS,DMODE,DSTDV)
|
||||
- IF (DY.LE.1.E-50) THEN
|
||||
+ IF (DY.LE.1.D-50) THEN
|
||||
PRINT *,'IN FIND_RC0.F DY IS',DY
|
||||
PRINT *,I,DX,Y,DY,DEXP(DRC),DRC,XAFRC,X1MAFRC,DMODE,DSTDV, &
|
Loading…
Reference in New Issue
Block a user