diff --git a/Allwmake b/Allwmake
index 9e1c942043fc8d3646072fb3dcf89287c1bc6a15..d7c90c858e8d1a61dde4fa8cb68c977b5ab90d65 100755
--- a/Allwmake
+++ b/Allwmake
@@ -23,12 +23,12 @@ else
     echo "mpirun=$(command -v mpirun || true)"
 fi
 echo
-# Report compiler information
+# Report compiler information. First non-blank line from --version output
 compiler="$(wmake -show-path-cxx 2>/dev/null || true)"
 if [ -x "$compiler" ]
 then
     echo "compiler=$compiler"
-    "$compiler" --version 2>/dev/null | sed -ne '1p'
+    "$compiler" --version 2>/dev/null | sed -e '/^$/d;q'
 else
     echo "compiler=unknown"
 fi
diff --git a/bin/foamSystemCheck b/bin/foamSystemCheck
index 4d5c7fadf0c2e65e5fda94453b7fb97e14eaf236..d741aab1b72e601237a705b188d997b30bf780e5 100755
--- a/bin/foamSystemCheck
+++ b/bin/foamSystemCheck
@@ -167,22 +167,22 @@ checkUserShell
 checkHostName
 checkOS
 
-# check user name
-USER_NAME="$LOGNAME"
-if [ $(length $USER_NAME) -eq 0 ]
-then
-    USER_NAME="$USER"
-fi
-
-echo "$(fixlen User: $WIDTH) ${USER_NAME}"
-if [ $(length $USER_NAME) -eq 0 ]
-then
-    echo "ERROR: Cannot stat user name $USER_NAME."
-    echo "       OpenFOAM $WM_PROJECT_VERSION needs a valid user name."
-    echo "       Contact your system administrator. "
-    echo
-    fatalError="x${fatalError}"
-fi
+## # check user name
+## USER_NAME="$LOGNAME"
+## if [ $(length $USER_NAME) -eq 0 ]
+## then
+##     USER_NAME="$USER"
+## fi
+##
+## echo "$(fixlen User: $WIDTH) ${USER_NAME}"
+## if [ $(length $USER_NAME) -eq 0 ]
+## then
+##     echo "ERROR: Cannot stat user name $USER_NAME."
+##     echo "       OpenFOAM $WM_PROJECT_VERSION needs a valid user name."
+##     echo "       Contact your system administrator. "
+##     echo
+##     fatalError="x${fatalError}"
+## fi
 
 echo
 if [ -n "$fatalError" ]
diff --git a/etc/bashrc b/etc/bashrc
index e8857b474d46a66e5701889a6ef5225e893dd4eb..9d79aaab2f7dfc6b12ce371198083ddb827d80de 100644
--- a/etc/bashrc
+++ b/etc/bashrc
@@ -66,8 +66,9 @@ export WM_PROJECT_VERSION=com
 export WM_COMPILER_TYPE=system
 
 # [WM_COMPILER] - Compiler:
-# = Gcc | Clang | Icc | Icx | Cray | Amd | Arm | Pgi | Fujitsu |
+# = Gcc | Clang | Icc | Icx | Amd | Arm | Cray | Fujitsu |
 #   Gcc<digits> | Clang<digits>
+#   [Not well tested: Pgi | Nvidia]
 export WM_COMPILER=Gcc
 
 # [WM_PRECISION_OPTION] - Floating-point precision:
@@ -162,7 +163,7 @@ unset FOAM_EXTRA_CFLAGS FOAM_EXTRA_CXXFLAGS FOAM_EXTRA_LDFLAGS
 
 # Capture values of old directories to be cleaned from PATH, LD_LIBRARY_PATH
 foamOldDirs="$WM_PROJECT_DIR $WM_THIRD_PARTY_DIR \
-    $HOME/$WM_PROJECT/$USER $FOAM_USER_APPBIN $FOAM_USER_LIBBIN \
+    $HOME/$WM_PROJECT/${USER:-user} $FOAM_USER_APPBIN $FOAM_USER_LIBBIN \
     $WM_PROJECT_SITE $FOAM_SITE_APPBIN $FOAM_SITE_LIBBIN \
     $FOAM_MODULE_APPBIN $FOAM_MODULE_LIBBIN"
 
@@ -170,7 +171,7 @@ foamOldDirs="$WM_PROJECT_DIR $WM_THIRD_PARTY_DIR \
 export WM_PROJECT_DIR="$projectDir"
 
 # [WM_PROJECT_USER_DIR] - Location of user files
