diff --git a/src/mains/CMakeLists.txt b/src/mains/CMakeLists.txt index bee4de4c..bfdb1bf6 100644 --- a/src/mains/CMakeLists.txt +++ b/src/mains/CMakeLists.txt @@ -103,8 +103,9 @@ ecbuild_add_executable( TARGET soca_gen_hybrid_linear_model_coeffs.x SOURCES GenHybridLinearModelCoeffs.cc LIBS soca ) -ecbuild_add_executable( TARGET soca_linearization_error.x - SOURCES LinearizationError.cc + +ecbuild_add_executable( TARGET soca_tlm_toolbox.x + SOURCES TLMToolbox.cc LIBS soca ) diff --git a/src/mains/LinearizationError.cc b/src/mains/TLMToolbox.cc similarity index 62% rename from src/mains/LinearizationError.cc rename to src/mains/TLMToolbox.cc index 37a3c818..9def0908 100644 --- a/src/mains/LinearizationError.cc +++ b/src/mains/TLMToolbox.cc @@ -1,5 +1,5 @@ /* - * (C) Copyright 2024- UCAR. + * (C) Copyright 2025- UCAR. * * This software is licensed under the terms of the Apache Licence Version 2.0 * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. @@ -7,12 +7,12 @@ #include "oops/runs/Run.h" -#include "oops/runs/LinearizationError.h" +#include "oops/runs/TLMToolbox.h" #include "soca/Traits.h" int main(int argc, char ** argv) { oops::Run run(argc, argv); - oops::LinearizationError linearizationError; - return run.execute(linearizationError); + oops::TLMToolbox tlmToolbox; + return run.execute(tlmToolbox); } diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index eca69c7d..55f353da 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -76,7 +76,6 @@ set( soca_test_input testinput/letkf_split_solver.yml testinput/letkf.yml testinput/letkf3d.yml - testinput/linearization_error.yml testinput/linearmodel_oceaniceemulator.yml testinput/makeobs.yml testinput/model.yml @@ -94,6 +93,7 @@ set( soca_test_input testinput/setcorscales.yml testinput/sqrtvertloc.yml testinput/state.yml + testinput/tlm_toolbox_linearization_error.yml testinput/varchange_ana2model.yml testinput/varchange_balance_TSSSH.yml testinput/varchange_balance.yml @@ -148,7 +148,6 @@ set( soca_test_ref testref/letkf_split_solver.test testref/letkf.test testref/letkf3d.test - testref/linearization_error.test testref/makeobs.test testref/oceanSmoother.test testref/parameters_bump_cor_nicas_scales.test @@ -157,6 +156,7 @@ set( soca_test_ref testref/parameters_bump_loc.test testref/setcorscales.test testref/sqrtvertloc.test + testref/tlm_toolbox_linearization_error.test ) # Create directory for test input/output/reference and symlink all files @@ -593,8 +593,8 @@ soca_add_test( NAME gen_hybrid_linear_model_coeffs test_soca_forecast_mom6_ens2 test_soca_forecast_mom6_ens3 ) -soca_add_test( NAME linearization_error - EXE soca_linearization_error.x +soca_add_test( NAME tlm_toolbox_linearization_error + EXE soca_tlm_toolbox.x TEST_DEPENDS test_soca_gridgen test_soca_forecast_mom6 test_soca_forecast_mom6_ens1 diff --git a/test/testinput/linearization_error.yml b/test/testinput/tlm_toolbox_linearization_error.yml similarity index 91% rename from test/testinput/linearization_error.yml rename to test/testinput/tlm_toolbox_linearization_error.yml index cf34efb2..70e1ecb6 100644 --- a/test/testinput/linearization_error.yml +++ b/test/testinput/tlm_toolbox_linearization_error.yml @@ -2,7 +2,7 @@ forecast length: PT12H time resolution: PT6H # Linear model (HTLM or TLM) -linear model geometry: &geom +geometry: &geom geom_grid_file: data_generated/gridgen/soca_gridspec.72x35x25.nc mom6_input_nml: data_static/72x35x25/input.nml fields metadata: data_static/fields_metadata.yml @@ -157,25 +157,22 @@ model: state variables: *state_vars ocn_filename: ocn.fcst_ens1.fc.2018-04-15T00:00:00Z.PT12H.nc -model geometry: *geom - -model aux increment: {} -model aux control: {} +#model geometry: *geom +model aux increment: null +model aux control: null +compute error: true output: - datadir: data_output/ - exp: linearization_error - type: an - -#output on latlon grid: -# local interpolator type: oops unstructured grid interpolator -# resolution in degrees: 5.0 -# variables to output: [tocn,socn] -# model levels: [1] -# datapath: data_output -# filename prefix: linearization-error + dx: + datadir: data_output/ + exp: linearization_error_dx + type: an + error: + datadir: data_output/ + exp: linearization_error_error + type: an test: - reference filename: testref/linearization_error.test - test output filename: testoutput/linearization_error.test + reference filename: testref/tlm_toolbox_linearization_error.test + test output filename: testoutput/tlm_toolbox_linearization_error.test float absolute tolerance: 4e-4 diff --git a/test/testref/linearization_error.test b/test/testref/tlm_toolbox_linearization_error.test similarity index 50% rename from test/testref/linearization_error.test rename to test/testref/tlm_toolbox_linearization_error.test index 4cc52d31..592782da 100644 --- a/test/testref/linearization_error.test +++ b/test/testref/tlm_toolbox_linearization_error.test @@ -1,4 +1,4 @@ -fd at 2018-04-15T00:00:00Z: +dx at 2018-04-15T00:00:00Z: Valid time: 2018-04-15T00:00:00Z sea_water_salinity min=-2.4416591897031168 max=1.3230360133306505 mean=-0.0024271345954631 sea_water_potential_temperature min=-2.3910221032509291 max=3.3092213597659246 mean=0.0755122321363400 @@ -7,10 +7,10 @@ sea_water_potential_temperature min=-2.3910221032509291 max=3.30922135976592 sea_surface_height_above_geoid min=-0.3751396642347711 max=0.4474811141886338 mean=-0.0070871110169232 sea_water_cell_thickness min=0.0000000000000000 max=0.0000000000000000 mean=0.0000000000000000 sea_water_depth min=0.0000000000000000 max=0.0000000000000000 mean=0.0000000000000000 -fd at 2018-04-15T06:00:00Z: +dx at 2018-04-15T06:00:00Z: Valid time: 2018-04-15T06:00:00Z - sea_water_salinity min=-2.4416358677853163 max=1.1534824057034487 mean=-0.0066576331336771 -sea_water_potential_temperature min=-2.3771291528248519 max=3.2135774101401080 mean=0.0706268112865332 + sea_water_salinity min=-2.4416358677853567 max=1.1534824057032822 mean=-0.0066576331336723 +sea_water_potential_temperature min=-2.3771291528245984 max=3.2135774101400543 mean=0.0706268112865569 eastward_sea_water_velocity min=-0.0156308673181528 max=0.0151426414195125 mean=-0.0000246839772978 northward_sea_water_velocity min=-0.0120443919614510 max=0.0125571658843872 mean=0.0000088038774601 sea_surface_height_above_geoid min=-0.3751396642347711 max=0.4474811141886338 mean=-0.0070871110169232 @@ -18,17 +18,17 @@ sea_water_potential_temperature min=-2.3771291528248519 max=3.21357741014010 sea_water_depth min=0.0000000000000000 max=0.0000000000000000 mean=0.0000000000000000 error at 2018-04-15T06:00:00Z: Valid time: 2018-04-15T06:00:00Z - sea_water_salinity min=-0.6287769426164933 max=1.0218095112695806 mean=0.0046348378276148 -sea_water_potential_temperature min=-1.9081933268636009 max=2.5014114191228192 mean=-0.0027609208080969 - eastward_sea_water_velocity min=-0.3768127712514624 max=0.5726446123948353 mean=0.0002271385239813 - northward_sea_water_velocity min=-0.8348533647988179 max=0.3457301759780138 mean=-0.0001815430546837 - sea_surface_height_above_geoid min=-0.4339260897259428 max=0.2887292509849344 mean=-0.0045835768049616 - sea_water_cell_thickness min=-1049.5886754000971450 max=859.4196733784333446 mean=0.0001140251676941 - sea_water_depth min=-923.3373591595991456 max=1300.2270897745663660 mean=2.0504234514059227 -fd at 2018-04-15T12:00:00Z: + sea_water_salinity min=-0.6287769426170158 max=1.0218095112622763 mean=0.0046348378276277 +sea_water_potential_temperature min=-1.9081933268627753 max=2.5014114191035581 mean=-0.0027609208079935 + eastward_sea_water_velocity min=-0.3768127712517751 max=0.5726446123929974 mean=0.0002271385239766 + northward_sea_water_velocity min=-0.8348533647588463 max=0.3457301759569202 mean=-0.0001815430546738 + sea_surface_height_above_geoid min=-0.4339260897257430 max=0.2887292509873182 mean=-0.0045835768049720 + sea_water_cell_thickness min=-1049.5886753924626191 max=859.4196733767198566 mean=0.0001140251676931 + sea_water_depth min=-923.3373591588422187 max=1300.2270897776716083 mean=2.0504234514056310 +dx at 2018-04-15T12:00:00Z: Valid time: 2018-04-15T12:00:00Z - sea_water_salinity min=-2.4416123564609222 max=1.0465779738787662 mean=-0.0086045353610376 -sea_water_potential_temperature min=-3.3168640368174058 max=3.1867835301944289 mean=0.0694357865576276 + sea_water_salinity min=-2.4416123564608756 max=1.0465779738784162 mean=-0.0086045353611034 +sea_water_potential_temperature min=-3.3168640368172300 max=3.1867835301944178 mean=0.0694357865576074 eastward_sea_water_velocity min=-0.0156308673181528 max=0.0151426414195125 mean=-0.0000246839772978 northward_sea_water_velocity min=-0.0120443919614510 max=0.0125571658843872 mean=0.0000088038774601 sea_surface_height_above_geoid min=-0.3751396642347711 max=0.4474811141886338 mean=-0.0070871110169232 @@ -36,10 +36,10 @@ sea_water_potential_temperature min=-3.3168640368174058 max=3.18678353019442 sea_water_depth min=0.0000000000000000 max=0.0000000000000000 mean=0.0000000000000000 error at 2018-04-15T12:00:00Z: Valid time: 2018-04-15T12:00:00Z - sea_water_salinity min=-0.5046573440158330 max=0.4636282194660545 mean=0.0046532672262387 -sea_water_potential_temperature min=-1.5447141194653669 max=1.6602832100304346 mean=-0.0017315771190042 - eastward_sea_water_velocity min=-0.5897328942585329 max=0.5648967059435075 mean=-0.0000630794310827 - northward_sea_water_velocity min=-0.9255121645643122 max=0.5997522468680587 mean=0.0002343308665657 - sea_surface_height_above_geoid min=-0.4439592639602647 max=0.3169346481338872 mean=-0.0041463458145450 - sea_water_cell_thickness min=-1143.8905370290074188 max=877.6668696017160300 mean=0.0001279054606528 - sea_water_depth min=-839.7087782350777161 max=1317.3185648236185443 mean=2.2373758266207657 + sea_water_salinity min=-0.5046573440159772 max=0.4636282194660997 mean=0.0046532672264905 +sea_water_potential_temperature min=-1.5447141194654319 max=1.6602832100324882 mean=-0.0017315771108859 + eastward_sea_water_velocity min=-0.5897328942619443 max=0.5648967059346989 mean=-0.0000630794311334 + northward_sea_water_velocity min=-0.9255121650760655 max=0.5997522468764696 mean=0.0002343308665230 + sea_surface_height_above_geoid min=-0.4439592639588614 max=0.3169346481336918 mean=-0.0041463458145508 + sea_water_cell_thickness min=-1143.8905370290988230 max=877.6668695993712390 mean=0.0001279054606518 + sea_water_depth min=-839.7087782316186804 max=1317.3185648237404166 mean=2.2373758266178352