Skip to content

Commit

Permalink
Merge branch 'develop' into feature/aero_qc
Browse files Browse the repository at this point in the history
  • Loading branch information
ypwang19 authored Jun 6, 2024
2 parents 448ac8a + 5071c52 commit 9f87a01
Show file tree
Hide file tree
Showing 23 changed files with 184 additions and 119 deletions.
4 changes: 2 additions & 2 deletions parm/soca/gridgen/gridgen.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
geometry:
geom_grid_file: soca_gridspec.nc
full_init: true
mom6_input_nml: mom_input.nml
fields metadata: fields_metadata.yaml
fields metadata: fields_metadata.yaml
rossby file: rossrad.nc
8 changes: 4 additions & 4 deletions parm/soca/letkf/letkf.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ geometry:
fields metadata: fields_metadata.yaml

time window:
begin: &date '{{ ATM_WINDOW_BEGIN }}'
begin: &date '{{ WINDOW_BEGIN | to_isotime }}'
length: PT6H

background:
members from template:
template:
date: '{{ ATM_WINDOW_MIDDLE }}'
ocn_filename: enkfgdas.ocean.t06z.inst.f009.nc
ice_filename: enkfgdas.ice.t06z.inst.f009.nc
date: '{{ WINDOW_MIDDLE | to_isotime }}'
ocn_filename: "{{ GDUMP_ENS }}.ocean.t{{ gcyc }}z.inst.f006.nc"
ice_filename: "{{ GDUMP_ENS }}.ice.t{{ gcyc }}z.inst.f006.nc"
read_from_file: 1
basename: ./ens/mem%mem%
state variables: [socn, tocn, ssh, uocn, vocn, cicen]
Expand Down
49 changes: 49 additions & 0 deletions parm/soca/letkf/letkf_stage.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
######################################
# set some variables
######################################
{% set gPDY = previous_cycle | to_YMD %}
{% set gcyc = previous_cycle | strftime("%H") %}
{% set PDY = current_cycle | to_YMD %}
{% set cyc = current_cycle | strftime("%H") %}
######################################
# create working directories
######################################
mkdir:
- "{{ DATA }}/Data"
- "{{ DATA }}/obs"
- "{{ DATA }}/INPUT"
{% for mem in range(1, NMEM_ENS + 1) %}
- "{{ DATA }}/ens/mem{{ '%03d' % mem }}"
{% endfor %}
copy:
######################################
# copy mom input template
######################################
- ["{{ PARMgfs }}/gdas/soca/fms/input.nml", "{{ DATA }}/mom_input.nml.tmpl"]
######################################
# copy ensemble background files
######################################
{% for mem in range(1, NMEM_ENS + 1) %}
# define variables
# Declare a dict of search and replace terms to GDUMP on each template
{% set tmpl_dict = {'ROTDIR':ROTDIR,
'RUN': GDUMP_ENS,
'YMD':gPDY,
'HH':gcyc,
'MEMDIR':"mem" + '%03d' % mem} %}

