diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b4ea826d..ce1e6b78 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,6 +7,10 @@ on: pull_request: branches: [develop] +concurrency: + group: ${{ github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} + env: REPO: ${{ github.event.repository.name }} BUNDLE: pr-${{ github.event.number }} @@ -16,21 +20,20 @@ jobs: name: gnu 11.3.1 (UKMO) if: github.repository_owner == 'MetOffice' runs-on: jedi-self-hosted-rg - + steps: - - name: pre-submit cleanup + - name: Pre-submit cleanup run: | - ls -la ./ rm -fr ./${{ env.BUNDLE }} || true - ls -la ./ - - name: checkout current + ls -lgo ./ + - name: Checkout current uses: actions/checkout@v4 with: path: ./${{ env.BUNDLE }}/${{ env.REPO }} - - name: initiate bundle + - name: Initiate bundle run: cp ./${{ env.BUNDLE }}/${{ env.REPO }}/ci/* ./${{ env.BUNDLE }}/ - - name: checkout jedicmake + - name: Checkout jedicmake uses: actions/checkout@v4 with: path: ./${{ env.BUNDLE }}/jedicmake @@ -38,45 +41,48 @@ jobs: submodules: true token: ${{ secrets.GH_PAT }} - - name: checkout oops + - name: Checkout oops uses: actions/checkout@v4 with: path: ./${{ env.BUNDLE }}/oops repository: JCSDA-internal/oops token: ${{ secrets.GH_PAT }} - - name: matching branch checkout attempt oops ${{ github.head_ref }} + - name: Checkout attempt for oops@${{ github.head_ref }} if: github.event_name == 'pull_request' run: ./${{ env.BUNDLE }}/get-ref-branch ./${{ env.BUNDLE }}/oops - - name: checkout ioda + - name: Checkout ioda uses: actions/checkout@v4 with: path: ./${{ env.BUNDLE }}/ioda repository: JCSDA-internal/ioda token: ${{ secrets.GH_PAT }} - - name: matching branch checkout attempt ioda ${{ github.head_ref }} + - name: Checkout attempt for ioda@${{ github.head_ref }} if: github.event_name == 'pull_request' run: ./${{ env.BUNDLE }}/get-ref-branch ./${{ env.BUNDLE }}/ioda - - name: checkout ufo + - name: Checkout ufo uses: actions/checkout@v4 with: path: ./${{ env.BUNDLE }}/ufo repository: JCSDA-internal/ufo token: ${{ secrets.GH_PAT }} - - name: matching branch checkout attempt ufo ${{ github.head_ref }} + - name: Checkout attempt for ufo@${{ github.head_ref }} if: github.event_name == 'pull_request' run: ./${{ env.BUNDLE }}/get-ref-branch ./${{ env.BUNDLE }}/ufo - - name: build and test + - name: Build and Test run: | az acr login --name ngmssboxjediacr docker run --rm \ --entrypoint=/usr/local/src/${REPO}/${BUNDLE}/build-and-test \ --workdir=/usr/local/src/${REPO}/${BUNDLE} \ --volume ${PWD}/${BUNDLE}:/usr/local/src/${REPO}/${BUNDLE} \ - 'ngmssboxjediacr.azurecr.io/jedibase:alma9' \ - && rm -fr ${{github.workspace}}/${{env.BUNDLE}} + 'ngmssboxjediacr.azurecr.io/jedibase:alma9' + + - name: Cleanup workspace + working-directory: ${{github.workspace}} + run: rm -fr ${{ env.BUNDLE }} || true build2: name: gnu 9.4.0 (JCSDA) @@ -84,14 +90,14 @@ jobs: runs-on: ubuntu-latest steps: - - name: checkout current + - name: Checkout current uses: actions/checkout@v4 with: path: ./${{ env.BUNDLE }}/${{ env.REPO }} - name: initiate bundle run: cp ./${{ env.BUNDLE }}/${{ env.REPO }}/ci/* ./${{ env.BUNDLE }}/ - - name: checkout jedicmake + - name: Checkout jedicmake uses: actions/checkout@v4 with: path: ./${{ env.BUNDLE }}/jedicmake @@ -99,33 +105,33 @@ jobs: submodules: true token: ${{ secrets.GH_PAT }} - - name: checkout oops + - name: Checkout oops uses: actions/checkout@v4 with: path: ./${{ env.BUNDLE }}/oops repository: JCSDA-internal/oops token: ${{ secrets.GH_PAT }} - - name: matching branch checkout attempt oops ${{ github.head_ref }} + - name: Checkout attempt for oops@${{ github.head_ref }} if: github.event_name == 'pull_request' run: ./${{ env.BUNDLE }}/get-ref-branch ./${{ env.BUNDLE }}/oops - - name: checkout ioda + - name: Checkout ioda uses: actions/checkout@v4 with: path: ./${{ env.BUNDLE }}/ioda repository: JCSDA-internal/ioda token: ${{ secrets.GH_PAT }} - - name: matching branch checkout attempt ioda ${{ github.head_ref }} + - name: Checkout attempt for ioda@${{ github.head_ref }} if: github.event_name == 'pull_request' run: ./${{ env.BUNDLE }}/get-ref-branch ./${{ env.BUNDLE }}/ioda - - name: checkout ufo + - name: Checkout ufo uses: actions/checkout@v4 with: path: ./${{ env.BUNDLE }}/ufo repository: JCSDA-internal/ufo token: ${{ secrets.GH_PAT }} - - name: matching branch checkout attempt ufo ${{ github.head_ref }} + - name: Checkout attempt for ufo@${{ github.head_ref }} if: github.event_name == 'pull_request' run: ./${{ env.BUNDLE }}/get-ref-branch ./${{ env.BUNDLE }}/ufo @@ -143,14 +149,14 @@ jobs: runs-on: ubuntu-latest steps: - - name: checkout current + - name: Checkout current uses: actions/checkout@v4 with: path: ./${{ env.BUNDLE }}/${{ env.REPO }} - name: initiate bundle run: cp ./${{ env.BUNDLE }}/${{ env.REPO }}/ci/* ./${{ env.BUNDLE }}/ - - name: checkout jedicmake + - name: Checkout jedicmake uses: actions/checkout@v4 with: path: ./${{ env.BUNDLE }}/jedicmake @@ -158,37 +164,37 @@ jobs: submodules: true token: ${{ secrets.GH_PAT }} - - name: checkout oops + - name: Checkout oops uses: actions/checkout@v4 with: path: ./${{ env.BUNDLE }}/oops repository: JCSDA-internal/oops token: ${{ secrets.GH_PAT }} - - name: matching branch checkout attempt oops ${{ github.head_ref }} + - name: Checkout attempt for oops@${{ github.head_ref }} if: github.event_name == 'pull_request' run: ./${{ env.BUNDLE }}/get-ref-branch ./${{ env.BUNDLE }}/oops - - name: checkout ioda + - name: Checkout ioda uses: actions/checkout@v4 with: path: ./${{ env.BUNDLE }}/ioda repository: JCSDA-internal/ioda token: ${{ secrets.GH_PAT }} - - name: matching branch checkout attempt ioda ${{ github.head_ref }} + - name: Checkout attempt for ioda@${{ github.head_ref }} if: github.event_name == 'pull_request' run: ./${{ env.BUNDLE }}/get-ref-branch ./${{ env.BUNDLE }}/ioda - - name: checkout ufo + - name: Checkout ufo uses: actions/checkout@v4 with: path: ./${{ env.BUNDLE }}/ufo repository: JCSDA-internal/ufo token: ${{ secrets.GH_PAT }} - - name: matching branch checkout attempt ufo ${{ github.head_ref }} + - name: Checkout attempt for ufo@${{ github.head_ref }} if: github.event_name == 'pull_request' run: ./${{ env.BUNDLE }}/get-ref-branch ./${{ env.BUNDLE }}/ufo - - name: build and test + - name: Build and Test run: | docker run --rm \ --entrypoint=/usr/local/src/${REPO}/${BUNDLE}/build-and-test \ diff --git a/ci/CMakeLists.txt b/ci/CMakeLists.txt index f1f0decc..c5874cf5 100644 --- a/ci/CMakeLists.txt +++ b/ci/CMakeLists.txt @@ -7,6 +7,8 @@ project( opsinputs-ci VERSION 0.1 LANGUAGES C CXX Fortran ) set( ENABLE_MPI ON CACHE BOOL "Compile with MPI" ) set( ENABLE_OMP ON CACHE BOOL "Compile with OpenMP" ) +option(ENABLE_IODA_DATA "Obtain ioda test data from ioda-data repository (vs tarball)" ON) +option(ENABLE_UFO_DATA "Obtain ufo test data from ufo-data repository (vs tarball)" ON) add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/jedicmake") if(NOT DEFINED jedicmake_DIR) diff --git a/ci/build-and-test b/ci/build-and-test index 975c5c93..81b94676 100755 --- a/ci/build-and-test +++ b/ci/build-and-test @@ -2,6 +2,8 @@ # # (C) Crown Copyright 2023, the Met Office. All rights reserved. # +# shellcheck disable=SC2317 +# shellcheck source=/dev/null set -euo pipefail finally() { @@ -11,6 +13,10 @@ finally() { cd / rm -fr "${WORKD}" fi + if [[ -d ${BASE:-} ]]; then + cd / + rm -fr "$BASE" 2>/dev/null || true + fi } # -- HERE is /usr/local/src//pr-<#> (cf ../.github/workflow/ci.yml) diff --git a/deps/ops/CMakeLists.txt b/deps/ops/CMakeLists.txt index e61f51a1..1445b93b 100644 --- a/deps/ops/CMakeLists.txt +++ b/deps/ops/CMakeLists.txt @@ -28,8 +28,6 @@ set(OPS_SOURCE_FILES code/OpsMod_ModelColumnIO/OpsMod_ModelColumnIO.f90 code/OpsMod_ModelIO/OpsMod_ModelIO.f90 code/OpsMod_ModelObInfo/OpsMod_ModelObInfo.f90 - code/OpsMod_ODB/OpsMod_ODBKinds.f90 - code/OpsMod_ODB/OpsMod_ODBTypes.f90 code/OpsMod_ObTypeUtils/OpsMod_ObTypeUtils.f90 code/OpsMod_ObsInfo/OpsMod_MiscTypes.f90 code/OpsMod_ObsInfo/OpsMod_ObsInfo.f90 @@ -41,7 +39,6 @@ set(OPS_SOURCE_FILES code/OpsMod_UMImport/ops_portio2a.c code/OpsMod_UMImport/ops_portutils.c code/OpsMod_Utilities/OpsMod_Utilities.f90 - code/OpsMod_Varobs/OpsMod_Varobs.f90 code/OpsMod_VarobsLib/OpsMod_VarobsLib.f90 code/OpsProg_Utils/OpsMod_UtilsProgs.f90 public/GenMod_Control/GenMod_Control.F90 @@ -66,27 +63,30 @@ set(OPS_SOURCE_FILES public/OpsMod_Sort/OpsMod_Sort.f90 public/OpsMod_UMInterface/OpsMod_UMInterface.f90 public/OpsMod_VerticalInterp/OpsMod_VerticalInterp.f90 - public/Ops_Constants/GenMod_CLookAdd.f90 - public/Ops_Constants/GenMod_Constants.f90 - public/Ops_Constants/GenMod_MiscUMScienceConstants.f90 - public/Ops_Constants/GenMod_UMHeaderConstants.f90 - public/Ops_Constants/OpsMod_Ancil.f90 - public/Ops_Constants/OpsMod_CXIndexes.f90 - public/Ops_Constants/OpsMod_Constants.f90 - public/Ops_Constants/OpsMod_Kinds.F90 - public/Ops_Constants/OpsMod_ObsGroupInfo.f90 - public/Ops_Constants/OpsMod_ObsTypes.f90 - public/Ops_Constants/OpsMod_SatIds.f90 - public/Ops_Constants/OpsMod_Stash.f90 - public/Ops_Constants/OpsMod_Varfields.f90 + stubs/Ops_Constants/GenMod_CLookAdd.f90 + stubs/Ops_Constants/GenMod_Constants.f90 + stubs/Ops_Constants/GenMod_MiscUMScienceConstants.f90 + stubs/Ops_Constants/GenMod_UMHeaderConstants.f90 + stubs/Ops_Constants/OpsMod_Ancil.f90 + stubs/Ops_Constants/OpsMod_CXIndexes.f90 + stubs/Ops_Constants/OpsMod_Constants.f90 + stubs/Ops_Constants/OpsMod_Kinds.F90 + stubs/Ops_Constants/OpsMod_ObsGroupInfo.f90 + stubs/Ops_Constants/OpsMod_ObsTypes.f90 + stubs/Ops_Constants/OpsMod_SatIds.f90 + stubs/Ops_Constants/OpsMod_Stash.f90 + stubs/Ops_Constants/OpsMod_Varfields.f90 stubs/OpsMod_AODGeneral/OpsMod_AODGeneral.f90 stubs/OpsMod_GPSRO/OpsMod_GPSRO.f90 stubs/OpsMod_GPSRO/OpsMod_GPSROInfo.f90 stubs/OpsMod_GPSRO/OpsMod_GPSROInfo_BA.f90 stubs/OpsMod_GroundGPS/OpsMod_GroundGPS.f90 + stubs/OpsMod_ODB/OpsMod_ODBKinds.f90 + stubs/OpsMod_ODB/OpsMod_ODBTypes.f90 stubs/OpsMod_Radar/OpsMod_Radar.f90 stubs/OpsMod_RadarZ/OpsMod_RadarZ.f90 stubs/OpsMod_Sonde/OpsMod_SondeDrift.f90 + stubs/OpsMod_Varobs/OpsMod_Varobs.f90 stubs/Ops_SatRad_Info/OpsMod_SatRad_RTmodel.f90 stubs/Ops_SatRad_SetUp/OpsMod_SatRad_SetUp.f90 ) diff --git a/deps/ops/code/OpsMod_CXGenerate/OpsMod_CXGenerate.f90 b/deps/ops/stubs/OpsMod_CXGenerate/OpsMod_CXGenerate.f90 similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/OpsMod_CXGenerate.f90 rename to deps/ops/stubs/OpsMod_CXGenerate/OpsMod_CXGenerate.f90 diff --git a/deps/ops/code/OpsMod_CXGenerate/OpsMod_FieldDataShared.f90 b/deps/ops/stubs/OpsMod_CXGenerate/OpsMod_FieldDataShared.f90 similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/OpsMod_FieldDataShared.f90 rename to deps/ops/stubs/OpsMod_CXGenerate/OpsMod_FieldDataShared.f90 diff --git a/deps/ops/code/OpsMod_CXGenerate/OpsMod_FieldRead.f90 b/deps/ops/stubs/OpsMod_CXGenerate/OpsMod_FieldRead.f90 similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/OpsMod_FieldRead.f90 rename to deps/ops/stubs/OpsMod_CXGenerate/OpsMod_FieldRead.f90 diff --git a/deps/ops/code/OpsMod_CXGenerate/OpsMod_SharedMemory.f90 b/deps/ops/stubs/OpsMod_CXGenerate/OpsMod_SharedMemory.f90 similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/OpsMod_SharedMemory.f90 rename to deps/ops/stubs/OpsMod_CXGenerate/OpsMod_SharedMemory.f90 diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_BGEAndCxCreateFromNetCDF.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_BGEAndCxCreateFromNetCDF.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_BGEAndCxCreateFromNetCDF.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_BGEAndCxCreateFromNetCDF.inc diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_BGEComplete.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_BGEComplete.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_BGEComplete.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_BGEComplete.inc diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_BGEandCxCreate.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_BGEandCxCreate.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_BGEandCxCreate.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_BGEandCxCreate.inc diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_CXAddField.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_CXAddField.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_CXAddField.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_CXAddField.inc diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_CXGenerate.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_CXGenerate.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_CXGenerate.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_CXGenerate.inc diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_CXPerformInterp.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_CXPerformInterp.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_CXPerformInterp.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_CXPerformInterp.inc diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_CXPreproLocations.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_CXPreproLocations.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_CXPreproLocations.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_CXPreproLocations.inc diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_CXSetup.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_CXSetup.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_CXSetup.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_CXSetup.inc diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_CXSetupArrays.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_CXSetupArrays.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_CXSetupArrays.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_CXSetupArrays.inc diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_CXSetupArraysAncil.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_CXSetupArraysAncil.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_CXSetupArraysAncil.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_CXSetupArraysAncil.inc diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_CXSlantPressure.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_CXSlantPressure.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_CXSlantPressure.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_CXSlantPressure.inc diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_CalcTLapse.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_CalcTLapse.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_CalcTLapse.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_CalcTLapse.inc diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_CreateCxUMHdr.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_CreateCxUMHdr.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_CreateCxUMHdr.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_CreateCxUMHdr.inc diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_CxComplete.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_CxComplete.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_CxComplete.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_CxComplete.inc diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_DeriveField.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_DeriveField.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_DeriveField.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_DeriveField.inc diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_FinalFieldDataShared.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_FinalFieldDataShared.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_FinalFieldDataShared.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_FinalFieldDataShared.inc diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_GetDefaultBgerrFields.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_GetDefaultBgerrFields.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_GetDefaultBgerrFields.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_GetDefaultBgerrFields.inc diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_GetDefaultCxFields.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_GetDefaultCxFields.inc similarity index 99% rename from deps/ops/code/OpsMod_CXGenerate/Ops_GetDefaultCxFields.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_GetDefaultCxFields.inc index efc14786..a9177775 100644 --- a/deps/ops/code/OpsMod_CXGenerate/Ops_GetDefaultCxFields.inc +++ b/deps/ops/stubs/OpsMod_CXGenerate/Ops_GetDefaultCxFields.inc @@ -235,7 +235,7 @@ SELECT CASE (ObsGroup) CASE (ObsGroupSBUV) CxFields(1:7) = (/StashItem_ozone_old,StashItem_p,StashCode_t2, & StashCode_rh2,StashCode_t_p,StashCode_rh_p,StashCode_pmsl/) - CASE (ObsGroupScatwind) + CASE (ObsGroupScatwind, ObsGroupScatwindChosen) CxFields(1:12) = (/StashItem_u,StashItem_v,StashItem_theta, StashItem_SST, & StashItem_SeaIce,StashItem_orog,StashItem_p, & StashItem_p_Surface,StashCode_u10,StashCode_v10, & diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_GetReqDims.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_GetReqDims.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_GetReqDims.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_GetReqDims.inc diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_GetUMFieldAvailable.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_GetUMFieldAvailable.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_GetUMFieldAvailable.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_GetUMFieldAvailable.inc diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_GetUMFieldDims.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_GetUMFieldDims.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_GetUMFieldDims.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_GetUMFieldDims.inc diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_InitFieldDataShared.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_InitFieldDataShared.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_InitFieldDataShared.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_InitFieldDataShared.inc diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_LocateUMField.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_LocateUMField.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_LocateUMField.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_LocateUMField.inc diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_ReadCXControlNL.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_ReadCXControlNL.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_ReadCXControlNL.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_ReadCXControlNL.inc diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_ReadFieldsControlNL.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_ReadFieldsControlNL.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_ReadFieldsControlNL.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_ReadFieldsControlNL.inc diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_ReadModelShared.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_ReadModelShared.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_ReadModelShared.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_ReadModelShared.inc diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_ReadUMField.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_ReadUMField.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_ReadUMField.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_ReadUMField.inc diff --git a/deps/ops/code/OpsMod_CXGenerate/Ops_UncompressDump.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_UncompressDump.inc similarity index 100% rename from deps/ops/code/OpsMod_CXGenerate/Ops_UncompressDump.inc rename to deps/ops/stubs/OpsMod_CXGenerate/Ops_UncompressDump.inc diff --git a/deps/ops/code/OpsMod_ODB/OpsFn_ConvertToODBDate_real.inc b/deps/ops/stubs/OpsMod_ODB/OpsFn_ConvertToODBDate_real.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/OpsFn_ConvertToODBDate_real.inc rename to deps/ops/stubs/OpsMod_ODB/OpsFn_ConvertToODBDate_real.inc diff --git a/deps/ops/code/OpsMod_ODB/OpsFn_ConvertToODBTime_real.inc b/deps/ops/stubs/OpsMod_ODB/OpsFn_ConvertToODBTime_real.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/OpsFn_ConvertToODBTime_real.inc rename to deps/ops/stubs/OpsMod_ODB/OpsFn_ConvertToODBTime_real.inc diff --git a/deps/ops/code/OpsMod_ODB/OpsFn_IsTable.inc b/deps/ops/stubs/OpsMod_ODB/OpsFn_IsTable.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/OpsFn_IsTable.inc rename to deps/ops/stubs/OpsMod_ODB/OpsFn_IsTable.inc diff --git a/deps/ops/code/OpsMod_ODB/OpsFn_ODBExists.inc b/deps/ops/stubs/OpsMod_ODB/OpsFn_ODBExists.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/OpsFn_ODBExists.inc rename to deps/ops/stubs/OpsMod_ODB/OpsFn_ODBExists.inc diff --git a/deps/ops/code/OpsMod_ODB/OpsFn_ObsToReportType.inc b/deps/ops/stubs/OpsMod_ODB/OpsFn_ObsToReportType.inc similarity index 99% rename from deps/ops/code/OpsMod_ODB/OpsFn_ObsToReportType.inc rename to deps/ops/stubs/OpsMod_ODB/OpsFn_ObsToReportType.inc index e86e02b0..469bf17f 100644 --- a/deps/ops/code/OpsMod_ODB/OpsFn_ObsToReportType.inc +++ b/deps/ops/stubs/OpsMod_ODB/OpsFn_ObsToReportType.inc @@ -931,7 +931,7 @@ SELECT CASE (Obs % Header % ObsGroup) END IF END DO END IF - CASE (ObsGroupScatwind) + CASE (ObsGroupScatwind, ObsGroupScatwindChosen) IF (Obs % Header % Satid % Present) THEN DO i = ob_start, ob_end IF (Obs % Satid(i) == SatId_MetopB) THEN @@ -963,7 +963,8 @@ SELECT CASE (Obs % Header % ObsGroup) ELSE found_report_type = .FALSE. DO j = 1, SIZE (map, DIM = 1) - IF (map(j,1) == ObsGroupScatwind .AND. map(j,2) == Obs % Satid(i)) THEN + IF ((map(j,1) == ObsGroupScatwind .AND. map(j,2) == Obs % Satid(i)) .OR. & + (map(j,1) == ObsGroupScatwindChosen .AND. map(j,2) == Obs % Satid(i))) THEN report_types(i - ob_start + 1) = map(j,3) found_report_type = .TRUE. EXIT diff --git a/deps/ops/code/OpsMod_ODB/OpsFn_RunidToNum.inc b/deps/ops/stubs/OpsMod_ODB/OpsFn_RunidToNum.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/OpsFn_RunidToNum.inc rename to deps/ops/stubs/OpsMod_ODB/OpsFn_RunidToNum.inc diff --git a/deps/ops/code/OpsMod_ODB/OpsMod_ODBFlags.f90 b/deps/ops/stubs/OpsMod_ODB/OpsMod_ODBFlags.f90 similarity index 100% rename from deps/ops/code/OpsMod_ODB/OpsMod_ODBFlags.f90 rename to deps/ops/stubs/OpsMod_ODB/OpsMod_ODBFlags.f90 diff --git a/deps/ops/code/OpsMod_ODB/OpsMod_ODBInfo.f90 b/deps/ops/stubs/OpsMod_ODB/OpsMod_ODBInfo.f90 similarity index 100% rename from deps/ops/code/OpsMod_ODB/OpsMod_ODBInfo.f90 rename to deps/ops/stubs/OpsMod_ODB/OpsMod_ODBInfo.f90 diff --git a/deps/ops/code/OpsMod_ODB/OpsMod_ODBKinds.f90 b/deps/ops/stubs/OpsMod_ODB/OpsMod_ODBKinds.f90 similarity index 100% rename from deps/ops/code/OpsMod_ODB/OpsMod_ODBKinds.f90 rename to deps/ops/stubs/OpsMod_ODB/OpsMod_ODBKinds.f90 diff --git a/deps/ops/code/OpsMod_ODB/OpsMod_ODBOPSInterface.f90 b/deps/ops/stubs/OpsMod_ODB/OpsMod_ODBOPSInterface.f90 similarity index 100% rename from deps/ops/code/OpsMod_ODB/OpsMod_ODBOPSInterface.f90 rename to deps/ops/stubs/OpsMod_ODB/OpsMod_ODBOPSInterface.f90 diff --git a/deps/ops/code/OpsMod_ODB/OpsMod_ODBReportTypeMap.f90 b/deps/ops/stubs/OpsMod_ODB/OpsMod_ODBReportTypeMap.f90 similarity index 100% rename from deps/ops/code/OpsMod_ODB/OpsMod_ODBReportTypeMap.f90 rename to deps/ops/stubs/OpsMod_ODB/OpsMod_ODBReportTypeMap.f90 diff --git a/deps/ops/code/OpsMod_ODB/OpsMod_ODBTableInfo.f90 b/deps/ops/stubs/OpsMod_ODB/OpsMod_ODBTableInfo.f90 similarity index 100% rename from deps/ops/code/OpsMod_ODB/OpsMod_ODBTableInfo.f90 rename to deps/ops/stubs/OpsMod_ODB/OpsMod_ODBTableInfo.f90 diff --git a/deps/ops/code/OpsMod_ODB/OpsMod_ODBTypes.f90 b/deps/ops/stubs/OpsMod_ODB/OpsMod_ODBTypes.f90 similarity index 100% rename from deps/ops/code/OpsMod_ODB/OpsMod_ODBTypes.f90 rename to deps/ops/stubs/OpsMod_ODB/OpsMod_ODBTypes.f90 diff --git a/deps/ops/code/OpsMod_ODB/OpsMod_ODBUtils.F90 b/deps/ops/stubs/OpsMod_ODB/OpsMod_ODBUtils.F90 similarity index 100% rename from deps/ops/code/OpsMod_ODB/OpsMod_ODBUtils.F90 rename to deps/ops/stubs/OpsMod_ODB/OpsMod_ODBUtils.F90 diff --git a/deps/ops/code/OpsMod_ODB/OpsODB_InitODBElemDesp.inc b/deps/ops/stubs/OpsMod_ODB/OpsODB_InitODBElemDesp.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/OpsODB_InitODBElemDesp.inc rename to deps/ops/stubs/OpsMod_ODB/OpsODB_InitODBElemDesp.inc diff --git a/deps/ops/code/OpsMod_ODB/OpsODB_InitODBElemDesp_Body.inc b/deps/ops/stubs/OpsMod_ODB/OpsODB_InitODBElemDesp_Body.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/OpsODB_InitODBElemDesp_Body.inc rename to deps/ops/stubs/OpsMod_ODB/OpsODB_InitODBElemDesp_Body.inc diff --git a/deps/ops/code/OpsMod_ODB/OpsProg_CreateODB.f90 b/deps/ops/stubs/OpsMod_ODB/OpsProg_CreateODB.f90 similarity index 100% rename from deps/ops/code/OpsMod_ODB/OpsProg_CreateODB.f90 rename to deps/ops/stubs/OpsMod_ODB/OpsProg_CreateODB.f90 diff --git a/deps/ops/code/OpsMod_ODB/OpsProg_MergeODB.f90 b/deps/ops/stubs/OpsMod_ODB/OpsProg_MergeODB.f90 similarity index 100% rename from deps/ops/code/OpsMod_ODB/OpsProg_MergeODB.f90 rename to deps/ops/stubs/OpsMod_ODB/OpsProg_MergeODB.f90 diff --git a/deps/ops/code/OpsMod_ODB/OpsProg_SimulObs.f90 b/deps/ops/stubs/OpsMod_ODB/OpsProg_SimulObs.f90 similarity index 100% rename from deps/ops/code/OpsMod_ODB/OpsProg_SimulObs.f90 rename to deps/ops/stubs/OpsMod_ODB/OpsProg_SimulObs.f90 diff --git a/deps/ops/code/OpsMod_ODB/Ops_AndODBBits_scalar_to_array.inc b/deps/ops/stubs/OpsMod_ODB/Ops_AndODBBits_scalar_to_array.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/Ops_AndODBBits_scalar_to_array.inc rename to deps/ops/stubs/OpsMod_ODB/Ops_AndODBBits_scalar_to_array.inc diff --git a/deps/ops/code/OpsMod_ODB/Ops_CloseODB.inc b/deps/ops/stubs/OpsMod_ODB/Ops_CloseODB.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/Ops_CloseODB.inc rename to deps/ops/stubs/OpsMod_ODB/Ops_CloseODB.inc diff --git a/deps/ops/code/OpsMod_ODB/Ops_LockODB.inc b/deps/ops/stubs/OpsMod_ODB/Ops_LockODB.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/Ops_LockODB.inc rename to deps/ops/stubs/OpsMod_ODB/Ops_LockODB.inc diff --git a/deps/ops/code/OpsMod_ODB/Ops_OpenODB.inc b/deps/ops/stubs/OpsMod_ODB/Ops_OpenODB.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/Ops_OpenODB.inc rename to deps/ops/stubs/OpsMod_ODB/Ops_OpenODB.inc diff --git a/deps/ops/code/OpsMod_ODB/Ops_OrODBBits_array.inc b/deps/ops/stubs/OpsMod_ODB/Ops_OrODBBits_array.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/Ops_OrODBBits_array.inc rename to deps/ops/stubs/OpsMod_ODB/Ops_OrODBBits_array.inc diff --git a/deps/ops/code/OpsMod_ODB/Ops_OrODBBits_scalar_to_array.inc b/deps/ops/stubs/OpsMod_ODB/Ops_OrODBBits_scalar_to_array.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/Ops_OrODBBits_scalar_to_array.inc rename to deps/ops/stubs/OpsMod_ODB/Ops_OrODBBits_scalar_to_array.inc diff --git a/deps/ops/code/OpsMod_ODB/Ops_ReadODBControlNL.inc b/deps/ops/stubs/OpsMod_ODB/Ops_ReadODBControlNL.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/Ops_ReadODBControlNL.inc rename to deps/ops/stubs/OpsMod_ODB/Ops_ReadODBControlNL.inc diff --git a/deps/ops/code/OpsMod_ODB/Ops_ReadODBMergeNL.inc b/deps/ops/stubs/OpsMod_ODB/Ops_ReadODBMergeNL.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/Ops_ReadODBMergeNL.inc rename to deps/ops/stubs/OpsMod_ODB/Ops_ReadODBMergeNL.inc diff --git a/deps/ops/code/OpsMod_ODB/Ops_ReadODBReportTypeMap.inc b/deps/ops/stubs/OpsMod_ODB/Ops_ReadODBReportTypeMap.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/Ops_ReadODBReportTypeMap.inc rename to deps/ops/stubs/OpsMod_ODB/Ops_ReadODBReportTypeMap.inc diff --git a/deps/ops/code/OpsMod_ODB/Ops_RunODBQuery.inc b/deps/ops/stubs/OpsMod_ODB/Ops_RunODBQuery.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/Ops_RunODBQuery.inc rename to deps/ops/stubs/OpsMod_ODB/Ops_RunODBQuery.inc diff --git a/deps/ops/code/OpsMod_ODB/Ops_SetODBBit_scalar.inc b/deps/ops/stubs/OpsMod_ODB/Ops_SetODBBit_scalar.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/Ops_SetODBBit_scalar.inc rename to deps/ops/stubs/OpsMod_ODB/Ops_SetODBBit_scalar.inc diff --git a/deps/ops/code/OpsMod_ODB/Ops_SetODBBit_scalar_to_array.inc b/deps/ops/stubs/OpsMod_ODB/Ops_SetODBBit_scalar_to_array.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/Ops_SetODBBit_scalar_to_array.inc rename to deps/ops/stubs/OpsMod_ODB/Ops_SetODBBit_scalar_to_array.inc diff --git a/deps/ops/code/OpsMod_ODB/Ops_SetODBVal_array_char.inc b/deps/ops/stubs/OpsMod_ODB/Ops_SetODBVal_array_char.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/Ops_SetODBVal_array_char.inc rename to deps/ops/stubs/OpsMod_ODB/Ops_SetODBVal_array_char.inc diff --git a/deps/ops/code/OpsMod_ODB/Ops_SetODBVal_array_integer.inc b/deps/ops/stubs/OpsMod_ODB/Ops_SetODBVal_array_integer.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/Ops_SetODBVal_array_integer.inc rename to deps/ops/stubs/OpsMod_ODB/Ops_SetODBVal_array_integer.inc diff --git a/deps/ops/code/OpsMod_ODB/Ops_SetODBVal_array_real32.inc b/deps/ops/stubs/OpsMod_ODB/Ops_SetODBVal_array_real32.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/Ops_SetODBVal_array_real32.inc rename to deps/ops/stubs/OpsMod_ODB/Ops_SetODBVal_array_real32.inc diff --git a/deps/ops/code/OpsMod_ODB/Ops_SetODBVal_array_real64.inc b/deps/ops/stubs/OpsMod_ODB/Ops_SetODBVal_array_real64.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/Ops_SetODBVal_array_real64.inc rename to deps/ops/stubs/OpsMod_ODB/Ops_SetODBVal_array_real64.inc diff --git a/deps/ops/code/OpsMod_ODB/Ops_SetODBVal_s_to_a_char.inc b/deps/ops/stubs/OpsMod_ODB/Ops_SetODBVal_s_to_a_char.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/Ops_SetODBVal_s_to_a_char.inc rename to deps/ops/stubs/OpsMod_ODB/Ops_SetODBVal_s_to_a_char.inc diff --git a/deps/ops/code/OpsMod_ODB/Ops_SetODBVal_s_to_a_integer.inc b/deps/ops/stubs/OpsMod_ODB/Ops_SetODBVal_s_to_a_integer.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/Ops_SetODBVal_s_to_a_integer.inc rename to deps/ops/stubs/OpsMod_ODB/Ops_SetODBVal_s_to_a_integer.inc diff --git a/deps/ops/code/OpsMod_ODB/Ops_SetODBVal_s_to_a_real.inc b/deps/ops/stubs/OpsMod_ODB/Ops_SetODBVal_s_to_a_real.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/Ops_SetODBVal_s_to_a_real.inc rename to deps/ops/stubs/OpsMod_ODB/Ops_SetODBVal_s_to_a_real.inc diff --git a/deps/ops/code/OpsMod_ODB/Ops_SetODBVal_scalar_char.inc b/deps/ops/stubs/OpsMod_ODB/Ops_SetODBVal_scalar_char.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/Ops_SetODBVal_scalar_char.inc rename to deps/ops/stubs/OpsMod_ODB/Ops_SetODBVal_scalar_char.inc diff --git a/deps/ops/code/OpsMod_ODB/Ops_SetODBVal_scalar_integer.inc b/deps/ops/stubs/OpsMod_ODB/Ops_SetODBVal_scalar_integer.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/Ops_SetODBVal_scalar_integer.inc rename to deps/ops/stubs/OpsMod_ODB/Ops_SetODBVal_scalar_integer.inc diff --git a/deps/ops/code/OpsMod_ODB/Ops_SetODBVal_scalar_real.inc b/deps/ops/stubs/OpsMod_ODB/Ops_SetODBVal_scalar_real.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/Ops_SetODBVal_scalar_real.inc rename to deps/ops/stubs/OpsMod_ODB/Ops_SetODBVal_scalar_real.inc diff --git a/deps/ops/code/OpsMod_ODB/Ops_SetupODBReportTypes.inc b/deps/ops/stubs/OpsMod_ODB/Ops_SetupODBReportTypes.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/Ops_SetupODBReportTypes.inc rename to deps/ops/stubs/OpsMod_ODB/Ops_SetupODBReportTypes.inc diff --git a/deps/ops/code/OpsMod_ODB/Ops_SetupODBVertcoTypes.inc b/deps/ops/stubs/OpsMod_ODB/Ops_SetupODBVertcoTypes.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/Ops_SetupODBVertcoTypes.inc rename to deps/ops/stubs/OpsMod_ODB/Ops_SetupODBVertcoTypes.inc diff --git a/deps/ops/code/OpsMod_ODB/Ops_UnlockODB.inc b/deps/ops/stubs/OpsMod_ODB/Ops_UnlockODB.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/Ops_UnlockODB.inc rename to deps/ops/stubs/OpsMod_ODB/Ops_UnlockODB.inc diff --git a/deps/ops/code/OpsMod_ODB/Ops_WriteODBTable.inc b/deps/ops/stubs/OpsMod_ODB/Ops_WriteODBTable.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/Ops_WriteODBTable.inc rename to deps/ops/stubs/OpsMod_ODB/Ops_WriteODBTable.inc diff --git a/deps/ops/code/OpsMod_ODB/wrappers/ops_odb_addpools.inc b/deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_addpools.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/wrappers/ops_odb_addpools.inc rename to deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_addpools.inc diff --git a/deps/ops/code/OpsMod_ODB/wrappers/ops_odb_cancel.inc b/deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_cancel.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/wrappers/ops_odb_cancel.inc rename to deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_cancel.inc diff --git a/deps/ops/code/OpsMod_ODB/wrappers/ops_odb_close.inc b/deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_close.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/wrappers/ops_odb_close.inc rename to deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_close.inc diff --git a/deps/ops/code/OpsMod_ODB/wrappers/ops_odb_get.inc b/deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_get.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/wrappers/ops_odb_get.inc rename to deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_get.inc diff --git a/deps/ops/code/OpsMod_ODB/wrappers/ops_odb_get_column_names.inc b/deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_get_column_names.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/wrappers/ops_odb_get_column_names.inc rename to deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_get_column_names.inc diff --git a/deps/ops/code/OpsMod_ODB/wrappers/ops_odb_get_column_types.inc b/deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_get_column_types.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/wrappers/ops_odb_get_column_types.inc rename to deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_get_column_types.inc diff --git a/deps/ops/code/OpsMod_ODB/wrappers/ops_odb_get_num_columns.inc b/deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_get_num_columns.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/wrappers/ops_odb_get_num_columns.inc rename to deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_get_num_columns.inc diff --git a/deps/ops/code/OpsMod_ODB/wrappers/ops_odb_get_num_tables.inc b/deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_get_num_tables.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/wrappers/ops_odb_get_num_tables.inc rename to deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_get_num_tables.inc diff --git a/deps/ops/code/OpsMod_ODB/wrappers/ops_odb_get_query_size.inc b/deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_get_query_size.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/wrappers/ops_odb_get_query_size.inc rename to deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_get_query_size.inc diff --git a/deps/ops/code/OpsMod_ODB/wrappers/ops_odb_get_table_names.inc b/deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_get_table_names.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/wrappers/ops_odb_get_table_names.inc rename to deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_get_table_names.inc diff --git a/deps/ops/code/OpsMod_ODB/wrappers/ops_odb_getsize.inc b/deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_getsize.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/wrappers/ops_odb_getsize.inc rename to deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_getsize.inc diff --git a/deps/ops/code/OpsMod_ODB/wrappers/ops_odb_getval.inc b/deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_getval.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/wrappers/ops_odb_getval.inc rename to deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_getval.inc diff --git a/deps/ops/code/OpsMod_ODB/wrappers/ops_odb_getval_hardwired.inc b/deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_getval_hardwired.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/wrappers/ops_odb_getval_hardwired.inc rename to deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_getval_hardwired.inc diff --git a/deps/ops/code/OpsMod_ODB/wrappers/ops_odb_init.inc b/deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_init.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/wrappers/ops_odb_init.inc rename to deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_init.inc diff --git a/deps/ops/code/OpsMod_ODB/wrappers/ops_odb_is_column_available.inc b/deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_is_column_available.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/wrappers/ops_odb_is_column_available.inc rename to deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_is_column_available.inc diff --git a/deps/ops/code/OpsMod_ODB/wrappers/ops_odb_is_query_valid.inc b/deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_is_query_valid.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/wrappers/ops_odb_is_query_valid.inc rename to deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_is_query_valid.inc diff --git a/deps/ops/code/OpsMod_ODB/wrappers/ops_odb_open.inc b/deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_open.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/wrappers/ops_odb_open.inc rename to deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_open.inc diff --git a/deps/ops/code/OpsMod_ODB/wrappers/ops_odb_put.inc b/deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_put.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/wrappers/ops_odb_put.inc rename to deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_put.inc diff --git a/deps/ops/code/OpsMod_ODB/wrappers/ops_odb_register_vector.inc b/deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_register_vector.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/wrappers/ops_odb_register_vector.inc rename to deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_register_vector.inc diff --git a/deps/ops/code/OpsMod_ODB/wrappers/ops_odb_varindex_scalar.inc b/deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_varindex_scalar.inc similarity index 100% rename from deps/ops/code/OpsMod_ODB/wrappers/ops_odb_varindex_scalar.inc rename to deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_varindex_scalar.inc diff --git a/deps/ops/code/OpsMod_ODB/wrappers/ops_odb_wrappers.F90 b/deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_wrappers.F90 similarity index 100% rename from deps/ops/code/OpsMod_ODB/wrappers/ops_odb_wrappers.F90 rename to deps/ops/stubs/OpsMod_ODB/wrappers/ops_odb_wrappers.F90 diff --git a/deps/ops/code/OpsMod_Varobs/OpsFn_VarFieldNumToName.inc b/deps/ops/stubs/OpsMod_Varobs/OpsFn_VarFieldNumToName.inc similarity index 100% rename from deps/ops/code/OpsMod_Varobs/OpsFn_VarFieldNumToName.inc rename to deps/ops/stubs/OpsMod_Varobs/OpsFn_VarFieldNumToName.inc diff --git a/deps/ops/code/OpsMod_Varobs/OpsMod_Varobs.f90 b/deps/ops/stubs/OpsMod_Varobs/OpsMod_Varobs.f90 similarity index 100% rename from deps/ops/code/OpsMod_Varobs/OpsMod_Varobs.f90 rename to deps/ops/stubs/OpsMod_Varobs/OpsMod_Varobs.f90 diff --git a/deps/ops/code/OpsMod_Varobs/Ops_CheckVarFields.inc b/deps/ops/stubs/OpsMod_Varobs/Ops_CheckVarFields.inc similarity index 97% rename from deps/ops/code/OpsMod_Varobs/Ops_CheckVarFields.inc rename to deps/ops/stubs/OpsMod_Varobs/Ops_CheckVarFields.inc index ac58e65b..16ba7f25 100644 --- a/deps/ops/code/OpsMod_Varobs/Ops_CheckVarFields.inc +++ b/deps/ops/stubs/OpsMod_Varobs/Ops_CheckVarFields.inc @@ -38,7 +38,8 @@ USE OpsMod_MiscTypes, ONLY: & USE OpsMod_ObsGroupInfo, ONLY: & ObsGroupSurface, & - ObsGroupScatwind + ObsGroupScatwind, & + ObsGroupScatwindChosen USE OpsMod_ObsInfo, ONLY: & OB_type @@ -113,14 +114,16 @@ DO Ivar = 1, ActualMaxVarfield END IF CASE (VarField_u) IF (Ob % header % ObsGroup == ObsGroupSurface .OR. & - Ob % header % ObsGroup == ObsGroupScatwind) THEN + Ob % header % ObsGroup == ObsGroupScatwind .OR. & + Ob % header % ObsGroup == ObsGroupScatwindChosen) THEN ObHdrVrbl = Ob % header % u10 ELSE ObHdrVrbl = Ob % header % u END IF CASE (VarField_v) IF (Ob % header % ObsGroup == ObsGroupSurface .OR. & - Ob % header % ObsGroup == ObsGroupScatwind) THEN + Ob % header % ObsGroup == ObsGroupScatwind .OR. & + Ob % header % ObsGroup == ObsGroupScatwindChosen) THEN ObHdrVrbl = Ob % header % v10 ELSE ObHdrVrbl = Ob % header % v diff --git a/deps/ops/code/OpsMod_Varobs/Ops_CreateVarobs.inc b/deps/ops/stubs/OpsMod_Varobs/Ops_CreateVarobs.inc similarity index 100% rename from deps/ops/code/OpsMod_Varobs/Ops_CreateVarobs.inc rename to deps/ops/stubs/OpsMod_Varobs/Ops_CreateVarobs.inc diff --git a/deps/ops/code/OpsMod_Varobs/Ops_GetDefaultVarfields.inc b/deps/ops/stubs/OpsMod_Varobs/Ops_GetDefaultVarfields.inc similarity index 99% rename from deps/ops/code/OpsMod_Varobs/Ops_GetDefaultVarfields.inc rename to deps/ops/stubs/OpsMod_Varobs/Ops_GetDefaultVarfields.inc index c13c9e5a..61eeacc7 100644 --- a/deps/ops/code/OpsMod_Varobs/Ops_GetDefaultVarfields.inc +++ b/deps/ops/stubs/OpsMod_Varobs/Ops_GetDefaultVarfields.inc @@ -240,6 +240,8 @@ SELECT CASE (ObsGroup) Varfields(1:1) = (/VarField_SBUVozone/) CASE (ObsGroupScatwind) Varfields(1:3) = (/Varfield_u10ambwind,varfield_v10ambwind,Varfield_pcorrect/) + CASE (ObsGroupScatwindChosen) + Varfields(1:2) = (/Varfield_u,varfield_v/) CASE (ObsGroupSEVIRIClr) Varfields(1:12) = (/Varfield_britemp,Varfield_satid,Varfield_satzenith, & Varfield_solzenith,Varfield_tskin,Varfield_tcozone, & diff --git a/deps/ops/code/OpsMod_Varobs/Ops_ModelObToOb.inc b/deps/ops/stubs/OpsMod_Varobs/Ops_ModelObToOb.inc similarity index 100% rename from deps/ops/code/OpsMod_Varobs/Ops_ModelObToOb.inc rename to deps/ops/stubs/OpsMod_Varobs/Ops_ModelObToOb.inc diff --git a/deps/ops/code/OpsMod_Varobs/Ops_ReadVarobsControlNL.inc b/deps/ops/stubs/OpsMod_Varobs/Ops_ReadVarobsControlNL.inc similarity index 100% rename from deps/ops/code/OpsMod_Varobs/Ops_ReadVarobsControlNL.inc rename to deps/ops/stubs/OpsMod_Varobs/Ops_ReadVarobsControlNL.inc diff --git a/deps/ops/code/OpsMod_Varobs/Ops_SetupVarArray.inc b/deps/ops/stubs/OpsMod_Varobs/Ops_SetupVarArray.inc similarity index 98% rename from deps/ops/code/OpsMod_Varobs/Ops_SetupVarArray.inc rename to deps/ops/stubs/OpsMod_Varobs/Ops_SetupVarArray.inc index b3aa3f33..9eb05428 100644 --- a/deps/ops/code/OpsMod_Varobs/Ops_SetupVarArray.inc +++ b/deps/ops/stubs/OpsMod_Varobs/Ops_SetupVarArray.inc @@ -56,6 +56,7 @@ USE OpsMod_ObsGroupInfo, ONLY: & ObsGroupGPSRO, & ObsGroupSatwind, & ObsGroupScatwind, & + ObsGroupScatwindChosen, & ObsGroupSurface USE OpsMod_ObsInfo, ONLY: & @@ -253,7 +254,8 @@ DO Ivar = 1, NumValidVarFields END IF CASE (VarField_u) IF (Ob % header % ObsGroup == ObsGroupSurface .OR. & - Ob % header % ObsGroup == ObsGroupScatwind) THEN + Ob % header % ObsGroup == ObsGroupScatwind .OR. & + Ob % header % ObsGroup == ObsGroupScatwindChosen) THEN ObHdrVrbl = Ob % header % u10 ObVrblSingle => Ob % u10(:) Pge_1D => Pge % u10 @@ -264,7 +266,8 @@ DO Ivar = 1, NumValidVarFields END IF CASE (VarField_v) IF (Ob % header % ObsGroup == ObsGroupSurface .OR. & - Ob % header % ObsGroup == ObsGroupScatwind) THEN + Ob % header % ObsGroup == ObsGroupScatwind .OR. & + Ob % header % ObsGroup == ObsGroupScatwindChosen) THEN ObHdrVrbl = Ob % header % v10 ObVrblSingle => Ob % v10(:) Pge_1D => Pge % u10 diff --git a/deps/ops/code/OpsMod_Varobs/Ops_SetupVarobsColDepC.inc b/deps/ops/stubs/OpsMod_Varobs/Ops_SetupVarobsColDepC.inc similarity index 100% rename from deps/ops/code/OpsMod_Varobs/Ops_SetupVarobsColDepC.inc rename to deps/ops/stubs/OpsMod_Varobs/Ops_SetupVarobsColDepC.inc diff --git a/deps/ops/code/OpsMod_Varobs/Ops_SetupVarobsFixhd.inc b/deps/ops/stubs/OpsMod_Varobs/Ops_SetupVarobsFixhd.inc similarity index 100% rename from deps/ops/code/OpsMod_Varobs/Ops_SetupVarobsFixhd.inc rename to deps/ops/stubs/OpsMod_Varobs/Ops_SetupVarobsFixhd.inc diff --git a/deps/ops/code/OpsMod_Varobs/Ops_SetupVarobsIntC.inc b/deps/ops/stubs/OpsMod_Varobs/Ops_SetupVarobsIntC.inc similarity index 100% rename from deps/ops/code/OpsMod_Varobs/Ops_SetupVarobsIntC.inc rename to deps/ops/stubs/OpsMod_Varobs/Ops_SetupVarobsIntC.inc diff --git a/deps/ops/code/OpsMod_Varobs/Ops_SetupVarobsLevDepC.inc b/deps/ops/stubs/OpsMod_Varobs/Ops_SetupVarobsLevDepC.inc similarity index 98% rename from deps/ops/code/OpsMod_Varobs/Ops_SetupVarobsLevDepC.inc rename to deps/ops/stubs/OpsMod_Varobs/Ops_SetupVarobsLevDepC.inc index 0bc58784..06189652 100644 --- a/deps/ops/code/OpsMod_Varobs/Ops_SetupVarobsLevDepC.inc +++ b/deps/ops/stubs/OpsMod_Varobs/Ops_SetupVarobsLevDepC.inc @@ -29,6 +29,7 @@ USE GenMod_MiscUMScienceConstants, ONLY: & USE OpsMod_ObsGroupInfo, ONLY: & ObsGroupSurface, & ObsGroupScatwind, & + ObsGroupScatwindChosen, & ObsGroupSatwind, & ObsGroupAircraft, & ObsGroupSonde, & @@ -115,7 +116,7 @@ SELECT CASE (Observations % header % ObsGroup) ObsLevelType = 0.0 NumLevelLevs = 1 - CASE (ObsGroupScatwind) + CASE (ObsGroupScatwind, ObsGroupScatwindChosen) ObsLevelType = 0.0 NumLevelLevs = 1 diff --git a/deps/ops/code/OpsMod_Varobs/Ops_SetupVarobsLookup.inc b/deps/ops/stubs/OpsMod_Varobs/Ops_SetupVarobsLookup.inc similarity index 100% rename from deps/ops/code/OpsMod_Varobs/Ops_SetupVarobsLookup.inc rename to deps/ops/stubs/OpsMod_Varobs/Ops_SetupVarobsLookup.inc diff --git a/deps/ops/code/OpsMod_Varobs/Ops_SetupVarobsRealC.inc b/deps/ops/stubs/OpsMod_Varobs/Ops_SetupVarobsRealC.inc similarity index 100% rename from deps/ops/code/OpsMod_Varobs/Ops_SetupVarobsRealC.inc rename to deps/ops/stubs/OpsMod_Varobs/Ops_SetupVarobsRealC.inc diff --git a/deps/ops/code/OpsMod_Varobs/Ops_VarobPGEs.inc b/deps/ops/stubs/OpsMod_Varobs/Ops_VarobPGEs.inc similarity index 100% rename from deps/ops/code/OpsMod_Varobs/Ops_VarobPGEs.inc rename to deps/ops/stubs/OpsMod_Varobs/Ops_VarobPGEs.inc diff --git a/deps/ops/code/OpsMod_Varobs/Ops_WriteVarobs.inc b/deps/ops/stubs/OpsMod_Varobs/Ops_WriteVarobs.inc similarity index 100% rename from deps/ops/code/OpsMod_Varobs/Ops_WriteVarobs.inc rename to deps/ops/stubs/OpsMod_Varobs/Ops_WriteVarobs.inc diff --git a/deps/ops/public/Ops_Constants/GenMod_CLookAdd.f90 b/deps/ops/stubs/Ops_Constants/GenMod_CLookAdd.f90 similarity index 100% rename from deps/ops/public/Ops_Constants/GenMod_CLookAdd.f90 rename to deps/ops/stubs/Ops_Constants/GenMod_CLookAdd.f90 diff --git a/deps/ops/public/Ops_Constants/GenMod_Constants.f90 b/deps/ops/stubs/Ops_Constants/GenMod_Constants.f90 similarity index 100% rename from deps/ops/public/Ops_Constants/GenMod_Constants.f90 rename to deps/ops/stubs/Ops_Constants/GenMod_Constants.f90 diff --git a/deps/ops/public/Ops_Constants/GenMod_MiscUMScienceConstants.f90 b/deps/ops/stubs/Ops_Constants/GenMod_MiscUMScienceConstants.f90 similarity index 100% rename from deps/ops/public/Ops_Constants/GenMod_MiscUMScienceConstants.f90 rename to deps/ops/stubs/Ops_Constants/GenMod_MiscUMScienceConstants.f90 diff --git a/deps/ops/public/Ops_Constants/GenMod_UMHeaderConstants.f90 b/deps/ops/stubs/Ops_Constants/GenMod_UMHeaderConstants.f90 similarity index 100% rename from deps/ops/public/Ops_Constants/GenMod_UMHeaderConstants.f90 rename to deps/ops/stubs/Ops_Constants/GenMod_UMHeaderConstants.f90 diff --git a/deps/ops/public/Ops_Constants/OpsFn_ASRToClrGeoGroup.inc b/deps/ops/stubs/Ops_Constants/OpsFn_ASRToClrGeoGroup.inc similarity index 100% rename from deps/ops/public/Ops_Constants/OpsFn_ASRToClrGeoGroup.inc rename to deps/ops/stubs/Ops_Constants/OpsFn_ASRToClrGeoGroup.inc diff --git a/deps/ops/public/Ops_Constants/OpsFn_IsAHIGroup.inc b/deps/ops/stubs/Ops_Constants/OpsFn_IsAHIGroup.inc similarity index 100% rename from deps/ops/public/Ops_Constants/OpsFn_IsAHIGroup.inc rename to deps/ops/stubs/Ops_Constants/OpsFn_IsAHIGroup.inc diff --git a/deps/ops/public/Ops_Constants/OpsFn_IsASRGeoGroup.inc b/deps/ops/stubs/Ops_Constants/OpsFn_IsASRGeoGroup.inc similarity index 100% rename from deps/ops/public/Ops_Constants/OpsFn_IsASRGeoGroup.inc rename to deps/ops/stubs/Ops_Constants/OpsFn_IsASRGeoGroup.inc diff --git a/deps/ops/public/Ops_Constants/OpsFn_IsClrGeoGroup.inc b/deps/ops/stubs/Ops_Constants/OpsFn_IsClrGeoGroup.inc similarity index 100% rename from deps/ops/public/Ops_Constants/OpsFn_IsClrGeoGroup.inc rename to deps/ops/stubs/Ops_Constants/OpsFn_IsClrGeoGroup.inc diff --git a/deps/ops/public/Ops_Constants/OpsFn_IsModelLevelGroup.inc b/deps/ops/stubs/Ops_Constants/OpsFn_IsModelLevelGroup.inc similarity index 100% rename from deps/ops/public/Ops_Constants/OpsFn_IsModelLevelGroup.inc rename to deps/ops/stubs/Ops_Constants/OpsFn_IsModelLevelGroup.inc diff --git a/deps/ops/public/Ops_Constants/OpsFn_IsSEVIRIGroup.inc b/deps/ops/stubs/Ops_Constants/OpsFn_IsSEVIRIGroup.inc similarity index 100% rename from deps/ops/public/Ops_Constants/OpsFn_IsSEVIRIGroup.inc rename to deps/ops/stubs/Ops_Constants/OpsFn_IsSEVIRIGroup.inc diff --git a/deps/ops/public/Ops_Constants/OpsFn_IsSatRadGroup.inc b/deps/ops/stubs/Ops_Constants/OpsFn_IsSatRadGroup.inc similarity index 100% rename from deps/ops/public/Ops_Constants/OpsFn_IsSatRadGroup.inc rename to deps/ops/stubs/Ops_Constants/OpsFn_IsSatRadGroup.inc diff --git a/deps/ops/public/Ops_Constants/OpsFn_ObsGroupNameToNum.inc b/deps/ops/stubs/Ops_Constants/OpsFn_ObsGroupNameToNum.inc similarity index 98% rename from deps/ops/public/Ops_Constants/OpsFn_ObsGroupNameToNum.inc rename to deps/ops/stubs/Ops_Constants/OpsFn_ObsGroupNameToNum.inc index 2cc662bb..7f3e5704 100644 --- a/deps/ops/public/Ops_Constants/OpsFn_ObsGroupNameToNum.inc +++ b/deps/ops/stubs/Ops_Constants/OpsFn_ObsGroupNameToNum.inc @@ -110,6 +110,8 @@ SELECT CASE (ObsGroupName) OpsFn_ObsGroupNameToNum = ObsGroupSBUV CASE ("Scatwind") OpsFn_ObsGroupNameToNum = ObsGroupScatwind + CASE ("ScatwindChosen") + OpsFn_ObsGroupNameToNum = ObsGroupScatwindChosen CASE ("SeaIce") OpsFn_ObsGroupNameToNum = ObsGroupSeaIce CASE ("OceanColour") diff --git a/deps/ops/public/Ops_Constants/OpsFn_ObsGroupNumToName.inc b/deps/ops/stubs/Ops_Constants/OpsFn_ObsGroupNumToName.inc similarity index 96% rename from deps/ops/public/Ops_Constants/OpsFn_ObsGroupNumToName.inc rename to deps/ops/stubs/Ops_Constants/OpsFn_ObsGroupNumToName.inc index c9ba3b1e..adf2eb2a 100644 --- a/deps/ops/public/Ops_Constants/OpsFn_ObsGroupNumToName.inc +++ b/deps/ops/stubs/Ops_Constants/OpsFn_ObsGroupNumToName.inc @@ -12,7 +12,7 @@ IMPLICIT NONE INTEGER, INTENT(IN) :: ObsGroup ! Function result: -CHARACTER(len=12) :: OpsFn_ObsGroupNumToName +CHARACTER(len=16) :: OpsFn_ObsGroupNumToName SELECT CASE (ObsGroup) CASE (ObsGroupABIClr) @@ -107,6 +107,8 @@ SELECT CASE (ObsGroup) OpsFn_ObsGroupNumToName = "SBUV" CASE (ObsGroupScatwind) OpsFn_ObsGroupNumToName = "Scatwind" + CASE (ObsGroupScatwindChosen) + OpsFn_ObsGroupNumToName = "ScatwindChosen" CASE (ObsGroupSeaIce) OpsFn_ObsGroupNumToName = "SeaIce" CASE (ObsGroupOceanColour) diff --git a/deps/ops/public/Ops_Constants/OpsMod_Ancil.f90 b/deps/ops/stubs/Ops_Constants/OpsMod_Ancil.f90 similarity index 100% rename from deps/ops/public/Ops_Constants/OpsMod_Ancil.f90 rename to deps/ops/stubs/Ops_Constants/OpsMod_Ancil.f90 diff --git a/deps/ops/public/Ops_Constants/OpsMod_BufrDescriptors.f90 b/deps/ops/stubs/Ops_Constants/OpsMod_BufrDescriptors.f90 similarity index 100% rename from deps/ops/public/Ops_Constants/OpsMod_BufrDescriptors.f90 rename to deps/ops/stubs/Ops_Constants/OpsMod_BufrDescriptors.f90 diff --git a/deps/ops/public/Ops_Constants/OpsMod_CXIndexes.f90 b/deps/ops/stubs/Ops_Constants/OpsMod_CXIndexes.f90 similarity index 100% rename from deps/ops/public/Ops_Constants/OpsMod_CXIndexes.f90 rename to deps/ops/stubs/Ops_Constants/OpsMod_CXIndexes.f90 diff --git a/deps/ops/public/Ops_Constants/OpsMod_Constants.f90 b/deps/ops/stubs/Ops_Constants/OpsMod_Constants.f90 similarity index 100% rename from deps/ops/public/Ops_Constants/OpsMod_Constants.f90 rename to deps/ops/stubs/Ops_Constants/OpsMod_Constants.f90 diff --git a/deps/ops/public/Ops_Constants/OpsMod_Kinds.F90 b/deps/ops/stubs/Ops_Constants/OpsMod_Kinds.F90 similarity index 100% rename from deps/ops/public/Ops_Constants/OpsMod_Kinds.F90 rename to deps/ops/stubs/Ops_Constants/OpsMod_Kinds.F90 diff --git a/deps/ops/public/Ops_Constants/OpsMod_ObsGroupInfo.f90 b/deps/ops/stubs/Ops_Constants/OpsMod_ObsGroupInfo.f90 similarity index 97% rename from deps/ops/public/Ops_Constants/OpsMod_ObsGroupInfo.f90 rename to deps/ops/stubs/Ops_Constants/OpsMod_ObsGroupInfo.f90 index bc308a6a..1282e76e 100644 --- a/deps/ops/public/Ops_Constants/OpsMod_ObsGroupInfo.f90 +++ b/deps/ops/stubs/Ops_Constants/OpsMod_ObsGroupInfo.f90 @@ -72,7 +72,8 @@ MODULE OpsMod_ObsGroupInfo INTEGER, PARAMETER :: ObsGroupOceanWinds = 61 ! => Satellite wind speeds INTEGER, PARAMETER :: ObsGroupGIIRSLW = 62 ! => GIIRS LW radiances INTEGER, PARAMETER :: ObsGroupGIIRSMW = 63 ! => GIIRS MW radiances -INTEGER, PARAMETER :: max_obs_group_num = 63 ! Number of observation groups +INTEGER, PARAMETER :: ObsGroupScatwindChosen = 64 ! => Scatterometer winds (single solution) +INTEGER, PARAMETER :: max_obs_group_num = 64 ! Number of observation groups CONTAINS diff --git a/deps/ops/public/Ops_Constants/OpsMod_ObsTypes.f90 b/deps/ops/stubs/Ops_Constants/OpsMod_ObsTypes.f90 similarity index 100% rename from deps/ops/public/Ops_Constants/OpsMod_ObsTypes.f90 rename to deps/ops/stubs/Ops_Constants/OpsMod_ObsTypes.f90 diff --git a/deps/ops/public/Ops_Constants/OpsMod_OrigCtrs.f90 b/deps/ops/stubs/Ops_Constants/OpsMod_OrigCtrs.f90 similarity index 100% rename from deps/ops/public/Ops_Constants/OpsMod_OrigCtrs.f90 rename to deps/ops/stubs/Ops_Constants/OpsMod_OrigCtrs.f90 diff --git a/deps/ops/public/Ops_Constants/OpsMod_SatIds.f90 b/deps/ops/stubs/Ops_Constants/OpsMod_SatIds.f90 similarity index 100% rename from deps/ops/public/Ops_Constants/OpsMod_SatIds.f90 rename to deps/ops/stubs/Ops_Constants/OpsMod_SatIds.f90 diff --git a/deps/ops/public/Ops_Constants/OpsMod_Stash.f90 b/deps/ops/stubs/Ops_Constants/OpsMod_Stash.f90 similarity index 100% rename from deps/ops/public/Ops_Constants/OpsMod_Stash.f90 rename to deps/ops/stubs/Ops_Constants/OpsMod_Stash.f90 diff --git a/deps/ops/public/Ops_Constants/OpsMod_Varfields.f90 b/deps/ops/stubs/Ops_Constants/OpsMod_Varfields.f90 similarity index 100% rename from deps/ops/public/Ops_Constants/OpsMod_Varfields.f90 rename to deps/ops/stubs/Ops_Constants/OpsMod_Varfields.f90 diff --git a/deps/ops/public/Ops_Constants/Ops_SubTypeNameToNum.inc b/deps/ops/stubs/Ops_Constants/Ops_SubTypeNameToNum.inc similarity index 100% rename from deps/ops/public/Ops_Constants/Ops_SubTypeNameToNum.inc rename to deps/ops/stubs/Ops_Constants/Ops_SubTypeNameToNum.inc diff --git a/deps/ops/public/Ops_Constants/Ops_SubTypeNumToName.inc b/deps/ops/stubs/Ops_Constants/Ops_SubTypeNumToName.inc similarity index 100% rename from deps/ops/public/Ops_Constants/Ops_SubTypeNumToName.inc rename to deps/ops/stubs/Ops_Constants/Ops_SubTypeNumToName.inc diff --git a/deps/update_ops_sources.sh b/deps/update_ops_sources.sh index 2f6d1695..1a8e1499 100755 --- a/deps/update_ops_sources.sh +++ b/deps/update_ops_sources.sh @@ -28,7 +28,6 @@ cd "$SRC_DIR/src" cp --parents --recursive code/GenMod_ModelIO "$DEST_DIR" cp --parents --recursive code/OpsMod_AirQuality "$DEST_DIR" cp --parents --recursive code/OpsMod_Argument "$DEST_DIR" -cp --parents --recursive code/OpsMod_CXGenerate "$DEST_DIR" cp --parents --recursive code/OpsMod_CXInfo "$DEST_DIR" cp --parents --recursive code/OpsMod_Control "$DEST_DIR" cp --parents --recursive code/OpsMod_DateTime "$DEST_DIR" @@ -39,12 +38,10 @@ cp --parents --recursive code/OpsMod_ModelIO "$DEST_DIR" cp --parents --recursive code/OpsMod_ModelObInfo "$DEST_DIR" cp --parents --recursive code/OpsMod_ObTypeUtils "$DEST_DIR" cp --parents --recursive code/OpsMod_ObsInfo "$DEST_DIR" -cp --parents --recursive code/OpsMod_ODB "$DEST_DIR" cp --parents --recursive code/OpsMod_Process "$DEST_DIR" cp --parents --recursive code/OpsMod_QC "$DEST_DIR" cp --parents --recursive code/OpsMod_UMImport "$DEST_DIR" cp --parents --recursive code/OpsMod_Utilities "$DEST_DIR" -cp --parents --recursive code/OpsMod_Varobs "$DEST_DIR" cp --parents --recursive code/OpsMod_VarobsLib "$DEST_DIR" cp --parents --recursive public/GenMod_Control "$DEST_DIR" cp --parents --recursive public/GenMod_Core "$DEST_DIR" @@ -60,7 +57,6 @@ cp --parents --recursive public/OpsMod_Random "$DEST_DIR" cp --parents --recursive public/OpsMod_Sort "$DEST_DIR" cp --parents --recursive public/OpsMod_UMInterface "$DEST_DIR" cp --parents --recursive public/OpsMod_VerticalInterp "$DEST_DIR" -cp --parents --recursive public/Ops_Constants "$DEST_DIR" cp --parents code/OpsProg_Utils/OpsMod_PrintCX.f90 "$DEST_DIR" cp --parents code/OpsProg_Utils/OpsMod_PrintVarobs.f90 "$DEST_DIR" diff --git a/etc/global/varobs/ScatwindChosen.nl b/etc/global/varobs/ScatwindChosen.nl new file mode 100644 index 00000000..94f7a7c9 --- /dev/null +++ b/etc/global/varobs/ScatwindChosen.nl @@ -0,0 +1,3 @@ +&VarobsControlNL +Varfields=4,5 +/ diff --git a/src/opsinputs/CMakeLists.txt b/src/opsinputs/CMakeLists.txt index 7c3b28d2..88570491 100644 --- a/src/opsinputs/CMakeLists.txt +++ b/src/opsinputs/CMakeLists.txt @@ -50,7 +50,7 @@ set_source_files_properties(opsinputs_cxgenerate_mod.F90 PROPERTIES # In addition, we need to add the folder with these *.inc files to the # include path used when compiling that module. set_source_files_properties(opsinputs_cxgenerate_mod.F90 PROPERTIES - INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/../../deps/ops/code/OpsMod_CXGenerate) + INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/../../deps/ops/stubs/OpsMod_CXGenerate) ecbuild_add_library( TARGET opsinputs SOURCES ${opsinputs_src_files} diff --git a/src/opsinputs/opsinputs_cxwriter_mod.F90 b/src/opsinputs/opsinputs_cxwriter_mod.F90 index e9495ac9..79a1d9be 100644 --- a/src/opsinputs/opsinputs_cxwriter_mod.F90 +++ b/src/opsinputs/opsinputs_cxwriter_mod.F90 @@ -112,6 +112,7 @@ module opsinputs_cxwriter_mod ObsGroupSurface, & ObsGroupSatwind, & ObsGroupScatwind, & + ObsGroupScatwindChosen, & ObsGroupSonde use OpsMod_ObsInfo, only: & FinalRejectFlag, & diff --git a/src/opsinputs/opsinputs_varobswriter_mod.F90 b/src/opsinputs/opsinputs_varobswriter_mod.F90 index ba82f315..6a6c4907 100644 --- a/src/opsinputs/opsinputs_varobswriter_mod.F90 +++ b/src/opsinputs/opsinputs_varobswriter_mod.F90 @@ -104,6 +104,7 @@ module opsinputs_varobswriter_mod ObsGroupGPSRO, & ObsGroupSatwind, & ObsGroupScatwind, & + ObsGroupScatwindChosen, & ObsGroupSonde, & ObsGroupSurface, & ObsGroupSatTCWV @@ -820,6 +821,10 @@ subroutine opsinputs_varobswriter_populateobservations( & call opsinputs_fill_fillelementtypefromsimulatedvariable( & Ob % Header % u10, "u10", Ob % Header % NumObsLocal, Ob % u10, & ObsSpace, Flags, ObsErrors, "windEastwardAt10M", "ObsValue") + else if (Ob % Header % ObsGroup == ObsGroupScatwindChosen) then + call opsinputs_fill_fillelementtypefromsimulatedvariable( & + Ob % Header % u10, "u10", Ob % Header % NumObsLocal, Ob % u10, & + ObsSpace, Flags, ObsErrors, "windEastwardAt10M", "BiasCorrObsValue") else call opsinputs_fill_fillelementtype2dfromsimulatedvariable( & Ob % Header % u, "u", JediToOpsLayoutMapping, Ob % u, & @@ -831,6 +836,10 @@ subroutine opsinputs_varobswriter_populateobservations( & call opsinputs_fill_fillelementtypefromsimulatedvariable( & Ob % Header % v10, "v10", Ob % Header % NumObsLocal, Ob % v10, & ObsSpace, Flags, ObsErrors, "windNorthwardAt10M", "ObsValue") + else if (Ob % Header % ObsGroup == ObsGroupScatwindChosen) then + call opsinputs_fill_fillelementtypefromsimulatedvariable( & + Ob % Header % v10, "v10", Ob % Header % NumObsLocal, Ob % v10, & + ObsSpace, Flags, ObsErrors, "windNorthwardAt10M", "BiasCorrObsValue") else call opsinputs_fill_fillelementtype2dfromsimulatedvariable( & Ob % Header % v, "v", JediToOpsLayoutMapping, Ob % v, & diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 880e0020..9aa99f0f 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -124,12 +124,18 @@ ADD_WRITER_TEST(NAME varobswriter_004_VarField_u_Surface ADD_WRITER_TEST(NAME varobswriter_004_VarField_u_Sonde YAML 004_VarField_u_Sonde.yaml DATA 004_VarField_u_Sonde.nc4) +ADD_WRITER_TEST(NAME varobswriter_004_VarField_u_ScatwindChosen + YAML 004_VarField_u_ScatwindChosen.yaml + DATA 004_VarField_u_ScatwindChosen.nc4) ADD_WRITER_TEST(NAME varobswriter_005_VarField_v_Surface YAML 005_VarField_v_Surface.yaml DATA 005_VarField_v_Surface.nc4) ADD_WRITER_TEST(NAME varobswriter_005_VarField_v_Sonde YAML 005_VarField_v_Sonde.yaml DATA 005_VarField_v_Sonde.nc4) +ADD_WRITER_TEST(NAME varobswriter_005_VarField_v_ScatwindChosen + YAML 005_VarField_v_ScatwindChosen.yaml + DATA 005_VarField_v_ScatwindChosen.nc4) ADD_WRITER_TEST(NAME varobswriter_007_VarField_tcwv YAML 007_VarField_tcwv.yaml DATA 007_VarField_tcwv.nc4) @@ -622,6 +628,9 @@ ADD_WRITER_TEST(NAME cxwriter_globalnamelist_surface YAML cxwriter_globalnamelist_surface.yaml NAMELIST ../../etc/global/cx/Surface.nl DATA cx_globalnamelist_surface.nc4 dummy.nc4) +ADD_WRITER_TEST(NAME cxwriter_globalnamelist_scatwind + YAML cxwriter_globalnamelist_scatwind.yaml + DATA cx_globalnamelist_scatwind.nc4 dummy.nc4) # Tests the ukv namelist files in the etc directory diff --git a/test/generate_unittest_netcdfs.py b/test/generate_unittest_netcdfs.py index 66f4a1fe..2997649b 100644 --- a/test/generate_unittest_netcdfs.py +++ b/test/generate_unittest_netcdfs.py @@ -645,8 +645,10 @@ def copy_var_to_var(Group, invarname, outvarname, filename): output_1d_simulated_var_to_netcdf('relativeHumidityAt2M', 'testinput/003_VarField_rh_Surface.nc4') output_simulated_var_profiles_to_netcdf('relativeHumidity', 'testinput/003_VarField_rh_Sonde.nc4') output_1d_simulated_var_to_netcdf('windEastwardAt10M', 'testinput/004_VarField_u_Surface.nc4') + output_1d_simulated_var_to_netcdf('windEastwardAt10M', 'testinput/004_VarField_u_ScatwindChosen.nc4', with_bias=True) output_simulated_var_profiles_to_netcdf('windEastward', 'testinput/004_VarField_u_Sonde.nc4') output_1d_simulated_var_to_netcdf('windNorthwardAt10M', 'testinput/005_VarField_v_Surface.nc4') + output_1d_simulated_var_to_netcdf('windNorthwardAt10M', 'testinput/005_VarField_v_ScatwindChosen.nc4', with_bias=True) output_simulated_var_profiles_to_netcdf('windNorthward', 'testinput/005_VarField_v_Sonde.nc4') output_1d_simulated_var_to_netcdf('precipitableWater', 'testinput/007_VarField_tcwv.nc4') output_2d_simulated_var_to_netcdf('brightnessTemperature', 'testinput/010_VarField_britemp.nc4', with_bias=True) @@ -1019,5 +1021,14 @@ def copy_var_to_var(Group, invarname, outvarname, filename): 'eastward_wind', 'northward_wind'], 'testinput/cx_globalnamelist_surface.nc4') + # Scatwind + output_full_cx_to_netcdf(['friction_velocity_over_water', 'ice_area_fraction', 'obukhov_length', 'relative_humidity_2m', 'skin_temperature', + 'surface_altitude', 'surface_pressure', 'surface_pressure_at_mean_sea_level', 'surface_temperature', + 'uwind_at_10m', 'vwind_at_10m'], + ['air_pressure_levels', 'cloud_volume_fraction_in_atmosphere_layer', 'ice_cloud_volume_fraction_in_atmosphere_layer', + 'liquid_cloud_volume_fraction_in_atmosphere_layer', 'mass_content_of_cloud_ice_in_atmosphere_layer', 'mass_content_of_cloud_liquid_water_in_atmosphere_layer', + 'specific_humidity', 'potential_temperature', 'eastward_wind', 'northward_wind'], + 'testinput/cx_globalnamelist_scatwind.nc4') + output_1d_multi_level_simulated_var_to_netcdf('relativeHumidity', 'testinput/relative_humidity_Sonde.nc4') output_2d_geoval_for_multi_level_obs_to_netcdf('relative_humidity', 'testinput/002_UpperAirCxFieldForMultiLevelObs_relative_humidity.nc4') diff --git a/test/testinput/004_VarField_u_ScatwindChosen.nc4 b/test/testinput/004_VarField_u_ScatwindChosen.nc4 new file mode 100644 index 00000000..1be98c5f Binary files /dev/null and b/test/testinput/004_VarField_u_ScatwindChosen.nc4 differ diff --git a/test/testinput/004_VarField_u_ScatwindChosen.yaml b/test/testinput/004_VarField_u_ScatwindChosen.yaml new file mode 100644 index 00000000..2406a8fc --- /dev/null +++ b/test/testinput/004_VarField_u_ScatwindChosen.yaml @@ -0,0 +1,44 @@ +window begin: 2018-01-01T00:00:00Z +window end: 2018-01-01T02:00:00Z + +observations: + - obs space: + name: ScatwindChosen + obsdatain: + engine: + type: H5File + obsfile: Data/004_VarField_u_ScatwindChosen.nc4 + simulated variables: [windEastwardAt10M] + obs filters: + # Double all observation errors: we want to check if error changes made by filters are + # propagated to VarObs files + - filter: BlackList + action: + name: inflate error + inflation factor: 2.0 + # Set the flag of observations with missing values to "pass": we want to check if these + # values are encoded correctly in the VarObsFile. + - filter: Reset Flags to Pass + flags_to_reset: [10, 15] # missing, Hfailed + # Reject observation 3: we want to check if it is omitted from the VarObs file, as expected. + - filter: Domain Check + where: + - variable: + name: MetaData/latitude + minvalue: 0.0 + - filter: VarObs Writer + reject_obs_with_any_variable_failing_qc: true + general_mode: debug + - filter: VarObs Checker + expected_main_table_columns: + # Only observations 1, 2 and 4 are passed; observation 3 is rejected by the domain check + field: ["4", "4", "4"] + ob value: ["1.20000", "-1073741824.00000", "1.30000"] + ob error: ["0.20000", "-1073741824.00000", "0.80000"] + lat: ["21.00000", "22.00000", "24.00000"] + lon: ["31.00000", "32.00000", "34.00000"] + time: ["-3540.00000", "-3480.00000", "-3360.00000"] + Callsign: ["station_1", "station_2", "station_4"] + HofX: ObsValue # just a placeholder -- not used, but needed to force calls to postFilter. + benchmarkFlag: 1000 # just to keep the ObsFilters test happy + flaggedBenchmark: 0 diff --git a/test/testinput/005_VarField_v_ScatwindChosen.nc4 b/test/testinput/005_VarField_v_ScatwindChosen.nc4 new file mode 100644 index 00000000..1212e501 Binary files /dev/null and b/test/testinput/005_VarField_v_ScatwindChosen.nc4 differ diff --git a/test/testinput/005_VarField_v_ScatwindChosen.yaml b/test/testinput/005_VarField_v_ScatwindChosen.yaml new file mode 100644 index 00000000..a1b50881 --- /dev/null +++ b/test/testinput/005_VarField_v_ScatwindChosen.yaml @@ -0,0 +1,44 @@ +window begin: 2018-01-01T00:00:00Z +window end: 2018-01-01T02:00:00Z + +observations: + - obs space: + name: ScatwindChosen + obsdatain: + engine: + type: H5File + obsfile: Data/005_VarField_v_ScatwindChosen.nc4 + simulated variables: [windNorthwardAt10M] + obs filters: + # Double all observation errors: we want to check if error changes made by filters are + # propagated to VarObs files + - filter: BlackList + action: + name: inflate error + inflation factor: 2.0 + # Set the flag of observations with missing values to "pass": we want to check if these + # values are encoded correctly in the VarObsFile. + - filter: Reset Flags to Pass + flags_to_reset: [10, 15] # missing, Hfailed + # Reject observation 3: we want to check if it is omitted from the VarObs file, as expected. + - filter: Domain Check + where: + - variable: + name: MetaData/latitude + minvalue: 0.0 + - filter: VarObs Writer + reject_obs_with_any_variable_failing_qc: true + general_mode: debug + - filter: VarObs Checker + expected_main_table_columns: + # Only observations 1, 2 and 4 are passed; observation 3 is rejected by the domain check + field: ["5", "5", "5"] + ob value: ["1.20000", "-1073741824.00000", "1.30000"] + ob error: ["0.20000", "-1073741824.00000", "0.80000"] + lat: ["21.00000", "22.00000", "24.00000"] + lon: ["31.00000", "32.00000", "34.00000"] + time: ["-3540.00000", "-3480.00000", "-3360.00000"] + Callsign: ["station_1", "station_2", "station_4"] + HofX: ObsValue # just a placeholder -- not used, but needed to force calls to postFilter. + benchmarkFlag: 1000 # just to keep the ObsFilters test happy + flaggedBenchmark: 0 diff --git a/test/testinput/cx_globalnamelist_scatwind.nc4 b/test/testinput/cx_globalnamelist_scatwind.nc4 new file mode 100644 index 00000000..e30132a5 Binary files /dev/null and b/test/testinput/cx_globalnamelist_scatwind.nc4 differ diff --git a/test/testinput/cxwriter_globalnamelist_scatwind.yaml b/test/testinput/cxwriter_globalnamelist_scatwind.yaml new file mode 100644 index 00000000..f5a588db --- /dev/null +++ b/test/testinput/cxwriter_globalnamelist_scatwind.yaml @@ -0,0 +1,52 @@ +window begin: 2018-01-01T00:00:00Z +window end: 2018-01-01T01:00:00Z + +observations: + - obs space: + name: Scatwind + obsdatain: + engine: + type: H5File + obsfile: Data/dummy.nc4 + simulated variables: [dummy] + geovals: + filename: Data/cx_globalnamelist_scatwind.nc4 + obs filters: + # Set the flag of observations with missing values to "pass": we want to check if these + # values are encoded correctly in the Cx file. + - filter: Reset Flags to Pass + flags_to_reset: [10, 15] # missing, Hfailed + # Reject observation 3: we want to check if it is omitted from the Cx file, as expected. + - filter: Domain Check + where: + - variable: + name: MetaData/latitude + minvalue: 0.0 + - filter: Cx Writer + namelist_directory: ../etc/global/cx + reject_obs_with_any_variable_failing_qc: true + general_mode: debug + IC_PLevels: 5 + - filter: Cx Checker + expected_surface_variables: ["1","2","5","6","13","17","56","57"] + expected_upper_air_variables: ["1","3","4","11"] + expected_main_table_columns: + - # observation 3 is rejected by the tests above hence only 3 (1,2,4) columns + - ["57.10","67.10","97.10","107.10","47.10","17.10","27.10","7.10", + "71.10","71.20","71.30", + "81.10","81.20","81.30", + "91.10","91.20","91.30", + "1.10","1.20","1.30"] # column 1 - 1st observation + - ["**********","**********","**********","**********","**********","**********","**********","**********", + "72.10","**********","72.30", + "82.10","**********","82.30", + "92.10","**********","92.30", + "2.10","**********","2.30"] # column 2 - 2nd observation + - ["57.40","67.40","97.40","107.40","47.40","17.40","27.40","7.40", + "74.10","74.20","74.30", + "84.10","84.20","84.30", + "94.10","94.20","94.30", + "4.10","4.20","4.30"] # column 3 - 4th observation + HofX: ObsValue # just a placeholder -- not used, but needed to force calls to postFilter. + benchmarkFlag: 1000 # just to keep the ObsFilters test happy + flaggedBenchmark: 0