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

Marine ens. var. #1353

Merged
merged 40 commits into from
Dec 3, 2024
Merged
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
293459f
wip, weird h values in ens iau incr
guillaumevernieres Sep 24, 2024
348e8d7
early exit recenter
guillaumevernieres Sep 24, 2024
8dd6217
wip
guillaumevernieres Sep 30, 2024
8b8c5b8
Merge branch 'develop' into feature/marineenvar
guillaumevernieres Sep 30, 2024
3f95af2
iso date and tidy
guillaumevernieres Oct 8, 2024
870eb32
added hyb test
guillaumevernieres Oct 16, 2024
4af3902
Merge branch 'develop' into feature/marineenvar
guillaumevernieres Oct 16, 2024
d454e8b
...
guillaumevernieres Oct 16, 2024
ef2b7c7
pynorm
guillaumevernieres Oct 17, 2024
d31e8ed
pynorm
guillaumevernieres Oct 17, 2024
b872bc3
cpp norm
guillaumevernieres Oct 17, 2024
1d7496e
Merge branch 'develop' into feature/marineenvar
guillaumevernieres Oct 18, 2024
cf48626
Merge branch 'develop' into feature/marineenvar
guillaumevernieres Oct 29, 2024
f923841
hyb test, speed up diffusion
guillaumevernieres Oct 29, 2024
71e9e5f
removed ens recenter
guillaumevernieres Oct 30, 2024
56dd9ba
Merge branch 'develop' into feature/marineenvar
guillaumevernieres Nov 19, 2024
a35966e
e-folding of bkgerr
guillaumevernieres Nov 19, 2024
1ae7042
wip
guillaumevernieres Nov 19, 2024
7128edf
update submodules
guillaumevernieres Nov 19, 2024
2bf5c77
update submodules
guillaumevernieres Nov 19, 2024
d506930
updated submodules
guillaumevernieres Nov 19, 2024
6275dfa
fixed bugs, added e-folding for bkgerr
guillaumevernieres Nov 20, 2024
c1a7e3e
live and don't learn
guillaumevernieres Nov 20, 2024
416a558
Merge branch 'develop' into feature/marineenvar
guillaumevernieres Nov 20, 2024
931142c
var name issue
guillaumevernieres Nov 20, 2024
50bf828
Merge branch 'develop' into feature/marineenvar
guillaumevernieres Nov 20, 2024
f877039
more code norms
guillaumevernieres Nov 20, 2024
00974c2
Merge branch 'develop' into feature/marineenvar
guillaumevernieres Nov 26, 2024
257513c
wcda with fewer tasks
guillaumevernieres Nov 26, 2024
211501e
updated refs
guillaumevernieres Nov 26, 2024
9d06cf6
wip ... test ref for hyb in conflict with 3dfgat
guillaumevernieres Nov 26, 2024
af9684c
Merge branch 'develop' into feature/marineenvar
guillaumevernieres Dec 2, 2024
ba9a5fb
no marine ref
guillaumevernieres Dec 2, 2024
1e63072
new jcb-gdas #
guillaumevernieres Dec 2, 2024
6a6d515
code tidy + rm j2
guillaumevernieres Dec 2, 2024
c641930
Merge branch 'develop' into feature/marineenvar
guillaumevernieres Dec 2, 2024
17d6db8
optional gw ctests
guillaumevernieres Dec 3, 2024
133a854
Merge branch 'feature/marineenvar' of https://github.com/NOAA-EMC/GDA…
guillaumevernieres Dec 3, 2024
6e23615
typo
guillaumevernieres Dec 3, 2024
5d47396
default gw test to on
guillaumevernieres Dec 3, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion parm/soca/berror/soca_ensb.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ trajectory:

output increment:
# TODO: Revert this when fms can take more than 128 charactres file names
datadir: '{{ ENSPERT_RELPATH }}/enspert/'
datadir: '{{ ENSPERT_RELPATH }}/'
date: '{{ MARINE_WINDOW_BEGIN | to_isotime }}'
exp: trash
type: incr
Expand Down
82 changes: 13 additions & 69 deletions parm/soca/berror/soca_ensrecenter.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,104 +4,48 @@ geometry:
mom6_input_nml: mom_input.nml
fields metadata: ./fields_metadata.yaml

date: '{{ ATM_WINDOW_BEGIN }}'
date: '{{ MARINE_WINDOW_END_ISO }}'

layers variable: [hocn]

# TODO(AFE) fix ice recentering in cycled da
#increment variables: [tocn, socn, uocn, vocn, ssh, hocn, cicen, hicen, hsnon]
increment variables: [tocn, socn, uocn, vocn, ssh, hocn]
increment variables: [tocn, socn, uocn, vocn]