-export WM_PROJECT_USER_DIR="$HOME/$WM_PROJECT/$USER-$WM_PROJECT_VERSION"
+export WM_PROJECT_USER_DIR="$HOME/$WM_PROJECT/${USER:-user}-$WM_PROJECT_VERSION"
 
 # [WM_PROJECT_SITE] - Location of site-specific (group) files
 # Default (unset) implies WM_PROJECT_DIR/site
diff --git a/etc/config.csh/mpi b/etc/config.csh/mpi
index e8bd71b0d4fe400911caff33f3b5371e3c7f9c4d..d69122a9460557ea764a33cc97bc0b877685afc9 100644
--- a/etc/config.csh/mpi
+++ b/etc/config.csh/mpi
@@ -62,7 +62,7 @@ switch ("$WM_MPLIB")
 # The system openmpi, discover locations via <mpicc>
 case SYSTEMOPENMPI[1-9]:
     # Preserve major version for the naming
-    set _foamMpiVersion=`echo "$WM_MPLIB" | sed -e 's/^.*MPI//'`
+    set _foamMpiVersion=`echo "$WM_MPLIB" | sed -e 's#^.*MPI##'`
     #[fallthrough]
 
 case SYSTEMOPENMPI:
@@ -77,16 +77,17 @@ case SYSTEMOPENMPI:
     endif
 
     # Use <orte-info> (openmpi only command) to query configuration
+    # Parse "path:prefix:<pathname>" type of output
     if ( "$MPI_ARCH_PATH" == "" ) then
         set _foamFoundCmd=`which orte-info`
         if ($status == 0) then
             # prefix
-            set _foamFoundDir=`orte-info --path prefix --parsable | sed -e 's/^.*:prefix://'`
+            set _foamFoundDir=`orte-info --path prefix --parsable | sed -e 's#^path:[^:]*:##'`
             if ( -d "$_foamFoundDir" ) then
                 setenv MPI_ARCH_PATH "${_foamFoundDir}"
 
                 # libdir
-                set _foamFoundDir=`orte-info --path libdir --parsable | sed -e 's/^.*:libdir://'`
+                set _foamFoundDir=`orte-info --path libdir --parsable | sed -e 's#^path:[^:]*:##'`
                 if ( -d "$_foamFoundDir" ) then
                     _foamAddLib "$_foamFoundDir"
                 else if ( "$MPI_ARCH_PATH" != "/usr" ) then
@@ -101,7 +102,7 @@ case SYSTEMOPENMPI:
     if ( "$MPI_ARCH_PATH" == "" ) then
         set _foamFoundCmd=`which mpicc`
         if ($status == 0) then
-            set _foamFoundDir=`mpicc --showme:link | sed -e 's/.*-L\([^ ]*\).*/\1/'`
+            set _foamFoundDir=`mpicc --showme:link | sed -e 's#.*-L\([^ ]*\).*#\1#'`
             setenv MPI_ARCH_PATH "${_foamFoundDir:h}"  # Prefix from libdir
             _foamAddLib "$_foamFoundDir"
         endif
@@ -128,7 +129,7 @@ case SYSTEMOPENMPI:
     # TBD: extra (major) version qualifier on name?
     #-
     ## if ( "$FOAM_MPI" == "sys-openmpi" ) then
-    ##     set _foamMpiVersion=`echo "$MPI_ARCH_PATH" | sed -e 's/^.*mpi//'`
+    ##     set _foamMpiVersion=`echo "$MPI_ARCH_PATH" | sed -e 's#^.*mpi##'`
     ##     switch ("$_foamMpiVersion")
     ##     case [1-9]:
     ##         setenv FOAM_MPI "${FOAM_MPI}${_foamMpiVersion}"
diff --git a/etc/config.sh/mpi b/etc/config.sh/mpi
index d131891f9c9a6674f092364a6f47b237167adba1..1e056c3ec9789a8eb060e3cbdec3bbdb167339bf 100644
--- a/etc/config.sh/mpi
+++ b/etc/config.sh/mpi
@@ -81,17 +81,19 @@ SYSTEMOPENMPI | SYSTEMOPENMPI[1-9])
         unset MPI_ARCH_PATH
     fi
 
