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 ...