# Replace template variables with tmpl_dict, one key at a time
# This must be done in a namespace to overcome jinja scoping
# Variables set inside of a for loop are lost at the end of the loop
# unless they are part of a namespace
{% set com_prev_ocn = namespace(COM_OCEAN_HISTORY_MEM = COM_OCEAN_HISTORY_TMPL) %}
{% set com_prev_ice = namespace(COM_ICE_HISTORY_MEM = COM_ICE_HISTORY_TMPL) %}
{% for key in tmpl_dict.keys() %}
{% set search_term = '${' + key + '}' %}
{% set replace_term = tmpl_dict[key] %}
{% set com_prev_ocn.COM_OCEAN_HISTORY_MEM = com_prev_ocn.COM_OCEAN_HISTORY_MEM.replace(search_term, replace_term) %}
{% set com_prev_ice.COM_ICE_HISTORY_MEM = com_prev_ice.COM_ICE_HISTORY_MEM.replace(search_term, replace_term) %}
{% endfor %}
- ["{{ com_prev_ocn.COM_OCEAN_HISTORY_MEM }}/{{ GDUMP_ENS }}.ocean.t{{ gcyc }}z.inst.f006.nc", "{{ DATA }}/ens/mem{{ '%03d' % mem }}/{{ GDUMP_ENS }}.ocean.t{{ gcyc }}z.inst.f006.nc"]
- ["{{ com_prev_ice.COM_ICE_HISTORY_MEM }}/{{ GDUMP_ENS }}.ice.t{{ gcyc }}z.inst.f006.nc", "{{ DATA }}/ens/mem{{ '%03d' % mem }}/{{ GDUMP_ENS }}.ice.t{{ gcyc }}z.inst.f006.nc"]
{% endfor %}
16 changes: 16 additions & 0 deletions parm/soca/letkf/soca_fix_stage.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
######################################
# fix files to copy
######################################
copy:
- ["{{ SOCA_INPUT_FIX_DIR }}/rossrad.nc", "{{ DATA }}/rossrad.nc"]
- ["{{ SOCA_INPUT_FIX_DIR }}/field_table", "{{ DATA }}/field_table"]
- ["{{ SOCA_INPUT_FIX_DIR }}/diag_table", "{{ DATA }}/diag_table"]
- ["{{ SOCA_INPUT_FIX_DIR }}/MOM_input", "{{ DATA }}/MOM_input"]
- ["{{ SOCA_INPUT_FIX_DIR }}/fields_metadata.yaml", "{{ DATA }}/fields_metadata.yaml"]
- ["{{ SOCA_INPUT_FIX_DIR }}/obsop_name_map.yaml", "{{ DATA }}/obsop_name_map.yaml"]
- ["{{ SOCA_INPUT_FIX_DIR }}/INPUT/grid_spec.nc", "{{ DATA }}/INPUT/grid_spec.nc"]
- ["{{ SOCA_INPUT_FIX_DIR }}/INPUT/hycom1_25.nc", "{{ DATA }}/INPUT/hycom1_25.nc"]
- ["{{ SOCA_INPUT_FIX_DIR }}/INPUT/layer_coord25.nc", "{{ DATA }}/INPUT/layer_coord25.nc"]
- ["{{ SOCA_INPUT_FIX_DIR }}/INPUT/ocean_hgrid.nc", "{{ DATA }}/INPUT/ocean_hgrid.nc"]
- ["{{ SOCA_INPUT_FIX_DIR }}/INPUT/ocean_mosaic.nc", "{{ DATA }}/INPUT/ocean_mosaic.nc"]
- ["{{ SOCA_INPUT_FIX_DIR }}/INPUT/ocean_topog.nc", "{{ DATA }}/INPUT/ocean_topog.nc"]
2 changes: 1 addition & 1 deletion sorc/fv3-jedi
Submodule fv3-jedi updated 55 files
+24 −13 CMakeLists.txt
+0 −106 cmake/FindESMF.cmake
+1 −20 src/fv3jedi/CMakeLists.txt
+41 −28 src/fv3jedi/Fields/fv3jedi_fields_mod.f90
+7 −27 src/fv3jedi/Geometry/Geometry.cc
+0 −1 src/fv3jedi/Geometry/Geometry.h
+1 −2 src/fv3jedi/Geometry/Geometry.interface.h
+4 −8 src/fv3jedi/Geometry/fv3jedi_geom_interface_mod.F90
+7 −23 src/fv3jedi/Geometry/fv3jedi_geom_mod.f90
+6 −0 src/fv3jedi/IO/AuxGrid/IOAuxGrid.h
+25 −3 src/fv3jedi/IO/AuxGrid/fv3jedi_io_auxgrid_mod.f90
+5 −0 src/fv3jedi/IO/CubeSphereHistory/IOCubeSphereHistory.h
+44 −21 src/fv3jedi/IO/CubeSphereHistory/fv3jedi_io_cube_sphere_history_mod.f90
+0 −1 src/fv3jedi/Increment/Increment.cc
+7 −16 src/fv3jedi/Model/ufs/fv3jedi_ufs_mod.F90
+0 −1 src/fv3jedi/State/State.cc
+3 −3 src/mains/CMakeLists.txt
+3 −3 src/mains/fv3jediConvertToStructuredGrid.cc
+9 −12 test/CMakeLists.txt
+31 −9 test/setup-c48.sh
+1 −1 test/testinput/3dvar_geos_ozone_c12.yaml
+47 −2 test/testinput/3dvar_gfs_aero.yaml
+1 −1 test/testinput/3dvar_gfs_sondes_c12.yaml
+11 −9 test/testinput/4denvar.yaml
+11 −9 test/testinput/4denvar_seq.yaml
+1 −1 test/testinput/comparestates_gfs_restart2history2restart.yaml
+1 −0 test/testinput/convertstate_gfs_restart2history.yaml
+12 −9 test/testinput/converttogauss_gfs.yaml
+1 −1 test/testinput/dirac_geos_gsi_global.yaml
+1 −1 test/testinput/dirac_gfs_gsi_global.yaml
+18 −0 test/testinput/eda_3dvar_control_pert.yaml
+4 −2 test/testinput/ensmeanvariance_gfs.yaml
+1 −1 test/testinput/errorcovariance_gfs_gsi_global.yaml
+2 −1 test/testinput/forecast_fv3lm.yaml
+2 −1 test/testinput/forecast_fv3lm_tracers.yaml
+11 −9 test/testinput/hyb-3dvar.yaml
+1 −1 test/testinput/hyb-3dvar_geos_sondes_c12.yaml
+7 −7 test/testinput/hyb-3dvar_p12.yaml
+1 −1 test/testinput/hyb-4denvar_geos_sondes_c12.yaml
+11 −9 test/testinput/hyb-fgat_fv3lm.yaml
+6 −6 test/testoutput/3dvar_geos_ozone.ref
+52 −46 test/testoutput/3dvar_gfs_aero.ref
+12 −12 test/testoutput/3dvar_gfs_sondes.ref
+3 −3 test/testoutput/converttogauss_gfs.ref
+9 −9 test/testoutput/hyb-3dvar_geos_sondes_c12.ref
+16 −16 test/testoutput/hyb-4denvar_geos_sondes_c12.ref
+5 −5 test/testoutput/staticb_cor_geos.ref
+8 −8 test/testoutput/staticb_dirac_global_gfs_12pe.ref
+8 −8 test/testoutput/staticb_dirac_global_gfs_6pe.ref
+4 −4 test/testoutput/staticb_dirac_local_gfs_12pe.ref
+4 −4 test/testoutput/staticb_dirac_local_gfs_6pe.ref
+8 −9 test/testoutput/staticb_estimate_gfs.ref
+6 −6 test/testoutput/staticb_nicas_geos.ref
+8 −8 test/testoutput/staticb_nicas_gfs.ref
+4 −4 test/testoutput/staticb_split_nicas_gfs.ref
2 changes: 1 addition & 1 deletion sorc/ioda
Submodule ioda updated 65 files
+1 −0 share/CMakeLists.txt
+24 −0 share/ioda/yaml/iodatest_odb_ascatsm.yaml
+17 −0 share/ioda/yaml/odb_default_name_map.yaml
+110 −5 share/ioda/yaml/validation/ObsSpace.yaml
+18 −0 src/CMakeLists.txt
+5 −5 src/ObsDataVector.h
+109 −66 src/ObsSpace.cc
+66 −10 src/ObsSpace.h
+4 −4 src/ObsSpaceParameters.h
+52 −0 src/ObsVector.cc
+23 −10 src/ObsVector.h
+113 −0 src/containers/ColumnMetadata.cpp
+84 −0 src/containers/ColumnMetadata.h
+78 −0 src/containers/ColumnMetadatum.cpp
+83 −0 src/containers/ColumnMetadatum.h
+68 −0 src/containers/Constants.h
+70 −0 src/containers/DataRow.cpp
+58 −0 src/containers/DataRow.h
+42 −0 src/containers/Datum.cpp
+47 −0 src/containers/Datum.h
+14 −0 src/containers/DatumBase.cpp
+38 −0 src/containers/DatumBase.h
+17 −0 src/containers/ObsDataFrame.cpp
+159 −0 src/containers/ObsDataFrame.h
+7 −0 src/containers/ObsDataFrameCols.cpp
+11 −0 src/containers/ObsDataFrameCols.h
+905 −0 src/containers/ObsDataFrameRows.cpp
+286 −0 src/containers/ObsDataFrameRows.h
+1 −1 src/core/obsspace_f.cc
+2 −2 src/core/obsspace_f.h
+11 −0 src/distribution/Distribution.h
+5 −0 src/distribution/NonoverlappingDistribution.cc
+1 −0 src/distribution/NonoverlappingDistribution.h
+3 −0 src/engines/ioda/include/ioda/ObsGroup.h
+9 −0 src/engines/ioda/src/ioda/ObsGroup.cpp
+1 −1 src/ioPool/IoPoolBase.cpp
+5 −4 src/ioPool/ReaderPoolUtils.cpp
+50 −35 src/ioPool/ReaderSinglePool.cpp
+1 −1 src/ioPool/ReaderSinglePoolAllTasks.cpp
+1 −0 src/mains/CMakeLists.txt
+11 −0 src/mains/odfDemo/CMakeLists.txt
+125 −0 src/mains/odfDemo/odfDemo.cpp
+138 −4 test/CMakeLists.txt
+1 −1 test/ioda/ExtendedObsSpace.h
+122 −0 test/ioda/ObsDataFrame.h
+3 −3 test/ioda/ObsDataVector.h
+4 −4 test/ioda/ObsSpace.h
+49 −19 test/ioda/ObsVector.h
+16 −0 test/mains/TestObsDataFrame.cc
+26 −0 test/testinput/iodatest_build_windborne_file_set.yaml
+26 −0 test/testinput/iodatest_build_windborne_file_set_mpi7.yaml
+29 −0 test/testinput/iodatest_distribution_build_round_robin_mpi_2.yaml
+29 −0 test/testinput/iodatest_distribution_build_round_robin_mpi_3.yaml
+29 −0 test/testinput/iodatest_distribution_build_round_robin_mpi_4.yaml
+51 −0 test/testinput/iodatest_distribution_masterandreplica_io_pool_mpi_2.yaml
+58 −0 test/testinput/iodatest_distribution_masterandreplica_io_pool_mpi_3.yaml
+64 −0 test/testinput/iodatest_distribution_masterandreplica_io_pool_mpi_4.yaml
+17 −0 test/testinput/iodatest_obs_data_frame.yaml
+80 −0 test/testinput/iodatest_obsvector_grouped.yaml
+25 −1 test/testinput/iodatest_time_io_reader_pool_ext_file_prep.yaml
+24 −0 test/testinput/iodatest_time_io_reader_pool_ext_file_prep_mpi7.yaml
+0 −0 tools/ioda_compare_odc_with_netcdf.py
+131 −0 tools/read_namemap_updatedefaultmapping.py
+0 −0 tools/retrieval_upgrader.py
+0 −0 tools/retrieval_upgrader_ompsnp_emc.py
2 changes: 1 addition & 1 deletion sorc/iodaconv
Submodule iodaconv updated 74 files
+4 −4 CMakeLists.txt
+2 −2 src/CMakeLists.txt
+0 −0 src/compo/aeronet_aod2ioda.py
+0 −0 src/compo/omps_o3_nm_h52ioda.py
+0 −0 src/compo/tempo_nc2ioda.py
+0 −0 src/compo/tropess_co_nc2ioda.py
+0 −0 src/compo/tropomi_no2_co_nc2ioda.py
+0 −0 src/compo/viirs_aod2ioda.py
+7 −16 src/compo/viirs_biaswriter.py
+0 −0 src/compo/viirs_l1bnc2ioda.py
+0 −0 src/conventional/amdar_bufr2ioda.py
+13 −9 src/conventional/balloon_sonde_json2ioda.py
+0 −0 src/conventional/buoy_bufr2ioda.py
+0 −0 src/conventional/ship_bufr2ioda.py
+0 −0 src/conventional/sonde_bufr2ioda.py
+0 −0 src/conventional/sonde_tac2ioda.py
+0 −0 src/conventional/synop_bufr2ioda.py
+316 −0 src/gnssro/gnss_tec_bufr2ioda.py
+0 −0 src/gnssro/gnssaro_netcdf2ioda.py
+0 −0 src/gnssro/gnssro_AWSopendataNetcdf2ioda.py
+0 −0 src/gnssro/gnssro_bufr2ioda.py
+0 −0 src/goes/test_goes_converter.py
+0 −0 src/gsi_ncdiag/gsi_ncdiag.py
+44 −0 src/gsi_varbc/CMakeLists.txt
+0 −0 src/gsi_varbc/CPPLINT.cfg
+147 −0 src/gsi_varbc/GsiAircraftBiasConverter.cc
+104 −0 src/gsi_varbc/GsiAircraftBiasReader.cc
+28 −0 src/gsi_varbc/GsiAircraftBiasReader.h
+0 −0 src/gsi_varbc/GsiSatBiasReader.cpp
+0 −0 src/gsi_varbc/GsiSatBiasReader.h
+0 −0 src/gsi_varbc/README.md
+39 −20 src/gsi_varbc/SatBiasConverter.cpp
+9 −4 src/gsi_varbc/generate_aircraft_bias_csv.py
+130 −0 src/gsi_varbc/satbias_upgrader.py
+0 −0 src/hdf5/atms_netcdf_hdf5_2ioda.py
+105 −68 src/hdf5/osw_2ioda.py
+1 −8 src/hdf5/tropics_2ioda.py
+310 −0 src/hdf5/wsfm_2ioda.py
+0 −1 src/land/CMakeLists.txt
+0 −0 src/land/afwa_snod2ioda.py
+0 −0 src/land/ims_scf2ioda.py
+0 −0 src/land/imsfv3_scf2ioda.py
+0 −0 src/land/owp_snow_obs.py
+0 −195 src/land/smap9km_ssm2ioda.py
+59 −23 src/land/smap_ssm2ioda.py
+0 −0 src/land/smos_ssm2ioda.py
+0 −0 src/marine/glider2ioda.py
+0 −0 src/marine/godae_bgc_argo2ioda.py
+0 −0 src/marine/ndbc_hfradar2ioda.py
+0 −0 src/mrms/mrms_grib2ioda.py
+0 −14 src/satbias/CMakeLists.txt
+0 −0 src/ssec/giirs_ssec2ioda.py
+0 −0 src/wrfda_ncdiag/wrfda_ncdiag.py
+36 −22 test/CMakeLists.txt
+8 −0 test/testinput/acftbias_converter.yaml
+22 −22 test/testinput/satbias_converter.yaml
+12 −12 test/testinput/satbias_converter_amsua.yaml
+12 −12 test/testinput/satbias_converter_cris.yaml
+12 −12 test/testinput/satbias_converter_gmi_gpm.yaml
+12 −12 test/testinput/satbias_converter_ssmis.yaml
+0 −3 test/testoutput/satbias_amsua_n18.nc4
+0 −3 test/testoutput/satbias_cris_npp.nc4
+0 −3 test/testoutput/satbias_gmi_gpm.nc4
+0 −3 test/testoutput/satbias_ssmis_f16.nc4
+0 −3 test/testoutput/smap9km_ssm.nc
+3 −0 test/testoutput/smap_nrt_ssm.nc
+2 −2 test/testoutput/smap_ssm.nc
+3 −0 test/testoutput/varbc/acft_out.nc4
+3 −0 test/testoutput/varbc/satbias_amsua_n18.nc4
+3 −0 test/testoutput/varbc/satbias_cris_npp.nc4
+3 −0 test/testoutput/varbc/satbias_gmi_gpm.nc4
+3 −0 test/testoutput/varbc/satbias_ssmis_f16.nc4
+3 −0 test/testoutput/varbc/viirs_bias.nc
+0 −3 test/testoutput/viirs_bias.nc
2 changes: 1 addition & 1 deletion sorc/oops
Submodule oops updated 168 files
2 changes: 1 addition & 1 deletion sorc/saber
Submodule saber updated 299 files
2 changes: 1 addition & 1 deletion sorc/soca
Submodule soca updated 73 files
+0 −14 .github/travisci/Dockerfile
+0 −104 .github/travisci/build.sh
+0 −5 .github/travisci/default-mca-params.conf
+0 −8 .github/travisci/get_repo_hash.cmake
+0 −110 .github/travisci/prep.sh
+0 −63 .github/travisci/stable_commit.sh
+0 −69 .github/travisci/stable_mark.sh
+0 −136 .travis.yml
+8 −8 CMakeLists.txt
+2 −25 README.md
+10 −8 src/soca/ExplicitDiffusion/ExplicitDiffusion.F90
+15 −1 src/soca/ExplicitDiffusion/ExplicitDiffusion.cc
+112 −101 src/soca/ExplicitDiffusion/soca_diffusion.F90
+3 −2 src/soca/Fields/CMakeLists.txt
+211 −0 src/soca/Fields/Fields.cc
+68 −0 src/soca/Fields/Fields.h
+1 −1 src/soca/Fields/soca_fields_metadata_mod.F90
+120 −377 src/soca/Fields/soca_fields_mod.F90
+43 −70 src/soca/Geometry/Geometry.cc
+4 −6 src/soca/Geometry/Geometry.h
+7 −8 src/soca/Geometry/GeometryFortran.h
+30 −71 src/soca/Geometry/soca_geom.interface.F90
+260 −475 src/soca/Geometry/soca_geom_mod.F90
+0 −3 src/soca/GeometryIterator/CMakeLists.txt
+32 −45 src/soca/GeometryIterator/GeometryIterator.cc
+17 −19 src/soca/GeometryIterator/GeometryIterator.h
+0 −30 src/soca/GeometryIterator/GeometryIteratorFortran.h
+0 −183 src/soca/GeometryIterator/soca_geom_iter.interface.F90
+0 −229 src/soca/GeometryIterator/soca_geom_iter_mod.F90
+131 −200 src/soca/Increment/Increment.cc
+5 −31 src/soca/Increment/Increment.h
+3 −42 src/soca/Increment/IncrementFortran.h
+19 −403 src/soca/Increment/soca_increment.interface.F90
+25 −143 src/soca/Increment/soca_increment_mod.F90
+10 −1 src/soca/LinearVariableChange/Balance/soca_balance.interface.F90
+4 −1 src/soca/LinearVariableChange/BkgErr/soca_bkgerr.interface.F90
+4 −1 src/soca/LinearVariableChange/BkgErrFilt/soca_bkgerrfilt.interface.F90
+4 −1 src/soca/LinearVariableChange/BkgErrGodas/soca_bkgerrgodas.interface.F90
+9 −1 src/soca/LinearVariableChange/LinearModel2GeoVaLs/LinearModel2GeoVaLs.F90
+5 −5 src/soca/LinearVariableChange/LinearVariableChange.cc
+3 −3 src/soca/ObsLocalization/ObsLocRossby.h
+48 −131 src/soca/State/State.cc
+9 −38 src/soca/State/State.h
+3 −27 src/soca/State/StateFortran.h
+24 −230 src/soca/State/soca_state.interface.F90
+5 −71 src/soca/State/soca_state_mod.F90
+2 −0 src/soca/Utils/CMakeLists.txt
+87 −0 src/soca/Utils/readNcAndInterp.cc
+33 −0 src/soca/Utils/readNcAndInterp.h
+29 −6 src/soca/VariableChange/Model2GeoVaLs/Model2GeoVaLs.F90
+2 −0 src/soca/VariableChange/Soca2Cice/Soca2Cice.F90
+3 −3 src/soca/VariableChange/VariableChange.cc
+9 −7 test/CMakeLists.txt
+3 −0 test/Data/72x35x25/restarts/NOBM.res.nc
+28 −9 test/Data/fields_metadata.yml
+0 −3 test/Data/rossrad.dat
+3 −0 test/Data/rossrad.nc
+2 −1 test/mom6solo.py
+3 −2 test/testinput/3dhybfgat_pseudo.yml
+4 −4 test/testinput/3dvar.yml
+1 −0 test/testinput/4denvar.yml
+1 −0 test/testinput/4dhybenvar.yml
+1 −3 test/testinput/dirac_diffusion.yml
+2 −1 test/testinput/forecast_pseudo.yml
+1 −2 test/testinput/gridgen.yml
+1 −0 test/testinput/hofx_4d_pseudo.yml
+2 −1 test/testinput/hofx_oasim_3d.yml
+16 −16 test/testref/3dvar.test
+3 −2 test/testref/dirac_diffusion.test
+2 −2 test/testref/dirac_soca_cor_nicas_scales.test
+10 −10 test/testref/hofx_oasim_3d.test
+1 −1 test/testref/parameters_bump_cor_nicas_scales.test
+5 −5 test/testref/setcorscales.test
2 changes: 1 addition & 1 deletion sorc/ufo
Submodule ufo updated 505 files
2 changes: 1 addition & 1 deletion sorc/vader
Submodule vader updated 95 files
+2 −2 CMakeLists.txt
+16 −11 src/CMakeLists.txt
+20 −20 src/OceanConversions/OceanConversions.interface.h
+0 −69 src/mo/common_linearvarchange.cc
+0 −23 src/mo/common_linearvarchange.h
+15 −50 src/mo/common_varchange.cc
+2 −13 src/mo/common_varchange.h
+1 −0 src/mo/constants.h
+0 −571 src/mo/control2analysis_linearvarchange.cc
+0 −92 src/mo/control2analysis_linearvarchange.h
+22 −137 src/mo/control2analysis_varchange.cc
+3 −21 src/mo/control2analysis_varchange.h
+293 −0 src/mo/eval_air_density.cc
+31 −0 src/mo/eval_air_density.h
+15 −4 src/mo/eval_air_pressure.cc
+6 −2 src/mo/eval_air_pressure_levels.cc
+0 −1 src/mo/eval_air_pressure_levels.h
+15 −4 src/mo/eval_air_temperature.cc
+0 −4 src/mo/eval_air_temperature.h
+0 −1 src/mo/eval_cloud_ice_mixing_ratio.h
+0 −1 src/mo/eval_cloud_liquid_mixing_ratio.h
+81 −290 src/mo/eval_dry_air_density.cc
+7 −21 src/mo/eval_dry_air_density.h
+16 −3 src/mo/eval_exner.cc
+47 −27 src/mo/eval_geostrophic_to_hydrostatic_pressure.cc
+39 −16 src/mo/eval_hydrostatic_balance.cc
+0 −2 src/mo/eval_hydrostatic_balance.h
+15 −3 src/mo/eval_mio_fields.cc
+42 −12 src/mo/eval_moisture_control.cc
+0 −5 src/mo/eval_moisture_control.h
+44 −23 src/mo/eval_moisture_incrementing_operator.cc
+0 −5 src/mo/eval_moisture_incrementing_operator.h
+0 −1 src/mo/eval_rain_mixing_ratio.h
+22 −15 src/mo/eval_ratio.cc
+41 −23 src/mo/eval_relative_humidity.cc
+12 −9 src/mo/eval_sat_vapour_pressure.cc
+15 −6 src/mo/eval_surface_pressure.cc
+0 −2 src/mo/eval_surface_pressure.h
+21 −7 src/mo/eval_surface_temperature.cc
+1 −3 src/mo/eval_surface_temperature.h
+23 −4 src/mo/eval_surface_wind.cc
+31 −17 src/mo/eval_total_mixing_ratio.cc
+0 −1 src/mo/eval_total_mixing_ratio.h
+5 −2 src/mo/eval_total_relative_humidity.cc
+0 −1 src/mo/eval_total_relative_humidity.h
+42 −24 src/mo/eval_virtual_potential_temperature.cc
+0 −3 src/mo/eval_virtual_potential_temperature.h
+25 −7 src/mo/eval_water_vapor_mixing_ratio.cc
+0 −2 src/mo/eval_water_vapor_mixing_ratio.h
+0 −64 src/mo/model2geovals_linearvarchange.cc
+0 −26 src/mo/model2geovals_linearvarchange.h
+18 −226 src/mo/model2geovals_varchange.cc
+1 −113 src/mo/model2geovals_varchange.h
+10 −4 src/vader/DefaultCookbook.h
+93 −0 src/vader/recipes/AirDensityLevelsMinusOne.h
+100 −0 src/vader/recipes/AirDensityLevelsMinusOne_A.cc
+100 −0 src/vader/recipes/AirDensityLevelsMinusOne_B.cc
+66 −0 src/vader/recipes/DryAirDensity.h
+5 −69 src/vader/recipes/DryAirDensityLevelsMinusOne.h
+17 −3 src/vader/recipes/DryAirDensityLevelsMinusOne_A.cc
+0 −100 src/vader/recipes/DryAirDensityLevelsMinusOne_B.cc
+0 −114 src/vader/recipes/DryAirDensityLevelsMinusOne_C.cc
+169 −0 src/vader/recipes/DryAirDensity_A.cc
+52 −0 src/vader/recipes/HydrostaticPressureLevels.h
+72 −0 src/vader/recipes/HydrostaticPressureLevels_A.cc
+54 −0 src/vader/recipes/LogDerivativeSaturationVaporPressure.h
+75 −0 src/vader/recipes/LogDerivativeSaturationVaporPressure_A.cc
+92 −0 src/vader/recipes/ParticulateMatter2p5.h
+352 −0 src/vader/recipes/ParticulateMatter2p5_A.cc
+190 −0 src/vader/recipes/ParticulateMatter2p5_B.cc
+6 −1 src/vader/recipes/SaturationSpecificHumidity.h
+4 −0 src/vader/recipes/SaturationVaporPressure.h
+6 −0 src/vader/recipes/TotalRelativeHumidity.h
+0 −3 src/vader/vader.cc
+57 −17 test/CMakeLists.txt
+3 −0 test/testdata/aero6_gauss_state_F12.nc
+3 −0 test/testdata/air_density_levels_minus_one_A.nc
+3 −0 test/testdata/air_density_levels_minus_one_B.nc
+3 −0 test/testdata/dry_air_density_levels_minus_one_A.nc
+0 −3 test/testdata/dry_air_density_levels_minus_one_C.nc
+3 −0 test/testdata/rrfs_sd_gauss_state_F12.nc
+7 −0 test/testinput/recipe_AirDensityLevelsMinusOne_A.yaml
+7 −0 test/testinput/recipe_AirDensityLevelsMinusOne_B.yaml
+1 −1 test/testinput/recipe_DryAirDensityLevelsMinusOne_A.yaml
+0 −7 test/testinput/recipe_DryAirDensityLevelsMinusOne_C.yaml
+2 −2 test/testinput/recipe_HydrostaticPressureLevels_A.yaml
+7 −0 test/testinput/recipe_LogDerivativeSaturationVaporPressure_A.yaml
+7 −0 test/testinput/recipe_ParticulateMatter2p5_A.yaml
+7 −0 test/testinput/recipe_ParticulateMatter2p5_B.yaml
+8 −0 test/testinput/vader_AirDensityLevelsMinusOne_A.yaml
+2 −2 test/testinput/vader_AirDensityLevelsMinusOne_B.yaml
+5 −2 test/testinput/vader_DryAirDensityLevelsMinusOne_A.yaml
+0 −11 test/testinput/vader_DryAirDensityLevelsMinusOne_C.yaml
+80 −0 test/testinput/vader_ParticulateMatter2p5_A.yaml
+8 −0 test/testinput/vader_ParticulateMatter2p5_B.yaml
72 changes: 36 additions & 36 deletions test/atm/global-workflow/3dvar.ref
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
CostJb : Nonlinear Jb = 0.0000000000000000e+00
CostJo : Nonlinear Jo(AMSUA N19) = 3.8984270736441467e+04, nobs = 74275, Jo/n = 5.2486396144653613e-01, err = 6.3650648936327991e+00
CostJo : Nonlinear Jo(AMSUA N19) = 3.9490015258330794e+04, nobs = 73667, Jo/n = 5.3606112992697941e-01, err = 6.2697697603629345e+00
CostJo : Nonlinear Jo(sondes) = 1.0738490911289638e+04, nobs = 4255, Jo/n = 2.5237346442513839e+00, err = 1.0981085630539836e+01
CostFunction: Nonlinear J = 4.9722761647731109e+04
DRPCGMinimizer: reduction in residual norm = 9.6484392730339263e-01
CostFunction: Nonlinear J = 5.0228506169620436e+04
DRPCGMinimizer: reduction in residual norm = 9.6305250910882700e-01
CostFunction::addIncrement: Analysis:
----------------------------------------------------------------------------------------------------
State print | number of fields = 22 | cube sphere face size: C48
eastward_wind | Min:-5.5495644220059390e+01 Max:+8.4934651204487366e+01 RMS:+1.6388250288534099e+01
northward_wind | Min:-7.3712421229093422e+01 Max:+7.6984825502186652e+01 RMS:+8.1424144891570887e+00
air_temperature | Min:+1.7482158077318462e+02 Max:+3.1467235233685437e+02 RMS:+2.4978424883089124e+02
eastward_wind | Min:-5.5495644220059390e+01 Max:+8.4934651204487366e+01 RMS:+1.6388250288534095e+01
northward_wind | Min:-7.3712421229093422e+01 Max:+7.6984825502186652e+01 RMS:+8.1424144891570869e+00
air_temperature | Min:+1.7482158077318448e+02 Max:+3.1467235233685437e+02 RMS:+2.4978424883092669e+02
air_pressure_thickness | Min:+6.0599999874109178e-01 Max:+1.7760098554198755e+03 RMS:+9.5680601590204810e+02
surface_pressure | Min:+5.3297486514404744e+04 Max:+1.0397927292902800e+05 RMS:+9.8896232762674656e+04
specific_humidity | Min:+0.0000000000000000e+00 Max:+2.0041369334954085e-02 RMS:+4.7792636981582193e-03
specific_humidity | Min:+0.0000000000000000e+00 Max:+2.0041369334954085e-02 RMS:+4.7792636816418408e-03
cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+1.2024392024662985e-03 RMS:+1.4396968866569995e-05
cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.5935686618789048e-03 RMS:+4.1931345590543333e-05
ozone_mass_mixing_ratio | Min:+1.1998327271379204e-08 Max:+1.7808431790670831e-05 RMS:+4.4947917149861064e-06
Expand All @@ -32,31 +32,31 @@ f10m | Min:+9.4613586695410434e-01 Max:+

