Compiling/testing OOPS on cheyenne:

  • git clone https://github.com/JCSDA/OOPS.git
  • cd ./OOPS/
  • Execute the build_oops_cheyenne.csh script (temporary solution)
  • cd ./build/oops
  • ctest (some test might fail for the QG model) 

Adding a model interface: (temporary solution)

  • cd ./oops/
  • If the model is coded in some flavor of fortran (90 or more recent), use the ModelX as a template
    • cp -r ModelX Mom5Cice5
  • In ./oops/CMakeLists.txt, add the following line: add_subdirectory( Mom5Cice5 )

  • Rebuild from scratch (usin the build_oops_cheyenne.csh script)

  • Start editing the files under ./Mom5Cice5/model/

  • cd ~/OOPS/build/

  • make
  • if successful:
    • cd ~/OOPS/build/oops/
    • ctest
  • Running single test:
    • cd ~/OOPS/build/oops/Mom5Cice5/test
    • Edit CTestTestfile.cmake (write out how the test should be configured)
    • ./test_mom5cice5_geometry -- ./testinput/interfaces.json

Random Notes:

  • Adding netcdf:
    • load appropriate netcdf module, add to build script
    • In ~/OOPS/oops/CMakeList.txt, under dependencies, Add: 
         find_package( NetCDF3 REQUIRED )
         include_directories( ${NETCDF_INCLUDE_DIR} )
    • Need to add a few env var in build script as well

    • Edit ~/OOPS/oops/Mom5Cice5/model/CMakeLists.txt and add the fortran netcdf libraries


NICAS: Preliminary testing

While the entire state is initialized through OOPS, for the purpose of testing, we  only consider a small subset of the Ocean and Sea-ice state: 

  • Snow or ice surface temperature
  • Snow enthalpy (1 level)
  • Ice enthalpy (7 levels)
  • Upper ocean salinity (For freezing temperature)
  • Upper ocean temperature 

Test 0: Pass geometry and state to NICAS as column arrays/unstructured grids

Test 1: Applying NICAS to an increment ("single obs test", mostly zeros with a few strategically placed 1's) 

  • Example of applying NICAS to to the Antarctic region:

Note the the correlation field in the Weddell sea, close to the Antarctic Peninsula does not leak across the peninsula into the Amundsen Sea. 

  • Example of applying NICAS to to the Arctic region:


Test 2: Same single obs test as above but reading an ensemble (currently 4 members).

Technically working, but only 4 members available. NICAS returns XX^T o L dx

To do:

  • Balance/transform operators
  • Issues with mask?
  • MPI decomposition
  • Chose a model! 
  • Long term goal: Proper unstructured grid definition, and remove the need for masking, anisotropic localization ... 

  • No labels