Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates to run gw ctests using feature/submodule #828

39 changes: 23 additions & 16 deletions parm/land/obs/config/adpsfc_snow.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,22 @@ obs localizations:
max nobs: 50
- localization method: Vertical Brasnett
vertical lengthscale: 700
obs filters:
obs pre filters:
- filter: Perform Action
filter variables:
- name: totalSnowDepth
action:
name: assign error
error parameter: 40.0
- filter: Variable Assignment
assignments:
- name: GrossErrorProbability/totalSnowDepth
type: float
value: 0.02
- name: BkgError/totalSnowDepth_background_error
type: float
value: 30.0
obs prior filters:
- filter: Bounds Check
filter variables:
- name: totalSnowDepth
Expand All @@ -37,7 +52,7 @@ obs filters:
- filter: Domain Check
where:
- variable:
name: MetaData/height
name: MetaData/stationElevation
minvalue: -999.0
- filter: Domain Check # land only
where:
Expand All @@ -57,12 +72,18 @@ obs filters:
name: MetaData/stationIdentification
is_in: [71120,71397,71621,71727,71816]
size where true: 5
obs post filters:
- filter: Background Check # gross error check
filter variables:
- name: totalSnowDepth
threshold: 6.25
action:
name: reject
- filter: Temporal Thinning
min_spacing: '{{ LAND_WINDOW_LENGTH }}'
seed_time: '{{ current_cycle | to_isotime }}'
category_variable:
name: MetaData/stationIdentification
- filter: Met Office Buddy Check
filter variables:
- name: totalSnowDepth
Expand All @@ -86,18 +107,4 @@ obs filters:
damping_factor_1: 1.0
damping_factor_2: 1.0
background_error_group: BkgError
- filter: Perform Action
filter variables:
- name: totalSnowDepth
action:
name: assign error
error parameter: 40.0
- filter: Variable Assignment
assignments:
- name: GrossErrorProbability/totalSnowDepth
type: float
value: 0.02
- name: BkgError/totalSnowDepth_background_error
type: float
value: 30.0

45 changes: 23 additions & 22 deletions parm/land/obs/config/snocvr_snow.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,22 @@ obs localizations:
max nobs: 50
- localization method: Vertical Brasnett
vertical lengthscale: 700
obs filters:
obs pre filters:
- filter: Perform Action
filter variables:
- name: totalSnowDepth
action:
name: assign error
error parameter: 40.0
- filter: Variable Assignment
assignments:
- name: GrossErrorProbability/totalSnowDepth
type: float
value: 0.02
- name: BkgError/totalSnowDepth_background_error
type: float
value: 30.0
obs prior filters:
- filter: Bounds Check
filter variables:
- name: totalSnowDepth
Expand All @@ -37,7 +52,7 @@ obs filters:
- filter: Domain Check
where:
- variable:
name: MetaData/height
name: MetaData/stationElevation
minvalue: -999.0
- filter: Domain Check # land only
where:
Expand All @@ -51,17 +66,18 @@ obs filters:
name: GeoVaLs/vtype
minvalue: 14.5
maxvalue: 15.5
- filter: Temporal Thinning
min_spacing: '{{ LAND_WINDOW_LENGTH }}'
seed_time: '{{ current_cycle | to_isotime }}'
category_variable:
name: MetaData/stationIdentification
obs post filters:
- filter: Background Check # gross error check
filter variables:
- name: totalSnowDepth
threshold: 6.25
action:
name: reject
- filter: Temporal Thinning
min_spacing: '{{ LAND_WINDOW_LENGTH }}'
seed_time: '{{ current_cycle | to_isotime }}'
category_variable:
name: MetaData/stationIdentification
- filter: Met Office Buddy Check
filter variables:
- name: totalSnowDepth
Expand All @@ -85,18 +101,3 @@ obs filters:
damping_factor_1: 1.0
damping_factor_2: 1.0
background_error_group: BkgError
- filter: Perform Action
filter variables:
- name: totalSnowDepth
action:
name: assign error
error parameter: 40.0
- filter: Variable Assignment
assignments:
- name: GrossErrorProbability/totalSnowDepth
type: float
value: 0.02
- name: BkgError/totalSnowDepth_background_error
type: float
value: 30.0

