Skip to content

Commit

Permalink
Merge branch 'NOAA-EMC:develop' into feature/eupd_cyc
Browse files Browse the repository at this point in the history
  • Loading branch information
RussTreadon-NOAA committed Jun 21, 2024
2 parents e6dd269 + 6f27a49 commit e888248
Show file tree
Hide file tree
Showing 28 changed files with 367 additions and 1,584 deletions.
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,10 @@
path = sorc/fms
url = https://github.com/jcsda/fms.git
branch = release-stable
[submodule "sorc/jcb"]
path = sorc/jcb
url = https://github.com/noaa-emc/jcb.git
branch = develop
[submodule "parm/jcb-gdas"]
path = parm/jcb-gdas
url = https://github.com/noaa-emc/jcb-gdas
Expand Down
2 changes: 1 addition & 1 deletion build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ case ${BUILD_TARGET} in
;;
esac

CMAKE_OPTS+=" -DCLONE_JCSDADATA=$CLONE_JCSDADATA"
CMAKE_OPTS+=" -DCLONE_JCSDADATA=$CLONE_JCSDADATA -DMACHINE=$BUILD_TARGET"

BUILD_DIR=${BUILD_DIR:-$dir_root/build}
if [[ $CLEAN_BUILD == 'YES' ]]; then
Expand Down
19 changes: 10 additions & 9 deletions modulefiles/GDAS/orion.intel.lua
Original file line number Diff line number Diff line change
Expand Up @@ -6,29 +6,30 @@ local pkgName = myModuleName()
local pkgVersion = myModuleVersion()
local pkgNameVer = myModuleFullName()

prepend_path("MODULEPATH", '/work/noaa/epic/role-epic/spack-stack/orion/spack-stack-1.6.0/envs/unified-env/install/modulefiles/Core')
prepend_path("MODULEPATH", '/work/noaa/epic/role-epic/spack-stack/orion/spack-stack-1.6.0/envs/unified-env-rocky9/install/modulefiles/Core')
prepend_path("MODULEPATH", '/work2/noaa/da/python/opt/modulefiles/stack')

-- below two lines get us access to the spack-stack modules
load("stack-intel/2022.0.2")
load("stack-intel-oneapi-mpi/2021.5.1")
load("stack-intel/2021.9.0")
load("stack-intel-oneapi-mpi/2021.9.0")
--load("stack-python/3.10.8")
-- JCSDA has 'jedi-fv3-env/unified-dev', but we should load these manually as needed
load("cmake/3.23.1")
load("curl/8.4.0")
load("zlib/1.2.13")
load("git/2.28.0")
load("pkg-config/0.27.1")
load("git/2.31.1")
--load("pkg-config/0.27.1")
load("hdf5/1.14.0")
load("parallel-netcdf/1.12.2")
load("netcdf-c/4.9.2")
load("nccmp/1.9.0.1")
load("netcdf-fortran/4.6.1")
load("nco/5.0.6")
load("parallelio/2.5.10")
load("wget/1.21.3")
load("wget/1.21.1")
load("boost/1.83.0")
load("bufr/12.0.1")
load("git-lfs/2.12.0")
load("git-lfs/3.1.2")
load("ecbuild/3.7.2")
load("openjpeg/2.3.1")
load("eccodes/2.32.0")
Expand All @@ -43,7 +44,7 @@ load("atlas/0.35.1")
load("sp/2.5.0")
load("gsl-lite/0.37.0")
load("libjpeg/2.1.0")
load("krb5/1.15.1")
load("krb5/1.20.1")
load("libtirpc/1.3.3")
load("hdf/4.2.15")
load("jedi-cmake/1.4.0")
Expand All @@ -59,7 +60,7 @@ load("py-pybind11/2.11.0")
--load("crtm/v2.4_jedi")
load("contrib/0.1")
load("noaatools/3.1")
load("rocoto/1.3.3")
load("rocoto/1.3.5")

load("hpc/1.2.0")
unload("python/3.10.13")
Expand Down
4 changes: 2 additions & 2 deletions parm/aero/berror/aero_diffusionparm.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,11 @@ background error:
- horizontal:
fixed value: {{ horiz_len }}
write:
filepath: ./diffusion_hz
filepath: "{{ DATA }}/berror/diffusion_hz"
- vertical:
levels: {{ npz_ges }}
fixed value: {{ fixed_val }}
as gaussian: true
write:
filepath: ./diffusion_vt
filepath: "{{ DATA }}/berror/diffusion_hz"