-    # Use <orte-info> (openmpi only command) to query configuration
+    # Use <orte-info> (openmpi only command) to query configuration.
+    # Parse "path:prefix:<pathname>" type of output
     if [ -z "$MPI_ARCH_PATH" ] && _foamFoundCmd="$(command -v orte-info)"
     then
         # prefix
-        _foamFoundDir="$("$_foamFoundCmd" --path prefix --parsable | sed -e 's/^.*:prefix://')"
+        _foamFoundDir="$("$_foamFoundCmd" --path prefix --parsable | sed -e 's#^path:[^:]*:##')"
+
         if [ -d "$_foamFoundDir" ]
         then
             MPI_ARCH_PATH="${_foamFoundDir}"
 
             # libdir
-            _foamFoundDir="$("$_foamFoundCmd" --path libdir --parsable | sed -e 's/^.*:libdir://')"
+            _foamFoundDir="$("$_foamFoundCmd" --path libdir --parsable | sed -e 's#^path:[^:]*:##')"
             if [ -d "$_foamFoundDir" ]
             then
                 _foamAddLib "$_foamFoundDir"
@@ -106,7 +108,7 @@ SYSTEMOPENMPI | SYSTEMOPENMPI[1-9])
     # strip off 'lib' to get the prefix directory
     if [ -z "$MPI_ARCH_PATH" ] && _foamFoundCmd="$(command -v mpicc)"
     then
-        _foamFoundDir="$("$_foamFoundCmd" --showme:link | sed -e 's/.*-L\([^ ]*\).*/\1/')"
+        _foamFoundDir="$("$_foamFoundCmd" --showme:link | sed -e 's#.*-L\([^ ]*\).*#\1#')"
 
         MPI_ARCH_PATH="${_foamFoundDir%/*}"  # Prefix from libdir
         _foamAddLib "$_foamFoundDir"
diff --git a/etc/cshrc b/etc/cshrc
index cf2323792e3fedd012e6f8cc8b1f96e02eaa8a11..b28b48add15d30dd520d87085f920accadf4ce00 100644
--- a/etc/cshrc
+++ b/etc/cshrc
@@ -66,8 +66,9 @@ setenv WM_PROJECT_VERSION com
 setenv WM_COMPILER_TYPE system
 
 # [WM_COMPILER] - Compiler:
-# = Gcc | Clang | Icc | Icx | Cray | Amd | Arm | Pgi | Fujitsu |
+# = Gcc | Clang | Icc | Icx | Amd | Arm | Cray | Fujitsu |
 #   Gcc<digits> | Clang<digits>
+#   [Not well tested: Pgi | Nvidia]
 setenv WM_COMPILER Gcc
 
 # [WM_PRECISION_OPTION] - Floating-point precision:
diff --git a/src/Allwmake b/src/Allwmake
index 0af702324ec94173a950030338fdca03eedbee5e..04ef9881d4f8c06d20c361419237a1208acaaa6a 100755
--- a/src/Allwmake
+++ b/src/Allwmake
@@ -26,19 +26,19 @@ OpenFOAM/Alltouch -check 2>/dev/null
 OSspecific/"${WM_OSTYPE:-POSIX}"/Allwmake $targetType $*
 
 case "$WM_COMPILER" in
-Mingw*)
+(Mingw* | Nvidia*)
     # Pstream/OpenFOAM cyclic dependency
     # 1st pass: link as Pstream as single .o object
     WM_MPLIB=dummy Pstream/Allwmake libo
     FOAM_LINK_DUMMY_PSTREAM=libo wmake $targetType OpenFOAM
 
-    # 2nd pass: link Pstream.dll against libOpenFOAM.dll
+    # 2nd pass: link Pstream.{dll,so} against libOpenFOAM.{dll,so}
     Pstream/Allwmake $targetType $*
 
-    # Force relink libOpenFOAM.dll against libPstream.dll
+    # Force relink libOpenFOAM.{dll,so} against libPstream.{dll,so}
     OpenFOAM/Alltouch 2>/dev/null
     ;;
-*)
+(*)
     Pstream/Allwmake $targetType $*
     ;;
 esac
diff --git a/wmake/rules/General/Clang/c++ b/wmake/rules/General/Clang/c++
index 4bba0cb56913d68e21a3c9d6d75fc6571ff650a4..9ce764d305d682f1b90b857ef2c3efff65b79fc8 100644
--- a/wmake/rules/General/Clang/c++
+++ b/wmake/rules/General/Clang/c++
@@ -1,6 +1,7 @@
+#------------------------------------------------------------------------------
 SUFFIXES += .C .cc .cpp .cxx
 