set increment variables to zero: [ssh]
set increment variables to zero: [uocn, vocn]

vertical geometry:
date: '{{ ATM_WINDOW_BEGIN }}'
date: '{{ MARINE_WINDOW_BEGIN_ISO }}'
basename: ./INPUT/
ocn_filename: MOM.res.nc
read_from_file: 3

add recentering increment: false
add recentering increment: true
recentering around deterministic: true

soca increments: # Could also be states, but they are read as increments
number of increments: {{ NMEM_ENS }}
pattern: '%mem%'
template:
date: '{{ ATM_WINDOW_BEGIN }}'
date: '{{ MARINE_WINDOW_END_ISO }}'
basename: ./ens/
ocn_filename: 'ocean.%mem%.nc'
# TODO(AFE) fix ice recentering in cycled da
# TODO(AFE) fix ice recentering in cycled da
# ice_filename: 'ice.%mem%.nc'
read_from_file: 3

steric height:
linear variable changes:
- linear variable change name: BalanceSOCA # Only the steric balance is applied

#ensemble mean output:
# datadir: ./static_ens
# date: '{{ ATM_WINDOW_BEGIN }}'
# exp: ens_mean
# type: incr

ssh output:
unbalanced:
datadir: ./
date: '{{ ATM_WINDOW_BEGIN }}'
exp: ssh_unbal_stddev
type: incr

steric:
datadir: ./
date: '{{ ATM_WINDOW_BEGIN }}'
exp: ssh_steric_stddev
type: incr

total:
datadir: ./
date: '{{ ATM_WINDOW_BEGIN }}'
exp: ssh_total_stddev
type: incr

explained variance:
datadir: ./
date: '{{ ATM_WINDOW_BEGIN }}'
exp: steric_explained_variance
type: incr

recentering error:
datadir: ./
date: '{{ ATM_WINDOW_BEGIN }}'
exp: ssh_recentering_error
type: incr

background error output:
datadir: ./
date: '{{ ATM_WINDOW_BEGIN }}'
exp: bkgerr_stddev
type: incr

#linear variable change:
# linear variable changes:
# - linear variable change name: BkgErrFILT
# ocean_depth_min: 500 # zero where ocean is shallower than 500m
# rescale_bkgerr: 1.0 # rescale perturbation
# efold_z: 1500.0 # Apply exponential decay
# - linear variable change name: BalanceSOCA

trajectory:
# TODO(AFE) fix ice recentering in cycled da
# state variables: [tocn, socn, uocn, vocn, ssh, hocn, layer_depth, mld, cicen, hicen, hsnon]
state variables: [tocn, socn, uocn, vocn, ssh, hocn, layer_depth, mld]
date: '{{ ATM_WINDOW_BEGIN }}'
basename: ./INPUT/
ocn_filename: MOM.res.nc
state variables: [tocn, socn, uocn, vocn, hocn, layer_depth, mld]
date: '{{ MARINE_WINDOW_END_ISO }}'
basename: ./bkg/
ocn_filename: ocean.bkg.f009.nc
# TODO(AFE) fix ice recentering in cycled da
#ice_filename: cice.res.nc
read_from_file: 1

output increment:
datadir: ./
date: '{{ ATM_WINDOW_BEGIN }}'
date: '{{ MARINE_WINDOW_END_ISO }}'
exp: trash
type: incr
output file: 'ocn.recenter.incr.%mem%.nc'
Expand Down
5 changes: 3 additions & 2 deletions parm/soca/berror/soca_parameters_diffusion_hz.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ background error:
calibration:
normalization:
method: randomization
iterations: 10000
iterations: 1000

groups:
- horizontal:
Expand All @@ -32,6 +32,7 @@ background error:

- horizontal:
as gaussian: true
fixed value: 50000.0
fixed value: 25000.0
mask: "interp_mask"
write:
filepath: ./staticb/hz_ice
1 change: 1 addition & 0 deletions parm/soca/berror/soca_parameters_diffusion_vt.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ background error:
groups:
- vertical:
as gaussian: true
levels: '{{ MOM6_LEVS }}'
model file:
date: '{{ MARINE_WINDOW_MIDDLE | to_isotime }}'
basename: ./
Expand Down
6 changes: 3 additions & 3 deletions parm/soca/ensda/stage_ens_mem.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
# create working directories
######################################
mkdir:
- "{{ DATAenspert }}/ens"
- "{{ DATAens }}/ens"