Obs bias coefficients:
---------------------------------------------------------------
constant: Min= -1.2490630149841309, Max= 1.6242779492736057, Norm= 3.1216962856027304
lapse_rate_order_2: Min= -6.0771207806339094, Max= 52.3767318715110477, Norm= 52.7793275314599910
lapse_rate: Min= -6.1173920629465659, Max= 0.4750269950800435, Norm= 6.1658157312728985
emissivity: Min= -0.2395000010728836, Max= 10.5581263135712575, Norm= 10.5655898122368264
scan_angle_order_4: Min= -7.9506011008096911, Max= 2.3034050466999081, Norm= 13.1727465012547444
scan_angle_order_3: Min= -1.1903680560584049, Max= 2.3802189822803275, Norm= 3.1970135720803450
scan_angle_order_2: Min= -5.1212630271747548, Max= 2.9977130889532191, Norm= 7.3569496454063597
scan_angle: Min= -0.6766870022405442, Max= 0.0732169970537269, Norm= 1.1485053152110289
constant: Min= -1.2424509525299072, Max= 1.6504349708035770, Norm= 3.1030146353133463
lapseRate_order_2: Min= -7.0903420445872838, Max= 46.3166084284223771, Norm= 47.0185597979528609
lapseRate: Min= -5.5814771650607220, Max= 1.2464430332789806, Norm= 5.7524772942406086
emissivityJacobian: Min= -1.0039629936218262, Max= 10.5191706304246591, Norm= 10.5711704384468028
sensorScanAngle_order_4: Min= -8.0552864073222832, Max= 2.4945130349138593, Norm= 13.5132453944315909
sensorScanAngle_order_3: Min= -1.1528069971066446, Max= 2.1735479829142181, Norm= 3.0673534349517819
sensorScanAngle_order_2: Min= -5.1097259521664853, Max= 2.8632600308292808, Norm= 7.2817410561999560
sensorScanAngle: Min= -0.6898530126095289, Max= 0.0655509978252007, Norm= 1.1442823316972326
---------------------------------------------------------------