3 changes: 0 additions & 3 deletions parm/land/prep/prep_gts.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,8 @@ gtsbufr:
- $(DATA)/obs
copy:
- [{{ COM_OBS }}/{{ OPREFIX }}adpsfc.tm00.bufr_d, {{ DATA }}/obs/]
- [{{ COM_OBS }}/{{ OPREFIX }}snocvr.tm00.bufr_d, {{ DATA }}/obs/]
gtsioda:
copy:
- [{{ DATA }}/{{ OPREFIX }}adpsfc_snow.nc4, {{ COM_OBS }}/{{ OPREFIX }}adpsfc_snow.nc4]
- [{{ DATA }}/{{ OPREFIX }}snocvr_snow.nc4, {{ COM_OBS }}/{{ OPREFIX }}snocvr_snow.nc4]
bufr2ioda:
adpsfc: {{ HOMEgfs }}/sorc/gdas.cd/test/testinput/bufr_adpsfc_snow.yaml
snocvr: {{ HOMEgfs }}/sorc/gdas.cd/test/testinput/bufr_snocvr_snow.yaml
2 changes: 1 addition & 1 deletion parm/land/prep/prep_ims.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ calcfims:
- [$(COM_OBS)/$(OPREFIX)IMS4km_to_FV3_mapping.$(CASE)_oro_data.nc, $(DATA)/obs/IMS4km_to_FV3_mapping.$(CASE)_oro_data.nc]
ims2ioda:
copy:
- [$(DATA)/ims_snow_{{ current_cycle | to_YMDH }}.nc4, $(COM_OBS)/$(OPREFIX)ims_snow.nc4]
- [$(DATA)/ims_snow_{{ current_cycle | to_YMDH }}.nc4, $(DATA)/obs/$(OPREFIX)ims_snow.nc4]

24 changes: 14 additions & 10 deletions scripts/exgdas_global_marine_analysis_prep.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,10 @@ def cice_hist2fms(input_filename, output_filename):
"""
Simple reformatting utility to allow soca/fms to read CICE's history
"""
input_filename_real = os.path.realpath(input_filename)

# open the CICE history file
ds = xr.open_dataset(input_filename)
ds = xr.open_dataset(input_filename_real)

if 'aicen' in ds.variables and 'hicen' in ds.variables and 'hsnon' in ds.variables:
logging.info(f"*** Already reformatted, skipping.")
Expand All @@ -100,7 +101,8 @@ def cice_hist2fms(input_filename, output_filename):
ds = ds.rename({'aice_h': 'aicen', 'hi_h': 'hicen', 'hs_h': 'hsnon'})

# Save the new netCDF file
ds.to_netcdf(output_filename, mode='w')
output_filename_real = os.path.realpath(output_filename)
ds.to_netcdf(output_filename_real, mode='w')


def test_hist_date(histfile, ref_date):
Expand Down Expand Up @@ -280,7 +282,8 @@ def find_clim_ens(input_date):

# concatenate altimeters into one obs space
# TODO (SAMG)temporary, move this into the obs procecing eventually
adt_obs = f"{os.getenv('COM_OBS')}/{RUN}.t{cyc}z.adt"
com_obs = os.path.realpath(f"{os.getenv('COM_OBS')}")
adt_obs = f"{com_obs}/{RUN}.t{cyc}z.adt"
ufsda.soca_utils.concatenate_ioda(adt_obs, wildcard="*.nc4", output_suffix=f"_all.{PDY}{cyc}.nc4", clean=True)

# get the list of observations
Expand All @@ -293,7 +296,7 @@ def find_clim_ens(input_date):
for obs_file in obs_files:
logging.info(f"******* {obs_file}")
obs_src = os.path.join(os.getenv('COM_OBS'), obs_file)
obs_dst = os.path.join(os.path.abspath(obs_in), obs_file)
obs_dst = os.path.join(os.path.realpath(obs_in), obs_file)
if os.path.exists(obs_src):
logging.info(f"******* fetching {obs_file}")
obs_list.append([obs_src, obs_dst])
Expand All @@ -319,20 +322,21 @@ def find_clim_ens(input_date):
for mem in range(1, nmem_ens+1):
for domain in ['ocn', 'ice']:
# TODO(Guillaume): make use and define ensemble COM in the j-job
ensroot = os.getenv('COM_OCEAN_HISTORY_PREV')
ensdir = os.path.join(os.getenv('COM_OCEAN_HISTORY_PREV'), '..', '..', '..', '..', '..',
f'enkf{RUN}.{PDY}', f'{gcyc}', f'mem{str(mem).zfill(3)}',
'model_data', longname[domain], 'history')
ensdir = os.path.normpath(ensdir)
ensdir_real = os.path.realpath(ensdir)
f009 = f'enkfgdas.t{gcyc}z.{domain}f009.nc'