-CC          = clang++ -std=c++11
+CC          = clang++ -std=c++14
 
 c++ARCH     =
 c++DBUG     =
diff --git a/wmake/rules/General/Gcc/c++ b/wmake/rules/General/Gcc/c++
index 337a7dfe73f12283700d742ebd0698411eefd68b..4a1b4b8ac290a2c0ec66af03144380b626cf0ee2 100644
--- a/wmake/rules/General/Gcc/c++
+++ b/wmake/rules/General/Gcc/c++
@@ -1,3 +1,9 @@
+#------------------------------------------------------------------------------
+# C++14 support with gcc-5 and later, but several systems (as of 2021)
+# are still using gcc-4.8.4 (centos7, suse SLES12, ...)
+#
+# NOTE if your system gcc is new enough can simply use c++14 too.
+#------------------------------------------------------------------------------
 SUFFIXES += .C .cc .cpp .cxx
 
 CC          = g++ -std=c++11
diff --git a/wmake/rules/General/Icc/c++ b/wmake/rules/General/Icc/c++
index e0ad375d2ae5530a1e39bfd6d0ab3c992dc51fd4..543b5adcec850af52c7849decd2bec28a53e4f2a 100644
--- a/wmake/rules/General/Icc/c++
+++ b/wmake/rules/General/Icc/c++
@@ -1,6 +1,9 @@
+#------------------------------------------------------------------------------
+# Intel compiler is new enough to support c++14
+#------------------------------------------------------------------------------
 SUFFIXES += .C .cc .cpp .cxx
 
-CC          = icpc -std=c++11
+CC          = icpc -std=c++14
 
 c++ARCH     =
 c++DBUG     =
diff --git a/wmake/rules/General/Icx/c++ b/wmake/rules/General/Icx/c++
index 657e02660b26c37d08bf5f48e36ac08eff74f10d..3cced84b1b94d81e9b74441e2946021e6caefbd9 100644
--- a/wmake/rules/General/Icx/c++
+++ b/wmake/rules/General/Icx/c++
@@ -1,6 +1,9 @@
+#------------------------------------------------------------------------------
+# Intel compiler is new enough to support c++14
+#------------------------------------------------------------------------------
 SUFFIXES += .C .cc .cpp .cxx
 
-CC          = icpx -std=c++11
+CC          = icpx -std=c++14
 
 c++ARCH     =
 c++DBUG     =
