diff --git a/build.sh b/build.sh index 801f3c8bc..48931b553 100755 --- a/build.sh +++ b/build.sh @@ -126,7 +126,7 @@ set -x if [[ $BUILD_JCSDA == 'YES' ]]; then make -j ${BUILD_JOBS:-6} VERBOSE=$BUILD_VERBOSE else - builddirs="gdas iodaconv land-imsproc land-jediincr gdas-utils bufr-query" + builddirs="gdas iodaconv land-imsproc land-jediincr gdas-utils bufr-query da-utils" for b in $builddirs; do cd $b make -j ${BUILD_JOBS:-6} VERBOSE=$BUILD_VERBOSE diff --git a/modulefiles/GDAS/hera.intel.lua b/modulefiles/GDAS/hera.intel.lua index 613205f6f..7ef752a8e 100644 --- a/modulefiles/GDAS/hera.intel.lua +++ b/modulefiles/GDAS/hera.intel.lua @@ -44,6 +44,7 @@ load("fckit/0.11.0") load("fiat/1.2.0") --load("ectrans/1.2.0") load("fms/2023.04") +load("esmf/8.6.0") load("atlas/0.35.1") load("sp/2.5.0") load("gsl-lite/0.37.0") diff --git a/modulefiles/GDAS/hercules.intel.lua b/modulefiles/GDAS/hercules.intel.lua index fb97a90b7..105efddee 100644 --- a/modulefiles/GDAS/hercules.intel.lua +++ b/modulefiles/GDAS/hercules.intel.lua @@ -41,6 +41,7 @@ load("fckit/0.11.0") load("fiat/1.2.0") load("ectrans/1.2.0") load("fms/2023.04") +load("esmf/8.6.0") load("atlas/0.35.1") load("sp/2.5.0") load("gsl-lite/0.37.0") diff --git a/modulefiles/GDAS/orion.intel.lua b/modulefiles/GDAS/orion.intel.lua index 1c4c60ac3..509c7b053 100644 --- a/modulefiles/GDAS/orion.intel.lua +++ b/modulefiles/GDAS/orion.intel.lua @@ -41,6 +41,7 @@ load("fckit/0.11.0") load("fiat/1.2.0") load("ectrans/1.2.0") load("fms/2023.04") +load("esmf/8.6.0") load("atlas/0.35.1") load("sp/2.5.0") load("gsl-lite/0.37.0") diff --git a/modulefiles/GDAS/wcoss2.intel.lua b/modulefiles/GDAS/wcoss2.intel.lua index 8fb769c96..2c3224f33 100644 --- a/modulefiles/GDAS/wcoss2.intel.lua +++ b/modulefiles/GDAS/wcoss2.intel.lua @@ -34,6 +34,7 @@ load("gsl/2.7") load("prod_util/2.0.14") load("bufr/12.0.1") load("fms-C/2023.04") +load("esmf-C/8.6.0") -- hack for pybind11 setenv("pybind11_ROOT", "/apps/spack/python/3.8.6/intel/19.1.3.304/pjn2nzkjvqgmjw4hmyz43v5x4jbxjzpk/lib/python3.8/site-packages/pybind11/share/cmake/pybind11") diff --git a/parm/soca/obs/config/icec_viirs_n20_l2_north.yaml b/parm/soca/obs/config/icec_viirs_n20_l2_north.yaml new file mode 100644 index 000000000..f6a24d7f8 --- /dev/null +++ b/parm/soca/obs/config/icec_viirs_n20_l2_north.yaml @@ -0,0 +1,45 @@ +obs space: + name: icec_viirs_n20_l2_north + obsdatain: + engine: + type: H5File + obsfile: !ENV ${DATA}/obs/${OPREFIX}icec_viirs_n20_l2_north.{PDY}${cyc}.nc4 + obsdataout: + engine: + type: H5File + obsfile: !ENV ${DATA}/diags/icec_viirs_n20_l2_north.${PDY}${cyc}.nc4 + simulated variables: [seaIceFraction] + io pool: + max pool size: 1 +get values: + time interpolation: linear +obs operator: + name: Identity + observation alias file: obsop_name_map.yaml +obs error: + covariance model: diagonal +obs filters: +- filter: Domain Check + where: + - variable: {name: GeoVaLs/sea_area_fraction} + minvalue: 0.9 +- filter: Bounds Check + minvalue: 0.0 + maxvalue: 1.0 +#- filter: Background Check +# threshold: 5.0 +- filter: Domain Check + where: + - variable: { name: GeoVaLs/sea_surface_temperature} + maxvalue: 2.0 +- filter: Domain Check + where: + - variable: { name: GeoVaLs/sea_surface_temperature} + maxvalue: 0.0 + action: + name: inflate error + inflation factor: 2.0 +- filter: Domain Check + where: + - variable: {name: GeoVaLs/distance_from_coast} + minvalue: 100e3 diff --git a/parm/soca/obs/config/icec_viirs_n20_l2_south.yaml b/parm/soca/obs/config/icec_viirs_n20_l2_south.yaml new file mode 100644 index 000000000..030b1091f --- /dev/null +++ b/parm/soca/obs/config/icec_viirs_n20_l2_south.yaml @@ -0,0 +1,45 @@ +obs space: + name: icec_viirs_n20_l2_south + obsdatain: + engine: + type: H5File + obsfile: !ENV ${DATA}/obs/${OPREFIX}icec_viirs_n20_l2_south.{PDY}${cyc}.nc4 + obsdataout: + engine: + type: H5File + obsfile: !ENV ${DATA}/diags/icec_viirs_n20_l2_south.${PDY}${cyc}.nc4 + simulated variables: [seaIceFraction] + io pool: + max pool size: 1 +get values: + time interpolation: linear +obs operator: + name: Identity + observation alias file: obsop_name_map.yaml +obs error: + covariance model: diagonal +obs filters: +- filter: Domain Check + where: + - variable: {name: GeoVaLs/sea_area_fraction} + minvalue: 0.9 +- filter: Bounds Check + minvalue: 0.0 + maxvalue: 1.0 +#- filter: Background Check +# threshold: 5.0 +- filter: Domain Check + where: + - variable: { name: GeoVaLs/sea_surface_temperature} + maxvalue: 2.0 +- filter: Domain Check + where: + - variable: { name: GeoVaLs/sea_surface_temperature} + maxvalue: 0.0 + action: + name: inflate error + inflation factor: 2.0 +- filter: Domain Check + where: + - variable: {name: GeoVaLs/distance_from_coast} + minvalue: 100e3 diff --git a/parm/soca/obs/obs_list.yaml b/parm/soca/obs/obs_list.yaml index 150722c58..c11dc1ace 100644 --- a/parm/soca/obs/obs_list.yaml +++ b/parm/soca/obs/obs_list.yaml @@ -15,6 +15,8 @@ observers: # Ice concentration - !INC ${MARINE_OBS_YAML_DIR}/icec_amsr2_north.yaml - !INC ${MARINE_OBS_YAML_DIR}/icec_amsr2_south.yaml +#- !INC ${MARINE_OBS_YAML_DIR}/icec_viirs_n20_l2_north.yaml +#- !INC ${MARINE_OBS_YAML_DIR}/icec_viirs_n20_l2_south.yaml #- !INC ${MARINE_OBS_YAML_DIR}/icec_amsu_mb_l2.yaml #- !INC ${MARINE_OBS_YAML_DIR}/icec_atms_n20_l2.yaml #- !INC ${MARINE_OBS_YAML_DIR}/icec_atms_n21_l2.yaml diff --git a/parm/soca/obsprep/obsprep_config.yaml b/parm/soca/obsprep/obsprep_config.yaml index fd9239022..0b3c56764 100644 --- a/parm/soca/obsprep/obsprep_config.yaml +++ b/parm/soca/obsprep/obsprep_config.yaml @@ -46,6 +46,22 @@ observations: dmpdir regex: 'AMSR2-SEAICE-SH_v2r2_GW1_s*.nc' ocean basin: RECCAP2_region_masks_all_v20221025.nc +- obs space: + name: icec_viirs_n20_l2_north + provider: JPSSRR + dmpdir subdir: ocean/icec/NH + type: nc + dmpdir regex: 'JRR-IceConcentration_v2r3_j01_s*.nc' + ocean basin: RECCAP2_region_masks_all_v20221025.nc + +- obs space: + name: icec_viirs_n20_l2_south + provider: JPSSRR + dmpdir subdir: ocean/icec/SH + type: nc + dmpdir regex: 'JRR-IceConcentration_v2r3_j01_s*.nc' + ocean basin: RECCAP2_region_masks_all_v20221025.nc + - obs space: name: icec_amsu_mb_l2 provider: MIRS diff --git a/sorc/da-utils b/sorc/da-utils index a2da7a84c..5c6080c3f 160000 --- a/sorc/da-utils +++ b/sorc/da-utils @@ -1 +1 @@ -Subproject commit a2da7a84c76c03cbede5aa13f25549417bd30c43 +Subproject commit 5c6080c3f52e300ebba70075ca094ef5785df93a