fname_in = os.path.abspath(os.path.join(ensdir, f009))
fname_out = os.path.abspath(os.path.join(static_ens, domain+"."+str(mem)+".nc"))
fname_in = os.path.abspath(os.path.join(ensdir_real, f009))
fname_out = os.path.realpath(os.path.join(static_ens, domain+"."+str(mem)+".nc"))
ens_member_list.append([fname_in, fname_out])
FileHandler({'copy': ens_member_list}).sync()

# reformat the cice history output
for mem in range(1, nmem_ens+1):
cice_fname = os.path.abspath(os.path.join(static_ens, "ice."+str(mem)+".nc"))
cice_fname = os.path.realpath(os.path.join(static_ens, "ice."+str(mem)+".nc"))
cice_hist2fms(cice_fname, cice_fname)
else:
logging.info("---------------- Stage offline ensemble members")
Expand All @@ -357,8 +361,8 @@ def find_clim_ens(input_date):
# copy yaml for grid generation

logging.info(f"---------------- generate gridgen.yaml")
gridgen_yaml_src = os.path.abspath(os.path.join(gdas_home, 'parm', 'soca', 'gridgen', 'gridgen.yaml'))
gridgen_yaml_dst = os.path.abspath(os.path.join(stage_cfg['stage_dir'], 'gridgen.yaml'))
gridgen_yaml_src = os.path.realpath(os.path.join(gdas_home, 'parm', 'soca', 'gridgen', 'gridgen.yaml'))
gridgen_yaml_dst = os.path.realpath(os.path.join(stage_cfg['stage_dir'], 'gridgen.yaml'))
FileHandler({'copy': [[gridgen_yaml_src, gridgen_yaml_dst]]}).sync()

################################################################################
Expand Down
6 changes: 3 additions & 3 deletions scripts/exgdas_global_marine_analysis_vrfy.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@
import subprocess
from datetime import datetime, timedelta

comout = os.getenv('COM_OCEAN_ANALYSIS')
com_ice_history = os.getenv('COM_ICE_HISTORY_PREV')
com_ocean_history = os.getenv('COM_OCEAN_HISTORY_PREV')
comout = os.path.realpath(os.getenv('COM_OCEAN_ANALYSIS'))
com_ice_history = os.path.realpath(os.getenv('COM_ICE_HISTORY_PREV'))
com_ocean_history = os.path.realpath(os.getenv('COM_OCEAN_HISTORY_PREV'))
cyc = os.getenv('cyc')
RUN = os.getenv('RUN')
gcyc = str((int(cyc) - 6) % 24).zfill(2)
Expand Down
2 changes: 1 addition & 1 deletion scripts/exglobal_prep_ocean_obs.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from datetime import datetime, timedelta
import logging
import os
import prep_marine_obs
from soca import prep_marine_obs
import subprocess
from wxflow import YAMLFile, save_as_yaml, FileHandler