diff --git a/wmake/rules/General/Nvidia/c b/wmake/rules/General/Nvidia/c
new file mode 100644
index 0000000000000000000000000000000000000000..0ec9a118d126d9e556e21dd4e7b80abf39399dd9
--- /dev/null
+++ b/wmake/rules/General/Nvidia/c
@@ -0,0 +1,13 @@
+#------------------------------------------------------------------------------
+# Nvidia compilers
+#------------------------------------------------------------------------------
+SUFFIXES += .c
+
+cc          = nvc
+
+cARCH       =
+cDBUG       =
+cOPT        = -O2
+cWARN       = $(FOAM_EXTRA_CFLAGS)
+
+#------------------------------------------------------------------------------
diff --git a/wmake/rules/General/Nvidia/c++ b/wmake/rules/General/Nvidia/c++
new file mode 100644
index 0000000000000000000000000000000000000000..cd88194621d63d6f6c4970862951caffd2562f02
--- /dev/null
+++ b/wmake/rules/General/Nvidia/c++
@@ -0,0 +1,37 @@
+#------------------------------------------------------------------------------
+# Nvidia compilers
+#------------------------------------------------------------------------------
+SUFFIXES += .C .cc .cpp .cxx
+
+CC          = nvc++ -std=c++14
+
+c++ARCH     =
+c++DBUG     =
+c++OPT      = -O2
+ptFLAGS     = -DNoRepository
+
+# - Standard warnings
+# - Less restrictive warnings (may be needed for flex++, CGAL, etc.)
+
+c++WARN     = \
+    -Wall -Wextra \
+    --diag_suppress=111,128,177,185,612,998,1098 \
+    --display_error_number \
+    $(FOAM_EXTRA_CXXFLAGS)
+
+c++LESSWARN =
+
+# Warnings
+# --------
+# Run with --display_error_number to get numbers
+# and --diag_suppress=XXX to suppress
+#
+#111-D: statement is unreachable
+#128-D: loop is not reachable
+#177-D: function was declared but never referenced
+#185-D: dynamic initialization in unreachable code
+#612-D: overloaded virtual function ... is only partially overridden
+#998-D: function XX is hidden by YY -- virtual function override intended?
+#1098-D: unknown attribute "fallthrough"
+#
+#------------------------------------------------------------------------------
diff --git a/wmake/rules/General/Nvidia/link-c b/wmake/rules/General/Nvidia/link-c
new file mode 100644
index 0000000000000000000000000000000000000000..79d1f2b6be48c27c1632b999597c318a262a2458
--- /dev/null
+++ b/wmake/rules/General/Nvidia/link-c
@@ -0,0 +1,5 @@
+LINK_LIBS   = $(cDBUG)
+
+LINKLIBSO   = $(cc) $(cARCH) -shared
+
+LINKEXE     = $(cc) $(cARCH) -Xlinker --add-needed -Xlinker -z -Xlinker nodefs
diff --git a/wmake/rules/General/Nvidia/link-c++ b/wmake/rules/General/Nvidia/link-c++
new file mode 100644
index 0000000000000000000000000000000000000000..1713460ec3cf403129e93921f36b5baf1872d489
--- /dev/null
+++ b/wmake/rules/General/Nvidia/link-c++
@@ -0,0 +1,8 @@
+LINK_LIBS   = $(c++DBUG)
+
+LINKLIBSO   = $(CC) $(c++FLAGS) -shared \
+    $(FOAM_EXTRA_LDFLAGS)
+
+LINKEXE     = $(CC) $(c++FLAGS) \
+    -Xlinker --add-needed \
+    $(FOAM_EXTRA_LDFLAGS)
diff --git a/wmake/rules/General/Nvidia/openmp b/wmake/rules/General/Nvidia/openmp
new file mode 100644
index 0000000000000000000000000000000000000000..72ae175519a5d063bec6a27d9a04ff5665ba4fe6
--- /dev/null
+++ b/wmake/rules/General/Nvidia/openmp
@@ -0,0 +1,5 @@
+# Flags for compiling/linking openmp
+# The USE_OMP is for OpenFOAM-specific use (general use is _OPENMP)
+
+COMP_OPENMP = -DUSE_OMP -fopenmp
+LINK_OPENMP = -lnvomp
diff --git a/wmake/rules/General/Pgi/c++ b/wmake/rules/General/Pgi/c++
index e1f41b942533e34280e8c8d296fc1bef3b63fe1d..c520c7b275841ca6c83d1eabd881ebf884c0784c 100644
--- a/wmake/rules/General/Pgi/c++
+++ b/wmake/rules/General/Pgi/c++
@@ -1,3 +1,6 @@
+#------------------------------------------------------------------------------
+# PGI Compilers are defunct - now in NVIDIA HPC SDK  (2021)
+#------------------------------------------------------------------------------
 SUFFIXES += .C .cc .cpp .cxx
 
 CC          = pgc++ -std=c++11
diff --git a/wmake/rules/linux64Cray/c++ b/wmake/rules/linux64Cray/c++
index 0b09cbe47e6ff9f1d404fefd627669ad508819f3..48a769f89566ff1030d5090a282395bc2c32f21d 100644
--- a/wmake/rules/linux64Cray/c++
+++ b/wmake/rules/linux64Cray/c++
@@ -1,7 +1,10 @@
+#------------------------------------------------------------------------------
 # Cray compiler - a gcc variant/wrapper
+# presumably new enough to support c++14
+#------------------------------------------------------------------------------
 include $(GENERAL_RULES)/Gcc/c++
 
-CC          = CC -std=c++11
+CC          = CC -std=c++14
 
 c++ARCH     = -m64 -pthread
 
@@ -15,3 +18,5 @@ cctoo       = $(Ctoo)
 cpptoo      = $(Ctoo)
 
 include $(GENERAL_RULES)/Gcc/link-c++
+
+#------------------------------------------------------------------------------
diff --git a/wmake/rules/linux64Mingw/c++ b/wmake/rules/linux64Mingw/c++
index 4aad3937215a78d2493388a38782a0cb8694147e..de6fa6489c5c216772b82838a25062ce2fe4440c 100644
--- a/wmake/rules/linux64Mingw/c++
+++ b/wmake/rules/linux64Mingw/c++
@@ -1,9 +1,12 @@
+#------------------------------------------------------------------------------
+# mingw is gcc, but new enough to support c++14
+#------------------------------------------------------------------------------
 include $(GENERAL_RULES)/Gcc/c++
 
 c++ARCH     = -m64 -pthread
 
