Skip to content

strengthen fortran front-end

Choose a tag to compare

@scivision scivision released this 08 Feb 05:23
36155a4

Strengthen Fortran front-end gemini3d.run in several ways

  • add optional md5 checksum to downloads
  • make reference data downloads automatic, occurring at ctest time by CMake fixtures
  • integrate hwloc in a more discrete, sensible way under src/utils/hwloc.
  • add msis unit tests
  • organize gemini3d.bin tests in a more hierarchal way, unit testing low level parts first

UX: add recommendations at end of Cmake configuration printout. For example;

  • suggesting Ninja if Make is being used
  • suggesting newer CMake as appropriate
  • suggesting hwloc use

Added CMake scripts to install/build CMake, Ninja or hwloc, starting from CMake >= 3.7

Raspberry Pi 4 results

Using system lapack, self-built Scalapack 2.1.0, MUMPS 5.3.5

$ ctest
Test project /home/pi/code/gemini3d/build
      Start 49: unit:HWLOC
 1/49 Test #49: unit:HWLOC .......................   Passed    0.06 sec
      Start 28: unit:mpi_basic
 2/49 Test #28: unit:mpi_basic ...................   Passed    1.50 sec
      Start 29: unit:scalapack
 3/49 Test #29: unit:scalapack ...................   Passed    0.45 sec
      Start 30: unit:mumps_basic
 4/49 Test #30: unit:mumps_basic .................   Passed    0.46 sec
      Start 27: unit:gemini_exe_ok
 5/49 Test #27: unit:gemini_exe_ok ...............   Passed    0.02 sec
      Start  1: gemini:2dns_fang:setup
 6/49 Test  #1: gemini:2dns_fang:setup ...........   Passed    0.66 sec
      Start  2: gemini:hdf5:2dns_fang:dryrun
 7/49 Test  #2: gemini:hdf5:2dns_fang:dryrun .....   Passed    0.73 sec
      Start  3: gemini:hdf5:2dns_fang
 8/49 Test  #3: gemini:hdf5:2dns_fang ............   Passed   17.72 sec
      Start  4: gemini:compare:hdf5:2dns_fang
 9/49 Test  #4: gemini:compare:hdf5:2dns_fang ....   Passed    0.29 sec
      Start  5: gemini:2dew_fang:setup
10/49 Test  #5: gemini:2dew_fang:setup ...........   Passed    0.97 sec
      Start  6: gemini:hdf5:2dew_fang:dryrun
11/49 Test  #6: gemini:hdf5:2dew_fang:dryrun .....   Passed    0.73 sec
      Start  7: gemini:hdf5:2dew_fang
12/49 Test  #7: gemini:hdf5:2dew_fang ............   Passed   23.69 sec
      Start  8: gemini:compare:hdf5:2dew_fang
13/49 Test  #8: gemini:compare:hdf5:2dew_fang ....   Passed    0.39 sec
      Start  9: gemini:3d_fang:setup
14/49 Test  #9: gemini:3d_fang:setup .............   Passed    2.07 sec
      Start 10: gemini:hdf5:3d_fang:dryrun
15/49 Test #10: gemini:hdf5:3d_fang:dryrun .......   Passed    0.94 sec
      Start 11: gemini:hdf5:3d_fang
16/49 Test #11: gemini:hdf5:3d_fang ..............   Passed  138.21 sec
      Start 12: gemini:compare:hdf5:3d_fang
17/49 Test #12: gemini:compare:hdf5:3d_fang ......   Passed    0.85 sec
      Start 13: gemini:2dns_glow:setup
18/49 Test #13: gemini:2dns_glow:setup ...........   Passed    0.77 sec
      Start 14: gemini:hdf5:2dns_glow:dryrun
19/49 Test #14: gemini:hdf5:2dns_glow:dryrun .....   Passed    1.22 sec
      Start 15: gemini:hdf5:2dns_glow