Expand Down
2 changes: 1 addition & 1 deletion sorc/fv3-jedi
Submodule fv3-jedi updated 59 files
+1 −1 CI/buildspec_clang.yml
+1 −1 CI/buildspec_gnu.yml
+1 −1 CI/buildspec_intel.yml
+35 −4 src/fv3jedi/Fields/fv3jedi_fields_mod.f90
+6 −0 src/mains/CMakeLists.txt
+27 −0 src/mains/fv3jediControlPert.cc
+20 −0 test/CMakeLists.txt
+0 −75 test/Data/fv3files/input_geos_c24_z72.nml
+0 −79 test/Data/fv3files/input_geos_c270r25conus_z72.nml
+0 −75 test/Data/fv3files/input_geos_c540_z72.nml
+0 −79 test/Data/fv3files/input_geos_c540r25conus_z72.nml
+0 −75 test/Data/fv3files/input_geos_c90_z72_1x1.nml
+0 −75 test/Data/fv3files/input_geos_c90_z72_2x2.nml
+0 −75 test/Data/fv3files/input_geos_c90_z72_4x4.nml
+0 −75 test/Data/fv3files/input_geos_c90_z72_6x6.nml
+0 −75 test/Data/fv3files/input_gfs_c12_1x1.nml
+0 −75 test/Data/fv3files/input_gfs_c192_1x1.nml
+0 −75 test/Data/fv3files/input_gfs_c192_2x2.nml
+0 −75 test/Data/fv3files/input_gfs_c192_4x4.nml
+0 −75 test/Data/fv3files/input_gfs_c192_6x6.nml
+0 −75 test/Data/fv3files/input_gfs_c24_1x1.nml
+0 −75 test/Data/fv3files/input_gfs_c384_1x1.nml
+0 −75 test/Data/fv3files/input_gfs_c384_2x2.nml
+0 −75 test/Data/fv3files/input_gfs_c384_4x4.nml
+0 −75 test/Data/fv3files/input_gfs_c384_6x6.nml
+0 −75 test/Data/fv3files/input_gfs_c768_10x10.nml
+0 −75 test/Data/fv3files/input_gfs_c768_2x2.nml
+0 −75 test/Data/fv3files/input_gfs_c768_6x6.nml
+0 −75 test/Data/fv3files/input_gfs_c96_1x1.nml
+0 −75 test/Data/fv3files/input_gfs_c96_2x2.nml
+0 −75 test/Data/fv3files/input_gfs_c96_z64_1x1.nml
+0 −75 test/Data/fv3files/input_gfs_c96_z64_2x2.nml
+0 −75 test/Data/fv3files/input_gfs_c96_z64_4x4.nml
+0 −75 test/Data/fv3files/input_gfs_c96_z64_6x6.nml
+0 −356 test/Data/fv3files/input_ufs_c384_6x6.nml
+0 −358 test/Data/fv3files/input_ufs_c48_1x1.nml
+0 −358 test/Data/fv3files/input_ufs_c48_1x2.nml
+0 −356 test/Data/fv3files/input_ufs_c768_10x10.nml
+0 −36 test/Data/fv3files/model_configure_c384
+0 −36 test/Data/fv3files/model_configure_c48
+0 −36 test/Data/fv3files/model_configure_c768
+0 −26 test/Data/fv3files/nems.configure.10x10
+0 −7 test/Data/fv3files/nems.configure.1x1
+0 −7 test/Data/fv3files/nems.configure.1x2
+0 −26 test/Data/fv3files/nems.configure.6x6
+13 −11 test/testinput/3dvar_geos_ozone_c12.yaml
+15 −13 test/testinput/3dvar_gfs_sondes_c12.yaml
+8 −7 test/testinput/4denvar.yaml
+8 −7 test/testinput/4denvar_seq.yaml
+119 −0 test/testinput/eda_3dvar_control_pert.yaml
+9 −8 test/testinput/eda_block_3dvar_1.yaml
+9 −8 test/testinput/eda_block_3dvar_2.yaml
+8 −6 test/testinput/hyb-3dvar.yaml
+8 −7 test/testinput/hyb-3dvar_fsoi_forward.yaml
+12 −10 test/testinput/hyb-3dvar_geos_sondes_c12.yaml
+8 −6 test/testinput/hyb-3dvar_p12.yaml
+15 −13 test/testinput/hyb-4denvar_geos_sondes_c12.yaml
+8 −6 test/testinput/hyb-fgat_fv3lm.yaml
+57 −0 test/testoutput/eda_3dvar_control_pert.ref
2 changes: 1 addition & 1 deletion sorc/oops
Submodule oops updated 98 files
+5 −2 .github/workflows/ci.yml
+0 −42 ewok/templates/3dfgat.yaml
+0 −38 ewok/templates/3dvar.yaml
+0 −40 ewok/templates/4denvar.yaml
+0 −44 ewok/templates/4dvar.yaml
+0 −1 ewok/templates/README
+0 −4 ewok/templates/controlpert.yaml
+0 −5 ewok/templates/controlpert_settings.yaml
+0 −16 ewok/templates/convertstate.yaml
+0 −10 ewok/templates/ensembleb.yaml
+0 −14 ewok/templates/ensmeanvariance.yaml
+0 −14 ewok/templates/ensvariance.yaml
+0 −14 ewok/templates/forecast.yaml
+0 −15 ewok/templates/hofx3d.yaml
+0 −18 ewok/templates/hofx4d.yaml
+0 −19 ewok/templates/hybridb.yaml
+0 −13 ewok/templates/latlonforecast.yaml
+0 −13 ewok/templates/latlonplots.yaml
+0 −6 ewok/templates/staticb.yaml
+1 −0 l95/src/lorenz95/CMakeLists.txt
+0 −1 l95/src/lorenz95/LocalizationMatrixL95.h
+24 −0 l95/src/lorenz95/instantiateL95NormFactory.h
+5 −4 l95/test/testinput/3dfgat.yaml
+15 −12 l95/test/testinput/3dvar.yaml
+5 −4 l95/test/testinput/3dvar_4fsoi_dripcg.yaml
+5 −4 l95/test/testinput/3dvar_4fsoi_pcg.yaml
+61 −59 l95/test/testinput/4densvar.yaml
+61 −59 l95/test/testinput/4densvar_seq.yaml
+20 −18 l95/test/testinput/4dsaddlepoint.yaml
+5 −4 l95/test/testinput/4dvar_dripcg.yaml
+5 −4 l95/test/testinput/eda_3dvar_block_1.yaml
+5 −4 l95/test/testinput/eda_3dvar_block_2.yaml
+1 −0 qg/model/CMakeLists.txt
+2 −2 qg/model/GeometryQG.cc
+25 −0 qg/model/instantiateQgNormFactory.h
+8 −0 qg/test/CMakeLists.txt
+18 −0 qg/test/executables/TestNorm.cc
+17 −14 qg/test/testinput/3dvar.yaml
+6 −5 qg/test/testinput/3dvar_single-obs_cov.yaml
+6 −5 qg/test/testinput/3dvar_single-obs_hyb_field.yaml
+6 −5 qg/test/testinput/3dvar_single-obs_hyb_value.yaml
+6 −5 qg/test/testinput/3dvar_single-obs_loc_3d.yaml
+6 −5 qg/test/testinput/3dvar_single-obs_loc_3d_ensemble_transform.yaml
+6 −5 qg/test/testinput/3dvar_single-obs_loc_3d_inflation_field.yaml
+6 −5 qg/test/testinput/3dvar_single-obs_loc_3d_inflation_value.yaml
+6 −5 qg/test/testinput/4densvar_single-obs_loc_4d_aggressive.yaml
+6 −5 qg/test/testinput/4densvar_single-obs_loc_4d_fast.yaml
+6 −5 qg/test/testinput/4densvar_single-obs_loc_4d_standard.yaml
+6 −5 qg/test/testinput/4densvar_single-obs_loc_4d_time_decay_fast.yaml
+6 −5 qg/test/testinput/4densvar_single-obs_loc_4d_time_decay_standard.yaml
+6 −5 qg/test/testinput/4densvar_single-obs_no_loc.yaml
+5 −4 qg/test/testinput/4dfgat.yaml
+9 −7 qg/test/testinput/eda_3dvar_control_pert.yaml
+16 −11 qg/test/testinput/eda_4dvar_control_pert.yaml
+15 −0 qg/test/testinput/norm.yaml
+9 −0 src/CMakeLists.txt
+3 −3 src/oops/assimilation/ControlIncrement.h
+20 −9 src/oops/assimilation/CostJcDFI.h
+2 −0 src/oops/assimilation/DRGMRESRMinimizer.h
+2 −0 src/oops/assimilation/DRIPCGMinimizer.h
+2 −0 src/oops/assimilation/DRPBlockLanczosMinimizer.h
+5 −0 src/oops/assimilation/DRPCGMinimizer.h
+15 −15 src/oops/assimilation/DRPFOMMinimizer.h
+18 −19 src/oops/assimilation/DRPLanczosMinimizer.h
+7 −2 src/oops/assimilation/MinimizerUtils.h
+2 −0 src/oops/assimilation/PCG.h
+2 −0 src/oops/assimilation/PLanczos.h
+2 −0 src/oops/assimilation/RPCGMinimizer.h
+2 −0 src/oops/assimilation/RPLanczosMinimizer.h
+1 −0 src/oops/base/DataSetBase.h
+22 −3 src/oops/base/FieldSet4D.cc
+13 −7 src/oops/base/FieldSet4D.h
+46 −0 src/oops/base/FieldSets.cc
+54 −0 src/oops/base/FieldSets.h
+36 −0 src/oops/base/IncrementSet.h
+8 −0 src/oops/base/LatLonGridWriter.h
+93 −0 src/oops/base/NormBase.h
+7 −1 src/oops/base/ObsAuxIncrements.h
+2 −1 src/oops/base/StateSet.h
+5 −1 src/oops/generic/AtlasInterpolator.cc
+16 −0 src/oops/generic/GlobalInterpolator.cc
+3 −0 src/oops/generic/GlobalInterpolator.h
+56 −0 src/oops/generic/NormScalar.h
+2 −0 src/oops/generic/SimpleLinearModel.h
+3 −0 src/oops/generic/UnstructuredInterpolator.cc
+22 −0 src/oops/generic/instantiateNormFactory.h
+3 −1 src/oops/runs/ControlPert.h
+5 −0 src/oops/runs/Forecast.h
+3 −0 src/oops/runs/Run.cc
+4 −1 src/oops/runs/Variational.h
+2 −2 src/oops/util/LibOOPS.cc
+53 −0 src/oops/util/WorkflowUpdater.h
+41 −0 src/oops/util/workflow.cc
+21 −0 src/oops/util/workflow.h
+132 −0 src/test/base/NormBase.h
+4 −3 src/test/interface/Increment.h
+4 −3 src/test/interface/State.h
+1 −0 src/test/util/MissingValues.h
2 changes: 1 addition & 1 deletion sorc/saber
Submodule saber updated 49 files
+9 −8 src/saber/blocks/SaberBlockChainBase.h
+2 −1 src/saber/blocks/SaberCentralBlockBase.h
+32 −38 src/saber/blocks/SaberEnsembleBlockChain.cc
+26 −35 src/saber/blocks/SaberEnsembleBlockChain.h
+2 −2 src/saber/blocks/SaberOuterBlockBase.h
+7 −6 src/saber/blocks/SaberOuterBlockChain.h
+6 −5 src/saber/blocks/SaberParametricBlockChain.h
+1 −1 src/saber/bump/NICAS.cc
+1 −1 src/saber/bump/NICAS.h
+1 −1 src/saber/bump/StdDev.cc
+2 −2 src/saber/bump/StdDev.h
+1 −1 src/saber/bump/VerticalBalance.cc
+1 −1 src/saber/bump/VerticalBalance.h
+5 −6 src/saber/bump/lib/BUMP.cc
+2 −3 src/saber/bump/lib/BUMP.h
+1 −1 src/saber/fastlam/FastLAM.cc
+1 −1 src/saber/fastlam/FastLAM.h
+86 −77 src/saber/fastlam/Layer.cc
+1 −4 src/saber/fastlam/Layer.h
+1 −1 src/saber/fastlam/Layers.cc
+7 −8 src/saber/generic/StdDev.cc
+1 −1 src/saber/generic/StdDev.h
+16 −4 src/saber/gsi/covariance/gsi_covariance_mod.f90
+28 −24 src/saber/oops/ErrorCovariance.h
+5 −2 src/saber/oops/ErrorCovarianceToolbox.h
+3 −2 src/saber/oops/Localization.h
+11 −8 src/saber/oops/ProcessPerts.h
+32 −30 src/saber/oops/Utilities.h
+6 −4 src/saber/spectralb/CovarianceStatisticsUtils.cc
+2 −2 src/saber/spectralb/CovarianceStatisticsUtils.h
+1 −1 src/saber/spectralb/SpectralCorrelation.cc
+1 −1 src/saber/spectralb/SpectralCorrelation.h
+2 −2 src/saber/spectralb/SpectralCovariance.cc
+1 −1 src/saber/spectralb/SpectralCovariance.h
+1 −1 src/saber/spectralb/SpectralToGauss.cc
+1 −1 src/saber/spectralb/SpectralToGauss.h
+1 −2 test/CMakeLists.txt
+0 −0 test/testdeps/compare_diagnostics_spectralb_write_read.txt
+2 −0 test/testdeps/dirac_oops_ens_noloc_4d.txt
+3 −0 test/testinput/compare_diagnostics_ens_noloc.yaml
+22 −10 test/testinput/dirac_bump_1.yaml
+23 −11 test/testinput/dirac_bump_2.yaml
+22 −1 test/testinput/dirac_ens_noloc_4d.yaml
+70 −0 test/testinput/dirac_oops_ens_noloc_4d.yaml
+2 −0 test/testlist/saber_test_tier1.txt
+90 −0 test/testref/dirac_bump_1.ref
+72 −0 test/testref/dirac_bump_2.ref
+8 −1 test/testref/dirac_ens_noloc_4d.ref
+77 −0 test/testref/dirac_oops_ens_noloc_4d.ref
2 changes: 1 addition & 1 deletion sorc/ufo
Submodule ufo updated 30 files
+1 −1 CMakeLists.txt
+2 −0 src/ufo/CMakeLists.txt
+3 −1 src/ufo/filters/obsfunctions/LAMDomainCheck/LAMDomainCheck.cc
+1 −0 src/ufo/filters/obsfunctions/LAMDomainCheck/LAMDomainCheck.h
+7 −4 src/ufo/filters/obsfunctions/LAMDomainCheck/LAMDomainCheck.interface.F90
+2 −2 src/ufo/filters/obsfunctions/LAMDomainCheck/LAMDomainCheck.interface.h
+2 −2 src/ufo/operators/aerosols/AODMetOffice/ObsAodMetOfficeTLAD.cc
+39 −35 src/ufo/operators/crtm/ufo_crtm_utils_mod.F90
+117 −0 src/ufo/operators/crtm/ufo_radiancecrtm_tlad_mod.F90
+9 −0 src/ufo/operators/radarreflectivity/CMakeLists.txt
+21 −0 src/ufo/operators/radarreflectivity/directZDA/CMakeLists.txt
+61 −0 src/ufo/operators/radarreflectivity/directZDA/ObsDirectZDA.cc
+138 −0 src/ufo/operators/radarreflectivity/directZDA/ObsDirectZDA.h
+90 −0 src/ufo/operators/radarreflectivity/directZDA/ObsDirectZDA.interface.F90
+34 −0 src/ufo/operators/radarreflectivity/directZDA/ObsDirectZDA.interface.h
+76 −0 src/ufo/operators/radarreflectivity/directZDA/ObsDirectZDATLAD.cc
+62 −0 src/ufo/operators/radarreflectivity/directZDA/ObsDirectZDATLAD.h
+131 −0 src/ufo/operators/radarreflectivity/directZDA/ObsDirectZDATLAD.interface.F90
+41 −0 src/ufo/operators/radarreflectivity/directZDA/ObsDirectZDATLAD.interface.h
+362 −0 src/ufo/operators/radarreflectivity/directZDA/radarZ_interface.f90
+2,771 −0 src/ufo/operators/radarreflectivity/directZDA/radarZ_module.f90
+504 −0 src/ufo/operators/radarreflectivity/directZDA/ufo_directZDA_mod.f90
+674 −0 src/ufo/operators/radarreflectivity/directZDA/ufo_directZDA_tlad_mod.f90
+286 −0 src/ufo/operators/radarreflectivity/directZDA/ufo_directZDA_util_mod.f90
+6 −0 src/ufo/ufo_variables_mod.F90
+52 −16 test/testinput/instrumentTests/amsua/amsua_n19_gfs_HofX_qc.yaml
+11 −0 test/testinput/unit_tests/operators/CMakeLists.txt
+2 −2 test/testinput/unit_tests/operators/amsua_crtm_geos.yaml
+3 −0 test/testinput/unit_tests/operators/cris_crtm.yaml
+53 −0 test/testinput/unit_tests/operators/reflectivity_oucaps.yaml
8 changes: 4 additions & 4 deletions test/soca/gw/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ add_test(NAME test_gdasapp_soca_concatioda
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/soca/gw/concatioda)
set_tests_properties(test_gdasapp_soca_concatioda
PROPERTIES
ENVIRONMENT "PYTHONPATH=${PROJECT_BINARY_DIR}/ush:${PROJECT_BINARY_DIR}/lib/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}:$ENV{PYTHONPATH}")
ENVIRONMENT "PYTHONPATH=${PROJECT_BINARY_DIR}/ush:${PROJECT_BINARY_DIR}/../lib/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}:$ENV{PYTHONPATH}")