######################################
# copy ensemble background files
Expand All @@ -22,6 +22,6 @@ copy:
'${YMD}':gPDY,
'${HH}':gcyc,
'${MEMDIR}':"mem" + '%03d' % mem} %}
- ["{{ COM_OCEAN_HISTORY_TMPL | replace_tmpl(tmpl_dict) }}/{{ GDUMP_ENS }}.ocean.t{{ gcyc }}z.inst.f006.nc", "{{ DATAenspert }}/ens/ocean.{{ mem }}.nc"]
- ["{{ COM_ICE_HISTORY_TMPL | replace_tmpl(tmpl_dict) }}/{{ GDUMP_ENS }}.ice.t{{ gcyc }}z.inst.f006.nc", "{{ DATAenspert }}/ens/ice.{{ mem }}.nc"]
- ["{{ COM_OCEAN_HISTORY_TMPL | replace_tmpl(tmpl_dict) }}/{{ GDUMP_ENS }}.ocean.t{{ gcyc }}z.inst.f006.nc", "{{ DATAens }}/ens/ocean.{{ mem }}.nc"]
- ["{{ COM_ICE_HISTORY_TMPL | replace_tmpl(tmpl_dict) }}/{{ GDUMP_ENS }}.ice.t{{ gcyc }}z.inst.f006.nc", "{{ DATAens }}/ens/ice.{{ mem }}.nc"]
{% endfor %}
3 changes: 2 additions & 1 deletion parm/soca/marine-jcb-base.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ analysis_variables: [cicen, hicen, hsnon, socn, tocn, uocn, vocn, ssh]
# ------------
marine_window_begin: '{{MARINE_WINDOW_BEGIN}}'
marine_window_middle: '{{MARINE_WINDOW_MIDDLE}}'
marine_window_end: '{{MARINE_WINDOW_END}}'

# Geometry
marine_soca_files_path: .
Expand All @@ -47,7 +48,7 @@ marine_pseudo_model_states: !INC 'bkg_list.yaml'
# Background error model
background_error_file: '{{berror_model}}'
marine_number_ensemble_members: '{{nmem_ens}}'
marine_stddev_time: '{{MARINE_WINDOW_MIDDLE}}'
marine_stddev_time: '{{MARINE_WINDOW_MIDDLE_ISO}}'

# Observations
observations: all_observations
Expand Down
8 changes: 3 additions & 5 deletions parm/soca/obsprep/obsprep_config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ observations:
name: sst_viirs_npp_l3u
provider: GHRSST
dmpdir subdir: ocean/sst
type: nc
type: nc
dmpdir regex: '*-L3U_GHRSST-SSTsubskin-VIIRS_NPP-ACSPO_V*.nc'
bounds:
units: C
Expand Down Expand Up @@ -230,7 +230,7 @@ observations:
stride: 15
min number of obs: 10
ocean basin: RECCAP2_region_masks_all_v20221025.nc

# in situ: monthly
- obs space:
name: insitu_profile_bathy
Expand Down Expand Up @@ -285,7 +285,7 @@ observations:
name: insitu_surface_trkob
provider: GTS
dmpdir subdir: atmos
type: bufr
type: bufr
dmpdir regex: 'gdas.*.trkob.*.bufr_d'

# in situ: daily
Expand Down Expand Up @@ -316,5 +316,3 @@ observations:
dmpdir subdir: atmos
type: bufr
dmpdir regex: 'gdas.*.mbuoyb.*.bufr_d'


30 changes: 30 additions & 0 deletions test/gw-ci/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,36 @@ endif()

option(RUN_GW_CI "Enable the global-workflow CI tests" OFF)
if (RUN_GW_CI)
# HYB WCDA, low-res
# -------------------
set(pslot "WCDA-HYB-C48mx500")
set(YAML_PATH ${HOMEgfs}/ci/cases/pr/C48mx500_hybAOWCDA.yaml)
set(TASK_LIST
"gdas_prepoceanobs"
"gdas_marinebmat"
"gdas_ocnanalecen"
"gdas_marineanlinit"
"gdas_marineanlvar"
"gdas_marineanlchkpt"
"gdas_marineanlfinal"
)
add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${TASK_LIST}")

# HYB WCDA, low-res
guillaumevernieres marked this conversation as resolved.
Show resolved Hide resolved
# -------------------
set(pslot "WCDA-HYB-C384mx025")
set(YAML_PATH ${HOMEgfs}/ci/cases/gfsv17/C384mx025_hybAOWCDA.yaml)
set(TASK_LIST
"gdas_prepoceanobs"
"gdas_marinebmat"
"gdas_ocnanalecen"
"gdas_marineanlinit"
"gdas_marineanlvar"
"gdas_marineanlchkpt"
"gdas_marineanlfinal"
)
add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${TASK_LIST}")

# Aero-Land DA, C96
# -----------------
set(pslot "Aero-Snow-3DVAR-C96")
Expand Down
Loading
Loading