CostJb : Nonlinear Jb = 0.0000003263133461
CostJo : Nonlinear Jo(AMSUA N19) = 38981.7238460305161425, nobs = 74275, Jo/n = 0.5248296714376374, err = 6.3650648936327991
CostJo : Nonlinear Jo(sondes) = 10687.2756506645455374, nobs = 4255, Jo/n = 2.5116981552678133, err = 10.9810856305398357
CostFunction: Nonlinear J = 49668.9994970213738270
DRPCGMinimizer: reduction in residual norm = 1.0147575953754833
CostJb : Nonlinear Jb = 0.0000003247124839
CostJo : Nonlinear Jo(AMSUA N19) = 39487.6033905208023498, nobs = 73667, Jo/n = 0.5360283897881114, err = 6.2697697603629345
CostJo : Nonlinear Jo(sondes) = 10687.3021478507725988, nobs = 4255, Jo/n = 2.5117043825736247, err = 10.9810856305398357
CostFunction: Nonlinear J = 50174.9055386962863849
DRPCGMinimizer: reduction in residual norm = 1.0067413227955442
CostFunction::addIncrement: Analysis:
----------------------------------------------------------------------------------------------------
State print | number of fields = 22 | cube sphere face size: C48
eastward_wind | Min:-5.5495644220059390e+01 Max:+8.4934651204487366e+01 RMS:+1.6388250288542711e+01
northward_wind | Min:-7.3712421229093422e+01 Max:+7.6984825502186652e+01 RMS:+8.1424144891586359e+00
air_temperature | Min:+1.7482158077318311e+02 Max:+3.1467235233685437e+02 RMS:+2.4978424883200961e+02
eastward_wind | Min:-5.5495644220059390e+01 Max:+8.4934651204487366e+01 RMS:+1.6388250288542654e+01
northward_wind | Min:-7.3712421229093422e+01 Max:+7.6984825502186652e+01 RMS:+8.1424144891586234e+00
air_temperature | Min:+1.7482158077318232e+02 Max:+3.1467235233685437e+02 RMS:+2.4978424883219918e+02
air_pressure_thickness | Min:+6.0599999874109178e-01 Max:+1.7760098554198755e+03 RMS:+9.5680601590204810e+02
surface_pressure | Min:+5.3297486514404744e+04 Max:+1.0397927292902800e+05 RMS:+9.8896232762674656e+04
specific_humidity | Min:+0.0000000000000000e+00 Max:+2.0041369334954085e-02 RMS:+4.7792638362681448e-03
specific_humidity | Min:+0.0000000000000000e+00 Max:+2.0041369334954085e-02 RMS:+4.7792637405692116e-03
cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+1.2024392024662985e-03 RMS:+1.4396968866569995e-05
cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.5935686618789048e-03 RMS:+4.1931345590543333e-05
ozone_mass_mixing_ratio | Min:+1.1998327271379204e-08 Max:+1.7808431790670831e-05 RMS:+4.4947917149861064e-06
Expand All @@ -77,18 +77,18 @@ f10m | Min:+9.4613586695410434e-01 Max:+