# Clean-up
add_test(NAME test_gdasapp_soca_run_clean
Expand Down Expand Up @@ -78,7 +78,7 @@ foreach(jjob ${jjob_list})
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/soca/gw/testrun)
set_tests_properties(${test_name}
PROPERTIES
ENVIRONMENT "PYTHONPATH=${PROJECT_BINARY_DIR}/lib/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}:$ENV{PYTHONPATH}")
ENVIRONMENT "PYTHONPATH=${PROJECT_SOURCE_DIR}/ush:${PROJECT_BINARY_DIR}/../lib/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}:$ENV{PYTHONPATH}")


set(setup "--skip") # Only run the setup of the first test, if not, it will hang
Expand All @@ -89,7 +89,7 @@ endforeach()
set(ctest_list "socahybridweights" "incr_handler" "ens_handler")
foreach(ctest ${ctest_list})
set(TEST ${ctest})
set(EXEC ${PROJECT_BINARY_DIR}/bin/gdas_${ctest}.x)
set(EXEC ${PROJECT_BINARY_DIR}/../bin/gdas_${ctest}.x)
set(YAML ${PROJECT_SOURCE_DIR}/test/soca/testinput/${ctest}.yaml)
configure_file(${PROJECT_SOURCE_DIR}/test/soca/gw/run_gdas_apps.yaml.test
${PROJECT_BINARY_DIR}/test/soca/gw/testrun/run_gdas_apps_${ctest}.yaml)
Expand All @@ -102,5 +102,5 @@ foreach(ctest ${ctest_list})

