diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 20f8abc5..68efa45b 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -71,6 +71,7 @@ set( soca_test_input testinput/letkf_split_observer.yml testinput/letkf_split_solver.yml testinput/letkf.yml + testinput/letkf_onestep_redist.yml testinput/letkf3d.yml testinput/linearmodel_oceaniceemulator.yml testinput/makeobs.yml @@ -145,6 +146,7 @@ set( soca_test_ref testref/letkf_split_observer.test testref/letkf_split_solver.test testref/letkf.test + testref/letkf_onestep_redist.test testref/letkf3d.test testref/makeobs.test testref/oceanSmoother.test @@ -768,6 +770,11 @@ soca_add_test( NAME letkf # NOTRAPFPE TEST_DEPENDS test_soca_gridgen ) +soca_add_test( NAME letkf_onestep_redist + EXE soca_letkf.x + # NOTRAPFPE + TEST_DEPENDS test_soca_gridgen ) + soca_add_test( NAME letkf3d EXE soca_letkf.x # NOTRAPFPE diff --git a/test/testinput/letkf3d.yml b/test/testinput/letkf3d.yml index dfa4de2f..3a7b9379 100644 --- a/test/testinput/letkf3d.yml +++ b/test/testinput/letkf3d.yml @@ -114,3 +114,4 @@ output: test: reference filename: testref/letkf3d.test test output filename: testoutput/letkf3d.test + float relative tolerance: 1.e-5 diff --git a/test/testinput/letkf_onestep_redist.yml b/test/testinput/letkf_onestep_redist.yml new file mode 100644 index 00000000..a89da4dd --- /dev/null +++ b/test/testinput/letkf_onestep_redist.yml @@ -0,0 +1,113 @@ +geometry: + 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 + +time window: + begin: &date 2018-04-14T00:00:00Z + length: P2D + +background: + members from template: + template: + date: 2018-04-15T00:00:00Z + ocn_filename: MOM.res.ens.%mem%.nc + read_from_file: 1 + basename: data_static/72x35x25/restarts_ens/ + state variables: + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_water_cell_thickness + - mass_concentration_of_chlorophyll_in_sea_water + - molar_concentration_of_biomass_in_sea_water_in_p_units + pattern: '%mem%' + nmembers: 4 + +observations: + observers: + - obs space: + name: SeaSurfaceTemp + use data frame container: true + redistribution: + name: Halo + halo size: 3500.0e3 + obsdataout: + engine: + type: H5File + obsfile: data_output/sst.nc + obsdatain: + engine: + type: H5File + obsfile: data_static/obs/sst.nc + simulated variables: [seaSurfaceTemperature] + obs operator: + name: Identity + observation alias file: testinput/obsop_name_map.yml + obs error: + covariance model: diagonal + obs localizations: + - localization method: Rossby + base value: 100.0e3 + rossby mult: 1.0 + min grid mult: 2.0 + min value: 200.0e3 + max value: 900.0e3 + obs filters: + - filter: Domain Check + where: + - variable: {name: GeoVaLs/sea_area_fraction} + minvalue: 0.5 + apply at iterations: 0,1 + + - obs space: + name: ADT + use data frame container: true + redistribution: + name: Halo + halo size: 3500.0e3 + obsdataout: + engine: + type: H5File + obsfile: data_output/adt.nc + obsdatain: + engine: + type: H5File + obsfile: data_static/obs/adt.nc + simulated variables: [absoluteDynamicTopography] + obs operator: + name: ADT + obs error: + covariance model: diagonal + obs localizations: + - localization method: Rossby + base value: 100.0e3 + rossby mult: 1.0 + min grid mult: 2.0 + min value: 200.0e3 + max value: 900.0e3 + obs filters: + - filter: Domain Check + where: + - variable: {name: GeoVaLs/sea_area_fraction} + minvalue: 0.5 + apply at iterations: 0,1 + +driver: + do posterior observer: true + +local ensemble DA: + solver: Deterministic LETKF + +output: + datadir: data_output/ + date: *date + exp: letkf_onestep_redist + type: ens + +test: + reference filename: testref/letkf_onestep_redist.test + test output filename: testoutput/letkf_onestep_redist.test + float relative tolerance: 1e-5 diff --git a/test/testref/eakf.test b/test/testref/eakf.test index ab24ebff..811a394a 100644 --- a/test/testref/eakf.test +++ b/test/testref/eakf.test @@ -74,6 +74,7 @@ SeaSurfaceTemp nobs= 190 Min=-5.7729528751167400, Max=2.9165190476353704, RMS=1. ADT nobs= 94 Min=-0.5538478248680494, Max=0.4971260506454178, RMS=0.1849878892403299 +ombg RMS: 1.0470660506201215 Background mean : Valid time: 2018-04-15T00:00:00Z sea_water_salinity min=10.7210460395083924 max=38.0000000000000000 mean=34.5212190251314084 @@ -160,5 +161,4 @@ SeaSurfaceTemp nobs= 190 Min=-2.7682370868262822, Max=2.1664215326329845, RMS=0. ADT nobs= 94 Min=-0.5447847648882311, Max=0.3848163874131774, RMS=0.1571987495020119 -ombg RMS: 1.0470660506201215 oman RMS: 0.5085469322968303 diff --git a/test/testref/getkf.test b/test/testref/getkf.test index 6e3674f5..db179dd4 100644 --- a/test/testref/getkf.test +++ b/test/testref/getkf.test @@ -74,6 +74,7 @@ SeaSurfaceTemp nobs= 190 Min=-5.7729528751167365, Max=2.9165190476353704, RMS=1. ADT nobs= 94 Min=-0.5538478248680494, Max=0.4971260506454180, RMS=0.1849878892403299 +ombg RMS: 1.0470660506201215 Background mean : Valid time: 2018-04-15T00:00:00Z sea_water_salinity min=10.7210460395083924 max=38.0000000000000000 mean=34.5212190251314084 @@ -160,5 +161,4 @@ SeaSurfaceTemp nobs= 190 Min=-3.0112018653886565, Max=2.3277481197466869, RMS=0. ADT nobs= 94 Min=-0.5476169327292075, Max=0.4435273995847866, RMS=0.1688684393709785 -ombg RMS: 1.0470660506201215 oman RMS: 0.6118543084833273 diff --git a/test/testref/letkf.test b/test/testref/letkf.test index 67193403..2d33084e 100644 --- a/test/testref/letkf.test +++ b/test/testref/letkf.test @@ -74,6 +74,7 @@ SeaSurfaceTemp nobs= 190 Min=-5.7729528751167365, Max=2.9165190476353704, RMS=1. ADT nobs= 94 Min=-0.5538478248680494, Max=0.4971260506454180, RMS=0.1849878892403299 +ombg RMS: 1.0470660506201215 Background mean : Valid time: 2018-04-15T00:00:00Z sea_water_salinity min=10.7210460395083924 max=38.0000000000000000 mean=34.5212190251314084 @@ -160,5 +161,4 @@ SeaSurfaceTemp nobs= 190 Min=-2.6815508491085396, Max=2.1880178372093884, RMS=0. ADT nobs= 94 Min=-0.5462180117680071, Max=0.4378032970820429, RMS=0.1670504287262663 -ombg RMS: 1.0470660506201215 oman RMS: 0.5793767635894295 diff --git a/test/testref/letkf3d.test b/test/testref/letkf3d.test index 1a566289..3ac233f2 100644 --- a/test/testref/letkf3d.test +++ b/test/testref/letkf3d.test @@ -74,6 +74,7 @@ SeaSurfaceTemp nobs= 190 Min=-5.7729528751167365, Max=2.9165190476353704, RMS=1. ADT nobs= 94 Min=-0.5538478248680494, Max=0.4971260506454180, RMS=0.1849878892403299 +ombg RMS: 1.0470660506201215 Background mean : Valid time: 2018-04-15T00:00:00Z sea_water_salinity min=10.7210460395083924 max=38.0000000000000000 mean=34.5212190251314084 @@ -130,5 +131,4 @@ SeaSurfaceTemp nobs= 190 Min=-2.7650466041631674, Max=2.2250705210044579, RMS=0. ADT nobs= 94 Min=-0.5466059097922167, Max=0.4391875053918117, RMS=0.1674894050256487 -ombg RMS: 1.0470660506201215 oman RMS: 0.5873824957894667 diff --git a/test/testref/letkf_onestep_redist.test b/test/testref/letkf_onestep_redist.test new file mode 100644 index 00000000..71aed275 --- /dev/null +++ b/test/testref/letkf_onestep_redist.test @@ -0,0 +1,98 @@ +Initial state for member 1: + Valid time: 2018-04-15T00:00:00Z + sea_water_salinity min=10.7210460395083924 max=38.0000000000000000 mean=34.5419625915569810 + sea_water_potential_temperature min=-1.8000000000000000 max=31.6933380143948185 mean=6.0930771904896686 + sea_surface_height_above_geoid min=-1.8995576445088340 max=0.9067222046846501 mean=-0.2838774533760896 + eastward_sea_water_velocity min=-0.8641522861445371 max=0.7036119745230547 mean=-0.0002658780928043 + northward_sea_water_velocity min=-0.7634486847749620 max=1.4361818799661243 mean=0.0020281996110749 + sea_water_cell_thickness min=0.0009999999999977 max=1345.6400000000003274 mean=128.6280642064969300 + mass_concentration_of_chlorophyll_in_sea_water min=0.0000000000000000 max=4.6657951350551032 mean=0.1185041139511486 +molar_concentration_of_biomass_in_sea_water_in_p_units min=0.0000000000000000 max=0.0000001881576257 mean=0.0000000065417694 +Initial state for member 2: + Valid time: 2018-04-15T00:00:00Z + sea_water_salinity min=10.7210460395083924 max=38.0000000000000000 mean=34.5008055276674099 + sea_water_potential_temperature min=-1.8000000000000000 max=32.0000000000000000 mean=6.0150591001457707 + sea_surface_height_above_geoid min=-1.9417433210038664 max=0.9333653213444889 mean=-0.2625528699976196 + eastward_sea_water_velocity min=-0.8640250705300543 max=0.7018932512522951 mean=-0.0002610964507072 + northward_sea_water_velocity min=-0.7694797184378191 max=1.4375515680969777 mean=0.0020544300976987 + sea_water_cell_thickness min=0.0009999999999977 max=1345.6400000000003274 mean=128.6280642064969300 + mass_concentration_of_chlorophyll_in_sea_water min=0.0000000000000000 max=4.6514396809792586 mean=0.1185783725979611 +molar_concentration_of_biomass_in_sea_water_in_p_units min=0.0000000000000000 max=0.0000001885820462 mean=0.0000000065396325 +Initial state for member 3: + Valid time: 2018-04-15T00:00:00Z + sea_water_salinity min=10.7210460395083924 max=38.0000000000000000 mean=34.5137210491333732 + sea_water_potential_temperature min=-1.8000000000000000 max=31.7319078471261271 mean=6.1042012687179570 + sea_surface_height_above_geoid min=-2.0615870929429634 max=0.9597858134058795 mean=-0.2700534030103711 + eastward_sea_water_velocity min=-0.8556783788890301 max=0.6967957239020900 mean=-0.0002729819875959 + northward_sea_water_velocity min=-0.7695355448839387 max=1.4325062616604824 mean=0.0019994776930903 + sea_water_cell_thickness min=0.0009999999999977 max=1345.6400000000003274 mean=128.6280642064969300 + mass_concentration_of_chlorophyll_in_sea_water min=0.0000000000000000 max=4.6851634656692536 mean=0.1184876255877235 +molar_concentration_of_biomass_in_sea_water_in_p_units min=0.0000000000000000 max=0.0000001879042331 mean=0.0000000065383338 +Initial state for member 4: + Valid time: 2018-04-15T00:00:00Z + sea_water_salinity min=10.7210460395083924 max=38.0000000000000000 mean=34.5283869321679049 + sea_water_potential_temperature min=-1.8000000000000000 max=31.7429976792228743 mean=6.0404437708732059 + sea_surface_height_above_geoid min=-1.8977903550750153 max=0.9436246320617075 mean=-0.2728329753762969 + eastward_sea_water_velocity min=-0.8597490363137734 max=0.7017681968682301 mean=-0.0002253235005612 + northward_sea_water_velocity min=-0.7687583640000475 max=1.4312050700381247 mean=0.0020288845128394 + sea_water_cell_thickness min=0.0009999999999977 max=1345.6400000000003274 mean=128.6280642064969300 + mass_concentration_of_chlorophyll_in_sea_water min=0.0000000000000000 max=4.6937598186554741 mean=0.1185222324098563 +molar_concentration_of_biomass_in_sea_water_in_p_units min=0.0000000000000000 max=0.0000001876715923 mean=0.0000000065410833 +H(x) for member 1: +SeaSurfaceTemp nobs= 199 Min=-0.7441076047036195, Max=30.2955112206964365, RMS=24.1542415128504437 +ADT nobs= 99 Min=-1.1929069605178633, Max=1.3891336108272321, RMS=0.7501724249667436 +H(x) for member 2: +SeaSurfaceTemp nobs= 199 Min=-1.2926307112395774, Max=30.4841785881009670, RMS=24.2118380260323285 +ADT nobs= 99 Min=-1.1899094089431328, Max=1.3705839957238304, RMS=0.7280970231666010 +H(x) for member 3: +SeaSurfaceTemp nobs= 199 Min=-0.7441076047036195, Max=30.2633211470504264, RMS=24.3332862432359640 +ADT nobs= 99 Min=-1.3113170534052312, Max=1.4184680738516637, RMS=0.7455287795980962 +H(x) for member 4: +SeaSurfaceTemp nobs= 199 Min=-0.8582812691598128, Max=30.6045092155533567, RMS=24.1751261362401451 +ADT nobs= 99 Min=-1.1380124010811425, Max=1.4184998010520407, RMS=0.7327654107991013 +H(x) ensemble background mean: +SeaSurfaceTemp nobs= 190 Min=-0.7441076047036195, Max=30.3823358499043152, RMS=24.2905142987602680 +ADT nobs= 94 Min=-1.2014615059012805, Max=1.3991713703636917, RMS=0.7267517351147674 +background y - H(x): +SeaSurfaceTemp nobs= 190 Min=-5.7729528751167365, Max=2.9165190476353704, RMS=1.2735071931212980 +ADT nobs= 94 Min=-0.5538478248680494, Max=0.4971260506454180, RMS=0.1849878892403299 +ombg RMS: 1.0470660506201217 +Background mean : + Valid time: 2018-04-15T00:00:00Z + sea_water_salinity min=10.7210460395083924 max=38.0000000000000000 mean=34.5212190251314084 + sea_water_potential_temperature min=-1.8000000000000000 max=31.7266785987746971 mean=6.0631953325566466 + sea_surface_height_above_geoid min=-1.9007772322014664 max=0.9358744928741816 mean=-0.2723291754400941 + eastward_sea_water_velocity min=-0.8609011929693486 max=0.7010172866364175 mean=-0.0002563200079172 + northward_sea_water_velocity min=-0.7677450905884780 max=1.4343611949404274 mean=0.0020277479786758 + sea_water_cell_thickness min=0.0009999999999977 max=1345.6400000000003274 mean=128.6280642064969300 + mass_concentration_of_chlorophyll_in_sea_water min=0.0000000000000000 max=4.6740395250897722 mean=0.1185230861366729 +molar_concentration_of_biomass_in_sea_water_in_p_units min=0.0000000000000000 max=0.0000001872794279 mean=0.0000000065402047 +Analysis mean : + Valid time: 2018-04-15T00:00:00Z + sea_water_salinity min=10.7210460395083924 max=38.9426374894987077 mean=34.5403262005050635 + sea_water_potential_temperature min=-3.9558197101200556 max=38.6714738676487144 mean=6.0591579815921381 + sea_surface_height_above_geoid min=-1.9732261022153479 max=0.9352197397059688 mean=-0.2886079929248032 + eastward_sea_water_velocity min=-0.8574958351092546 max=0.6996394725896374 mean=-0.0002426670275349 + northward_sea_water_velocity min=-0.7670228669171157 max=1.4343628723192754 mean=0.0020763541285507 + sea_water_cell_thickness min=0.0009999999999977 max=1345.6400000000003274 mean=128.6280642064969300 + mass_concentration_of_chlorophyll_in_sea_water min=-0.0083651301133705 max=4.6760273110066786 mean=0.1184581902603862 +molar_concentration_of_biomass_in_sea_water_in_p_units min=-0.0000000005207065 max=0.0000001880427138 mean=0.0000000065369454 +H(x) for member 1: +SeaSurfaceTemp nobs= 199 Min=-0.7441076047036195, Max=30.3042888794550898, RMS=24.0300117218816709 +ADT nobs= 99 Min=-1.2343756914751667, Max=1.4045764779702747, RMS=0.7584498057382206 +H(x) for member 2: +SeaSurfaceTemp nobs= 199 Min=-0.7441076047036195, Max=30.4873115990294039, RMS=24.0608386410363764 +ADT nobs= 99 Min=-1.2815409568351583, Max=1.3957185703549448, RMS=0.7484805610825823 +H(x) for member 3: +SeaSurfaceTemp nobs= 199 Min=-0.7441076047036195, Max=30.2909308068779630, RMS=24.0943739609233631 +ADT nobs= 99 Min=-1.3354875201915919, Max=1.4260492303397303, RMS=0.7583117669598044 +H(x) for member 4: +SeaSurfaceTemp nobs= 199 Min=-0.7441076047036195, Max=30.4968381499420538, RMS=24.0427923556672525 +ADT nobs= 99 Min=-1.2164285805793780, Max=1.4300993689452004, RMS=0.7499529746477566 +H(x) ensemble analysis mean: +SeaSurfaceTemp nobs= 190 Min=-0.7441076047036195, Max=30.2774824215393252, RMS=24.1150368856140958 +ADT nobs= 94 Min=-1.2669581872703237, Max=1.4141109119025375, RMS=0.7444150554792189 +analysis y - H(x): +SeaSurfaceTemp nobs= 190 Min=-2.7650477587434921, Max=2.2250702873516861, RMS=0.7084014843788767 +ADT nobs= 94 Min=-0.5466059087702690, Max=0.4391875158220684, RMS=0.1674894064836074 +oman RMS: 0.5873824722242312 diff --git a/test/testref/letkf_split_observer.test b/test/testref/letkf_split_observer.test index 8b359c10..d2712541 100644 --- a/test/testref/letkf_split_observer.test +++ b/test/testref/letkf_split_observer.test @@ -74,3 +74,5 @@ SeaSurfaceTemp nobs= 174 Min=-5.7729528751167365, Max=2.9165190476353704, RMS=1. ADT nobs= 94 Min=-0.5538478248680494, Max=0.4971260506454180, RMS=0.1849878892403299 +ombg RMS: 1.0499911788378988 + diff --git a/test/testref/letkf_split_solver.test b/test/testref/letkf_split_solver.test index c3d9b1a5..24cda0c4 100644 --- a/test/testref/letkf_split_solver.test +++ b/test/testref/letkf_split_solver.test @@ -38,42 +38,6 @@ Initial state for member 4: sea_water_cell_thickness min=0.0009999999999977 max=1345.6400000000003274 mean=128.6280642064969300 mass_concentration_of_chlorophyll_in_sea_water min=0.0000000000000000 max=4.6937598186554741 mean=0.1185222324098563 molar_concentration_of_biomass_in_sea_water_in_p_units min=0.0000000000000000 max=0.0000001876715923 mean=0.0000000065410833 -H(x) for member 1: - -SeaSurfaceTemp nobs= 199 Min=-0.7441076040267944, Max=30.2955112457275391, RMS=24.1542414568487942 - -ADT nobs= 99 Min=-1.1929069757461548, Max=1.3891335725784302, RMS=0.7501724258619157 - -H(x) for member 2: - -SeaSurfaceTemp nobs= 199 Min=-1.2926306724548340, Max=30.4841785430908203, RMS=24.2118379933261210 - -ADT nobs= 99 Min=-1.1899094581604004, Max=1.3705840110778809, RMS=0.7280970231002240 - -H(x) for member 3: - -SeaSurfaceTemp nobs= 199 Min=-0.7441076040267944, Max=30.2633209228515625, RMS=24.3332862908310048 - -ADT nobs= 99 Min=-1.3113170862197876, Max=1.4184681177139282, RMS=0.7455287813093371 - -H(x) for member 4: - -SeaSurfaceTemp nobs= 199 Min=-0.8582812547683716, Max=30.6045093536376953, RMS=24.1751261353867406 - -ADT nobs= 99 Min=-1.1380124092102051, Max=1.4184998273849487, RMS=0.7327654109864756 - -H(x) ensemble background mean: - -SeaSurfaceTemp nobs= 174 Min=-0.7441076040267944, Max=30.3823356628417969, RMS=24.1651791830011113 - -ADT nobs= 94 Min=-1.2014615237712860, Max=1.3991713821887970, RMS=0.7267517362875737 - -background y - H(x): - -SeaSurfaceTemp nobs= 174 Min=-5.7729525566101074, Max=2.9165191650390625, RMS=1.2959891751391457 - -ADT nobs= 94 Min=-0.5538478344678879, Max=0.4971260577440262, RMS=0.1849878892253866 - Background mean : Valid time: 2018-04-15T00:00:00Z sea_water_salinity min=10.7210460395083924 max=38.0000000000000000 mean=34.5212190251314084