Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
684f583
Bugfix for duplicated allocation and file closing for radar_rhv_opt =…
mos3r3n Aug 1, 2024
727d253
a few changes in documenting namelists (#2074)
weiwangncar Aug 13, 2024
ae6c321
Bug fix for LECH's stability functions in the SL Urban Canopy Model. …
joshi994 Aug 20, 2024
6273c88
Bug fix for parameter used in calculating the heat transfer coefficie…
joshi994 Aug 20, 2024
6198090
Bug fixes for stability function and energy balance in single canopy …
joshi994 Aug 21, 2024
2e885eb
Updated global attributes for auxiliary output as well as runs with W…
tlspero Aug 22, 2024
0ca0d96
Add reflectivity calculation back to WSM6 scheme (#2098)
weiwangncar Aug 30, 2024
a6056c1
Remove unsupported -auto C flag from Intel oneAPI stanza (#2059)
islas Sep 11, 2024
3dc9f57
Fix line continuation syntax causing problems with certain compilers …
islas Sep 11, 2024
d672f54
Fix for possible undefined zol (#2105)
dudhia Sep 12, 2024
59d1ab1
Replace nonstandard isnan() call with value input checks instead (#2061)
islas Sep 13, 2024
297b434
Add explicit casts to mismatched pointer types in rsl_lite (#2062)
islas Sep 16, 2024
1d86bcb
Fix non-initialized mixing ratio in p/z-lev interp (#2104)
jesusff Sep 18, 2024
958ce12
Initial testing framework (#2095)
islas Sep 19, 2024
ed585bd
Restructure alloc space calls into simpler smaller files (#2068)
islas Sep 26, 2024
d810865
Break out module_dm external subroutines into separate files (#2069)
islas Sep 26, 2024
6e71a0a
Case insensitive F90 compile rule (#2057)
MicroTed Oct 11, 2024
b1ec964
CMake build no longer uses generator expressions in defines (#2056)
islas Oct 12, 2024
a9c2337
Corrected end date for em_b_wave test case (#2107)
JeroBnd Oct 14, 2024
5ffa840
Breakout deallocation calls into simpler smaller files (#2070)
islas Oct 14, 2024
cd8e545
Change internal flag organization in CMake build to not be global (#2…
islas Oct 14, 2024
f68f0b9
CMake Prepare for alternate core selections (#2086)
islas Oct 14, 2024
1e96a7e
Restructure netCDF find modules to use modern import target (#2054)
islas Oct 14, 2024
2f844ad
Fix fseek test (#2055)
islas Oct 14, 2024
5d9beb1
CMake improve configure_reader.py script (#2087)
islas Oct 14, 2024
915f93d
CMake compilation flags as categorical properties (#2088)
islas Oct 15, 2024
788c882
Compilation Tests for ARW (#2115)
islas Oct 16, 2024
fa023f2
Shortwave radiation balance at the wall missing reflected direct and …
joshi994 Oct 16, 2024
b1e1258
CMake netCDF Compatibility with WPS (#2121)
islas Oct 16, 2024
c21d571
Update version info for release v4.6.1 (#2122)
islas Oct 16, 2024
d66e442
Merge remote-tracking branch 'origin/release-v4.6.1'
islas Oct 16, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .ci/env/derecho.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/bin/sh

echo "Setting up derecho environment"
workingDirectory=$PWD
. /etc/profile.d/z00_modules.sh
echo "Loading modules : $*"
cmd="module purge"
echo $cmd && eval "${cmd}"

# We should be handed in the modules to load
while [ $# -gt 0 ]; do
cmd="module load $1"
echo $cmd && eval "${cmd}"
shift
done

# Go back to working directory if for unknown reason HPC config changing your directory on you
if [ "$workingDirectory" != "$PWD" ]; then
echo "derecho module loading changed working directory"
echo " Moving back to $workingDirectory"
cd $workingDirectory
fi
46 changes: 46 additions & 0 deletions .ci/env/helpers.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#!/bin/sh

# Useful string manipulation functions, leaving in for posterity
# https://stackoverflow.com/a/8811800
# contains(string, substring)
#
# Returns 0 if the specified string contains the specified substring,
# otherwise returns 1.
contains()
{
string="$1"
substring="$2"

if [ "${string#*"$substring"}" != "$string" ]; then
echo 0 # $substring is in $string
else
echo 1 # $substring is not in $string
fi
}

setenvStr()
{
# Changing IFS produces the most consistent results
tmpIFS=$IFS
IFS=","
string="$1"
for s in $string; do
if [ ! -z $s ]; then
eval "echo export \"$s\""
eval "export \"$s\""
fi
done
IFS=$tmpIFS
}

banner()
{
lengthBanner=$1
shift
# https://www.shellscript.sh/examples/banner/
printf "#%${lengthBanner}s#\n" | tr " " "="
printf "# %-$(( ${lengthBanner} - 2 ))s #\n" "`date`"
printf "# %-$(( ${lengthBanner} - 2 ))s #\n" " "
printf "# %-$(( ${lengthBanner} - 2 ))s #\n" "$*"
printf "#%${lengthBanner}s#\n" | tr " " "="
}
16 changes: 16 additions & 0 deletions .ci/env/hostenv.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/bin/sh

# Allow selection of hostname, and if none is provided use the current machine
# While this may seem unintuitive at first, it provides the flexibility of using
# "named" configurations without being explicitly tied to fqdn
hostname=$AS_HOST
if [ -z "$hostname" ]; then
hostname=$( python3 -c "import socket; print( socket.getfqdn() )" )
fi

if [ $( contains ${hostname} hsn.de.hpc ) -eq 0 ]; then
# Derecho HPC SuSE PBS
. .ci/env/derecho.sh
else
echo "No known environment for '${hostname}', using current"
fi
1 change: 1 addition & 0 deletions .ci/hpc-workflows
Submodule hpc-workflows added at dfc8e6
108 changes: 108 additions & 0 deletions .ci/tests/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
#!/bin/sh
help()
{
echo "./build.sh as_host workingdir [options] [-- <hostenv.sh options>]"
echo " as_host First argument must be the host configuration to use for environment loading"
echo " workingdir First argument must be the working dir to immediate cd to"
echo " -c Configuration build type, piped directly into configure"
echo " -n Configuration nesting type, piped directly into configure"
echo " -o Configuration optstring passed into configure"
echo " -b Build command passed into compile"
echo " -e environment variables in comma-delimited list, e.g. var=1,foo,bar=0"
echo " -- <hostenv.sh options> Directly pass options to hostenv.sh, equivalent to hostenv.sh <options>"
echo " -h Print this message"
echo ""
echo "If you wish to use an env var in your arg such as '-c \$SERIAL -e SERIAL=32', you must"
echo "you will need to do '-c \\\$SERIAL -e SERIAL=32' to delay shell expansion"
}

echo "Input arguments:"
echo "$*"

AS_HOST=$1
shift
if [ $AS_HOST = "-h" ]; then
help
exit 0
fi

workingDirectory=$1
shift

cd $workingDirectory

# Get some helper functions
. .ci/env/helpers.sh

while getopts c:n:o:b:e:h opt; do
case $opt in
c)
configuration="$OPTARG"
;;
n)
nesting="$OPTARG"
;;
o)
configOpt="$OPTARG"
;;
b)
buildCommand="$OPTARG"
;;
e)
envVars="$envVars,$OPTARG"
;;
h) help; exit 0 ;;
*) help; exit 1 ;;
:) help; exit 1 ;;
\?) help; exit 1 ;;
esac
done

shift "$((OPTIND - 1))"

# Everything else goes to our env setup
. .ci/env/hostenv.sh $*

# Now evaluate env vars in case it pulls from hostenv.sh
if [ ! -z "$envVars" ]; then
setenvStr "$envVars"
fi

# Re-evaluate input values for delayed expansion
eval "configuration=\"$configuration\""
eval "nesting=\"$nesting\""
eval "configOpt=\"$configOpt\""
eval "buildCommand=\"$buildCommand\""

./clean -a

echo "Compiling with option $configuration nesting=$nesting and additional flags '$configOpt'"
./configure $configOpt << EOF
$configuration
$nesting
EOF

if [ ! -f configure.wrf ]; then
echo "Failed to configure"
exit 1
fi

echo "./compile $buildCommand"
./compile $buildCommand

result=$?

if [ $result -ne 0 ]; then
echo "Failed to compile"
exit 1
fi

# And a *very* special check because WRF compiles the WRF way and force-ignores all make errors
# putting the onus on US to check for things
if [ ! -x ./main/wrf.exe ]; then # There's a bunch of other execs but this is the most important and
# doing more checks to accomodate just reinforces this bad design
echo "Failed to compile"
exit 1
fi

echo "TEST $(basename $0) PASS"
91 changes: 91 additions & 0 deletions .ci/wrf_compilation_tests-make.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
{
"submit_options" :
{
"timelimit" : "00:20:00",
"working_directory" : "..",
"arguments" :
{
"base_env_numprocs" : [ "-e", "NUM_PROCS=4" ],

".*make.*::args_nesting" : [ "-n", "1" ],
".*make.*::args_configopt" : [ "-o", "-d" ],
".*make.*::args_build_tgt" : [ "-b", "em_real -j $NUM_PROCS" ]
},
"hsn.de.hpc" :
{
"submission" : "PBS",
"queue" : "main",
"hpc_arguments" :
{
"node_select" : { "-l " : { "select" : 1, "ncpus" : 8 } },
"priority" : { "-l " : { "job_priority" : "economy" } }
},
"arguments" :
{
"base_env_numprocs" : [ "-e", "NUM_PROCS=8" ],
"very_last_modules" : [ "netcdf" ],
".*gnu.*::test_modules" : [ "gcc" ],
".*intel-classic.*::test_modules" : [ "intel-classic" ],
".*intel-llvm.*::test_modules" : [ "intel-oneapi" ],
".*pgi.*::test_modules" : [ "nvhpc" ],
".*dm.*::test_mpi_module" : [ "cray-mpich" ]
}
}
},

"make-gnu-serial" : { "steps" : { "build" : { "command" : ".ci/tests/build.sh", "arguments" : [ "-c", "32" ] } } },
"make-gnu-sm" : { "steps" : { "build" : { "command" : ".ci/tests/build.sh", "arguments" : [ "-c", "33" ] } } },
"make-gnu-dm" : { "steps" : { "build" : { "command" : ".ci/tests/build.sh", "arguments" : [ "-c", "34" ] } } },
"make-gnu-dm+sm" : { "steps" : { "build" : { "command" : ".ci/tests/build.sh", "arguments" : [ "-c", "35" ] } } },

"make-intel-classic-serial" : {
"submit_options" : { "hsn.de.hpc" : { "timelimit" : "00:30:00" } },
"steps" : { "build" : { "command" : ".ci/tests/build.sh", "arguments" : [ "-c", "13" ] } }
},
"make-intel-classic-sm" : {
"submit_options" : { "hsn.de.hpc" : { "timelimit" : "00:30:00" } },
"steps" : { "build" : { "command" : ".ci/tests/build.sh", "arguments" : [ "-c", "14" ] } }
},
"make-intel-classic-dm" : {
"submit_options" : { "hsn.de.hpc" : { "timelimit" : "00:30:00" } },
"steps" : { "build" : { "command" : ".ci/tests/build.sh", "arguments" : [ "-c", "15" ] } }
},
"make-intel-classic-dm+sm" : {
"submit_options" : { "hsn.de.hpc" : { "timelimit" : "00:30:00" } },
"steps" : { "build" : { "command" : ".ci/tests/build.sh", "arguments" : [ "-c", "16" ] } }
},

"make-intel-llvm-serial" : {
"submit_options" : { "hsn.de.hpc" : { "timelimit" : "00:30:00" } },
"steps" : { "build" : { "command" : ".ci/tests/build.sh", "arguments" : [ "-c", "76" ] } }
},
"make-intel-llvm-sm" : {
"submit_options" : { "hsn.de.hpc" : { "timelimit" : "00:30:00" } },
"steps" : { "build" : { "command" : ".ci/tests/build.sh", "arguments" : [ "-c", "77" ] } }
},
"make-intel-llvm-dm" : {
"submit_options" : { "hsn.de.hpc" : { "timelimit" : "00:30:00" } },
"steps" : { "build" : { "command" : ".ci/tests/build.sh", "arguments" : [ "-c", "78" ] } }
},
"make-intel-llvm-dm+sm" : {
"submit_options" : { "hsn.de.hpc" : { "timelimit" : "00:30:00" } },
"steps" : { "build" : { "command" : ".ci/tests/build.sh", "arguments" : [ "-c", "79" ] } }
},

"make-pgi-serial" : {
"submit_options" : { "hsn.de.hpc" : { "timelimit" : "00:30:00" } },
"steps" : { "build" : { "command" : ".ci/tests/build.sh", "arguments" : [ "-c", "1" ] } }
},
"make-pgi-sm" : {
"submit_options" : { "hsn.de.hpc" : { "timelimit" : "00:30:00" } },
"steps" : { "build" : { "command" : ".ci/tests/build.sh", "arguments" : [ "-c", "2" ] } }
},
"make-pgi-dm" : {
"submit_options" : { "hsn.de.hpc" : { "timelimit" : "00:30:00" } },
"steps" : { "build" : { "command" : ".ci/tests/build.sh", "arguments" : [ "-c", "3" ] } }
},
"make-pgi-dm+sm" : {
"submit_options" : { "hsn.de.hpc" : { "timelimit" : "00:30:00" } },
"steps" : { "build" : { "command" : ".ci/tests/build.sh", "arguments" : [ "-c", "4" ] } }
}
}
Loading