set_tests_properties(${test_name}
PROPERTIES
ENVIRONMENT "PYTHONPATH=${PROJECT_BINARY_DIR}/lib/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}:$ENV{PYTHONPATH}")
ENVIRONMENT "PYTHONPATH=${PROJECT_BINARY_DIR}/../lib/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}:$ENV{PYTHONPATH}")
endforeach()
2 changes: 1 addition & 1 deletion test/soca/gw/prep.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ done
for day in $(seq 1 2 9); do
cp ${COM}/06/model_data/ocean/history/gdas.t06z.ocnf003.nc \
${project_binary_dir}/soca_static/bkgerr/stddev/ocn.ensstddev.fc.2019-04-0${day}T00:00:00Z.PT0S.nc
cp ${project_source_dir}/soca/test/Data/72x35x25/ice.bkgerror.nc \
cp ${project_source_dir}/sorc/soca/test/Data/72x35x25/ice.bkgerror.nc \
${project_binary_dir}/soca_static/bkgerr/stddev/ice.ensstddev.fc.2019-04-0${day}T00:00:00Z.PT0S.nc
done

Expand Down
12 changes: 6 additions & 6 deletions test/soca/gw/run_jjobs.yaml.test
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@ gw environement:
assym_freq: 6

backgrounds:
COM_SRC: @HOMEgfs@/sorc/gdas.cd/build/test/soca/gw/COM
COM_SRC: @HOMEgfs@/sorc/gdas.cd/build/gdas/test/soca/gw/COM