Obs bias coefficients:
---------------------------------------------------------------
constant: Min= -1.2490630149841309, Max= 1.6242779490057870, Norm= 3.1216962826704004
lapse_rate_order_2: Min= -6.0771207792168234, Max= 52.3767318668067006, Norm= 52.7793275266354911
lapse_rate: Min= -6.1173920620497713, Max= 0.4750269957036114, Norm= 6.1658157301802641
emissivity: Min= -0.2395000010728836, Max= 10.5581256964462273, Norm= 10.5655891955375107
scan_angle_order_4: Min= -7.9506011003013111, Max= 2.3034050477855654, Norm= 13.1727464989080296
scan_angle_order_3: Min= -1.1903680549739593, Max= 2.3802189803928178, Norm= 3.1970135704212637
scan_angle_order_2: Min= -5.1212630270944297, Max= 2.9977130887912211, Norm= 7.3569496444930564
scan_angle: Min= -0.6766870025059790, Max= 0.0732169969027750, Norm= 1.1485053159201970
constant: Min= -1.2424509525299072, Max= 1.6504349705701049, Norm= 3.1030146330531774
lapseRate_order_2: Min= -7.0903420434846316, Max= 46.3166084260648887, Norm= 47.0185597955718677
lapseRate: Min= -5.5814771643207211, Max= 1.2464430335558840, Norm= 5.7524772934110207
emissivityJacobian: Min= -1.0039629936218262, Max= 10.5191700403026349, Norm= 10.5711698512230932
sensorScanAngle_order_4: Min= -8.0552864066518524, Max= 2.4945130353434313, Norm= 13.5132453918536388
sensorScanAngle_order_3: Min= -1.1528069962369289, Max= 2.1735479817619940, Norm= 3.0673534336938850
sensorScanAngle_order_2: Min= -5.1097259522434877, Max= 2.8632600312042698, Norm= 7.2817410556587614
sensorScanAngle: Min= -0.6898530128249588, Max= 0.0655509976984332, Norm= 1.1442823320888615
---------------------------------------------------------------


CostJb : Nonlinear Jb = 0.0000033688688972
CostJo : Nonlinear Jo(AMSUA N19) = 38970.3026556682743831, nobs = 74275, Jo/n = 0.5246759024660824, err = 6.3650648936327991
CostJo : Nonlinear Jo(sondes) = 10639.1209516101644112, nobs = 4255, Jo/n = 2.5003809521998037, err = 10.9810856305398357
CostFunction: Nonlinear J = 49609.4236106473108521
CostJb : Nonlinear Jb = 0.0000033199535370
CostJo : Nonlinear Jo(AMSUA N19) = 39476.8510820809169672, nobs = 73667, Jo/n = 0.5358824315104581, err = 6.2697697603629345
CostJo : Nonlinear Jo(sondes) = 10639.1482810630404856, nobs = 4255, Jo/n = 2.5003873751029473, err = 10.9810856305398357
CostFunction: Nonlinear J = 50115.9993664639114286
Loading

0 comments on commit 9f87a01

Please sign in to comment.