33 changes: 33 additions & 0 deletions parm/aero/berror/staticb_diffusion.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
covariance model: SABER
saber central block:
saber block name: diffusion
read:
groups:
- variables: [mass_fraction_of_sulfate_in_air,
mass_fraction_of_hydrophobic_black_carbon_in_air,
mass_fraction_of_hydrophilic_black_carbon_in_air,
mass_fraction_of_hydrophobic_organic_carbon_in_air,
mass_fraction_of_hydrophilic_organic_carbon_in_air,
mass_fraction_of_dust001_in_air, mass_fraction_of_dust002_in_air,
mass_fraction_of_dust003_in_air, mass_fraction_of_dust004_in_air,
mass_fraction_of_dust005_in_air, mass_fraction_of_sea_salt001_in_air,
mass_fraction_of_sea_salt002_in_air, mass_fraction_of_sea_salt003_in_air,
mass_fraction_of_sea_salt004_in_air]
horizontal:
filepath: "{{ DATA }}/berror/diffusion_hz"
vertical:
levels: {{ npz_ges }}
filepath: "{{ DATA }}/berror/diffusion_vt"
saber outer blocks:
- saber block name: StdDev
read:
model file:
datetime: '{{ current_cycle | to_isotime }}'
set datetime on read: true
filetype: fms restart
psinfile: true
datapath: "{{ DATA }}/berror"
filename_core: '{{ current_cycle | to_fv3time }}.stddev.fv_core.res.nc'
filename_trcr: '{{ current_cycle | to_fv3time }}.stddev.fv_tracer.res.nc'
filename_cplr: '{{ current_cycle | to_fv3time }}.stddev.coupler.res'
date: '{{ current_cycle | to_isotime }}'
106 changes: 49 additions & 57 deletions parm/atm/jcb-base.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -10,64 +10,56 @@ app_path_observation_chronicle: "{{PARMgfs}}/gdas/jcb-gdas/observation_chronicle
# Places where we deviate from the generic file name of a yaml
# ------------------------------------------------------------
#final_increment_file: final_increment_gaussian
final_increment_file: final_increment_cubed_sphere
output_ensemble_increments_file: output_ensemble_increments_cubed_sphere
model_file: model_pseudo
initial_condition_file: background # Initial conditions for 4D apps is background

final_increment_file: atmosphere_final_increment_cubed_sphere
output_ensemble_increments_file: atmosphere_output_ensemble_increments_cubed_sphere
model_file: atmosphere_model_pseudo
initial_condition_file: atmosphere_background # Initial conditions for 4D apps is background
background_error_file: "{{BERROR_YAML}}"

# Assimilation window
# -------------------
# Assimilation standard things (not prepended with model choice)
# ----------------------------
window_begin: "{{ ATM_WINDOW_BEGIN | to_isotime }}"
window_length: "{{ ATM_WINDOW_LENGTH }}"
bound_to_include: begin

# Default background time is for 3D applications
atm_background_time_iso: "{{ current_cycle | to_isotime }}"


# Analysis standard things
# ------------------------
analysis_variables: [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr]
minimizer: DRPCG
final_diagnostics_departures: anlmob

cost_type: 3D-Var
number_of_outer_loops: 2
analysis_variables: [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr]

# Model things
# ------------
# Geometry
layout_x: {{ layout_x | default(1, true) }}
layout_y: {{ layout_y | default(1, true) }}
npx_ges: {{ npx_ges | default(49, true) }}
npy_ges: {{ npy_ges | default(49, true) }}
npz_ges: {{ npz_ges | default(127, true) }}
npx_anl: {{ npx_anl | default(49, true) }}
npy_anl: {{ npy_anl | default(49, true) }}
npz_anl: {{ npz_anl | default(127, true) }}
atmosphere_layout_x: {{ layout_x | default(1, true) }}
atmosphere_layout_y: {{ layout_y | default(1, true) }}
atmosphere_npx_ges: {{ npx_ges | default(49, true) }}
atmosphere_npy_ges: {{ npy_ges | default(49, true) }}
atmosphere_npz_ges: {{ npz_ges | default(127, true) }}
atmosphere_npx_anl: {{ npx_anl | default(49, true) }}
atmosphere_npy_anl: {{ npy_anl | default(49, true) }}
atmosphere_npz_anl: {{ npz_anl | default(127, true) }}

fv3jedi_files_path: ./fv3jedi # Ideally this would be {{DATA}}/fv3jedi but FMS
atmosphere_fv3jedi_files_path: ./fv3jedi # Ideally this would be {{DATA}}/fv3jedi but FMS

# Background
background_path: ./bkg
background_ensemble_path: ./ens/mem%mem%
atmosphere_background_path: ./bkg
atmosphere_background_ensemble_path: ./ens/mem%mem%

# Default background time is for 3D applications
atmosphere_background_time_iso: "{{ current_cycle | to_isotime }}"