working directories:
ROTDIRS: @HOMEgfs@/sorc/gdas.cd/build/test/soca/gw/testrun/testjjobs/ROTDIRS
EXPDIRS: @HOMEgfs@/sorc/gdas.cd/build/test/soca/gw/testrun/testjjobs/experiments
STMP: @HOMEgfs@/sorc/gdas.cd/build/test/soca/gw/testrun/testjjobs
ROTDIRS: @HOMEgfs@/sorc/gdas.cd/build/gdas/test/soca/gw/testrun/testjjobs/ROTDIRS
EXPDIRS: @HOMEgfs@/sorc/gdas.cd/build/gdas/test/soca/gw/testrun/testjjobs/experiments
STMP: @HOMEgfs@/sorc/gdas.cd/build/gdas/test/soca/gw/testrun/testjjobs

jedi:
OOPS_TRACE: 1
Expand All @@ -46,10 +46,10 @@ setup_expt config:
NMEM_ENS: "4"
DOHYBVAR: "YES"
ocnanal:
SOCA_INPUT_FIX_DIR: @HOMEgfs@/sorc/gdas.cd/build/soca_static
SOCA_INPUT_FIX_DIR: @HOMEgfs@/sorc/gdas.cd/build/gdas/soca_static
CASE_ANL: C48
SOCA_OBS_LIST: @HOMEgfs@/sorc/gdas.cd/parm/soca/obs/obs_list_small.yaml
COMIN_OBS: @HOMEgfs@/sorc/gdas.cd/build/test/soca/obs/r2d2-shared
COMIN_OBS: @HOMEgfs@/sorc/gdas.cd/build/gdas/test/soca/obs/r2d2-shared
SOCA_NINNER: 1
R2D2_OBS_SRC: gdasapp
R2D2_OBS_DUMP: soca
Expand Down
4 changes: 2 additions & 2 deletions test/soca/gw/static.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ mkdir -p ${soca_static}/INPUT
mkdir -p ${soca_static}/bump
mkdir -p ${soca_static}/bkgerr/stddev

