Skip to content

Commit 4bf653c

Browse files
Feature/gsibec (#170)
* Add gsibec as a staticb option for fv3jedi_var.x (#166) * Add missing whitespace (python coding norm) (#166) * Add cloud liquid water and ice to gsibec control vector (#166) * add staticb_type to 3dvar_orion.yaml (#166) * configure hera and orion 3dvar yaml to use gsibec, add identity staticb to stage.py (#166) * Streamline coding in stage.py (#166) * Clean up gsibec staticb yaml (#166)
1 parent e27973d commit 4bf653c

File tree

6 files changed

+46
-8
lines changed

6 files changed

+46
-8
lines changed

build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ case ${BUILD_TARGET} in
6060
module purge
6161
module use $dir_root/modulefiles
6262
module load GDAS/$BUILD_TARGET
63-
CMAKE_OPTS+=" -DMPIEXEC_EXECUTABLE=$MPIEXEC_EXEC -DMPIEXEC_NUMPROC_FLAG=$MPIEXEC_NPROC"
63+
CMAKE_OPTS+=" -DMPIEXEC_EXECUTABLE=$MPIEXEC_EXEC -DMPIEXEC_NUMPROC_FLAG=$MPIEXEC_NPROC -DBUILD_GSIBEC=ON"
6464
module list
6565
set -e
6666
;;

parm/atm/berror/staticb_gsibec.yaml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
covariance model: SABER
2+
full inverse: true
3+
saber blocks:
4+
- saber block name: gsi covariance
5+
saber central block: true
6+
input variables: &control_vars [eastward_wind,northward_wind,air_temperature,surface_pressure,
7+
specific_humidity,cloud_liquid_ice,cloud_liquid_water,
8+
mole_fraction_of_ozone_in_air]
9+
output variables: *control_vars
10+
gsi akbk: &akbk $(fv3jedi_fix_dir)/akbk.nc4
11+
gsi error covariance file: &gsiberr $(fv3jedi_staticb_dir)/gsi-coeffs-gfs-global.nc4
12+
# gsi error covariance file: &gsiberr $(fv3jedi_staticb_dir)/global_berror.f77
13+
gsi berror namelist file: &gsibnml $(fv3jedi_staticb_dir)/gfs_gsi_global.nml
14+
processor layout x direction: &layout_gsib_x 3
15+
processor layout y direction: &layout_gsib_y 2
16+
debugging mode: false
17+
- saber block name: gsi interpolation to model grid
18+
input variables: *control_vars
19+
output variables: *control_vars
20+
gsi akbk: *akbk
21+
gsi error covariance file: *gsiberr
22+
gsi berror namelist file: *gsibnml
23+
processor layout x direction: *layout_gsib_x
24+
processor layout y direction: *layout_gsib_y
25+
debugging mode: false
26+
linear variable change:
27+
linear variable change name: Control2Analysis
28+
input variables: *control_vars
29+
output variables: &3dvars_anal [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr]

ush/examples/run_jedi_exe/3dvar_hera.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ working directory: /scratch2/NCEPDEV/stmp1/Cory.R.Martin/gdas_single_test_3dvar
22
GDASApp home: /scratch1/NCEPDEV/da/Cory.R.Martin/GDASApp/work/GDASApp
33
GDASApp mode: variational
44
executable options:
5-
berror_yaml: /scratch1/NCEPDEV/da/Cory.R.Martin/GDASApp/work/GDASApp/parm/atm/berror/staticb_bump.yaml
5+
berror_yaml: /scratch1/NCEPDEV/da/Cory.R.Martin/GDASApp/work/GDASApp/parm/atm/berror/staticb_gsibec.yaml
66
obs_yaml_dir: /scratch1/NCEPDEV/da/Cory.R.Martin/GDASApp/work/GDASApp/parm/atm/obs/config
77
yaml_template: /scratch1/NCEPDEV/da/Cory.R.Martin/GDASApp/work/GDASApp/parm/atm/variational/3dvar_dripcg.yaml
88
executable: /scratch1/NCEPDEV/da/Cory.R.Martin/GDASApp/work/GDASApp/build/bin/fv3jedi_var.x
@@ -15,7 +15,8 @@ executable options:
1515
valid_time: 2021-12-21T06:00:00Z
1616
dump: gdas
1717
case: C96
18-
case_anl: C48
18+
case_anl: C96
19+
staticb_type: gsibec
1920
dohybvar: false
2021
levs: 128
2122
interp_method: barycentric

ush/examples/run_jedi_exe/3dvar_orion.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ working directory: /work2/noaa/stmp/cmartin/gdas_single_test_3dvar
22
GDASApp home: /work2/noaa/da/cmartin/GDASApp/work/GDASApp
33
GDASApp mode: variational
44
executable options:
5-
berror_yaml: /work2/noaa/da/cmartin/GDASApp/work/GDASApp/parm/atm/berror/staticb_bump.yaml
5+
berror_yaml: /work2/noaa/da/cmartin/GDASApp/work/GDASApp/parm/atm/berror/staticb_gsibec.yaml
66
obs_yaml_dir: /work2/noaa/da/cmartin/GDASApp/work/GDASApp/parm/atm/obs/config
77
yaml_template: /work2/noaa/da/cmartin/GDASApp/work/GDASApp/parm/atm/variational/3dvar_dripcg.yaml
88
executable: /work2/noaa/da/cmartin/GDASApp/work/GDASApp/build/bin/fv3jedi_var.x
@@ -15,7 +15,8 @@ executable options:
1515
valid_time: 2021-12-21T06:00:00Z
1616
dump: gdas
1717
case: C96
18-
case_anl: C48
18+
case_anl: C96
19+
staticb_type: gsibec
1920
dohybvar: false
2021
levs: 128
2122
interp_method: barycentric

ush/run_jedi_exe.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ def run_jedi_exe(yamlconfig):
7373
single_exec = True
7474
var_config = {
7575
'BERROR_YAML': executable_subconfig.get('berror_yaml', './'),
76+
'STATICB_TYPE': executable_subconfig.get('staticb_type', 'gsibec'),
7677
'OBS_YAML_DIR': executable_subconfig['obs_yaml_dir'],
7778
'OBS_LIST': executable_subconfig['obs_list'],
7879
'atm': executable_subconfig.get('atm', False),

ush/ufsda/stage.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,15 @@ def gdas_fix(input_fix_dir, working_dir, config):
3232
else:
3333
case_anl = config['CASE_ANL']
3434
layers = int(config['LEVS'])-1
35-
# link static B files
36-
ufsda.disk_utils.symlink(os.path.join(input_fix_dir, 'bump', case_anl),
37-
config['fv3jedi_staticb_dir'])
35+
36+
# figure out staticb source
37+
staticb_source = config.get('STATICB_TYPE', 'gsibec')
38+
39+
# link staticb
40+
if staticb_source in ['bump', 'gsibec']:
41+
ufsda.disk_utils.symlink(os.path.join(input_fix_dir, staticb_source, case_anl),
42+
config['fv3jedi_staticb_dir'])
43+
3844
# link akbk file
3945
ufsda.disk_utils.symlink(os.path.join(input_fix_dir, 'fv3jedi',
4046
'fv3files', f"akbk{layers}.nc4"),

0 commit comments

Comments
 (0)