# Background error
bump_data_directory: "{{ DATA }}/berror"
gsibec_path: "{{ DATA }}/berror"
number_ensemble_members: {{ NMEM_ENS | default(1, true) }}
layout_gsib_x: {{ layout_gsib_x | default(1, true) }}
layout_gsib_y: {{ layout_gsib_y | default(1, true) }}
atmosphere_bump_data_directory: "{{ DATA }}/berror"
atmosphere_gsibec_path: "{{ DATA }}/berror"
atmosphere_number_ensemble_members: {{ NMEM_ENS | default(1, true) }}
atmosphere_layout_gsib_x: {{ layout_gsib_x | default(1, true) }}
atmosphere_layout_gsib_y: {{ layout_gsib_y | default(1, true) }}

background_error_file: "{{BERROR_YAML}}"

# Forecasting
forecast_length: "{{ ATM_WINDOW_LENGTH }}"
forecast_timestep: "{{ BKG_TSTEP }}"
atmosphere_forecast_timestep: "{{ BKG_TSTEP }}"

# Write final increment on Guassian grid in variational
final_increment_prefix: "./anl/atminc."
atmosphere_final_increment_prefix: "./anl/atminc."


# Observation things
Expand All @@ -77,28 +69,28 @@ observations: all_observations
crtm_coefficient_path: "{{ DATA }}/crtm/"

# Naming conventions for observational files
atm_obsdatain_path: "{{atm_obsdatain_path}}"
atm_obsdatain_prefix: "{{OPREFIX}}"
atm_obsdatain_suffix: ".tm00.nc"
atmosphere_obsdatain_path: "{{atm_obsdatain_path}}"
atmosphere_obsdatain_prefix: "{{OPREFIX}}"
atmosphere_obsdatain_suffix: ".tm00.nc"

atm_obsdataout_path: "{{atm_obsdataout_path}}"
atm_obsdataout_prefix: diag_
atm_obsdataout_suffix: "_{{ current_cycle | to_YMDH }}.nc"
atmosphere_obsdataout_path: "{{atm_obsdataout_path}}"
atmosphere_obsdataout_prefix: diag_
atmosphere_obsdataout_suffix: "_{{ current_cycle | to_YMDH }}.nc"

# Naming conventions for bias correction files
atm_obsbiasin_path: "{{DATA}}/obs/"
atm_obsbiasin_prefix: "{{GPREFIX}}"
atm_obsbiasin_suffix: ".satbias.nc"
atm_obstlapsein_prefix: "{{GPREFIX}}"
atm_obstlapsein_suffix: ".tlapse.txt"
atm_obsbiascovin_prefix: "{{GPREFIX}}"
atm_obsbiascovin_suffix: ".satbias_cov.nc"
atmosphere_obsbiasin_path: "{{DATA}}/obs/"
atmosphere_obsbiasin_prefix: "{{GPREFIX}}"
atmosphere_obsbiasin_suffix: ".satbias.nc"
atmosphere_obstlapsein_prefix: "{{GPREFIX}}"
atmosphere_obstlapsein_suffix: ".tlapse.txt"
atmosphere_obsbiascovin_prefix: "{{GPREFIX}}"
atmosphere_obsbiascovin_suffix: ".satbias_cov.nc"

atm_obsbiasout_path: "{{DATA}}/bc/"
atm_obsbiasout_prefix: "{{APREFIX}}"
atm_obsbiasout_suffix: ".satbias.nc"
atm_obsbiascovout_prefix: "{{APREFIX}}"
atm_obsbiascovout_suffix: ".satbias_cov.nc"
atmosphere_obsbiasout_path: "{{DATA}}/bc/"
atmosphere_obsbiasout_prefix: "{{APREFIX}}"
atmosphere_obsbiasout_suffix: ".satbias.nc"
atmosphere_obsbiascovout_prefix: "{{APREFIX}}"
atmosphere_obsbiascovout_suffix: ".satbias_cov.nc"


# Local Ensemble DA (LETKF)
Expand All @@ -124,5 +116,5 @@ driver_save_posterior_mean_increment: false
driver_save_posterior_ensemble_increments: true

# Diagnostics
ensemble_increment_prefix: "./anl/mem%{member}%/atminc."
posterior_output_gaussian: "./mem%{member}%/atmanl."
atmosphere_ensemble_increment_prefix: "./anl/mem%{member}%/atminc."
atmosphere_posterior_output_gaussian: "./mem%{member}%/atmanl."
2 changes: 1 addition & 1 deletion parm/atm/jcb-prototype_lgetkf.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ algorithm: local_ensemble_da

# Model things
# ------------
background_ensemble_path: ./bkg/mem%mem%
atmosphere_background_ensemble_path: ./bkg/mem%mem%

# Observation things
# ------------------
Expand Down
Loading

0 comments on commit e888248

Please sign in to comment.