lowres=${project_source_dir}/soca/test/Data
lowres=${project_source_dir}/sorc/soca/test/Data

cp -L ${lowres}/workdir/{diag_table,field_table} ${soca_static}
cp -L ${project_source_dir}/test/soca/fix/MOM_input ${soca_static}
cp -L ${lowres}/{fields_metadata.yml,godas_sst_bgerr.nc,rossrad.dat} ${soca_static}
mv ${soca_static}/fields_metadata.yml ${soca_static}/fields_metadata.yaml
cp -L ${project_source_dir}/soca/test/testinput/obsop_name_map.yml ${soca_static}/obsop_name_map.yaml
cp -L ${project_source_dir}/sorc/soca/test/testinput/obsop_name_map.yml ${soca_static}/obsop_name_map.yaml
cp -L ${lowres}/72x35x25/input.nml ${soca_static}/inputnml
cp -L ${lowres}/72x35x25/INPUT/{hycom1_25.nc,ocean_mosaic.nc,grid_spec.nc,layer_coord25.nc,ocean_hgrid.nc,ocean_topog.nc} ${soca_static}/INPUT
6 changes: 3 additions & 3 deletions test/testinput/bufr_adpsfc_snow.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ observations:
stationIdentification:
query: "*/RPID"

height:
stationElevation:
query: "[*/SELV, */HSMSL]"

# ObsValue
Expand Down Expand Up @@ -64,9 +64,9 @@ observations:
units: "degree_east"
range: [-180, 180]

- name: "MetaData/height"
- name: "MetaData/stationElevation"
coordinates: "longitude latitude"
source: variables/height
source: variables/stationElevation
longName: "Height of Station"

- name: "MetaData/stationIdentification"
Expand Down
Loading
Loading