E3SM-Project / HOMMEXX

Clone of ACME for CMDV-SE project to convert HOMME to C++
11 stars 0 forks source link

03/2013 BFJ 02/2016 MT 10/2016 DMH

Please see the HOMME wiki for information on how to build HOMME using the CMake build system. https://wiki.ucar.edu/display/homme/The+HOMME+CMake+build+and+testing+system

The CMAKE build system supports a number of user-configurable targets: sweqx, preqx, preqx_acc, swim, prim

Scripts which will CMake configure, build, construct namelists and run a simulation using these targets, see: homme/test/sw_conservative/swtc[1256]ref.sh homme/test/jw_baroclinic/baro.job

A typical CMAKE command might look like: cd $WDIR cmake -C ~/acme/components/cmake/machineFiles/edison.cmake \ -DPREQX_PLEV=30 -DPREQX_NP=4 ~/acme/components/homme

After running cmake with suitable command line options from a working directory WDIR, it will create

$WDIR/src/sweqx directory containing user-configured sweqx executable $WDIR/test_execs/swtcA directory for swtcA executable $WDIR/test_execs/swtcB directory for swtcB executable ...and similarly for the preqx and preqx_acc targets.

$WDIR/utils cprnc utility, and PIO and timing libraries $WDIR/tests directory containing all the HOMME regression tests

HOMME has a large regression test suite. For instructions on running and adding new tests, see homme/test/reg_test/README

DCMIP tests provide a standard means for testing and comparing the ACME HOMME dycore with other dycores both hydrostatic and nonhydrostatic. They have been placed in their own dcmip_test directory for now. To run a DCMIP tests, navigate to the appropriate directory and type make install to install test scripts and namelists.

The CMAKE code could use some cleanup.


OBSOLETE

03/2013 CGB and KJE and JER

HOMME now has a CMake build option for sweqx, swim, and preqx. It is in the BETA test mode, alert Chris Baker or Kate Evans or Jennifer Ribbeckof problems/unclear instructions (swim is the SW version of HOMME that uses trilinos in the implicit solve option)

  1. mkdir BUILD_DIR somewhere, usually the main trunk directory
  2. cp /bld/cmake-script/$APPROPRIATE_BUILD_SCRIPT into $BUILD_DIR
  3. export HOMME_ROOT="location_of trunk"
  4. JAGUAR ONLY: export XTPE_LINK_TYPE='dynamic' needed right now TODO: put into script build process
  5. Linux box ONLY: export Z_DIR='/usr/lib64' needed right now TODO: put into script build process
  6. Modify script as appropriate (DEBUG or not etc) a. PLEV=# vertical levels b. NUM_POINTS=np c. -D CMAKE_INSTALL_PREFIX=where /bin/$EXE will sit
  7. ./$APPROPRIATE_BUILD_SCRIPT
  8. make -j4
  9. make install (where you told it to go)

most build failures are due to residual build info. In the build directory: rm -rf CMakeCache.txt CMakeFiles src utils cmake_install.cmake Makefile bin install_manifest.txt *.h to get a fresh build starting point.