-# With gnu++11 (not c++11) to ensure __STRICT_ANSI__ is not defined
-CC          = x86_64-w64-mingw32-g++ -std=gnu++11
+# With gnu++14 (not c++14) to ensure __STRICT_ANSI__ is not defined
+CC          = x86_64-w64-mingw32-g++ -std=gnu++14
 
 include $(RULES)/c++$(WM_COMPILE_OPTION)
 
@@ -34,3 +37,5 @@ LINKEXE     = $(CC) $(c++FLAGS) \
     -Wl,--strip-all \
     -Wl,--force-exe-suffix \
     $(FOAM_EXTRA_LDFLAGS)
+
+#------------------------------------------------------------------------------
diff --git a/wmake/rules/linux64Nvidia/c b/wmake/rules/linux64Nvidia/c
new file mode 100644
index 0000000000000000000000000000000000000000..6479237d6a0d7431772c94990e7770dc2fe1a64a
--- /dev/null
+++ b/wmake/rules/linux64Nvidia/c
@@ -0,0 +1,12 @@
+include $(GENERAL_RULES)/Nvidia/c
+
+cARCH       = -m64
+
+# Compile option is non-mandatory, but must be non-empty
+sinclude $(DEFAULT_RULES)/c$(WM_COMPILE_OPTION)
+
+cFLAGS      = $(cARCH) $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC
+
+ctoo        = $(WM_SCHEDULER) $(cc) $(cFLAGS) -c $< -o $@
+
+include $(GENERAL_RULES)/Nvidia/link-c
diff --git a/wmake/rules/linux64Nvidia/c++ b/wmake/rules/linux64Nvidia/c++
new file mode 100644
index 0000000000000000000000000000000000000000..bc82b15e8fc943c5f8044546a039af701322a90d
--- /dev/null
+++ b/wmake/rules/linux64Nvidia/c++
@@ -0,0 +1,14 @@
+include $(GENERAL_RULES)/Nvidia/c++
+
+c++ARCH     = -m64
+
+include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION)
+
+c++FLAGS    = $(c++ARCH) $(GFLAGS) $(c++WARN) $(c++OPT) $(c++DBUG) $(ptFLAGS) $(LIB_HEADER_DIRS) -fPIC
+
+Ctoo        = $(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $< -o $@
+cxxtoo      = $(Ctoo)
+cctoo       = $(Ctoo)
+cpptoo      = $(Ctoo)
+
+include $(GENERAL_RULES)/Nvidia/link-c++
diff --git a/wmake/rules/linux64Nvidia/c++Debug b/wmake/rules/linux64Nvidia/c++Debug
new file mode 100644
index 0000000000000000000000000000000000000000..48f0b6643e18406a22b768923aa876a312269ea1
--- /dev/null
+++ b/wmake/rules/linux64Nvidia/c++Debug
@@ -0,0 +1,2 @@
+c++DBUG     = -g -DFULLDEBUG
+c++OPT      = -O0
diff --git a/wmake/rules/linux64Nvidia/c++Opt b/wmake/rules/linux64Nvidia/c++Opt
new file mode 100644
index 0000000000000000000000000000000000000000..2aedabd6280a3476bc58db13139a0a3aa579502b
--- /dev/null
+++ b/wmake/rules/linux64Nvidia/c++Opt
@@ -0,0 +1,2 @@
+c++DBUG     =
+c++OPT      = -O3
diff --git a/wmake/rules/linux64Nvidia/c++Prof b/wmake/rules/linux64Nvidia/c++Prof
new file mode 100644
index 0000000000000000000000000000000000000000..3bda4dad55e898a8198f6e8bfe21e8d829d7230a
--- /dev/null
+++ b/wmake/rules/linux64Nvidia/c++Prof
@@ -0,0 +1,2 @@
+c++DBUG    = -pg
+c++OPT     = -O2
diff --git a/wmake/rules/linux64Nvidia/cDebug b/wmake/rules/linux64Nvidia/cDebug
new file mode 100644
index 0000000000000000000000000000000000000000..7b7adf10deade9c64833672b98de8ace4fb61a0e
--- /dev/null
+++ b/wmake/rules/linux64Nvidia/cDebug
@@ -0,0 +1,2 @@
+cDBUG       = -g -DFULLDEBUG
+cOPT        = -O0
diff --git a/wmake/rules/linux64Nvidia/cOpt b/wmake/rules/linux64Nvidia/cOpt
new file mode 100644
index 0000000000000000000000000000000000000000..17318709f1fa39e6bf89cbe87778bc6fa459de17
--- /dev/null
+++ b/wmake/rules/linux64Nvidia/cOpt
@@ -0,0 +1,2 @@
+cDBUG       =
+cOPT        = -O3
diff --git a/wmake/rules/linux64Nvidia/cProf b/wmake/rules/linux64Nvidia/cProf
new file mode 100644
index 0000000000000000000000000000000000000000..ca3ac9bf5f0cd61fe99e0f05fa1bd4bdf9fa6cf7
--- /dev/null
+++ b/wmake/rules/linux64Nvidia/cProf
@@ -0,0 +1,2 @@
+cDBUG       = -pg
+cOPT        = -O2
diff --git a/wmake/rules/linux64Nvidia/general b/wmake/rules/linux64Nvidia/general
new file mode 100644
index 0000000000000000000000000000000000000000..5cfb798fac46c20cb988bfc66aa017b6fe18ce16
--- /dev/null
+++ b/wmake/rules/linux64Nvidia/general
@@ -0,0 +1,13 @@
+CPP        = cpp -traditional-cpp $(GFLAGS)
+
+include $(GENERAL_RULES)/standard
+## include $(GENERAL_RULES)/Pgi/openmp
+
+ifneq (,$(findstring ~openmp,$(WM_COMPILE_CONTROL)))
+    include $(GENERAL_RULES)/no-openmp
+endif
+
+include $(DEFAULT_RULES)/c
+include $(DEFAULT_RULES)/c++
+
+# -----------------------------------------------------------------------------
diff --git a/wmake/rules/linux64Nvidia/mplibOPENMPI b/wmake/rules/linux64Nvidia/mplibOPENMPI
new file mode 100644
index 0000000000000000000000000000000000000000..0faf49ed1e5df5df4ba4ae67fe6d9e8210858e39
--- /dev/null
+++ b/wmake/rules/linux64Nvidia/mplibOPENMPI
@@ -0,0 +1,3 @@
+PFLAGS     = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) -L$(MPI_ARCH_PATH)/lib -lmpi
diff --git a/wmake/rules/linuxARM64Arm/c++ b/wmake/rules/linuxARM64Arm/c++
index 9a920288855448f1aa2341effa73140b9f149a9d..933cf970ecf934ed40b08d0c963d9101638eb59a 100644
--- a/wmake/rules/linuxARM64Arm/c++
+++ b/wmake/rules/linuxARM64Arm/c++
@@ -1,7 +1,9 @@
+#------------------------------------------------------------------------------
 # A clang variant
