From 8a721c00b6945e5293b6c009c74dc809966f362d Mon Sep 17 00:00:00 2001 From: Travis Sluka Date: Thu, 17 Oct 2024 09:47:55 -0600 Subject: [PATCH] Remove SOCA internal variable names (#1082) * adjust print size automatically * ssh * tocn * mld * socn * more vars * make a bunch of tests work * more tests updated * all tests pass * revert depth_below_sea_surface * get rid of unused metadata fields * fix everything else I forgot * forgot a "<" --- src/soca/Fields/Fields.cc | 8 +- src/soca/Fields/FieldsMetadata.cc | 11 +- src/soca/Fields/FieldsMetadata.h | 7 +- src/soca/Fields/soca_fields_metadata_mod.F90 | 28 ++-- src/soca/Fields/soca_fields_mod.F90 | 16 +- src/soca/Geometry/soca_geom.interface.F90 | 2 +- src/soca/Increment/soca_increment_mod.F90 | 20 +-- .../Balance/soca_balance_mod.F90 | 54 +++---- .../BkgErr/soca_bkgerr_mod.F90 | 17 +- .../BkgErrGodas/soca_bkgerrgodas_mod.F90 | 28 ++-- .../util/soca_bkgerrutil_mod.F90 | 16 +- src/soca/SaberBlocks/BkgErrFilt/BkgErrFilt.cc | 8 +- src/soca/Utils/OceanSmoother.h | 4 +- .../Model2GeoVaLs/Model2GeoVaLs.F90 | 11 +- .../Soca2Cice/soca_soca2cice_mod.F90 | 30 ++-- src/soca/VariableChange/VariableChange.cc | 8 +- test/Data/fields_metadata.yml | 146 ++++++------------ test/executables/TestOceanSmoother.cc | 2 +- test/testinput/3dhyb.yml | 39 ++++- test/testinput/3dhyb_diffusion.yml | 47 +++++- test/testinput/3dhybfgat_pseudo.yml | 40 +++-- test/testinput/3dvar.yml | 41 ++++- test/testinput/3dvar_lowres.yml | 40 ++++- test/testinput/3dvar_nicas.yml | 31 ++-- test/testinput/3dvarfgat_pseudo.yml | 30 +++- test/testinput/4denvar.yml | 22 ++- test/testinput/4dhybenvar.yml | 28 +++- test/testinput/4dvar_htlm.yml | 32 +++- test/testinput/4dvar_identity.yml | 30 +++- test/testinput/addincrement.yml | 18 ++- test/testinput/convertincrement.yml | 24 ++- test/testinput/convertstate.yml | 9 +- test/testinput/convertstate_changevar.yml | 23 ++- test/testinput/convertstate_soca2cice.yml | 10 +- test/testinput/diffstates.yml | 13 +- test/testinput/dirac_diffusion.yml | 16 +- test/testinput/dirac_diffusion_lowres.yml | 16 +- .../testinput/dirac_soca_cor_nicas_scales.yml | 18 ++- test/testinput/dirac_soca_cov.yml | 26 +++- test/testinput/dirac_socahyb_cov.yml | 25 ++- test/testinput/ensmeanandvariance.yml | 12 +- test/testinput/enspert.yml | 34 +++- test/testinput/ensrecenter.yml | 14 +- test/testinput/forecast_identity.yml | 14 +- test/testinput/forecast_pseudo.yml | 8 +- .../gen_hybrid_linear_model_coeffs.yml | 39 +++-- test/testinput/geometry_iterator_2d.yml | 9 +- test/testinput/getvalues.yml | 18 ++- test/testinput/hofx_3d.yml | 20 ++- test/testinput/hofx_4d_pseudo.yml | 8 +- test/testinput/hofx_oasim_3d.yml | 24 ++- test/testinput/hybridgain.yml | 10 +- test/testinput/increment.yml | 16 +- test/testinput/letkf.yml | 12 +- test/testinput/letkf_split_observer.yml | 10 +- test/testinput/letkf_split_solver.yml | 10 +- test/testinput/linearization_error.yml | 49 +++--- test/testinput/makeobs.yml | 13 +- test/testinput/oceanSmoother.yml | 9 +- test/testinput/parameters_bump_cor_nicas.yml | 32 ++-- .../parameters_bump_cor_nicas_scales.yml | 23 ++- test/testinput/parameters_bump_cov.yml | 4 +- test/testinput/parameters_bump_loc.yml | 19 +-- test/testinput/parameters_diffusion.yml | 9 +- .../testinput/parameters_diffusion_lowres.yml | 7 +- test/testinput/parametric_stddev.yml | 21 ++- test/testinput/setcorscales.yml | 23 ++- test/testinput/sqrtvertloc.yml | 29 +++- test/testinput/state.yml | 19 ++- test/testinput/varchange_ana2model.yml | 17 +- test/testinput/varchange_balance.yml | 23 ++- test/testinput/varchange_balance_TSSSH.yml | 15 +- test/testinput/varchange_bkgerrgodas.yml | 23 ++- test/testinput/varchange_bkgerrsoca.yml | 16 +- .../testinput/varchange_bkgerrsoca_stddev.yml | 16 +- test/testref/convertincrement.test | 8 +- test/testref/convertstate_soca2cice.test | 40 ++--- 77 files changed, 1150 insertions(+), 517 deletions(-) diff --git a/src/soca/Fields/Fields.cc b/src/soca/Fields/Fields.cc index 7ff40b83e..d85e428ef 100644 --- a/src/soca/Fields/Fields.cc +++ b/src/soca/Fields/Fields.cc @@ -137,6 +137,12 @@ double Fields::norm() const { void Fields::print(std::ostream & os) const { os << std::endl << " Valid time: " << validTime(); + // find the longest field name, for use in formatting of the print + size_t maxNameLen = 0; + for (const auto & field : fieldSet_) { + maxNameLen = std::max(maxNameLen, field.name().size()); + } + // for each field for (const auto & field : fieldSet_) { size_t count = 0; @@ -175,7 +181,7 @@ void Fields::print(std::ostream & os) const { if (count > 0) sum /= count; // done with this field, print information - os << std::endl << std::right << std::setw(7) << field.name() + os << std::endl << std::right << std::setw(maxNameLen) << field.name() << " min=" << std::fixed << std::setw(12) << std::right << min << " max=" << std::fixed << std::setw(12) << diff --git a/src/soca/Fields/FieldsMetadata.cc b/src/soca/Fields/FieldsMetadata.cc index d74572f0c..bfaca0adc 100644 --- a/src/soca/Fields/FieldsMetadata.cc +++ b/src/soca/Fields/FieldsMetadata.cc @@ -33,21 +33,18 @@ FieldsMetadata::FieldsMetadata(const std::string & filename) { // read in portion of the values (not all are read in on the C++ side, until // needed) f->name = config.getString("name"); - f->getvalName = config.getString("getval name", f->name); - f->getvalNameSurface = config.getString("getval name surface", ""); + f->nameSurface = config.getString("name surface", ""); // check for duplicates if (fieldMetadata_.count(f->name) > 0 || - fieldMetadata_.count(f->getvalName) > 0 || - fieldMetadata_.count(f->getvalNameSurface) > 0) { + fieldMetadata_.count(f->nameSurface) > 0) { util::abor1_cpp("Duplicate field metadata: " + f->name); } // insert into the maps, multiple copies are inserted for valid name fieldMetadata_[f->name] = f; - fieldMetadata_[f->getvalName] = f; - if (f->getvalNameSurface != "") { - fieldMetadata_[f->getvalNameSurface] = f; + if (f->nameSurface != "") { + fieldMetadata_[f->nameSurface] = f; } } } diff --git a/src/soca/Fields/FieldsMetadata.h b/src/soca/Fields/FieldsMetadata.h index 38145407d..552c22822 100644 --- a/src/soca/Fields/FieldsMetadata.h +++ b/src/soca/Fields/FieldsMetadata.h @@ -21,10 +21,9 @@ namespace soca { /// variable name used by UFO, and the variable name used by UFO for the surface /// (if this is a 3D field). struct FieldMetadata { - std::string name; ///< The internal (within soca) variable name. - std::string getvalName; ///< The variable name used by UFO. - std::string getvalNameSurface; ///< The variable name used by UFO for the surface - /// (if this is a 3D field). + std::string name; ///< The soca and JEDI name. + std::string nameSurface; ///< The variable name used by UFO for the surface + /// (if this is a 3D field). }; // -------------------------------------------------------------------------------------- diff --git a/src/soca/Fields/soca_fields_metadata_mod.F90 b/src/soca/Fields/soca_fields_metadata_mod.F90 index e3f83d3c0..68b87f2a6 100644 --- a/src/soca/Fields/soca_fields_metadata_mod.F90 +++ b/src/soca/Fields/soca_fields_metadata_mod.F90 @@ -19,12 +19,11 @@ module soca_fields_metadata_mod !! !! Instances of these types are to be held by soca_fields_metadata type, public :: soca_field_metadata - character(len=:), allocatable :: name !< internal name used only by soca code + character(len=:), allocatable :: name !< name used by soca and JEDI + character(len=:), allocatable :: name_surface !< name used by UFO for the surface (if this is a 3D field) character(len=1) :: grid !< "h", "u" or "v" logical :: masked !< should use land mask when interpolating character(len=:), allocatable :: levels !< "1", or "full_ocn" - character(len=:), allocatable :: getval_name !< variable name used by UFO - character(len=:), allocatable :: getval_name_surface ! name used by UFO for the surface (if this is a 3D field) character(len=:), allocatable :: io_file !< the restart file domain (ocn, sfc, ice). Or if "CONSTANT" use the value in "constant_value" character(len=:), allocatable :: io_name !< the name use in the restart IO character(len=:), allocatable :: property !< physical property of the field, "none" or "positive_definite" @@ -88,6 +87,9 @@ subroutine soca_fields_metadata_create(self, filename) call conf_list(i)%get_or_die("name", self%metadata(i)%name) + if(.not. conf_list(i)%get("name surface", str)) str="" + self%metadata(i)%name_surface = str + if(.not. conf_list(i)%get("grid", str)) str = 'h' self%metadata(i)%grid = str @@ -97,12 +99,6 @@ subroutine soca_fields_metadata_create(self, filename) if(.not. conf_list(i)%get("levels", str)) str = "1" self%metadata(i)%levels = str - if(.not. conf_list(i)%get("getval name", str)) str=self%metadata(i)%name - self%metadata(i)%getval_name = str - - if(.not. conf_list(i)%get("getval name surface", str)) str="" - self%metadata(i)%getval_name_surface = str - if(.not. conf_list(i)%get("io name", str)) str = "" self%metadata(i)%io_name = str @@ -140,14 +136,9 @@ subroutine soca_fields_metadata_create(self, filename) do i=1,size(self%metadata) do j=i+1,size(self%metadata) if ( self%metadata(i)%name == self%metadata(j)%name .or. & - self%metadata(i)%name == self%metadata(j)%getval_name .or. & - self%metadata(i)%name == self%metadata(j)%getval_name_surface .or. & - self%metadata(i)%getval_name == self%metadata(j)%name .or. & - self%metadata(i)%getval_name == self%metadata(j)%getval_name .or. & - self%metadata(i)%getval_name == self%metadata(j)%getval_name_surface .or. & - ( self%metadata(i)%getval_name_surface /= "" .and. ( & - self%metadata(i)%getval_name_surface == self%metadata(j)%name .or. & - self%metadata(i)%getval_name_surface == self%metadata(j)%getval_name ))) then + self%metadata(i)%name == self%metadata(j)%name_surface .or. & + ( self%metadata(i)%name_surface /= "" .and. & + self%metadata(i)%name_surface == self%metadata(j)%name)) then str=repeat(" ",1024) write(str, *) "Duplicate field metadata: ", i, self%metadata(i)%name, & j, self%metadata(j)%name @@ -186,8 +177,7 @@ function soca_fields_metadata_get(self, name) result(field) ! find the field by any of its internal or getval names do i=1,size(self%metadata) if( trim(self%metadata(i)%name) == trim(name) .or. & - trim(self%metadata(i)%getval_name) == trim(name) .or. & - trim(self%metadata(i)%getval_name_surface) == trim(name) ) then + trim(self%metadata(i)%name_surface) == trim(name) ) then field = self%metadata(i) return endif diff --git a/src/soca/Fields/soca_fields_mod.F90 b/src/soca/Fields/soca_fields_mod.F90 index f0f6fdd45..ddae5cb4f 100644 --- a/src/soca/Fields/soca_fields_mod.F90 +++ b/src/soca/Fields/soca_fields_mod.F90 @@ -433,7 +433,7 @@ subroutine soca_fields_init_vars(self, vars) end select ! determine number of levels - if (self%fields(i)%name == self%fields(i)%metadata%getval_name_surface) then + if (self%fields(i)%name == self%fields(i)%metadata%name_surface) then ! if this field is a surface getval, override the number of levels with 1 nz = 1 else @@ -727,7 +727,7 @@ subroutine soca_fields_read(self, f_conf, vdate) ! iread = 1 (state) or 3 (increment): Read restart file if ((iread==1).or.(iread==3)) then - if (self%has("hocn")) call self%get("hocn", hocn) + if (self%has("sea_water_cell_thickness")) call self%get("sea_water_cell_thickness", hocn) ! filename for ocean call f_conf%get_or_die("basename", str) basename = str @@ -900,8 +900,8 @@ subroutine soca_fields_read(self, f_conf, vdate) ! Initialize mid-layer depth from layer thickness ! TODO, this shouldn't live here, it should be part of the variable change class only - if (self%has("layer_depth")) then - call self%get("layer_depth", layer_depth) + if (self%has("sea_water_depth")) then + call self%get("sea_water_depth", layer_depth) layer_depth%val = 0.5 * hocn%val do k = 2, hocn%nz layer_depth%val(:,:,k) = layer_depth%val(:,:,k) + sum(hocn%val(:,:,1:k-1), dim=3) @@ -909,10 +909,10 @@ subroutine soca_fields_read(self, f_conf, vdate) end if ! Compute mixed layer depth TODO: Move somewhere else ... - if (self%has("mld") .and. self%has("layer_depth")) then - call self%get("tocn", field) - call self%get("socn", field2) - call self%get("mld", mld) + if (self%has("ocean_mixed_layer_thickness") .and. self%has("sea_water_depth")) then + call self%get("sea_water_potential_temperature", field) + call self%get("sea_water_salinity", field2) + call self%get("ocean_mixed_layer_thickness", mld) mld%val = 0.0 do i = isc, iec do j = jsc, jec diff --git a/src/soca/Geometry/soca_geom.interface.F90 b/src/soca/Geometry/soca_geom.interface.F90 index c446f717e..47ff6e1da 100644 --- a/src/soca/Geometry/soca_geom.interface.F90 +++ b/src/soca/Geometry/soca_geom.interface.F90 @@ -120,7 +120,7 @@ subroutine soca_geo_get_num_levels_c(c_key_self, c_vars, c_levels_size, c_levels case ("1") c_levels(i) = 1 case ("full_ocn") - if (field_name == field%getval_name_surface) then + if (field_name == field%name_surface) then c_levels(i) = 1 else c_levels(i) = self%nzo diff --git a/src/soca/Increment/soca_increment_mod.F90 b/src/soca/Increment/soca_increment_mod.F90 index efe91dea4..26a1a6ac3 100644 --- a/src/soca/Increment/soca_increment_mod.F90 +++ b/src/soca/Increment/soca_increment_mod.F90 @@ -80,7 +80,7 @@ subroutine soca_increment_random(self) field => self%fields(i) ! TODO remove this once increment / state are fully separated ! NOTE: can't randomize "hocn", testIncrementInterpAD fails - if (field%name == 'hocn') cycle + if (field%name == "sea_water_cell_thickness") cycle call normal_distribution(field%val, 0.0_kind_real, 1.0_kind_real, rseed) end do @@ -149,23 +149,23 @@ subroutine soca_increment_dirac(self, f_conf) field => null() select case(ifdir(n)) case (1) - call self%get("tocn", field) + call self%get("sea_water_potential_temperature", field) case (2) - call self%get("socn", field) + call self%get("sea_water_salinity", field) case (3) - call self%get("ssh", field) + call self%get("sea_surface_height_above_geoid", field) case (4) - call self%get("cicen", field) + call self%get("sea_ice_category_area_fraction", field) case (5) - call self%get("hicen", field) + call self%get("sea_ice_category_thickness", field) case (6) - call self%get("chl", field) + call self%get("mass_concentration_of_chlorophyll_in_sea_water", field) case (7) - call self%get("biop", field) + call self%get("molar_concentration_of_biomass_in_sea_water_in_p_units", field) case (8) - call self%get("uocn", field) + call self%get("eastward_sea_water_velocity", field) case (9) - call self%get("vocn", field) + call self%get("northward_sea_water_velocity", field) case default ! TODO print error that out of range end select diff --git a/src/soca/LinearVariableChange/Balance/soca_balance_mod.F90 b/src/soca/LinearVariableChange/Balance/soca_balance_mod.F90 index 3f735f6c0..fa4e0debd 100644 --- a/src/soca/LinearVariableChange/Balance/soca_balance_mod.F90 +++ b/src/soca/LinearVariableChange/Balance/soca_balance_mod.F90 @@ -105,12 +105,12 @@ subroutine soca_balance_setup(self, f_conf, traj, geom) jsd=geom%jsd; jed=geom%jed ! Get required fields - call traj%get("tocn", tocn) - call traj%get("socn", socn) - call traj%get("hocn", hocn) - call traj%get("mld", mld) - call traj%get("layer_depth", layer_depth) - if (traj%has("cicen")) call traj%get("cicen", cicen) + call traj%get("sea_water_potential_temperature", tocn) + call traj%get("sea_water_salinity", socn) + call traj%get("sea_water_cell_thickness", hocn) + call traj%get("ocean_mixed_layer_thickness", mld) + call traj%get("sea_water_depth", layer_depth) + if (traj%has("sea_ice_category_area_fraction")) call traj%get("sea_ice_category_area_fraction", cicen) ! allocate space nl = hocn%nz @@ -179,7 +179,7 @@ subroutine soca_balance_setup(self, f_conf, traj, geom) deallocate(jac) ! Compute Kct - if (traj%has("cicen")) then + if (traj%has("sea_ice_category_area_fraction")) then ! Setup dc/dT allocate(kct(isd:ied,jsd:jed)) kct = 0.0_kind_real @@ -240,8 +240,8 @@ subroutine soca_balance_mult(self, dxa, dxm) !> K= [ Ketat Ketas I 0 ] !> [ Kct 0 0 I ] - call dxa%get("tocn",tocn_a) - call dxa%get("socn",socn_a) + call dxa%get("sea_water_potential_temperature",tocn_a) + call dxa%get("sea_water_salinity",socn_a) do n=1, size(dxm%fields) fld_m => dxm%fields(n) @@ -253,11 +253,11 @@ subroutine soca_balance_mult(self, dxa, dxm) case default fld_m%val(i,j,:) = fld_a%val(i,j,:) - case("socn") ! Salinity + case("sea_water_salinity") ! Salinity fld_m%val(i,j,:) = fld_a%val(i,j,:) + & & self%kst%jacobian(i,j,:) * tocn_a%val(i,j,:) - case ("ssh") ! SSH + case ("sea_surface_height_above_geoid") ! SSH fld_m%val(i,j,:) = fld_a%val(i,j,:) do k = 1, tocn_a%nz fld_m%val(i,j,:) = fld_m%val(i,j,:) + & @@ -265,7 +265,7 @@ subroutine soca_balance_mult(self, dxa, dxm) & self%ksshts%ksshs(i,j,k) * socn_a%val(i,j,k) end do - case ("cicen") ! Ice fraction + case ("sea_ice_category_area_fraction") ! Ice fraction do k = 1, fld_m%nz fld_m%val(i,j,k) = fld_a%val(i,j,k) + & & self%kct(i,j) * tocn_a%val(i,j,1) @@ -293,9 +293,9 @@ subroutine soca_balance_multad(self, dxa, dxm) cicen_m => null() - call dxm%get("socn", socn_m) - call dxm%get("ssh", ssh_m) - if (dxm%has("cicen")) call dxm%get("cicen",cicen_m) + call dxm%get("sea_water_salinity", socn_m) + call dxm%get("sea_surface_height_above_geoid", ssh_m) + if (dxm%has("sea_ice_category_area_fraction")) call dxm%get("sea_ice_category_area_fraction",cicen_m) do n = 1, size(dxa%fields) fld_a => dxa%fields(n) @@ -307,7 +307,7 @@ subroutine soca_balance_multad(self, dxa, dxm) case default fld_a%val(i,j,:) = fld_m%val(i,j,:) - case ("tocn") ! Temperature + case ("sea_water_potential_temperature") ! Temperature fld_a%val(i,j,:) = fld_m%val(i,j,:) + & & self%kst%jacobian(i,j,:) * socn_m%val(i,j,:) + & & self%ksshts%kssht(i,j,:) * ssh_m%val(i,j,1) @@ -317,7 +317,7 @@ subroutine soca_balance_multad(self, dxa, dxm) & self%kct(i,j) * sum(cicen_m%val(i,j,:)) end if - case ("socn") ! Salinity + case ("sea_water_salinity") ! Salinity fld_a%val(i,j,:) = fld_m%val(i,j,:) + & & self%ksshts%ksshs(i,j,:) * ssh_m%val(i,j, 1) @@ -341,8 +341,8 @@ subroutine soca_balance_multinv(self, dxa, dxm) type(soca_field), pointer :: fld_m, fld_a type(soca_field), pointer :: tocn_m, socn_m - call dxm%get("tocn", tocn_m) - call dxm%get("socn", socn_m) + call dxm%get("sea_water_potential_temperature", tocn_m) + call dxm%get("sea_water_salinity", socn_m) do n = 1, size(dxa%fields) fld_a => dxa%fields(n) @@ -354,11 +354,11 @@ subroutine soca_balance_multinv(self, dxa, dxm) case default fld_a%val(i,j,:) = fld_m%val(i,j,:) - case ('socn') ! Salinity + case ('sea_water_salinity') ! Salinity fld_a%val(i,j,:) = fld_m%val(i,j,:) - & & self%kst%jacobian(i,j,:) * tocn_m%val(i,j,:) - case ('ssh') ! SSH + case ('sea_surface_height_above_geoid') ! SSH fld_a%val(i,j, :) = fld_m%val(i,j, :) do k = 1, tocn_m%nz fld_a%val(i,j,:) = fld_a%val(i,j,:) + & @@ -367,7 +367,7 @@ subroutine soca_balance_multinv(self, dxa, dxm) & self%ksshts%ksshs(i,j,k) * socn_m%val(i,j,k) end do - case ('cicen') ! Ice fraction + case ('sea_ice_category_area_fraction') ! Ice fraction fld_a%val(i,j,:) = fld_m%val(i,j,:) do k = 1, fld_m%nz fld_a%val(i,j,k) = fld_a%val(i,j,k) - & @@ -396,9 +396,9 @@ subroutine soca_balance_multinvad(self, dxa, dxm) cicen_a => null() - call dxa%get("socn", socn_a) - call dxa%get("ssh", ssh_a) - if (dxa%has("cicen")) call dxa%get("cicen",cicen_a) + call dxa%get("sea_water_salinity", socn_a) + call dxa%get("sea_surface_height_above_geoid", ssh_a) + if (dxa%has("sea_ice_category_area_fraction")) call dxa%get("sea_ice_category_area_fraction",cicen_a) do n = 1, size(dxm%fields) fld_m => dxm%fields(n) @@ -410,7 +410,7 @@ subroutine soca_balance_multinvad(self, dxa, dxm) case default fld_m%val(i,j,:) = fld_a%val(i,j,:) - case ('tocn') ! Temperature + case ('sea_water_potential_temperature') ! Temperature fld_m%val(i,j,:) = fld_a%val(i,j,:) & & - self%kst%jacobian(i,j,:) * socn_a%val(i,j,:) & & + ( self%ksshts%ksshs(i,j,:) * self%kst%jacobian(i,j,:) & @@ -421,7 +421,7 @@ subroutine soca_balance_multinvad(self, dxa, dxm) & - self%kct(i,j) * sum(cicen_a%val(i,j,:)) end if - case ('socn') ! Salinity + case ('sea_water_salinity') ! Salinity fld_m%val(i,j,:) = fld_a%val(i,j,:) - & & self%ksshts%ksshs(i,j,:) * ssh_a%val(i,j,1) diff --git a/src/soca/LinearVariableChange/BkgErr/soca_bkgerr_mod.F90 b/src/soca/LinearVariableChange/BkgErr/soca_bkgerr_mod.F90 index 26cfd4352..016393530 100644 --- a/src/soca/LinearVariableChange/BkgErr/soca_bkgerr_mod.F90 +++ b/src/soca/LinearVariableChange/BkgErr/soca_bkgerr_mod.F90 @@ -82,7 +82,9 @@ subroutine soca_bkgerr_setup(self, f_conf, bkg, geom) do i=1,size(self%std_bkgerr%fields) field => self%std_bkgerr%fields(i) select case(field%name) - case ("tocn", "socn", "ssh") + case ("sea_water_potential_temperature",& + "sea_water_salinity",& + "sea_surface_height_above_geoid") field%val = sqrt(field%val) end select end do @@ -94,12 +96,12 @@ subroutine soca_bkgerr_setup(self, f_conf, bkg, geom) ! Get constand background error for sst and sss if ( f_conf%has("fixed_std_sst") ) then call f_conf%get_or_die("fixed_std_sst", std) - call self%std_bkgerr%get("tocn", field) + call self%std_bkgerr%get("sea_water_potential_temperature", field) field%val(:,:,1) = std end if if ( f_conf%has("fixed_std_sss") ) then call f_conf%get_or_die("fixed_std_sss", std) - call self%std_bkgerr%get("socn", field) + call self%std_bkgerr%get("sea_water_salinity", field) field%val(:,:,1) = std end if @@ -110,10 +112,15 @@ subroutine soca_bkgerr_setup(self, f_conf, bkg, geom) do i=1,size(self%std_bkgerr%fields) field => self%std_bkgerr%fields(i) select case(field%name) - case ('sw','lw','lhf','shf','us') + case ('net_downwelling_shortwave_radiation',& + 'net_downwelling_longwave_radiation',& + 'upward_latent_heat_flux_in_air',& + 'upward_sensible_heat_flux_in_air',& + 'friction_velocity_over_water') call bkg%get(field%name, field_bkg) field%val = abs(field_bkg%val) * 0.1_kind_real - case ('chl','biop') + case ('mass_concentration_of_chlorophyll_in_sea_water',& + 'molar_concentration_of_biomass_in_sea_water_in_p_units') call bkg%get(field%name, field_bkg) field%val = abs(field_bkg%val) * 0.2_kind_real end select diff --git a/src/soca/LinearVariableChange/BkgErrGodas/soca_bkgerrgodas_mod.F90 b/src/soca/LinearVariableChange/BkgErrGodas/soca_bkgerrgodas_mod.F90 index 21f638e90..f1ba757b6 100644 --- a/src/soca/LinearVariableChange/BkgErrGodas/soca_bkgerrgodas_mod.F90 +++ b/src/soca/LinearVariableChange/BkgErrGodas/soca_bkgerrgodas_mod.F90 @@ -96,11 +96,19 @@ subroutine soca_bkgerrgodas_setup(self, f_conf, bkg, geom) do i=1,size(self%std_bkgerr%fields) field => self%std_bkgerr%fields(i) select case(field%name) - case ('sw','lw','lhf','shf','us','swh') + case ('net_downwelling_shortwave_radiation',& + 'net_downwelling_longwave_radiation',& + 'upward_latent_heat_flux_in_air',& + 'upward_sensible_heat_flux_in_air',& + 'friction_velocity_over_water',& + 'sea_surface_wave_significant_height') call bkg%get(field%name, field_bkg) field%val = abs(field_bkg%val) field%val = 0.1_kind_real * field%val - case ('chl','biop','uocn','vocn') + case ('mass_concentration_of_chlorophyll_in_sea_water',& + 'molar_concentration_of_biomass_in_sea_water_in_p_units',& + 'eastward_sea_water_velocity',& + 'northward_sea_water_velocity') call bkg%get(field%name, field_bkg) field%val = abs(field_bkg%val) * 0.2_kind_real end select @@ -182,10 +190,10 @@ subroutine soca_bkgerrgodas_tocn(self) call sst%init(domain, self%sst_bgerr_file) call sst%bin(self%geom%lon, self%geom%lat) - call self%bkg%get("tocn", tocn_b) - call self%std_bkgerr%get("tocn", tocn_e) - call self%bkg%get("hocn", hocn) - call self%bkg%get("layer_depth",layer_depth) + call self%bkg%get("sea_water_potential_temperature", tocn_b) + call self%std_bkgerr%get("sea_water_potential_temperature", tocn_e) + call self%bkg%get("sea_water_cell_thickness", hocn) + call self%bkg%get("sea_water_depth",layer_depth) ! Loop over compute domain do i = domain%is, domain%ie @@ -243,7 +251,7 @@ subroutine soca_bkgerrgodas_ssh(self) domain%is = self%geom%isc ; domain%ie = self%geom%iec domain%js = self%geom%jsc ; domain%je = self%geom%jec - call self%std_bkgerr%get("ssh", ssh) + call self%std_bkgerr%get("sea_surface_height_above_geoid", ssh) ! Loop over compute domain do i = domain%is, domain%ie @@ -288,9 +296,9 @@ subroutine soca_bkgerrgodas_socn(self) ! TODO read in a precomputed surface S background error ! Loop over compute domain - call self%std_bkgerr%get("socn", field) - call self%bkg%get("mld", mld) - call self%bkg%get("layer_depth", layer_depth) + call self%std_bkgerr%get("sea_water_salinity", field) + call self%bkg%get("ocean_mixed_layer_thickness", mld) + call self%bkg%get("sea_water_depth", layer_depth) do i = domain%is, domain%ie do j = domain%js, domain%je diff --git a/src/soca/LinearVariableChange/util/soca_bkgerrutil_mod.F90 b/src/soca/LinearVariableChange/util/soca_bkgerrutil_mod.F90 index 8bf8835c3..78c43e4b2 100644 --- a/src/soca/LinearVariableChange/util/soca_bkgerrutil_mod.F90 +++ b/src/soca/LinearVariableChange/util/soca_bkgerrutil_mod.F90 @@ -88,28 +88,28 @@ subroutine soca_bkgerr_applybounds(self, fld) do n=1,size(fld%fields) field => fld%fields(n) select case(field%name) - case ("tocn") + case ("sea_water_potential_temperature") vmin = self%t_min!! \relates soca_bkgerrutil_mod::soca_bkgerr_bounds_type vmax = self%t_max - case ("socn") + case ("sea_water_salinity") vmin = self%s_min vmax = self%s_max - case ("ssh") + case ("sea_surface_height_above_geoid") vmin = self%ssh_min vmax = self%ssh_max - case ("cicen") + case ("sea_ice_category_area_fraction") vmin = self%cicen_min vmax = self%cicen_max - case ("hicen") + case ("sea_ice_category_thickness") vmin = self%hicen_min vmax = self%hicen_max - case ("chl") + case ("mass_concentration_of_chlorophyll_in_sea_water") vmin = self%chl_min vmax = self%chl_max - case ("biop") + case ("molar_concentration_of_biomass_in_sea_water_in_p_units") vmin = self%biop_min vmax = self%biop_max - case ("swh") + case ("sea_surface_wave_significant_height") vmin = self%swh_min vmax = self%swh_max case default diff --git a/src/soca/SaberBlocks/BkgErrFilt/BkgErrFilt.cc b/src/soca/SaberBlocks/BkgErrFilt/BkgErrFilt.cc index 040d7ad82..952821931 100644 --- a/src/soca/SaberBlocks/BkgErrFilt/BkgErrFilt.cc +++ b/src/soca/SaberBlocks/BkgErrFilt/BkgErrFilt.cc @@ -39,7 +39,7 @@ BkgErrFilt::BkgErrFilt( ASSERT(outerGeometryData.fieldSet()[0].shape(0) == xb.fieldSet()[0].shape(0)); const double MIN_THICKNESS = 1.0e-3; - const int levels = xb["hocn"].levels(); + const int levels = xb["sea_water_cell_thickness"].levels(); mask_ = innerGeometryData_.getField("interp_mask"); mult3D_ = innerGeometryData_.functionSpace().createField( @@ -48,7 +48,7 @@ BkgErrFilt::BkgErrFilt( atlas::option::levels(1) ); auto v_mult3D = atlas::array::make_view(mult3D_); auto v_mult2D = atlas::array::make_view(mult2D_); - const auto v_hocn = atlas::array::make_view(xb["hocn"]); + const auto v_hocn = atlas::array::make_view(xb["sea_water_cell_thickness"]); const auto v_mask = atlas::array::make_view(mask_); v_mult3D.assign(0.0); @@ -81,8 +81,8 @@ BkgErrFilt::BkgErrFilt( void BkgErrFilt::multiply(oops::FieldSet3D & fset) const { util::Timer timer("soca::BkgErrFilt", "multiply"); - const std::set FIELDS3D{"tocn", "socn"}; - const std::set FIELDS2D{"ssh"}; + const std::set FIELDS3D{"sea_water_potential_temperature", "sea_water_salinity"}; + const std::set FIELDS2D{"sea_surface_height_above_geoid"}; const auto v_mult3D = atlas::array::make_view(mult3D_); const auto v_mult2D = atlas::array::make_view(mult2D_); diff --git a/src/soca/Utils/OceanSmoother.h b/src/soca/Utils/OceanSmoother.h index 76f33323d..fbdfe2dab 100644 --- a/src/soca/Utils/OceanSmoother.h +++ b/src/soca/Utils/OceanSmoother.h @@ -106,7 +106,7 @@ class OceanSmoother { false, this}; oops::Parameter mldVariable{"mld variable", "The name of the MLD variable in the fieldset passed to the constructor", - "mld", this}; + "ocean_mixed_layer_thickness", this}; oops::Parameter mldSmooth{"mld smooth", "If true, smooth the MLD by the horizontal scales before using it for the vertical scales", true, this}; @@ -125,7 +125,7 @@ class OceanSmoother { this}; oops::Parameter thicknessVariable{"thickness variable", "The name of the layer thickness state variable in the fieldset passed to the constructor", - "hocn", this}; + "sea_water_cell_thickness", this}; }; // ----------------------------------------------------------------------------- diff --git a/src/soca/VariableChange/Model2GeoVaLs/Model2GeoVaLs.F90 b/src/soca/VariableChange/Model2GeoVaLs/Model2GeoVaLs.F90 index 8b97b2403..eeea6c400 100644 --- a/src/soca/VariableChange/Model2GeoVaLs/Model2GeoVaLs.F90 +++ b/src/soca/VariableChange/Model2GeoVaLs/Model2GeoVaLs.F90 @@ -64,7 +64,7 @@ subroutine soca_model2geovals_changevar_f90(c_key_geom, c_key_xin, c_key_xout) & xout%fields(i)%val(:,:,1) = real(geom%lon, kind=kind_real) case ('sea_water_depth') - call xin%get('hocn', field) + call xin%get('sea_water_cell_thickness', field) xout%fields(i)%val = 0.5 * field%val do kk = 2, field%nz xout%fields(i)%val(:,:,kk) = xout%fields(i)%val(:,:,kk) + & @@ -101,20 +101,19 @@ subroutine soca_model2geovals_changevar_f90(c_key_geom, c_key_xin, c_key_xout) & ! special derived state variables case ('skin_temperature_at_surface_where_sea') - call xin%get('tocn', field) + call xin%get('sea_water_potential_temperature', field) xout%fields(i)%val(:,:,1) = field%val(:,:,1) + 273.15_kind_real case ('sea_floor_depth_below_sea_surface') - call xin%get('hocn', field) + call xin%get('sea_water_cell_thickness', field) xout%fields(i)%val(:,:,1) = sum(field%val, dim=3) ! identity operators case default call xin%get(xout%fields(i)%metadata%name, field) - if (xout%fields(i)%name == field%metadata%name .or. & - xout%fields(i)%name == field%metadata%getval_name ) then + if (xout%fields(i)%name == field%metadata%name ) then xout%fields(i)%val(:,:,:) = field%val(:,:,:) !< full field - elseif (field%metadata%getval_name_surface == xout%fields(i)%name) then + elseif (field%metadata%name_surface == xout%fields(i)%name) then xout%fields(i)%val(:,:,1) = field%val(:,:,1) !< surface only of a 3D field else call abor1_ftn( 'error in soca_model2geovals_changevar_f90 processing ' & diff --git a/src/soca/VariableChange/Soca2Cice/soca_soca2cice_mod.F90 b/src/soca/VariableChange/Soca2Cice/soca_soca2cice_mod.F90 index fcf0a70ca..91c42d2f4 100644 --- a/src/soca/VariableChange/Soca2Cice/soca_soca2cice_mod.F90 +++ b/src/soca/VariableChange/Soca2Cice/soca_soca2cice_mod.F90 @@ -162,9 +162,9 @@ subroutine check_ice_bounds(self, geom, xm) real(kind=kind_real) :: hice_max = 8.0 ! pointers to soca fields (most likely an analysis) - call xm%get("cicen",aice_ana) - call xm%get("hicen",hice_ana) - call xm%get("hsnon",hsno_ana) + call xm%get("sea_ice_category_area_fraction",aice_ana) + call xm%get("sea_ice_category_thickness",hice_ana) + call xm%get("sea_ice_category_snow_thickness",hsno_ana) ! check seaice fraction bounds where (aice_ana%val<0_kind_real) @@ -206,9 +206,9 @@ subroutine shuffle_ice(self, geom, xm) allocate(idx(nn_max), testmin(nn_max)) ! pointers to soca fields (most likely an analysis) - call xm%get("tocn",t_ana) - call xm%get("socn",s_ana) - call xm%get("cicen",aice_ana) + call xm%get("sea_water_potential_temperature",t_ana) + call xm%get("sea_water_salinity",s_ana) + call xm%get("sea_ice_category_area_fraction",aice_ana) do i = geom%isc, geom%iec do j = geom%jsc, geom%jec @@ -266,11 +266,11 @@ subroutine cleanup_ice(self, geom, xm) real(kind=kind_real), allocatable :: zTin(:), zTsn(:), temp_sno_test ! pointers to soca fields (most likely an analysis) - call xm%get("tocn",t_ana) - call xm%get("socn",s_ana) - call xm%get("cicen",aice_ana) - call xm%get("hicen", hice_ana) - call xm%get("hsnon", hsno_ana) + call xm%get("sea_water_potential_temperature",t_ana) + call xm%get("sea_water_salinity",s_ana) + call xm%get("sea_ice_category_area_fraction",aice_ana) + call xm%get("sea_ice_category_thickness", hice_ana) + call xm%get("sea_ice_category_snow_thickness", hsno_ana) ! get thickness category bounds allocate(h_bounds(0:self%ncat)) @@ -354,10 +354,10 @@ subroutine prior_dist_rescale(self, geom, xm) type(soca_field), pointer :: s_ana, aice_ana, hice_ana, hsno_ana integer :: c, i, j - call xm%get("cicen", aice_ana) - call xm%get("hicen", hice_ana) - call xm%get("hsnon", hsno_ana) - call xm%get("socn", s_ana) + call xm%get("sea_ice_category_area_fraction", aice_ana) + call xm%get("sea_ice_category_thickness", hice_ana) + call xm%get("sea_ice_category_snow_thickness", hsno_ana) + call xm%get("sea_water_salinity", s_ana) do i = geom%isc, geom%iec do j = geom%jsc, geom%jec diff --git a/src/soca/VariableChange/VariableChange.cc b/src/soca/VariableChange/VariableChange.cc index 87d15635c..ee5c5ecee 100644 --- a/src/soca/VariableChange/VariableChange.cc +++ b/src/soca/VariableChange/VariableChange.cc @@ -69,16 +69,14 @@ void VariableChange::changeVar(State & x, const oops::Variables & vars) const { // The following is TEMPORARY. // ---------------------------------------------------------------------------- - // We need to do some variable renaming BEFORE we run VADER. - // Eventually, we will internally rename these variables when they are - // first loaded in so that we won't have to worry about it here. + // We need to create some variables that VADER will need to run. + // TODO(Travis): This is a bit of a hack, create lat/lon directly here + // or as a vader recipe. if (vars.has("sea_water_temperature")) { Log::debug() << "VariableChange::changeVar Pre-VADER variable changes. " << std::endl; oops::Variables preVaderVars(std::vector{ "latitude", "longitude", - "sea_water_potential_temperature", - "sea_water_salinity", "sea_water_depth"}); preVaderVars += x.variables(); State preVader(x.geometry(), preVaderVars, x.validTime()); diff --git a/test/Data/fields_metadata.yml b/test/Data/fields_metadata.yml index 70da83907..48d0fef33 100644 --- a/test/Data/fields_metadata.yml +++ b/test/Data/fields_metadata.yml @@ -1,14 +1,13 @@ # -------------------------------------------------------------------------------------------------- # Field metadata for SOCA. Each field can contain the following information: # -# name: Internal name used by soca code and config files +# name: name used by soca and by the rest of JEDI +# name surface: JEDI variable name for 2D surface of a 3D field (Default: ) # grid: "h", "u", or "v" (Default: h) # masked: use land mask if true (Default: true) # levels: "1" or "full_ocn" (Default: 1) -# getval_name: variable name expected by GetValues (Default: ) -# getval_name_surface: GetValues variable name for 2D surface of a 3D field (Default: ) -# io_file: The restart file domain "ocn", "sfc", or "ice" (Default: ) -# io_name: The variable name used in the restart IO (Default: ) +# io file: The restart file domain "ocn", "sfc", or "ice" (Default: ) +# io name: The variable name used in the restart IO (Default: ) # constant value: Used for "dummy" fields. Sets the entire field to the given constant globally # This parameter cannot be used with io_file/io_name # fill value: If the field is masked, this value will be used for the masked areas. @@ -19,90 +18,77 @@ # -------------------------------------------------------------------------------------------------- # Ocean state variables # -------------------------------------------------------------------------------------------------- -- name: tocn +- name: sea_water_potential_temperature + name surface: sea_surface_temperature levels: full_ocn - getval name: sea_water_potential_temperature - getval name surface: sea_surface_temperature io file: ocn io name: Temp -- name: socn +- name: sea_water_salinity + name surface: sea_surface_salinity levels: full_ocn - getval name: sea_water_salinity - getval name surface: sea_surface_salinity io file: ocn io name: Salt property: positive_definite -- name: uocn +- name: eastward_sea_water_velocity + name surface: surface_eastward_sea_water_velocity grid: u levels: full_ocn - getval name: eastward_sea_water_velocity - getval name surface: surface_eastward_sea_water_velocity io file: ocn io name: u -- name: vocn +- name: northward_sea_water_velocity + name surface: surface_northward_sea_water_velocity grid: v levels: full_ocn - getval name: northward_sea_water_velocity - getval name surface: surface_northward_sea_water_velocity io file: ocn io name: v -- name: hocn +- name: sea_water_cell_thickness levels: full_ocn - getval name: sea_water_cell_thickness io file: ocn io name: h vert interp: false -- name: ssh - getval name: sea_surface_height_above_geoid +- name: sea_surface_height_above_geoid io file: ocn io name: ave_ssh # -------------------------------------------------------------------------------------------------- # ice state variables # -------------------------------------------------------------------------------------------------- -- name: hicen - getval name: sea_ice_category_thickness +- name: sea_ice_category_thickness io file: ice io name: hicen property: positive_definite -- name: cicen - getval name: sea_ice_category_area_fraction - getval name surface: sea_ice_area_fraction # note: not accurate, should be "sum" not "surface" +- name: sea_ice_category_area_fraction + name surface: sea_ice_area_fraction # note: not accurate, should be "sum" not "surface" io file: ice io name: aicen -- name: hsnon - getval name: sea_ice_category_snow_thickness +- name: sea_ice_category_snow_thickness io file: ice io name: hsnon property: positive_definite -- name: tsfc - getval name: snow_ice_surface_temperature +- name: snow_ice_surface_temperature io file: ice io name: Tsfc_h -- name: tair - getval name: air_temperature +- name: air_temperature io file: ice io name: Tair_h -- name: sice - getval name: bulk_ice_salinity +- name: bulk_ice_salinity io file: ice io name: sice_h # -------------------------------------------------------------------------------------------------- # wave state variables # -------------------------------------------------------------------------------------------------- -- name: swh - getval name: sea_surface_wave_significant_height +- name: sea_surface_wave_significant_height io file: wav io name: hs property: positive_definite @@ -110,33 +96,28 @@ # -------------------------------------------------------------------------------------------------- # sea surface variables # -------------------------------------------------------------------------------------------------- -- name: sw +- name: net_downwelling_shortwave_radiation masked: false - getval name: net_downwelling_shortwave_radiation io file: sfc io name: sw_rad -- name: lw +- name: net_downwelling_longwave_radiation masked: false - getval name: net_downwelling_longwave_radiation io file: sfc io name: lw_rad -- name: lhf +- name: upward_latent_heat_flux_in_air masked: false - getval name: upward_latent_heat_flux_in_air io file: sfc io name: latent_heat -- name: shf +- name: upward_sensible_heat_flux_in_air masked: false - getval name: upward_sensible_heat_flux_in_air io file: sfc io name: sens_heat -- name: us +- name: friction_velocity_over_water masked: false - getval name: friction_velocity_over_water io file: sfc io name: fric_vel @@ -144,18 +125,16 @@ # -------------------------------------------------------------------------------------------------- # BGC # -------------------------------------------------------------------------------------------------- -- name: chl +- name: mass_concentration_of_chlorophyll_in_sea_water + name surface: sea_surface_chlorophyll levels: full_ocn - getval name: mass_concentration_of_chlorophyll_in_sea_water - getval name surface: sea_surface_chlorophyll io file: ocn io name: chl property: positive_definite -- name: biop +- name: molar_concentration_of_biomass_in_sea_water_in_p_units + name surface: sea_surface_biomass_in_p_units levels: full_ocn - getval name: molar_concentration_of_biomass_in_sea_water_in_p_units - getval name surface: sea_surface_biomass_in_p_units io file: ocn io name: biomass_p property: positive_definite @@ -166,13 +145,9 @@ - name: distance_from_coast masked: false -- name: layer_depth - levels: full_ocn - vert interp: false - - name: mesoscale_representation_error -- name: mld +- name: ocean_mixed_layer_thickness - name: sea_floor_depth_below_sea_surface @@ -197,98 +172,79 @@ - name: dummy_atm1 constant value: 5.0 -- name: oz_th - getval name: ozone_thickness +- name: ozone_thickness constant value: 275 #The average amount of ozone in the atm. is 300 Dobson Units -- name: wvapor - getval name: water_vapor #g/cm^2 +- name: water_vapor #g/cm^2 constant value: 1.2 -- name: ws - getval name: wind_speed_at_surface +- name: wind_speed_at_surface constant value: 6 -- name: pres - getval name: air_pressure_at_surface +- name: air_pressure_at_surface constant value: 999 -- name: rh - getval name: relative_humidity +- name: relative_humidity constant value: 89 -- name: cld_lwp - getval name: cloud_liquid_water_path +- name: cloud_liquid_water_path constant value: 163 -- name: cov - getval name: cloud_area_fraction_in_atmosphere_layer +- name: cloud_area_fraction_in_atmosphere_layer constant value: 80 -- name: aer_tau - getval name: aerosol_optical_thickness +- name: aerosol_optical_thickness constant value: 0.16 -- name: scat_alb - getval name: single_scattering_albedo +- name: single_scattering_albedo constant value: 0.71 -- name: asym_par - getval name: asymmetry_parameter +- name: asymmetry_parameter constant value: 0.97 #---------------------ocean bio -- name: c_det +- name: Carbon_nitrogen_detritus_concentration levels: full_ocn - getval name: Carbon_nitrogen_detritus_concentration io file: bio io name: CDET property: positive_definite -- name: inorg_c +- name: Particulate_inorganic_carbon levels: full_ocn - getval name: Particulate_inorganic_carbon io file: bio io name: PIC -- name: dis_c +- name: colored_dissolved_organic_carbon levels: full_ocn - getval name: colored_dissolved_organic_carbon io file: bio io name: CDC -- name: diatom +- name: diatom_concentration levels: full_ocn - getval name: diatom_concentration io file: bio io name: DIATOM -- name: chloro +- name: chlorophyte_concentration levels: full_ocn - getval name: chlorophyte_concentration io file: bio io name: CHLORO -- name: cyano +- name: cyano-bacteria_concentration levels: full_ocn - getval name: cyano-bacteria_concentration io file: bio io name: CYANO -- name: cocco +- name: coccolithophore_concentration levels: full_ocn - getval name: coccolithophore_concentration io file: bio io name: COCCO -- name: dino +- name: dinoflagellate_concentration levels: full_ocn - getval name: dinoflagellate_concentration io file: bio io name: DINO -- name: phaeo +- name: phaeocystis_concentration levels: full_ocn - getval name: phaeocystis_concentration io file: bio io name: PHAEO diff --git a/test/executables/TestOceanSmoother.cc b/test/executables/TestOceanSmoother.cc index b2bd47ae9..834ca5eb7 100644 --- a/test/executables/TestOceanSmoother.cc +++ b/test/executables/TestOceanSmoother.cc @@ -52,7 +52,7 @@ void testMultiply() { State_ state(geom, parameters.state); // create a random increment - const std::string varname = "tocn"; + const std::string varname = "sea_water_potential_temperature"; oops::Variables vars({oops::Variable(varname)}); util::DateTime time(20240101,0); Increment_ dx(geom, vars, time); diff --git a/test/testinput/3dhyb.yml b/test/testinput/3dhyb.yml index e743c898f..517ed56ce 100644 --- a/test/testinput/3dhyb.yml +++ b/test/testinput/3dhyb.yml @@ -4,7 +4,16 @@ cost function: time window: begin: 2018-04-14T00:00:00Z length: P2D - analysis variables: &soca_vars [cicen, hicen, hsnon, socn, tocn, uocn, vocn, ssh, hocn] + analysis variables: &soca_an_vars + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_ice_category_snow_thickness + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid + geometry: &geom geom_grid_file: data_generated/gridgen/soca_gridspec.72x35x25.nc mom6_input_nml: data_static/72x35x25/input.nml @@ -17,7 +26,23 @@ cost function: ice_filename: cice.res.nc sfc_filename: sfc.res.nc date: &bkg_date 2018-04-15T00:00:00Z - state variables: &model_vars [cicen, hicen, hsnon, socn, tocn, uocn, vocn, ssh, hocn, sw, lhf, shf, lw, us, mld, layer_depth] + state variables: &soca_bg_vars + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_ice_category_snow_thickness + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - net_downwelling_shortwave_radiation + - upward_latent_heat_flux_in_air + - upward_sensible_heat_flux_in_air + - net_downwelling_longwave_radiation + - friction_velocity_over_water + - ocean_mixed_layer_thickness + - sea_water_depth background error: covariance model: hybrid @@ -28,7 +53,7 @@ cost function: saber block name: diffusion read: groups: - - variables: [tocn, socn, cicen, hicen, hsnon, uocn, vocn, ssh] + - variables: *soca_an_vars horizontal: filepath: data_generated/parameters_diffusion/hz_smaller vertical: @@ -42,8 +67,8 @@ cost function: efold_z: 2500.0 # [m] linear variable change: - input variables: *soca_vars - output variables: *soca_vars + input variables: *soca_an_vars + output variables: *soca_an_vars linear variable changes: - linear variable change name: BkgErrGODAS @@ -83,7 +108,7 @@ cost function: date: *bkg_date basename: data_static/72x35x25/restarts_ens/ remap_filename: data_static/72x35x25/restarts/MOM.res.nc - state variables: *soca_vars + state variables: *soca_bg_vars members: - <<: *_file ocn_filename: MOM.res.ens.1.nc @@ -101,7 +126,7 @@ cost function: localization method: SABER saber central block: saber block name: BUMP_NICAS - active variables: *soca_vars + active variables: *soca_an_vars read: io: data directory: data_generated/parameters_bump_loc diff --git a/test/testinput/3dhyb_diffusion.yml b/test/testinput/3dhyb_diffusion.yml index 547f0b4b3..5a101c70c 100644 --- a/test/testinput/3dhyb_diffusion.yml +++ b/test/testinput/3dhyb_diffusion.yml @@ -4,7 +4,17 @@ cost function: time window: begin: 2018-04-14T00:00:00Z length: P2D - analysis variables: &soca_vars [cicen, hicen, hsnon, socn, tocn, uocn, vocn, ssh, hocn] + analysis variables: &soca_an_vars + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_ice_category_snow_thickness + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid + - sea_water_cell_thickness + geometry: &geom geom_grid_file: data_generated/gridgen/soca_gridspec.72x35x25.nc mom6_input_nml: data_static/72x35x25/input.nml @@ -17,7 +27,23 @@ cost function: ice_filename: cice.res.nc sfc_filename: sfc.res.nc date: &bkg_date 2018-04-15T00:00:00Z - state variables: &model_vars [cicen, hicen, hsnon, socn, tocn, uocn, vocn, ssh, hocn, sw, lhf, shf, lw, us, mld, layer_depth] + state variables: &soca_bg_vars + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_ice_category_snow_thickness + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - net_downwelling_shortwave_radiation + - upward_latent_heat_flux_in_air + - upward_sensible_heat_flux_in_air + - net_downwelling_longwave_radiation + - friction_velocity_over_water + - ocean_mixed_layer_thickness + - sea_water_depth background error: covariance model: hybrid @@ -28,13 +54,18 @@ cost function: saber block name: diffusion read: groups: - - variables: [tocn, socn, cicen, hicen, hsnon] + - variables: + - sea_water_potential_temperature + - sea_water_salinity + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_ice_category_snow_thickness horizontal: filepath: data_generated/parameters_diffusion/hz_smaller vertical: levels: 25 filepath: data_generated/parameters_diffusion/vt_5lvls - - variables: [ssh] + - variables: [sea_surface_height_above_geoid] horizontal: filepath: data_generated/parameters_diffusion/hz_smaller @@ -45,8 +76,8 @@ cost function: efold_z: 2500.0 # [m] linear variable change: - input variables: *soca_vars - output variables: *soca_vars + input variables: *soca_an_vars + output variables: *soca_an_vars linear variable changes: - linear variable change name: BkgErrGODAS @@ -87,7 +118,7 @@ cost function: date: *bkg_date basename: data_static/72x35x25/restarts_ens/ # remap_filename: data_static/72x35x25/restarts/MOM.res.nc - state variables: *soca_vars + state variables: *soca_bg_vars members: - <<: *_file ocn_filename: MOM.res.ens.1.nc @@ -107,7 +138,7 @@ cost function: saber block name: diffusion read: groups: - - variables: [tocn, socn, ssh, cicen, hicen, hsnon, uocn, vocn] + - variables: *soca_an_vars multivariate strategy: duplicated horizontal: filepath: data_generated/parameters_diffusion/hz_smaller diff --git a/test/testinput/3dhybfgat_pseudo.yml b/test/testinput/3dhybfgat_pseudo.yml index c27c419bb..7d03a9cda 100644 --- a/test/testinput/3dhybfgat_pseudo.yml +++ b/test/testinput/3dhybfgat_pseudo.yml @@ -4,7 +4,14 @@ cost function: time window: begin: *date_begin length: PT24H - analysis variables: &soca_vars [cicen, hicen, socn, tocn, uocn, vocn, ssh, hocn] + analysis variables: &soca_an_vars + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid geometry: &geom geom_grid_file: data_generated/gridgen/soca_gridspec.72x35x25.nc @@ -35,8 +42,8 @@ cost function: variable change: variable change name: Model2Ana rotate: - u: [uocn] - v: [vocn] + u: [eastward_sea_water_velocity] + v: [northward_sea_water_velocity] log: var: [] @@ -46,7 +53,17 @@ cost function: ocn_filename: MOM.res.nc ice_filename: cice.res.nc date: *date_begin - state variables: &model_vars [cicen, hicen, socn, uocn, vocn, tocn, ssh, hocn, mld, layer_depth] + state variables: &soca_bg_vars + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_water_salinity + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - ocean_mixed_layer_thickness + - sea_water_depth background error: covariance model: hybrid @@ -57,7 +74,12 @@ cost function: saber block name: diffusion read: groups: - - variables: [tocn, socn, ssh, cicen, hicen] + - variables: + - sea_water_potential_temperature + - sea_water_salinity + - sea_surface_height_above_geoid + - sea_ice_category_area_fraction + - sea_ice_category_thickness horizontal: filepath: data_generated/parameters_diffusion/hz_smaller vertical: @@ -71,8 +93,8 @@ cost function: efold_z: 2500.0 # [m] linear variable change: - input variables: *soca_vars - output variables: *soca_vars + input variables: *soca_an_vars + output variables: *soca_an_vars linear variable changes: - linear variable change name: BkgErrGODAS @@ -109,7 +131,7 @@ cost function: date: *date_begin basename: data_static/72x35x25/restarts_ens/ # remap_filename: data_static/72x35x25/restarts/MOM.res.nc - state variables: *soca_vars + state variables: *soca_bg_vars members: - <<: *_file ocn_filename: MOM.res.ens.1.nc @@ -127,7 +149,7 @@ cost function: localization method: SABER saber central block: saber block name: BUMP_NICAS - active variables: *soca_vars + active variables: *soca_an_vars read: io: data directory: data_generated/parameters_bump_loc diff --git a/test/testinput/3dvar.yml b/test/testinput/3dvar.yml index 8df2dcd82..6f344176f 100644 --- a/test/testinput/3dvar.yml +++ b/test/testinput/3dvar.yml @@ -10,7 +10,19 @@ cost function: time window: begin: 2018-04-14T00:00:00Z length: P2D - analysis variables: &soca_vars [cicen, hicen, hsnon, socn, tocn, ssh, hocn, sw, lhf, shf, lw, us, mld, layer_depth] + analysis variables: &soca_an_vars + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_ice_category_snow_thickness + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - net_downwelling_shortwave_radiation + - upward_latent_heat_flux_in_air + - upward_sensible_heat_flux_in_air + - net_downwelling_longwave_radiation + - friction_velocity_over_water + geometry: &geom geom_grid_file: data_generated/gridgen/soca_gridspec.72x35x25.nc mom6_input_nml: data_static/72x35x25/input.nml @@ -23,7 +35,21 @@ cost function: ice_filename: cice.res.nc sfc_filename: sfc.res.nc date: &bkg_date 2018-04-15T00:00:00Z - state variables: *soca_vars + state variables: &soca_bg_vars + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_ice_category_snow_thickness + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - net_downwelling_shortwave_radiation + - upward_latent_heat_flux_in_air + - upward_sensible_heat_flux_in_air + - net_downwelling_longwave_radiation + - friction_velocity_over_water + - ocean_mixed_layer_thickness + - sea_water_depth background error: covariance model: SABER @@ -31,13 +57,15 @@ cost function: saber block name: diffusion read: groups: - - variables: [tocn, socn] + - variables: + - sea_water_potential_temperature + - sea_water_salinity horizontal: filepath: data_generated/parameters_diffusion/hz_smaller vertical: levels: 25 filepath: data_generated/parameters_diffusion/vt_5lvls - - variables: [ssh] + - variables: [sea_surface_height_above_geoid] horizontal: filepath: data_generated/parameters_diffusion/hz_smaller @@ -49,10 +77,9 @@ cost function: date: *bkg_date - linear variable change: - input variables: *soca_vars - output variables: *soca_vars + input variables: *soca_an_vars + output variables: *soca_an_vars linear variable changes: - linear variable change name: BkgErrGODAS diff --git a/test/testinput/3dvar_lowres.yml b/test/testinput/3dvar_lowres.yml index 68c934cb2..ac63b5401 100644 --- a/test/testinput/3dvar_lowres.yml +++ b/test/testinput/3dvar_lowres.yml @@ -10,7 +10,19 @@ cost function: time window: begin: 2018-04-14T00:00:00Z length: P2D - analysis variables: &soca_vars [cicen, hicen, hsnon, socn, tocn, ssh, hocn, sw, lhf, shf, lw, us, mld, layer_depth] + analysis variables: &soca_an_vars + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_ice_category_snow_thickness + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - net_downwelling_shortwave_radiation + - upward_latent_heat_flux_in_air + - upward_sensible_heat_flux_in_air + - net_downwelling_longwave_radiation + - friction_velocity_over_water + geometry: geom_grid_file: data_generated/gridgen/soca_gridspec.72x35x25.nc mom6_input_nml: data_static/72x35x25/input.nml @@ -23,7 +35,21 @@ cost function: ice_filename: cice.res.nc sfc_filename: sfc.res.nc date: &bkg_date 2018-04-15T00:00:00Z - state variables: *soca_vars + state variables: + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_ice_category_snow_thickness + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - net_downwelling_shortwave_radiation + - upward_latent_heat_flux_in_air + - upward_sensible_heat_flux_in_air + - net_downwelling_longwave_radiation + - friction_velocity_over_water + - ocean_mixed_layer_thickness + - sea_water_depth background error: covariance model: SABER @@ -34,13 +60,15 @@ cost function: read: groups: # NOTE, the lower resolution files are used here - - variables: [tocn, socn] + - variables: + - sea_water_potential_temperature + - sea_water_salinity horizontal: filepath: data_generated/parameters_diffusion_lowres/hz_smaller vertical: levels: 25 filepath: data_generated/parameters_diffusion_lowres/vt_5lvls - - variables: [ssh] + - variables: [sea_surface_height_above_geoid] horizontal: filepath: data_generated/parameters_diffusion_lowres/hz_smaller @@ -51,8 +79,8 @@ cost function: efold_z: 2500.0 # [m] linear variable change: - input variables: *soca_vars - output variables: *soca_vars + input variables: *soca_an_vars + output variables: *soca_an_vars linear variable changes: - linear variable change name: BkgErrGODAS diff --git a/test/testinput/3dvar_nicas.yml b/test/testinput/3dvar_nicas.yml index 33dcff0a4..d0a7c031b 100644 --- a/test/testinput/3dvar_nicas.yml +++ b/test/testinput/3dvar_nicas.yml @@ -10,7 +10,12 @@ cost function: time window: begin: 2018-04-14T00:00:00Z length: P2D - analysis variables: &soca_vars [socn, tocn, uocn, vocn, ssh] + analysis variables: &soca_an_vars + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid geometry: &geom_small geom_grid_file: data_static/36x17x25/soca_gridspec.nc mom6_input_nml: data_static/36x17x25/input.nml @@ -22,7 +27,15 @@ cost function: basename: data_static/36x17x25/restarts/ ocn_filename: MOM.res.nc date: 2018-04-15T00:00:00Z - state variables: [hocn, socn, tocn, uocn, vocn, ssh, mld, layer_depth] + state variables: + - sea_water_cell_thickness + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid + - ocean_mixed_layer_thickness + - sea_water_depth background error: covariance model: SABER @@ -38,13 +51,13 @@ cost function: grids: - model: variables: - - socn - - tocn - - uocn - - vocn + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity - model: variables: - - ssh + - sea_surface_height_above_geoid saber outer blocks: - saber block name: SOCABkgErrFilt ocean_depth_min: 1000 # [m] @@ -52,8 +65,8 @@ cost function: efold_z: 2500.0 # [m] linear variable change: - input variables: *soca_vars - output variables: *soca_vars + input variables: *soca_an_vars + output variables: *soca_an_vars linear variable changes: - linear variable change name: BkgErrGODAS diff --git a/test/testinput/3dvarfgat_pseudo.yml b/test/testinput/3dvarfgat_pseudo.yml index 2f17c81db..a31d4fcf5 100644 --- a/test/testinput/3dvarfgat_pseudo.yml +++ b/test/testinput/3dvarfgat_pseudo.yml @@ -10,7 +10,12 @@ cost function: time window: begin: &date_begin 2018-04-15T00:00:00Z length: PT24H - analysis variables: &soca_vars [socn, tocn, uocn, vocn, ssh] + analysis variables: &soca_an_vars + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid geometry: &geom geom_grid_file: data_generated/gridgen/soca_gridspec.72x35x25.nc mom6_input_nml: data_static/72x35x25/input.nml @@ -19,8 +24,8 @@ cost function: variable change: variable change name: Model2Ana rotate: - u: [uocn] - v: [vocn] + u: [eastward_sea_water_velocity] + v: [northward_sea_water_velocity] log: var: [] @@ -49,7 +54,15 @@ cost function: basename: data_static/72x35x25/restarts/ ocn_filename: MOM.res.nc date: &bkg_date 2018-04-15T00:00:00Z - state variables: [socn, tocn, ssh, hocn, uocn, vocn, mld, layer_depth] + state variables: + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - eastward_sea_water_velocity + - northward_sea_water_velocity + - ocean_mixed_layer_thickness + - sea_water_depth background error: covariance model: SABER @@ -57,7 +70,10 @@ cost function: saber block name: diffusion read: groups: - - variables: [tocn, socn, ssh] + - variables: + - sea_water_potential_temperature + - sea_water_salinity + - sea_surface_height_above_geoid horizontal: filepath: data_generated/parameters_diffusion/hz_smaller vertical: @@ -71,8 +87,8 @@ cost function: efold_z: 2500.0 # [m] linear variable change: - input variables: *soca_vars - output variables: *soca_vars + input variables: *soca_an_vars + output variables: *soca_an_vars linear variable changes: - linear variable change name: BalanceSOCA diff --git a/test/testinput/4denvar.yml b/test/testinput/4denvar.yml index c7c8aab7b..2465e9e68 100644 --- a/test/testinput/4denvar.yml +++ b/test/testinput/4denvar.yml @@ -1,6 +1,11 @@ cost function: cost type: 4D-Ens-Var - analysis variables: [socn, tocn, uocn, vocn, ssh] + analysis variables: + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid time window: begin: 2018-04-15T00:00:00Z length: PT24H @@ -17,10 +22,17 @@ cost function: - _bkg_state: &_bkg_state read_from_file: 1 basename: data_generated/forecast_mom6/ - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: &soca_bg_vars + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - sea_water_depth read_from_file: 1 basename: data_static/72x35x25/restarts/ - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *soca_bg_vars ocn_filename: MOM.res.nc date: 2018-04-15T00:00:00Z - <<: *_bkg_state @@ -50,10 +62,10 @@ cost function: states: - _bkg_err_state: &_bkg_err_state read_from_file: 1 - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *soca_bg_vars basename: data_generated/forecast_mom6_ens%mem%/ read_from_file: 1 - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *soca_bg_vars basename: data_static/72x35x25/restarts_ens/ ocn_filename: MOM.res.ens.%mem%.nc date: 2018-04-15T00:00:00Z diff --git a/test/testinput/4dhybenvar.yml b/test/testinput/4dhybenvar.yml index 5df9393f5..f363b30ef 100644 --- a/test/testinput/4dhybenvar.yml +++ b/test/testinput/4dhybenvar.yml @@ -1,6 +1,12 @@ cost function: cost type: 4D-Ens-Var - analysis variables: [socn, tocn, uocn, vocn, ssh] + analysis variables: &soca_an_vars + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid + time window: begin: 2018-04-15T00:00:00Z length: PT24H @@ -17,10 +23,17 @@ cost function: - _bkg_state: &_bkg_state read_from_file: 1 basename: data_generated/forecast_mom6/ - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: &soca_bg_vars + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - sea_water_depth read_from_file: 1 basename: data_static/72x35x25/restarts/ - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *soca_bg_vars ocn_filename: MOM.res.nc date: 2018-04-15T00:00:00Z - <<: *_bkg_state @@ -47,7 +60,10 @@ cost function: saber block name: diffusion read: groups: - - variables: [tocn, socn, ssh] + - variables: + - sea_water_potential_temperature + - sea_water_salinity + - sea_surface_height_above_geoid horizontal: filepath: data_generated/parameters_diffusion/hz_smaller vertical: @@ -70,10 +86,10 @@ cost function: states: - _bkg_err_state: &_bkg_err_state read_from_file: 1 - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *soca_bg_vars basename: data_generated/forecast_mom6_ens%mem%/ read_from_file: 1 - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *soca_bg_vars basename: data_static/72x35x25/restarts_ens/ ocn_filename: MOM.res.ens.%mem%.nc date: 2018-04-15T00:00:00Z diff --git a/test/testinput/4dvar_htlm.yml b/test/testinput/4dvar_htlm.yml index f8c5e91ed..42ecd1d68 100644 --- a/test/testinput/4dvar_htlm.yml +++ b/test/testinput/4dvar_htlm.yml @@ -4,7 +4,12 @@ cost function: time window: begin: *date_begin length: PT12H - analysis variables: &soca_vars [socn, tocn, uocn, vocn, ssh, hocn] + analysis variables: &soca_an_vars + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid geometry: &geom geom_grid_file: data_generated/gridgen/soca_gridspec.72x35x25.nc @@ -38,7 +43,15 @@ cost function: basename: data_static/72x35x25/restarts/ ocn_filename: MOM.res.nc date: *date_begin - state variables: &model_vars [socn, uocn, vocn, tocn, ssh, hocn, mld, layer_depth] + state variables: &soca_bg_vars + - sea_water_salinity + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - ocean_mixed_layer_thickness + - sea_water_depth background error: covariance model: SABER @@ -46,7 +59,10 @@ cost function: saber block name: diffusion read: groups: - - variables: [tocn, socn, ssh] + - variables: + - sea_water_potential_temperature + - sea_water_salinity + - sea_surface_height_above_geoid horizontal: filepath: data_generated/parameters_diffusion/hz_smaller vertical: @@ -60,8 +76,8 @@ cost function: efold_z: 2500.0 # [m] linear variable change: - input variables: *soca_vars - output variables: *soca_vars + input variables: *soca_an_vars + output variables: *soca_an_vars linear variable changes: - linear variable change name: BkgErrGODAS @@ -124,9 +140,11 @@ variational: tstep: PT6H variable change: Identity update tstep: PT6H - variables: [socn, tocn] + variables: &tlm_vars + - sea_water_salinity + - sea_water_potential_temperature coefficients: - update variables: [socn, tocn] + update variables: *tlm_vars influence region size: 3 time window: begin: 2018-04-15T00:00:00Z diff --git a/test/testinput/4dvar_identity.yml b/test/testinput/4dvar_identity.yml index 1d2740ed7..894d9d49d 100644 --- a/test/testinput/4dvar_identity.yml +++ b/test/testinput/4dvar_identity.yml @@ -4,7 +4,12 @@ cost function: time window: begin: *date_begin length: PT12H - analysis variables: &soca_vars [socn, tocn, uocn, vocn, ssh, hocn] + analysis variables: &soca_an_vars + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid geometry: &geom geom_grid_file: data_generated/gridgen/soca_gridspec.72x35x25.nc @@ -28,8 +33,8 @@ cost function: variable change: variable change name: Model2Ana rotate: - u: [uocn] - v: [vocn] + u: [eastward_sea_water_velocity] + v: [northward_sea_water_velocity] log: var: [] @@ -38,7 +43,15 @@ cost function: basename: data_static/72x35x25/restarts/ ocn_filename: MOM.res.nc date: *date_begin - state variables: &model_vars [socn, uocn, vocn, tocn, ssh, hocn, mld, layer_depth] + state variables: &soca_bg_vars + - sea_water_salinity + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - ocean_mixed_layer_thickness + - sea_water_depth background error: covariance model: SABER @@ -46,7 +59,10 @@ cost function: saber block name: diffusion read: groups: - - variables: [tocn, socn, ssh] + - variables: + - sea_water_potential_temperature + - sea_water_salinity + - sea_surface_height_above_geoid horizontal: filepath: data_generated/parameters_diffusion/hz_smaller vertical: @@ -60,8 +76,8 @@ cost function: efold_z: 2500.0 # [m] linear variable change: - input variables: *soca_vars - output variables: *soca_vars + input variables: *soca_an_vars + output variables: *soca_an_vars linear variable changes: - linear variable change name: BkgErrGODAS diff --git a/test/testinput/addincrement.yml b/test/testinput/addincrement.yml index 14bd05aa6..bdf591d20 100644 --- a/test/testinput/addincrement.yml +++ b/test/testinput/addincrement.yml @@ -12,7 +12,18 @@ state: ice_filename: cice.res.nc sfc_filename: sfc.res.nc date: &bkg_date 2018-04-15T00:00:00Z - state variables: [cicen, hicen, hsnon, socn, tocn, ssh, hocn, uocn, vocn, mld, layer_depth] + state variables: + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_ice_category_snow_thickness + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - eastward_sea_water_velocity + - northward_sea_water_velocity + - ocean_mixed_layer_thickness + - sea_water_depth increment: read_from_file: 1 @@ -20,7 +31,10 @@ increment: ocn_filename: ocn.3dvar.iter1.incr.2018-04-15T00:00:00Z.nc ice_filename: ice.3dvar.iter1.incr.2018-04-15T00:00:00Z.nc date: *bkg_date - added variables: [hsnon, socn, tocn] + added variables: + - sea_ice_category_snow_thickness + - sea_water_salinity + - sea_water_potential_temperature output: datadir: data_output/ diff --git a/test/testinput/convertincrement.yml b/test/testinput/convertincrement.yml index b1cf1d3b8..1f87ea9d0 100644 --- a/test/testinput/convertincrement.yml +++ b/test/testinput/convertincrement.yml @@ -6,8 +6,12 @@ input geometry: &geom output geometry: *geom linear variable change: - input variables: [tocn, socn, ssh, hocn] - output variables: [tocn, socn, ssh, hocn] + input variables: &soca_inc_vars + - sea_water_potential_temperature + - sea_water_salinity + - sea_surface_height_above_geoid +# - sea_water_cell_thickness + output variables: *soca_inc_vars linear variable changes: - linear variable change name: BalanceSOCA kst: @@ -20,19 +24,29 @@ linear variable change: increments: - date: 2018-04-15T00:00:00Z - input variables: [tocn, socn, ssh, hocn] + input variables: *soca_inc_vars input: read_from_file: 1 basename: data_generated/3dvar/ ocn_filename: ocn.3dvar.iter1.incr.2018-04-15T00:00:00Z.nc date: 2018-04-15T00:00:00Z - state variables: [ssh, tocn, socn, hocn] + state variables: + - sea_surface_height_above_geoid + - sea_water_potential_temperature + - sea_water_salinity + - sea_water_cell_thickness trajectory: read_from_file: 1 basename: data_static/72x35x25/restarts/ ocn_filename: MOM.res.nc date: 2018-04-15T00:00:00Z - state variables: [ssh, tocn, socn, hocn, layer_depth, mld] + state variables: &soca_bg_vars + - sea_surface_height_above_geoid + - sea_water_potential_temperature + - sea_water_salinity + - sea_water_cell_thickness + - sea_water_depth + - ocean_mixed_layer_thickness output: datadir: data_output/ exp: convertincrement diff --git a/test/testinput/convertstate.yml b/test/testinput/convertstate.yml index 19d92c6f7..a31df38b7 100644 --- a/test/testinput/convertstate.yml +++ b/test/testinput/convertstate.yml @@ -18,7 +18,14 @@ states: date: &bkg_date 2018-04-15T00:00:00Z # NOTE: you probably shouldn't use uocn and vocn for now until grid # de-staggering is implemented - state variables: [ssh, tocn, socn, hocn, cicen, layer_depth] + state variables: + - sea_surface_height_above_geoid + - sea_water_potential_temperature + - sea_water_salinity + - sea_water_cell_thickness + - sea_ice_category_area_fraction + - sea_water_depth + output: datadir: data_output/ exp: convertstate diff --git a/test/testinput/convertstate_changevar.yml b/test/testinput/convertstate_changevar.yml index 70d950058..eb84f42b7 100644 --- a/test/testinput/convertstate_changevar.yml +++ b/test/testinput/convertstate_changevar.yml @@ -1,7 +1,3 @@ -_: #YAML anchors to be used throughout - - &soca_vars [ssh, tocn, socn, uocn, vocn, hocn, cicen, chl, layer_depth] - - input geometry: &geom geom_grid_file: data_generated/gridgen/soca_gridspec.72x35x25.nc mom6_input_nml: data_static/72x35x25/input.nml @@ -13,12 +9,23 @@ variable change: variable change name: Model2Ana do inverse: false rotate: - u: [uocn] - v: [vocn] + u: [eastward_sea_water_velocity] + v: [northward_sea_water_velocity] interp: true log: - var: [socn, chl] - output variables: *soca_vars + var: + - sea_water_salinity + - mass_concentration_of_chlorophyll_in_sea_water + output variables: &soca_vars + - sea_surface_height_above_geoid + - sea_water_potential_temperature + - sea_water_salinity + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_water_cell_thickness + - sea_ice_category_area_fraction + - mass_concentration_of_chlorophyll_in_sea_water + - sea_water_depth states: - input: diff --git a/test/testinput/convertstate_soca2cice.yml b/test/testinput/convertstate_soca2cice.yml index 5e2b09f64..b3178d9f0 100644 --- a/test/testinput/convertstate_soca2cice.yml +++ b/test/testinput/convertstate_soca2cice.yml @@ -22,7 +22,13 @@ variable change: tstep: PT1H cice output: restart: data_output/iced.2018-04-15-00000.nc - output variables: [tocn, socn, hocn, cicen, hicen, hsnon] + output variables: &soca_vars + - sea_water_potential_temperature + - sea_water_salinity + - sea_water_cell_thickness + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_ice_category_snow_thickness states: - input: @@ -31,7 +37,7 @@ states: ocn_filename: ocn.3dvar.an.2018-04-15T00:00:00Z.nc ice_filename: ice.3dvar.an.2018-04-15T00:00:00Z.nc date: &bkg_date 2018-04-15T00:00:00Z - state variables: [tocn, socn, hocn, cicen, hicen, hsnon] + state variables: *soca_vars output: datadir: data_output/ exp: soca2cice diff --git a/test/testinput/diffstates.yml b/test/testinput/diffstates.yml index e0ef52c0b..55dba77b7 100644 --- a/test/testinput/diffstates.yml +++ b/test/testinput/diffstates.yml @@ -12,7 +12,16 @@ state1: ice_filename: cice.res.nc sfc_filename: sfc.res.nc date: &bkg_date 2018-04-15T00:00:00Z - state variables: [cicen, hicen, hsnon, socn, tocn, ssh, hocn, uocn, vocn] + state variables: &state_vars + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_ice_category_snow_thickness + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - eastward_sea_water_velocity + - northward_sea_water_velocity state2: read_from_file: 1 @@ -21,7 +30,7 @@ state2: ice_filename: cice.res.nc sfc_filename: sfc.res.nc date: *bkg_date - state variables: [cicen, hicen, hsnon, socn, tocn, ssh, hocn, uocn, vocn] + state variables: *state_vars output: # state1 - state2 datadir: data_output/ diff --git a/test/testinput/dirac_diffusion.yml b/test/testinput/dirac_diffusion.yml index 7450d571b..b1045fbfb 100644 --- a/test/testinput/dirac_diffusion.yml +++ b/test/testinput/dirac_diffusion.yml @@ -9,7 +9,15 @@ background: date: &date 2018-04-15T00:00:00Z ocn_filename: MOM.res.nc ice_filename: cice.res.nc - state variables: &soca_vars [cicen, hicen, socn, tocn, ssh, hocn, mld, layer_depth] + state variables: + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - ocean_mixed_layer_thickness + - sea_water_depth background error: covariance model: SABER @@ -18,7 +26,9 @@ background error: saber block name: diffusion read: groups: - - variables: [tocn, socn] + - variables: + - sea_water_potential_temperature + - sea_water_salinity multivariate strategy: univariate # or duplicated, if dealing with localization instead # the default is "univariate" horizontal: @@ -26,7 +36,7 @@ background error: vertical: levels: 25 filepath: data_generated/parameters_diffusion/vt_5lvls - - variables: [ssh] + - variables: [sea_surface_height_above_geoid] horizontal: filepath: data_generated/parameters_diffusion/hz_smaller diff --git a/test/testinput/dirac_diffusion_lowres.yml b/test/testinput/dirac_diffusion_lowres.yml index b66fe13a4..1ac37f052 100644 --- a/test/testinput/dirac_diffusion_lowres.yml +++ b/test/testinput/dirac_diffusion_lowres.yml @@ -9,7 +9,15 @@ background: date: &date 2018-04-15T00:00:00Z ocn_filename: MOM.res.nc ice_filename: cice.res.nc - state variables: &soca_vars [cicen, hicen, socn, tocn, ssh, hocn, mld, layer_depth] + state variables: + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - ocean_mixed_layer_thickness + - sea_water_depth background error: covariance model: SABER @@ -18,7 +26,9 @@ background error: saber block name: diffusion read: groups: - - variables: [tocn, socn] + - variables: + - sea_water_potential_temperature + - sea_water_salinity multivariate strategy: univariate # or duplicated, if dealing with localization instead # the default is "univariate" horizontal: @@ -26,7 +36,7 @@ background error: vertical: levels: 25 filepath: data_generated/parameters_diffusion_lowres/vt_5lvls - - variables: [ssh] + - variables: [sea_surface_height_above_geoid] horizontal: filepath: data_generated/parameters_diffusion_lowres/hz_smaller diff --git a/test/testinput/dirac_soca_cor_nicas_scales.yml b/test/testinput/dirac_soca_cor_nicas_scales.yml index 3779d5ffd..0402b3a3d 100644 --- a/test/testinput/dirac_soca_cor_nicas_scales.yml +++ b/test/testinput/dirac_soca_cor_nicas_scales.yml @@ -9,7 +9,13 @@ background: date: &date 2018-04-15T00:00:00Z ocn_filename: MOM.res.nc ice_filename: cice.res.nc - state variables: &soca_vars [socn, tocn, ssh, hocn, cicen, hicen] + state variables: + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - sea_ice_category_area_fraction + - sea_ice_category_thickness background error: covariance model: SABER @@ -25,13 +31,13 @@ background error: grids: - model: variables: - - socn - - tocn + - sea_water_salinity + - sea_water_potential_temperature - model: variables: - - ssh - - cicen - - hicen + - sea_surface_height_above_geoid + - sea_ice_category_area_fraction + - sea_ice_category_thickness dirac: ixdir: [1, 17, 41, 31, 51, 63, 81, 14, 16, 43] diff --git a/test/testinput/dirac_soca_cov.yml b/test/testinput/dirac_soca_cov.yml index 67520e32f..fcb4943cc 100644 --- a/test/testinput/dirac_soca_cov.yml +++ b/test/testinput/dirac_soca_cov.yml @@ -9,7 +9,17 @@ background: date: &date 2018-04-15T00:00:00Z ocn_filename: MOM.res.nc ice_filename: cice.res.nc - state variables: &soca_vars [cicen, hicen, socn, tocn, uocn, vocn, ssh, hocn, mld, layer_depth] + state variables: &soca_vars + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - ocean_mixed_layer_thickness + - sea_water_depth background error: covariance model: SABER @@ -17,7 +27,14 @@ background error: saber block name: diffusion read: groups: - - variables: [cicen, hicen, uocn, vocn, tocn, socn, ssh] + - variables: + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_water_potential_temperature + - sea_water_salinity + - sea_surface_height_above_geoid horizontal: filepath: data_generated/parameters_diffusion/hz_smaller vertical: @@ -33,7 +50,6 @@ background error: linear variable change: input variables: *soca_vars output variables: *soca_vars - linear variable changes: - linear variable change name: BkgErrGODAS @@ -51,8 +67,6 @@ background error: cicen_max: 0.5 hicen_min: 10.0 hicen_max: 100.0 - input variables: *soca_vars - output variables: *soca_vars - linear variable change name: BalanceSOCA kst: @@ -65,8 +79,6 @@ background error: dcdt: filename: data_static/72x35x25/dcdt.nc name: dcdt - input variables: *soca_vars - output variables: *soca_vars dirac: ixdir: [1, 17, 41, 31, 51, 63, 81, 14, 16, 43, 55] diff --git a/test/testinput/dirac_socahyb_cov.yml b/test/testinput/dirac_socahyb_cov.yml index b3535e515..589754bf7 100644 --- a/test/testinput/dirac_socahyb_cov.yml +++ b/test/testinput/dirac_socahyb_cov.yml @@ -9,7 +9,17 @@ background: date: &date 2018-04-15T00:00:00Z ocn_filename: MOM.res.nc ice_filename: cice.res.nc - state variables: &soca_vars [cicen, hicen, socn, tocn, uocn, vocn, ssh, hocn, mld, layer_depth] + state variables: &soca_vars + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - ocean_mixed_layer_thickness + - sea_water_depth _file: &_file read_from_file: 1 @@ -27,7 +37,14 @@ background error: saber block name: diffusion read: groups: - - variables: [cicen, hicen, uocn, vocn, tocn, socn, ssh] + - variables: + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_water_potential_temperature + - sea_water_salinity + - sea_surface_height_above_geoid horizontal: filepath: data_generated/parameters_diffusion/hz_smaller vertical: @@ -60,8 +77,6 @@ background error: cicen_max: 0.5 hicen_min: 10.0 hicen_max: 100.0 - input variables: *soca_vars - output variables: *soca_vars - linear variable change name: BalanceSOCA kst: @@ -74,8 +89,6 @@ background error: dcdt: filename: data_static/72x35x25/dcdt.nc name: dcdt - input variables: *soca_vars - output variables: *soca_vars weight: value: 0.5 diff --git a/test/testinput/ensmeanandvariance.yml b/test/testinput/ensmeanandvariance.yml index 29a1f142e..a1610ffdd 100644 --- a/test/testinput/ensmeanandvariance.yml +++ b/test/testinput/ensmeanandvariance.yml @@ -8,7 +8,17 @@ _file: &_file date: &date_bkg 2018-04-15T00:00:00Z basename: data_static/72x35x25/ remap_filename: data_static/72x35x25/restarts/MOM.res.nc - state variables: &soca_vars [cicen, hicen, socn, tocn, uocn, vocn, ssh, hocn, mld, layer_depth] + state variables: &soca_vars + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - ocean_mixed_layer_thickness + - sea_water_depth ensemble: members: diff --git a/test/testinput/enspert.yml b/test/testinput/enspert.yml index 273047fab..1c94409ad 100644 --- a/test/testinput/enspert.yml +++ b/test/testinput/enspert.yml @@ -7,7 +7,25 @@ model: # obviously not ideal, in the real world you'd want to run a forecast with MOM6 after running enspert name: Identity tstep: PT6H - model variables: &model_vars [cicen, hicen, hsnon, socn, tocn, uocn, vocn, ssh, hocn, chl, biop, sw, lhf, shf, lw, us, mld, layer_depth] + model variables: &model_vars + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_ice_category_snow_thickness + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - mass_concentration_of_chlorophyll_in_sea_water + - molar_concentration_of_biomass_in_sea_water_in_p_units + - net_downwelling_shortwave_radiation + - upward_latent_heat_flux_in_air + - upward_sensible_heat_flux_in_air + - net_downwelling_longwave_radiation + - friction_velocity_over_water + - ocean_mixed_layer_thickness + - sea_water_depth initial condition: read_from_file: 1 @@ -21,10 +39,20 @@ background error: covariance model: SABER saber central block: saber block name: diffusion - active variables: &soca_vars [tocn, socn, ssh, uocn, vocn, cicen, hicen, chl, biop] + active variables: &soca_vars + - sea_water_potential_temperature + - sea_water_salinity + - sea_surface_height_above_geoid + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - mass_concentration_of_chlorophyll_in_sea_water + - molar_concentration_of_biomass_in_sea_water_in_p_units + read: groups: - - variables: [tocn, socn, ssh, uocn, vocn, cicen, hicen, chl, biop] + - variables: *soca_vars horizontal: filepath: data_generated/parameters_diffusion/hz_smaller vertical: diff --git a/test/testinput/ensrecenter.yml b/test/testinput/ensrecenter.yml index a5c589e0b..2b30b41b2 100644 --- a/test/testinput/ensrecenter.yml +++ b/test/testinput/ensrecenter.yml @@ -3,7 +3,15 @@ geometry: mom6_input_nml: data_static/72x35x25/input.nml fields metadata: data_static/fields_metadata.yml -recenter variables: [cicen, hicen, socn, tocn, uocn, vocn, ssh, hocn] +recenter variables: &vars +- sea_ice_category_area_fraction +- sea_ice_category_thickness +- sea_water_salinity +- sea_water_potential_temperature +- eastward_sea_water_velocity +- northward_sea_water_velocity +- sea_surface_height_above_geoid +- sea_water_cell_thickness center: read_from_file: 1 @@ -11,7 +19,7 @@ center: basename: data_static/72x35x25/ ocn_filename: restarts/MOM.res.nc ice_filename: restarts/cice.res.nc - state variables: [cicen, hicen, socn, tocn, uocn, vocn, ssh, hocn] + state variables: *vars ensemble: members from template: @@ -22,7 +30,7 @@ ensemble: remap_filename: data_static/72x35x25/restarts/MOM.res.nc ocn_filename: restarts_ens/MOM.res.ens.%mem%.nc ice_filename: restarts_ens/cice.res.ens.%mem%.nc - state variables: [cicen, hicen, socn, tocn, uocn, vocn, ssh, hocn] + state variables: *vars pattern: %mem% nmembers: 4 diff --git a/test/testinput/forecast_identity.yml b/test/testinput/forecast_identity.yml index b94bc47a3..676b851de 100644 --- a/test/testinput/forecast_identity.yml +++ b/test/testinput/forecast_identity.yml @@ -6,7 +6,19 @@ geometry: model: name: Identity tstep: PT1H - model variables: &soca_vars [cicen, hicen, socn, tocn, ssh, hocn, sw, lhf, shf, lw, us, chl] + model variables: &soca_vars + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - net_downwelling_shortwave_radiation + - upward_latent_heat_flux_in_air + - upward_sensible_heat_flux_in_air + - net_downwelling_longwave_radiation + - friction_velocity_over_water + - mass_concentration_of_chlorophyll_in_sea_water initial condition: read_from_file: 1 diff --git a/test/testinput/forecast_pseudo.yml b/test/testinput/forecast_pseudo.yml index 81b87fc28..4f91a6b6d 100644 --- a/test/testinput/forecast_pseudo.yml +++ b/test/testinput/forecast_pseudo.yml @@ -29,7 +29,13 @@ initial condition: date: &date 2018-04-15T00:00:00Z basename: data_static/72x35x25/restarts/ ocn_filename: MOM.res.nc - state variables: [socn, tocn, ssh, hocn, uocn, vocn] + state variables: + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - eastward_sea_water_velocity + - northward_sea_water_velocity forecast length: PT24H diff --git a/test/testinput/gen_hybrid_linear_model_coeffs.yml b/test/testinput/gen_hybrid_linear_model_coeffs.yml index 969a19887..3a9e4d60f 100644 --- a/test/testinput/gen_hybrid_linear_model_coeffs.yml +++ b/test/testinput/gen_hybrid_linear_model_coeffs.yml @@ -11,13 +11,15 @@ hybrid linear model: variable change: Identity name: Identity update tstep: PT6H - variables: [socn, tocn] + variables: &tlm_vars + - sea_water_salinity + - sea_water_potential_temperature coefficients: output: base filepath: data_output/hybrid_linear_model_coeffs one file per task: true influence region size: 3 - update variables: [socn, tocn] + update variables: *tlm_vars time window: begin: 2018-04-15T00:00:00Z length: PT12H @@ -34,55 +36,62 @@ hybrid linear model: - date: 2018-04-15T06:00:00Z read_from_file: 1 basename: data_generated/forecast_mom6/ - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: &state_vars + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - sea_water_depth ocn_filename: ocn.forecast_mom6.fc.2018-04-15T00:00:00Z.PT6H.nc - date: 2018-04-15T12:00:00Z read_from_file: 1 basename: data_generated/forecast_mom6/ - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *state_vars ocn_filename: ocn.forecast_mom6.fc.2018-04-15T00:00:00Z.PT12H.nc - ID: 1 states: - date: 2018-04-15T06:00:00Z read_from_file: 1 basename: data_generated/forecast_mom6_ens1/ - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *state_vars ocn_filename: ocn.fcst_ens1.fc.2018-04-15T00:00:00Z.PT6H.nc - date: 2018-04-15T12:00:00Z read_from_file: 1 basename: data_generated/forecast_mom6_ens1/ - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *state_vars ocn_filename: ocn.fcst_ens1.fc.2018-04-15T00:00:00Z.PT12H.nc - ID: 2 states: - date: 2018-04-15T06:00:00Z read_from_file: 1 basename: data_generated/forecast_mom6_ens2/ - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *state_vars ocn_filename: ocn.fcst_ens2.fc.2018-04-15T00:00:00Z.PT6H.nc - date: 2018-04-15T12:00:00Z read_from_file: 1 basename: data_generated/forecast_mom6_ens2/ - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *state_vars ocn_filename: ocn.fcst_ens2.fc.2018-04-15T00:00:00Z.PT12H.nc - ID: 3 states: - date: 2018-04-15T06:00:00Z read_from_file: 1 basename: data_generated/forecast_mom6_ens3/ - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *state_vars ocn_filename: ocn.fcst_ens3.fc.2018-04-15T00:00:00Z.PT6H.nc - date: 2018-04-15T12:00:00Z read_from_file: 1 basename: data_generated/forecast_mom6_ens3/ - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *state_vars ocn_filename: ocn.fcst_ens3.fc.2018-04-15T00:00:00Z.PT12H.nc model geometry: *geom nonlinear control: ID: 0 read_from_file: 1 basename: data_static/72x35x25/restarts/ - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *state_vars ocn_filename: MOM.res.nc date: 2018-04-15T00:00:00Z nonlinear ensemble: @@ -93,17 +102,17 @@ hybrid linear model: template: ID: %mem% read_from_file: 1 - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *state_vars basename: data_static/72x35x25/restarts_ens/ ocn_filename: MOM.res.ens.%mem%.nc date: 2018-04-15T00:00:00Z test: - variables: [socn, tocn] + variables: *tlm_vars # NOTE: iUsing large tolerances - # here just to test the plumbing the testoutput is not + # here just to test the plumbing the testoutput is not # realistic as initital perturbation is a matrix of ones - # OR accurate as the RMSbyLevel doesnt take + # OR accurate as the RMSbyLevel doesnt take # landmask into account reference filename: testref/gen_hybrid_linear_model_coeffs.test test output filename: testoutput/gen_hybrid_linear_model_coeffs.test diff --git a/test/testinput/geometry_iterator_2d.yml b/test/testinput/geometry_iterator_2d.yml index 8ce7574d6..87d576347 100644 --- a/test/testinput/geometry_iterator_2d.yml +++ b/test/testinput/geometry_iterator_2d.yml @@ -4,7 +4,14 @@ geometry: fields metadata: data_static/fields_metadata.yml iterator dimension: 2 -inc variables: [cicen, hicen, socn, tocn, uocn, vocn, ssh, hocn] +inc variables: + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid increment test: date: &date 2018-04-15T00:00:00Z diff --git a/test/testinput/getvalues.yml b/test/testinput/getvalues.yml index d8b094fb4..581b494b9 100644 --- a/test/testinput/getvalues.yml +++ b/test/testinput/getvalues.yml @@ -7,7 +7,21 @@ state: analytic init: method: soca_ana_init date: &date 2018-04-15T03:00:00Z - state variables: [tocn, socn, hocn, ssh, cicen, hicen, swh, sw, lw, lhf, shf, us, uocn, vocn ] + state variables: + - sea_water_potential_temperature + - sea_water_salinity + - sea_water_cell_thickness + - sea_surface_height_above_geoid + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_surface_wave_significant_height + - net_downwelling_shortwave_radiation + - net_downwelling_longwave_radiation + - upward_latent_heat_flux_in_air + - upward_sensible_heat_flux_in_air + - friction_velocity_over_water + - eastward_sea_water_velocity + - northward_sea_water_velocity variables: &vars [ # sea_water_potential_temperature, @@ -45,7 +59,7 @@ locations: lat2: 37.5 lon1: -192.5 lon2: -57 - obs errors: [1.0, 1.0, 1.0, 1.0] + obs errors: [1.0, 1.0, 1.0, 1.0] # , 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] tolerance interpolation: 10.5 # still really huge... should probably figure out why sometime. \ No newline at end of file diff --git a/test/testinput/hofx_3d.yml b/test/testinput/hofx_3d.yml index 2a48fa705..290b45b14 100644 --- a/test/testinput/hofx_3d.yml +++ b/test/testinput/hofx_3d.yml @@ -10,7 +10,23 @@ state: ocn_filename: MOM.res.nc ice_filename: cice.res.nc sfc_filename: sfc.res.nc - state variables: [cicen, hicen, hsnon, socn, tocn, ssh, hocn, uocn, vocn, sw, lhf, shf, lw, us, chl, dummy_atm1] + state variables: + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_ice_category_snow_thickness + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - eastward_sea_water_velocity + - northward_sea_water_velocity + - net_downwelling_shortwave_radiation + - upward_latent_heat_flux_in_air + - upward_sensible_heat_flux_in_air + - net_downwelling_longwave_radiation + - friction_velocity_over_water + - mass_concentration_of_chlorophyll_in_sea_water + - dummy_atm1 time window: begin: 2018-04-14T00:00:00Z @@ -114,7 +130,7 @@ observations: name: VertInterp observation alias file: testinput/obsop_name_map.yml vertical coordinate: sea_water_depth - observation vertical coordinate: depth + observation vertical coordinate: depth - obs space: name: InsituSalinity obsdataout: diff --git a/test/testinput/hofx_4d_pseudo.yml b/test/testinput/hofx_4d_pseudo.yml index a9c51c9b4..3905d699e 100644 --- a/test/testinput/hofx_4d_pseudo.yml +++ b/test/testinput/hofx_4d_pseudo.yml @@ -29,7 +29,13 @@ initial condition: date: 2018-04-15T00:00:00Z basename: data_static/72x35x25/restarts/ ocn_filename: MOM.res.nc - state variables: [socn, tocn, ssh, hocn, uocn, vocn] + state variables: + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - eastward_sea_water_velocity + - northward_sea_water_velocity time window: begin: 2018-04-15T00:00:00Z diff --git a/test/testinput/hofx_oasim_3d.yml b/test/testinput/hofx_oasim_3d.yml index a53c0a995..e9d4e5f10 100644 --- a/test/testinput/hofx_oasim_3d.yml +++ b/test/testinput/hofx_oasim_3d.yml @@ -11,9 +11,27 @@ state: ice_filename: cice.res.nc sfc_filename: sfc.res.nc bio_filename: NOBM.res.nc - state variables: [hocn, oz_th, wvapor, ws, pres, rh, cld_lwp, - cov, aer_tau, scat_alb, asym_par, c_det, inorg_c, dis_c, - diatom, chloro, cyano, cocco, dino, phaeo] + state variables: + - sea_water_cell_thickness + - ozone_thickness + - water_vapor + - wind_speed_at_surface + - air_pressure_at_surface + - relative_humidity + - cloud_liquid_water_path + - cloud_area_fraction_in_atmosphere_layer + - aerosol_optical_thickness + - single_scattering_albedo + - asymmetry_parameter + - Carbon_nitrogen_detritus_concentration + - Particulate_inorganic_carbon + - colored_dissolved_organic_carbon + - diatom_concentration + - chlorophyte_concentration + - cyano-bacteria_concentration + - coccolithophore_concentration + - dinoflagellate_concentration + - phaeocystis_concentration time window: begin: 2018-04-14T00:00:00Z diff --git a/test/testinput/hybridgain.yml b/test/testinput/hybridgain.yml index 4d3bb015b..717df6136 100644 --- a/test/testinput/hybridgain.yml +++ b/test/testinput/hybridgain.yml @@ -8,7 +8,15 @@ _file: &_file date: &date_bkg 2018-04-15T00:00:00Z basename: data_static/72x35x25/ remap_filename: data_static/72x35x25/restarts/MOM.res.nc - state variables: &soca_vars [cicen, hicen, socn, tocn, uocn, vocn, ssh, hocn] + state variables: + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid + - sea_water_cell_thickness hybrid weights: control: 0.2 diff --git a/test/testinput/increment.yml b/test/testinput/increment.yml index c7ed87347..8008038a5 100644 --- a/test/testinput/increment.yml +++ b/test/testinput/increment.yml @@ -8,8 +8,20 @@ other geometry: mom6_input_nml: data_static/36x17x25/input.nml fields metadata: data_static/fields_metadata.yml -# TODO should add cicen/uocn/vocn, but this makes the tests fail -inc variables: [hicen, socn, tocn, uocn, vocn, ssh, chl, biop, sw, lw, lhf, shf, us] +inc variables: +- sea_ice_category_thickness +- sea_water_salinity +- sea_water_potential_temperature +- eastward_sea_water_velocity +- northward_sea_water_velocity +- sea_surface_height_above_geoid +- mass_concentration_of_chlorophyll_in_sea_water +- molar_concentration_of_biomass_in_sea_water_in_p_units +- net_downwelling_shortwave_radiation +- net_downwelling_longwave_radiation +- upward_latent_heat_flux_in_air +- upward_sensible_heat_flux_in_air +- friction_velocity_over_water increment test: tolerance AD resolution change: 1.0e-12 diff --git a/test/testinput/letkf.yml b/test/testinput/letkf.yml index 3a21afffd..bfffd09fc 100644 --- a/test/testinput/letkf.yml +++ b/test/testinput/letkf.yml @@ -14,7 +14,15 @@ background: ocn_filename: MOM.res.ens.%mem%.nc read_from_file: 1 basename: data_static/72x35x25/restarts_ens/ - state variables: [socn, tocn, ssh, uocn, vocn, hocn, chl, biop] + 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 @@ -81,7 +89,7 @@ observations: - filter: Domain Check where: - variable: {name: GeoVaLs/sea_area_fraction} - minvalue: 0.5 + minvalue: 0.5 driver: do posterior observer: true diff --git a/test/testinput/letkf_split_observer.yml b/test/testinput/letkf_split_observer.yml index 89f3bbb1e..84b43a522 100644 --- a/test/testinput/letkf_split_observer.yml +++ b/test/testinput/letkf_split_observer.yml @@ -12,7 +12,15 @@ background: template: date: 2018-04-15T00:00:00Z read_from_file: 1 - state variables: [socn, tocn, ssh, uocn, vocn, hocn, chl, biop] + 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 basename: data_static/72x35x25/restarts_ens/ ocn_filename: MOM.res.ens.%mem%.nc pattern: '%mem%' diff --git a/test/testinput/letkf_split_solver.yml b/test/testinput/letkf_split_solver.yml index 951d477ca..ce49b6c87 100644 --- a/test/testinput/letkf_split_solver.yml +++ b/test/testinput/letkf_split_solver.yml @@ -12,7 +12,15 @@ background: template: date: 2018-04-15T00:00:00Z read_from_file: 1 - state variables: [socn, tocn, ssh, uocn, vocn, hocn, chl, biop] + 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 basename: data_static/72x35x25/restarts_ens/ ocn_filename: MOM.res.ens.%mem%.nc pattern: '%mem%' diff --git a/test/testinput/linearization_error.yml b/test/testinput/linearization_error.yml index cc4f651b6..9654336db 100644 --- a/test/testinput/linearization_error.yml +++ b/test/testinput/linearization_error.yml @@ -15,10 +15,12 @@ linear model: variable change: Identity name: Identity update tstep: PT6H - variables: [socn, tocn] + variables: &tlm_vars + - sea_water_salinity + - sea_water_potential_temperature coefficients: influence region size: 3 - update variables: [socn, tocn] + update variables: *tlm_vars time window: begin: 2018-04-15T00:00:00Z length: PT12H @@ -35,55 +37,62 @@ linear model: - date: 2018-04-15T06:00:00Z read_from_file: 1 basename: data_generated/forecast_mom6/ - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: &state_vars + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - sea_water_depth ocn_filename: ocn.forecast_mom6.fc.2018-04-15T00:00:00Z.PT6H.nc - date: 2018-04-15T12:00:00Z read_from_file: 1 basename: data_generated/forecast_mom6/ - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *state_vars ocn_filename: ocn.forecast_mom6.fc.2018-04-15T00:00:00Z.PT12H.nc - ID: 1 states: - date: 2018-04-15T06:00:00Z read_from_file: 1 basename: data_generated/forecast_mom6_ens1/ - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *state_vars ocn_filename: ocn.fcst_ens1.fc.2018-04-15T00:00:00Z.PT6H.nc - date: 2018-04-15T12:00:00Z read_from_file: 1 basename: data_generated/forecast_mom6_ens1/ - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *state_vars ocn_filename: ocn.fcst_ens1.fc.2018-04-15T00:00:00Z.PT12H.nc - ID: 2 states: - date: 2018-04-15T06:00:00Z read_from_file: 1 basename: data_generated/forecast_mom6_ens2/ - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *state_vars ocn_filename: ocn.fcst_ens2.fc.2018-04-15T00:00:00Z.PT6H.nc - date: 2018-04-15T12:00:00Z read_from_file: 1 basename: data_generated/forecast_mom6_ens2/ - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *state_vars ocn_filename: ocn.fcst_ens2.fc.2018-04-15T00:00:00Z.PT12H.nc - ID: 3 states: - date: 2018-04-15T06:00:00Z read_from_file: 1 basename: data_generated/forecast_mom6_ens3/ - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *state_vars ocn_filename: ocn.fcst_ens3.fc.2018-04-15T00:00:00Z.PT6H.nc - date: 2018-04-15T12:00:00Z read_from_file: 1 basename: data_generated/forecast_mom6_ens3/ - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *state_vars ocn_filename: ocn.fcst_ens3.fc.2018-04-15T00:00:00Z.PT12H.nc model geometry: *geom nonlinear control: ID: 0 read_from_file: 1 basename: data_static/72x35x25/restarts/ - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *state_vars ocn_filename: MOM.res.nc date: 2018-04-15T00:00:00Z nonlinear ensemble: @@ -94,7 +103,7 @@ linear model: template: ID: %mem% read_from_file: 1 - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *state_vars basename: data_static/72x35x25/restarts_ens/ ocn_filename: MOM.res.ens.%mem%.nc date: 2018-04-15T00:00:00Z @@ -104,18 +113,18 @@ x1: ID: 0 read_from_file: 1 basename: data_static/72x35x25/restarts/ - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *state_vars ocn_filename: MOM.res.nc - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *state_vars date: 2018-04-15T00:00:00Z x2: ID: 1 read_from_file: 1 - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *state_vars basename: data_static/72x35x25/restarts_ens/ ocn_filename: MOM.res.ens.1.nc - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *state_vars date: 2018-04-15T00:00:00Z # Provide the non-linear model here @@ -128,24 +137,24 @@ model: - date: 2018-04-15T06:00:00Z basename: data_generated/forecast_mom6/ ocn_filename: ocn.forecast_mom6.fc.2018-04-15T00:00:00Z.PT6H.nc - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *state_vars read_from_file: 1 - date: 2018-04-15T12:00:00Z basename: data_generated/forecast_mom6/ ocn_filename: ocn.forecast_mom6.fc.2018-04-15T00:00:00Z.PT12H.nc - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *state_vars read_from_file: 1 - ID: 1 states: - date: 2018-04-15T06:00:00Z read_from_file: 1 basename: data_generated/forecast_mom6_ens1/ - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *state_vars ocn_filename: ocn.fcst_ens1.fc.2018-04-15T00:00:00Z.PT6H.nc - date: 2018-04-15T12:00:00Z read_from_file: 1 basename: data_generated/forecast_mom6_ens1/ - state variables: [socn, tocn, uocn, vocn, ssh, hocn, layer_depth] + state variables: *state_vars ocn_filename: ocn.fcst_ens1.fc.2018-04-15T00:00:00Z.PT12H.nc model geometry: *geom diff --git a/test/testinput/makeobs.yml b/test/testinput/makeobs.yml index e624e0998..b1f513b34 100644 --- a/test/testinput/makeobs.yml +++ b/test/testinput/makeobs.yml @@ -12,7 +12,18 @@ geometry: model: name: Identity # could also do PseudoModel, if you wanted tstep: PT1H - model variables: &soca_vars [cicen, hicen, socn, tocn, ssh, hocn, sw, lhf, shf, lw, us] + model variables: &soca_vars + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - net_downwelling_shortwave_radiation + - upward_latent_heat_flux_in_air + - upward_sensible_heat_flux_in_air + - net_downwelling_longwave_radiation + - friction_velocity_over_water initial condition: read_from_file: 1 diff --git a/test/testinput/oceanSmoother.yml b/test/testinput/oceanSmoother.yml index 01f1845c1..aec9c762d 100644 --- a/test/testinput/oceanSmoother.yml +++ b/test/testinput/oceanSmoother.yml @@ -8,8 +8,13 @@ state: read_from_file: 1 basename: data_static/72x35x25/restarts/ ocn_filename: MOM.res.nc - state variables: [tocn, socn, ssh, hocn, mld, layer_depth] - + state variables: + - sea_water_potential_temperature + - sea_water_salinity + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - ocean_mixed_layer_thickness + - sea_water_depth oceanSmoother: # note that all scales here are Gaussian sigmas diff --git a/test/testinput/parameters_bump_cor_nicas.yml b/test/testinput/parameters_bump_cor_nicas.yml index d0cba90b0..8b44f11e5 100644 --- a/test/testinput/parameters_bump_cor_nicas.yml +++ b/test/testinput/parameters_bump_cor_nicas.yml @@ -10,7 +10,13 @@ background: ocn_filename: MOM.res.nc # basename: data_generated/convertstate/ # ocn_filename: ocn.convertstate.fc.2018-04-15T00:00:00Z.PT0S.nc - state variables: [socn, tocn, uocn, vocn, ssh] + state variables: &soca_vars + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid + - sea_water_cell_thickness background error: covariance model: SABER @@ -30,31 +36,21 @@ background error: resolution: 6.0 explicit length-scales: true horizontal length-scale: - - groups: - - socn - - tocn - - uocn - - vocn - - ssh + - groups: *soca_vars value: 6000.0e3 vertical length-scale: - - groups: - - socn - - tocn - - uocn - - vocn - - ssh + - groups: *soca_vars value: 100 grids: - model: variables: - - socn - - tocn - - uocn - - vocn + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity - model: variables: - - ssh + - sea_surface_height_above_geoid output model files: - parameter: cor_rh file: diff --git a/test/testinput/parameters_bump_cor_nicas_scales.yml b/test/testinput/parameters_bump_cor_nicas_scales.yml index 1438df0b6..482e3e25e 100644 --- a/test/testinput/parameters_bump_cor_nicas_scales.yml +++ b/test/testinput/parameters_bump_cor_nicas_scales.yml @@ -9,7 +9,14 @@ background: basename: data_static/72x35x25/restarts/ ocn_filename: MOM.res.nc ice_filename: cice.res.nc - state variables: [socn, tocn, uocn, vocn, ssh, cicen, hicen] + state variables: + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid + - sea_ice_category_area_fraction + - sea_ice_category_thickness background error: covariance model: SABER @@ -30,15 +37,15 @@ background error: grids: - model: variables: - - socn - - tocn - - uocn - - vocn + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity - model: variables: - - ssh - - cicen - - hicen + - sea_surface_height_above_geoid + - sea_ice_category_area_fraction + - sea_ice_category_thickness input model files: - parameter: rh file: diff --git a/test/testinput/parameters_bump_cov.yml b/test/testinput/parameters_bump_cov.yml index 04fb62ddc..1c149d43f 100644 --- a/test/testinput/parameters_bump_cov.yml +++ b/test/testinput/parameters_bump_cov.yml @@ -8,7 +8,7 @@ background: date: &date 2018-04-15T00:00:00Z basename: data_static/36x17x25/restarts/ ocn_filename: MOM.res.nc - state variables: [tocn] + state variables: [sea_water_potential_temperature] background error: covariance model: SABER @@ -19,7 +19,7 @@ background error: date: *date basename: data_static/36x17x25/restarts_ens/ ocn_filename: ocn.enspert.lowres.ens.%mem%.2018-04-15T00:00:00Z.PT6H.nc - state variables: [tocn] + state variables: [sea_water_potential_temperature] pattern: '%mem%' nmembers: 4 saber central block: diff --git a/test/testinput/parameters_bump_loc.yml b/test/testinput/parameters_bump_loc.yml index dafab8cf7..878b60ceb 100644 --- a/test/testinput/parameters_bump_loc.yml +++ b/test/testinput/parameters_bump_loc.yml @@ -9,7 +9,15 @@ background: date: &date 2018-04-15T06:00:00Z ocn_filename: MOM.res.nc ice_filename: cice.res.nc - state variables: &stateVariables [cicen, hicen, hsnon, socn, tocn, uocn, vocn, ssh] + state variables: &stateVariables + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_ice_category_snow_thickness + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid background error: covariance model: SABER @@ -36,14 +44,7 @@ background error: value: 500 grids: - model: - variables: - - socn - - tocn - - uocn - - vocn - - cicen - - hicen - - ssh + variables: *stateVariables test: reference filename: testref/parameters_bump_loc.test diff --git a/test/testinput/parameters_diffusion.yml b/test/testinput/parameters_diffusion.yml index 725629c46..a5445f949 100644 --- a/test/testinput/parameters_diffusion.yml +++ b/test/testinput/parameters_diffusion.yml @@ -8,7 +8,12 @@ background: basename: data_static/72x35x25/restarts/ date: &date 2018-04-15T06:00:00Z ocn_filename: MOM.res.nc - state variables: &stateVariables [socn, tocn, uocn, vocn, ssh] + state variables: + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid background error: covariance model: SABER @@ -23,7 +28,7 @@ background error: date: *date basename: data_generated/setcorscales/ ocn_filename: ocn.cor_rh.incr.2018-04-15T00:00:00Z.nc - model variable: ssh + model variable: sea_surface_height_above_geoid write: filepath: data_output/hz_large - horizontal: diff --git a/test/testinput/parameters_diffusion_lowres.yml b/test/testinput/parameters_diffusion_lowres.yml index a0666946d..511a7a296 100644 --- a/test/testinput/parameters_diffusion_lowres.yml +++ b/test/testinput/parameters_diffusion_lowres.yml @@ -8,7 +8,12 @@ background: basename: data_static/36x17x25/restarts/ date: &date 2018-04-15T06:00:00Z ocn_filename: MOM.res.nc - state variables: &stateVariables [socn, tocn, uocn, vocn, ssh] + state variables: + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid background error: covariance model: SABER diff --git a/test/testinput/parametric_stddev.yml b/test/testinput/parametric_stddev.yml index f8265b45a..f335330cb 100644 --- a/test/testinput/parametric_stddev.yml +++ b/test/testinput/parametric_stddev.yml @@ -6,8 +6,12 @@ input geometry: &geom output geometry: *geom linear variable change: - input variables: [tocn, socn, ssh, hocn] - output variables: [tocn, socn, ssh, hocn] + input variables: &soca_vars + - sea_water_potential_temperature + - sea_water_salinity + - sea_surface_height_above_geoid + - sea_water_cell_thickness + output variables: *soca_vars linear variable changes: - linear variable change name: BkgErrGODAS @@ -28,17 +32,24 @@ linear variable change: increments: - date: 2018-04-15T00:00:00Z - input variables: [tocn, socn, ssh, hocn] + input variables: *soca_vars input: Identity: 1 date: 2018-04-15T00:00:00Z - state variables: [ssh, tocn, socn, hocn] + state variables: *soca_vars trajectory: read_from_file: 1 basename: data_static/72x35x25/restarts/ ocn_filename: MOM.res.nc date: 2018-04-15T00:00:00Z - state variables: [ssh, tocn, socn, hocn, layer_depth, mld] + state variables: + - sea_surface_height_above_geoid + - sea_water_potential_temperature + - sea_water_salinity + - sea_water_cell_thickness + - sea_water_depth + - ocean_mixed_layer_thickness + output: datadir: data_output/ exp: parametric_stddev diff --git a/test/testinput/setcorscales.yml b/test/testinput/setcorscales.yml index d162cbf62..48b4c42a1 100644 --- a/test/testinput/setcorscales.yml +++ b/test/testinput/setcorscales.yml @@ -5,30 +5,37 @@ resolution: date: 2018-04-15T00:00:00Z -corr variables: [socn, tocn, uocn, vocn, ssh, cicen, hicen] +corr variables: +- sea_water_salinity +- sea_water_potential_temperature +- eastward_sea_water_velocity +- northward_sea_water_velocity +- sea_surface_height_above_geoid +- sea_ice_category_area_fraction +- sea_ice_category_thickness scales: vert layers: 100 # in units of layer - socn: + sea_water_salinity: rossby mult: 40.0 min grid mult: 5.0 - tocn: + sea_water_potential_temperature: rossby mult: 30.0 min grid mult: 6.0 - uocn: + eastward_sea_water_velocity: rossby mult: 30.0 min grid mult: 6.0 - vocn: + northward_sea_water_velocity: rossby mult: 30.0 min grid mult: 6.0 - ssh: + sea_surface_height_above_geoid: rossby mult: 20.0 min grid mult: 7.0 - cicen: + sea_ice_category_area_fraction: rossby mult: 0.0 min grid mult: 8.0 min value: 1000000 - hicen: + sea_ice_category_thickness: rossby mult: 0.0 min grid mult: 9.0 min value: 5000000 diff --git a/test/testinput/sqrtvertloc.yml b/test/testinput/sqrtvertloc.yml index fa473dace..8c03664f5 100644 --- a/test/testinput/sqrtvertloc.yml +++ b/test/testinput/sqrtvertloc.yml @@ -3,15 +3,31 @@ geometry: &geom mom6_input_nml: data_static/72x35x25/input.nml fields metadata: data_static/fields_metadata.yml -_model variables: &model_vars [cicen, hicen, hsnon, socn, tocn, uocn, vocn, ssh, hocn, chl, biop, sw, lhf, shf, lw, us, mld, layer_depth] - background: read_from_file: 1 basename: data_static/72x35x25/restarts/ ocn_filename: MOM.res.nc ice_filename: cice.res.nc date: &date 2018-04-15T00:00:00Z - state variables: *model_vars + state variables: + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_ice_category_snow_thickness + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - mass_concentration_of_chlorophyll_in_sea_water + - molar_concentration_of_biomass_in_sea_water_in_p_units + - net_downwelling_shortwave_radiation + - upward_latent_heat_flux_in_air + - upward_sensible_heat_flux_in_air + - net_downwelling_longwave_radiation + - friction_velocity_over_water + - ocean_mixed_layer_thickness + - sea_water_depth background error: covariance model: SABER @@ -19,7 +35,12 @@ background error: saber block name: diffusion read: groups: - - variables: &soca_vars [ssh, tocn, socn, uocn, vocn] + - variables: &soca_vars + - sea_surface_height_above_geoid + - sea_water_potential_temperature + - sea_water_salinity + - eastward_sea_water_velocity + - northward_sea_water_velocity horizontal: filepath: data_generated/parameters_diffusion/hz_smaller vertical: diff --git a/test/testinput/state.yml b/test/testinput/state.yml index 114ed8174..b4d3a875f 100644 --- a/test/testinput/state.yml +++ b/test/testinput/state.yml @@ -11,7 +11,22 @@ state test: ocn_filename: MOM.res.nc ice_filename: cice.res.nc sfc_filename: sfc.res.nc - state variables: &soca_vars [cicen, hicen, socn, tocn, uocn, vocn, ssh, hocn, sw, lhf, shf, lw, us, mld, layer_depth] + state variables: &soca_vars + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - net_downwelling_shortwave_radiation + - upward_latent_heat_flux_in_air + - upward_sensible_heat_flux_in_air + - net_downwelling_longwave_radiation + - friction_velocity_over_water + - ocean_mixed_layer_thickness + - sea_water_depth remap_filename: data_static/72x35x25/restarts/MOM.res.nc state generate: @@ -22,7 +37,7 @@ state test: state variables: *soca_vars norm file: 387790.8913881866 - norm generated state: 484.53094249329843 + norm generated state: 358.48861601992229 date: *date tolerance: 1.0e-08 diff --git a/test/testinput/varchange_ana2model.yml b/test/testinput/varchange_ana2model.yml index 765954740..659e49d05 100644 --- a/test/testinput/varchange_ana2model.yml +++ b/test/testinput/varchange_ana2model.yml @@ -7,11 +7,20 @@ variable change tests: - variable change: variable change name: Model2Ana rotate: - u: [uocn] - v: [vocn] + u: [eastward_sea_water_velocity] + v: [northward_sea_water_velocity] log: - var: [socn, chl] - output variables: &soca_vars [cicen, tocn, socn, hocn, uocn, vocn, chl] + var: + - sea_water_salinity + - mass_concentration_of_chlorophyll_in_sea_water + output variables: &soca_vars + - sea_ice_category_area_fraction + - sea_water_potential_temperature + - sea_water_salinity + - sea_water_cell_thickness + - eastward_sea_water_velocity + - northward_sea_water_velocity + - mass_concentration_of_chlorophyll_in_sea_water state: read_from_file: 1 date: 2018-04-15T00:00:00Z diff --git a/test/testinput/varchange_balance.yml b/test/testinput/varchange_balance.yml index 3bbbcced3..475499e28 100644 --- a/test/testinput/varchange_balance.yml +++ b/test/testinput/varchange_balance.yml @@ -10,14 +10,31 @@ background: basename: data_static/72x35x25/restarts/ ocn_filename: MOM.res.nc ice_filename: cice.res.nc - state variables: &soca_vars [cicen, hicen, socn, tocn, uocn, vocn, ssh, hocn, mld, layer_depth] + state variables: &soca_vars + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_water_salinity + - sea_water_potential_temperature + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - ocean_mixed_layer_thickness + - sea_water_depth linear variable change tests: - tolerance inverse: 1e-12 test inverse: 1 linear variable change: - input variables: *soca_vars - output variables: *soca_vars + input variables: &soca_an_vars + # - sea_ice_category_area_fraction + # - sea_ice_category_thickness + - sea_water_salinity + - sea_water_potential_temperature + # - eastward_sea_water_velocity + # - northward_sea_water_velocity + - sea_surface_height_above_geoid + output variables: *soca_an_vars linear variable changes: - linear variable change name: BalanceSOCA dsdtmax: 1.0 diff --git a/test/testinput/varchange_balance_TSSSH.yml b/test/testinput/varchange_balance_TSSSH.yml index 3347593bc..f78f1c386 100644 --- a/test/testinput/varchange_balance_TSSSH.yml +++ b/test/testinput/varchange_balance_TSSSH.yml @@ -8,14 +8,23 @@ background: date: 2018-04-15T00:00:00Z basename: data_static/72x35x25/restarts/ ocn_filename: MOM.res.nc - state variables: &soca_vars [socn, tocn, ssh, hocn, mld, layer_depth] + state variables: + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - ocean_mixed_layer_thickness + - sea_water_depth linear variable change tests: - tolerance inverse: 1e-12 test inverse: 1 linear variable change: - input variables: *soca_vars - output variables: *soca_vars + input variables: &soca_an_vars + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + output variables: *soca_an_vars linear variable changes: - linear variable change name: BalanceSOCA dsdtmax: 1.0 diff --git a/test/testinput/varchange_bkgerrgodas.yml b/test/testinput/varchange_bkgerrgodas.yml index b18e98e10..a02d3f2d3 100644 --- a/test/testinput/varchange_bkgerrgodas.yml +++ b/test/testinput/varchange_bkgerrgodas.yml @@ -9,14 +9,31 @@ background: basename: data_static/72x35x25/restarts/ ocn_filename: MOM.res.nc ice_filename: cice.res.nc - state variables: &soca_vars [cicen, hicen, socn, tocn, ssh, uocn, vocn, hocn, mld, layer_depth] + state variables: + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - eastward_sea_water_velocity + - northward_sea_water_velocity + - sea_water_cell_thickness + - ocean_mixed_layer_thickness + - sea_water_depth linear variable change tests: - tolerance inverse: 1e-12 test inverse: 0 linear variable change: - input variables: *soca_vars - output variables: *soca_vars + input variables: &soca_an_vars + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - eastward_sea_water_velocity + - northward_sea_water_velocity + output variables: *soca_an_vars linear variable changes: - linear variable change name: BkgErrGODAS sst_bgerr_file: data_static/godas_sst_bgerr.nc diff --git a/test/testinput/varchange_bkgerrsoca.yml b/test/testinput/varchange_bkgerrsoca.yml index 6a369e8d7..f54a80310 100644 --- a/test/testinput/varchange_bkgerrsoca.yml +++ b/test/testinput/varchange_bkgerrsoca.yml @@ -9,14 +9,24 @@ background: basename: data_static/72x35x25/restarts/ ocn_filename: MOM.res.nc ice_filename: cice.res.nc - state variables: &soca_vars [cicen, hicen, socn, tocn, ssh, hocn] + state variables: + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - sea_water_cell_thickness linear variable change tests: - tolerance inverse: 1e-12 test inverse: 0 linear variable change: - input variables: *soca_vars - output variables: *soca_vars + input variables: &soca_an_vars + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_water_salinity + - sea_water_potential_temperature + output variables: *soca_an_vars linear variable changes: - linear variable change name: BkgErrSOCA tolerance inverse: 1e-12 diff --git a/test/testinput/varchange_bkgerrsoca_stddev.yml b/test/testinput/varchange_bkgerrsoca_stddev.yml index e015e4d96..c2a900275 100644 --- a/test/testinput/varchange_bkgerrsoca_stddev.yml +++ b/test/testinput/varchange_bkgerrsoca_stddev.yml @@ -9,14 +9,24 @@ background: basename: data_static/72x35x25/restarts/ ocn_filename: MOM.res.nc ice_filename: cice.res.nc - state variables: &soca_vars [cicen, hicen, socn, tocn, ssh, hocn] + state variables: + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - sea_water_cell_thickness linear variable change tests: - tolerance inverse: 1e-12 test inverse: 0 linear variable change: - input variables: *soca_vars - output variables: *soca_vars + input variables: &soca_an_vars + - sea_ice_category_area_fraction + - sea_ice_category_thickness + - sea_water_salinity + - sea_water_potential_temperature + output variables: *soca_an_vars linear variable changes: - linear variable change name: BkgErrSOCA tolerance inverse: 1e-12 diff --git a/test/testref/convertincrement.test b/test/testref/convertincrement.test index 9ce05ed64..8bcc8926d 100644 --- a/test/testref/convertincrement.test +++ b/test/testref/convertincrement.test @@ -1,10 +1,9 @@ -Input increment: +Input increment: Valid time: 2018-04-15T00:00:00Z tocn min=-0.2230844555090276 max=0.1817337705816250 mean=0.0017112251024892 socn min=-0.0003694497492410 max=0.0129947577386863 mean=0.0000127289661201 ssh min=-0.0004275436187777 max=0.0007444984139562 mean=0.0000269610241517 - hocn min=0.0000000000000000 max=0.0000000000000000 mean=0.0000000000000000 -Trajectory state: +Trajectory state: Valid time: 2018-04-15T00:00:00Z ssh min=-1.9244847628277935 max=0.9272826517867588 mean=-0.2767903423591662 tocn min=-1.8883899372702533 max=31.7004645720658580 mean=6.0175649583533595 @@ -12,9 +11,8 @@ Trajectory state: hocn min=0.0009999999999977 max=1345.6400000000003274 mean=128.6280642065023017 layer_depth min=2.2854716757984130 max=5658.3057467114012979 mean=1200.5229536158392420 mld min=2.2854716757984130 max=4593.1533423819937525 mean=192.4109073940401515 -Output increment: +Output increment: Valid time: 2018-04-15T00:00:00Z tocn min=-0.2230844555090276 max=0.1817337705816250 mean=0.0017112251024892 socn min=-0.0003694497492410 max=0.0129947577386863 mean= -nan ssh min=-0.0061039986666023 max=0.0040160743992308 mean=0.0002527354430666 - hocn min=0.0000000000000000 max=0.0000000000000000 mean=0.0000000000000000 diff --git a/test/testref/convertstate_soca2cice.test b/test/testref/convertstate_soca2cice.test index ac8430833..64375e4b4 100644 --- a/test/testref/convertstate_soca2cice.test +++ b/test/testref/convertstate_soca2cice.test @@ -1,27 +1,27 @@ Input state: Valid time: 2018-04-15T00:00:00Z - tocn min=-1.8883899372702533 max=31.7004645720658580 mean=6.0184359934491134 - socn min=10.7210460395083924 max=40.4416591897031168 mean=34.5443926214474004 - hocn min=0.0009999999999977 max=1345.6400000000003274 mean=128.6280642065023017 - cicen min=-0.0000754351015983 max=1.0003473321988883 mean=0.1175504050745892 - hicen min=0.0000000000000000 max=4.0326673084246947 mean=0.4712515705773916 - hsnon min=0.0000000000000000 max=1.2712833951042413 mean=0.0886865877527975 +sea_water_potential_temperature min=-1.8883899372702533 max=31.7004645720658580 mean=6.0192761834558457 + sea_water_salinity min=10.7210460395083924 max=40.4416591897031168 mean=34.5444024551186359 + sea_water_cell_thickness min=0.0009999999999977 max=1345.6400000000003274 mean=128.6280642064969300 + sea_ice_category_area_fraction min=-0.0001426936911699 max=1.0000042197240977 mean=0.1175175651714392 + sea_ice_category_thickness min=0.0000000000000000 max=4.0326673084246947 mean=0.4712515705773916 +sea_ice_category_snow_thickness min=0.0000000000000000 max=1.2712833951042413 mean=0.0886865877527975 Variable transform: -Variable change from: 6 variables: tocn, socn, hocn, cicen, hicen, hsnon -Variable change to: 6 variables: tocn, socn, hocn, cicen, hicen, hsnon +Variable change from: 6 variables: sea_water_potential_temperature, sea_water_salinity, sea_water_cell_thickness, sea_ice_category_area_fraction, sea_ice_category_thickness, sea_ice_category_snow_thickness +Variable change to: 6 variables: sea_water_potential_temperature, sea_water_salinity, sea_water_cell_thickness, sea_ice_category_area_fraction, sea_ice_category_thickness, sea_ice_category_snow_thickness State after variable transform: Valid time: 2018-04-15T00:00:00Z - tocn min=-1.8883899372702533 max=31.7004645720658580 mean=6.0184359934491134 - socn min=10.7210460395083924 max=40.4416591897031168 mean=34.5443926214474004 - hocn min=0.0009999999999977 max=1345.6400000000003274 mean=128.6280642065023017 - cicen min=0.0000000000000000 max=1.0000000000000002 mean=0.1168265457313632 - hicen min=0.0000000000000000 max=4.0326673084246947 mean=0.2834662468107482 - hsnon min=0.0000000000000000 max=1.2712833951042413 mean=0.0433676327298715 +sea_water_potential_temperature min=-1.8883899372702533 max=31.7004645720658580 mean=6.0192761834558457 + sea_water_salinity min=10.7210460395083924 max=40.4416591897031168 mean=34.5444024551186359 + sea_water_cell_thickness min=0.0009999999999977 max=1345.6400000000003274 mean=128.6280642064969300 + sea_ice_category_area_fraction min=0.0000000000000000 max=1.0000000000000002 mean=0.1167739648983999 + sea_ice_category_thickness min=0.0000000000000000 max=4.0326673084246947 mean=0.2834618983600976 +sea_ice_category_snow_thickness min=0.0000000000000000 max=1.2712833951042413 mean=0.0433671009341639 Output state: Valid time: 2018-04-15T00:00:00Z - tocn min=-1.8883899372702533 max=31.7004645720658580 mean=6.0184359934491134 - socn min=10.7210460395083924 max=40.4416591897031168 mean=34.5443926214474004 - hocn min=0.0009999999999977 max=1345.6400000000003274 mean=128.6280642065023017 - cicen min=0.0000000000000000 max=1.0000000000000002 mean=0.1168265457313632 - hicen min=0.0000000000000000 max=4.0326673084246947 mean=0.2834662468107482 - hsnon min=0.0000000000000000 max=1.2712833951042413 mean=0.0433676327298715 +sea_water_potential_temperature min=-1.8883899372702533 max=31.7004645720658580 mean=6.0192761834558457 + sea_water_salinity min=10.7210460395083924 max=40.4416591897031168 mean=34.5444024551186359 + sea_water_cell_thickness min=0.0009999999999977 max=1345.6400000000003274 mean=128.6280642064969300 + sea_ice_category_area_fraction min=0.0000000000000000 max=1.0000000000000002 mean=0.1167739648983999 + sea_ice_category_thickness min=0.0000000000000000 max=4.0326673084246947 mean=0.2834618983600976 +sea_ice_category_snow_thickness min=0.0000000000000000 max=1.2712833951042413 mean=0.0433671009341639