diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..ac4a9d3 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,69 @@ +name: Build and Test +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-20.04 + env: + FC: gfortran-9 + CC: gcc-9 + + steps: + + - name: checkout-pfunit + uses: actions/checkout@v2 + with: + repository: Goddard-Fortran-Ecosystem/pFUnit + path: pfunit + + - name: cache-pfunit + id: cache-pfunit + uses: actions/cache@v2 + with: + path: ~/pfunit + key: pfunit-${{ runner.os }}-${{ hashFiles('pfunit/VERSION') }} + + - name: build-pfunit + if: steps.cache-pfunit.outputs.cache-hit != 'true' + run: | + cd pfunit + mkdir build + cd build + cmake .. -DSKIP_MPI=YES -DSKIP_ESMF=YES -DSKIP_FHAMCREST=YES -DCMAKE_INSTALL_PREFIX=~/pfunit + make -j2 + make install + + - name: checkout-sp + uses: actions/checkout@v2 + with: + repository: NOAA-EMC/NCEPLIBS-sp + path: sp + ref: develop + + - name: build-sp + run: | + cd sp + mkdir build + cd build + cmake .. -DCMAKE_INSTALL_PREFIX=~/sp + make -j2 + make install + + - name: checkout + uses: actions/checkout@v2 + with: + path: ip2 + submodules: true + + - name: build + run: | + cd ip2 + mkdir build + cd build + cmake .. -DENABLE_TESTS=ON -DCMAKE_PREFIX_PATH="~/pfunit;~/" + make -j2 + + - name: test + run: | + cd $GITHUB_WORKSPACE/ip2/build + make test diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d3b41ce --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +build/ +install/ + +*.[ao] +*.mod +*.so +*DS_Store + +*.swp diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..cb12bff --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,35 @@ +cmake_minimum_required(VERSION 3.15) + +file(STRINGS "VERSION" pVersion) + +project( + ip2 + VERSION ${pVersion} + LANGUAGES Fortran) + +option(OPENMP "use OpenMP threading" OFF) +option(ENABLE_TESTS "Build pfunit tests?" OFF) + +if(NOT CMAKE_BUILD_TYPE MATCHES "^(Debug|Release|RelWithDebInfo|MinSizeRel)$") + message(STATUS "Setting build type to 'Release' as none was specified.") + set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build." FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo") +endif() + +if(NOT CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel|GNU)$") + message(WARNING "Compiler not officially supported: ${CMAKE_Fortran_COMPILER_ID}") +endif() + +if(OPENMP) + find_package(OpenMP REQUIRED COMPONENTS Fortran) +endif() + +find_package(sp REQUIRED) + +add_subdirectory(src) + +if (ENABLE_TESTS) + find_package(PFUNIT REQUIRED) + enable_testing() + add_subdirectory(tests) +endif() diff --git a/Conf/Analyse_args.sh b/Conf/Analyse_args.sh deleted file mode 100644 index 1b230cb..0000000 --- a/Conf/Analyse_args.sh +++ /dev/null @@ -1,49 +0,0 @@ - if (( $# == 0 )); then - echo "*** Usage: $0 dell|cray|wcoss|theia|hera|gaea|jet|intel_general|gnu_general libver= [debug] [compileonly] [prefix=]" >&2 - exit 1 - fi - sys=${1,,} - [[ $sys == dell || $sys == cray || $sys == wcoss || \ - $sys == theia || $sys == hera || $sys == gaea || $sys == jet || \ - $sys == intel_general || $sys == gnu_general ]] || { - echo "*** Usage: $0 dell|cray|wcoss|theia|hera|gaea|jet|intel_general|gnu_general libver= [debug] [compileonly] [prefix=]" >&2 - exit 1 - } - - debg=false - inst=true - rinst=false - local=true - instloc="---" - (( nrinst = 0 )) - (( nconfm = 0 )) - for n in 2 3 4; do - if (( $# > (n-1) )); then - [[ ${!n,,} == debug ]] && debg=true - [[ ${!n,,} == compileonly ]] && inst=false - [[ ${!n,,} == libver=* ]] && libver=${!n:$(expr length "libver=")} - [[ ${!n,,} == prefix=* ]] && { - local=false - instloc=${!n:$(expr length "prefix=")} - [[ $instloc == /* ]] || { [[ -n $CDIR ]] && instloc=$CDIR/$instloc; } - } - [[ ${!n,,} == install ]] && (( nrinst = n )) - [[ ${!n,,} == confirm:yes ]] && (( nconfm = n-1 )) - fi - done - (( nrinst > 0 && nconfm == 0 )) && { - echo "*** Info: ignore unsupported option \"install\" ***" - (( nrinst = 0 )) - } - (( nrinst == 0 && nconfm > 0 )) && { - echo "*** Info: ignore \"confirm:YES\"; must be present along with \"install\" ***" - (( nrinst = 0 )) - } - (( nconfm > 0 && ! nrinst == nconfm )) && { - echo "*** Info: ignore \"confirm:YES\"; must be present immediately after \"install\" ***" - (( nrinst = 0 )) - } - (( nconfm > 0 && nrinst == nconfm )) && rinst=true - - $rinst && { local=false; inst=true; } - diff --git a/Conf/Collect_info.sh b/Conf/Collect_info.sh deleted file mode 100644 index 4b2d239..0000000 --- a/Conf/Collect_info.sh +++ /dev/null @@ -1,107 +0,0 @@ - collect_info() { - local setx_status=${-//[^x]/} - [[ -n $setx_status ]] && set +x - - local lname=$1 - local precsn=$2 - local msgline=$3 - local msginfo=$4 - - local info - local oneline - - USEMPI=false - grep -i mpi <<< "$COMP" &> /dev/null && USEMPI=true - -# libver=${lname~~}_VER - [[ $precsn == "-" ]] && { - cflg=CFLAGS - fflg=FFLAGS - libfile=${lname}Lib - NCLIBVER="${lname,,} (${lname~~}) ${!libver}" - } || { - cflg=CFLAGS${precsn%/*} - [[ -z "${!cflg}" ]] && cflg=CFLAGS - fflg=FFLAGS${precsn%/*} - libfile=${lname}Lib${precsn#*/} - NCLIBVER="${lname,,} (${lname~~} _${precsn%/*}) ${!libver}" - } - mpicflg=MPI"$cflg" - mpifflg=MPI"$fflg" - - $USEMPI && mpiver=$(mpirun --version | grep Version | sed 's/://' | \ - tr -s " " | sed 's/^.* Version //; s/ Build.*$//') - - COMPILED="compiled by" - $CC --version | grep " (ICC) " &> /dev/null && - $FC --version | grep " (IFORT) " &> /dev/null && { - ccstr=$($CC --version | grep " (ICC) ") - cfstr=$($FC --version | grep " (IFORT) ") - COMPILER="${ccstr/(ICC)*/(ICC)}, $cfstr" - } || { - $CC --version | grep " (.*GCC.*) " &> /dev/null && - $FC --version | grep " (.*GCC.*) " &> /dev/null && { - ccstr=$($CC --version | grep " (.*GCC.*) ") - cfstr=$($FC --version | grep " (.*GCC.*) ") - COMPILER="${ccstr/ (*GCC*)*/}, $cfstr" - } || { - ccstr=$($CC --version | grep -E 'ICC|GCC') - cfstr=$($FC --version | grep -E 'IFORT|GCC') - COMPILER="$ccstr, $cfstr" - } - } - [[ -z "$USECC" || ${USECC,,} == no ]] && { COMPILER="$cfstr"; } - [[ -z "$USEFC" || ${USEFC,,} == no ]] && { COMPILER="$ccstr"; } - - $USEMPI && { COMPILER=" $COMPILER"; } - (( ${#COMPILER} > 50 )) && COMPILER=${COMPILER% (*)*} - - DATETIME="$(date +'on %x at %X')" - - oneline="nclibver = '$NCLIBVER'," - oneline="$oneline"$'\n'"compiled = ' $COMPILED'," - oneline="$oneline"$'\n'"compiler = ' $COMPILER'," - oneline="$oneline"$'\n'"datetime = ' $DATETIME'" - - info="*** ${lname} information ***" - info=$info$'\n'"LIBRARY NAME: ${lname~~}" - info=$info$'\n'"LIBRARY VERSION: ${!libver}" - [[ $precsn != "-" ]] && { - info=$info$'\n'"LIBRARY PRECISION: (_${precsn%/*})" - } - info=$info$'\n'"LIBRARY FILE NAME: ${!libfile}" - info=$info$'\n'"*** building information ***" - info=$info$'\n'"BUILDING TIME: $(date)" - info=$info$'\n'"SYSTEM/PLATFORM: $(uname -srm)" - [[ -n "$USECC" && ${USECC,,} != no ]] && { - $USEMPI && { - info=$info$'\n'"C COMPILER NAME: $MPICC" - info=$info$'\n'"C COMPILER VERSION: $($MPICC --version | head -1)" - info=$info$'\n'"MPICFLAGS: "${!mpicflg} - } || { - info=$info$'\n'"C COMPILER NAME: $CC" - info=$info$'\n'"C COMPILER VERSION: $($CC --version | head -1)" - info=$info$'\n'"CFLAGS: "${!cflg} - } - } - [[ -n "$USEFC" && ${USEFC,,} != no ]] && { - $USEMPI && { - info=$info$'\n'"FORTRAN COMPILER NAME: $MPIFC" - info=$info$'\n'"FORTRAN COMPILER VERSION: $($MPIFC --version | head -1)" - info=$info$'\n'"MPIFFLAGS: "${!mpifflg} - } || { - info=$info$'\n'"FORTRAN COMPILER NAME: $FC" - info=$info$'\n'"FORTRAN COMPILER VERSION: $($FC --version | head -1)" - info=$info$'\n'"FFLAGS: "${!fflg} - } - } - - $USEMPI && { info=$info$'\n'"MPI VERSION: $mpiver"; } - - [[ -n "$DEPS" ]] && { info=$info$'\n'"DEPENDENCES: $DEPS"; } - - eval $msgline="\"$oneline\"" - eval $msginfo="\"$info\"" - - [[ -n $setx_status ]] && set -x - } diff --git a/Conf/Gen_cfunction.sh b/Conf/Gen_cfunction.sh deleted file mode 100644 index 1428829..0000000 --- a/Conf/Gen_cfunction.sh +++ /dev/null @@ -1,91 +0,0 @@ - gen_cfunction() { - local setx_status=${-//[^x]/} - [[ -n $setx_status ]] && set +x - - logFILE=$1 - oneLINE=$2 - libINFO=$3 - LIB=$(echo "${!libINFO}" | \ - grep "LIBRARY FILE NAME: " | \ - sed -e 's/LIBRARY FILE NAME: //') - [[ $LIB == lib*.a ]] || { - echo "??? gen_cfunction: unknown library name ($LIB) ???" >&2 - exit -1 - } - libNAME=$(echo ${LIB:3} | \ - sed -e 's/^\(.*\)_v[[:digit:]]\+\.[[:digit:]]\+\.[[:digit:]]\+.*$/\1/') - cFunFILE=$(basename ${logFILE} .txt).c - oFunFILE=${cFunFILE/%.c/.o} - brfFunct=${libNAME}_brief_info - libFunct=${libNAME}_library_info - logFunct=${libNAME}_building_log - - cat << EOI > $cFunFILE -#include -#include -#include -#include - char *${brfFunct}(char *infoline); - int ${libFunct}(void); - int ${logFunct}(void); - static void tprintf(const char *str); - void ${brfFunct}_(char *oneline, size_t n) { - char infoline[256]; - ${brfFunct}(infoline); - strncpy(oneline, infoline, n); - return; - } - void ${libFunct}_(void) { - ${libFunct}(); - return; - } - void ${logFunct}_(void) { - ${logFunct}(); - return; - } - char *${brfFunct}(char *infoline) { - $(sed -e '1,$ s/^\(.*\) = '\''\(.*\)'\'',\?$/ const char \1[] = "\2";/g' <<< "${!oneLINE}") - infoline[0] = '\0'; - strcat(infoline, nclibver); - strcat(infoline, compiled); - strcat(infoline, compiler); - strcat(infoline, datetime); - return infoline; - } - int ${libFunct}(void) { -$(sed -e 's/^/ tprintf("/g; 1,$ s/$/");/g' <<< "${!libINFO}") - return 0; - } - int ${logFunct}(void) { - printf("... building log ...\n"); -$(sed -e 's/"/\\"/g; 1,$ s/%/%%/g; 1,$ s/^/ printf("/g; 1,$ s/$/\\n");/g' $logFILE) - return 0; - } - static void tprintf(const char *str) { - const char *boldon = "\e[1m"; - const char *boldoff = "\e[0m"; - char *str1 = strdup(str); - char *temp = strstr(str1, ": "); //Get the pointer to substr token - if (temp) { - temp += 2; - char *str2 = strdup(temp); - *temp = '\0'; - if (isatty(STDOUT_FILENO)) { - printf("%s%s%s%s\n", boldon, str1, boldoff, str2); - free(str2); - free(str1); - return; - } - free(str2); - } - free(str1); - printf("%s\n", str); - return; - } -EOI - - rm $logFILE - echo $cFunFILE - - [[ -n $setx_status ]] && set -x - } diff --git a/Conf/Ip2_gnu_General.sh b/Conf/Ip2_gnu_General.sh deleted file mode 100644 index b792d80..0000000 --- a/Conf/Ip2_gnu_General.sh +++ /dev/null @@ -1,38 +0,0 @@ -# *** manually set environments (for gnu compiler) of ip2 *** - - : ${USERMODE:=false} # user mode (USERMODE) is closed by default - # set env var USERMODE to "true" to active it - ${USERMODE} && { - echo "Environment set by user" -# On theia/cray, user can load environment - module load gcc/6.2.0 - } - - export CC=gcc - export FC=gfortran - export CPP=cpp - export OMPCC="$CC -fopenmp" - export OMPFC="$FC -fopenmp" - export MPICC=mpigcc - export MPIFC=mpigfortran - - export DEBUG="-g -fbacktrace -O0" - export CFLAGS="-g -O3 -fPIC" - export FFLAGS="-g -fbacktrace -O3 -fconvert=little-endian -fPIC" - export FREEFORM="-ffree-form" - export FPPCPP="-cpp" - export CPPFLAGS="-P -traditional-cpp" - export MPICFLAGS="-g -O3 -fPIC" - export MPIFFLAGS="-g -fbacktrace -O3 -fconvert=little-endian -fPIC" - export MODPATH="-J" - export I4R4="" - export I4R8="-fdefault-real-8" - export I8R8="-fdefault-integer-8 -fdefault-real-8" - - export CPPDEFS="" - export CFLAGSDEFS="-DUNDERSCORE -DLINUX" - export FFLAGSDEFS="" - - export USECC="" - export USEFC="YES" - export DEPS="" diff --git a/Conf/Ip2_intel_Cray.sh b/Conf/Ip2_intel_Cray.sh deleted file mode 100644 index 0ac7c1e..0000000 --- a/Conf/Ip2_intel_Cray.sh +++ /dev/null @@ -1,30 +0,0 @@ -# *** for WCOSS Cray (intel) *** - - export CC=cc - export FC=ftn - export CPP=cpp - export OMPCC="$CC -qopenmp" - export OMPFC="$FC -qopenmp" - export MPICC=mpiicc - export MPIFC=mpiifort - - export DEBUG="-g -traceback -O0" - export CFLAGS="-g -traceback -O3 -axCORE-AVX2 -fPIC" - export FFLAGS="-g -traceback -O3 -axCORE-AVX2 -fp-model strict -ip -convert little_endian -assume byterecl -fPIC" - export FPPCPP="-cpp" - export FREEFORM="-free" - export CPPFLAGS="-P -traditional-cpp" - export MPICFLAGS="-g -traceback -O3 -axCORE-AVX2 -fPIC" - export MPIFFLAGS="-g -traceback -O3 -axCORE-AVX2 -fPIC" - export MODPATH="-module " - export I4R4="-integer-size 32 -real-size 32" - export I4R8="-integer-size 32 -real-size 64" - export I8R8="-integer-size 64 -real-size 64" - - export CPPDEFS="" - export CFLAGSDEFS="-DUNDERSCORE -DLINUX" - export FFLAGSDEFS="" - - export USECC="" - export USEFC="YES" - export DEPS="" diff --git a/Conf/Ip2_intel_Dell.sh b/Conf/Ip2_intel_Dell.sh deleted file mode 100644 index a9752ec..0000000 --- a/Conf/Ip2_intel_Dell.sh +++ /dev/null @@ -1,30 +0,0 @@ -# *** for WCOSS Dell (intel) *** - - export CC=icc - export FC=ifort - export CPP=cpp - export OMPCC="$CC -qopenmp" - export OMPFC="$FC -qopenmp" - export MPICC=mpiicc - export MPIFC=mpiifort - - export DEBUG="-g -traceback -O0" - export CFLAGS="-g -traceback -O3 -fPIC" - export FFLAGS="-g -traceback -O3 -fp-model strict -ip -convert little_endian -assume byterecl -fPIC" - export FPPCPP="-cpp" - export FREEFORM="-free" - export CPPFLAGS="-P -traditional-cpp" - export MPICFLAGS="-g -traceback -O3 -fPIC" - export MPIFFLAGS="-g -traceback -O3 -fPIC" - export MODPATH="-module " - export I4R4="-integer-size 32 -real-size 32" - export I4R8="-integer-size 32 -real-size 64" - export I8R8="-integer-size 64 -real-size 64" - - export CPPDEFS="" - export CFLAGSDEFS="-DUNDERSCORE -DLINUX" - export FFLAGSDEFS="" - - export USECC="" - export USEFC="YES" - export DEPS="" diff --git a/Conf/Ip2_intel_General.sh b/Conf/Ip2_intel_General.sh deleted file mode 100644 index 0a46531..0000000 --- a/Conf/Ip2_intel_General.sh +++ /dev/null @@ -1,38 +0,0 @@ -# *** manually set environments (for intel compiler) of ip2 *** - - : ${USERMODE:=false} # user mode (USERMODE) is closed by default - # set env var USERMODE to "true" to active it - ${USERMODE} && { - echo "Environment set by user" -# On theia/cray, user can load environment - module load intel/18.0.1.163 - } - - export CC=icc - export FC=ifort - export CPP=cpp - export OMPCC="$CC -qopenmp" - export OMPFC="$FC -qopenmp" - export MPICC=mpiicc - export MPIFC=mpiifort - - export DEBUG="-g -traceback -O0" - export CFLAGS="-g -traceback -O3 -fPIC" - export FFLAGS="-g -traceback -O3 -fp-model strict -ip -convert little_endian -assume byterecl -fPIC" - export FPPCPP="-cpp" - export FREEFORM="-free" - export CPPFLAGS="-P -traditional-cpp" - export MPICFLAGS="-g -traceback -O3 -fPIC" - export MPIFFLAGS="-g -traceback -O3 -fPIC" - export MODPATH="-module " - export I4R4="-integer-size 32 -real-size 32" - export I4R8="-integer-size 32 -real-size 64" - export I8R8="-integer-size 64 -real-size 64" - - export CPPDEFS="" - export CFLAGSDEFS="-DUNDERSCORE -DLINUX" - export FFLAGSDEFS="" - - export USECC="" - export USEFC="YES" - export DEPS="" diff --git a/Conf/Ip2_intel_Hera.sh b/Conf/Ip2_intel_Hera.sh deleted file mode 100644 index b64f06d..0000000 --- a/Conf/Ip2_intel_Hera.sh +++ /dev/null @@ -1,34 +0,0 @@ -# *** for Hera (intel) *** - $rinst && { - grep -E "(^|:|/)ip2/" <<< "$LOADEDMODULES" &> /dev/null \ - || module load ip2/1.0.0 - } - - export CC=icc - export FC=ifort - export CPP=cpp - export OMPCC="$CC -qopenmp" - export OMPFC="$FC -qopenmp" - export MPICC=mpiicc - export MPIFC=mpiifort - - export DEBUG="-g -traceback -O0" - export CFLAGS="-g -O3 -ftz -traceback -xHOST -axcore-avx512 -fPIC" - export FFLAGS="-g -O3 -ftz -traceback -fpe0 -xHOST -axcore-avx512 -fp-model strict -ip -convert little_endian -assume byterecl -fPIC" - export FPPCPP="-cpp" - export FREEFORM="-free" - export CPPFLAGS="-P -traditional-cpp" - export MPICFLAGS="-g -O3 -ftz -traceback -xHOST -axcore-avx512 -fPIC" - export MPIFFLAGS="-g -O3 -ftz -traceback -fpe0 -xHOST -axcore-avx512 -fp-model strict -ip -convert little_endian -assume byterecl -fPIC" - export MODPATH="-module " - export I4R4="-integer-size 32 -real-size 32" - export I4R8="-integer-size 32 -real-size 64" - export I8R8="-integer-size 64 -real-size 64" - - export CPPDEFS="" - export CFLAGSDEFS="-DUNDERSCORE -DLINUX" - export FFLAGSDEFS="" - - export USECC="YES" - export USEFC="YES" - export DEPS="" diff --git a/Conf/Ip2_intel_Theia.sh b/Conf/Ip2_intel_Theia.sh deleted file mode 100644 index cae0258..0000000 --- a/Conf/Ip2_intel_Theia.sh +++ /dev/null @@ -1,30 +0,0 @@ -# *** for Theia (intel) *** - - export CC=icc - export FC=ifort - export CPP=cpp - export OMPCC="$CC -qopenmp" - export OMPFC="$FC -qopenmp" - export MPICC=mpiicc - export MPIFC=mpiifort - - export DEBUG="-g -traceback -O0" - export CFLAGS="-g -O3 -ftz -traceback -xHOST -axcore-avx512 -fPIC" - export FFLAGS="-g -O3 -ftz -traceback -fpe0 -xHOST -axcore-avx512 -fp-model strict -ip -convert little_endian -assume byterecl -fPIC" - export FPPCPP="-cpp" - export FREEFORM="-free" - export CPPFLAGS="-P -traditional-cpp" - export MPICFLAGS="-g -O3 -ftz -traceback -xHOST -axcore-avx512 -fPIC" - export MPIFFLAGS="-g -O3 -ftz -traceback -fpe0 -xHOST -axcore-avx512 -fp-model strict -ip -convert little_endian -assume byterecl -fPIC" - export MODPATH="-module " - export I4R4="-integer-size 32 -real-size 32" - export I4R8="-integer-size 32 -real-size 64" - export I8R8="-integer-size 64 -real-size 64" - - export CPPDEFS="" - export CFLAGSDEFS="-DUNDERSCORE -DLINUX" - export FFLAGSDEFS="" - - export USECC="" - export USEFC="YES" - export DEPS="" diff --git a/Conf/Ip2_intel_Wcoss.sh b/Conf/Ip2_intel_Wcoss.sh deleted file mode 100644 index df3d6a9..0000000 --- a/Conf/Ip2_intel_Wcoss.sh +++ /dev/null @@ -1,30 +0,0 @@ -# *** for WCOSS IBM phase1 (intel) *** - - export CC=icc - export FC=ifort - export CPP=cpp - export OMPCC="$CC -qopenmp" - export OMPFC="$FC -qopenmp" - export MPICC=mpiicc - export MPIFC=mpiifort - - export DEBUG="-g -traceback -O0" - export CFLAGS="-g -traceback -O3 -fPIC" - export FFLAGS="-g -traceback -O3 -fp-model strict -ip -convert little_endian -assume byterecl -fPIC" - export FPPCPP="-cpp" - export FREEFORM="-free" - export CPPFLAGS="-P -traditional-cpp" - export MPICFLAGS="-g -traceback -O3 -fPIC" - export MPIFFLAGS="-g -traceback -O3 -fPIC" - export MODPATH="-module " - export I4R4="-integer-size 32 -real-size 32" - export I4R8="-integer-size 32 -real-size 64" - export I8R8="-integer-size 64 -real-size 64" - - export CPPDEFS="" - export CFLAGSDEFS="-DUNDERSCORE -DLINUX" - export FFLAGSDEFS="" - - export USECC="" - export USEFC="YES" - export DEPS="" diff --git a/Conf/Reset_version.sh b/Conf/Reset_version.sh deleted file mode 100644 index 6d8bff5..0000000 --- a/Conf/Reset_version.sh +++ /dev/null @@ -1,18 +0,0 @@ - reset_version() { - local setx_status=${-//[^x]/} - [[ -n $setx_status ]] && set +x - (( $# == 2 )) && { - local var=$1 - local ver_name=${var^^}_VER - local old_ver=${!ver_name} - local new_ver=$2 - } || { - local var=$1 - local old_ver=$2 - local new_ver=$3 - } - for vline in "$(env | grep ${var^^})"; do - eval ${vline//${old_ver}/${new_ver}} - done - [[ -n $setx_status ]] && set -x - } diff --git a/README.iplib2 b/README.md similarity index 100% rename from README.iplib2 rename to README.md diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..9084fa2 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +1.1.0 diff --git a/build_ip2.sh b/build_ip2.sh deleted file mode 100755 index 055769c..0000000 --- a/build_ip2.sh +++ /dev/null @@ -1,164 +0,0 @@ -#!/bin/bash - - : ${THISDIR:=$(dirname $(readlink -f -n ${BASH_SOURCE[0]}))} - CDIR=$PWD; cd $THISDIR - - source ./Conf/Analyse_args.sh - source ./Conf/Collect_info.sh - source ./Conf/Gen_cfunction.sh - source ./Conf/Reset_version.sh - - if [[ ${sys} == "intel_general" ]]; then - sys6=${sys:6} - source ./Conf/Ip2_${sys:0:5}_${sys6^}.sh - rinst=false - elif [[ ${sys} == "gnu_general" ]]; then - sys4=${sys:4} - source ./Conf/Ip2_${sys:0:3}_${sys4^}.sh - rinst=false - else - source ./Conf/Ip2_intel_${sys^}.sh - fi - $CC --version &> /dev/null || { - echo "??? IP2: compilers not set." >&2 - exit 1 - } - [[ -z ${IP2_VER+x} || -z ${IP2_LIB4+x} ]] && { - [[ -z ${libver+x} || -z ${libver} ]] && { - echo "??? IP2: \"libver\" not set." >&2 - exit - } - IP2_INC4=${libver}_4 - IP2_INC8=${libver}_8 - IP2_INCd=${libver}_d - IP2_LIB4=lib${libver}_4.a - IP2_LIB8=lib${libver}_8.a - IP2_LIBd=lib${libver}_d.a - IP2_VER=v${libver##*_v} - } - -set -x - ip2Lib4=$(basename $IP2_LIB4) - ip2Lib8=$(basename $IP2_LIB8) - ip2Libd=$(basename $IP2_LIBd) - ip2Inc4=$(basename $IP2_INC4) - ip2Inc8=$(basename $IP2_INC8) - ip2Incd=$(basename $IP2_INCd) - -################# - cd src -################# - -#------------------------------------------------------------------- -# Start building libraries -# - echo - echo " ... build (i4/r4) ip2 library ..." - echo - make clean LIB=$ip2Lib4 MOD=$ip2Inc4 - mkdir -p $ip2Inc4 - FFLAGS4="$I4R4 $FFLAGS ${MODPATH}$ip2Inc4" - collect_info ip2 4 OneLine4 LibInfo4 - ip2Info4=ip2_info_and_log4.txt - $debg && make debug CPPDEFS="-DLSIZE=4" FFLAGS="$FFLAGS4" LIB=$ip2Lib4 \ - &> $ip2Info4 \ - || make build CPPDEFS="-DLSIZE=4" FFLAGS="$FFLAGS4" LIB=$ip2Lib4 \ - &> $ip2Info4 - make message MSGSRC="$(gen_cfunction $ip2Info4 OneLine4 LibInfo4)" LIB=$ip2Lib4 - - echo - echo " ... build (i8/r8) ip2 library ..." - echo - make clean LIB=$ip2Lib8 MOD=$ip2Inc8 - mkdir -p $ip2Inc8 - FFLAGS8="$I8R8 $FFLAGS ${MODPATH}$ip2Inc8" - collect_info ip2 8 OneLine8 LibInfo8 - ip2Info8=ip2_info_and_log8.txt - $debg && make debug CPPDEFS="-DLSIZE=8" FFLAGS="$FFLAGS8" LIB=$ip2Lib8 \ - &> $ip2Info8 \ - || make build CPPDEFS="-DLSIZE=8" FFLAGS="$FFLAGS8" LIB=$ip2Lib8 \ - &> $ip2Info8 - make message MSGSRC="$(gen_cfunction $ip2Info8 OneLine8 LibInfo8)" LIB=$ip2Lib8 - - echo - echo " ... build (i4/r8) ip2 library ..." - echo - make clean LIB=$ip2Libd MOD=$ip2Incd - mkdir -p $ip2Incd - FFLAGSd="$I4R8 $FFLAGS ${MODPATH}$ip2Incd" - collect_info ip2 d OneLined LibInfod - ip2Infod=ip2_info_and_logd.txt - $debg && make debug CPPDEFS="-DLSIZE=D" FFLAGS="$FFLAGSd" LIB=$ip2Libd \ - &> $ip2Infod \ - || make build CPPDEFS="-DLSIZE=D" FFLAGS="$FFLAGSd" LIB=$ip2Libd \ - &> $ip2Infod - make message MSGSRC="$(gen_cfunction $ip2Infod OneLined LibInfod)" LIB=$ip2Libd - - $inst && { -# -# Install libraries and source files -# - $local && { - instloc=.. - LIB_DIR=$instloc/lib - INCP_DIR=$instloc/include - [ -d $LIB_DIR ] || { mkdir -p $LIB_DIR; } - [ -d $INCP_DIR ] || { mkdir -p $INCP_DIR; } - LIB_DIR4=$LIB_DIR - LIB_DIR8=$LIB_DIR - LIB_DIRd=$LIB_DIR - INCP_DIR4=$INCP_DIR - INCP_DIR8=$INCP_DIR - INCP_DIRd=$INCP_DIR - SRC_DIR= - } || { - $rinst && { - LIB_DIR4=$(dirname ${IP2_LIB4}) - LIB_DIR8=$(dirname ${IP2_LIB8}) - LIB_DIRd=$(dirname ${IP2_LIBd}) - INCP_DIR4=$(dirname $IP2_INC4) - INCP_DIR8=$(dirname $IP2_INC8) - INCP_DIRd=$(dirname $IP2_INCd) - [ -d $IP2_INC4 ] && { rm -rf $IP2_INC4; } \ - || { mkdir -p $INCP_DIR4; } - [ -d $IP2_INC8 ] && { rm -rf $IP2_INC8; } \ - || { mkdir -p $INCP_DIR8; } - [ -d $IP2_INCd ] && { rm -rf $IP2_INCd; } \ - || { mkdir -p $INCP_DIRd; } - SRC_DIR=$IP2_SRC - } || { - LIB_DIR=$instloc/lib - LIB_DIR4=$LIB_DIR - LIB_DIR8=$LIB_DIR - LIB_DIRd=$LIB_DIR - INCP_DIR=$instloc/include - INCP_DIR4=$INCP_DIR - INCP_DIR8=$INCP_DIR - INCP_DIRd=$INCP_DIR - IP2_INC4=$INCP_DIR4/$IP2_INC4 - IP2_INC8=$INCP_DIR8/$IP2_INC8 - IP2_INCd=$INCP_DIRd/$IP2_INCd - [ -d $IP2_INC4 ] && { rm -rf $IP2_INC4; } \ - || { mkdir -p $INCP_DIR4; } - [ -d $IP2_INC8 ] && { rm -rf $IP2_INC8; } \ - || { mkdir -p $INCP_DIR8; } - [ -d $IP2_INCd ] && { rm -rf $IP2_INCd; } \ - || { mkdir -p $INCP_DIRd; } - SRC_DIR=$instloc/src/${libver} - [[ $instloc == .. ]] && SRC_DIR= - } - [ -d $LIB_DIR4 ] || mkdir -p $LIB_DIR4 - [ -d $LIB_DIR8 ] || mkdir -p $LIB_DIR8 - [ -d $LIB_DIRd ] || mkdir -p $LIB_DIRd - [ -z $SRC_DIR ] || { [ -d $SRC_DIR ] || mkdir -p $SRC_DIR; } - } - - make clean LIB= - make install LIB=$ip2Lib4 MOD=$ip2Inc4 \ - LIB_DIR=$LIB_DIR4 INC_DIR=$INCP_DIR4 SRC_DIR= - make install LIB=$ip2Lib8 MOD=$ip2Inc8 \ - LIB_DIR=$LIB_DIR8 INC_DIR=$INCP_DIR8 SRC_DIR= - make install LIB=$ip2Libd MOD=$ip2Incd \ - LIB_DIR=$LIB_DIRd INC_DIR=$INCP_DIRd SRC_DIR=$SRC_DIR - } - diff --git a/cmake/PackageConfig.cmake.in b/cmake/PackageConfig.cmake.in new file mode 100644 index 0000000..2e1f51e --- /dev/null +++ b/cmake/PackageConfig.cmake.in @@ -0,0 +1,24 @@ +@PACKAGE_INIT@ + +# * @PROJECT_NAME@::@PROJECT_NAME@_4 - real32 library target +# * @PROJECT_NAME@::@PROJECT_NAME@_8 - real64 library target +# * @PROJECT_NAME@::@PROJECT_NAME@_d - mixed precision library target + +# Include targets file. This will create IMPORTED target @PROJECT_NAME@ +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake") + +include(CMakeFindDependencyMacro) + +# ON/OFF implies ip was compiled with/without OPENMP +if(@OPENMP@) + find_dependency(OpenMP) +endif() + +find_dependency(sp CONFIG) + +get_target_property(@PROJECT_NAME@_BUILD_TYPES @PROJECT_NAME@::@PROJECT_NAME@_4 IMPORTED_CONFIGURATIONS) + +check_required_components("@PROJECT_NAME@") + +get_target_property(location @PROJECT_NAME@::@PROJECT_NAME@_4 LOCATION) +message(STATUS "Found @PROJECT_NAME@: ${location} (found version \"@PROJECT_VERSION@\")") diff --git a/reg_tests/lib/libip2_test_4.a b/reg_tests/lib/libip2_test_4.a deleted file mode 120000 index 8a6ca26..0000000 --- a/reg_tests/lib/libip2_test_4.a +++ /dev/null @@ -1 +0,0 @@ -../../ip2/v1.0.0/libip2_v1.0.0_4.a \ No newline at end of file diff --git a/reg_tests/lib/libip2_test_8.a b/reg_tests/lib/libip2_test_8.a deleted file mode 120000 index 9dade57..0000000 --- a/reg_tests/lib/libip2_test_8.a +++ /dev/null @@ -1 +0,0 @@ -../../ip2/v1.0.0/libip2_v1.0.0_8.a \ No newline at end of file diff --git a/reg_tests/lib/libip2_test_d.a b/reg_tests/lib/libip2_test_d.a deleted file mode 120000 index 78c8be9..0000000 --- a/reg_tests/lib/libip2_test_d.a +++ /dev/null @@ -1 +0,0 @@ -../../ip2/v1.0.0/libip2_v1.0.0_d.a \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..c490dcd --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,79 @@ +include("list_of_files.cmake") + +if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$") + set(CMAKE_Fortran_FLAGS "-g -auto -convert big_endian -assume byterecl -fp-model strict -fpp") + set(fortran_d_flags "-r8") + set(fortran_8_flags "-i8 -r8") +elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$") + set(CMAKE_Fortran_FLAGS "-g -fconvert=big-endian -cpp") + set(CMAKE_Fortran_FLAGS_DEBUG "-ggdb -Wall") + set(fortran_d_flags "-fdefault-real-8") + set(fortran_8_flags "-fdefault-integer-8 -fdefault-real-8") +endif() + +set(kinds "4" "8" "d") +foreach(kind ${kinds}) + set(lib_name ${PROJECT_NAME}_${kind}) + set(module_dir "${CMAKE_CURRENT_BINARY_DIR}/include_${kind}") + + # Compiled with preprocessor definition LSIZE=D, not d + string(TOUPPER ${kind} kind_definition) + + set(BUILD_FLAGS "${fortran_${kind}_flags}") + + add_library(${lib_name} STATIC ${fortran_src}) + add_library(${PROJECT_NAME}::${lib_name} ALIAS ${lib_name}) + + target_compile_definitions(${lib_name} PRIVATE "LSIZE=${kind_definition}") + set_target_properties(${lib_name} PROPERTIES COMPILE_FLAGS "${BUILD_FLAGS}") + set_target_properties(${lib_name} PROPERTIES Fortran_MODULE_DIRECTORY "${module_dir}") + + if(OpenMP_Fortran_FOUND) + target_link_libraries(${lib_name} PUBLIC OpenMP::OpenMP_Fortran) + endif() + + target_link_libraries(${lib_name} PUBLIC sp::sp_${kind}) + + target_include_directories(${lib_name} + PUBLIC $ + $) + + list(APPEND LIB_TARGETS ${lib_name}) + + install(DIRECTORY ${module_dir} DESTINATION ${CMAKE_INSTALL_PREFIX}) + install(FILES ip2lib_${kind}.h DESTINATION ${CMAKE_INSTALL_PREFIX}/include_${kind} RENAME ip2lib.h) +endforeach() + +install( + TARGETS ${LIB_TARGETS} + EXPORT ${PROJECT_NAME}Exports + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib) + +### Package config +include(CMakePackageConfigHelpers) +set(CONFIG_INSTALL_DESTINATION lib/cmake/${PROJECT_NAME}) + +export(EXPORT ${PROJECT_NAME}Exports + NAMESPACE ${PROJECT_NAME}:: + FILE ${PROJECT_NAME}-targets.cmake) + +configure_package_config_file( + ${CMAKE_SOURCE_DIR}/cmake/PackageConfig.cmake.in ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-config.cmake + INSTALL_DESTINATION ${CONFIG_INSTALL_DESTINATION}) +install(FILES ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-config.cmake + DESTINATION ${CONFIG_INSTALL_DESTINATION}) + +write_basic_package_version_file( + ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion) +install(FILES ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake + DESTINATION ${CONFIG_INSTALL_DESTINATION}) + +install(EXPORT ${PROJECT_NAME}Exports + NAMESPACE ${PROJECT_NAME}:: + FILE ${PROJECT_NAME}-targets.cmake + DESTINATION ${CONFIG_INSTALL_DESTINATION}) + diff --git a/src/Makefile b/src/Makefile deleted file mode 100644 index 2c32f38..0000000 --- a/src/Makefile +++ /dev/null @@ -1,51 +0,0 @@ -SHELL=/bin/sh -# sources, headers, objects, library and etc. -SRCS_m = $(filter-out gdswzd_mod.f90, $(wildcard gdswzd_*_mod.f90)) \ - gdswzd_mod.f90 -SRCS_f = $(SRCS_m) $(filter-out $(SRCS_m), $(wildcard *.f90)) -SRCS = $(SRCS_f) gdswzd_c.F90 -OBJS = $(patsubst %.f90, %.o, $(SRCS_f)) gdswzd_c.o - -all: build - -build: $(LIB) - -$(LIB): $(OBJS) - $(AR) $(ARFLAGS) $@ $^ - -debug: dbg_build - -dbg_build: override CFLAGS += $(DEBUG) -dbg_build: override FFLAGS += $(DEBUG) -dbg_build: $(LIB) - -%.o: %.f - $(OMPFC) -c $(FFLAGS) $(FFLAGSDEFS) $< - -%.o: %.f90 - $(OMPFC) -c $(FREEFORM) $(FFLAGS) $(FFLAGSDEFS) $< - -%.f90: %.F90 - $(CPP) $(CPPFLAGS) $(CPPDEFS) $< $@ - -message: $(MSGSRC) - $(CC) -c $(MSGSRC) - $(AR) $(ARFLAGS) $(LIB) $(patsubst %.c, %.o, $(MSGSRC)) - $(RM) $(MSGSRC) $(patsubst %.c, %.o, $(MSGSRC)) - -install: - [[ -z "$(LIB)" || -z "$(LIB_DIR)" ]] || mv $(LIB) $(LIB_DIR) - [[ -z "$(MOD)" || -z "$(INC_DIR)" ]] || mv $(MOD) $(INC_DIR) - [[ -z "$(SRC_DIR)" ]] || cp ./* $(SRC_DIR) - -test: - @echo "*** unit test unavailable currently ***" - -clean: - $(RM) $(OBJS) $(LIB) - [[ -z "$(MOD)" ]] || $(RM) -r $(MOD) - -.SUFFIXES: .F90 .f90 .mod .o .a - -# Specify targets that do not generate filesystem objects -.PHONY: all build install debug dbg_build message test clean diff --git a/src/iplib_4.h b/src/ip2lib_4.h similarity index 100% rename from src/iplib_4.h rename to src/ip2lib_4.h diff --git a/src/iplib_8.h b/src/ip2lib_8.h similarity index 100% rename from src/iplib_8.h rename to src/ip2lib_8.h diff --git a/src/iplib_d.h b/src/ip2lib_d.h similarity index 100% rename from src/iplib_d.h rename to src/ip2lib_d.h diff --git a/src/list_of_files.cmake b/src/list_of_files.cmake new file mode 100644 index 0000000..b0bd450 --- /dev/null +++ b/src/list_of_files.cmake @@ -0,0 +1,38 @@ +set(fortran_src + earth_radius.f90 + gdswzd_c.F90 + gdswzd_equid_cylind_mod.f90 + gdswzd_gaussian_mod.f90 + gdswzd_lambert_conf_mod.f90 + gdswzd_mercator_mod.f90 + gdswzd_mod.f90 + gdswzd_polar_stereo_mod.f90 + gdswzd_rot_equid_cylind_egrid_mod.f90 + gdswzd_rot_equid_cylind_mod.f90 + ijkgds0.f90 + ijkgds1.f90 + ip2lib_4.h + ip2lib_8.h + ip2lib_d.h + ipolates.f90 + ipolatev.f90 + ipxetas.f90 + ipxwafs.f90 + ipxwafs2.f90 + ipxwafs3.f90 + movect.f90 + polates0.f90 + polates1.f90 + polates2.f90 + polates3.f90 + polates4.f90 + polates6.f90 + polatev0.f90 + polatev1.f90 + polatev2.f90 + polatev3.f90 + polatev4.f90 + polatev6.f90 + polfixs.f90 + polfixv.f90 + ) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 0000000..7b181a8 --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,12 @@ +#list(APPEND CMAKE_CTEST_ARGUMENTS "--output-on-failure") + +execute_process(COMMAND cmake -E create_symlink + "${CMAKE_SOURCE_DIR}/tests/data" + "${CMAKE_CURRENT_BINARY_DIR}/data" # New name + ) + + +add_pfunit_ctest (ip2_test + TEST_SOURCES test_mod.pf + LINK_LIBRARIES ip2::ip2_d sp::sp_d +) diff --git a/tests/README.md b/tests/README.md new file mode 100644 index 0000000..a378816 --- /dev/null +++ b/tests/README.md @@ -0,0 +1,204 @@ + +Unit test for the NCEP IPOLATES library (IPLIB). + +Please refer to README.md in the main directory for how to run tests using PFUnit. + +This file is kept temporarily for historical purposes until all unit tests are converted to use pfunit. + +## ABSTRACT: +--------- + +This test invokes IPOLATES to interpolate scalar and +vector data to several grids of various map projections +using all IPOLATES interpolation options. The output +is compared to baseline data and a summary of differences is +sent to standard output. + + +## HOW THE TEST WORKS: +------------------- + +There are two separate programs to test the scalar and vector interpolation. +The scalar program calls routine 'ipolates' to interpolate a global field +of snow albedo to several grids of various map projections and +using all IPOLATES interpolation options. Likewise, the vector program +calls routine 'ipolatev' to interpolate a global field of 500mb u/w wind. +The specific tests are: + + - grid 3 (global one-deg lat/lon) using bilinear (IP option "0") + - grid 8 (mercator) using bicubic (IP option "1") + - grid 127 (gaussian lat/lon) using neighbor (IP option "2") + - grid 203 (rotated lat/lon "E") using budget (IP option "3") + - grid 205 (rotated lat/lon "B") using spectral (IP option "4") + - grid 212 (polar stereographic) using neighbor-budget (IP option "6") + - grid 218 (lambert conformal) using bilinear (IP option "0") + +Some grid numbers refer to an NCEP grib 1 standard grid. Others +refer to the grib 1 data representation type. + +The output from each call to ipolates and ipolatev is compared to its +baseline counterpart in the ./baseline data directory. This baseline +data was created using the Intel Fortran compiler. Differences from +the baseline data are computed and sent to standard output. For this +unit test to pass the differences should be "small". + + +## DIRECTORY LAYOUT: +----------------- + +./sorc - Contains the files and scripts needed to build the + unit test programs. And the programs themselves. + +./sorc/scalar - + Contains a Fortran program to call routine 'ipolates' + to interpolate a global field of albedo data to + several grids and using all interpolation options. + +./sorc/vector - + Contains a Fortran program to call routine 'ipolatev' + to interpolate a global field of u/v wind data to + several grids and using all interpolation options. + +./exec - Contains the unit test executables. There is one executable + for the single ("4"), double ("8") and mixed ("d") precision + versions of the IPOLATES library: + + scalar_4.exe scalar_8.exe scalar_d.exe + vector_4.exe vector_8.exe vector_d.exe + +./work - The working directory for program execution. + +./lib - The location of the IPOLATES libraries and module files as + expected by the unit test programs. + +./scripts - Contains scripts to run this unit test. + +./input_data - Contains the input scalar and vector data. The + data are in binary little endian format: + + ./scalar/global_snoalb.bin (global snow albedo) + ./vector/global_uv_wind.bin (global 500mb u/v wind) + +./baseline_data - Contains the baseline set of scalar and vector data + interpolated to each target grid. Binary, little endian + format. Output from each call to routine ipolates and + ipolatev is compared to its baseline counterpart. There + are sub-directories for the scalar and vector data. + And under these sub-directories, there are sub-directories + for the single (4_byte_bin) and mixed/double (8_byte_bin) + versions of the IPOLATES library. The file names + contain the grid number and IPOLATES interpolation + option (defined below); i.e.: + + grid${gridnum}.opt${ip_option}.bin_4/8 + + Grads control files to view each file are located in the + ./grads subdirectory. These files do not account + for map projection. Rather, they display the data + as a 2-D field with no interpolation. So when + viewing, do a "set mproj off" during your grads session. + + + +## HOW TO RUN THE TEST: +-------------------- + +1) Build the IPOLATES library. Go to $root and read the +README.build file for details. + + +2) Ensure the ./lib directory contains (or links to) the IPOLATES libraries and +its module files. The ./lib directory already contains links that point to the +libraries and module files as they would exist when using the "nco" install +option from step (1). I.e: + + module file directories: + incmod_4 -> $root/ip/vX.Y.Z/include/ip_vX.Y.Z_4 (single precision) + incmod_d -> $root/ip/vX.Y.Z/include/ip_vX.Y.Z_d (mixed precision) + incmod_8 -> $root/ip/vX.Y.Z/include/ip_vX.Y.Z_8 (double precistion) + + libraries: + libip_4.a -> $root/ip/vX.Y.Z/libip_vX.Y.Z_4.a (single precision) + libip_d.a -> $root/ip/vX.Y.Z/libip_vX.Y.Z_d.a (mixed precision) + libip_8.a -> $root/ip/vX.Y.Z/libip_vX.Y.Z_8.a (double precistion) + +So if that is how IPOLATES was built in step (1), there is +nothing more to do. + +However, if you want to build with another version of the library, +or if you built them in step (1) using the "gnu" or "nco_cray" install option, +you will need to adjust these links. Example: Suppose you want to +test with the OPS version of IPOLATES on WCOSS Phase 2. You would set the +links as follows: + + incmod_4 -> /nwprod2/lib/ip/vX.Y.Z/include/ip_vX.Y.Z_4 + incmod_d -> /nwprod2/lib/ip/vX.Y.Z/include/ip_vX.Y.Z_d + incmod_8 -> /nwprod2/lib/ip/vX.Y.Z/include/ip_vX.Y.Z_8 + + libip_4.a -> /nwprod2/lib/ip/vX.Y.Z/libip_vX.Y.Z_4.a + libip_d.a -> /nwprod2/lib/ip/vX.Y.Z/libip_vX.Y.Z_d.a + libip_8.a -> /nwprod2/lib/ip/vX.Y.Z/libip_vX.Y.Z_8.a + + +3) Build the "scalar" and "vector" unit test programs +by running the "make_unit_test.ksh" build script. (Use the +"make_unit_test_wcoss-cray.ksh" build script on WCOSS-Cray.) + +The IPOLATES library is dependant on the NCEP SP +(spectral) library (SPLIB). Intel compiled versions of SPLIB +exist on Theia and WCOSS Phase 1/2. When running "make_unit_test.ksh" +on these machines, these SP libraries are automatically located +by module loads and stored in these environment variables: + + SP_LIB4 (single precision) + SP_LIBd (mixed precision) + SP_LIB8 (double precistion) + +On WCOSS-Cray, Intel and Cray compiled versions of SPLIB exist. +And the "make_unit_test_wcoss-cray.ksh" script will locate +them by module loads. + +If you are testing on a machine other than WCOSS or Theia, +or you have compiled IPOLATES with a compiler other than Intel or Cray, +you will need to locate (or build) SPLIB and set these environment +varibles by editing the build script, or by exporting these +variables on the command line before invoking it. +Example (when using bash): + + $ export SP_LIB4=$directory/libsp_4.a + +Once the SP libraries have been located, run "make_unit_test.ksh" +(or make_unit_test_wcoss-cray.ksh) from the command line. The script +takes one argument: the "config-setup" file that was used to compile +IPOLATES. So, if you built IPOLATES with the Intel-optimized option, +you would invoke as follows: + + $ make_unit_test.ksh ifort.setup + +On WCOSS-Cray, you would do the following: + + $ make_unit_test_wcoss-cray.ksh ifort.setup + + +4) Run the unit test. Go to ./scripts. To run interactively, type: + + $ run_unit_test.ksh + +You may want to pipe the output to a log fle. Check output for any +"large" differences between the computed and baseline data. + +To run "run_unit_test.ksh" on the WCOSS or Theia compute nodes, +invoke these driver scripts as follows: + + $ run_wcoss.ksh (WCOSS Phase 1/2) + $ run_wcoss-cray.ksh (WCOSS-Cray) + $ run_wcoss-dell.ksh (WCOSS-Phase 3/Dell) + $ sbatch run_theia.ksh (Theia) + +In this case, output is sent to "unit_test.log". + + +## QUESTIONS: +---------- + +Contact: george.gayno@noaa.gov diff --git a/unit_test/baseline_data/scalar/4_byte_bin/grid127.opt2.bin_4 b/tests/data/baseline_data/scalar/4_byte_bin/grid127.opt2.bin_4 similarity index 100% rename from unit_test/baseline_data/scalar/4_byte_bin/grid127.opt2.bin_4 rename to tests/data/baseline_data/scalar/4_byte_bin/grid127.opt2.bin_4 diff --git a/unit_test/baseline_data/scalar/4_byte_bin/grid203.opt3.bin_4 b/tests/data/baseline_data/scalar/4_byte_bin/grid203.opt3.bin_4 similarity index 100% rename from unit_test/baseline_data/scalar/4_byte_bin/grid203.opt3.bin_4 rename to tests/data/baseline_data/scalar/4_byte_bin/grid203.opt3.bin_4 diff --git a/unit_test/baseline_data/scalar/4_byte_bin/grid205.opt4.bin_4 b/tests/data/baseline_data/scalar/4_byte_bin/grid205.opt4.bin_4 similarity index 100% rename from unit_test/baseline_data/scalar/4_byte_bin/grid205.opt4.bin_4 rename to tests/data/baseline_data/scalar/4_byte_bin/grid205.opt4.bin_4 diff --git a/unit_test/baseline_data/scalar/4_byte_bin/grid212.opt6.bin_4 b/tests/data/baseline_data/scalar/4_byte_bin/grid212.opt6.bin_4 similarity index 100% rename from unit_test/baseline_data/scalar/4_byte_bin/grid212.opt6.bin_4 rename to tests/data/baseline_data/scalar/4_byte_bin/grid212.opt6.bin_4 diff --git a/unit_test/baseline_data/scalar/4_byte_bin/grid218.opt0.bin_4 b/tests/data/baseline_data/scalar/4_byte_bin/grid218.opt0.bin_4 similarity index 100% rename from unit_test/baseline_data/scalar/4_byte_bin/grid218.opt0.bin_4 rename to tests/data/baseline_data/scalar/4_byte_bin/grid218.opt0.bin_4 diff --git a/unit_test/baseline_data/scalar/4_byte_bin/grid3.opt0.bin_4 b/tests/data/baseline_data/scalar/4_byte_bin/grid3.opt0.bin_4 similarity index 100% rename from unit_test/baseline_data/scalar/4_byte_bin/grid3.opt0.bin_4 rename to tests/data/baseline_data/scalar/4_byte_bin/grid3.opt0.bin_4 diff --git a/unit_test/baseline_data/scalar/4_byte_bin/grid8.opt1.bin_4 b/tests/data/baseline_data/scalar/4_byte_bin/grid8.opt1.bin_4 similarity index 100% rename from unit_test/baseline_data/scalar/4_byte_bin/grid8.opt1.bin_4 rename to tests/data/baseline_data/scalar/4_byte_bin/grid8.opt1.bin_4 diff --git a/unit_test/baseline_data/scalar/8_byte_bin/grid127.opt2.bin_8 b/tests/data/baseline_data/scalar/8_byte_bin/grid127.opt2.bin_8 similarity index 100% rename from unit_test/baseline_data/scalar/8_byte_bin/grid127.opt2.bin_8 rename to tests/data/baseline_data/scalar/8_byte_bin/grid127.opt2.bin_8 diff --git a/unit_test/baseline_data/scalar/8_byte_bin/grid203.opt3.bin_8 b/tests/data/baseline_data/scalar/8_byte_bin/grid203.opt3.bin_8 similarity index 100% rename from unit_test/baseline_data/scalar/8_byte_bin/grid203.opt3.bin_8 rename to tests/data/baseline_data/scalar/8_byte_bin/grid203.opt3.bin_8 diff --git a/unit_test/baseline_data/scalar/8_byte_bin/grid205.opt4.bin_8 b/tests/data/baseline_data/scalar/8_byte_bin/grid205.opt4.bin_8 similarity index 100% rename from unit_test/baseline_data/scalar/8_byte_bin/grid205.opt4.bin_8 rename to tests/data/baseline_data/scalar/8_byte_bin/grid205.opt4.bin_8 diff --git a/unit_test/baseline_data/scalar/8_byte_bin/grid212.opt6.bin_8 b/tests/data/baseline_data/scalar/8_byte_bin/grid212.opt6.bin_8 similarity index 100% rename from unit_test/baseline_data/scalar/8_byte_bin/grid212.opt6.bin_8 rename to tests/data/baseline_data/scalar/8_byte_bin/grid212.opt6.bin_8 diff --git a/unit_test/baseline_data/scalar/8_byte_bin/grid218.opt0.bin_8 b/tests/data/baseline_data/scalar/8_byte_bin/grid218.opt0.bin_8 similarity index 100% rename from unit_test/baseline_data/scalar/8_byte_bin/grid218.opt0.bin_8 rename to tests/data/baseline_data/scalar/8_byte_bin/grid218.opt0.bin_8 diff --git a/unit_test/baseline_data/scalar/8_byte_bin/grid3.opt0.bin_8 b/tests/data/baseline_data/scalar/8_byte_bin/grid3.opt0.bin_8 similarity index 100% rename from unit_test/baseline_data/scalar/8_byte_bin/grid3.opt0.bin_8 rename to tests/data/baseline_data/scalar/8_byte_bin/grid3.opt0.bin_8 diff --git a/unit_test/baseline_data/scalar/8_byte_bin/grid8.opt1.bin_8 b/tests/data/baseline_data/scalar/8_byte_bin/grid8.opt1.bin_8 similarity index 100% rename from unit_test/baseline_data/scalar/8_byte_bin/grid8.opt1.bin_8 rename to tests/data/baseline_data/scalar/8_byte_bin/grid8.opt1.bin_8 diff --git a/unit_test/baseline_data/scalar/grads/grid003.ctl b/tests/data/baseline_data/scalar/grads/grid003.ctl similarity index 100% rename from unit_test/baseline_data/scalar/grads/grid003.ctl rename to tests/data/baseline_data/scalar/grads/grid003.ctl diff --git a/unit_test/baseline_data/scalar/grads/grid008.ctl b/tests/data/baseline_data/scalar/grads/grid008.ctl similarity index 100% rename from unit_test/baseline_data/scalar/grads/grid008.ctl rename to tests/data/baseline_data/scalar/grads/grid008.ctl diff --git a/unit_test/baseline_data/scalar/grads/grid127.ctl b/tests/data/baseline_data/scalar/grads/grid127.ctl similarity index 100% rename from unit_test/baseline_data/scalar/grads/grid127.ctl rename to tests/data/baseline_data/scalar/grads/grid127.ctl diff --git a/unit_test/baseline_data/scalar/grads/grid203.ctl b/tests/data/baseline_data/scalar/grads/grid203.ctl similarity index 100% rename from unit_test/baseline_data/scalar/grads/grid203.ctl rename to tests/data/baseline_data/scalar/grads/grid203.ctl diff --git a/unit_test/baseline_data/scalar/grads/grid205.ctl b/tests/data/baseline_data/scalar/grads/grid205.ctl similarity index 100% rename from unit_test/baseline_data/scalar/grads/grid205.ctl rename to tests/data/baseline_data/scalar/grads/grid205.ctl diff --git a/unit_test/baseline_data/scalar/grads/grid212.ctl b/tests/data/baseline_data/scalar/grads/grid212.ctl similarity index 100% rename from unit_test/baseline_data/scalar/grads/grid212.ctl rename to tests/data/baseline_data/scalar/grads/grid212.ctl diff --git a/unit_test/baseline_data/scalar/grads/grid218.ctl b/tests/data/baseline_data/scalar/grads/grid218.ctl similarity index 100% rename from unit_test/baseline_data/scalar/grads/grid218.ctl rename to tests/data/baseline_data/scalar/grads/grid218.ctl diff --git a/unit_test/baseline_data/vector/4_byte_bin/grid127.opt2.bin_4 b/tests/data/baseline_data/vector/4_byte_bin/grid127.opt2.bin_4 similarity index 100% rename from unit_test/baseline_data/vector/4_byte_bin/grid127.opt2.bin_4 rename to tests/data/baseline_data/vector/4_byte_bin/grid127.opt2.bin_4 diff --git a/unit_test/baseline_data/vector/4_byte_bin/grid203.opt3.bin_4 b/tests/data/baseline_data/vector/4_byte_bin/grid203.opt3.bin_4 similarity index 100% rename from unit_test/baseline_data/vector/4_byte_bin/grid203.opt3.bin_4 rename to tests/data/baseline_data/vector/4_byte_bin/grid203.opt3.bin_4 diff --git a/unit_test/baseline_data/vector/4_byte_bin/grid205.opt4.bin_4 b/tests/data/baseline_data/vector/4_byte_bin/grid205.opt4.bin_4 similarity index 100% rename from unit_test/baseline_data/vector/4_byte_bin/grid205.opt4.bin_4 rename to tests/data/baseline_data/vector/4_byte_bin/grid205.opt4.bin_4 diff --git a/unit_test/baseline_data/vector/4_byte_bin/grid212.opt6.bin_4 b/tests/data/baseline_data/vector/4_byte_bin/grid212.opt6.bin_4 similarity index 100% rename from unit_test/baseline_data/vector/4_byte_bin/grid212.opt6.bin_4 rename to tests/data/baseline_data/vector/4_byte_bin/grid212.opt6.bin_4 diff --git a/unit_test/baseline_data/vector/4_byte_bin/grid218.opt0.bin_4 b/tests/data/baseline_data/vector/4_byte_bin/grid218.opt0.bin_4 similarity index 100% rename from unit_test/baseline_data/vector/4_byte_bin/grid218.opt0.bin_4 rename to tests/data/baseline_data/vector/4_byte_bin/grid218.opt0.bin_4 diff --git a/unit_test/baseline_data/vector/4_byte_bin/grid3.opt0.bin_4 b/tests/data/baseline_data/vector/4_byte_bin/grid3.opt0.bin_4 similarity index 100% rename from unit_test/baseline_data/vector/4_byte_bin/grid3.opt0.bin_4 rename to tests/data/baseline_data/vector/4_byte_bin/grid3.opt0.bin_4 diff --git a/unit_test/baseline_data/vector/4_byte_bin/grid8.opt1.bin_4 b/tests/data/baseline_data/vector/4_byte_bin/grid8.opt1.bin_4 similarity index 100% rename from unit_test/baseline_data/vector/4_byte_bin/grid8.opt1.bin_4 rename to tests/data/baseline_data/vector/4_byte_bin/grid8.opt1.bin_4 diff --git a/unit_test/baseline_data/vector/8_byte_bin/grid127.opt2.bin_8 b/tests/data/baseline_data/vector/8_byte_bin/grid127.opt2.bin_8 similarity index 100% rename from unit_test/baseline_data/vector/8_byte_bin/grid127.opt2.bin_8 rename to tests/data/baseline_data/vector/8_byte_bin/grid127.opt2.bin_8 diff --git a/unit_test/baseline_data/vector/8_byte_bin/grid203.opt3.bin_8 b/tests/data/baseline_data/vector/8_byte_bin/grid203.opt3.bin_8 similarity index 100% rename from unit_test/baseline_data/vector/8_byte_bin/grid203.opt3.bin_8 rename to tests/data/baseline_data/vector/8_byte_bin/grid203.opt3.bin_8 diff --git a/unit_test/baseline_data/vector/8_byte_bin/grid205.opt4.bin_8 b/tests/data/baseline_data/vector/8_byte_bin/grid205.opt4.bin_8 similarity index 100% rename from unit_test/baseline_data/vector/8_byte_bin/grid205.opt4.bin_8 rename to tests/data/baseline_data/vector/8_byte_bin/grid205.opt4.bin_8 diff --git a/unit_test/baseline_data/vector/8_byte_bin/grid212.opt6.bin_8 b/tests/data/baseline_data/vector/8_byte_bin/grid212.opt6.bin_8 similarity index 100% rename from unit_test/baseline_data/vector/8_byte_bin/grid212.opt6.bin_8 rename to tests/data/baseline_data/vector/8_byte_bin/grid212.opt6.bin_8 diff --git a/unit_test/baseline_data/vector/8_byte_bin/grid218.opt0.bin_8 b/tests/data/baseline_data/vector/8_byte_bin/grid218.opt0.bin_8 similarity index 100% rename from unit_test/baseline_data/vector/8_byte_bin/grid218.opt0.bin_8 rename to tests/data/baseline_data/vector/8_byte_bin/grid218.opt0.bin_8 diff --git a/unit_test/baseline_data/vector/8_byte_bin/grid3.opt0.bin_8 b/tests/data/baseline_data/vector/8_byte_bin/grid3.opt0.bin_8 similarity index 100% rename from unit_test/baseline_data/vector/8_byte_bin/grid3.opt0.bin_8 rename to tests/data/baseline_data/vector/8_byte_bin/grid3.opt0.bin_8 diff --git a/unit_test/baseline_data/vector/8_byte_bin/grid8.opt1.bin_8 b/tests/data/baseline_data/vector/8_byte_bin/grid8.opt1.bin_8 similarity index 100% rename from unit_test/baseline_data/vector/8_byte_bin/grid8.opt1.bin_8 rename to tests/data/baseline_data/vector/8_byte_bin/grid8.opt1.bin_8 diff --git a/unit_test/baseline_data/vector/grads/grid003.ctl b/tests/data/baseline_data/vector/grads/grid003.ctl similarity index 100% rename from unit_test/baseline_data/vector/grads/grid003.ctl rename to tests/data/baseline_data/vector/grads/grid003.ctl diff --git a/unit_test/baseline_data/vector/grads/grid008.ctl b/tests/data/baseline_data/vector/grads/grid008.ctl similarity index 100% rename from unit_test/baseline_data/vector/grads/grid008.ctl rename to tests/data/baseline_data/vector/grads/grid008.ctl diff --git a/unit_test/baseline_data/vector/grads/grid127.ctl b/tests/data/baseline_data/vector/grads/grid127.ctl similarity index 100% rename from unit_test/baseline_data/vector/grads/grid127.ctl rename to tests/data/baseline_data/vector/grads/grid127.ctl diff --git a/unit_test/baseline_data/vector/grads/grid203.ctl b/tests/data/baseline_data/vector/grads/grid203.ctl similarity index 100% rename from unit_test/baseline_data/vector/grads/grid203.ctl rename to tests/data/baseline_data/vector/grads/grid203.ctl diff --git a/unit_test/baseline_data/vector/grads/grid205.ctl b/tests/data/baseline_data/vector/grads/grid205.ctl similarity index 100% rename from unit_test/baseline_data/vector/grads/grid205.ctl rename to tests/data/baseline_data/vector/grads/grid205.ctl diff --git a/unit_test/baseline_data/vector/grads/grid212.ctl b/tests/data/baseline_data/vector/grads/grid212.ctl similarity index 100% rename from unit_test/baseline_data/vector/grads/grid212.ctl rename to tests/data/baseline_data/vector/grads/grid212.ctl diff --git a/unit_test/baseline_data/vector/grads/grid218.ctl b/tests/data/baseline_data/vector/grads/grid218.ctl similarity index 100% rename from unit_test/baseline_data/vector/grads/grid218.ctl rename to tests/data/baseline_data/vector/grads/grid218.ctl diff --git a/unit_test/input_data/scalar/global_snoalb.bin b/tests/data/input_data/scalar/global_snoalb.bin similarity index 100% rename from unit_test/input_data/scalar/global_snoalb.bin rename to tests/data/input_data/scalar/global_snoalb.bin diff --git a/unit_test/input_data/vector/global_uv_wind.bin b/tests/data/input_data/vector/global_uv_wind.bin similarity index 100% rename from unit_test/input_data/vector/global_uv_wind.bin rename to tests/data/input_data/vector/global_uv_wind.bin diff --git a/reg_tests/Makefile.in b/tests/reg_tests/Makefile.in similarity index 100% rename from reg_tests/Makefile.in rename to tests/reg_tests/Makefile.in diff --git a/reg_tests/README b/tests/reg_tests/README similarity index 100% rename from reg_tests/README rename to tests/reg_tests/README diff --git a/reg_tests/Runall.theia.ksh b/tests/reg_tests/Runall.theia.ksh similarity index 100% rename from reg_tests/Runall.theia.ksh rename to tests/reg_tests/Runall.theia.ksh diff --git a/reg_tests/Runall.wcoss-cray.ksh b/tests/reg_tests/Runall.wcoss-cray.ksh similarity index 100% rename from reg_tests/Runall.wcoss-cray.ksh rename to tests/reg_tests/Runall.wcoss-cray.ksh diff --git a/reg_tests/Runall.wcoss-dell.sh b/tests/reg_tests/Runall.wcoss-dell.sh similarity index 100% rename from reg_tests/Runall.wcoss-dell.sh rename to tests/reg_tests/Runall.wcoss-dell.sh diff --git a/reg_tests/Runall.wcoss.ksh b/tests/reg_tests/Runall.wcoss.ksh similarity index 100% rename from reg_tests/Runall.wcoss.ksh rename to tests/reg_tests/Runall.wcoss.ksh diff --git a/reg_tests/config-setup/crayftn.setup b/tests/reg_tests/config-setup/crayftn.setup similarity index 100% rename from reg_tests/config-setup/crayftn.setup rename to tests/reg_tests/config-setup/crayftn.setup diff --git a/reg_tests/config-setup/ifort.setup b/tests/reg_tests/config-setup/ifort.setup similarity index 100% rename from reg_tests/config-setup/ifort.setup rename to tests/reg_tests/config-setup/ifort.setup diff --git a/reg_tests/configure b/tests/reg_tests/configure similarity index 100% rename from reg_tests/configure rename to tests/reg_tests/configure diff --git a/reg_tests/configure.ac b/tests/reg_tests/configure.ac similarity index 100% rename from reg_tests/configure.ac rename to tests/reg_tests/configure.ac diff --git a/reg_tests/copygb2/README b/tests/reg_tests/copygb2/README similarity index 100% rename from reg_tests/copygb2/README rename to tests/reg_tests/copygb2/README diff --git a/reg_tests/copygb2/data/elevation.grb2 b/tests/reg_tests/copygb2/data/elevation.grb2 similarity index 100% rename from reg_tests/copygb2/data/elevation.grb2 rename to tests/reg_tests/copygb2/data/elevation.grb2 diff --git a/reg_tests/copygb2/data/mxsnoalb.grb2 b/tests/reg_tests/copygb2/data/mxsnoalb.grb2 similarity index 100% rename from reg_tests/copygb2/data/mxsnoalb.grb2 rename to tests/reg_tests/copygb2/data/mxsnoalb.grb2 diff --git a/reg_tests/copygb2/data/uv_wind.grb2 b/tests/reg_tests/copygb2/data/uv_wind.grb2 similarity index 100% rename from reg_tests/copygb2/data/uv_wind.grb2 rename to tests/reg_tests/copygb2/data/uv_wind.grb2 diff --git a/reg_tests/copygb2/scripts/copygb2.ksh b/tests/reg_tests/copygb2/scripts/copygb2.ksh similarity index 100% rename from reg_tests/copygb2/scripts/copygb2.ksh rename to tests/reg_tests/copygb2/scripts/copygb2.ksh diff --git a/reg_tests/copygb2/scripts/run.theia.ksh b/tests/reg_tests/copygb2/scripts/run.theia.ksh similarity index 100% rename from reg_tests/copygb2/scripts/run.theia.ksh rename to tests/reg_tests/copygb2/scripts/run.theia.ksh diff --git a/reg_tests/copygb2/scripts/run.wcoss-cray.lsf b/tests/reg_tests/copygb2/scripts/run.wcoss-cray.lsf similarity index 100% rename from reg_tests/copygb2/scripts/run.wcoss-cray.lsf rename to tests/reg_tests/copygb2/scripts/run.wcoss-cray.lsf diff --git a/reg_tests/copygb2/scripts/run.wcoss-dell.lsf b/tests/reg_tests/copygb2/scripts/run.wcoss-dell.lsf similarity index 100% rename from reg_tests/copygb2/scripts/run.wcoss-dell.lsf rename to tests/reg_tests/copygb2/scripts/run.wcoss-dell.lsf diff --git a/reg_tests/copygb2/scripts/run.wcoss.lsf b/tests/reg_tests/copygb2/scripts/run.wcoss.lsf similarity index 100% rename from reg_tests/copygb2/scripts/run.wcoss.lsf rename to tests/reg_tests/copygb2/scripts/run.wcoss.lsf diff --git a/reg_tests/copygb2/sorc/Makefile.in b/tests/reg_tests/copygb2/sorc/Makefile.in similarity index 100% rename from reg_tests/copygb2/sorc/Makefile.in rename to tests/reg_tests/copygb2/sorc/Makefile.in diff --git a/reg_tests/copygb2/sorc/copygb2.f b/tests/reg_tests/copygb2/sorc/copygb2.f similarity index 100% rename from reg_tests/copygb2/sorc/copygb2.f rename to tests/reg_tests/copygb2/sorc/copygb2.f diff --git a/reg_tests/copygb2/sorc/make.dependencies b/tests/reg_tests/copygb2/sorc/make.dependencies similarity index 100% rename from reg_tests/copygb2/sorc/make.dependencies rename to tests/reg_tests/copygb2/sorc/make.dependencies diff --git a/reg_tests/copygb2/sorc/make.filelist b/tests/reg_tests/copygb2/sorc/make.filelist similarity index 100% rename from reg_tests/copygb2/sorc/make.filelist rename to tests/reg_tests/copygb2/sorc/make.filelist diff --git a/reg_tests/copygb2/sorc/make.rules b/tests/reg_tests/copygb2/sorc/make.rules similarity index 100% rename from reg_tests/copygb2/sorc/make.rules rename to tests/reg_tests/copygb2/sorc/make.rules diff --git a/reg_tests/gdswzd/README b/tests/reg_tests/gdswzd/README similarity index 100% rename from reg_tests/gdswzd/README rename to tests/reg_tests/gdswzd/README diff --git a/reg_tests/gdswzd/exec/.gitignore b/tests/reg_tests/gdswzd/exec/.gitignore similarity index 100% rename from reg_tests/gdswzd/exec/.gitignore rename to tests/reg_tests/gdswzd/exec/.gitignore diff --git a/reg_tests/gdswzd/grads/grid003.ctl b/tests/reg_tests/gdswzd/grads/grid003.ctl similarity index 100% rename from reg_tests/gdswzd/grads/grid003.ctl rename to tests/reg_tests/gdswzd/grads/grid003.ctl diff --git a/reg_tests/gdswzd/grads/grid008.ctl b/tests/reg_tests/gdswzd/grads/grid008.ctl similarity index 100% rename from reg_tests/gdswzd/grads/grid008.ctl rename to tests/reg_tests/gdswzd/grads/grid008.ctl diff --git a/reg_tests/gdswzd/grads/grid127.ctl b/tests/reg_tests/gdswzd/grads/grid127.ctl similarity index 100% rename from reg_tests/gdswzd/grads/grid127.ctl rename to tests/reg_tests/gdswzd/grads/grid127.ctl diff --git a/reg_tests/gdswzd/grads/grid203hv.ctl b/tests/reg_tests/gdswzd/grads/grid203hv.ctl similarity index 100% rename from reg_tests/gdswzd/grads/grid203hv.ctl rename to tests/reg_tests/gdswzd/grads/grid203hv.ctl diff --git a/reg_tests/gdswzd/grads/grid205hv.ctl b/tests/reg_tests/gdswzd/grads/grid205hv.ctl similarity index 100% rename from reg_tests/gdswzd/grads/grid205hv.ctl rename to tests/reg_tests/gdswzd/grads/grid205hv.ctl diff --git a/reg_tests/gdswzd/grads/grid212.ctl b/tests/reg_tests/gdswzd/grads/grid212.ctl similarity index 100% rename from reg_tests/gdswzd/grads/grid212.ctl rename to tests/reg_tests/gdswzd/grads/grid212.ctl diff --git a/reg_tests/gdswzd/grads/grid213.ctl b/tests/reg_tests/gdswzd/grads/grid213.ctl similarity index 100% rename from reg_tests/gdswzd/grads/grid213.ctl rename to tests/reg_tests/gdswzd/grads/grid213.ctl diff --git a/reg_tests/gdswzd/grads/grid218.ctl b/tests/reg_tests/gdswzd/grads/grid218.ctl similarity index 100% rename from reg_tests/gdswzd/grads/grid218.ctl rename to tests/reg_tests/gdswzd/grads/grid218.ctl diff --git a/reg_tests/gdswzd/grads/grid222.ctl b/tests/reg_tests/gdswzd/grads/grid222.ctl similarity index 100% rename from reg_tests/gdswzd/grads/grid222.ctl rename to tests/reg_tests/gdswzd/grads/grid222.ctl diff --git a/reg_tests/gdswzd/scripts/runall.ksh b/tests/reg_tests/gdswzd/scripts/runall.ksh similarity index 100% rename from reg_tests/gdswzd/scripts/runall.ksh rename to tests/reg_tests/gdswzd/scripts/runall.ksh diff --git a/reg_tests/gdswzd/sorc/Makefile.in b/tests/reg_tests/gdswzd/sorc/Makefile.in similarity index 100% rename from reg_tests/gdswzd/sorc/Makefile.in rename to tests/reg_tests/gdswzd/sorc/Makefile.in diff --git a/reg_tests/gdswzd/sorc/gdswzd_driver.f90 b/tests/reg_tests/gdswzd/sorc/gdswzd_driver.f90 similarity index 100% rename from reg_tests/gdswzd/sorc/gdswzd_driver.f90 rename to tests/reg_tests/gdswzd/sorc/gdswzd_driver.f90 diff --git a/reg_tests/gdswzd/sorc/make.dependencies b/tests/reg_tests/gdswzd/sorc/make.dependencies similarity index 100% rename from reg_tests/gdswzd/sorc/make.dependencies rename to tests/reg_tests/gdswzd/sorc/make.dependencies diff --git a/reg_tests/gdswzd/sorc/make.filelist b/tests/reg_tests/gdswzd/sorc/make.filelist similarity index 100% rename from reg_tests/gdswzd/sorc/make.filelist rename to tests/reg_tests/gdswzd/sorc/make.filelist diff --git a/reg_tests/gdswzd/sorc/make.rules b/tests/reg_tests/gdswzd/sorc/make.rules similarity index 100% rename from reg_tests/gdswzd/sorc/make.rules rename to tests/reg_tests/gdswzd/sorc/make.rules diff --git a/reg_tests/install-sh b/tests/reg_tests/install-sh similarity index 100% rename from reg_tests/install-sh rename to tests/reg_tests/install-sh diff --git a/reg_tests/ipolates/README b/tests/reg_tests/ipolates/README similarity index 100% rename from reg_tests/ipolates/README rename to tests/reg_tests/ipolates/README diff --git a/reg_tests/ipolates/data/global_tbot.1x1.grb2 b/tests/reg_tests/ipolates/data/global_tbot.1x1.grb2 similarity index 100% rename from reg_tests/ipolates/data/global_tbot.1x1.grb2 rename to tests/reg_tests/ipolates/data/global_tbot.1x1.grb2 diff --git a/reg_tests/ipolates/exec/.gitignore b/tests/reg_tests/ipolates/exec/.gitignore similarity index 100% rename from reg_tests/ipolates/exec/.gitignore rename to tests/reg_tests/ipolates/exec/.gitignore diff --git a/reg_tests/ipolates/grads/grid003.ctl b/tests/reg_tests/ipolates/grads/grid003.ctl similarity index 100% rename from reg_tests/ipolates/grads/grid003.ctl rename to tests/reg_tests/ipolates/grads/grid003.ctl diff --git a/reg_tests/ipolates/grads/grid008.ctl b/tests/reg_tests/ipolates/grads/grid008.ctl similarity index 100% rename from reg_tests/ipolates/grads/grid008.ctl rename to tests/reg_tests/ipolates/grads/grid008.ctl diff --git a/reg_tests/ipolates/grads/grid127.ctl b/tests/reg_tests/ipolates/grads/grid127.ctl similarity index 100% rename from reg_tests/ipolates/grads/grid127.ctl rename to tests/reg_tests/ipolates/grads/grid127.ctl diff --git a/reg_tests/ipolates/grads/grid203.ctl b/tests/reg_tests/ipolates/grads/grid203.ctl similarity index 100% rename from reg_tests/ipolates/grads/grid203.ctl rename to tests/reg_tests/ipolates/grads/grid203.ctl diff --git a/reg_tests/ipolates/grads/grid205.ctl b/tests/reg_tests/ipolates/grads/grid205.ctl similarity index 100% rename from reg_tests/ipolates/grads/grid205.ctl rename to tests/reg_tests/ipolates/grads/grid205.ctl diff --git a/reg_tests/ipolates/grads/grid212.ctl b/tests/reg_tests/ipolates/grads/grid212.ctl similarity index 100% rename from reg_tests/ipolates/grads/grid212.ctl rename to tests/reg_tests/ipolates/grads/grid212.ctl diff --git a/reg_tests/ipolates/grads/grid218.ctl b/tests/reg_tests/ipolates/grads/grid218.ctl similarity index 100% rename from reg_tests/ipolates/grads/grid218.ctl rename to tests/reg_tests/ipolates/grads/grid218.ctl diff --git a/reg_tests/ipolates/scripts/compare.ksh b/tests/reg_tests/ipolates/scripts/compare.ksh similarity index 100% rename from reg_tests/ipolates/scripts/compare.ksh rename to tests/reg_tests/ipolates/scripts/compare.ksh diff --git a/reg_tests/ipolates/scripts/runall.ksh b/tests/reg_tests/ipolates/scripts/runall.ksh similarity index 100% rename from reg_tests/ipolates/scripts/runall.ksh rename to tests/reg_tests/ipolates/scripts/runall.ksh diff --git a/reg_tests/ipolates/sorc/Makefile.in b/tests/reg_tests/ipolates/sorc/Makefile.in similarity index 100% rename from reg_tests/ipolates/sorc/Makefile.in rename to tests/reg_tests/ipolates/sorc/Makefile.in diff --git a/reg_tests/ipolates/sorc/get_input_data.f90 b/tests/reg_tests/ipolates/sorc/get_input_data.f90 similarity index 100% rename from reg_tests/ipolates/sorc/get_input_data.f90 rename to tests/reg_tests/ipolates/sorc/get_input_data.f90 diff --git a/reg_tests/ipolates/sorc/interp.f90 b/tests/reg_tests/ipolates/sorc/interp.f90 similarity index 100% rename from reg_tests/ipolates/sorc/interp.f90 rename to tests/reg_tests/ipolates/sorc/interp.f90 diff --git a/reg_tests/ipolates/sorc/ipolates_driver.f90 b/tests/reg_tests/ipolates/sorc/ipolates_driver.f90 similarity index 100% rename from reg_tests/ipolates/sorc/ipolates_driver.f90 rename to tests/reg_tests/ipolates/sorc/ipolates_driver.f90 diff --git a/reg_tests/ipolates/sorc/make.dependencies b/tests/reg_tests/ipolates/sorc/make.dependencies similarity index 100% rename from reg_tests/ipolates/sorc/make.dependencies rename to tests/reg_tests/ipolates/sorc/make.dependencies diff --git a/reg_tests/ipolates/sorc/make.filelist b/tests/reg_tests/ipolates/sorc/make.filelist similarity index 100% rename from reg_tests/ipolates/sorc/make.filelist rename to tests/reg_tests/ipolates/sorc/make.filelist diff --git a/reg_tests/ipolates/sorc/make.rules b/tests/reg_tests/ipolates/sorc/make.rules similarity index 100% rename from reg_tests/ipolates/sorc/make.rules rename to tests/reg_tests/ipolates/sorc/make.rules diff --git a/reg_tests/ipolatev/README b/tests/reg_tests/ipolatev/README similarity index 100% rename from reg_tests/ipolatev/README rename to tests/reg_tests/ipolatev/README diff --git a/reg_tests/ipolatev/data/gfs.500mb.winds.grb2 b/tests/reg_tests/ipolatev/data/gfs.500mb.winds.grb2 similarity index 100% rename from reg_tests/ipolatev/data/gfs.500mb.winds.grb2 rename to tests/reg_tests/ipolatev/data/gfs.500mb.winds.grb2 diff --git a/reg_tests/ipolatev/exec/.gitignore b/tests/reg_tests/ipolatev/exec/.gitignore similarity index 100% rename from reg_tests/ipolatev/exec/.gitignore rename to tests/reg_tests/ipolatev/exec/.gitignore diff --git a/reg_tests/ipolatev/grads/grid003.ctl b/tests/reg_tests/ipolatev/grads/grid003.ctl similarity index 100% rename from reg_tests/ipolatev/grads/grid003.ctl rename to tests/reg_tests/ipolatev/grads/grid003.ctl diff --git a/reg_tests/ipolatev/grads/grid008.ctl b/tests/reg_tests/ipolatev/grads/grid008.ctl similarity index 100% rename from reg_tests/ipolatev/grads/grid008.ctl rename to tests/reg_tests/ipolatev/grads/grid008.ctl diff --git a/reg_tests/ipolatev/grads/grid127.ctl b/tests/reg_tests/ipolatev/grads/grid127.ctl similarity index 100% rename from reg_tests/ipolatev/grads/grid127.ctl rename to tests/reg_tests/ipolatev/grads/grid127.ctl diff --git a/reg_tests/ipolatev/grads/grid203.ctl b/tests/reg_tests/ipolatev/grads/grid203.ctl similarity index 100% rename from reg_tests/ipolatev/grads/grid203.ctl rename to tests/reg_tests/ipolatev/grads/grid203.ctl diff --git a/reg_tests/ipolatev/grads/grid205.ctl b/tests/reg_tests/ipolatev/grads/grid205.ctl similarity index 100% rename from reg_tests/ipolatev/grads/grid205.ctl rename to tests/reg_tests/ipolatev/grads/grid205.ctl diff --git a/reg_tests/ipolatev/grads/grid212.ctl b/tests/reg_tests/ipolatev/grads/grid212.ctl similarity index 100% rename from reg_tests/ipolatev/grads/grid212.ctl rename to tests/reg_tests/ipolatev/grads/grid212.ctl diff --git a/reg_tests/ipolatev/grads/grid218.ctl b/tests/reg_tests/ipolatev/grads/grid218.ctl similarity index 100% rename from reg_tests/ipolatev/grads/grid218.ctl rename to tests/reg_tests/ipolatev/grads/grid218.ctl diff --git a/reg_tests/ipolatev/scripts/compare.ksh b/tests/reg_tests/ipolatev/scripts/compare.ksh similarity index 100% rename from reg_tests/ipolatev/scripts/compare.ksh rename to tests/reg_tests/ipolatev/scripts/compare.ksh diff --git a/reg_tests/ipolatev/scripts/runall.ksh b/tests/reg_tests/ipolatev/scripts/runall.ksh similarity index 100% rename from reg_tests/ipolatev/scripts/runall.ksh rename to tests/reg_tests/ipolatev/scripts/runall.ksh diff --git a/reg_tests/ipolatev/sorc/Makefile.in b/tests/reg_tests/ipolatev/sorc/Makefile.in similarity index 100% rename from reg_tests/ipolatev/sorc/Makefile.in rename to tests/reg_tests/ipolatev/sorc/Makefile.in diff --git a/reg_tests/ipolatev/sorc/get_input_data.f90 b/tests/reg_tests/ipolatev/sorc/get_input_data.f90 similarity index 100% rename from reg_tests/ipolatev/sorc/get_input_data.f90 rename to tests/reg_tests/ipolatev/sorc/get_input_data.f90 diff --git a/reg_tests/ipolatev/sorc/interp.f90 b/tests/reg_tests/ipolatev/sorc/interp.f90 similarity index 100% rename from reg_tests/ipolatev/sorc/interp.f90 rename to tests/reg_tests/ipolatev/sorc/interp.f90 diff --git a/reg_tests/ipolatev/sorc/ipolatev_driver.f90 b/tests/reg_tests/ipolatev/sorc/ipolatev_driver.f90 similarity index 100% rename from reg_tests/ipolatev/sorc/ipolatev_driver.f90 rename to tests/reg_tests/ipolatev/sorc/ipolatev_driver.f90 diff --git a/reg_tests/ipolatev/sorc/make.dependencies b/tests/reg_tests/ipolatev/sorc/make.dependencies similarity index 100% rename from reg_tests/ipolatev/sorc/make.dependencies rename to tests/reg_tests/ipolatev/sorc/make.dependencies diff --git a/reg_tests/ipolatev/sorc/make.filelist b/tests/reg_tests/ipolatev/sorc/make.filelist similarity index 100% rename from reg_tests/ipolatev/sorc/make.filelist rename to tests/reg_tests/ipolatev/sorc/make.filelist diff --git a/reg_tests/ipolatev/sorc/make.rules b/tests/reg_tests/ipolatev/sorc/make.rules similarity index 100% rename from reg_tests/ipolatev/sorc/make.rules rename to tests/reg_tests/ipolatev/sorc/make.rules diff --git a/reg_tests/ipxetas/README b/tests/reg_tests/ipxetas/README similarity index 100% rename from reg_tests/ipxetas/README rename to tests/reg_tests/ipxetas/README diff --git a/reg_tests/ipxetas/data/egrid_hpnt_slmask.grb2 b/tests/reg_tests/ipxetas/data/egrid_hpnt_slmask.grb2 similarity index 100% rename from reg_tests/ipxetas/data/egrid_hpnt_slmask.grb2 rename to tests/reg_tests/ipxetas/data/egrid_hpnt_slmask.grb2 diff --git a/reg_tests/ipxetas/data/egrid_vpnt_uwind.grb2 b/tests/reg_tests/ipxetas/data/egrid_vpnt_uwind.grb2 similarity index 100% rename from reg_tests/ipxetas/data/egrid_vpnt_uwind.grb2 rename to tests/reg_tests/ipxetas/data/egrid_vpnt_uwind.grb2 diff --git a/reg_tests/ipxetas/data/full_slmask.grb2 b/tests/reg_tests/ipxetas/data/full_slmask.grb2 similarity index 100% rename from reg_tests/ipxetas/data/full_slmask.grb2 rename to tests/reg_tests/ipxetas/data/full_slmask.grb2 diff --git a/reg_tests/ipxetas/scripts/runall.ksh b/tests/reg_tests/ipxetas/scripts/runall.ksh similarity index 100% rename from reg_tests/ipxetas/scripts/runall.ksh rename to tests/reg_tests/ipxetas/scripts/runall.ksh diff --git a/reg_tests/ipxetas/sorc/Makefile.in b/tests/reg_tests/ipxetas/sorc/Makefile.in similarity index 100% rename from reg_tests/ipxetas/sorc/Makefile.in rename to tests/reg_tests/ipxetas/sorc/Makefile.in diff --git a/reg_tests/ipxetas/sorc/ipxetas_driver.f90 b/tests/reg_tests/ipxetas/sorc/ipxetas_driver.f90 similarity index 100% rename from reg_tests/ipxetas/sorc/ipxetas_driver.f90 rename to tests/reg_tests/ipxetas/sorc/ipxetas_driver.f90 diff --git a/reg_tests/ipxetas/sorc/make.dependencies b/tests/reg_tests/ipxetas/sorc/make.dependencies similarity index 100% rename from reg_tests/ipxetas/sorc/make.dependencies rename to tests/reg_tests/ipxetas/sorc/make.dependencies diff --git a/reg_tests/ipxetas/sorc/make.filelist b/tests/reg_tests/ipxetas/sorc/make.filelist similarity index 100% rename from reg_tests/ipxetas/sorc/make.filelist rename to tests/reg_tests/ipxetas/sorc/make.filelist diff --git a/reg_tests/ipxetas/sorc/make.rules b/tests/reg_tests/ipxetas/sorc/make.rules similarity index 100% rename from reg_tests/ipxetas/sorc/make.rules rename to tests/reg_tests/ipxetas/sorc/make.rules diff --git a/reg_tests/ipxwafs/README b/tests/reg_tests/ipxwafs/README similarity index 100% rename from reg_tests/ipxwafs/README rename to tests/reg_tests/ipxwafs/README diff --git a/reg_tests/ipxwafs/data/wafs.37.full.bitmap.grb2 b/tests/reg_tests/ipxwafs/data/wafs.37.full.bitmap.grb2 similarity index 100% rename from reg_tests/ipxwafs/data/wafs.37.full.bitmap.grb2 rename to tests/reg_tests/ipxwafs/data/wafs.37.full.bitmap.grb2 diff --git a/reg_tests/ipxwafs/data/wafs.37.full.grb2 b/tests/reg_tests/ipxwafs/data/wafs.37.full.grb2 similarity index 100% rename from reg_tests/ipxwafs/data/wafs.37.full.grb2 rename to tests/reg_tests/ipxwafs/data/wafs.37.full.grb2 diff --git a/reg_tests/ipxwafs/data/wafs.37.thin.bitmap.grb2 b/tests/reg_tests/ipxwafs/data/wafs.37.thin.bitmap.grb2 similarity index 100% rename from reg_tests/ipxwafs/data/wafs.37.thin.bitmap.grb2 rename to tests/reg_tests/ipxwafs/data/wafs.37.thin.bitmap.grb2 diff --git a/reg_tests/ipxwafs/data/wafs.37.thin.grb2 b/tests/reg_tests/ipxwafs/data/wafs.37.thin.grb2 similarity index 100% rename from reg_tests/ipxwafs/data/wafs.37.thin.grb2 rename to tests/reg_tests/ipxwafs/data/wafs.37.thin.grb2 diff --git a/reg_tests/ipxwafs/data/wafs.44.full.bitmap.grb2 b/tests/reg_tests/ipxwafs/data/wafs.44.full.bitmap.grb2 similarity index 100% rename from reg_tests/ipxwafs/data/wafs.44.full.bitmap.grb2 rename to tests/reg_tests/ipxwafs/data/wafs.44.full.bitmap.grb2 diff --git a/reg_tests/ipxwafs/data/wafs.44.full.grb2 b/tests/reg_tests/ipxwafs/data/wafs.44.full.grb2 similarity index 100% rename from reg_tests/ipxwafs/data/wafs.44.full.grb2 rename to tests/reg_tests/ipxwafs/data/wafs.44.full.grb2 diff --git a/reg_tests/ipxwafs/data/wafs.44.thin.bitmap.grb2 b/tests/reg_tests/ipxwafs/data/wafs.44.thin.bitmap.grb2 similarity index 100% rename from reg_tests/ipxwafs/data/wafs.44.thin.bitmap.grb2 rename to tests/reg_tests/ipxwafs/data/wafs.44.thin.bitmap.grb2 diff --git a/reg_tests/ipxwafs/data/wafs.44.thin.grb2 b/tests/reg_tests/ipxwafs/data/wafs.44.thin.grb2 similarity index 100% rename from reg_tests/ipxwafs/data/wafs.44.thin.grb2 rename to tests/reg_tests/ipxwafs/data/wafs.44.thin.grb2 diff --git a/reg_tests/ipxwafs/exec/.gitignore b/tests/reg_tests/ipxwafs/exec/.gitignore similarity index 100% rename from reg_tests/ipxwafs/exec/.gitignore rename to tests/reg_tests/ipxwafs/exec/.gitignore diff --git a/reg_tests/ipxwafs/scripts/runall.ksh b/tests/reg_tests/ipxwafs/scripts/runall.ksh similarity index 100% rename from reg_tests/ipxwafs/scripts/runall.ksh rename to tests/reg_tests/ipxwafs/scripts/runall.ksh diff --git a/reg_tests/ipxwafs/sorc/Makefile.in b/tests/reg_tests/ipxwafs/sorc/Makefile.in similarity index 100% rename from reg_tests/ipxwafs/sorc/Makefile.in rename to tests/reg_tests/ipxwafs/sorc/Makefile.in diff --git a/reg_tests/ipxwafs/sorc/ipxwafs_driver.f90 b/tests/reg_tests/ipxwafs/sorc/ipxwafs_driver.f90 similarity index 100% rename from reg_tests/ipxwafs/sorc/ipxwafs_driver.f90 rename to tests/reg_tests/ipxwafs/sorc/ipxwafs_driver.f90 diff --git a/reg_tests/ipxwafs/sorc/make.dependencies b/tests/reg_tests/ipxwafs/sorc/make.dependencies similarity index 100% rename from reg_tests/ipxwafs/sorc/make.dependencies rename to tests/reg_tests/ipxwafs/sorc/make.dependencies diff --git a/reg_tests/ipxwafs/sorc/make.filelist b/tests/reg_tests/ipxwafs/sorc/make.filelist similarity index 100% rename from reg_tests/ipxwafs/sorc/make.filelist rename to tests/reg_tests/ipxwafs/sorc/make.filelist diff --git a/reg_tests/ipxwafs/sorc/make.rules b/tests/reg_tests/ipxwafs/sorc/make.rules similarity index 100% rename from reg_tests/ipxwafs/sorc/make.rules rename to tests/reg_tests/ipxwafs/sorc/make.rules diff --git a/reg_tests/lib/incmod_test_4 b/tests/reg_tests/lib/incmod_test_4 similarity index 100% rename from reg_tests/lib/incmod_test_4 rename to tests/reg_tests/lib/incmod_test_4 diff --git a/reg_tests/lib/incmod_test_8 b/tests/reg_tests/lib/incmod_test_8 similarity index 100% rename from reg_tests/lib/incmod_test_8 rename to tests/reg_tests/lib/incmod_test_8 diff --git a/reg_tests/lib/incmod_test_d b/tests/reg_tests/lib/incmod_test_d similarity index 100% rename from reg_tests/lib/incmod_test_d rename to tests/reg_tests/lib/incmod_test_d diff --git a/reg_tests/make_reg_tests.ksh b/tests/reg_tests/make_reg_tests.ksh similarity index 100% rename from reg_tests/make_reg_tests.ksh rename to tests/reg_tests/make_reg_tests.ksh diff --git a/reg_tests/make_reg_tests_wcoss-cray.sh b/tests/reg_tests/make_reg_tests_wcoss-cray.sh similarity index 100% rename from reg_tests/make_reg_tests_wcoss-cray.sh rename to tests/reg_tests/make_reg_tests_wcoss-cray.sh diff --git a/tests/test_mod.pf b/tests/test_mod.pf new file mode 100644 index 0000000..317593a --- /dev/null +++ b/tests/test_mod.pf @@ -0,0 +1,14 @@ +module test_mod + use funit + use iso_fortran_env, only: real32, real64 + implicit none + +contains + + @test + subroutine test_something() + ! need to implement real tests + @assertTrue(.true., "True is true") + end subroutine test_something + +end module test_mod diff --git a/unit_test/README b/tests/unit_test/README similarity index 100% rename from unit_test/README rename to tests/unit_test/README diff --git a/tests/unit_test/baseline_data/scalar/4_byte_bin/grid127.opt2.bin_4 b/tests/unit_test/baseline_data/scalar/4_byte_bin/grid127.opt2.bin_4 new file mode 100644 index 0000000..b540e65 Binary files /dev/null and b/tests/unit_test/baseline_data/scalar/4_byte_bin/grid127.opt2.bin_4 differ diff --git a/tests/unit_test/baseline_data/scalar/4_byte_bin/grid203.opt3.bin_4 b/tests/unit_test/baseline_data/scalar/4_byte_bin/grid203.opt3.bin_4 new file mode 100644 index 0000000..2efd597 Binary files /dev/null and b/tests/unit_test/baseline_data/scalar/4_byte_bin/grid203.opt3.bin_4 differ diff --git a/tests/unit_test/baseline_data/scalar/4_byte_bin/grid205.opt4.bin_4 b/tests/unit_test/baseline_data/scalar/4_byte_bin/grid205.opt4.bin_4 new file mode 100644 index 0000000..891515c Binary files /dev/null and b/tests/unit_test/baseline_data/scalar/4_byte_bin/grid205.opt4.bin_4 differ diff --git a/tests/unit_test/baseline_data/scalar/4_byte_bin/grid212.opt6.bin_4 b/tests/unit_test/baseline_data/scalar/4_byte_bin/grid212.opt6.bin_4 new file mode 100644 index 0000000..ef29efc Binary files /dev/null and b/tests/unit_test/baseline_data/scalar/4_byte_bin/grid212.opt6.bin_4 differ diff --git a/tests/unit_test/baseline_data/scalar/4_byte_bin/grid218.opt0.bin_4 b/tests/unit_test/baseline_data/scalar/4_byte_bin/grid218.opt0.bin_4 new file mode 100644 index 0000000..3cd4f55 Binary files /dev/null and b/tests/unit_test/baseline_data/scalar/4_byte_bin/grid218.opt0.bin_4 differ diff --git a/tests/unit_test/baseline_data/scalar/4_byte_bin/grid3.opt0.bin_4 b/tests/unit_test/baseline_data/scalar/4_byte_bin/grid3.opt0.bin_4 new file mode 100644 index 0000000..8cf5668 Binary files /dev/null and b/tests/unit_test/baseline_data/scalar/4_byte_bin/grid3.opt0.bin_4 differ diff --git a/tests/unit_test/baseline_data/scalar/4_byte_bin/grid8.opt1.bin_4 b/tests/unit_test/baseline_data/scalar/4_byte_bin/grid8.opt1.bin_4 new file mode 100644 index 0000000..65304e2 Binary files /dev/null and b/tests/unit_test/baseline_data/scalar/4_byte_bin/grid8.opt1.bin_4 differ diff --git a/tests/unit_test/baseline_data/scalar/8_byte_bin/grid127.opt2.bin_8 b/tests/unit_test/baseline_data/scalar/8_byte_bin/grid127.opt2.bin_8 new file mode 100644 index 0000000..f4b2f9f Binary files /dev/null and b/tests/unit_test/baseline_data/scalar/8_byte_bin/grid127.opt2.bin_8 differ diff --git a/tests/unit_test/baseline_data/scalar/8_byte_bin/grid203.opt3.bin_8 b/tests/unit_test/baseline_data/scalar/8_byte_bin/grid203.opt3.bin_8 new file mode 100644 index 0000000..84d106a Binary files /dev/null and b/tests/unit_test/baseline_data/scalar/8_byte_bin/grid203.opt3.bin_8 differ diff --git a/tests/unit_test/baseline_data/scalar/8_byte_bin/grid205.opt4.bin_8 b/tests/unit_test/baseline_data/scalar/8_byte_bin/grid205.opt4.bin_8 new file mode 100644 index 0000000..ed5353b Binary files /dev/null and b/tests/unit_test/baseline_data/scalar/8_byte_bin/grid205.opt4.bin_8 differ diff --git a/tests/unit_test/baseline_data/scalar/8_byte_bin/grid212.opt6.bin_8 b/tests/unit_test/baseline_data/scalar/8_byte_bin/grid212.opt6.bin_8 new file mode 100644 index 0000000..af4b654 Binary files /dev/null and b/tests/unit_test/baseline_data/scalar/8_byte_bin/grid212.opt6.bin_8 differ diff --git a/tests/unit_test/baseline_data/scalar/8_byte_bin/grid218.opt0.bin_8 b/tests/unit_test/baseline_data/scalar/8_byte_bin/grid218.opt0.bin_8 new file mode 100644 index 0000000..678447f Binary files /dev/null and b/tests/unit_test/baseline_data/scalar/8_byte_bin/grid218.opt0.bin_8 differ diff --git a/tests/unit_test/baseline_data/scalar/8_byte_bin/grid3.opt0.bin_8 b/tests/unit_test/baseline_data/scalar/8_byte_bin/grid3.opt0.bin_8 new file mode 100644 index 0000000..8cf5668 Binary files /dev/null and b/tests/unit_test/baseline_data/scalar/8_byte_bin/grid3.opt0.bin_8 differ diff --git a/tests/unit_test/baseline_data/scalar/8_byte_bin/grid8.opt1.bin_8 b/tests/unit_test/baseline_data/scalar/8_byte_bin/grid8.opt1.bin_8 new file mode 100644 index 0000000..a9d2f9d Binary files /dev/null and b/tests/unit_test/baseline_data/scalar/8_byte_bin/grid8.opt1.bin_8 differ diff --git a/tests/unit_test/baseline_data/scalar/grads/grid003.ctl b/tests/unit_test/baseline_data/scalar/grads/grid003.ctl new file mode 100644 index 0000000..7737a1e --- /dev/null +++ b/tests/unit_test/baseline_data/scalar/grads/grid003.ctl @@ -0,0 +1,11 @@ +dset ^../4_byte_bin/grid3.opt0.bin_4 +undef -9.E+0 +options yrev +options little_endian +xdef 360 linear 0.000000 1.0 +ydef 181 linear 0.000000 1.0 +tdef 1 linear 00z01jan1980 1dy +zdef 1 linear 1 1 +vars 1 +alb 0 11,1,0 ** alb +ENDVARS diff --git a/tests/unit_test/baseline_data/scalar/grads/grid008.ctl b/tests/unit_test/baseline_data/scalar/grads/grid008.ctl new file mode 100644 index 0000000..21eb4d4 --- /dev/null +++ b/tests/unit_test/baseline_data/scalar/grads/grid008.ctl @@ -0,0 +1,10 @@ +dset ^../4_byte_bin/grid8.opt1.bin_4 +undef -9.E+0 +options little_endian +xdef 116 linear 0.000000 1.0 +ydef 44 linear 0.000000 1.0 +tdef 1 linear 00z01jan1980 1dy +zdef 1 linear 1 1 +vars 1 +alb 0 11,1,0 ** alb +ENDVARS diff --git a/tests/unit_test/baseline_data/scalar/grads/grid127.ctl b/tests/unit_test/baseline_data/scalar/grads/grid127.ctl new file mode 100644 index 0000000..efe5ded --- /dev/null +++ b/tests/unit_test/baseline_data/scalar/grads/grid127.ctl @@ -0,0 +1,11 @@ +dset ^../4_byte_bin/grid127.opt2.bin_4 +undef -9.E+0 +options yrev +options little_endian +xdef 768 linear 0.000000 1.0 +ydef 384 linear 0.000000 1.0 +tdef 1 linear 00z01jan1980 1dy +zdef 1 linear 1 1 +vars 1 +alb 0 11,1,0 ** alb +ENDVARS diff --git a/tests/unit_test/baseline_data/scalar/grads/grid203.ctl b/tests/unit_test/baseline_data/scalar/grads/grid203.ctl new file mode 100644 index 0000000..7acc073 --- /dev/null +++ b/tests/unit_test/baseline_data/scalar/grads/grid203.ctl @@ -0,0 +1,10 @@ +dset ^../4_byte_bin/grid203.opt3.bin_4 +undef -9.E+0 +options little_endian +xdef 669 linear 0.000000 1.0 +ydef 1165 linear 0.000000 1.0 +tdef 1 linear 00z01jan1980 1dy +zdef 1 linear 1 1 +vars 1 +alb 0 11,1,0 ** alb +ENDVARS diff --git a/tests/unit_test/baseline_data/scalar/grads/grid205.ctl b/tests/unit_test/baseline_data/scalar/grads/grid205.ctl new file mode 100644 index 0000000..a30dee9 --- /dev/null +++ b/tests/unit_test/baseline_data/scalar/grads/grid205.ctl @@ -0,0 +1,10 @@ +dset ^../4_byte_bin/grid205.opt4.bin_4 +undef -9.E+0 +options little_endian +xdef 954 linear 0.000000 1.0 +ydef 835 linear 0.000000 1.0 +tdef 1 linear 00z01jan1980 1dy +zdef 1 linear 1 1 +vars 1 +alb 0 11,1,0 ** alb +ENDVARS diff --git a/tests/unit_test/baseline_data/scalar/grads/grid212.ctl b/tests/unit_test/baseline_data/scalar/grads/grid212.ctl new file mode 100644 index 0000000..cb1aea8 --- /dev/null +++ b/tests/unit_test/baseline_data/scalar/grads/grid212.ctl @@ -0,0 +1,11 @@ +dset ^../4_byte_bin/grid212.opt6.bin_4 +undef -9.E+0 +options yrev +options little_endian +xdef 512 linear 0.000000 1.0 +ydef 512 linear 0.000000 1.0 +tdef 1 linear 00z01jan1980 1dy +zdef 1 linear 1 1 +vars 1 +alb 0 11,1,0 ** alb +ENDVARS diff --git a/tests/unit_test/baseline_data/scalar/grads/grid218.ctl b/tests/unit_test/baseline_data/scalar/grads/grid218.ctl new file mode 100644 index 0000000..a5cf687 --- /dev/null +++ b/tests/unit_test/baseline_data/scalar/grads/grid218.ctl @@ -0,0 +1,10 @@ +dset ^../4_byte_bin/grid218.opt0.bin_4 +undef -9.E+0 +options little_endian +xdef 614 linear 0.000000 1.0 +ydef 428 linear 0.000000 1.0 +tdef 1 linear 00z01jan1980 1dy +zdef 1 linear 1 1 +vars 1 +alb 0 11,1,0 ** alb +ENDVARS diff --git a/tests/unit_test/baseline_data/vector/4_byte_bin/grid127.opt2.bin_4 b/tests/unit_test/baseline_data/vector/4_byte_bin/grid127.opt2.bin_4 new file mode 100644 index 0000000..d4e80e8 Binary files /dev/null and b/tests/unit_test/baseline_data/vector/4_byte_bin/grid127.opt2.bin_4 differ diff --git a/tests/unit_test/baseline_data/vector/4_byte_bin/grid203.opt3.bin_4 b/tests/unit_test/baseline_data/vector/4_byte_bin/grid203.opt3.bin_4 new file mode 100644 index 0000000..e99f703 Binary files /dev/null and b/tests/unit_test/baseline_data/vector/4_byte_bin/grid203.opt3.bin_4 differ diff --git a/tests/unit_test/baseline_data/vector/4_byte_bin/grid205.opt4.bin_4 b/tests/unit_test/baseline_data/vector/4_byte_bin/grid205.opt4.bin_4 new file mode 100644 index 0000000..1faa1cb Binary files /dev/null and b/tests/unit_test/baseline_data/vector/4_byte_bin/grid205.opt4.bin_4 differ diff --git a/tests/unit_test/baseline_data/vector/4_byte_bin/grid212.opt6.bin_4 b/tests/unit_test/baseline_data/vector/4_byte_bin/grid212.opt6.bin_4 new file mode 100644 index 0000000..b095776 Binary files /dev/null and b/tests/unit_test/baseline_data/vector/4_byte_bin/grid212.opt6.bin_4 differ diff --git a/tests/unit_test/baseline_data/vector/4_byte_bin/grid218.opt0.bin_4 b/tests/unit_test/baseline_data/vector/4_byte_bin/grid218.opt0.bin_4 new file mode 100644 index 0000000..f1474d6 Binary files /dev/null and b/tests/unit_test/baseline_data/vector/4_byte_bin/grid218.opt0.bin_4 differ diff --git a/tests/unit_test/baseline_data/vector/4_byte_bin/grid3.opt0.bin_4 b/tests/unit_test/baseline_data/vector/4_byte_bin/grid3.opt0.bin_4 new file mode 100644 index 0000000..970e28f Binary files /dev/null and b/tests/unit_test/baseline_data/vector/4_byte_bin/grid3.opt0.bin_4 differ diff --git a/tests/unit_test/baseline_data/vector/4_byte_bin/grid8.opt1.bin_4 b/tests/unit_test/baseline_data/vector/4_byte_bin/grid8.opt1.bin_4 new file mode 100644 index 0000000..c03bd12 Binary files /dev/null and b/tests/unit_test/baseline_data/vector/4_byte_bin/grid8.opt1.bin_4 differ diff --git a/tests/unit_test/baseline_data/vector/8_byte_bin/grid127.opt2.bin_8 b/tests/unit_test/baseline_data/vector/8_byte_bin/grid127.opt2.bin_8 new file mode 100644 index 0000000..34e545f Binary files /dev/null and b/tests/unit_test/baseline_data/vector/8_byte_bin/grid127.opt2.bin_8 differ diff --git a/tests/unit_test/baseline_data/vector/8_byte_bin/grid203.opt3.bin_8 b/tests/unit_test/baseline_data/vector/8_byte_bin/grid203.opt3.bin_8 new file mode 100644 index 0000000..bbdc557 Binary files /dev/null and b/tests/unit_test/baseline_data/vector/8_byte_bin/grid203.opt3.bin_8 differ diff --git a/tests/unit_test/baseline_data/vector/8_byte_bin/grid205.opt4.bin_8 b/tests/unit_test/baseline_data/vector/8_byte_bin/grid205.opt4.bin_8 new file mode 100644 index 0000000..134ddbb Binary files /dev/null and b/tests/unit_test/baseline_data/vector/8_byte_bin/grid205.opt4.bin_8 differ diff --git a/tests/unit_test/baseline_data/vector/8_byte_bin/grid212.opt6.bin_8 b/tests/unit_test/baseline_data/vector/8_byte_bin/grid212.opt6.bin_8 new file mode 100644 index 0000000..8395ca8 Binary files /dev/null and b/tests/unit_test/baseline_data/vector/8_byte_bin/grid212.opt6.bin_8 differ diff --git a/tests/unit_test/baseline_data/vector/8_byte_bin/grid218.opt0.bin_8 b/tests/unit_test/baseline_data/vector/8_byte_bin/grid218.opt0.bin_8 new file mode 100644 index 0000000..2564534 Binary files /dev/null and b/tests/unit_test/baseline_data/vector/8_byte_bin/grid218.opt0.bin_8 differ diff --git a/tests/unit_test/baseline_data/vector/8_byte_bin/grid3.opt0.bin_8 b/tests/unit_test/baseline_data/vector/8_byte_bin/grid3.opt0.bin_8 new file mode 100644 index 0000000..ce346b7 Binary files /dev/null and b/tests/unit_test/baseline_data/vector/8_byte_bin/grid3.opt0.bin_8 differ diff --git a/tests/unit_test/baseline_data/vector/8_byte_bin/grid8.opt1.bin_8 b/tests/unit_test/baseline_data/vector/8_byte_bin/grid8.opt1.bin_8 new file mode 100644 index 0000000..38821e0 Binary files /dev/null and b/tests/unit_test/baseline_data/vector/8_byte_bin/grid8.opt1.bin_8 differ diff --git a/tests/unit_test/baseline_data/vector/grads/grid003.ctl b/tests/unit_test/baseline_data/vector/grads/grid003.ctl new file mode 100644 index 0000000..1407d93 --- /dev/null +++ b/tests/unit_test/baseline_data/vector/grads/grid003.ctl @@ -0,0 +1,12 @@ +dset ^../4_byte_bin/grid3.opt0.bin_4 +undef -9.999E+3 +options yrev +options little_endian +xdef 360 linear 0.000000 1.0 +ydef 181 linear 0.000000 1.0 +tdef 1 linear 00z01jan1980 1dy +zdef 1 linear 1 1 +vars 2 +uwind 0 33,1,0 ** uwind +vwind 0 34,1,0 ** vwind +ENDVARS diff --git a/tests/unit_test/baseline_data/vector/grads/grid008.ctl b/tests/unit_test/baseline_data/vector/grads/grid008.ctl new file mode 100644 index 0000000..08674d0 --- /dev/null +++ b/tests/unit_test/baseline_data/vector/grads/grid008.ctl @@ -0,0 +1,11 @@ +dset ^../4_byte_bin/grid8.opt1.bin_4 +undef -9.999E+3 +options little_endian +xdef 116 linear 0.000000 1.0 +ydef 44 linear 0.000000 1.0 +tdef 1 linear 00z01jan1980 1dy +zdef 1 linear 1 1 +vars 2 +uwind 0 33,1,0 ** uwind +vwind 0 34,1,0 ** vwind +ENDVARS diff --git a/tests/unit_test/baseline_data/vector/grads/grid127.ctl b/tests/unit_test/baseline_data/vector/grads/grid127.ctl new file mode 100644 index 0000000..3c0e3e6 --- /dev/null +++ b/tests/unit_test/baseline_data/vector/grads/grid127.ctl @@ -0,0 +1,12 @@ +dset ^../4_byte_bin/grid127.opt2.bin_4 +undef -9.999E+3 +options yrev +options little_endian +xdef 768 linear 0.000000 1.0 +ydef 384 linear 0.000000 1.0 +tdef 1 linear 00z01jan1980 1dy +zdef 1 linear 1 1 +vars 2 +uwind 0 33,1,0 ** uwind +vwind 0 34,1,0 ** vwind +ENDVARS diff --git a/tests/unit_test/baseline_data/vector/grads/grid203.ctl b/tests/unit_test/baseline_data/vector/grads/grid203.ctl new file mode 100644 index 0000000..97a2773 --- /dev/null +++ b/tests/unit_test/baseline_data/vector/grads/grid203.ctl @@ -0,0 +1,11 @@ +dset ^../4_byte_bin/grid203.opt3.bin_4 +undef -9.999E+3 +options little_endian +xdef 669 linear 0.000000 1.0 +ydef 1165 linear 0.000000 1.0 +tdef 1 linear 00z01jan1980 1dy +zdef 1 linear 1 1 +vars 2 +uwind 0 33,1,0 ** uwind +vwind 0 34,1,0 ** vwind +ENDVARS diff --git a/tests/unit_test/baseline_data/vector/grads/grid205.ctl b/tests/unit_test/baseline_data/vector/grads/grid205.ctl new file mode 100644 index 0000000..a7d92f8 --- /dev/null +++ b/tests/unit_test/baseline_data/vector/grads/grid205.ctl @@ -0,0 +1,11 @@ +dset ^../4_byte_bin/grid205.opt4.bin_4 +undef -9.999E+3 +options little_endian +xdef 954 linear 0.000000 1.0 +ydef 835 linear 0.000000 1.0 +tdef 1 linear 00z01jan1980 1dy +zdef 1 linear 1 1 +vars 2 +uwind 0 33,1,0 ** uwind +vwind 0 34,1,0 ** vwind +ENDVARS diff --git a/tests/unit_test/baseline_data/vector/grads/grid212.ctl b/tests/unit_test/baseline_data/vector/grads/grid212.ctl new file mode 100644 index 0000000..0efb847 --- /dev/null +++ b/tests/unit_test/baseline_data/vector/grads/grid212.ctl @@ -0,0 +1,12 @@ +dset ^../4_byte_bin/grid212.opt6.bin_4 +undef -9.999E+3 +options yrev +options little_endian +xdef 512 linear 0.000000 1.0 +ydef 512 linear 0.000000 1.0 +tdef 1 linear 00z01jan1980 1dy +zdef 1 linear 1 1 +vars 2 +uwind 0 33,1,0 ** uwind +vwind 0 34,1,0 ** vwind +ENDVARS diff --git a/tests/unit_test/baseline_data/vector/grads/grid218.ctl b/tests/unit_test/baseline_data/vector/grads/grid218.ctl new file mode 100644 index 0000000..419f1fd --- /dev/null +++ b/tests/unit_test/baseline_data/vector/grads/grid218.ctl @@ -0,0 +1,11 @@ +dset ^../4_byte_bin/grid218.opt0.bin_4 +undef -9.999E+3 +options little_endian +xdef 614 linear 0.000000 1.0 +ydef 428 linear 0.000000 1.0 +tdef 1 linear 00z01jan1980 1dy +zdef 1 linear 1 1 +vars 2 +uwind 0 33,1,0 ** uwind +vwind 0 34,1,0 ** vwind +ENDVARS diff --git a/tests/unit_test/input_data/scalar/global_snoalb.bin b/tests/unit_test/input_data/scalar/global_snoalb.bin new file mode 100644 index 0000000..530c93b Binary files /dev/null and b/tests/unit_test/input_data/scalar/global_snoalb.bin differ diff --git a/tests/unit_test/input_data/vector/global_uv_wind.bin b/tests/unit_test/input_data/vector/global_uv_wind.bin new file mode 100644 index 0000000..f5604b9 Binary files /dev/null and b/tests/unit_test/input_data/vector/global_uv_wind.bin differ diff --git a/unit_test/lib/incmod_4 b/tests/unit_test/lib/incmod_4 similarity index 100% rename from unit_test/lib/incmod_4 rename to tests/unit_test/lib/incmod_4 diff --git a/unit_test/lib/incmod_8 b/tests/unit_test/lib/incmod_8 similarity index 100% rename from unit_test/lib/incmod_8 rename to tests/unit_test/lib/incmod_8 diff --git a/unit_test/lib/incmod_d b/tests/unit_test/lib/incmod_d similarity index 100% rename from unit_test/lib/incmod_d rename to tests/unit_test/lib/incmod_d diff --git a/unit_test/scripts/run_theia.ksh b/tests/unit_test/scripts/run_theia.ksh similarity index 100% rename from unit_test/scripts/run_theia.ksh rename to tests/unit_test/scripts/run_theia.ksh diff --git a/unit_test/scripts/run_unit_test.ksh b/tests/unit_test/scripts/run_unit_test.ksh similarity index 100% rename from unit_test/scripts/run_unit_test.ksh rename to tests/unit_test/scripts/run_unit_test.ksh diff --git a/unit_test/scripts/run_wcoss-cray.lsf b/tests/unit_test/scripts/run_wcoss-cray.lsf similarity index 100% rename from unit_test/scripts/run_wcoss-cray.lsf rename to tests/unit_test/scripts/run_wcoss-cray.lsf diff --git a/unit_test/scripts/run_wcoss-dell.sh b/tests/unit_test/scripts/run_wcoss-dell.sh similarity index 100% rename from unit_test/scripts/run_wcoss-dell.sh rename to tests/unit_test/scripts/run_wcoss-dell.sh diff --git a/unit_test/scripts/run_wcoss.lsf b/tests/unit_test/scripts/run_wcoss.lsf similarity index 100% rename from unit_test/scripts/run_wcoss.lsf rename to tests/unit_test/scripts/run_wcoss.lsf diff --git a/unit_test/sorc/Makefile.in b/tests/unit_test/sorc/Makefile.in similarity index 100% rename from unit_test/sorc/Makefile.in rename to tests/unit_test/sorc/Makefile.in diff --git a/unit_test/sorc/configure b/tests/unit_test/sorc/configure similarity index 100% rename from unit_test/sorc/configure rename to tests/unit_test/sorc/configure diff --git a/unit_test/sorc/configure.ac b/tests/unit_test/sorc/configure.ac similarity index 100% rename from unit_test/sorc/configure.ac rename to tests/unit_test/sorc/configure.ac diff --git a/unit_test/sorc/make_unit_test.ksh b/tests/unit_test/sorc/make_unit_test.ksh similarity index 100% rename from unit_test/sorc/make_unit_test.ksh rename to tests/unit_test/sorc/make_unit_test.ksh diff --git a/unit_test/sorc/make_unit_test_wcoss-cray.ksh b/tests/unit_test/sorc/make_unit_test_wcoss-cray.ksh similarity index 100% rename from unit_test/sorc/make_unit_test_wcoss-cray.ksh rename to tests/unit_test/sorc/make_unit_test_wcoss-cray.ksh diff --git a/unit_test/sorc/scalar/Makefile.in b/tests/unit_test/sorc/scalar/Makefile.in similarity index 100% rename from unit_test/sorc/scalar/Makefile.in rename to tests/unit_test/sorc/scalar/Makefile.in diff --git a/unit_test/sorc/scalar/driver.f90 b/tests/unit_test/sorc/scalar/driver.f90 similarity index 100% rename from unit_test/sorc/scalar/driver.f90 rename to tests/unit_test/sorc/scalar/driver.f90 diff --git a/unit_test/sorc/scalar/get_input_data.f90 b/tests/unit_test/sorc/scalar/get_input_data.f90 similarity index 100% rename from unit_test/sorc/scalar/get_input_data.f90 rename to tests/unit_test/sorc/scalar/get_input_data.f90 diff --git a/unit_test/sorc/scalar/interp.f90 b/tests/unit_test/sorc/scalar/interp.f90 similarity index 100% rename from unit_test/sorc/scalar/interp.f90 rename to tests/unit_test/sorc/scalar/interp.f90 diff --git a/unit_test/sorc/scalar/make.dependencies b/tests/unit_test/sorc/scalar/make.dependencies similarity index 100% rename from unit_test/sorc/scalar/make.dependencies rename to tests/unit_test/sorc/scalar/make.dependencies diff --git a/unit_test/sorc/scalar/make.filelist b/tests/unit_test/sorc/scalar/make.filelist similarity index 100% rename from unit_test/sorc/scalar/make.filelist rename to tests/unit_test/sorc/scalar/make.filelist diff --git a/unit_test/sorc/scalar/make.rules b/tests/unit_test/sorc/scalar/make.rules similarity index 100% rename from unit_test/sorc/scalar/make.rules rename to tests/unit_test/sorc/scalar/make.rules diff --git a/unit_test/sorc/vector/Makefile.in b/tests/unit_test/sorc/vector/Makefile.in similarity index 100% rename from unit_test/sorc/vector/Makefile.in rename to tests/unit_test/sorc/vector/Makefile.in diff --git a/unit_test/sorc/vector/driver.f90 b/tests/unit_test/sorc/vector/driver.f90 similarity index 100% rename from unit_test/sorc/vector/driver.f90 rename to tests/unit_test/sorc/vector/driver.f90 diff --git a/unit_test/sorc/vector/get_input_data.f90 b/tests/unit_test/sorc/vector/get_input_data.f90 similarity index 100% rename from unit_test/sorc/vector/get_input_data.f90 rename to tests/unit_test/sorc/vector/get_input_data.f90 diff --git a/unit_test/sorc/vector/interp.f90 b/tests/unit_test/sorc/vector/interp.f90 similarity index 100% rename from unit_test/sorc/vector/interp.f90 rename to tests/unit_test/sorc/vector/interp.f90 diff --git a/unit_test/sorc/vector/make.dependencies b/tests/unit_test/sorc/vector/make.dependencies similarity index 100% rename from unit_test/sorc/vector/make.dependencies rename to tests/unit_test/sorc/vector/make.dependencies diff --git a/unit_test/sorc/vector/make.filelist b/tests/unit_test/sorc/vector/make.filelist similarity index 100% rename from unit_test/sorc/vector/make.filelist rename to tests/unit_test/sorc/vector/make.filelist diff --git a/unit_test/sorc/vector/make.rules b/tests/unit_test/sorc/vector/make.rules similarity index 100% rename from unit_test/sorc/vector/make.rules rename to tests/unit_test/sorc/vector/make.rules diff --git a/unit_test_for_c/README b/tests/unit_test_for_c/README similarity index 100% rename from unit_test_for_c/README rename to tests/unit_test_for_c/README diff --git a/unit_test_for_c/exec/.gitignore b/tests/unit_test_for_c/exec/.gitignore similarity index 100% rename from unit_test_for_c/exec/.gitignore rename to tests/unit_test_for_c/exec/.gitignore diff --git a/unit_test_for_c/lib/incmod_4 b/tests/unit_test_for_c/lib/incmod_4 similarity index 100% rename from unit_test_for_c/lib/incmod_4 rename to tests/unit_test_for_c/lib/incmod_4 diff --git a/unit_test_for_c/lib/incmod_8 b/tests/unit_test_for_c/lib/incmod_8 similarity index 100% rename from unit_test_for_c/lib/incmod_8 rename to tests/unit_test_for_c/lib/incmod_8 diff --git a/unit_test_for_c/lib/incmod_d b/tests/unit_test_for_c/lib/incmod_d similarity index 100% rename from unit_test_for_c/lib/incmod_d rename to tests/unit_test_for_c/lib/incmod_d diff --git a/unit_test_for_c/scripts/run_theia.ksh b/tests/unit_test_for_c/scripts/run_theia.ksh similarity index 100% rename from unit_test_for_c/scripts/run_theia.ksh rename to tests/unit_test_for_c/scripts/run_theia.ksh diff --git a/unit_test_for_c/scripts/run_unit_test.ksh b/tests/unit_test_for_c/scripts/run_unit_test.ksh similarity index 100% rename from unit_test_for_c/scripts/run_unit_test.ksh rename to tests/unit_test_for_c/scripts/run_unit_test.ksh diff --git a/unit_test_for_c/scripts/run_wcoss-cray.lsf b/tests/unit_test_for_c/scripts/run_wcoss-cray.lsf similarity index 100% rename from unit_test_for_c/scripts/run_wcoss-cray.lsf rename to tests/unit_test_for_c/scripts/run_wcoss-cray.lsf diff --git a/unit_test_for_c/scripts/run_wcoss-dell.sh b/tests/unit_test_for_c/scripts/run_wcoss-dell.sh similarity index 100% rename from unit_test_for_c/scripts/run_wcoss-dell.sh rename to tests/unit_test_for_c/scripts/run_wcoss-dell.sh diff --git a/unit_test_for_c/scripts/run_wcoss.lsf b/tests/unit_test_for_c/scripts/run_wcoss.lsf similarity index 100% rename from unit_test_for_c/scripts/run_wcoss.lsf rename to tests/unit_test_for_c/scripts/run_wcoss.lsf diff --git a/unit_test_for_c/sorc/make_unit_test.ksh b/tests/unit_test_for_c/sorc/make_unit_test.ksh similarity index 100% rename from unit_test_for_c/sorc/make_unit_test.ksh rename to tests/unit_test_for_c/sorc/make_unit_test.ksh diff --git a/unit_test_for_c/sorc/test_gdswzd_4.c b/tests/unit_test_for_c/sorc/test_gdswzd_4.c similarity index 100% rename from unit_test_for_c/sorc/test_gdswzd_4.c rename to tests/unit_test_for_c/sorc/test_gdswzd_4.c diff --git a/unit_test_for_c/sorc/test_gdswzd_8.c b/tests/unit_test_for_c/sorc/test_gdswzd_8.c similarity index 100% rename from unit_test_for_c/sorc/test_gdswzd_8.c rename to tests/unit_test_for_c/sorc/test_gdswzd_8.c diff --git a/unit_test_for_c/sorc/test_gdswzd_d.c b/tests/unit_test_for_c/sorc/test_gdswzd_d.c similarity index 100% rename from unit_test_for_c/sorc/test_gdswzd_d.c rename to tests/unit_test_for_c/sorc/test_gdswzd_d.c diff --git a/unit_test/lib/libip2_4.a b/unit_test/lib/libip2_4.a deleted file mode 120000 index 8a6ca26..0000000 --- a/unit_test/lib/libip2_4.a +++ /dev/null @@ -1 +0,0 @@ -../../ip2/v1.0.0/libip2_v1.0.0_4.a \ No newline at end of file diff --git a/unit_test/lib/libip2_8.a b/unit_test/lib/libip2_8.a deleted file mode 120000 index 9dade57..0000000 --- a/unit_test/lib/libip2_8.a +++ /dev/null @@ -1 +0,0 @@ -../../ip2/v1.0.0/libip2_v1.0.0_8.a \ No newline at end of file diff --git a/unit_test/lib/libip2_d.a b/unit_test/lib/libip2_d.a deleted file mode 120000 index 78c8be9..0000000 --- a/unit_test/lib/libip2_d.a +++ /dev/null @@ -1 +0,0 @@ -../../ip2/v1.0.0/libip2_v1.0.0_d.a \ No newline at end of file diff --git a/unit_test_for_c/lib/libip2_4.a b/unit_test_for_c/lib/libip2_4.a deleted file mode 120000 index 8a6ca26..0000000 --- a/unit_test_for_c/lib/libip2_4.a +++ /dev/null @@ -1 +0,0 @@ -../../ip2/v1.0.0/libip2_v1.0.0_4.a \ No newline at end of file diff --git a/unit_test_for_c/lib/libip2_8.a b/unit_test_for_c/lib/libip2_8.a deleted file mode 120000 index 9dade57..0000000 --- a/unit_test_for_c/lib/libip2_8.a +++ /dev/null @@ -1 +0,0 @@ -../../ip2/v1.0.0/libip2_v1.0.0_8.a \ No newline at end of file diff --git a/unit_test_for_c/lib/libip2_d.a b/unit_test_for_c/lib/libip2_d.a deleted file mode 120000 index 78c8be9..0000000 --- a/unit_test_for_c/lib/libip2_d.a +++ /dev/null @@ -1 +0,0 @@ -../../ip2/v1.0.0/libip2_v1.0.0_d.a \ No newline at end of file