+#------------------------------------------------------------------------------
 include $(GENERAL_RULES)/Clang/c++
 
-CC          = armclang++ -std=c++11
+CC          = armclang++ -std=c++14
 
 c++ARCH     = -mcpu=native -pthread
 
@@ -18,3 +20,5 @@ include $(GENERAL_RULES)/Clang/link-c++
 
 LINKLIBSO  += -armpl
 LINKEXE    += -armpl
+
+#------------------------------------------------------------------------------
diff --git a/wmake/rules/linuxARM64Fujitsu/c++ b/wmake/rules/linuxARM64Fujitsu/c++
index c6838152bc7c10888497c619a0df2b15d50075bf..540397fd75879db3cbc3c37e13faa92b494924a1 100644
--- a/wmake/rules/linuxARM64Fujitsu/c++
+++ b/wmake/rules/linuxARM64Fujitsu/c++
@@ -1,7 +1,9 @@
+#------------------------------------------------------------------------------
 # Fujitsu compiler - a clang variant
+#------------------------------------------------------------------------------
 include $(GENERAL_RULES)/Clang/c++
 
-CC          = FCC -std=c++11
+CC          = FCC -std=c++14
 
 c++ARCH     = -pthread
 
@@ -15,3 +17,5 @@ cctoo       = $(Ctoo)
 cpptoo      = $(Ctoo)
 
 include $(GENERAL_RULES)/Clang/link-c++
+
+#------------------------------------------------------------------------------