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:
Toyohisa Kameyama 2022-02-05 04:53:59 +09:00 committed by GitHub
parent cccd1ce376
commit c29e6dbd20
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 303 additions and 102 deletions

View File

@ -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

View 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

View File

@ -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) ;\

View File

@ -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"; \

View File

@ -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

View File

@ -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

View 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

View 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)" \

View 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 :

View 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, &