20/49 Test #15: gemini:hdf5:2dns_glow ............   Passed   46.21 sec
      Start 16: gemini:compare:hdf5:2dns_glow
21/49 Test #16: gemini:compare:hdf5:2dns_glow ....   Passed    0.31 sec
      Start 17: gemini:2dew_glow:setup
22/49 Test #17: gemini:2dew_glow:setup ...........   Passed    0.80 sec
      Start 18: gemini:hdf5:2dew_glow:dryrun
23/49 Test #18: gemini:hdf5:2dew_glow:dryrun .....   Passed    1.31 sec
      Start 19: gemini:hdf5:2dew_glow
24/49 Test #19: gemini:hdf5:2dew_glow ............   Passed   69.28 sec
      Start 20: gemini:compare:hdf5:2dew_glow
25/49 Test #20: gemini:compare:hdf5:2dew_glow ....   Passed    0.44 sec
      Start 21: gemini:3d_glow:setup
26/49 Test #21: gemini:3d_glow:setup .............   Passed    1.14 sec
      Start 22: gemini:hdf5:3d_glow:dryrun
27/49 Test #22: gemini:hdf5:3d_glow:dryrun .......   Passed    4.32 sec
      Start 23: gemini:hdf5:3d_glow
28/49 Test #23: gemini:hdf5:3d_glow ..............   Passed  368.89 sec
      Start 24: gemini:compare:hdf5:3d_glow
29/49 Test #24: gemini:compare:hdf5:3d_glow ......   Passed    0.96 sec
      Start 25: scalapack:BLACSbasic
30/49 Test #25: scalapack:BLACSbasic .............   Passed    0.40 sec
      Start 26: scalapack:unit:real64
31/49 Test #26: scalapack:unit:real64 ............   Passed    0.44 sec
      Start 31: unit:msis_setup
32/49 Test #31: unit:msis_setup ..................   Passed    0.03 sec
      Start 32: unit:msis_compare
33/49 Test #32: unit:msis_compare ................   Passed    0.03 sec
      Start 33: unit:fangIonize
34/49 Test #33: unit:fangIonize ..................   Passed    0.06 sec
      Start 34: glow_basic
35/49 Test #34: glow_basic .......................   Passed    0.04 sec
      Start 35: unit:interp1
36/49 Test #35: unit:interp1 .....................   Passed    0.01 sec
      Start 36: unit:interp2
37/49 Test #36: unit:interp2 .....................   Passed    0.20 sec
      Start 37: unit:interp3
38/49 Test #37: unit:interp3 .....................   Passed   14.59 sec
      Start 38: unit:diffusion1
39/49 Test #38: unit:diffusion1 ..................   Passed    0.11 sec
      Start 39: unit:potential2
40/49 Test #39: unit:potential2 ..................   Passed   14.51 sec
      Start 40: unit:mpi:excessCPU
41/49 Test #40: unit:mpi:excessCPU ...............   Passed    0.01 sec
      Start 41: unit:pathlib
42/49 Test #41: unit:pathlib .....................   Passed    0.02 sec
      Start 42: unit:namelist
43/49 Test #42: unit:namelist ....................   Passed    0.01 sec
      Start 43: unit:compiler_vendor
44/49 Test #43: unit:compiler_vendor .............   Passed    0.00 sec
      Start 44: unit:DateFormats
45/49 Test #44: unit:DateFormats .................   Passed    0.00 sec
      Start 45: unit:DateRollover
46/49 Test #45: unit:DateRollover ................   Passed    0.01 sec
      Start 46: unit:SolarZenithAngle
47/49 Test #46: unit:SolarZenithAngle ............   Passed    0.00 sec
      Start 47: unit:magcalc_exe_ok
48/49 Test #47: unit:magcalc_exe_ok ..............   Passed    0.01 sec
      Start 48: unit:gemini3d_run_ok
49/49 Test #48: unit:gemini3d_run_ok .............   Passed    0.02 sec