diff --git a/.github/workflows/Intel.yml b/.github/workflows/Intel.yml new file mode 100644 index 00000000..eb5207f6 --- /dev/null +++ b/.github/workflows/Intel.yml @@ -0,0 +1,101 @@ +# This is the Intel workflow for the wgrib2 project. This +# tests with Intel Classic and oneAPI. +# +# Alex Richert, 22 Oct 2024 +name: Intel +on: + push: + branches: + - develop + pull_request: + branches: + - develop + +# Cancel in-progress workflows when pushing to a branch +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + Linux_options: + runs-on: ubuntu-latest + + strategy: + matrix: + compilers: ["oneapi", "classic"] + + steps: + + - name: install + run: | + sudo apt-get update + sudo apt-get install libnetcdf-dev libnetcdff-dev netcdf-bin pkg-config \ + libpng-dev autotools-dev autoconf libaec-dev libopenblas-serial-dev \ + libopenjp2-7 libopenjp2-7-dev + + - name: "Install Intel" + uses: NOAA-EMC/ci-install-intel-toolkit@develop + with: + compiler-setup: ${{ matrix.compilers }} + + - name: cache-jasper + id: cache-jasper + uses: actions/cache@v4 + with: + path: ~/jasper + key: jasper-${{ runner.os }}-${{ matrix.compilers }}-1.900.1 + + - name: checkout-jasper + if: steps.cache-jasper.outputs.cache-hit != 'true' + uses: actions/checkout@v4 + with: + repository: jasper-software/jasper + path: jasper + ref: version-1.900.1 + + - name: build-jasper + if: steps.cache-jasper.outputs.cache-hit != 'true' + run: | + cd jasper + CFLAGS="-Wno-implicit-function-declaration -Wno-incompatible-pointer-types" ./configure --prefix=$HOME/jasper + make + make install + + - name: cache-ip + id: cache-ip + uses: actions/cache@v4 + with: + path: ~/ip + key: ip-${{ runner.os }}-${{ matrix.compilers }}-develop + + - name: checkout-ip + if: steps.cache-ip.outputs.cache-hit != 'true' + uses: actions/checkout@v4 + with: + repository: NOAA-EMC/NCEPLIBS-ip + path: ip + ref: develop + + - name: build-ip + if: steps.cache-ip.outputs.cache-hit != 'true' + run: | + cd ip + mkdir build + cd build + cmake .. -DCMAKE_INSTALL_PREFIX=~/ip -DCMAKE_PREFIX_PATH=~/sp + make -j2 + make install + + - name: checkout + uses: actions/checkout@v4 + with: + path: wgrib2 + + - name: build + run: | + cd wgrib2 + mkdir b + cd b + cmake -DCMAKE_PREFIX_PATH="~/ip" .. -DUSE_OPENMP=OFF + make VERBOSE=1 + ctest --verbose --output-on-failure --rerun-failed diff --git a/.github/workflows/Linux_options.yml b/.github/workflows/Linux_options.yml index df1249b7..a8a64bdf 100644 --- a/.github/workflows/Linux_options.yml +++ b/.github/workflows/Linux_options.yml @@ -57,53 +57,12 @@ jobs: echo "CC=gcc-${{ matrix.gcc-version }}" >> $GITHUB_ENV echo "FC=gfortran-${{ matrix.gcc-version }}" >> $GITHUB_ENV - - name: cache-jasper - id: cache-jasper - uses: actions/cache@v3 + - name: "Build dependencies" + uses: NOAA-EMC/ci-build-nceplibs@develop with: - path: ~/jasper - key: jasper-${{ runner.os }}-gcc${{ matrix.gcc-version }}-1.900.1 - - - name: checkout-jasper - if: steps.cache-jasper.outputs.cache-hit != 'true' - uses: actions/checkout@v2 - with: - repository: jasper-software/jasper - path: jasper - ref: version-1.900.1 - - - name: build-jasper - if: steps.cache-jasper.outputs.cache-hit != 'true' - run: | - cd jasper - CFLAGS="-Wno-implicit-function-declaration -Wno-incompatible-pointer-types" ./configure --prefix=$HOME/jasper - make - make install - - - name: cache-ip - id: cache-ip - uses: actions/cache@v3 - with: - path: ~/ip - key: ip-${{ runner.os }}-gcc${{ matrix.gcc-version }}-develop-2 - - - name: checkout-ip - if: steps.cache-ip.outputs.cache-hit != 'true' - uses: actions/checkout@v3 - with: - repository: NOAA-EMC/NCEPLIBS-ip - path: ip - ref: develop - - - name: build-ip - if: steps.cache-ip.outputs.cache-hit != 'true' - run: | - cd ip - mkdir build - cd build - cmake .. -DCMAKE_INSTALL_PREFIX=~/ip -DCMAKE_PREFIX_PATH=~/sp - make -j - make install + ip-version: develop + g2c-version: develop + g2c-cmake-args: -DUSE_OpenJPEG=ON -DUSE_Jasper=OFF - name: checkout uses: actions/checkout@v2 @@ -115,6 +74,8 @@ jobs: cd wgrib2 mkdir b cd b - cmake ${{ matrix.config.options }} -DCMAKE_PREFIX_PATH="~/ip" .. - make -j VERBOSE=1 + export CFLAGS='-I/home/runner/work/wgrib2/wgrib2/nceplibs/NCEPLIBS-g2c/include' + cmake ${{ matrix.config.options }} -DCMAKE_PREFIX_PATH="$GITHUB_WORKSPACE/nceplibs/NCEPLIBS-ip;$GITHUB_WORKSPACE/nceplibs/NCEPLIBS-g2c" .. + + make VERBOSE=1 ctest --verbose --output-on-failure --rerun-failed diff --git a/.github/workflows/developer.yml b/.github/workflows/developer.yml index fa9dd0d5..c7b54f26 100644 --- a/.github/workflows/developer.yml +++ b/.github/workflows/developer.yml @@ -21,7 +21,7 @@ jobs: env: FC: gfortran CC: gcc - LD_LIBRARY_PATH: "/home/runner/jasper/lib/" + LD_LIBRARY_PATH: "/home/runner/work/wgrib2/wgrib2/nceplibs/jasper/lib/" permissions: id-token: write @@ -35,60 +35,12 @@ jobs: sudo apt-get install libnetcdf-dev libnetcdff-dev netcdf-bin pkg-config libopenblas-dev sudo apt-get install libpng-dev autotools-dev libaec-dev autoconf gcovr doxygen - - name: cache-jasper - id: cache-jasper - uses: actions/cache@v4 - with: - path: ~/jasper - key: jasper-${{ runner.os }}-4.0.0 - - - name: checkout-jasper - if: steps.cache-jasper.outputs.cache-hit != 'true' - uses: actions/checkout@v4 - with: - repository: jasper-software/jasper - path: jasper - ref: version-4.0.0 - - - name: build-jasper - if: steps.cache-jasper.outputs.cache-hit != 'true' - run: | - cd jasper - cmake -B build_dir -DCMAKE_INSTALL_PREFIX=~/jasper - cmake --build build_dir - cmake --install build_dir - - - name: checkout-ip - uses: actions/checkout@v4 + - name: "Build dependencies" + uses: NOAA-EMC/ci-build-nceplibs@develop with: - repository: NOAA-EMC/NCEPLIBS-ip - path: ip - ref: develop - - - name: build-ip - run: | - cd ip - mkdir build - cd build - cmake .. -DCMAKE_INSTALL_PREFIX=~/ip -DCMAKE_PREFIX_PATH=~ - make -j2 - make install - - - name: checkout-g2c - uses: actions/checkout@v4 - with: - repository: NOAA-EMC/NCEPLIBS-g2c - path: g2c - ref: develop - - - name: build-g2c - run: | - cd g2c - mkdir build - cd build - cmake .. -DCMAKE_INSTALL_PREFIX=~/g2c -DCMAKE_PREFIX_PATH="~/jasper" - make -j2 - make install + jasper-version: version-4.0.0 + ip-version: develop + g2c-version: develop - name: checkout uses: actions/checkout@v4 @@ -107,10 +59,10 @@ jobs: cd wgrib2 mkdir build cd build - export CFLAGS='-Wall -g -fprofile-abs-path -fprofile-arcs -ftest-coverage -O0 -I/home/runner/g2c/include' + export CFLAGS='-Wall -g -fprofile-abs-path -fprofile-arcs -ftest-coverage -O0 -I/home/runner/work/wgrib2/wgrib2/nceplibs/NCEPLIBS-g2c/include' export FCFLAGS='-Wall -g -fprofile-abs-path -fprofile-arcs -ftest-coverage -O0' export FFLAGS='-Wall -g -fprofile-abs-path -fprofile-arcs -ftest-coverage -O0' - cmake .. -DENABLE_DOCS=ON -DFTP_TEST_FILES=ON -DCMAKE_PREFIX_PATH="~/ip;~/jasper;~/g2c" -DTEST_FILE_DIR=/home/runner/data -DUSE_NETCDF4=ON -DUSE_AEC=ON -DUSE_IPOLATES=ON -DUSE_JASPER=ON + cmake .. -DENABLE_DOCS=ON -DFTP_TEST_FILES=ON -DCMAKE_PREFIX_PATH="$GITHUB_WORKSPACE/nceplibs/NCEPLIBS-ip;$GITHUB_WORKSPACE/nceplibs/jasper;$GITHUB_WORKSPACE/nceplibs/NCEPLIBS-g2c" -DTEST_FILE_DIR=/home/runner/data -DMAKE_FTN_API=ON -DUSE_NETCDF4=ON -DUSE_AEC=ON -DUSE_IPOLATES=ON -DUSE_JASPER=ON make VERBOSE=1 ctest --verbose --output-on-failure --rerun-failed gcovr --root .. -v --html-details --exclude ../tests --exclude CMakeFiles --print-summary -o test-coverage.html &> /dev/null diff --git a/CMakeLists.txt b/CMakeLists.txt index da99120f..55dd0a67 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,13 +11,13 @@ project(wgrib2 VERSION ${pVersion} LANGUAGES C) # Handle user build options. option(ENABLE_DOCS "Enable generation of doxygen-based documentation." OFF) -option(USE_NETCDF "Use NetCDF" on) +option(USE_NETCDF "Use NetCDF" off) option(USE_REGEX "Use Regex?" on) option(USE_TIGGE "Use tigge?" on) option(USE_MYSQL "Use MySQL?" off) option(USE_IPOLATES "Use Ipolates" off) option(USE_UDF "Use UDF?" off) -option(USE_OPENMP "Use OpenMP?" on) +option(USE_OPENMP "Use OpenMP?" off) option(USE_PROJ4 "Use Proj4?" off) option(USE_WMO_VALIDATION "Use WMO Validation?" off) option(DISABLE_TIMEZONE "Disable posix Timezone?" off) @@ -35,8 +35,13 @@ option(FTP_EXTRA_TEST_FILES "Fetch even more large files from FTP and test them. option(MAKE_FTN_API "add ftn api?" off) option(DISABLE_STAT "disable posix feature" off) set(BUILD_COMMENTS "stock build") + option(BUILD_LIB "Build wgrib2 library?" on) -option(BUILD_SHARED_LIB "Build shared library?" off) +# if BUILD_LIB, then code is compiled as relocatable +option(BUILD_SHARED_LIB "Build shared library?" on) +# To create libwgrib2.so for python, you have to build with BUILD_SHARED_LIB off +# and manually create libwgrib2.so from the needed *.a files + option(BUILD_WGRIB "Build wgrib code?" off) if (MAKE_FTN_API OR USE_IPOLATES) @@ -61,15 +66,18 @@ endif() include(GNUInstallDirs) message(STATUS "Setting compiler flags...") -if(CMAKE_C_COMPILER_ID MATCHES "^(Intel)$") +if(CMAKE_C_COMPILER_ID MATCHES "^(Intel|IntelLLVM)$") set(CMAKE_C_FLAGS "-g -traceback ${CMAKE_C_FLAGS} -DIFORT") + if(CMAKE_C_COMPILER_ID MATCHES "^(IntelLLVM)$") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Rno-debug-disables-optimization") + endif() set(CMAKE_C_FLAGS_DEBUG "-O0") elseif(CMAKE_C_COMPILER_ID MATCHES "^(GNU)$") set(CMAKE_C_FLAGS "-g ${CMAKE_C_FLAGS} -DGFORTRAN") set(CMAKE_C_FLAGS_DEBUG "-O0") endif() -if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$") +if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel|IntelLLVM)$") set(CMAKE_Fortran_FLAGS "-g -traceback ${CMAKE_Fortran_FLAGS}") set(CMAKE_Fortran_FLAGS_DEBUG "-O0") elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$") @@ -84,6 +92,10 @@ if(USE_G2CLIB) endif() endif() +if (BUILD_SHARED_LIB AND NOT BUILD_LIB) + message(FATAL_ERROR "BUILD_SHARED_LIB is on but BUILD_LIB is off") +endif() + # If user wants to use NCEPLIBS-ip, find it and the sp library. message(STATUS "Checking if the user want to use NCEPLIBS-ip...") if(USE_IPOLATES) @@ -109,18 +121,12 @@ endif() # Find required packages to use OpenJPEG message(STATUS "Checking if the user wants to use OpenJPEG...") if(USE_OPENJPEG) -find_package(OpenJPEG REQUIRED) + find_package(g2c 1.9.0 CONFIG REQUIRED) endif() message(STATUS "Checking if the user want to use OpenMP...") if(USE_OPENMP) - find_package(OpenMP) - if(OpenMP_CXX_FOUND) - target_link_libraries(MyTarget PUBLIC OpenMP::OpenMP_CXX) - endif() -# if(OpenMP_Fortran_FOUND) -# target_link_libraries(MyTarget PUBLIC OpenMP::OpenMP_Fortran) -# endif() + find_package(OpenMP REQUIRED COMPONENTS C) endif() message(STATUS "Checking if the user wants to use PNG...") diff --git a/docs/user_guide.md b/docs/user_guide.md index 7b8b69ad..373131c2 100644 --- a/docs/user_guide.md +++ b/docs/user_guide.md @@ -12,8 +12,6 @@ Wgrib2 is maintained as a collaboration between [Climate Prediction Center (CPC)](https://www.cpc.ncep.noaa.gov/) and the [Environmental Modeling Center (EMC)](https://www.emc.ncep.noaa.gov/emc.php). -## Documentation for Previous Versions of wgrib2 - -* [wgrib2 Version 3.4.0](ver-3.4.0/index.html) +[Documentation Index](web_docs/index.html) diff --git a/spack/package.py b/spack/package.py index 7ddd52a3..90bc92a3 100644 --- a/spack/package.py +++ b/spack/package.py @@ -177,8 +177,8 @@ def url_for_version(self, version): depends_on("g2c", when="@develop +jasper") depends_on("zlib-api", when="@3.2: +png") depends_on("libpng", when="@3.2: +png") - depends_on("openjpeg", when="@3.2: +openjpeg") - + depends_on("openjpeg", when="@3.2:3.4 +openjpeg") + depends_on("g2c +openjpeg", when="@develop +openjpeg") @when("@:2 ^gmake@4.2:") diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index d14fced4..37b853fc 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -110,7 +110,6 @@ copy_test_data(ref_new_grid_gdt_32769.grib2) copy_test_data(png_4bits.png) copy_test_data(large_png.grb2) - # Run these shell tests. shell_test(run_wgrib2_tests) shell_test(run_wgrib2_rpn_tests) @@ -126,6 +125,13 @@ if (USE_NETCDF) copy_test_data(ref_tablenc.gdas.t12z.pgrb2.1p00.anl.75r.grib2.txt) copy_test_data(nctab.table) endif() + +if (BUILD_WGRIB) + shell_test(run_wgrib_tests) + copy_test_data(ref_ecmwf.jul.grb1) + copy_test_data(ref_ecmwf.jul.grb1.inv) +endif() + if (USE_IPOLATES) shell_test(run_ipolates_tests) copy_test_data(ref_new_grid_gdas.t12z.pgrb2.1p00.anl.75r.grib2.txt) @@ -157,7 +163,15 @@ if (USE_IPOLATES) copy_test_data(ref_new_grid_ncep_t1148.txt) copy_test_data(ref_new_grid_ncep_t1534.txt) copy_test_data(ref_mercator_grid.txt) + copy_test_data(ref_hrrr_grid.txt) + copy_test_data(ref_nam12_grid.txt) + copy_test_data(ref_new_grid_ncep_130.txt) + copy_test_data(ref_new_grid_ncep_132.txt) + copy_test_data(ref_new_grid_ncep_187.txt) + copy_test_data(ref_new_grid_ncep_197.txt) + copy_test_data(ref_new_grid_ncep_236.txt) endif() + if (USE_AEC) shell_test(run_wgrib2_aec_tests) endif() @@ -166,6 +180,17 @@ if (USE_JASPER OR USE_OPENJPEG) copy_test_data(ref_jpeg2simple.txt) endif() +if (MAKE_FTN_API) + shell_test(test_ftn_api) +endif() +if (BUILD_LIB) + shell_test(test_lib) +endif() +if (BUILD_SHARED_LIB) + shell_test(test_shared_lib) +endif() + + if (FTP_TEST_FILES) copy_test_data(ref_WW3_Regional_US_West_Coast_20220718_0000.grib2.inv) copy_test_data(ref_merge_fcst.aqm.t12z.max_8hr_o3.227.grib2.txt) diff --git a/tests/data/ref_ecmwf.jul.grb1 b/tests/data/ref_ecmwf.jul.grb1 new file mode 100644 index 00000000..1490e497 Binary files /dev/null and b/tests/data/ref_ecmwf.jul.grb1 differ diff --git a/tests/data/ref_ecmwf.jul.grb1.inv b/tests/data/ref_ecmwf.jul.grb1.inv new file mode 100644 index 00000000..57900e0c --- /dev/null +++ b/tests/data/ref_ecmwf.jul.grb1.inv @@ -0,0 +1 @@ +1:0:d=21060500:TP:kpds5=228:kpds6=1:kpds7=0:TR=0:P1=12:P2=0:TimeU=1:sfc:12hr fcst:type=Perturbed forecast 9:NAve=0 diff --git a/tests/data/ref_hrrr_grid.txt b/tests/data/ref_hrrr_grid.txt new file mode 100644 index 00000000..e845f8f0 --- /dev/null +++ b/tests/data/ref_hrrr_grid.txt @@ -0,0 +1,84 @@ +1:0:grid_template=30:winds(N/S): + Lambert Conformal: (1799 x 1059) input WE:SN output WE:SN res 48 + Lat1 21.138000 Lon1 237.280000 LoV 262.500000 + LatD 38.500000 Latin1 38.500000 Latin2 38.500000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1799 x 1059) Dx 3000.000000 m Dy 3000.000000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,1) lvl2=(255,missing):0.01 mb:anl: +2:1667187:grid_template=30:winds(N/S): + Lambert Conformal: (1799 x 1059) input WE:SN output WE:SN res 48 + Lat1 21.138000 Lon1 237.280000 LoV 262.500000 + LatD 38.500000 Latin1 38.500000 Latin2 38.500000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1799 x 1059) Dx 3000.000000 m Dy 3000.000000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,1) lvl2=(255,missing):0.01 mb:anl: +3:3334374:grid_template=30:winds(N/S): + Lambert Conformal: (1799 x 1059) input WE:SN output WE:SN res 48 + Lat1 21.138000 Lon1 237.280000 LoV 262.500000 + LatD 38.500000 Latin1 38.500000 Latin2 38.500000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1799 x 1059) Dx 3000.000000 m Dy 3000.000000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,2) lvl2=(255,missing):0.02 mb:anl: +4:5001561:grid_template=30:winds(N/S): + Lambert Conformal: (1799 x 1059) input WE:SN output WE:SN res 48 + Lat1 21.138000 Lon1 237.280000 LoV 262.500000 + LatD 38.500000 Latin1 38.500000 Latin2 38.500000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1799 x 1059) Dx 3000.000000 m Dy 3000.000000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,2) lvl2=(255,missing):0.02 mb:anl: +5:6668748:grid_template=30:winds(N/S): + Lambert Conformal: (1799 x 1059) input WE:SN output WE:SN res 48 + Lat1 21.138000 Lon1 237.280000 LoV 262.500000 + LatD 38.500000 Latin1 38.500000 Latin2 38.500000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1799 x 1059) Dx 3000.000000 m Dy 3000.000000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,4) lvl2=(255,missing):0.04 mb:anl: +6:8097792:grid_template=30:winds(N/S): + Lambert Conformal: (1799 x 1059) input WE:SN output WE:SN res 48 + Lat1 21.138000 Lon1 237.280000 LoV 262.500000 + LatD 38.500000 Latin1 38.500000 Latin2 38.500000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1799 x 1059) Dx 3000.000000 m Dy 3000.000000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,4) lvl2=(255,missing):0.04 mb:anl: +7:9764979:grid_template=30:winds(N/S): + Lambert Conformal: (1799 x 1059) input WE:SN output WE:SN res 48 + Lat1 21.138000 Lon1 237.280000 LoV 262.500000 + LatD 38.500000 Latin1 38.500000 Latin2 38.500000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1799 x 1059) Dx 3000.000000 m Dy 3000.000000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,7) lvl2=(255,missing):0.07 mb:anl: +8:11432166:grid_template=30:winds(N/S): + Lambert Conformal: (1799 x 1059) input WE:SN output WE:SN res 48 + Lat1 21.138000 Lon1 237.280000 LoV 262.500000 + LatD 38.500000 Latin1 38.500000 Latin2 38.500000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1799 x 1059) Dx 3000.000000 m Dy 3000.000000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,7) lvl2=(255,missing):0.07 mb:anl: +9:13099353:grid_template=30:winds(N/S): + Lambert Conformal: (1799 x 1059) input WE:SN output WE:SN res 48 + Lat1 21.138000 Lon1 237.280000 LoV 262.500000 + LatD 38.500000 Latin1 38.500000 Latin2 38.500000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1799 x 1059) Dx 3000.000000 m Dy 3000.000000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,10) lvl2=(255,missing):0.1 mb:anl: +10:14528397:grid_template=30:winds(N/S): + Lambert Conformal: (1799 x 1059) input WE:SN output WE:SN res 48 + Lat1 21.138000 Lon1 237.280000 LoV 262.500000 + LatD 38.500000 Latin1 38.500000 Latin2 38.500000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1799 x 1059) Dx 3000.000000 m Dy 3000.000000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,10) lvl2=(255,missing):0.1 mb:anl: +11:15957441:grid_template=30:winds(N/S): + Lambert Conformal: (1799 x 1059) input WE:SN output WE:SN res 48 + Lat1 21.138000 Lon1 237.280000 LoV 262.500000 + LatD 38.500000 Latin1 38.500000 Latin2 38.500000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1799 x 1059) Dx 3000.000000 m Dy 3000.000000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,20) lvl2=(255,missing):0.2 mb:anl: +12:17386485:grid_template=30:winds(N/S): + Lambert Conformal: (1799 x 1059) input WE:SN output WE:SN res 48 + Lat1 21.138000 Lon1 237.280000 LoV 262.500000 + LatD 38.500000 Latin1 38.500000 Latin2 38.500000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1799 x 1059) Dx 3000.000000 m Dy 3000.000000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,20) lvl2=(255,missing):0.2 mb:anl: +13:18577387:grid_template=30:winds(N/S): + Lambert Conformal: (1799 x 1059) input WE:SN output WE:SN res 48 + Lat1 21.138000 Lon1 237.280000 LoV 262.500000 + LatD 38.500000 Latin1 38.500000 Latin2 38.500000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1799 x 1059) Dx 3000.000000 m Dy 3000.000000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,40) lvl2=(255,missing):0.4 mb:anl: +14:19768289:grid_template=30:winds(N/S): + Lambert Conformal: (1799 x 1059) input WE:SN output WE:SN res 48 + Lat1 21.138000 Lon1 237.280000 LoV 262.500000 + LatD 38.500000 Latin1 38.500000 Latin2 38.500000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1799 x 1059) Dx 3000.000000 m Dy 3000.000000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,40) lvl2=(255,missing):0.4 mb:anl: diff --git a/tests/data/ref_nam12_grid.txt b/tests/data/ref_nam12_grid.txt new file mode 100644 index 00000000..c2593a78 --- /dev/null +++ b/tests/data/ref_nam12_grid.txt @@ -0,0 +1,42 @@ +1:0:grid_template=20:winds(N/S): + polar stereographic grid: (1196 x 817) input WE:SN output WE:SN res 48 + North pole lat1 -2.500000 lon1 217.500000 latD 60.000000 lonV 260.000000 dx 12679.000000 m dy 12679.000000 m:12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,1) lvl2=(255,missing):0.01 mb:anl: +2:855163:grid_template=20:winds(N/S): + polar stereographic grid: (1196 x 817) input WE:SN output WE:SN res 48 + North pole lat1 -2.500000 lon1 217.500000 latD 60.000000 lonV 260.000000 dx 12679.000000 m dy 12679.000000 m:12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,1) lvl2=(255,missing):0.01 mb:anl: +3:1710326:grid_template=20:winds(N/S): + polar stereographic grid: (1196 x 817) input WE:SN output WE:SN res 48 + North pole lat1 -2.500000 lon1 217.500000 latD 60.000000 lonV 260.000000 dx 12679.000000 m dy 12679.000000 m:12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,2) lvl2=(255,missing):0.02 mb:anl: +4:2565489:grid_template=20:winds(N/S): + polar stereographic grid: (1196 x 817) input WE:SN output WE:SN res 48 + North pole lat1 -2.500000 lon1 217.500000 latD 60.000000 lonV 260.000000 dx 12679.000000 m dy 12679.000000 m:12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,2) lvl2=(255,missing):0.02 mb:anl: +5:3420652:grid_template=20:winds(N/S): + polar stereographic grid: (1196 x 817) input WE:SN output WE:SN res 48 + North pole lat1 -2.500000 lon1 217.500000 latD 60.000000 lonV 260.000000 dx 12679.000000 m dy 12679.000000 m:12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,4) lvl2=(255,missing):0.04 mb:anl: +6:4275815:grid_template=20:winds(N/S): + polar stereographic grid: (1196 x 817) input WE:SN output WE:SN res 48 + North pole lat1 -2.500000 lon1 217.500000 latD 60.000000 lonV 260.000000 dx 12679.000000 m dy 12679.000000 m:12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,4) lvl2=(255,missing):0.04 mb:anl: +7:5130978:grid_template=20:winds(N/S): + polar stereographic grid: (1196 x 817) input WE:SN output WE:SN res 48 + North pole lat1 -2.500000 lon1 217.500000 latD 60.000000 lonV 260.000000 dx 12679.000000 m dy 12679.000000 m:12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,7) lvl2=(255,missing):0.07 mb:anl: +8:5986141:grid_template=20:winds(N/S): + polar stereographic grid: (1196 x 817) input WE:SN output WE:SN res 48 + North pole lat1 -2.500000 lon1 217.500000 latD 60.000000 lonV 260.000000 dx 12679.000000 m dy 12679.000000 m:12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,7) lvl2=(255,missing):0.07 mb:anl: +9:6841304:grid_template=20:winds(N/S): + polar stereographic grid: (1196 x 817) input WE:SN output WE:SN res 48 + North pole lat1 -2.500000 lon1 217.500000 latD 60.000000 lonV 260.000000 dx 12679.000000 m dy 12679.000000 m:12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,10) lvl2=(255,missing):0.1 mb:anl: +10:7696467:grid_template=20:winds(N/S): + polar stereographic grid: (1196 x 817) input WE:SN output WE:SN res 48 + North pole lat1 -2.500000 lon1 217.500000 latD 60.000000 lonV 260.000000 dx 12679.000000 m dy 12679.000000 m:12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,10) lvl2=(255,missing):0.1 mb:anl: +11:8551630:grid_template=20:winds(N/S): + polar stereographic grid: (1196 x 817) input WE:SN output WE:SN res 48 + North pole lat1 -2.500000 lon1 217.500000 latD 60.000000 lonV 260.000000 dx 12679.000000 m dy 12679.000000 m:12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,20) lvl2=(255,missing):0.2 mb:anl: +12:9284651:grid_template=20:winds(N/S): + polar stereographic grid: (1196 x 817) input WE:SN output WE:SN res 48 + North pole lat1 -2.500000 lon1 217.500000 latD 60.000000 lonV 260.000000 dx 12679.000000 m dy 12679.000000 m:12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,20) lvl2=(255,missing):0.2 mb:anl: +13:10017672:grid_template=20:winds(N/S): + polar stereographic grid: (1196 x 817) input WE:SN output WE:SN res 48 + North pole lat1 -2.500000 lon1 217.500000 latD 60.000000 lonV 260.000000 dx 12679.000000 m dy 12679.000000 m:12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,40) lvl2=(255,missing):0.4 mb:anl: +14:10750693:grid_template=20:winds(N/S): + polar stereographic grid: (1196 x 817) input WE:SN output WE:SN res 48 + North pole lat1 -2.500000 lon1 217.500000 latD 60.000000 lonV 260.000000 dx 12679.000000 m dy 12679.000000 m:12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,40) lvl2=(255,missing):0.4 mb:anl: diff --git a/tests/data/ref_new_grid_ncep_130.txt b/tests/data/ref_new_grid_ncep_130.txt new file mode 100644 index 00000000..a4401140 --- /dev/null +++ b/tests/data/ref_new_grid_ncep_130.txt @@ -0,0 +1,84 @@ +1:0:grid_template=30:winds(N/S): + Lambert Conformal: (451 x 337) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (451 x 337) Dx 13545.087000 m Dy 13545.087000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,1) lvl2=(255,missing):0.01 mb:anl: +2:133177:grid_template=30:winds(N/S): + Lambert Conformal: (451 x 337) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (451 x 337) Dx 13545.087000 m Dy 13545.087000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,1) lvl2=(255,missing):0.01 mb:anl: +3:266354:grid_template=30:winds(N/S): + Lambert Conformal: (451 x 337) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (451 x 337) Dx 13545.087000 m Dy 13545.087000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,2) lvl2=(255,missing):0.02 mb:anl: +4:399531:grid_template=30:winds(N/S): + Lambert Conformal: (451 x 337) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (451 x 337) Dx 13545.087000 m Dy 13545.087000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,2) lvl2=(255,missing):0.02 mb:anl: +5:532708:grid_template=30:winds(N/S): + Lambert Conformal: (451 x 337) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (451 x 337) Dx 13545.087000 m Dy 13545.087000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,4) lvl2=(255,missing):0.04 mb:anl: +6:646887:grid_template=30:winds(N/S): + Lambert Conformal: (451 x 337) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (451 x 337) Dx 13545.087000 m Dy 13545.087000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,4) lvl2=(255,missing):0.04 mb:anl: +7:780064:grid_template=30:winds(N/S): + Lambert Conformal: (451 x 337) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (451 x 337) Dx 13545.087000 m Dy 13545.087000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,7) lvl2=(255,missing):0.07 mb:anl: +8:913241:grid_template=30:winds(N/S): + Lambert Conformal: (451 x 337) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (451 x 337) Dx 13545.087000 m Dy 13545.087000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,7) lvl2=(255,missing):0.07 mb:anl: +9:1046418:grid_template=30:winds(N/S): + Lambert Conformal: (451 x 337) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (451 x 337) Dx 13545.087000 m Dy 13545.087000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,10) lvl2=(255,missing):0.1 mb:anl: +10:1160597:grid_template=30:winds(N/S): + Lambert Conformal: (451 x 337) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (451 x 337) Dx 13545.087000 m Dy 13545.087000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,10) lvl2=(255,missing):0.1 mb:anl: +11:1274776:grid_template=30:winds(N/S): + Lambert Conformal: (451 x 337) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (451 x 337) Dx 13545.087000 m Dy 13545.087000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,20) lvl2=(255,missing):0.2 mb:anl: +12:1388955:grid_template=30:winds(N/S): + Lambert Conformal: (451 x 337) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (451 x 337) Dx 13545.087000 m Dy 13545.087000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,20) lvl2=(255,missing):0.2 mb:anl: +13:1503134:grid_template=30:winds(N/S): + Lambert Conformal: (451 x 337) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (451 x 337) Dx 13545.087000 m Dy 13545.087000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,40) lvl2=(255,missing):0.4 mb:anl: +14:1598314:grid_template=30:winds(N/S): + Lambert Conformal: (451 x 337) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (451 x 337) Dx 13545.087000 m Dy 13545.087000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,40) lvl2=(255,missing):0.4 mb:anl: diff --git a/tests/data/ref_new_grid_ncep_132.txt b/tests/data/ref_new_grid_ncep_132.txt new file mode 100644 index 00000000..1163549c --- /dev/null +++ b/tests/data/ref_new_grid_ncep_132.txt @@ -0,0 +1,84 @@ +1:0:grid_template=30:winds(N/S): + Lambert Conformal: (697 x 553) input WE:SN output WE:SN res 48 + Lat1 1.000000 Lon1 214.500000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (697 x 553) Dx 16231.740000 m Dy 16231.740000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,1) lvl2=(255,missing):0.01 mb:anl: +2:337449:grid_template=30:winds(N/S): + Lambert Conformal: (697 x 553) input WE:SN output WE:SN res 48 + Lat1 1.000000 Lon1 214.500000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (697 x 553) Dx 16231.740000 m Dy 16231.740000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,1) lvl2=(255,missing):0.01 mb:anl: +3:674898:grid_template=30:winds(N/S): + Lambert Conformal: (697 x 553) input WE:SN output WE:SN res 48 + Lat1 1.000000 Lon1 214.500000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (697 x 553) Dx 16231.740000 m Dy 16231.740000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,2) lvl2=(255,missing):0.02 mb:anl: +4:1012347:grid_template=30:winds(N/S): + Lambert Conformal: (697 x 553) input WE:SN output WE:SN res 48 + Lat1 1.000000 Lon1 214.500000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (697 x 553) Dx 16231.740000 m Dy 16231.740000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,2) lvl2=(255,missing):0.02 mb:anl: +5:1349796:grid_template=30:winds(N/S): + Lambert Conformal: (697 x 553) input WE:SN output WE:SN res 48 + Lat1 1.000000 Lon1 214.500000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (697 x 553) Dx 16231.740000 m Dy 16231.740000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,4) lvl2=(255,missing):0.04 mb:anl: +6:1687245:grid_template=30:winds(N/S): + Lambert Conformal: (697 x 553) input WE:SN output WE:SN res 48 + Lat1 1.000000 Lon1 214.500000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (697 x 553) Dx 16231.740000 m Dy 16231.740000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,4) lvl2=(255,missing):0.04 mb:anl: +7:2024694:grid_template=30:winds(N/S): + Lambert Conformal: (697 x 553) input WE:SN output WE:SN res 48 + Lat1 1.000000 Lon1 214.500000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (697 x 553) Dx 16231.740000 m Dy 16231.740000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,7) lvl2=(255,missing):0.07 mb:anl: +8:2362143:grid_template=30:winds(N/S): + Lambert Conformal: (697 x 553) input WE:SN output WE:SN res 48 + Lat1 1.000000 Lon1 214.500000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (697 x 553) Dx 16231.740000 m Dy 16231.740000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,7) lvl2=(255,missing):0.07 mb:anl: +9:2699592:grid_template=30:winds(N/S): + Lambert Conformal: (697 x 553) input WE:SN output WE:SN res 48 + Lat1 1.000000 Lon1 214.500000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (697 x 553) Dx 16231.740000 m Dy 16231.740000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,10) lvl2=(255,missing):0.1 mb:anl: +10:2988861:grid_template=30:winds(N/S): + Lambert Conformal: (697 x 553) input WE:SN output WE:SN res 48 + Lat1 1.000000 Lon1 214.500000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (697 x 553) Dx 16231.740000 m Dy 16231.740000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,10) lvl2=(255,missing):0.1 mb:anl: +11:3326310:grid_template=30:winds(N/S): + Lambert Conformal: (697 x 553) input WE:SN output WE:SN res 48 + Lat1 1.000000 Lon1 214.500000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (697 x 553) Dx 16231.740000 m Dy 16231.740000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,20) lvl2=(255,missing):0.2 mb:anl: +12:3615579:grid_template=30:winds(N/S): + Lambert Conformal: (697 x 553) input WE:SN output WE:SN res 48 + Lat1 1.000000 Lon1 214.500000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (697 x 553) Dx 16231.740000 m Dy 16231.740000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,20) lvl2=(255,missing):0.2 mb:anl: +13:3904848:grid_template=30:winds(N/S): + Lambert Conformal: (697 x 553) input WE:SN output WE:SN res 48 + Lat1 1.000000 Lon1 214.500000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (697 x 553) Dx 16231.740000 m Dy 16231.740000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,40) lvl2=(255,missing):0.4 mb:anl: +14:4194117:grid_template=30:winds(N/S): + Lambert Conformal: (697 x 553) input WE:SN output WE:SN res 48 + Lat1 1.000000 Lon1 214.500000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (697 x 553) Dx 16231.740000 m Dy 16231.740000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,40) lvl2=(255,missing):0.4 mb:anl: diff --git a/tests/data/ref_new_grid_ncep_187.txt b/tests/data/ref_new_grid_ncep_187.txt new file mode 100644 index 00000000..0cc52b66 --- /dev/null +++ b/tests/data/ref_new_grid_ncep_187.txt @@ -0,0 +1,84 @@ +1:0:grid_template=30:winds(N/S): + Lambert Conformal: (2145 x 1597) input WE:SN output WE:SN res 48 + Lat1 20.192000 Lon1 238.446000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (2145 x 1597) Dx 2540.000000 m Dy 2540.000000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,1) lvl2=(255,missing):0.01 mb:anl: +2:2997558:grid_template=30:winds(N/S): + Lambert Conformal: (2145 x 1597) input WE:SN output WE:SN res 48 + Lat1 20.192000 Lon1 238.446000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (2145 x 1597) Dx 2540.000000 m Dy 2540.000000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,1) lvl2=(255,missing):0.01 mb:anl: +3:5995116:grid_template=30:winds(N/S): + Lambert Conformal: (2145 x 1597) input WE:SN output WE:SN res 48 + Lat1 20.192000 Lon1 238.446000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (2145 x 1597) Dx 2540.000000 m Dy 2540.000000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,2) lvl2=(255,missing):0.02 mb:anl: +4:8992674:grid_template=30:winds(N/S): + Lambert Conformal: (2145 x 1597) input WE:SN output WE:SN res 48 + Lat1 20.192000 Lon1 238.446000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (2145 x 1597) Dx 2540.000000 m Dy 2540.000000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,2) lvl2=(255,missing):0.02 mb:anl: +5:11990232:grid_template=30:winds(N/S): + Lambert Conformal: (2145 x 1597) input WE:SN output WE:SN res 48 + Lat1 20.192000 Lon1 238.446000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (2145 x 1597) Dx 2540.000000 m Dy 2540.000000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,4) lvl2=(255,missing):0.04 mb:anl: +6:14559594:grid_template=30:winds(N/S): + Lambert Conformal: (2145 x 1597) input WE:SN output WE:SN res 48 + Lat1 20.192000 Lon1 238.446000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (2145 x 1597) Dx 2540.000000 m Dy 2540.000000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,4) lvl2=(255,missing):0.04 mb:anl: +7:17557152:grid_template=30:winds(N/S): + Lambert Conformal: (2145 x 1597) input WE:SN output WE:SN res 48 + Lat1 20.192000 Lon1 238.446000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (2145 x 1597) Dx 2540.000000 m Dy 2540.000000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,7) lvl2=(255,missing):0.07 mb:anl: +8:20554710:grid_template=30:winds(N/S): + Lambert Conformal: (2145 x 1597) input WE:SN output WE:SN res 48 + Lat1 20.192000 Lon1 238.446000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (2145 x 1597) Dx 2540.000000 m Dy 2540.000000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,7) lvl2=(255,missing):0.07 mb:anl: +9:23552268:grid_template=30:winds(N/S): + Lambert Conformal: (2145 x 1597) input WE:SN output WE:SN res 48 + Lat1 20.192000 Lon1 238.446000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (2145 x 1597) Dx 2540.000000 m Dy 2540.000000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,10) lvl2=(255,missing):0.1 mb:anl: +10:26121630:grid_template=30:winds(N/S): + Lambert Conformal: (2145 x 1597) input WE:SN output WE:SN res 48 + Lat1 20.192000 Lon1 238.446000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (2145 x 1597) Dx 2540.000000 m Dy 2540.000000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,10) lvl2=(255,missing):0.1 mb:anl: +11:28690992:grid_template=30:winds(N/S): + Lambert Conformal: (2145 x 1597) input WE:SN output WE:SN res 48 + Lat1 20.192000 Lon1 238.446000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (2145 x 1597) Dx 2540.000000 m Dy 2540.000000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,20) lvl2=(255,missing):0.2 mb:anl: +12:31260354:grid_template=30:winds(N/S): + Lambert Conformal: (2145 x 1597) input WE:SN output WE:SN res 48 + Lat1 20.192000 Lon1 238.446000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (2145 x 1597) Dx 2540.000000 m Dy 2540.000000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,20) lvl2=(255,missing):0.2 mb:anl: +13:33829716:grid_template=30:winds(N/S): + Lambert Conformal: (2145 x 1597) input WE:SN output WE:SN res 48 + Lat1 20.192000 Lon1 238.446000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (2145 x 1597) Dx 2540.000000 m Dy 2540.000000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,40) lvl2=(255,missing):0.4 mb:anl: +14:35970883:grid_template=30:winds(N/S): + Lambert Conformal: (2145 x 1597) input WE:SN output WE:SN res 48 + Lat1 20.192000 Lon1 238.446000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (2145 x 1597) Dx 2540.000000 m Dy 2540.000000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,40) lvl2=(255,missing):0.4 mb:anl: diff --git a/tests/data/ref_new_grid_ncep_197.txt b/tests/data/ref_new_grid_ncep_197.txt new file mode 100644 index 00000000..5b8f5684 --- /dev/null +++ b/tests/data/ref_new_grid_ncep_197.txt @@ -0,0 +1,84 @@ +1:0:grid_template=30:winds(N/S): + Lambert Conformal: (1073 x 689) input WE:SN output WE:SN res 48 + Lat1 20.191999 Lon1 238.445999 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1073 x 689) Dx 5079.000000 m Dy 5079.000000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,1) lvl2=(255,missing):0.01 mb:anl: +2:647073:grid_template=30:winds(N/S): + Lambert Conformal: (1073 x 689) input WE:SN output WE:SN res 48 + Lat1 20.191999 Lon1 238.445999 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1073 x 689) Dx 5079.000000 m Dy 5079.000000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,1) lvl2=(255,missing):0.01 mb:anl: +3:1294146:grid_template=30:winds(N/S): + Lambert Conformal: (1073 x 689) input WE:SN output WE:SN res 48 + Lat1 20.191999 Lon1 238.445999 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1073 x 689) Dx 5079.000000 m Dy 5079.000000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,2) lvl2=(255,missing):0.02 mb:anl: +4:1941219:grid_template=30:winds(N/S): + Lambert Conformal: (1073 x 689) input WE:SN output WE:SN res 48 + Lat1 20.191999 Lon1 238.445999 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1073 x 689) Dx 5079.000000 m Dy 5079.000000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,2) lvl2=(255,missing):0.02 mb:anl: +5:2588292:grid_template=30:winds(N/S): + Lambert Conformal: (1073 x 689) input WE:SN output WE:SN res 48 + Lat1 20.191999 Lon1 238.445999 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1073 x 689) Dx 5079.000000 m Dy 5079.000000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,4) lvl2=(255,missing):0.04 mb:anl: +6:3142953:grid_template=30:winds(N/S): + Lambert Conformal: (1073 x 689) input WE:SN output WE:SN res 48 + Lat1 20.191999 Lon1 238.445999 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1073 x 689) Dx 5079.000000 m Dy 5079.000000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,4) lvl2=(255,missing):0.04 mb:anl: +7:3790026:grid_template=30:winds(N/S): + Lambert Conformal: (1073 x 689) input WE:SN output WE:SN res 48 + Lat1 20.191999 Lon1 238.445999 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1073 x 689) Dx 5079.000000 m Dy 5079.000000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,7) lvl2=(255,missing):0.07 mb:anl: +8:4437099:grid_template=30:winds(N/S): + Lambert Conformal: (1073 x 689) input WE:SN output WE:SN res 48 + Lat1 20.191999 Lon1 238.445999 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1073 x 689) Dx 5079.000000 m Dy 5079.000000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,7) lvl2=(255,missing):0.07 mb:anl: +9:5084172:grid_template=30:winds(N/S): + Lambert Conformal: (1073 x 689) input WE:SN output WE:SN res 48 + Lat1 20.191999 Lon1 238.445999 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1073 x 689) Dx 5079.000000 m Dy 5079.000000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,10) lvl2=(255,missing):0.1 mb:anl: +10:5638833:grid_template=30:winds(N/S): + Lambert Conformal: (1073 x 689) input WE:SN output WE:SN res 48 + Lat1 20.191999 Lon1 238.445999 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1073 x 689) Dx 5079.000000 m Dy 5079.000000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,10) lvl2=(255,missing):0.1 mb:anl: +11:6193494:grid_template=30:winds(N/S): + Lambert Conformal: (1073 x 689) input WE:SN output WE:SN res 48 + Lat1 20.191999 Lon1 238.445999 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1073 x 689) Dx 5079.000000 m Dy 5079.000000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,20) lvl2=(255,missing):0.2 mb:anl: +12:6748155:grid_template=30:winds(N/S): + Lambert Conformal: (1073 x 689) input WE:SN output WE:SN res 48 + Lat1 20.191999 Lon1 238.445999 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1073 x 689) Dx 5079.000000 m Dy 5079.000000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,20) lvl2=(255,missing):0.2 mb:anl: +13:7302816:grid_template=30:winds(N/S): + Lambert Conformal: (1073 x 689) input WE:SN output WE:SN res 48 + Lat1 20.191999 Lon1 238.445999 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1073 x 689) Dx 5079.000000 m Dy 5079.000000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,40) lvl2=(255,missing):0.4 mb:anl: +14:7765065:grid_template=30:winds(N/S): + Lambert Conformal: (1073 x 689) input WE:SN output WE:SN res 48 + Lat1 20.191999 Lon1 238.445999 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (1073 x 689) Dx 5079.000000 m Dy 5079.000000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,40) lvl2=(255,missing):0.4 mb:anl: diff --git a/tests/data/ref_new_grid_ncep_236.txt b/tests/data/ref_new_grid_ncep_236.txt new file mode 100644 index 00000000..b02f2f04 --- /dev/null +++ b/tests/data/ref_new_grid_ncep_236.txt @@ -0,0 +1,84 @@ +1:0:grid_template=30:winds(N/S): + Lambert Conformal: (151 x 113) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (151 x 113) Dx 40635.250000 m Dy 40635.250000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,1) lvl2=(255,missing):0.01 mb:anl: +2:15119:grid_template=30:winds(N/S): + Lambert Conformal: (151 x 113) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (151 x 113) Dx 40635.250000 m Dy 40635.250000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,1) lvl2=(255,missing):0.01 mb:anl: +3:30238:grid_template=30:winds(N/S): + Lambert Conformal: (151 x 113) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (151 x 113) Dx 40635.250000 m Dy 40635.250000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,2) lvl2=(255,missing):0.02 mb:anl: +4:45357:grid_template=30:winds(N/S): + Lambert Conformal: (151 x 113) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (151 x 113) Dx 40635.250000 m Dy 40635.250000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,2) lvl2=(255,missing):0.02 mb:anl: +5:60476:grid_template=30:winds(N/S): + Lambert Conformal: (151 x 113) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (151 x 113) Dx 40635.250000 m Dy 40635.250000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,4) lvl2=(255,missing):0.04 mb:anl: +6:73462:grid_template=30:winds(N/S): + Lambert Conformal: (151 x 113) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (151 x 113) Dx 40635.250000 m Dy 40635.250000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,4) lvl2=(255,missing):0.04 mb:anl: +7:88581:grid_template=30:winds(N/S): + Lambert Conformal: (151 x 113) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (151 x 113) Dx 40635.250000 m Dy 40635.250000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,7) lvl2=(255,missing):0.07 mb:anl: +8:103700:grid_template=30:winds(N/S): + Lambert Conformal: (151 x 113) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (151 x 113) Dx 40635.250000 m Dy 40635.250000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,7) lvl2=(255,missing):0.07 mb:anl: +9:118819:grid_template=30:winds(N/S): + Lambert Conformal: (151 x 113) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (151 x 113) Dx 40635.250000 m Dy 40635.250000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,10) lvl2=(255,missing):0.1 mb:anl: +10:131805:grid_template=30:winds(N/S): + Lambert Conformal: (151 x 113) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (151 x 113) Dx 40635.250000 m Dy 40635.250000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,10) lvl2=(255,missing):0.1 mb:anl: +11:144791:grid_template=30:winds(N/S): + Lambert Conformal: (151 x 113) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (151 x 113) Dx 40635.250000 m Dy 40635.250000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,20) lvl2=(255,missing):0.2 mb:anl: +12:157777:grid_template=30:winds(N/S): + Lambert Conformal: (151 x 113) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (151 x 113) Dx 40635.250000 m Dy 40635.250000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,20) lvl2=(255,missing):0.2 mb:anl: +13:170763:grid_template=30:winds(N/S): + Lambert Conformal: (151 x 113) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (151 x 113) Dx 40635.250000 m Dy 40635.250000 m :12Z26apr2024:UGRD U-Component of Wind [m/s]:lvl1=(100,40) lvl2=(255,missing):0.4 mb:anl: +14:181616:grid_template=30:winds(N/S): + Lambert Conformal: (151 x 113) input WE:SN output WE:SN res 48 + Lat1 16.281000 Lon1 233.862000 LoV 265.000000 + LatD 25.000000 Latin1 25.000000 Latin2 25.000000 + LatSP -90.000000 LonSP 0.000000 + North Pole (151 x 113) Dx 40635.250000 m Dy 40635.250000 m :12Z26apr2024:VGRD V-Component of Wind [m/s]:lvl1=(100,40) lvl2=(255,missing):0.4 mb:anl: diff --git a/tests/run_ipolates_tests.sh b/tests/run_ipolates_tests.sh index 62a2d5d1..1253d5b3 100644 --- a/tests/run_ipolates_tests.sh +++ b/tests/run_ipolates_tests.sh @@ -219,5 +219,47 @@ echo "*** Testing conversion to Mercator grid" touch mercator_grid.txt diff -w mercator_grid.txt data/ref_mercator_grid.txt +echo "*** Testing conversion to HRRR grid" +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid hrrr new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s > hrrr_grid.txt +touch hrrr_grid.txt +diff -w hrrr_grid.txt data/ref_hrrr_grid.txt + +echo "*** Testing conversion to NAM 12 grid" +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid nam12 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s > nam12_grid.txt +touch nam12_grid.txt +diff -w nam12_grid.txt data/ref_nam12_grid.txt + +echo "*** Testing conversion to NCEP grid definition 130" +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid 130 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s > ncep_grid_130.txt +touch ncep_grid_130.txt +diff -w ncep_grid_130.txt data/ref_new_grid_ncep_130.txt + +echo "*** Testing conversion to NCEP grid definition 132" +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid 132 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s > ncep_grid_132.txt +touch ncep_grid_132.txt +diff -w ncep_grid_132.txt data/ref_new_grid_ncep_132.txt + +echo "*** Testing conversion to NCEP grid definition 187" +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid 187 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s > ncep_grid_187.txt +touch ncep_grid_187.txt +diff -w ncep_grid_187.txt data/ref_new_grid_ncep_187.txt + +echo "*** Testing conversion to NCEP grid definition 197" +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid 197 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s > ncep_grid_197.txt +touch ncep_grid_197.txt +diff -w ncep_grid_197.txt data/ref_new_grid_ncep_197.txt + +echo "*** Testing conversion to NCEP grid definition 236" +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid 236 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s > ncep_grid_236.txt +touch ncep_grid_236.txt +diff -w ncep_grid_236.txt data/ref_new_grid_ncep_236.txt + echo "*** SUCCESS!" exit 0 diff --git a/tests/run_wgrib2_tests.sh b/tests/run_wgrib2_tests.sh index fbabce13..e1252285 100755 --- a/tests/run_wgrib2_tests.sh +++ b/tests/run_wgrib2_tests.sh @@ -112,5 +112,40 @@ echo "*** Testing write/read section" touch secs.txt diff -w secs.txt simple.txt + +echo "*** test pdt 48 ***" +n=`../wgrib2/wgrib2 ./data/gdas.t12z.pgrb2.1p00.anl.75r.grib2 -d 1 -set_pdt +48 -set_byte 4 12 00:12:0 | grep -c "aerosol_size"` +if [ "$n" -ne 1 ] ; then + exit 1 +fi +set -x +echo "*** test pdt 49 ***" +n=`../wgrib2/wgrib2 ./data/gdas.t12z.pgrb2.1p00.anl.75r.grib2 -d 1 -set_pdt +49 -set_byte 4 12 00:12:0 | grep -c "aerosol_size"` +if [ "$n" -ne 1 ] ; then + exit 1 +fi + +echo "*** test import_ieee big-endian ***" + +../wgrib2/wgrib2 data/ref_simple_packing.grib2 -ieee ieee.bin -inv ieee.inv -d 1 +../wgrib2/wgrib2 data/ref_simple_packing.grib2 -d 1 -rpn 0 -import_ieee ieee.bin -grib_out ieee.grb +line=`../wgrib2/wgrib2 -d 1 data/ref_simple_packing.grib2 -rpn sto_1 -import_ieee ieee.bin -rpn "rcl_1:print_rms"` + +if [ `echo "$line" | grep -c ":rpn_rms=0:"` -ne 1 ] ; then + exit 1 +fi + +echo "*** test import_ieee little-endian ***" + +../wgrib2/wgrib2 data/ref_simple_packing.grib2 -little_endian -ieee ieee.bin.le -inv ieee.inv.le -d 1 +../wgrib2/wgrib2 data/ref_simple_packing.grib2 -little_endian -d 1 -rpn 0 -import_ieee ieee.bin.le -grib_out ieee.grb.le +line=`../wgrib2/wgrib2 -little_endian -d 1 data/ref_simple_packing.grib2 -rpn sto_1 -import_ieee ieee.bin.le -rpn "rcl_1:print_rms"` + +if [ `echo "$line" | grep -c ":rpn_rms=0:"` -ne 1 ] ; then + exit 1 +fi + + + echo "*** SUCCESS!" exit 0 diff --git a/tests/run_wgrib_tests.sh b/tests/run_wgrib_tests.sh new file mode 100644 index 00000000..d8d078c7 --- /dev/null +++ b/tests/run_wgrib_tests.sh @@ -0,0 +1,15 @@ +#!/bin/sh +# This script runs tests for the wgrib utility. +# Requires BUILD_WGRIB=ON +# +# Alyson Stahl, 1-/18/24 + +set -e +echo "" +echo "*** Running wgrib tests" + +../wgrib/wgrib data/ref_ecmwf.jul.grb1 > wgrib_junk.txt +diff -w wgrib_junk.txt data/ref_ecmwf.jul.grb1.inv + +echo "*** SUCCESS!" +exit 0 \ No newline at end of file diff --git a/tests/test_ftn_api.sh b/tests/test_ftn_api.sh new file mode 100755 index 00000000..fe8b079b --- /dev/null +++ b/tests/test_ftn_api.sh @@ -0,0 +1,15 @@ +#!/bin/sh +# +# script to see if ftn_api compiled +# + +echo "see if ftn_api compiled" +set -xe + +if [ ! -f ../wgrib2/ftn_api/include/wgrib2api.mod ] ; then + echo "failed: did not find wgrib2api.mod" + exit 1 +fi + +echo "*** SUCCESS!" +exit 0 diff --git a/tests/test_lib.sh b/tests/test_lib.sh new file mode 100755 index 00000000..a7c46f1e --- /dev/null +++ b/tests/test_lib.sh @@ -0,0 +1,15 @@ +#!/bin/sh +# +# script to see if shared lib was made +# + +echo "see if shared library made" +set -xe + +if [ ! -f ../wgrib2/libwgrib2.so -a ! -f ../wgrib2/libwgrib2.a ] ; then + echo "failed: did not find libwgrib2" + exit 1 +fi + +echo "*** SUCCESS!" +exit 0 diff --git a/tests/test_shared_lib.sh b/tests/test_shared_lib.sh new file mode 100755 index 00000000..fd96f986 --- /dev/null +++ b/tests/test_shared_lib.sh @@ -0,0 +1,15 @@ +#!/bin/sh +# +# script to see if shared lib was made +# + +echo "see if shared library made" +set -xe + +if [ ! -f ../wgrib2/libwgrib2.so ] ; then + echo "failed: did not find libwgrib2.so" + exit 1 +fi + +echo "*** SUCCESS!" +exit 0 diff --git a/wgrib/wgrib.c b/wgrib/wgrib.c index b54049fd..1f63df38 100644 --- a/wgrib/wgrib.c +++ b/wgrib/wgrib.c @@ -1,59 +1,58 @@ -/** @file - * version 1.2.1 of grib headers w. ebisuzaki - * 1.2.2 added access to spectral reference value l. kornblueh - */ - #include #include #include #include #include #include +/* + * version 1.2.1 of grib headers w. ebisuzaki + * 1.2.2 added access to spectral reference value l. kornblueh + */ #ifndef INT2 #define INT2(a,b) ((1-(int) ((unsigned) (a & 0x80) >> 6)) * (int) (((a & 0x7f) << 8) + b)) #endif -#define BDS_LEN(bds) (ec_large_grib ? len_ec_bds : ((int) ((bds[0]<<16)+(bds[1]<<8)+bds[2])) ) +#define BDS_LEN(bds) (ec_large_grib ? len_ec_bds : ((int) ((bds[0]<<16)+(bds[1]<<8)+bds[2])) ) -#define BDS_Flag(bds) (bds[3]) +#define BDS_Flag(bds) (bds[3]) -#define BDS_Grid(bds) ((bds[3] & 128) == 0) -#define BDS_Harmonic(bds) (bds[3] & 128) +#define BDS_Grid(bds) ((bds[3] & 128) == 0) +#define BDS_Harmonic(bds) (bds[3] & 128) -#define BDS_Packing(bds) ((bds[3] & 64) != 0) -#define BDS_SimplePacking(bds) ((bds[3] & 64) == 0) -#define BDS_ComplexPacking(bds) ((bds[3] & 64) != 0) +#define BDS_Packing(bds) ((bds[3] & 64) != 0) +#define BDS_SimplePacking(bds) ((bds[3] & 64) == 0) +#define BDS_ComplexPacking(bds) ((bds[3] & 64) != 0) -#define BDS_OriginalType(bds) ((bds[3] & 32) != 0) -#define BDS_OriginalFloat(bds) ((bds[3] & 32) == 0) -#define BDS_OriginalInt(bds) ((bds[3] & 32) != 0) +#define BDS_OriginalType(bds) ((bds[3] & 32) != 0) +#define BDS_OriginalFloat(bds) ((bds[3] & 32) == 0) +#define BDS_OriginalInt(bds) ((bds[3] & 32) != 0) #define BDS_MoreFlags(bds) ((bds[3] & 16) != 0) -#define BDS_UnusedBits(bds) ((int) (bds[3] & 15)) +#define BDS_UnusedBits(bds) ((int) (bds[3] & 15)) -#define BDS_BinScale(bds) INT2(bds[4],bds[5]) +#define BDS_BinScale(bds) INT2(bds[4],bds[5]) -#define BDS_RefValue(bds) (ibm2flt(bds+6)) -#define BDS_NumBits(bds) ((int) bds[10]) +#define BDS_RefValue(bds) (ibm2flt(bds+6)) +#define BDS_NumBits(bds) ((int) bds[10]) #define BDS_Harmonic_RefValue(bds) (ibm2flt(bds+11)) #define BDS_DataStart(bds) ((int) (11 + BDS_MoreFlags(bds)*3)) -#define BDS_P1(bds) (bds[16] * 256 + bds[17]) -#define BDS_P2(bds) (bds[18] * 256 + bds[19]) +#define BDS_P1(bds) (bds[16] * 256 + bds[17]) +#define BDS_P2(bds) (bds[18] * 256 + bds[19]) /* undefined value -- if bitmap */ -#define UNDEFINED 9.999e20 +#define UNDEFINED 9.999e20 /* version 1.2 of grib headers w. ebisuzaki */ -#define BMS_LEN(bms) ((bms) == NULL ? 0 : (bms[0]<<16)+(bms[1]<<8)+bms[2]) -#define BMS_UnusedBits(bms) ((bms) == NULL ? 0 : bms[3]) -#define BMS_StdMap(bms) ((bms) == NULL ? 0 : ((bms[4]<<8) + bms[5])) -#define BMS_bitmap(bms) ((bms) == NULL ? NULL : (bms)+6) -#define BMS_nxny(bms) ((((bms) == NULL) || BMS_StdMap(bms)) \ - ? 0 : (BMS_LEN(bms)*8 - 48 - BMS_UnusedBits(bms))) +#define BMS_LEN(bms) ((bms) == NULL ? 0 : (bms[0]<<16)+(bms[1]<<8)+bms[2]) +#define BMS_UnusedBits(bms) ((bms) == NULL ? 0 : bms[3]) +#define BMS_StdMap(bms) ((bms) == NULL ? 0 : ((bms[4]<<8) + bms[5])) +#define BMS_bitmap(bms) ((bms) == NULL ? NULL : (bms)+6) +#define BMS_nxny(bms) ((((bms) == NULL) || BMS_StdMap(bms)) \ + ? 0 : (BMS_LEN(bms)*8 - 48 - BMS_UnusedBits(bms))) /* cnames_file.c */ /* search order for parameter names @@ -80,17 +79,17 @@ int setup_user_table(int center, int subcenter, int ptable); struct ParmTable { - /* char *name, *comment; */ - char *name, *comment; + /* char *name, *comment; */ + char *name, *comment; }; /* version 1.4.5 of grib headers w. ebisuzaki */ /* this version is incomplete */ /* 5/00 - dx/dy or di/dj controlled by bit 1 of resolution byte */ /* 8/00 - dx/dy or di/dj for polar and lambert not controlled by res. byte */ /* Added headers for the triangular grid of the gme model of DWD - Helmut P. Frank, 13.09.2001 */ + Helmut P. Frank, 13.09.2001 */ /* Clean up of triangular grid properties access and added spectral information - Luis Kornblueh, 27.03.2002 */ + Luis Kornblueh, 27.03.2002 */ /* 8/08 - dx/dy (polar,lambert) controlled by bit 1 of resolution byte */ /* 5/11 Paul Schou: fixed GDS_Lambert_LonSP(gds) */ /* 6/11 Jeffery S. Smith Albers equal area projection */ @@ -115,95 +114,95 @@ struct ParmTable { #endif -#define GDS_Len1(gds) (gds[0]) -#define GDS_Len2(gds) (gds[1]) -#define GDS_Len3(gds) (gds[2]) -#define GDS_LEN(gds) ((int) ((gds[0]<<16)+(gds[1]<<8)+gds[2])) - -#define GDS_NV(gds) (gds[3]) -#define GDS_DataType(gds) (gds[5]) - -#define GDS_LatLon(gds) (gds[5] == 0) -#define GDS_Mercator(gds) (gds[5] == 1) -#define GDS_Gnomonic(gds) (gds[5] == 2) -#define GDS_Lambert(gds) (gds[5] == 3) -#define GDS_Gaussian(gds) (gds[5] == 4) -#define GDS_Polar(gds) (gds[5] == 5) -#define GDS_Albers(gds) (gds[5] == 8) -#define GDS_RotLL(gds) (gds[5] == 10) -#define GDS_Harmonic(gds) (gds[5] == 50) -#define GDS_Triangular(gds) (gds[5] == 192) -#define GDS_ssEgrid(gds) (gds[5] == 201) /* semi-staggered E grid */ -#define GDS_fEgrid(gds) (gds[5] == 202) /* filled E grid */ -#define GDS_ss2dEgrid(gds) (gds[5] == 203) /* semi-staggered E grid 2 d*/ +#define GDS_Len1(gds) (gds[0]) +#define GDS_Len2(gds) (gds[1]) +#define GDS_Len3(gds) (gds[2]) +#define GDS_LEN(gds) ((int) ((gds[0]<<16)+(gds[1]<<8)+gds[2])) + +#define GDS_NV(gds) (gds[3]) +#define GDS_DataType(gds) (gds[5]) + +#define GDS_LatLon(gds) (gds[5] == 0) +#define GDS_Mercator(gds) (gds[5] == 1) +#define GDS_Gnomonic(gds) (gds[5] == 2) +#define GDS_Lambert(gds) (gds[5] == 3) +#define GDS_Gaussian(gds) (gds[5] == 4) +#define GDS_Polar(gds) (gds[5] == 5) +#define GDS_Albers(gds) (gds[5] == 8) +#define GDS_RotLL(gds) (gds[5] == 10) +#define GDS_Harmonic(gds) (gds[5] == 50) +#define GDS_Triangular(gds) (gds[5] == 192) +#define GDS_ssEgrid(gds) (gds[5] == 201) /* semi-staggered E grid */ +#define GDS_fEgrid(gds) (gds[5] == 202) /* filled E grid */ +#define GDS_ss2dEgrid(gds) (gds[5] == 203) /* semi-staggered E grid 2 d*/ #define GDS_ss2dBgrid(gds) (gds[5] == 205) /* semi-staggered B grid 2 d*/ -#define GDS_has_dy(mode) ((mode) & 128) -#define GDS_LatLon_nx(gds) ((int) ((gds[6] << 8) + gds[7])) -#define GDS_LatLon_ny(gds) ((int) ((gds[8] << 8) + gds[9])) -#define GDS_LatLon_La1(gds) INT3(gds[10],gds[11],gds[12]) -#define GDS_LatLon_Lo1(gds) INT3(gds[13],gds[14],gds[15]) -#define GDS_LatLon_mode(gds) (gds[16]) -#define GDS_LatLon_La2(gds) INT3(gds[17],gds[18],gds[19]) -#define GDS_LatLon_Lo2(gds) INT3(gds[20],gds[21],gds[22]) +#define GDS_has_dy(mode) ((mode) & 128) +#define GDS_LatLon_nx(gds) ((int) ((gds[6] << 8) + gds[7])) +#define GDS_LatLon_ny(gds) ((int) ((gds[8] << 8) + gds[9])) +#define GDS_LatLon_La1(gds) INT3(gds[10],gds[11],gds[12]) +#define GDS_LatLon_Lo1(gds) INT3(gds[13],gds[14],gds[15]) +#define GDS_LatLon_mode(gds) (gds[16]) +#define GDS_LatLon_La2(gds) INT3(gds[17],gds[18],gds[19]) +#define GDS_LatLon_Lo2(gds) INT3(gds[20],gds[21],gds[22]) #define GDS_LatLon_dx(gds) (gds[16] & 128 ? INT2(gds[23],gds[24]) : 0) #define GDS_LatLon_dy(gds) (gds[16] & 128 ? INT2(gds[25],gds[26]) : 0) #define GDS_Gaussian_nlat(gds) ((gds[25]<<8)+gds[26]) -#define GDS_LatLon_scan(gds) (gds[27]) - -#define GDS_Polar_nx(gds) (gds[16] & 128 ? ((gds[6] << 8) + gds[7]) : 0) -#define GDS_Polar_ny(gds) (gds[16] & 128 ? ((gds[8] << 8) + gds[9]) : 0) -#define GDS_Polar_La1(gds) INT3(gds[10],gds[11],gds[12]) -#define GDS_Polar_Lo1(gds) INT3(gds[13],gds[14],gds[15]) -#define GDS_Polar_mode(gds) (gds[16]) -#define GDS_Polar_Lov(gds) INT3(gds[17],gds[18],gds[19]) -#define GDS_Polar_scan(gds) (gds[27]) -#define GDS_Polar_Dx(gds) INT3(gds[20], gds[21], gds[22]) -#define GDS_Polar_Dy(gds) INT3(gds[23], gds[24], gds[25]) -#define GDS_Polar_pole(gds) ((gds[26] & 128) == 128) - -#define GDS_Lambert_nx(gds) ((gds[6] << 8) + gds[7]) -#define GDS_Lambert_ny(gds) ((gds[8] << 8) + gds[9]) -#define GDS_Lambert_La1(gds) INT3(gds[10],gds[11],gds[12]) -#define GDS_Lambert_Lo1(gds) INT3(gds[13],gds[14],gds[15]) -#define GDS_Lambert_mode(gds) (gds[16]) -#define GDS_Lambert_Lov(gds) INT3(gds[17],gds[18],gds[19]) -#define GDS_Lambert_dx(gds) INT3(gds[20],gds[21],gds[22]) -#define GDS_Lambert_dy(gds) INT3(gds[23],gds[24],gds[25]) -#define GDS_Lambert_NP(gds) ((gds[26] & 128) == 0) +#define GDS_LatLon_scan(gds) (gds[27]) + +#define GDS_Polar_nx(gds) (gds[16] & 128 ? ((gds[6] << 8) + gds[7]) : 0) +#define GDS_Polar_ny(gds) (gds[16] & 128 ? ((gds[8] << 8) + gds[9]) : 0) +#define GDS_Polar_La1(gds) INT3(gds[10],gds[11],gds[12]) +#define GDS_Polar_Lo1(gds) INT3(gds[13],gds[14],gds[15]) +#define GDS_Polar_mode(gds) (gds[16]) +#define GDS_Polar_Lov(gds) INT3(gds[17],gds[18],gds[19]) +#define GDS_Polar_scan(gds) (gds[27]) +#define GDS_Polar_Dx(gds) INT3(gds[20], gds[21], gds[22]) +#define GDS_Polar_Dy(gds) INT3(gds[23], gds[24], gds[25]) +#define GDS_Polar_pole(gds) ((gds[26] & 128) == 128) + +#define GDS_Lambert_nx(gds) ((gds[6] << 8) + gds[7]) +#define GDS_Lambert_ny(gds) ((gds[8] << 8) + gds[9]) +#define GDS_Lambert_La1(gds) INT3(gds[10],gds[11],gds[12]) +#define GDS_Lambert_Lo1(gds) INT3(gds[13],gds[14],gds[15]) +#define GDS_Lambert_mode(gds) (gds[16]) +#define GDS_Lambert_Lov(gds) INT3(gds[17],gds[18],gds[19]) +#define GDS_Lambert_dx(gds) INT3(gds[20],gds[21],gds[22]) +#define GDS_Lambert_dy(gds) INT3(gds[23],gds[24],gds[25]) +#define GDS_Lambert_NP(gds) ((gds[26] & 128) == 0) #define GDS_Lambert_scan(gds) (gds[27]) -#define GDS_Lambert_Latin1(gds) INT3(gds[28],gds[29],gds[30]) -#define GDS_Lambert_Latin2(gds) INT3(gds[31],gds[32],gds[33]) -#define GDS_Lambert_LatSP(gds) INT3(gds[34],gds[35],gds[36]) +#define GDS_Lambert_Latin1(gds) INT3(gds[28],gds[29],gds[30]) +#define GDS_Lambert_Latin2(gds) INT3(gds[31],gds[32],gds[33]) +#define GDS_Lambert_LatSP(gds) INT3(gds[34],gds[35],gds[36]) /* bug found by Paul Schou 5/3/2011 - #define GDS_Lambert_LonSP(gds) INT3(gds[37],gds[37],gds[37]) + #define GDS_Lambert_LonSP(gds) INT3(gds[37],gds[37],gds[37]) */ -#define GDS_Lambert_LonSP(gds) INT3(gds[37],gds[38],gds[39]) +#define GDS_Lambert_LonSP(gds) INT3(gds[37],gds[38],gds[39]) -#define GDS_ssEgrid_n(gds) UINT2(gds[6],gds[7]) +#define GDS_ssEgrid_n(gds) UINT2(gds[6],gds[7]) #define GDS_ssEgrid_n_dum(gds) UINT2(gds[8],gds[9]) -#define GDS_ssEgrid_La1(gds) INT3(gds[10],gds[11],gds[12]) -#define GDS_ssEgrid_Lo1(gds) INT3(gds[13],gds[14],gds[15]) -#define GDS_ssEgrid_mode(gds) (gds[16]) -#define GDS_ssEgrid_La2(gds) UINT3(gds[17],gds[18],gds[19]) -#define GDS_ssEgrid_Lo2(gds) UINT3(gds[20],gds[21],gds[22]) -#define GDS_ssEgrid_di(gds) (gds[16] & 128 ? INT2(gds[23],gds[24]) : 0) -#define GDS_ssEgrid_dj(gds) (gds[16] & 128 ? INT2(gds[25],gds[26]) : 0) -#define GDS_ssEgrid_scan(gds) (gds[27]) - -#define GDS_fEgrid_n(gds) UINT2(gds[6],gds[7]) +#define GDS_ssEgrid_La1(gds) INT3(gds[10],gds[11],gds[12]) +#define GDS_ssEgrid_Lo1(gds) INT3(gds[13],gds[14],gds[15]) +#define GDS_ssEgrid_mode(gds) (gds[16]) +#define GDS_ssEgrid_La2(gds) UINT3(gds[17],gds[18],gds[19]) +#define GDS_ssEgrid_Lo2(gds) UINT3(gds[20],gds[21],gds[22]) +#define GDS_ssEgrid_di(gds) (gds[16] & 128 ? INT2(gds[23],gds[24]) : 0) +#define GDS_ssEgrid_dj(gds) (gds[16] & 128 ? INT2(gds[25],gds[26]) : 0) +#define GDS_ssEgrid_scan(gds) (gds[27]) + +#define GDS_fEgrid_n(gds) UINT2(gds[6],gds[7]) #define GDS_fEgrid_n_dum(gds) UINT2(gds[8],gds[9]) -#define GDS_fEgrid_La1(gds) INT3(gds[10],gds[11],gds[12]) -#define GDS_fEgrid_Lo1(gds) INT3(gds[13],gds[14],gds[15]) -#define GDS_fEgrid_mode(gds) (gds[16]) -#define GDS_fEgrid_La2(gds) UINT3(gds[17],gds[18],gds[19]) -#define GDS_fEgrid_Lo2(gds) UINT3(gds[20],gds[21],gds[22]) -#define GDS_fEgrid_di(gds) (gds[16] & 128 ? INT2(gds[23],gds[24]) : 0) -#define GDS_fEgrid_dj(gds) (gds[16] & 128 ? INT2(gds[25],gds[26]) : 0) -#define GDS_fEgrid_scan(gds) (gds[27]) +#define GDS_fEgrid_La1(gds) INT3(gds[10],gds[11],gds[12]) +#define GDS_fEgrid_Lo1(gds) INT3(gds[13],gds[14],gds[15]) +#define GDS_fEgrid_mode(gds) (gds[16]) +#define GDS_fEgrid_La2(gds) UINT3(gds[17],gds[18],gds[19]) +#define GDS_fEgrid_Lo2(gds) UINT3(gds[20],gds[21],gds[22]) +#define GDS_fEgrid_di(gds) (gds[16] & 128 ? INT2(gds[23],gds[24]) : 0) +#define GDS_fEgrid_dj(gds) (gds[16] & 128 ? INT2(gds[25],gds[26]) : 0) +#define GDS_fEgrid_scan(gds) (gds[27]) #define GDS_ss2dEgrid_nx(gds) UINT2(gds[6],gds[7]) #define GDS_ss2dEgrid_ny(gds) UINT2(gds[8],gds[9]) @@ -225,67 +224,67 @@ struct ParmTable { #define GDS_ss2dBgrid_Lo2(gds) INT3(gds[20],gds[21],gds[22]) #define GDS_ss2dBgrid_di(gds) (gds[16] & 128 ? INT2(gds[23],gds[24]) : 0) #define GDS_ss2dBgrid_dj(gds) (gds[16] & 128 ? INT2(gds[25],gds[26]) : 0) -#define GDS_ss2dBgrid_scan(gds) (gds[27]) - - -#define GDS_Merc_nx(gds) UINT2(gds[6],gds[7]) -#define GDS_Merc_ny(gds) UINT2(gds[8],gds[9]) -#define GDS_Merc_La1(gds) INT3(gds[10],gds[11],gds[12]) -#define GDS_Merc_Lo1(gds) INT3(gds[13],gds[14],gds[15]) -#define GDS_Merc_mode(gds) (gds[16]) -#define GDS_Merc_La2(gds) INT3(gds[17],gds[18],gds[19]) -#define GDS_Merc_Lo2(gds) INT3(gds[20],gds[21],gds[22]) -#define GDS_Merc_Latin(gds) INT3(gds[23],gds[24],gds[25]) -#define GDS_Merc_scan(gds) (gds[27]) +#define GDS_ss2dBgrid_scan(gds) (gds[27]) + + +#define GDS_Merc_nx(gds) UINT2(gds[6],gds[7]) +#define GDS_Merc_ny(gds) UINT2(gds[8],gds[9]) +#define GDS_Merc_La1(gds) INT3(gds[10],gds[11],gds[12]) +#define GDS_Merc_Lo1(gds) INT3(gds[13],gds[14],gds[15]) +#define GDS_Merc_mode(gds) (gds[16]) +#define GDS_Merc_La2(gds) INT3(gds[17],gds[18],gds[19]) +#define GDS_Merc_Lo2(gds) INT3(gds[20],gds[21],gds[22]) +#define GDS_Merc_Latin(gds) INT3(gds[23],gds[24],gds[25]) +#define GDS_Merc_scan(gds) (gds[27]) #define GDS_Merc_dx(gds) (gds[16] & 128 ? INT3(gds[28],gds[29],gds[30]) : 0) #define GDS_Merc_dy(gds) (gds[16] & 128 ? INT3(gds[31],gds[32],gds[33]) : 0) /* rotated Lat-lon grid */ -#define GDS_RotLL_nx(gds) UINT2(gds[6],gds[7]) -#define GDS_RotLL_ny(gds) UINT2(gds[8],gds[9]) -#define GDS_RotLL_La1(gds) INT3(gds[10],gds[11],gds[12]) -#define GDS_RotLL_Lo1(gds) INT3(gds[13],gds[14],gds[15]) -#define GDS_RotLL_mode(gds) (gds[16]) -#define GDS_RotLL_La2(gds) INT3(gds[17],gds[18],gds[19]) -#define GDS_RotLL_Lo2(gds) INT3(gds[20],gds[21],gds[22]) +#define GDS_RotLL_nx(gds) UINT2(gds[6],gds[7]) +#define GDS_RotLL_ny(gds) UINT2(gds[8],gds[9]) +#define GDS_RotLL_La1(gds) INT3(gds[10],gds[11],gds[12]) +#define GDS_RotLL_Lo1(gds) INT3(gds[13],gds[14],gds[15]) +#define GDS_RotLL_mode(gds) (gds[16]) +#define GDS_RotLL_La2(gds) INT3(gds[17],gds[18],gds[19]) +#define GDS_RotLL_Lo2(gds) INT3(gds[20],gds[21],gds[22]) #define GDS_RotLL_dx(gds) (gds[16] & 128 ? INT2(gds[23],gds[24]) : 0) #define GDS_RotLL_dy(gds) (gds[16] & 128 ? INT2(gds[25],gds[26]) : 0) -#define GDS_RotLL_scan(gds) (gds[27]) -#define GDS_RotLL_LaSP(gds) INT3(gds[32],gds[33],gds[34]) -#define GDS_RotLL_LoSP(gds) INT3(gds[35],gds[36],gds[37]) -#define GDS_RotLL_RotAng(gds) ibm2flt(&(gds[38])) +#define GDS_RotLL_scan(gds) (gds[27]) +#define GDS_RotLL_LaSP(gds) INT3(gds[32],gds[33],gds[34]) +#define GDS_RotLL_LoSP(gds) INT3(gds[35],gds[36],gds[37]) +#define GDS_RotLL_RotAng(gds) ibm2flt(&(gds[38])) /* Triangular grid of DWD */ -#define GDS_Triangular_ni2(gds) INT2(gds[6],gds[7]) -#define GDS_Triangular_ni3(gds) INT2(gds[8],gds[9]) -#define GDS_Triangular_ni(gds) INT3(gds[13],gds[14],gds[15]) +#define GDS_Triangular_ni2(gds) INT2(gds[6],gds[7]) +#define GDS_Triangular_ni3(gds) INT2(gds[8],gds[9]) +#define GDS_Triangular_ni(gds) INT3(gds[13],gds[14],gds[15]) #define GDS_Triangular_nd(gds) INT3(gds[10],gds[11],gds[12]) /* Harmonics data */ -#define GDS_Harmonic_nj(gds) ((int) ((gds[6] << 8) + gds[7])) -#define GDS_Harmonic_nk(gds) ((int) ((gds[8] << 8) + gds[9])) -#define GDS_Harmonic_nm(gds) ((int) ((gds[10] << 8) + gds[11])) +#define GDS_Harmonic_nj(gds) ((int) ((gds[6] << 8) + gds[7])) +#define GDS_Harmonic_nk(gds) ((int) ((gds[8] << 8) + gds[9])) +#define GDS_Harmonic_nm(gds) ((int) ((gds[10] << 8) + gds[11])) #define GDS_Harmonic_type(gds) (gds[12]) #define GDS_Harmonic_mode(gds) (gds[13]) /* index of NV and PV */ -#define GDS_PV(gds) ((gds[3] == 0) ? -1 : (int) gds[4] - 1) -#define GDS_PL(gds) ((gds[4] == 255) ? -1 : (int) gds[3] * 4 + (int) gds[4] - 1) +#define GDS_PV(gds) ((gds[3] == 0) ? -1 : (int) gds[4] - 1) +#define GDS_PL(gds) ((gds[4] == 255) ? -1 : (int) gds[3] * 4 + (int) gds[4] - 1) enum Def_NCEP_Table {rean, opn, rean_nowarn, opn_nowarn}; -unsigned char *seek_grib(FILE *file, unsigned long *pos, long *len_grib, - unsigned char *buffer, unsigned int buf_len); +unsigned char *seek_grib(FILE *file, unsigned long *pos, long *len_grib, + unsigned char *buffer, unsigned int buf_len); int read_grib(FILE *file, long pos, long len_grib, unsigned char *buffer); long echack(FILE *file, long pos, long len_grib); double ibm2flt(unsigned char *ibm); - + void BDS_unpack(float *flt, unsigned char *bds, unsigned char *bitmap, - int n_bits, int n, double ref, double scale); + int n_bits, int n, double ref, double scale); int BDS_NValues(unsigned char *bds); @@ -297,14 +296,14 @@ int wrtieee(float *array, int n, int header, FILE *output); int wrtieee_header(unsigned int n, FILE *output); void levels(int, int, int, int verbose); - + void PDStimes(int time_range, int p1, int p2, int time_unit); int missing_points(unsigned char *bitmap, int n); void EC_ext(unsigned char *pds, char *prefix, char *suffix, int verbose); -int GDS_grid(unsigned char *gds, unsigned char *bds, int *nx, int *ny, +int GDS_grid(unsigned char *gds, unsigned char *bds, int *nx, int *ny, long int *nxny); void GDS_prt_thin_lon(unsigned char *gds); @@ -339,80 +338,80 @@ void ensemble(unsigned char *pds, int mode); #endif #define __LEN24(pds) ((pds) == NULL ? 0 : (int) ((pds[0]<<16)+(pds[1]<<8)+pds[2])) -#define PDS_Len1(pds) (pds[0]) -#define PDS_Len2(pds) (pds[1]) -#define PDS_Len3(pds) (pds[2]) -#define PDS_LEN(pds) ((int) ((pds[0]<<16)+(pds[1]<<8)+pds[2])) -#define PDS_Vsn(pds) (pds[3]) -#define PDS_Center(pds) (pds[4]) -#define PDS_Model(pds) (pds[5]) -#define PDS_Grid(pds) (pds[6]) -#define PDS_HAS_GDS(pds) ((pds[7] & 128) != 0) -#define PDS_HAS_BMS(pds) ((pds[7] & 64) != 0) -#define PDS_PARAM(pds) (pds[8]) -#define PDS_L_TYPE(pds) (pds[9]) -#define PDS_LEVEL1(pds) (pds[10]) -#define PDS_LEVEL2(pds) (pds[11]) - -#define PDS_KPDS5(pds) (pds[8]) -#define PDS_KPDS6(pds) (pds[9]) -#define PDS_KPDS7(pds) ((int) ((pds[10]<<8) + pds[11])) +#define PDS_Len1(pds) (pds[0]) +#define PDS_Len2(pds) (pds[1]) +#define PDS_Len3(pds) (pds[2]) +#define PDS_LEN(pds) ((int) ((pds[0]<<16)+(pds[1]<<8)+pds[2])) +#define PDS_Vsn(pds) (pds[3]) +#define PDS_Center(pds) (pds[4]) +#define PDS_Model(pds) (pds[5]) +#define PDS_Grid(pds) (pds[6]) +#define PDS_HAS_GDS(pds) ((pds[7] & 128) != 0) +#define PDS_HAS_BMS(pds) ((pds[7] & 64) != 0) +#define PDS_PARAM(pds) (pds[8]) +#define PDS_L_TYPE(pds) (pds[9]) +#define PDS_LEVEL1(pds) (pds[10]) +#define PDS_LEVEL2(pds) (pds[11]) + +#define PDS_KPDS5(pds) (pds[8]) +#define PDS_KPDS6(pds) (pds[9]) +#define PDS_KPDS7(pds) ((int) ((pds[10]<<8) + pds[11])) /* this requires a 32-bit default integer machine */ -#define PDS_Field(pds) ((pds[8]<<24)+(pds[9]<<16)+(pds[10]<<8)+pds[11]) - -#define PDS_Year(pds) (pds[12]) -#define PDS_Month(pds) (pds[13]) -#define PDS_Day(pds) (pds[14]) -#define PDS_Hour(pds) (pds[15]) -#define PDS_Minute(pds) (pds[16]) -#define PDS_ForecastTimeUnit(pds) (pds[17]) -#define PDS_P1(pds) (pds[18]) -#define PDS_P2(pds) (pds[19]) -#define PDS_TimeRange(pds) (pds[20]) -#define PDS_NumAve(pds) ((int) ((pds[21]<<8)+pds[22])) -#define PDS_NumMissing(pds) (pds[23]) -#define PDS_Century(pds) (pds[24]) -#define PDS_Subcenter(pds) (pds[25]) -#define PDS_DecimalScale(pds) INT2(pds[26],pds[27]) +#define PDS_Field(pds) ((pds[8]<<24)+(pds[9]<<16)+(pds[10]<<8)+pds[11]) + +#define PDS_Year(pds) (pds[12]) +#define PDS_Month(pds) (pds[13]) +#define PDS_Day(pds) (pds[14]) +#define PDS_Hour(pds) (pds[15]) +#define PDS_Minute(pds) (pds[16]) +#define PDS_ForecastTimeUnit(pds) (pds[17]) +#define PDS_P1(pds) (pds[18]) +#define PDS_P2(pds) (pds[19]) +#define PDS_TimeRange(pds) (pds[20]) +#define PDS_NumAve(pds) ((int) ((pds[21]<<8)+pds[22])) +#define PDS_NumMissing(pds) (pds[23]) +#define PDS_Century(pds) (pds[24]) +#define PDS_Subcenter(pds) (pds[25]) +#define PDS_DecimalScale(pds) INT2(pds[26],pds[27]) /* old #define PDS_Year4(pds) (pds[12] + 100*(pds[24] - (pds[12] != 0))) */ #define PDS_Year4(pds) (pds[12] + 100*(pds[24] - 1)) /* various centers */ -#define NMC 7 -#define JMA 34 -#define ECMWF 98 -#define DWD 78 -#define CMC 54 -#define CPTEC 46 -#define CHM 146 -#define LAMI 200 +#define NMC 7 +#define JMA 34 +#define ECMWF 98 +#define DWD 78 +#define CMC 54 +#define CPTEC 46 +#define CHM 146 +#define LAMI 200 /* ECMWF Extensions */ -#define PDS_EcLocalId(pds) (PDS_LEN(pds) >= 41 ? (pds[40]) : 0) -#define PDS_EcClass(pds) (PDS_LEN(pds) >= 42 ? (pds[41]) : 0) -#define PDS_EcType(pds) (PDS_LEN(pds) >= 43 ? (pds[42]) : 0) -#define PDS_EcStream(pds) (PDS_LEN(pds) >= 45 ? (INT2(pds[43], pds[44])) : 0) +#define PDS_EcLocalId(pds) (PDS_LEN(pds) >= 41 ? (pds[40]) : 0) +#define PDS_EcClass(pds) (PDS_LEN(pds) >= 42 ? (pds[41]) : 0) +#define PDS_EcType(pds) (PDS_LEN(pds) >= 43 ? (pds[42]) : 0) +#define PDS_EcStream(pds) (PDS_LEN(pds) >= 45 ? (INT2(pds[43], pds[44])) : 0) -#define PDS_EcENS(pds) (PDS_LEN(pds) >= 52 && pds[40] == 1 && \ - pds[43] * 256 + pds[44] == 1035 && pds[50] != 0) -#define PDS_EcFcstNo(pds) (pds[49]) +#define PDS_EcENS(pds) (PDS_LEN(pds) >= 52 && pds[40] == 1 && \ + pds[43] * 256 + pds[44] == 1035 && pds[50] != 0) +#define PDS_EcFcstNo(pds) (pds[49]) -#define PDS_Ec16Version(pds) (pds + 45) -#define PDS_Ec16Number(pds) (PDS_EcLocalId(pds) == 16 ? UINT2(pds[49],pds[50]) : 0) -#define PDS_Ec16SysNum(pds) (PDS_EcLocalId(pds) == 16 ? UINT2(pds[51],pds[52]) : 0) -#define PDS_Ec16MethodNum(pds) (PDS_EcLocalId(pds) == 16 ? UINT2(pds[53],pds[54]) : 0) -#define PDS_Ec16VerfMon(pds) (PDS_EcLocalId(pds) == 16 ? UINT4(pds[55],pds[56],pds[57],pds[58]) : 0) -#define PDS_Ec16AvePeriod(pds) (PDS_EcLocalId(pds) == 16 ? pds[59] : 0) -#define PDS_Ec16FcstMon(pds) (PDS_EcLocalId(pds) == 16 ? UINT2(pds[60],pds[61]) : 0) +#define PDS_Ec16Version(pds) (pds + 45) +#define PDS_Ec16Number(pds) (PDS_EcLocalId(pds) == 16 ? UINT2(pds[49],pds[50]) : 0) +#define PDS_Ec16SysNum(pds) (PDS_EcLocalId(pds) == 16 ? UINT2(pds[51],pds[52]) : 0) +#define PDS_Ec16MethodNum(pds) (PDS_EcLocalId(pds) == 16 ? UINT2(pds[53],pds[54]) : 0) +#define PDS_Ec16VerfMon(pds) (PDS_EcLocalId(pds) == 16 ? UINT4(pds[55],pds[56],pds[57],pds[58]) : 0) +#define PDS_Ec16AvePeriod(pds) (PDS_EcLocalId(pds) == 16 ? pds[59] : 0) +#define PDS_Ec16FcstMon(pds) (PDS_EcLocalId(pds) == 16 ? UINT2(pds[60],pds[61]) : 0) /* NCEP Extensions */ -#define PDS_NcepENS(pds) (PDS_LEN(pds) >= 44 && pds[25] == 2 && pds[40] == 1) -#define PDS_NcepFcstType(pds) (pds[41]) -#define PDS_NcepFcstNo(pds) (pds[42]) -#define PDS_NcepFcstProd(pds) (pds[43]) +#define PDS_NcepENS(pds) (PDS_LEN(pds) >= 44 && pds[25] == 2 && pds[40] == 1) +#define PDS_NcepFcstType(pds) (pds[41]) +#define PDS_NcepFcstNo(pds) (pds[42]) +#define PDS_NcepFcstProd(pds) (pds[43]) /* time units */ @@ -433,7 +432,7 @@ void ensemble(unsigned char *pds, int mode); -#define VERSION "v1.8.2 (3-17) Wesley Ebisuzaki\n\t\tDWD-tables 2,201-205 (11-28-2005) Helmut P. Frank\n\t\tspectral: Luis Kornblueh (MPI)" +#define VERSION "v1.8.5 (9-2023) Wesley Ebisuzaki\n\t\tDWD-tables 2,201-205 (11-28-2005) Helmut P. Frank\n\t\tspectral: Luis Kornblueh (MPI)" #define CHECK_GRIB /* #define DEBUG */ @@ -442,10 +441,10 @@ void ensemble(unsigned char *pds, int mode); * wgrib.c is placed into the public domain. While you could * legally do anything you want with the code, telling the world * that you wrote it would be uncool. Selling it would be really - * uncool. The code was originally written for NMC/NCAR Reanalysis + * uncool. The code was originally written for NMC/NCAR Reanalysis * and handles most GRIB files except for the ECMWF spectral files. * (ECMWF's spectral->grid code are copyrighted and in FORTRAN.) - * The code, as usual, is not waranteed to be fit for any purpose + * The code, as usual, is not waranteed to be fit for any purpose * what so ever. However, wgrib is operational NCEP code, so it * better work for our files. */ @@ -464,7 +463,7 @@ void ensemble(unsigned char *pds, int mode); */ #define MSEEK 1024 -#define BUFF_ALLOC0 40000 +#define BUFF_ALLOC0 40000 #ifndef min @@ -473,7 +472,7 @@ void ensemble(unsigned char *pds, int mode); #endif #ifndef DEF_T62_NCEP_TABLE -#define DEF_T62_NCEP_TABLE rean +#define DEF_T62_NCEP_TABLE rean #endif enum Def_NCEP_Table def_ncep_table = DEF_T62_NCEP_TABLE; int minute = 0; @@ -493,8 +492,8 @@ int main(int argc, char **argv) { FILE *input, *dump_file = NULL; char line[2000]; enum {BINARY, TEXT, IEEE, GRIB, NONE} output_type = NONE; - enum {DUMP_ALL, DUMP_RECORD, DUMP_POSITION, DUMP_LIST, INVENTORY} - mode = INVENTORY; + enum {DUMP_ALL, DUMP_RECORD, DUMP_POSITION, DUMP_LIST, INVENTORY} + mode = INVENTORY; enum {none, dwd, simple} header = simple; long int dump = -1; @@ -504,186 +503,186 @@ int main(int argc, char **argv) { int return_code = 0; if (argc == 1) { - fprintf(stderr, "\nPortable Grib decoder for %s etc.\n", - (def_ncep_table == opn_nowarn || def_ncep_table == opn) ? - "NCEP Operations" : "NCEP/NCAR Reanalysis"); - fprintf(stderr, " it slices, dices %s\n", VERSION); - fprintf(stderr, " usage: %s [grib file] [options]\n\n", argv[0]); - - fprintf(stderr, "Inventory/diagnostic-output selections\n"); - fprintf(stderr, " -s/-v short/verbose inventory\n"); - fprintf(stderr, " -V diagnostic output (not inventory)\n"); - fprintf(stderr, " (none) regular inventory\n"); - - fprintf(stderr, " Options\n"); - fprintf(stderr, " -PDS/-PDS10 print PDS in hex/decimal\n"); - fprintf(stderr, " -GDS/-GDS10 print GDS in hex/decimal\n"); - fprintf(stderr, " -verf print forecast verification time\n"); - fprintf(stderr, " -ncep_opn/-ncep_rean default T62 NCEP grib table\n"); - fprintf(stderr, " -4yr print year using 4 digits\n"); - fprintf(stderr, " -min print minutes\n"); - fprintf(stderr, " -ncep_ens ensemble info encoded in ncep format\n"); - - fprintf(stderr, "Decoding GRIB selection\n"); - fprintf(stderr, " -d [record number|all] decode record number\n"); - fprintf(stderr, " -p [byte position] decode record at byte position\n"); - fprintf(stderr, " -i decode controlled by stdin (inventory list)\n"); - fprintf(stderr, " (none) no decoding\n"); - - fprintf(stderr, " Options\n"); - fprintf(stderr, " -text/-ieee/-grib/-bin convert to text/ieee/grib/bin (default)\n"); - fprintf(stderr, " -nh/-h output will have no headers/headers (default)\n"); - fprintf(stderr, " -dwdgrib output dwd headers, grib (do not append)\n"); - fprintf(stderr, " -H output will include PDS and GDS (-bin/-ieee only)\n"); - fprintf(stderr, " -append append to output file\n"); - fprintf(stderr, " -o [file] output file name, 'dump' is default\n"); - fprintf(stderr, " Misc\n"); - fprintf(stderr, " -cmc [file] use NCEP tables for CMC (dangerous)\n"); - exit(8); + fprintf(stderr, "\nPortable Grib decoder for %s etc.\n", + (def_ncep_table == opn_nowarn || def_ncep_table == opn) ? + "NCEP Operations" : "NCEP/NCAR Reanalysis"); + fprintf(stderr, " it slices, dices %s\n", VERSION); + fprintf(stderr, " usage: %s [grib file] [options]\n\n", argv[0]); + + fprintf(stderr, "Inventory/diagnostic-output selections\n"); + fprintf(stderr, " -s/-v short/verbose inventory\n"); + fprintf(stderr, " -V diagnostic output (not inventory)\n"); + fprintf(stderr, " (none) regular inventory\n"); + + fprintf(stderr, " Options\n"); + fprintf(stderr, " -PDS/-PDS10 print PDS in hex/decimal\n"); + fprintf(stderr, " -GDS/-GDS10 print GDS in hex/decimal\n"); + fprintf(stderr, " -verf print forecast verification time\n"); + fprintf(stderr, " -ncep_opn/-ncep_rean default T62 NCEP grib table\n"); + fprintf(stderr, " -4yr print year using 4 digits\n"); + fprintf(stderr, " -min print minutes\n"); + fprintf(stderr, " -ncep_ens ensemble info encoded in ncep format\n"); + + fprintf(stderr, "Decoding GRIB selection\n"); + fprintf(stderr, " -d [record number|all] decode record number\n"); + fprintf(stderr, " -p [byte position] decode record at byte position\n"); + fprintf(stderr, " -i decode controlled by stdin (inventory list)\n"); + fprintf(stderr, " (none) no decoding\n"); + + fprintf(stderr, " Options\n"); + fprintf(stderr, " -text/-ieee/-grib/-bin convert to text/ieee/grib/bin (default)\n"); + fprintf(stderr, " -nh/-h output will have no headers/headers (default)\n"); + fprintf(stderr, " -dwdgrib output dwd headers, grib (do not append)\n"); + fprintf(stderr, " -H output will include PDS and GDS (-bin/-ieee only)\n"); + fprintf(stderr, " -append append to output file\n"); + fprintf(stderr, " -o [file] output file name, 'dump' is default\n"); + fprintf(stderr, " Misc\n"); + fprintf(stderr, " -cmc [file] use NCEP tables for CMC (dangerous)\n"); + exit(8); } file_arg = 0; for (i = 1; i < argc; i++) { - if (strcmp(argv[i],"-PDS") == 0) { - print_PDS = 1; - continue; - } - if (strcmp(argv[i],"-PDS10") == 0) { - print_PDS10 = 1; - continue; - } - if (strcmp(argv[i],"-GDS") == 0) { - print_GDS = 1; - continue; - } - if (strcmp(argv[i],"-GDS10") == 0) { - print_GDS10 = 1; - continue; - } - if (strcmp(argv[i],"-v") == 0) { - verbose = 1; - continue; - } - if (strcmp(argv[i],"-V") == 0) { - verbose = 2; - continue; - } - if (strcmp(argv[i],"-s") == 0) { - verbose = -1; - continue; - } - if (strcmp(argv[i],"-text") == 0) { - output_type = TEXT; - continue; - } - if (strcmp(argv[i],"-bin") == 0) { - output_type = BINARY; - continue; - } - if (strcmp(argv[i],"-ieee") == 0) { - output_type = IEEE; - continue; - } - if (strcmp(argv[i],"-grib") == 0) { - output_type = GRIB; - continue; - } - if (strcmp(argv[i],"-nh") == 0) { - header = none; - continue; - } - if (strcmp(argv[i],"-h") == 0) { - header = simple; - continue; - } - if (strcmp(argv[i],"-dwdgrib") == 0) { - header = dwd; - output_type = GRIB; - continue; - } - if (strcmp(argv[i],"-append") == 0) { - append = 1; - continue; - } - if (strcmp(argv[i],"-verf") == 0) { - v_time = 1; - continue; - } - if (strcmp(argv[i],"-cmc") == 0) { - cmc_eq_ncep = 1; - continue; - } - if (strcmp(argv[i],"-d") == 0) { - if (strcmp(argv[i+1],"all") == 0) { - mode = DUMP_ALL; - } - else { - dump = atol(argv[i+1]); - mode = DUMP_RECORD; - } - i++; - if (output_type == NONE) output_type = BINARY; - continue; - } - if (strcmp(argv[i],"-p") == 0) { - pos = atol(argv[i+1]); - i++; - dump = 1; - if (output_type == NONE) output_type = BINARY; - mode = DUMP_POSITION; - continue; - } - if (strcmp(argv[i],"-i") == 0) { - if (output_type == NONE) output_type = BINARY; - mode = DUMP_LIST; - continue; - } - if (strcmp(argv[i],"-H") == 0) { - output_PDS_GDS = 1; - continue; - } - if (strcmp(argv[i],"-NH") == 0) { - output_PDS_GDS = 0; - continue; - } - if (strcmp(argv[i],"-4yr") == 0) { - year_4 = 1; - continue; - } - if (strcmp(argv[i],"-ncep_opn") == 0) { - def_ncep_table = opn_nowarn; - continue; - } - if (strcmp(argv[i],"-ncep_rean") == 0) { - def_ncep_table = rean_nowarn; - continue; - } - if (strcmp(argv[i],"-o") == 0) { - dump_file_name = argv[i+1]; - i++; - continue; - } - if (strcmp(argv[i],"--v") == 0) { - printf("wgrib: %s\n", VERSION); - exit(0); - } - if (strcmp(argv[i],"-min") == 0) { - minute = 1; - continue; - } - if (strcmp(argv[i],"-ncep_ens") == 0) { - ncep_ens = 1; - continue; - } - if (file_arg == 0) { - file_arg = i; + if (strcmp(argv[i],"-PDS") == 0) { + print_PDS = 1; + continue; + } + if (strcmp(argv[i],"-PDS10") == 0) { + print_PDS10 = 1; + continue; + } + if (strcmp(argv[i],"-GDS") == 0) { + print_GDS = 1; + continue; + } + if (strcmp(argv[i],"-GDS10") == 0) { + print_GDS10 = 1; + continue; + } + if (strcmp(argv[i],"-v") == 0) { + verbose = 1; + continue; + } + if (strcmp(argv[i],"-V") == 0) { + verbose = 2; + continue; + } + if (strcmp(argv[i],"-s") == 0) { + verbose = -1; + continue; + } + if (strcmp(argv[i],"-text") == 0) { + output_type = TEXT; + continue; + } + if (strcmp(argv[i],"-bin") == 0) { + output_type = BINARY; + continue; + } + if (strcmp(argv[i],"-ieee") == 0) { + output_type = IEEE; + continue; + } + if (strcmp(argv[i],"-grib") == 0) { + output_type = GRIB; + continue; + } + if (strcmp(argv[i],"-nh") == 0) { + header = none; + continue; + } + if (strcmp(argv[i],"-h") == 0) { + header = simple; + continue; + } + if (strcmp(argv[i],"-dwdgrib") == 0) { + header = dwd; + output_type = GRIB; + continue; + } + if (strcmp(argv[i],"-append") == 0) { + append = 1; + continue; + } + if (strcmp(argv[i],"-verf") == 0) { + v_time = 1; + continue; } - else { - fprintf(stderr,"argument: %s ????\n", argv[i]); + if (strcmp(argv[i],"-cmc") == 0) { + cmc_eq_ncep = 1; + continue; } + if (strcmp(argv[i],"-d") == 0) { + if (strcmp(argv[i+1],"all") == 0) { + mode = DUMP_ALL; + } + else { + dump = atol(argv[i+1]); + mode = DUMP_RECORD; + } + i++; + if (output_type == NONE) output_type = BINARY; + continue; + } + if (strcmp(argv[i],"-p") == 0) { + pos = atol(argv[i+1]); + i++; + dump = 1; + if (output_type == NONE) output_type = BINARY; + mode = DUMP_POSITION; + continue; + } + if (strcmp(argv[i],"-i") == 0) { + if (output_type == NONE) output_type = BINARY; + mode = DUMP_LIST; + continue; + } + if (strcmp(argv[i],"-H") == 0) { + output_PDS_GDS = 1; + continue; + } + if (strcmp(argv[i],"-NH") == 0) { + output_PDS_GDS = 0; + continue; + } + if (strcmp(argv[i],"-4yr") == 0) { + year_4 = 1; + continue; + } + if (strcmp(argv[i],"-ncep_opn") == 0) { + def_ncep_table = opn_nowarn; + continue; + } + if (strcmp(argv[i],"-ncep_rean") == 0) { + def_ncep_table = rean_nowarn; + continue; + } + if (strcmp(argv[i],"-o") == 0) { + dump_file_name = argv[i+1]; + i++; + continue; + } + if (strcmp(argv[i],"--v") == 0) { + printf("wgrib: %s\n", VERSION); + exit(0); + } + if (strcmp(argv[i],"-min") == 0) { + minute = 1; + continue; + } + if (strcmp(argv[i],"-ncep_ens") == 0) { + ncep_ens = 1; + continue; + } + if (file_arg == 0) { + file_arg = i; + } + else { + fprintf(stderr,"argument: %s ????\n", argv[i]); + } } if (file_arg == 0) { - fprintf(stderr,"no GRIB file to process\n"); - exit(8); + fprintf(stderr,"no GRIB file to process\n"); + exit(8); } if ((input = fopen(argv[file_arg],"rb")) == NULL) { fprintf(stderr,"could not open file: %s\n", argv[file_arg]); @@ -691,53 +690,53 @@ int main(int argc, char **argv) { } if ((buffer = (unsigned char *) malloc(BUFF_ALLOC0)) == NULL) { - fprintf(stderr,"not enough memory\n"); + fprintf(stderr,"not enough memory\n"); } buffer_size = BUFF_ALLOC0; /* open output file */ if (mode != INVENTORY) { - open_parm[0] = append ? 'a' : 'w'; open_parm[1] = 'b'; open_parm[2] = '\0'; - if (output_type == TEXT) open_parm[1] = '\0'; + open_parm[0] = append ? 'a' : 'w'; open_parm[1] = 'b'; open_parm[2] = '\0'; + if (output_type == TEXT) open_parm[1] = '\0'; - if ((dump_file = fopen(dump_file_name,open_parm)) == NULL) { - fprintf(stderr,"could not open dump file\n"); - exit(8); + if ((dump_file = fopen(dump_file_name,open_parm)) == NULL) { + fprintf(stderr,"could not open dump file\n"); + exit(8); } - if (header == dwd && output_type == GRIB) wrtieee_header(0, dump_file); + if (header == dwd && output_type == GRIB) wrtieee_header(0, dump_file); } /* skip dump - 1 records */ for (i = 1; i < dump; i++) { - msg = seek_grib(input, &pos, &len_grib, buffer, MSEEK); - if (msg == NULL) { - fprintf(stderr, "ran out of data or bad file\n"); - exit(8); - } - pos += len_grib; + msg = seek_grib(input, &pos, &len_grib, buffer, MSEEK); + if (msg == NULL) { + fprintf(stderr, "ran out of data or bad file\n"); + exit(8); + } + pos += len_grib; } if (dump > 0) count += dump - 1; n_dump = 0; for (;;) { - if (n_dump == 1 && (mode == DUMP_RECORD || mode == DUMP_POSITION)) break; - if (mode == DUMP_LIST) { - if (fgets(line,sizeof(line), stdin) == NULL) break; + if (n_dump == 1 && (mode == DUMP_RECORD || mode == DUMP_POSITION)) break; + if (mode == DUMP_LIST) { + if (fgets(line,sizeof(line), stdin) == NULL) break; line[sizeof(line) - 1] = 0; if (sscanf(line,"%ld:%lu:", &count, &pos) != 2) { - fprintf(stderr,"bad input from stdin\n"); + fprintf(stderr,"bad input from stdin\n"); fprintf(stderr," %s\n", line); - exit(8); - } - } - - fail: - msg = seek_grib(input, &pos, &len_grib, buffer, MSEEK); - if (msg == NULL) { - if (mode == INVENTORY || mode == DUMP_ALL) break; - fprintf(stderr,"missing GRIB record(s)\n"); - exit(8); - } + exit(8); + } + } + +fail: + msg = seek_grib(input, &pos, &len_grib, buffer, MSEEK); + if (msg == NULL) { + if (mode == INVENTORY || mode == DUMP_ALL) break; + fprintf(stderr,"missing GRIB record(s)\n"); + exit(8); + } /* read all whole grib record */ if (len_grib + msg - buffer > buffer_size) { @@ -749,45 +748,45 @@ int main(int argc, char **argv) { } } if (read_grib(input, pos, len_grib, buffer) == 0) { - fprintf(stderr,"error, could not read to end of record %ld\n",count); - exit(8); - } + fprintf(stderr,"error, could not read to end of record %ld\n",count); + exit(8); + } - /* parse grib message */ + /* parse grib message */ - msg = buffer; - end_msg = msg + len_grib - 1; + msg = buffer; + end_msg = msg + len_grib - 1; - /* check if last 4 bytes are '7777' */ + /* check if last 4 bytes are '7777' */ -// simple check is for last 4 bytes == '7777' -// better check to see if pointers don't go past end_msg +// simple check is for last 4 bytes == '7777' +// better check to see if pointers don't go past end_msg // if (end_msg[0] != 0x37 || end_msg[-1] != 0x37 || end_msg[-2] != 0x37 || end_msg[-3] != 0x37) { -// fprintf(stderr,"Skipping illegal grib1 message: error expected ending 7777\n"); -// pos++; -// goto fail; -// } - - if (msg + 8 + 27 > end_msg) { - pos++; - goto fail; - } +// fprintf(stderr,"Skipping illegal grib1 message: error expected ending 7777\n"); +// pos++; +// goto fail; +// } + + if (msg + 8 + 27 > end_msg) { + pos++; + goto fail; + } pds = (msg + 8); pointer = pds + PDS_LEN(pds); - if (pointer > end_msg) { - pos++; - goto fail; - } + if (pointer > end_msg) { + pos++; + goto fail; + } if (PDS_HAS_GDS(pds)) { gds = pointer; pointer += GDS_LEN(gds); - if (pointer > end_msg) { - pos++; - goto fail; - } + if (pointer > end_msg) { + pos++; + goto fail; + } } else { gds = NULL; @@ -801,388 +800,388 @@ int main(int argc, char **argv) { bms = NULL; } - if (pointer+10 > end_msg) { - pos++; - goto fail; - } + if (pointer+10 > end_msg) { + pos++; + goto fail; + } bds = pointer; pointer += BDS_LEN(bds); - if (pointer-msg+4 != len_grib) { - fprintf(stderr,"Len of grib message is inconsistent.\n"); - } + if (pointer-msg+4 != len_grib) { + fprintf(stderr,"Len of grib message is inconsistent.\n"); + } /* end section - "7777" in ascii */ if (pointer[0] != 0x37 || pointer[1] != 0x37 || pointer[2] != 0x37 || pointer[3] != 0x37) { fprintf(stderr,"\n\n missing end section\n"); - fprintf(stderr, "%2x %2x %2x %2x\n", pointer[0], pointer[1], - pointer[2], pointer[3]); + fprintf(stderr, "%2x %2x %2x %2x\n", pointer[0], pointer[1], + pointer[2], pointer[3]); #ifdef DEBUG - printf("ignoring missing end section\n"); + printf("ignoring missing end section\n"); #else - exit(8); + exit(8); #endif } - /* figure out size of array */ - if (gds != NULL) { - GDS_grid(gds, bds, &nx, &ny, &nxny); - } - else if (bms != NULL) { - nxny = nx = BMS_nxny(bms); - ny = 1; - } - else { - if (BDS_NumBits(bds) == 0) { + /* figure out size of array */ + if (gds != NULL) { + GDS_grid(gds, bds, &nx, &ny, &nxny); + } + else if (bms != NULL) { + nxny = nx = BMS_nxny(bms); + ny = 1; + } + else { + if (BDS_NumBits(bds) == 0) { nxny = nx = 1; fprintf(stderr,"Missing GDS, constant record .. cannot " - "determine number of data points\n"); - } - else { - nxny = nx = BDS_NValues(bds); - } - ny = 1; - } + "determine number of data points\n"); + } + else { + nxny = nx = BDS_NValues(bds); + } + ny = 1; + } #ifdef CHECK_GRIB - if (gds && ! GDS_Harmonic(gds)) { - /* this grib check only works for simple packing */ - /* turn off if harmonic */ - if (BDS_NumBits(bds) != 0) { - i = BDS_NValues(bds); - if (bms != NULL) { - i += missing_points(BMS_bitmap(bms),nxny); - } - if (i != nxny) { - fprintf(stderr,"grib header at record %ld: two values of nxny %ld %d\n", - count,nxny,i); - fprintf(stderr," LEN %d DataStart %d UnusedBits %d #Bits %d nxny %ld\n", - BDS_LEN(bds), BDS_DataStart(bds),BDS_UnusedBits(bds), - BDS_NumBits(bds), nxny); - return_code = 15; - nxny = nx = i; - ny = 1; - } - } - + if (gds && ! GDS_Harmonic(gds)) { + /* this grib check only works for simple packing */ + /* turn off if harmonic */ + if (BDS_NumBits(bds) != 0) { + i = BDS_NValues(bds); + if (bms != NULL) { + i += missing_points(BMS_bitmap(bms),nxny); + } + if (i != nxny) { + fprintf(stderr,"grib header at record %ld: two values of nxny %ld %d\n", + count,nxny,i); + fprintf(stderr," LEN %d DataStart %d UnusedBits %d #Bits %d nxny %ld\n", + BDS_LEN(bds), BDS_DataStart(bds),BDS_UnusedBits(bds), + BDS_NumBits(bds), nxny); + return_code = 15; + nxny = nx = i; + ny = 1; + } + } + } #endif - + if (verbose <= 0) { - printf("%ld:%lu:d=", count, pos); - PDS_date(pds,year_4,v_time); - printf(":%s:", k5toa(pds)); + printf("%ld:%lu:d=", count, pos); + PDS_date(pds,year_4,v_time); + printf(":%s:", k5toa(pds)); if (verbose == 0) printf("kpds5=%d:kpds6=%d:kpds7=%d:TR=%d:P1=%d:P2=%d:TimeU=%d:", - PDS_PARAM(pds),PDS_KPDS6(pds),PDS_KPDS7(pds), - PDS_TimeRange(pds),PDS_P1(pds),PDS_P2(pds), - PDS_ForecastTimeUnit(pds)); - levels(PDS_KPDS6(pds), PDS_KPDS7(pds),PDS_Center(pds),verbose); printf(":"); - PDStimes(PDS_TimeRange(pds),PDS_P1(pds),PDS_P2(pds), - PDS_ForecastTimeUnit(pds)); - if (PDS_Center(pds) == ECMWF) EC_ext(pds,"",":",verbose); - ensemble(pds, verbose); - printf("NAve=%d",PDS_NumAve(pds)); - if (print_PDS || print_PDS10) print_pds(pds, print_PDS, print_PDS10, verbose); - if (gds && (print_GDS || print_GDS10)) print_gds(gds, print_GDS, print_GDS10, verbose); + PDS_PARAM(pds),PDS_KPDS6(pds),PDS_KPDS7(pds), + PDS_TimeRange(pds),PDS_P1(pds),PDS_P2(pds), + PDS_ForecastTimeUnit(pds)); + levels(PDS_KPDS6(pds), PDS_KPDS7(pds),PDS_Center(pds),verbose); printf(":"); + PDStimes(PDS_TimeRange(pds),PDS_P1(pds),PDS_P2(pds), + PDS_ForecastTimeUnit(pds)); + if (PDS_Center(pds) == ECMWF) EC_ext(pds,"",":",verbose); + ensemble(pds, verbose); + printf("NAve=%d",PDS_NumAve(pds)); + if (print_PDS || print_PDS10) print_pds(pds, print_PDS, print_PDS10, verbose); + if (gds && (print_GDS || print_GDS10)) print_gds(gds, print_GDS, print_GDS10, verbose); printf("\n"); - } - else if (verbose == 1) { - printf("%ld:%lu:D=", count, pos); + } + else if (verbose == 1) { + printf("%ld:%lu:D=", count, pos); PDS_date(pds, 1, v_time); - printf(":%s:", k5toa(pds)); - levels(PDS_KPDS6(pds), PDS_KPDS7(pds), PDS_Center(pds),verbose); printf(":"); + printf(":%s:", k5toa(pds)); + levels(PDS_KPDS6(pds), PDS_KPDS7(pds), PDS_Center(pds),verbose); printf(":"); printf("kpds=%d,%d,%d:", - PDS_PARAM(pds),PDS_KPDS6(pds),PDS_KPDS7(pds)); - PDStimes(PDS_TimeRange(pds),PDS_P1(pds),PDS_P2(pds), - PDS_ForecastTimeUnit(pds)); - if (PDS_Center(pds) == ECMWF) EC_ext(pds,"",":",verbose); - ensemble(pds, verbose); - GDS_winds(gds, verbose); + PDS_PARAM(pds),PDS_KPDS6(pds),PDS_KPDS7(pds)); + PDStimes(PDS_TimeRange(pds),PDS_P1(pds),PDS_P2(pds), + PDS_ForecastTimeUnit(pds)); + if (PDS_Center(pds) == ECMWF) EC_ext(pds,"",":",verbose); + ensemble(pds, verbose); + GDS_winds(gds, verbose); printf("\"%s", k5_comments(pds)); - if (print_PDS || print_PDS10) print_pds(pds, print_PDS, print_PDS10, verbose); - if (gds && (print_GDS || print_GDS10)) print_gds(gds, print_GDS, print_GDS10, verbose); + if (print_PDS || print_PDS10) print_pds(pds, print_PDS, print_PDS10, verbose); + if (gds && (print_GDS || print_GDS10)) print_gds(gds, print_GDS, print_GDS10, verbose); printf("\n"); - } + } else if (verbose == 2) { - printf("rec %ld:%lu:date ", count, pos); - PDS_date(pds, 1, v_time); - printf(" %s kpds5=%d kpds6=%d kpds7=%d levels=(%d,%d) grid=%d ", - k5toa(pds), PDS_PARAM(pds), PDS_KPDS6(pds), PDS_KPDS7(pds), - PDS_LEVEL1(pds), PDS_LEVEL2(pds), PDS_Grid(pds)); - levels(PDS_KPDS6(pds),PDS_KPDS7(pds),PDS_Center(pds),verbose); - - printf(" "); - if (PDS_Center(pds) == ECMWF) EC_ext(pds,""," ",verbose); - ensemble(pds, verbose); - PDStimes(PDS_TimeRange(pds),PDS_P1(pds),PDS_P2(pds), - PDS_ForecastTimeUnit(pds)); - if (bms != NULL) - printf(" bitmap: %d undef", missing_points(BMS_bitmap(bms),nxny)); + printf("rec %ld:%lu:date ", count, pos); + PDS_date(pds, 1, v_time); + printf(" %s kpds5=%d kpds6=%d kpds7=%d levels=(%d,%d) grid=%d ", + k5toa(pds), PDS_PARAM(pds), PDS_KPDS6(pds), PDS_KPDS7(pds), + PDS_LEVEL1(pds), PDS_LEVEL2(pds), PDS_Grid(pds)); + levels(PDS_KPDS6(pds),PDS_KPDS7(pds),PDS_Center(pds),verbose); + + printf(" "); + if (PDS_Center(pds) == ECMWF) EC_ext(pds,""," ",verbose); + ensemble(pds, verbose); + PDStimes(PDS_TimeRange(pds),PDS_P1(pds),PDS_P2(pds), + PDS_ForecastTimeUnit(pds)); + if (bms != NULL) + printf(" bitmap: %d undef", missing_points(BMS_bitmap(bms),nxny)); printf("\n %s=%s\n", k5toa(pds), k5_comments(pds)); - + printf(" timerange %d P1 %d P2 %d TimeU %d nx %d ny %d GDS grid %d " - "num_in_ave %d missing %d\n", - PDS_TimeRange(pds),PDS_P1(pds),PDS_P2(pds), - PDS_ForecastTimeUnit(pds), nx, ny, - gds == NULL ? -1 : GDS_DataType(gds), - PDS_NumAve(pds), PDS_NumMissing(pds)); - - printf(" center %d subcenter %d process %d Table %d", - PDS_Center(pds),PDS_Subcenter(pds),PDS_Model(pds), - PDS_Vsn(pds)); - GDS_winds(gds, verbose); - printf("\n"); - - if (gds && GDS_LatLon(gds) && nx != -1) - printf(" latlon: lat %f to %f by %f nxny %ld\n" + "num_in_ave %d missing %d\n", + PDS_TimeRange(pds),PDS_P1(pds),PDS_P2(pds), + PDS_ForecastTimeUnit(pds), nx, ny, + gds == NULL ? -1 : GDS_DataType(gds), + PDS_NumAve(pds), PDS_NumMissing(pds)); + + printf(" center %d subcenter %d process %d Table %d", + PDS_Center(pds),PDS_Subcenter(pds),PDS_Model(pds), + PDS_Vsn(pds)); + GDS_winds(gds, verbose); + printf("\n"); + + if (gds && GDS_LatLon(gds) && nx != -1) + printf(" latlon: lat %f to %f by %f nxny %ld\n" " long %f to %f by %f, (%d x %d) scan %d " "mode %d bdsgrid %d\n", - 0.001*GDS_LatLon_La1(gds), 0.001*GDS_LatLon_La2(gds), - 0.001*GDS_LatLon_dy(gds), nxny, 0.001*GDS_LatLon_Lo1(gds), - 0.001*GDS_LatLon_Lo2(gds), 0.001*GDS_LatLon_dx(gds), - nx, ny, GDS_LatLon_scan(gds), GDS_LatLon_mode(gds), - BDS_Grid(bds)); - else if (gds && GDS_LatLon(gds) && nx == -1) { - printf(" thinned latlon: lat %f to %f by %f nxny %ld\n" + 0.001*GDS_LatLon_La1(gds), 0.001*GDS_LatLon_La2(gds), + 0.001*GDS_LatLon_dy(gds), nxny, 0.001*GDS_LatLon_Lo1(gds), + 0.001*GDS_LatLon_Lo2(gds), 0.001*GDS_LatLon_dx(gds), + nx, ny, GDS_LatLon_scan(gds), GDS_LatLon_mode(gds), + BDS_Grid(bds)); + else if (gds && GDS_LatLon(gds) && nx == -1) { + printf(" thinned latlon: lat %f to %f by %f nxny %ld\n" " long %f to %f, %ld grid pts (%d x %d) scan %d" - " mode %d bdsgrid %d\n", - 0.001*GDS_LatLon_La1(gds), 0.001*GDS_LatLon_La2(gds), - 0.001*GDS_LatLon_dy(gds), nxny, 0.001*GDS_LatLon_Lo1(gds), - 0.001*GDS_LatLon_Lo2(gds), - nxny, nx, ny, GDS_LatLon_scan(gds), GDS_LatLon_mode(gds), - BDS_Grid(bds)); - GDS_prt_thin_lon(gds); - } - else if (gds && GDS_Gaussian(gds) && nx != -1) - printf(" gaussian: lat %f to %f\n" + " mode %d bdsgrid %d\n", + 0.001*GDS_LatLon_La1(gds), 0.001*GDS_LatLon_La2(gds), + 0.001*GDS_LatLon_dy(gds), nxny, 0.001*GDS_LatLon_Lo1(gds), + 0.001*GDS_LatLon_Lo2(gds), + nxny, nx, ny, GDS_LatLon_scan(gds), GDS_LatLon_mode(gds), + BDS_Grid(bds)); + GDS_prt_thin_lon(gds); + } + else if (gds && GDS_Gaussian(gds) && nx != -1) + printf(" gaussian: lat %f to %f\n" " long %f to %f by %f, (%d x %d) scan %d" - " mode %d bdsgrid %d\n", - 0.001*GDS_LatLon_La1(gds), 0.001*GDS_LatLon_La2(gds), - 0.001*GDS_LatLon_Lo1(gds), 0.001*GDS_LatLon_Lo2(gds), - 0.001*GDS_LatLon_dx(gds), - nx, ny, GDS_LatLon_scan(gds), GDS_LatLon_mode(gds), - BDS_Grid(bds)); - else if (gds && GDS_Gaussian(gds) && nx == -1) { - printf(" thinned gaussian: lat %f to %f\n" + " mode %d bdsgrid %d\n", + 0.001*GDS_LatLon_La1(gds), 0.001*GDS_LatLon_La2(gds), + 0.001*GDS_LatLon_Lo1(gds), 0.001*GDS_LatLon_Lo2(gds), + 0.001*GDS_LatLon_dx(gds), + nx, ny, GDS_LatLon_scan(gds), GDS_LatLon_mode(gds), + BDS_Grid(bds)); + else if (gds && GDS_Gaussian(gds) && nx == -1) { + printf(" thinned gaussian: lat %f to %f\n" " long %f to %f, %ld grid pts (%d x %d) scan %d" - " mode %d bdsgrid %d\n", - 0.001*GDS_LatLon_La1(gds), 0.001*GDS_LatLon_La2(gds), - 0.001*GDS_LatLon_Lo1(gds), 0.001*GDS_LatLon_Lo2(gds), - nxny, nx, ny, GDS_LatLon_scan(gds), GDS_LatLon_mode(gds), - BDS_Grid(bds)); - GDS_prt_thin_lon(gds); - } - else if (gds && GDS_Polar(gds)) - printf(" polar stereo: Lat1 %f Long1 %f Orient %f\n" - " %s pole (%d x %d) Dx %d Dy %d scan %d mode %d\n", - 0.001*GDS_Polar_La1(gds),0.001*GDS_Polar_Lo1(gds), - 0.001*GDS_Polar_Lov(gds), - GDS_Polar_pole(gds) == 0 ? "north" : "south", nx,ny, - GDS_Polar_Dx(gds),GDS_Polar_Dy(gds), - GDS_Polar_scan(gds), GDS_Polar_mode(gds)); - else if (gds && GDS_Lambert(gds)) - printf(" Lambert Conf: Lat1 %f Lon1 %f Lov %f\n" + " mode %d bdsgrid %d\n", + 0.001*GDS_LatLon_La1(gds), 0.001*GDS_LatLon_La2(gds), + 0.001*GDS_LatLon_Lo1(gds), 0.001*GDS_LatLon_Lo2(gds), + nxny, nx, ny, GDS_LatLon_scan(gds), GDS_LatLon_mode(gds), + BDS_Grid(bds)); + GDS_prt_thin_lon(gds); + } + else if (gds && GDS_Polar(gds)) + printf(" polar stereo: Lat1 %f Long1 %f Orient %f\n" + " %s pole (%d x %d) Dx %d Dy %d scan %d mode %d\n", + 0.001*GDS_Polar_La1(gds),0.001*GDS_Polar_Lo1(gds), + 0.001*GDS_Polar_Lov(gds), + GDS_Polar_pole(gds) == 0 ? "north" : "south", nx,ny, + GDS_Polar_Dx(gds),GDS_Polar_Dy(gds), + GDS_Polar_scan(gds), GDS_Polar_mode(gds)); + else if (gds && GDS_Lambert(gds)) + printf(" Lambert Conf: Lat1 %f Lon1 %f Lov %f\n" " Latin1 %f Latin2 %f LatSP %f LonSP %f\n" " %s (%d x %d) Dx %f Dy %f scan %d mode %d\n", - 0.001*GDS_Lambert_La1(gds),0.001*GDS_Lambert_Lo1(gds), - 0.001*GDS_Lambert_Lov(gds), - 0.001*GDS_Lambert_Latin1(gds), 0.001*GDS_Lambert_Latin2(gds), - 0.001*GDS_Lambert_LatSP(gds), 0.001*GDS_Lambert_LonSP(gds), - GDS_Lambert_NP(gds) ? "North Pole": "South Pole", - GDS_Lambert_nx(gds), GDS_Lambert_ny(gds), - 0.001*GDS_Lambert_dx(gds), 0.001*GDS_Lambert_dy(gds), - GDS_Lambert_scan(gds), GDS_Lambert_mode(gds)); - else if (gds && GDS_Albers(gds)) - /* Albers equal area has same parameters as Lambert conformal */ - printf(" Albers Equal-Area: Lat1 %f Lon1 %f Lov %f\n" + 0.001*GDS_Lambert_La1(gds),0.001*GDS_Lambert_Lo1(gds), + 0.001*GDS_Lambert_Lov(gds), + 0.001*GDS_Lambert_Latin1(gds), 0.001*GDS_Lambert_Latin2(gds), + 0.001*GDS_Lambert_LatSP(gds), 0.001*GDS_Lambert_LonSP(gds), + GDS_Lambert_NP(gds) ? "North Pole": "South Pole", + GDS_Lambert_nx(gds), GDS_Lambert_ny(gds), + 0.001*GDS_Lambert_dx(gds), 0.001*GDS_Lambert_dy(gds), + GDS_Lambert_scan(gds), GDS_Lambert_mode(gds)); + else if (gds && GDS_Albers(gds)) + /* Albers equal area has same parameters as Lambert conformal */ + printf(" Albers Equal-Area: Lat1 %f Lon1 %f Lov %f\n" " Latin1 %f Latin2 %f LatSP %f LonSP %f\n" " %s (%d x %d) Dx %f Dy %f scan %d mode %d\n", - 0.001*GDS_Lambert_La1(gds),0.001*GDS_Lambert_Lo1(gds), - 0.001*GDS_Lambert_Lov(gds), - 0.001*GDS_Lambert_Latin1(gds), 0.001*GDS_Lambert_Latin2(gds), - 0.001*GDS_Lambert_LatSP(gds), 0.001*GDS_Lambert_LonSP(gds), - GDS_Lambert_NP(gds) ? "North Pole": "South Pole", - GDS_Lambert_nx(gds), GDS_Lambert_ny(gds), - 0.001*GDS_Lambert_dx(gds), 0.001*GDS_Lambert_dy(gds), - GDS_Lambert_scan(gds), GDS_Lambert_mode(gds)); - else if (gds && GDS_Mercator(gds)) - printf(" Mercator: lat %f to %f by %f km nxny %ld\n" + 0.001*GDS_Lambert_La1(gds),0.001*GDS_Lambert_Lo1(gds), + 0.001*GDS_Lambert_Lov(gds), + 0.001*GDS_Lambert_Latin1(gds), 0.001*GDS_Lambert_Latin2(gds), + 0.001*GDS_Lambert_LatSP(gds), 0.001*GDS_Lambert_LonSP(gds), + GDS_Lambert_NP(gds) ? "North Pole": "South Pole", + GDS_Lambert_nx(gds), GDS_Lambert_ny(gds), + 0.001*GDS_Lambert_dx(gds), 0.001*GDS_Lambert_dy(gds), + GDS_Lambert_scan(gds), GDS_Lambert_mode(gds)); + else if (gds && GDS_Mercator(gds)) + printf(" Mercator: lat %f to %f by %f km nxny %ld\n" " long %f to %f by %f km, (%d x %d) scan %d" - " mode %d Latin %f bdsgrid %d\n", - 0.001*GDS_Merc_La1(gds), 0.001*GDS_Merc_La2(gds), - 0.001*GDS_Merc_dy(gds), nxny, 0.001*GDS_Merc_Lo1(gds), - 0.001*GDS_Merc_Lo2(gds), 0.001*GDS_Merc_dx(gds), - nx, ny, GDS_Merc_scan(gds), GDS_Merc_mode(gds), - 0.001*GDS_Merc_Latin(gds), BDS_Grid(bds)); - else if (gds && GDS_ssEgrid(gds)) - printf(" Semi-staggered Arakawa E-Grid: lat0 %f lon0 %f nxny %d\n" + " mode %d Latin %f bdsgrid %d\n", + 0.001*GDS_Merc_La1(gds), 0.001*GDS_Merc_La2(gds), + 0.001*GDS_Merc_dy(gds), nxny, 0.001*GDS_Merc_Lo1(gds), + 0.001*GDS_Merc_Lo2(gds), 0.001*GDS_Merc_dx(gds), + nx, ny, GDS_Merc_scan(gds), GDS_Merc_mode(gds), + 0.001*GDS_Merc_Latin(gds), BDS_Grid(bds)); + else if (gds && GDS_ssEgrid(gds)) + printf(" Semi-staggered Arakawa E-Grid: lat0 %f lon0 %f nxny %d\n" " dLat %f dLon %f (%d x %d) scan %d mode %d\n", - 0.001*GDS_ssEgrid_La1(gds), 0.001*GDS_ssEgrid_Lo1(gds), - GDS_ssEgrid_n(gds)*GDS_ssEgrid_n_dum(gds), - 0.001*GDS_ssEgrid_dj(gds), 0.001*GDS_ssEgrid_di(gds), - GDS_ssEgrid_Lo2(gds), GDS_ssEgrid_La2(gds), - GDS_ssEgrid_scan(gds), GDS_ssEgrid_mode(gds)); + 0.001*GDS_ssEgrid_La1(gds), 0.001*GDS_ssEgrid_Lo1(gds), + GDS_ssEgrid_n(gds)*GDS_ssEgrid_n_dum(gds), + 0.001*GDS_ssEgrid_dj(gds), 0.001*GDS_ssEgrid_di(gds), + GDS_ssEgrid_Lo2(gds), GDS_ssEgrid_La2(gds), + GDS_ssEgrid_scan(gds), GDS_ssEgrid_mode(gds)); else if (gds && GDS_ss2dEgrid(gds)) printf(" Semi-staggered Arakawa E-Grid (2D): lat0 %f lon0 %f nxny %d\n" " dLat %f dLon %f (tlm0d %f tph0d %f) scan %d mode %d\n", - 0.001*GDS_ss2dEgrid_La1(gds), 0.001*GDS_ss2dEgrid_Lo1(gds), - GDS_ss2dEgrid_nx(gds)*GDS_ss2dEgrid_ny(gds), - 0.001*GDS_ss2dEgrid_dj(gds), 0.001*GDS_ss2dEgrid_di(gds), - 0.001*GDS_ss2dEgrid_Lo2(gds), 0.001*GDS_ss2dEgrid_La2(gds), - GDS_ss2dEgrid_scan(gds), GDS_ss2dEgrid_mode(gds)); + 0.001*GDS_ss2dEgrid_La1(gds), 0.001*GDS_ss2dEgrid_Lo1(gds), + GDS_ss2dEgrid_nx(gds)*GDS_ss2dEgrid_ny(gds), + 0.001*GDS_ss2dEgrid_dj(gds), 0.001*GDS_ss2dEgrid_di(gds), + 0.001*GDS_ss2dEgrid_Lo2(gds), 0.001*GDS_ss2dEgrid_La2(gds), + GDS_ss2dEgrid_scan(gds), GDS_ss2dEgrid_mode(gds)); else if (gds && GDS_ss2dBgrid(gds)) printf(" Semi-staggered Arakawa B-Grid (2D): lat0 %f lon0 %f nxny %d\n" " dLat %f dLon %f (tlm0d %f tph0d %f) scan %d mode %d\n", - 0.001*GDS_ss2dBgrid_La1(gds), 0.001*GDS_ss2dBgrid_Lo1(gds), - GDS_ss2dBgrid_nx(gds)*GDS_ss2dBgrid_ny(gds), - 0.001*GDS_ss2dBgrid_dj(gds), 0.001*GDS_ss2dBgrid_di(gds), - 0.001*GDS_ss2dBgrid_Lo2(gds), 0.001*GDS_ss2dBgrid_La2(gds), - GDS_ss2dBgrid_scan(gds), GDS_ss2dBgrid_mode(gds)); - else if (gds && GDS_fEgrid(gds)) - printf(" filled Arakawa E-Grid: lat0 %f lon0 %f nxny %d\n" + 0.001*GDS_ss2dBgrid_La1(gds), 0.001*GDS_ss2dBgrid_Lo1(gds), + GDS_ss2dBgrid_nx(gds)*GDS_ss2dBgrid_ny(gds), + 0.001*GDS_ss2dBgrid_dj(gds), 0.001*GDS_ss2dBgrid_di(gds), + 0.001*GDS_ss2dBgrid_Lo2(gds), 0.001*GDS_ss2dBgrid_La2(gds), + GDS_ss2dBgrid_scan(gds), GDS_ss2dBgrid_mode(gds)); + else if (gds && GDS_fEgrid(gds)) + printf(" filled Arakawa E-Grid: lat0 %f lon0 %f nxny %d\n" " dLat %f dLon %f (%d x %d) scan %d mode %d\n", - 0.001*GDS_fEgrid_La1(gds), 0.001*GDS_fEgrid_Lo1(gds), - GDS_fEgrid_n(gds)*GDS_fEgrid_n_dum(gds), - 0.001*GDS_fEgrid_dj(gds), 0.001*GDS_fEgrid_di(gds), - GDS_fEgrid_Lo2(gds), GDS_fEgrid_La2(gds), - GDS_fEgrid_scan(gds), GDS_fEgrid_mode(gds)); - else if (gds && GDS_RotLL(gds)) - printf(" rotated LatLon grid lat %f to %f lon %f to %f\n" - " nxny %ld (%d x %d) dx %d dy %d scan %d mode %d\n" - " transform: south pole lat %f lon %f rot angle %f\n", - 0.001*GDS_RotLL_La1(gds), 0.001*GDS_RotLL_La2(gds), - 0.001*GDS_RotLL_Lo1(gds), 0.001*GDS_RotLL_Lo2(gds), - nxny, GDS_RotLL_nx(gds), GDS_RotLL_ny(gds), - GDS_RotLL_dx(gds), GDS_RotLL_dy(gds), - GDS_RotLL_scan(gds), GDS_RotLL_mode(gds), - 0.001*GDS_RotLL_LaSP(gds), 0.001*GDS_RotLL_LoSP(gds), - GDS_RotLL_RotAng(gds) ); - else if (gds && GDS_Gnomonic(gds)) - printf(" Gnomonic grid\n"); - else if (gds && GDS_Harmonic(gds)) - printf(" Harmonic (spectral): pentagonal spectral truncation: nj %d nk %d nm %d\n", - GDS_Harmonic_nj(gds), GDS_Harmonic_nk(gds), - GDS_Harmonic_nm(gds)); - if (gds && GDS_Harmonic_type(gds) == 1) - printf(" Associated Legendre polynomials\n"); + 0.001*GDS_fEgrid_La1(gds), 0.001*GDS_fEgrid_Lo1(gds), + GDS_fEgrid_n(gds)*GDS_fEgrid_n_dum(gds), + 0.001*GDS_fEgrid_dj(gds), 0.001*GDS_fEgrid_di(gds), + GDS_fEgrid_Lo2(gds), GDS_fEgrid_La2(gds), + GDS_fEgrid_scan(gds), GDS_fEgrid_mode(gds)); + else if (gds && GDS_RotLL(gds)) + printf(" rotated LatLon grid lat %f to %f lon %f to %f\n" + " nxny %ld (%d x %d) dx %d dy %d scan %d mode %d\n" + " transform: south pole lat %f lon %f rot angle %f\n", + 0.001*GDS_RotLL_La1(gds), 0.001*GDS_RotLL_La2(gds), + 0.001*GDS_RotLL_Lo1(gds), 0.001*GDS_RotLL_Lo2(gds), + nxny, GDS_RotLL_nx(gds), GDS_RotLL_ny(gds), + GDS_RotLL_dx(gds), GDS_RotLL_dy(gds), + GDS_RotLL_scan(gds), GDS_RotLL_mode(gds), + 0.001*GDS_RotLL_LaSP(gds), 0.001*GDS_RotLL_LoSP(gds), + GDS_RotLL_RotAng(gds) ); + else if (gds && GDS_Gnomonic(gds)) + printf(" Gnomonic grid\n"); + else if (gds && GDS_Harmonic(gds)) + printf(" Harmonic (spectral): pentagonal spectral truncation: nj %d nk %d nm %d\n", + GDS_Harmonic_nj(gds), GDS_Harmonic_nk(gds), + GDS_Harmonic_nm(gds)); + if (gds && GDS_Harmonic_type(gds) == 1) + printf(" Associated Legendre polynomials\n"); else if (gds && GDS_Triangular(gds)) printf(" Triangular grid: nd %d ni %d (= 2^%d x 3^%d)\n", - GDS_Triangular_nd(gds), GDS_Triangular_ni(gds), - GDS_Triangular_ni2(gds), GDS_Triangular_ni3(gds) ); - if (print_PDS || print_PDS10) + GDS_Triangular_nd(gds), GDS_Triangular_ni(gds), + GDS_Triangular_ni2(gds), GDS_Triangular_ni3(gds) ); + if (print_PDS || print_PDS10) print_pds(pds, print_PDS, print_PDS10, verbose); - if (gds && (print_GDS || print_GDS10)) - print_gds(gds, print_GDS, print_GDS10, verbose); - } - - if (mode != INVENTORY && output_type == GRIB) { - if (header == dwd) wrtieee_header((int) len_grib, dump_file); - fwrite((void *) msg, sizeof(char), len_grib, dump_file); - if (header == dwd) wrtieee_header((int) len_grib, dump_file); - n_dump++; - } - - if ((mode != INVENTORY && output_type != GRIB) || verbose > 1) { - /* decode numeric data */ - + if (gds && (print_GDS || print_GDS10)) + print_gds(gds, print_GDS, print_GDS10, verbose); + } + + if (mode != INVENTORY && output_type == GRIB) { + if (header == dwd) wrtieee_header((int) len_grib, dump_file); + fwrite((void *) msg, sizeof(char), len_grib, dump_file); + if (header == dwd) wrtieee_header((int) len_grib, dump_file); + n_dump++; + } + + if ((mode != INVENTORY && output_type != GRIB) || verbose > 1) { + /* decode numeric data */ + if ((array = (float *) malloc(sizeof(float) * nxny)) == NULL) { fprintf(stderr,"memory problems\n"); exit(8); } - temp = int_power(10.0, - PDS_DecimalScale(pds)); - - BDS_unpack(array, bds, BMS_bitmap(bms), BDS_NumBits(bds), nxny, - temp*BDS_RefValue(bds),temp*int_power(2.0, BDS_BinScale(bds))); - - if (verbose > 1) { - rmin = FLT_MAX; - rmax = -FLT_MAX; - for (i = 0; i < nxny; i++) { - if (fabs(array[i]-UNDEFINED) > 0.0001*UNDEFINED) { - rmin = min(rmin,array[i]); - rmax = max(rmax,array[i]); - } - } - printf(" min/max data %g %g num bits %d " - " BDS_Ref %g DecScale %d BinScale %d\n", - rmin, rmax, BDS_NumBits(bds), BDS_RefValue(bds), - PDS_DecimalScale(pds), BDS_BinScale(bds)); - } - - if (mode != INVENTORY && output_type != GRIB) { - /* dump code */ - if (output_PDS_GDS == 1) { - /* insert code here */ - if (output_type == BINARY || output_type == IEEE) { - /* write PDS */ - i = PDS_LEN(pds) + 4; - if (header == simple && output_type == BINARY) - fwrite((void *) &i, sizeof(int), 1, dump_file); - if (header == simple && output_type == IEEE) wrtieee_header(i, dump_file); - fwrite((void *) "PDS ", 1, 4, dump_file); - fwrite((void *) pds, 1, i - 4, dump_file); - if (header == simple && output_type == BINARY) - fwrite((void *) &i, sizeof(int), 1, dump_file); - if (header == simple && output_type == IEEE) wrtieee_header(i, dump_file); - - /* write GDS */ - i = (gds) ? GDS_LEN(gds) + 4 : 4; - if (header == simple && output_type == BINARY) - fwrite((void *) &i, sizeof(int), 1, dump_file); - if (header == simple && output_type == IEEE) wrtieee_header(i, dump_file); - fwrite((void *) "GDS ", 1, 4, dump_file); - if (gds) fwrite((void *) gds, 1, i - 4, dump_file); - if (header == simple && output_type == BINARY) - fwrite((void *) &i, sizeof(int), 1, dump_file); - if (header == simple && output_type == IEEE) wrtieee_header(i, dump_file); - } - } - - if (output_type == BINARY) { - i = nxny * sizeof(float); - if (header == simple) fwrite((void *) &i, sizeof(int), 1, dump_file); - fwrite((void *) array, sizeof(float), nxny, dump_file); - if (header == simple) fwrite((void *) &i, sizeof(int), 1, dump_file); - } - else if (output_type == IEEE) { - wrtieee(array, nxny, header, dump_file); - } - else if (output_type == TEXT) { - /* number of points in grid */ - if (header == simple) { - if (nx <= 0 || ny <= 0 || nxny != nx*ny) { + temp = int_power(10.0, - PDS_DecimalScale(pds)); + + BDS_unpack(array, bds, BMS_bitmap(bms), BDS_NumBits(bds), nxny, + temp*BDS_RefValue(bds),temp*int_power(2.0, BDS_BinScale(bds))); + + if (verbose > 1) { + rmin = FLT_MAX; + rmax = -FLT_MAX; + for (i = 0; i < nxny; i++) { + if (fabs(array[i]-UNDEFINED) > 0.0001*UNDEFINED) { + rmin = min(rmin,array[i]); + rmax = max(rmax,array[i]); + } + } + printf(" min/max data %g %g num bits %d " + " BDS_Ref %g DecScale %d BinScale %d\n", + rmin, rmax, BDS_NumBits(bds), BDS_RefValue(bds), + PDS_DecimalScale(pds), BDS_BinScale(bds)); + } + + if (mode != INVENTORY && output_type != GRIB) { + /* dump code */ + if (output_PDS_GDS == 1) { + /* insert code here */ + if (output_type == BINARY || output_type == IEEE) { + /* write PDS */ + i = PDS_LEN(pds) + 4; + if (header == simple && output_type == BINARY) + fwrite((void *) &i, sizeof(int), 1, dump_file); + if (header == simple && output_type == IEEE) wrtieee_header(i, dump_file); + fwrite((void *) "PDS ", 1, 4, dump_file); + fwrite((void *) pds, 1, i - 4, dump_file); + if (header == simple && output_type == BINARY) + fwrite((void *) &i, sizeof(int), 1, dump_file); + if (header == simple && output_type == IEEE) wrtieee_header(i, dump_file); + + /* write GDS */ + i = (gds) ? GDS_LEN(gds) + 4 : 4; + if (header == simple && output_type == BINARY) + fwrite((void *) &i, sizeof(int), 1, dump_file); + if (header == simple && output_type == IEEE) wrtieee_header(i, dump_file); + fwrite((void *) "GDS ", 1, 4, dump_file); + if (gds) fwrite((void *) gds, 1, i - 4, dump_file); + if (header == simple && output_type == BINARY) + fwrite((void *) &i, sizeof(int), 1, dump_file); + if (header == simple && output_type == IEEE) wrtieee_header(i, dump_file); + } + } + + if (output_type == BINARY) { + i = nxny * sizeof(float); + if (header == simple) fwrite((void *) &i, sizeof(int), 1, dump_file); + fwrite((void *) array, sizeof(float), nxny, dump_file); + if (header == simple) fwrite((void *) &i, sizeof(int), 1, dump_file); + } + else if (output_type == IEEE) { + wrtieee(array, nxny, header, dump_file); + } + else if (output_type == TEXT) { + /* number of points in grid */ + if (header == simple) { + if (nx <= 0 || ny <= 0 || nxny != nx*ny) { fprintf(dump_file, "%ld %d\n", nxny, 1); - } - else { - fprintf(dump_file, "%d %d\n", nx, ny); - } - } - for (i = 0; i < nxny; i++) { - fprintf(dump_file,"%g\n", array[i]); - } - } - n_dump++; - } - free(array); - if (verbose > 0) printf("\n"); - } - - if (output_type != NONE) fflush(dump_file); - fflush(stdout); - + } + else { + fprintf(dump_file, "%d %d\n", nx, ny); + } + } + for (i = 0; i < nxny; i++) { + fprintf(dump_file,"%g\n", array[i]); + } + } + n_dump++; + } + free(array); + if (verbose > 0) printf("\n"); + } + + if (output_type != NONE) fflush(dump_file); + fflush(stdout); + pos += len_grib; count++; } if (mode != INVENTORY) { - if (header == dwd && output_type == GRIB) wrtieee_header(0, dump_file); - if (ferror(dump_file)) { - fprintf(stderr,"error writing %s\n",dump_file_name); - exit(8); - } + if (header == dwd && output_type == GRIB) wrtieee_header(0, dump_file); + if (ferror(dump_file)) { + fprintf(stderr,"error writing %s\n",dump_file_name); + exit(8); + } } fclose(input); return (return_code); @@ -1280,8 +1279,8 @@ void print_gds(unsigned char *gds, int print_GDS, int print_GDS10, int verbose) * v1.1 9/94 Wesley Ebisuzaki * v1.2 3/96 Wesley Ebisuzaki handles short records at end of file * v1.3 8/96 Wesley Ebisuzaki increase NTRY from 3 to 100 for the folks - * at Automation decided a 21 byte WMO bulletin header wasn't long - * enough and decided to go to an 8K header. + * at Automation decided a 21 byte WMO bulletin header wasn't long + * enough and decided to go to an 8K header. * v1.4 11/10/2001 D. Haalman, looks at entire file, does not try * to read past EOF * 3/8/2010 echack added by Brian Doty @@ -1289,7 +1288,7 @@ void print_gds(unsigned char *gds, int print_GDS, int print_GDS10, int verbose) */ #ifndef min -#define min(a,b) ((a) < (b) ? (a) : (b)) + #define min(a,b) ((a) < (b) ? (a) : (b)) #endif /* #define LEN_HEADER_PDS (28+42+100) */ @@ -1297,8 +1296,8 @@ void print_gds(unsigned char *gds, int print_GDS, int print_GDS10, int verbose) int ec_large_grib = 0, len_ec_bds; -unsigned char *seek_grib(FILE *file, unsigned long *pos, long *len_grib, - unsigned char *buffer, unsigned int buf_len) { +unsigned char *seek_grib(FILE *file, unsigned long *pos, long *len_grib, + unsigned char *buffer, unsigned int buf_len) { int i, len; long length_grib; @@ -1307,36 +1306,36 @@ unsigned char *seek_grib(FILE *file, unsigned long *pos, long *len_grib, while ( !feof(file) ) { if (fseek(file, *pos, SEEK_SET) == -1) break; - i = fread(buffer, sizeof (unsigned char), buf_len, file); + i = fread(buffer, sizeof (unsigned char), buf_len, file); if (ferror(file)) break; len = i - LEN_HEADER_PDS; - + for (i = 0; i < len; i++) { if (buffer[i] == 'G' && buffer[i+1] == 'R' && buffer[i+2] == 'I' && buffer[i+3] == 'B') { - /* grib edition 1 */ - if (buffer[i+7] == 1) { + /* grib edition 1 */ + if (buffer[i+7] == 1) { *pos = i + *pos; *len_grib = length_grib = (buffer[i+4] << 16) + (buffer[i+5] << 8) + - buffer[i+6]; + buffer[i+6]; - /* small records don't have ECMWF hack */ - if ((length_grib & 0x800000) == 0) { ec_large_grib = 0; return (buffer + i); } + /* small records don't have ECMWF hack */ + if ((length_grib & 0x800000) == 0) { ec_large_grib = 0; return (buffer + i); } - /* potential for ECMWF hack */ - ec_large_grib = 1; - *len_grib = echack(file, *pos, length_grib); + /* potential for ECMWF hack */ + ec_large_grib = 1; + *len_grib = echack(file, *pos, length_grib); return (buffer+i); - } + } - /* grib edition 2 */ - else if (buffer[i+7] == 2) { - if (warn_grib2++ == 0) fprintf(stderr,"grib2 message ignored (use wgrib2)\n"); - } + /* grib edition 2 */ + else if (buffer[i+7] == 2) { + if (warn_grib2++ == 0) fprintf(stderr,"grib2 message ignored (use wgrib2)\n"); + } } } - *pos = *pos + (buf_len - LEN_HEADER_PDS); + *pos = *pos + (buf_len - LEN_HEADER_PDS); } *len_grib = 0; @@ -1369,7 +1368,7 @@ long echack(FILE *file, long pos, long len_grib) { /* know that NCEP and CMC do not use echack */ if (center == NMC || center == CMC) { - ec_large_grib = 0; + ec_large_grib = 0; return len_grib; } @@ -1388,9 +1387,9 @@ long echack(FILE *file, long pos, long len_grib) { bmslen = 0; if (bmsflg) { - if (fseek(file, pos+8+pdslen+gdslen, SEEK_SET) == -1) return 0; - if (fread(buf, sizeof (unsigned char), 3, file) != 3) return 0; - bmslen = __LEN24(buf); + if (fseek(file, pos+8+pdslen+gdslen, SEEK_SET) == -1) return 0; + if (fread(buf, sizeof (unsigned char), 3, file) != 3) return 0; + bmslen = __LEN24(buf); } /* get bds length */ @@ -1402,14 +1401,14 @@ long echack(FILE *file, long pos, long len_grib) { /* Now we can check if this record is hacked */ if (bdslen >= 120) { - /* normal record */ - ec_large_grib = 0; + /* normal record */ + ec_large_grib = 0; } else { /* ECMWF hack */ len_grib = (len & 0x7fffff) * 120 - bdslen + 4; len_ec_bds = len_grib - (12 + pdslen + gdslen + bmslen); - ec_large_grib = 1; + ec_large_grib = 1; } return len_grib; } @@ -1424,36 +1423,36 @@ long echack(FILE *file, long pos, long len_grib) { double ibm2flt(unsigned char *ibm) { - int positive, power; - unsigned int abspower; - long int mant; - double value, exp; - - mant = (ibm[1] << 16) + (ibm[2] << 8) + ibm[3]; - if (mant == 0) return 0.0; - - positive = (ibm[0] & 0x80) == 0; - power = (int) (ibm[0] & 0x7f) - 64; - abspower = power > 0 ? power : -power; - - - /* calc exp */ - exp = 16.0; - value = 1.0; - while (abspower) { - if (abspower & 1) { - value *= exp; - } - exp = exp * exp; - abspower >>= 1; - } - - if (power < 0) value = 1.0 / value; - value = value * mant / 16777216.0; - if (positive == 0) value = -value; - return value; + int positive, power; + unsigned int abspower; + long int mant; + double value, exp; + + mant = (ibm[1] << 16) + (ibm[2] << 8) + ibm[3]; + if (mant == 0) return 0.0; + + positive = (ibm[0] & 0x80) == 0; + power = (int) (ibm[0] & 0x7f) - 64; + abspower = power > 0 ? power : -power; + + + /* calc exp */ + exp = 16.0; + value = 1.0; + while (abspower) { + if (abspower & 1) { + value *= exp; + } + exp = exp * exp; + abspower >>= 1; + } + + if (power < 0) value = 1.0 / value; + value = value * mant / 16777216.0; + if (positive == 0) value = -value; + return value; } - + /* * read_grib.c * @@ -1475,7 +1474,7 @@ int read_grib(FILE *file, long pos, long len_grib, unsigned char *buffer) { if (fseek(file, pos, SEEK_SET) == -1) { - return 0; + return 0; } i = fread(buffer, sizeof (unsigned char), len_grib, file); @@ -1489,29 +1488,29 @@ int read_grib(FILE *file, long pos, long len_grib, unsigned char *buffer) { * * * input: double x - * int y + * int y */ double int_power(double x, int y) { - double value; - - if (y < 0) { - y = -y; - x = 1.0 / x; - } - value = 1.0; - - while (y) { - if (y & 1) { - value *= x; - } - x = x * x; - y >>= 1; - } - return value; + double value; + + if (y < 0) { + y = -y; + x = 1.0 / x; + } + value = 1.0; + + while (y) { + if (y & 1) { + value *= x; + } + x = x * x; + y >>= 1; + } + return value; } -/* cnames.c Wesley Ebisuzaki +/* cnames.c Wesley Ebisuzaki * * returns strings with either variable name or comment field * v1.4 4/98 @@ -1520,7 +1519,7 @@ double int_power(double x, int y) { * Add DWD tables 2, 201, 202, 203 Helmut P. Frank, DWD, FE13 * Thu Aug 23 09:28:34 GMT 2001 * add DWD tables 204, 205 H. Frank, 10-19-2005 - * LAMI => DWD 11/2008 Davide Sacchetti + * LAMI => DWD 11/2008 Davide Sacchetti * add JRA-55 table 200 */ @@ -1595,22 +1594,22 @@ static const struct ParmTable *Parm_Table(unsigned char *pds) { #endif /* figure out if NCEP opn or reanalysis */ if (center == NMC && ptable <= 3) { - if (subcenter == 1) return &parm_table_ncep_reanal[0]; - if (subcenter == 14) return &parm_table_mdl_nceptab[0]; + if (subcenter == 1) return &parm_table_ncep_reanal[0]; + if (subcenter == 14) return &parm_table_mdl_nceptab[0]; process = PDS_Model(pds); - if (subcenter != 0 || (process != 80 && process != 180) || - (ptable != 1 && ptable != 2)) + if (subcenter != 0 || (process != 80 && process != 180) || + (ptable != 1 && ptable != 2)) return &parm_table_ncep_opn[0]; - /* at this point could be either the opn or reanalysis table */ - if (def_ncep_table == opn_nowarn) return &parm_table_ncep_opn[0]; - if (def_ncep_table == rean_nowarn) return &parm_table_ncep_reanal[0]; + /* at this point could be either the opn or reanalysis table */ + if (def_ncep_table == opn_nowarn) return &parm_table_ncep_opn[0]; + if (def_ncep_table == rean_nowarn) return &parm_table_ncep_reanal[0]; if (reanal_opn_count++ == 0) { - fprintf(stderr, "Using NCEP %s table, see -ncep_opn, -ncep_rean options\n", - (def_ncep_table == opn) ? "opn" : "reanalysis"); - } - return (def_ncep_table == opn) ? &parm_table_ncep_opn[0] - : &parm_table_ncep_reanal[0]; + fprintf(stderr, "Using NCEP %s table, see -ncep_opn, -ncep_rean options\n", + (def_ncep_table == opn) ? "opn" : "reanalysis"); + } + return (def_ncep_table == opn) ? &parm_table_ncep_opn[0] + : &parm_table_ncep_reanal[0]; } if (center == NMC) { @@ -1657,10 +1656,10 @@ static const struct ParmTable *Parm_Table(unsigned char *pds) { if (ptable == 205) return &parm_table_dwd_205[0]; } if (center == CPTEC) { - if (ptable == 254) return &parm_table_cptec_254[0]; + if (ptable == 254) return &parm_table_cptec_254[0]; } if (center == JMA) { - if (ptable == 200) return &parm_table_jra55_200[0]; + if (ptable == 200) return &parm_table_jra55_200[0]; } @@ -1670,9 +1669,9 @@ static const struct ParmTable *Parm_Table(unsigned char *pds) { #endif if ((ptable > 3 || (PDS_PARAM(pds)) > 127) && missing_count++ == 0) { - fprintf(stderr, - "\nUndefined parameter table (center %d-%d table %d), using NCEP-opn\n", - center, subcenter, ptable); + fprintf(stderr, + "\nUndefined parameter table (center %d-%d table %d), using NCEP-opn\n", + center, subcenter, ptable); } return &parm_table_ncep_opn[0]; } @@ -1695,7 +1694,7 @@ char *k5_comments(unsigned char *pds) { return (Parm_Table(pds) + PDS_PARAM(pds))->comment; } -/* 1996 wesley ebisuzaki +/* 1996 wesley ebisuzaki * * Unpack BDS section * @@ -1711,8 +1710,8 @@ char *k5_comments(unsigned char *pds) { * * 7/98 v1.2.1 fix bug for bitmaps and nbit >= 25 found by Larry Brasfield * 2/01 v1.2.2 changed jj from long int to double - * 3/02 v1.2.3 added unpacking extensions for spectral data - * Luis Kornblueh, MPIfM + * 3/02 v1.2.3 added unpacking extensions for spectral data + * Luis Kornblueh, MPIfM * 7/06 v.1.2.4 fixed some bug complex packed data was not set to undefined */ @@ -1721,7 +1720,7 @@ static unsigned int map_masks[8] = {128, 64, 32, 16, 8, 4, 2, 1}; static double shift[9] = {1.0, 2.0, 4.0, 8.0, 16.0, 32.0, 64.0, 128.0, 256.0}; void BDS_unpack(float *flt, unsigned char *bds, unsigned char *bitmap, - int n_bits, int n, double ref, double scale) { + int n_bits, int n, double ref, double scale) { unsigned char *bits; @@ -1731,22 +1730,22 @@ void BDS_unpack(float *flt, unsigned char *bds, unsigned char *bitmap, if (BDS_ComplexPacking(bds)) { - fprintf(stderr,"*** Cannot decode complex packed fields n=%d***\n", n); - exit(8); - for (i = 0; i < n; i++) { - *flt++ = UNDEFINED; - } - return; + fprintf(stderr,"*** Cannot decode complex packed fields n=%d***\n", n); + exit(8); + for (i = 0; i < n; i++) { + *flt++ = UNDEFINED; + } + return; } if (BDS_Harmonic(bds)) { bits = bds + 15; /* fill in global mean */ *flt++ = BDS_Harmonic_RefValue(bds); - n -= 1; + n -= 1; } else { - bits = bds + 11; + bits = bds + 11; } tbits = bbits = 0; @@ -1757,31 +1756,31 @@ void BDS_unpack(float *flt, unsigned char *bds, unsigned char *bitmap, t_bits = 0; if (bitmap) { - for (i = 0; i < n; i++) { - /* check bitmap */ - mask_idx = i & 7; - if (mask_idx == 0) bbits = *bitmap++; - if ((bbits & map_masks[mask_idx]) == 0) { - *flt++ = UNDEFINED; - continue; - } - - while (t_bits < n_bits) { - tbits = (tbits * 256) + *bits++; - t_bits += 8; - } - t_bits -= n_bits; - j = (tbits >> t_bits) & jmask; - *flt++ = ref + scale*j; + for (i = 0; i < n; i++) { + /* check bitmap */ + mask_idx = i & 7; + if (mask_idx == 0) bbits = *bitmap++; + if ((bbits & map_masks[mask_idx]) == 0) { + *flt++ = UNDEFINED; + continue; + } + + while (t_bits < n_bits) { + tbits = (tbits * 256) + *bits++; + t_bits += 8; + } + t_bits -= n_bits; + j = (tbits >> t_bits) & jmask; + *flt++ = ref + scale*j; } } else { - for (i = 0; i < n; i++) { - if (n_bits - t_bits > 8) { + for (i = 0; i < n; i++) { + if (n_bits - t_bits > 8) { tbits = (tbits << 16) | (bits[0] << 8) | (bits[1]); - bits += 2; + bits += 2; t_bits += 16; - } + } while (t_bits < n_bits) { tbits = (tbits * 256) + *bits++; t_bits += 8; @@ -1789,48 +1788,48 @@ void BDS_unpack(float *flt, unsigned char *bds, unsigned char *bitmap, t_bits -= n_bits; flt[i] = (tbits >> t_bits) & jmask; } - /* at least this vectorizes :) */ - for (i = 0; i < n; i++) { - flt[i] = ref + scale*flt[i]; - } + /* at least this vectorizes :) */ + for (i = 0; i < n; i++) { + flt[i] = ref + scale*flt[i]; + } } } else { - /* older unoptimized code, not often used */ + /* older unoptimized code, not often used */ c_bits = 8; map_mask = 128; while (n-- > 0) { - if (bitmap) { - j = (*bitmap & map_mask); - if ((map_mask >>= 1) == 0) { - map_mask = 128; - bitmap++; - } - if (j == 0) { - *flt++ = UNDEFINED; - continue; - } - } - - jj = 0.0; - j_bits = n_bits; - while (c_bits <= j_bits) { - if (c_bits == 8) { - jj = jj * 256.0 + (double) (*bits++); - j_bits -= 8; - } - else { - jj = (jj * shift[c_bits]) + (double) (*bits & mask[c_bits]); - bits++; - j_bits -= c_bits; - c_bits = 8; - } - } - if (j_bits) { - c_bits -= j_bits; - jj = (jj * shift[j_bits]) + (double) ((*bits >> c_bits) & mask[j_bits]); - } - *flt++ = ref + scale*jj; + if (bitmap) { + j = (*bitmap & map_mask); + if ((map_mask >>= 1) == 0) { + map_mask = 128; + bitmap++; + } + if (j == 0) { + *flt++ = UNDEFINED; + continue; + } + } + + jj = 0.0; + j_bits = n_bits; + while (c_bits <= j_bits) { + if (c_bits == 8) { + jj = jj * 256.0 + (double) (*bits++); + j_bits -= 8; + } + else { + jj = (jj * shift[c_bits]) + (double) (*bits & mask[c_bits]); + bits++; + j_bits -= c_bits; + c_bits = 8; + } + } + if (j_bits) { + c_bits -= j_bits; + jj = (jj * shift[j_bits]) + (double) ((*bits >> c_bits) & mask[j_bits]); + } + *flt++ = ref + scale*jj; } } return; @@ -1847,55 +1846,55 @@ void BDS_unpack(float *flt, unsigned char *bds, unsigned char *bitmap, int flt2ieee(float x, unsigned char *ieee) { - int sign, exp; - unsigned int umant; - double mant; - - if (x == 0.0) { - ieee[0] = ieee[1] = ieee[2] = ieee[3] = 0; - return 0; - } - - /* sign bit */ - if (x < 0.0) { - sign = 128; - x = -x; - } - else sign = 0; - mant = frexp((double) x, &exp); - - /* 2^24 = 16777216 */ - - umant = mant * 16777216 + 0.5; - if (umant >= 16777216) { - umant = umant / 2; - exp++; - } - /* bit 24 should be a 1 .. not used in ieee format */ - - exp = exp - 1 + 127; - - if (exp < 0) { - /* signed zero */ - ieee[0] = sign; - ieee[1] = ieee[2] = ieee[3] = 0; - return 0; - } - if (exp > 255) { - /* signed infinity */ - ieee[0] = sign + 127; - ieee[1] = 128; - ieee[2] = ieee[3] = 0; - return 0; - } - /* normal number */ - - ieee[0] = sign + (exp >> 1); - - ieee[3] = umant & 255; - ieee[2] = (umant >> 8) & 255; - ieee[1] = ((exp & 1) << 7) + ((umant >> 16) & 127); - return 0; + int sign, exp; + unsigned int umant; + double mant; + + if (x == 0.0) { + ieee[0] = ieee[1] = ieee[2] = ieee[3] = 0; + return 0; + } + + /* sign bit */ + if (x < 0.0) { + sign = 128; + x = -x; + } + else sign = 0; + mant = frexp((double) x, &exp); + + /* 2^24 = 16777216 */ + + umant = mant * 16777216 + 0.5; + if (umant >= 16777216) { + umant = umant / 2; + exp++; + } + /* bit 24 should be a 1 .. not used in ieee format */ + + exp = exp - 1 + 127; + + if (exp < 0) { + /* signed zero */ + ieee[0] = sign; + ieee[1] = ieee[2] = ieee[3] = 0; + return 0; + } + if (exp > 255) { + /* signed infinity */ + ieee[0] = sign + 127; + ieee[1] = 128; + ieee[2] = ieee[3] = 0; + return 0; + } + /* normal number */ + + ieee[0] = sign + (exp >> 1); + + ieee[3] = umant & 255; + ieee[2] = (umant >> 8) & 255; + ieee[1] = ((exp & 1) << 7) + ((umant >> 16) & 127); + return 0; } @@ -1903,11 +1902,11 @@ int flt2ieee(float x, unsigned char *ieee) { * * write ieee file -- big endian format * - * input float *array data to be written - * int n size of array - * int header 1 for f77 style header 0 for none - * (header is 4 byte header - * FILE *output output file + * input float *array data to be written + * int n size of array + * int header 1 for f77 style header 0 for none + * (header is 4 byte header + * FILE *output output file * * v1.2 7/97 buffered, faster * v1.3 2/99 fixed (typo) error in wrtieee_header found by @@ -1918,62 +1917,62 @@ int flt2ieee(float x, unsigned char *ieee) { int wrtieee(float *array, int n, int header, FILE *output) { - unsigned long int l; - int i, nbuf; - unsigned char buff[BSIZ]; - unsigned char h4[4]; - - nbuf = 0; - h4[0] = h4[1] = h4[2] = h4[3] = 0; - if (header) { - l = n * 4; - for (i = 0; i < 4; i++) { - h4[i] = l & 255; - l >>= 8; - } - buff[nbuf++] = h4[3]; - buff[nbuf++] = h4[2]; - buff[nbuf++] = h4[1]; - buff[nbuf++] = h4[0]; - } - for (i = 0; i < n; i++) { - if (nbuf >= BSIZ) { - fwrite(buff, 1, BSIZ, output); - nbuf = 0; - } - flt2ieee(array[i], buff + nbuf); - nbuf += 4; - } - if (header) { - if (nbuf == BSIZ) { - fwrite(buff, 1, BSIZ, output); - nbuf = 0; - } - buff[nbuf++] = h4[3]; - buff[nbuf++] = h4[2]; - buff[nbuf++] = h4[1]; - buff[nbuf++] = h4[0]; - } - if (nbuf) fwrite(buff, 1, nbuf, output); - return 0; + unsigned long int l; + int i, nbuf; + unsigned char buff[BSIZ]; + unsigned char h4[4]; + + nbuf = 0; + h4[0] = h4[1] = h4[2] = h4[3] = 0; + if (header) { + l = n * 4; + for (i = 0; i < 4; i++) { + h4[i] = l & 255; + l >>= 8; + } + buff[nbuf++] = h4[3]; + buff[nbuf++] = h4[2]; + buff[nbuf++] = h4[1]; + buff[nbuf++] = h4[0]; + } + for (i = 0; i < n; i++) { + if (nbuf >= BSIZ) { + fwrite(buff, 1, BSIZ, output); + nbuf = 0; + } + flt2ieee(array[i], buff + nbuf); + nbuf += 4; + } + if (header) { + if (nbuf == BSIZ) { + fwrite(buff, 1, BSIZ, output); + nbuf = 0; + } + buff[nbuf++] = h4[3]; + buff[nbuf++] = h4[2]; + buff[nbuf++] = h4[1]; + buff[nbuf++] = h4[0]; + } + if (nbuf) fwrite(buff, 1, nbuf, output); + return 0; } /* write a big-endian 4 byte integer .. f77 IEEE header */ int wrtieee_header(unsigned int n, FILE *output) { - unsigned h4[4]; + unsigned h4[4]; - h4[0] = n & 255; - h4[1] = (n >> 8) & 255; - h4[2] = (n >> 16) & 255; - h4[3] = (n >> 24) & 255; + h4[0] = n & 255; + h4[1] = (n >> 8) & 255; + h4[2] = (n >> 16) & 255; + h4[3] = (n >> 24) & 255; - putc(h4[3],output); - putc(h4[2],output); - putc(h4[1],output); - putc(h4[0],output); + putc(h4[3],output); + putc(h4[2],output); + putc(h4[1],output); + putc(h4[0],output); - return 0; + return 0; } @@ -1988,7 +1987,7 @@ int wrtieee_header(unsigned int n, FILE *output) { * (kpds values are from NMC's grib routines) * center = PDS_Center(pds) .. NMC, ECMWF, etc * - * the description of the levels is + * the description of the levels is * (1) incomplete * (2) include some NMC-only values (>= 200?) * @@ -2003,201 +2002,201 @@ int wrtieee_header(unsigned int n, FILE *output) { void levels(int kpds6, int kpds7, int center, int verbose) { - int o11, o12; - - /* octets 11 and 12 */ - o11 = kpds7 / 256; - o12 = kpds7 % 256; - - - switch (kpds6) { - - case 1: printf("sfc"); - break; - case 2: printf("cld base"); - break; - case 3: printf("cld top"); - break; - case 4: printf("0C isotherm"); - break; - case 5: printf("cond lev"); - break; - case 6: printf("max wind lev"); - break; - case 7: printf("tropopause"); - break; - case 8: printf("nom. top"); - break; - case 9: printf("sea bottom"); - break; - case 200: - case 10: printf("atmos col"); - break; - - case 12: printf("low cld bot"); - break; - - case 13: printf("low cld top"); - break; - case 14: printf("low cld lay"); - break; - case 20: - if (verbose == 2) printf("temp=%fK", kpds7/100.0); - else printf("T=%fK", kpds7/100.0); - break; - case 22: - case 222: printf("mid cld bot"); - break; - case 23: - case 223: printf("mid cld top"); - break; - case 24: - case 224: printf("mid cld lay"); - break; - case 32: - case 232: printf("high cld bot"); - break; - case 33: - case 233: printf("high cld top"); - break; - case 34: - case 234: printf("high cld lay"); - break; - - case 201: printf("ocean column"); - break; - case 204: printf("high trop freezing lvl"); - break; - case 206: printf("grid-scale cld bot"); - break; - case 207: printf("grid-scale cld top"); - break; - case 209: printf("bndary-layer cld bot"); - break; - case 210: - if (center == NMC) printf("bndary-layer cld top"); - else printf("%.2f mb",kpds7*0.01); - break; - case 211: - if (center == JMA) printf("soil column"); - else printf("bndary-layer cld layer"); - break; - case 212: - if (center == JMA) printf("bot land sfc model"); - else printf("low cld bot"); - break; - case 213: - if (center == JMA) printf("soil layer %d",kpds7); - else printf("low cld top"); - break; - case 214: printf("low cld lay"); - break; - case 215: printf("cloud ceiling"); - break; - case 216: printf("Cb base"); - break; - case 217: printf("Cb top"); - break; - case 220: printf("planetary boundary layer (from Richardson no.)"); - break; - case 235: if (kpds7 % 10 == 0) - printf("%dC ocean isotherm level",kpds7/10); - else printf("%.1fC ocean isotherm level",kpds7/10.0); - break; - case 236: printf("%d-%dm ocean layer",o11*10,o12*10); - break; - case 237: printf("ocean mixed layer bot"); - break; - case 238: printf("ocean isothermal layer bot"); - break; - case 239: printf("sfc-26C ocean layer"); - break; - case 240: printf("ocean mixed layer"); - break; - case 241: printf("ordered sequence of data"); - break; - case 242: printf("convect-cld bot"); - break; - case 243: printf("convect-cld top"); - break; - case 244: printf("convect-cld layer"); - break; - case 245: printf("lowest level of wet bulb zero"); - break; - case 246: printf("max e-pot-temp lvl"); - break; - case 247: printf("equilibrium lvl"); - break; - case 248: printf("shallow convect-cld bot"); - break; - case 249: printf("shallow convect-cld top"); - break; - case 251: printf("deep convect-cld bot"); - break; - case 252: printf("deep convect-cld top"); - break; - case 253: printf("lowest bottom level of supercooled liequid water layer"); - break; - case 254: printf("highest top level of supercooled liquid water layer"); - break; - case 100: printf("%d mb",kpds7); - break; - case 101: printf("%d-%d mb",o11*10,o12*10); - break; - case 102: printf("MSL"); - break; - case 103: printf("%d m above MSL",kpds7); - break; - case 104: printf("%d-%d m above msl",o11*100,o12*100); - break; - case 105: printf("%d m above gnd",kpds7); - break; - case 106: printf("%d-%d m above gnd",o11*100,o12*100); - break; - case 107: printf("sigma=%.4f",kpds7/10000.0); - break; - case 108: printf("sigma %.2f-%.2f",o11/100.0,o12/100.0); - break; - case 109: printf("hybrid lev %d",kpds7); - break; - case 110: printf("hybrid %d-%d",o11,o12); - break; - case 111: printf("%d cm down",kpds7); - break; - case 112: printf("%d-%d cm down",o11,o12); - break; - case 113: - if (verbose == 2) printf("pot-temp=%dK",kpds7); - else printf("%dK",kpds7); - break; - case 114: printf("%d-%dK",475-o11,475-o12); - break; - case 115: printf("%d mb above gnd",kpds7); - break; - case 116: printf("%d-%d mb above gnd",o11,o12); - break; - case 117: printf("%d pv units",INT2(o11,o12)); /* units are suspect */ - break; - case 119: printf("%.5f (ETA level)",kpds7/10000.0); - break; - case 120: printf("%.2f-%.2f (ETA levels)",o11/100.0,o12/100.0); - break; - case 121: printf("%d-%d mb",1100-o11,1100-o12); - break; - case 125: printf("%d cm above gnd",kpds7); - break; - case 126: - if (center == NMC) printf("%.2f mb",kpds7*0.01); - break; - case 128: printf("%.3f-%.3f (sigma)",1.1-o11/1000.0, 1.1-o12/1000.0); - break; - case 141: printf("%d-%d mb",o11*10,1100-o12); - break; - case 160: printf("%d m below sea level",kpds7); - break; - default: - break; - } + int o11, o12; + + /* octets 11 and 12 */ + o11 = kpds7 / 256; + o12 = kpds7 % 256; + + + switch (kpds6) { + + case 1: printf("sfc"); + break; + case 2: printf("cld base"); + break; + case 3: printf("cld top"); + break; + case 4: printf("0C isotherm"); + break; + case 5: printf("cond lev"); + break; + case 6: printf("max wind lev"); + break; + case 7: printf("tropopause"); + break; + case 8: printf("nom. top"); + break; + case 9: printf("sea bottom"); + break; + case 200: + case 10: printf("atmos col"); + break; + + case 12: printf("low cld bot"); + break; + + case 13: printf("low cld top"); + break; + case 14: printf("low cld lay"); + break; + case 20: + if (verbose == 2) printf("temp=%fK", kpds7/100.0); + else printf("T=%fK", kpds7/100.0); + break; + case 22: + case 222: printf("mid cld bot"); + break; + case 23: + case 223: printf("mid cld top"); + break; + case 24: + case 224: printf("mid cld lay"); + break; + case 32: + case 232: printf("high cld bot"); + break; + case 33: + case 233: printf("high cld top"); + break; + case 34: + case 234: printf("high cld lay"); + break; + + case 201: printf("ocean column"); + break; + case 204: printf("high trop freezing lvl"); + break; + case 206: printf("grid-scale cld bot"); + break; + case 207: printf("grid-scale cld top"); + break; + case 209: printf("bndary-layer cld bot"); + break; + case 210: + if (center == NMC) printf("bndary-layer cld top"); + else printf("%.2f mb",kpds7*0.01); + break; + case 211: + if (center == JMA) printf("soil column"); + else printf("bndary-layer cld layer"); + break; + case 212: + if (center == JMA) printf("bot land sfc model"); + else printf("low cld bot"); + break; + case 213: + if (center == JMA) printf("soil layer %d",kpds7); + else printf("low cld top"); + break; + case 214: printf("low cld lay"); + break; + case 215: printf("cloud ceiling"); + break; + case 216: printf("Cb base"); + break; + case 217: printf("Cb top"); + break; + case 220: printf("planetary boundary layer (from Richardson no.)"); + break; + case 235: if (kpds7 % 10 == 0) + printf("%dC ocean isotherm level",kpds7/10); + else printf("%.1fC ocean isotherm level",kpds7/10.0); + break; + case 236: printf("%d-%dm ocean layer",o11*10,o12*10); + break; + case 237: printf("ocean mixed layer bot"); + break; + case 238: printf("ocean isothermal layer bot"); + break; + case 239: printf("sfc-26C ocean layer"); + break; + case 240: printf("ocean mixed layer"); + break; + case 241: printf("ordered sequence of data"); + break; + case 242: printf("convect-cld bot"); + break; + case 243: printf("convect-cld top"); + break; + case 244: printf("convect-cld layer"); + break; + case 245: printf("lowest level of wet bulb zero"); + break; + case 246: printf("max e-pot-temp lvl"); + break; + case 247: printf("equilibrium lvl"); + break; + case 248: printf("shallow convect-cld bot"); + break; + case 249: printf("shallow convect-cld top"); + break; + case 251: printf("deep convect-cld bot"); + break; + case 252: printf("deep convect-cld top"); + break; + case 253: printf("lowest bottom level of supercooled liequid water layer"); + break; + case 254: printf("highest top level of supercooled liquid water layer"); + break; + case 100: printf("%d mb",kpds7); + break; + case 101: printf("%d-%d mb",o11*10,o12*10); + break; + case 102: printf("MSL"); + break; + case 103: printf("%d m above MSL",kpds7); + break; + case 104: printf("%d-%d m above msl",o11*100,o12*100); + break; + case 105: printf("%d m above gnd",kpds7); + break; + case 106: printf("%d-%d m above gnd",o11*100,o12*100); + break; + case 107: printf("sigma=%.4f",kpds7/10000.0); + break; + case 108: printf("sigma %.2f-%.2f",o11/100.0,o12/100.0); + break; + case 109: printf("hybrid lev %d",kpds7); + break; + case 110: printf("hybrid %d-%d",o11,o12); + break; + case 111: printf("%d cm down",kpds7); + break; + case 112: printf("%d-%d cm down",o11,o12); + break; + case 113: + if (verbose == 2) printf("pot-temp=%dK",kpds7); + else printf("%dK",kpds7); + break; + case 114: printf("%d-%dK",475-o11,475-o12); + break; + case 115: printf("%d mb above gnd",kpds7); + break; + case 116: printf("%d-%d mb above gnd",o11,o12); + break; + case 117: printf("%d pv units",INT2(o11,o12)); /* units are suspect */ + break; + case 119: printf("%.5f (ETA level)",kpds7/10000.0); + break; + case 120: printf("%.2f-%.2f (ETA levels)",o11/100.0,o12/100.0); + break; + case 121: printf("%d-%d mb",1100-o11,1100-o12); + break; + case 125: printf("%d cm above gnd",kpds7); + break; + case 126: + if (center == NMC) printf("%.2f mb",kpds7*0.01); + break; + case 128: printf("%.3f-%.3f (sigma)",1.1-o11/1000.0, 1.1-o12/1000.0); + break; + case 141: printf("%d-%d mb",o11*10,1100-o12); + break; + case 160: printf("%d m below sea level",kpds7); + break; + default: + break; + } } /* @@ -2216,233 +2215,233 @@ void levels(int kpds6, int kpds7, int center, int verbose) { */ static char *units[] = { - "min", "hr", "d", "mon", "yr", - "decade", "normal", "century", "??", "??", " x3 hours", " x6 hours", - " x12 hours", - "x15 min", "x30 min", "??", "??", "??", "??", "??", "??", "??", "??", - "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", - "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", - "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", - "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", - "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", - "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", - "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", - "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", - "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", - "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", - "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", - "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", - "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", - "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", - "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", - "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", - "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", - "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", - "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", - "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", - "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", - "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", - "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", - "??", " sec"}; + "min", "hr", "d", "mon", "yr", + "decade", "normal", "century", "??", "??", " x3 hours", " x6 hours", + " x12 hours", + "x15 min", "x30 min", "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", "??", "??", + "??", " sec"}; void PDStimes(int time_range, int p1, int p2, int time_unit) { - char *unit; - enum {anal, fcst, unknown} type; - int fcst_len = 0; - - if (time_unit >= 0 && time_unit <= sizeof(units)/sizeof(char *)) - unit = units[time_unit]; - else unit = ""; - - /* change x3/x6/x12 to hours */ - - if (time_unit == HOURS3) { - p1 *= 3; p2 *= 3; - time_unit = HOUR; - } - else if (time_unit == HOURS6) { - p1 *= 6; p2 *= 6; - time_unit = HOUR; - } - else if (time_unit == HOURS12) { - p1 *= 12; p2 *= 12; - time_unit = HOUR; - } - else if (time_unit == MINUTES30) { - p1 *= 30; p2 *= 30; - time_unit = MINUTE; - } - else if (time_unit == MINUTES15) { - p1 *= 15; p2 *= 15; - time_unit = MINUTE; - } - /* turn off 5/13/2010 - if (time_unit == MINUTE && p1 % 60 == 0 && p2 % 60 == 0) { - p1 /= 60; p2 /= 60; - time_unit = HOUR; - } - */ - - if (time_unit >= 0 && time_unit <= sizeof(units)/sizeof(char *)) - unit = units[time_unit]; - else unit = ""; + char *unit; + enum {anal, fcst, unknown} type; + int fcst_len = 0; - /* figure out if analysis or forecast */ - /* in GRIB, there is a difference between init and uninit analyses */ - /* not case at NMC .. no longer run initialization */ - /* ignore diff between init an uninit analyses */ + if (time_unit >= 0 && time_unit <= sizeof(units)/sizeof(char *)) + unit = units[time_unit]; + else unit = ""; - switch (time_range) { + /* change x3/x6/x12 to hours */ - case 0: - case 1: - case 113: - case 114: - case 118: - if (p1 == 0) type = anal; - else { - type = fcst; - fcst_len = p1; + if (time_unit == HOURS3) { + p1 *= 3; p2 *= 3; + time_unit = HOUR; } - break; - case 10: /* way NMC uses it, should be unknown? */ - type = fcst; - fcst_len = p1*256 + p2; - if (fcst_len == 0) type = anal; - break; - - case 51: - type = unknown; - break; - case 123: - case 124: - type = anal; - break; - - case 135: - type = anal; - break; - - default: type = unknown; - break; - } - - /* ----------------------------------------------- */ - - if (type == anal) printf("anl:"); - else if (type == fcst) printf("%d%s fcst:",fcst_len,unit); - - - if (time_range == 123 || time_range == 124) { - if (p1 != 0) printf("start@%d%s:",p1,unit); - } - - - /* print time range */ - - - switch (time_range) { - - case 0: - case 1: - case 10: - break; - case 2: printf("valid %d-%d%s:",p1,p2,unit); - break; - case 3: printf("%d-%d%s ave:",p1,p2,unit); - break; - case 4: printf("%d-%d%s acc:",p1,p2,unit); - break; - case 5: printf("%d-%d%s diff:",p1,p2,unit); - break; - case 6: printf("-%d to -%d %s ave:", p1,p2,unit); - break; - case 7: printf("-%d to %d %s ave:", p1,p2,unit); - break; - case 11: if (p1 > 0) { - printf("init fcst %d%s:",p1,unit); + else if (time_unit == HOURS6) { + p1 *= 6; p2 *= 6; + time_unit = HOUR; } - else { - printf("time?:"); + else if (time_unit == HOURS12) { + p1 *= 12; p2 *= 12; + time_unit = HOUR; } - break; - case 13: printf("nudge ana %d%s:",p1,unit); - break; - case 14: printf("rel. fcst %d%s:",p1,unit); - break; - case 51: if (p1 == 0) { - /* printf("clim %d%s:",p2,unit); */ - printf("0-%d%s product:ave@1yr:",p2,unit); + else if (time_unit == MINUTES30) { + p1 *= 30; p2 *= 30; + time_unit = MINUTE; } - else if (p1 == 1) { - /* printf("clim (diurnal) %d%s:",p2,unit); */ - printf("0-%d%s product:same-hour,ave@1yr:",p2,unit); + else if (time_unit == MINUTES15) { + p1 *= 15; p2 *= 15; + time_unit = MINUTE; } - else { - printf("clim? p1=%d? %d%s?:",p1,p2,unit); + /* turn off 5/13/2010 + if (time_unit == MINUTE && p1 % 60 == 0 && p2 % 60 == 0) { + p1 /= 60; p2 /= 60; + time_unit = HOUR; } - break; - case 113: - case 123: - printf("ave@%d%s:",p2,unit); - break; - case 114: - case 124: - printf("acc@%d%s:",p2,unit); - break; - case 115: - printf("ave of fcst:%d to %d%s:",p1,p2,unit); - break; - case 116: - printf("acc of fcst:%d to %d%s:",p1,p2,unit); - break; - case 118: - printf("var@%d%s:",p2,unit); - break; - case 128: - printf("%d-%d%s fcst acc:ave@24hr:", p1, p2, unit); - break; - case 129: - printf("%d-%d%s fcst acc:ave@%d%s:", p1, p2, unit, p2-p1,unit); - break; - case 130: - printf("%d-%d%s fcst ave:ave@24hr:", p1, p2, unit); - break; - case 131: - printf("%d-%d%s fcst ave:ave@%d%s:", p1, p2, unit,p2-p1,unit); - break; - /* for CFS */ - case 132: - printf("%d-%d%s anl:ave@1yr:", p1, p2, unit); - break; - case 133: - printf("%d-%d%s fcst:ave@1yr:", p1, p2, unit); - break; - case 134: - printf("%d-%d%s fcst-anl:rms@1yr:", p1, p2, unit); - break; - case 135: - printf("%d-%d%s fcst-fcst_mean:rms@1yr:", p1, p2, unit); - break; - case 136: - printf("%d-%d%s anl-anl_mean:rms@1yr:", p1, p2, unit); - break; - case 137: - printf("%d-%d%s fcst acc:ave@6hr:", p1, p2, unit); - break; - case 138: - printf("%d-%d%s fcst ave:ave@6hr:", p1, p2, unit); - break; - case 139: - printf("%d-%d%s fcst acc:ave@12hr:", p1, p2, unit); - break; - case 140: - printf("%d-%d%s fcst ave:ave@12hr:", p1, p2, unit); - break; - - default: printf("time?:"); - } + */ + + if (time_unit >= 0 && time_unit <= sizeof(units)/sizeof(char *)) + unit = units[time_unit]; + else unit = ""; + + /* figure out if analysis or forecast */ + /* in GRIB, there is a difference between init and uninit analyses */ + /* not case at NMC .. no longer run initialization */ + /* ignore diff between init an uninit analyses */ + + switch (time_range) { + + case 0: + case 1: + case 113: + case 114: + case 118: + if (p1 == 0) type = anal; + else { + type = fcst; + fcst_len = p1; + } + break; + case 10: /* way NMC uses it, should be unknown? */ + type = fcst; + fcst_len = p1*256 + p2; + if (fcst_len == 0) type = anal; + break; + + case 51: + type = unknown; + break; + case 123: + case 124: + type = anal; + break; + + case 135: + type = anal; + break; + + default: type = unknown; + break; + } + + /* ----------------------------------------------- */ + + if (type == anal) printf("anl:"); + else if (type == fcst) printf("%d%s fcst:",fcst_len,unit); + + + if (time_range == 123 || time_range == 124) { + if (p1 != 0) printf("start@%d%s:",p1,unit); + } + + + /* print time range */ + + + switch (time_range) { + + case 0: + case 1: + case 10: + break; + case 2: printf("valid %d-%d%s:",p1,p2,unit); + break; + case 3: printf("%d-%d%s ave:",p1,p2,unit); + break; + case 4: printf("%d-%d%s acc:",p1,p2,unit); + break; + case 5: printf("%d-%d%s diff:",p1,p2,unit); + break; + case 6: printf("-%d to -%d %s ave:", p1,p2,unit); + break; + case 7: printf("-%d to %d %s ave:", p1,p2,unit); + break; + case 11: if (p1 > 0) { + printf("init fcst %d%s:",p1,unit); + } + else { + printf("time?:"); + } + break; + case 13: printf("nudge ana %d%s:",p1,unit); + break; + case 14: printf("rel. fcst %d%s:",p1,unit); + break; + case 51: if (p1 == 0) { + /* printf("clim %d%s:",p2,unit); */ + printf("0-%d%s product:ave@1yr:",p2,unit); + } + else if (p1 == 1) { + /* printf("clim (diurnal) %d%s:",p2,unit); */ + printf("0-%d%s product:same-hour,ave@1yr:",p2,unit); + } + else { + printf("clim? p1=%d? %d%s?:",p1,p2,unit); + } + break; + case 113: + case 123: + printf("ave@%d%s:",p2,unit); + break; + case 114: + case 124: + printf("acc@%d%s:",p2,unit); + break; + case 115: + printf("ave of fcst:%d to %d%s:",p1,p2,unit); + break; + case 116: + printf("acc of fcst:%d to %d%s:",p1,p2,unit); + break; + case 118: + printf("var@%d%s:",p2,unit); + break; + case 128: + printf("%d-%d%s fcst acc:ave@24hr:", p1, p2, unit); + break; + case 129: + printf("%d-%d%s fcst acc:ave@%d%s:", p1, p2, unit, p2-p1,unit); + break; + case 130: + printf("%d-%d%s fcst ave:ave@24hr:", p1, p2, unit); + break; + case 131: + printf("%d-%d%s fcst ave:ave@%d%s:", p1, p2, unit,p2-p1,unit); + break; + /* for CFS */ + case 132: + printf("%d-%d%s anl:ave@1yr:", p1, p2, unit); + break; + case 133: + printf("%d-%d%s fcst:ave@1yr:", p1, p2, unit); + break; + case 134: + printf("%d-%d%s fcst-anl:rms@1yr:", p1, p2, unit); + break; + case 135: + printf("%d-%d%s fcst-fcst_mean:rms@1yr:", p1, p2, unit); + break; + case 136: + printf("%d-%d%s anl-anl_mean:rms@1yr:", p1, p2, unit); + break; + case 137: + printf("%d-%d%s fcst acc:ave@6hr:", p1, p2, unit); + break; + case 138: + printf("%d-%d%s fcst ave:ave@6hr:", p1, p2, unit); + break; + case 139: + printf("%d-%d%s fcst acc:ave@12hr:", p1, p2, unit); + break; + case 140: + printf("%d-%d%s fcst ave:ave@12hr:", p1, p2, unit); + break; + + default: printf("time?:"); + } } /* @@ -2454,21 +2453,21 @@ void PDStimes(int time_range, int p1, int p2, int time_unit) { */ static int bitsum[256] = { - 8, 7, 7, 6, 7, 6, 6, 5, 7, 6, 6, 5, 6, 5, 5, 4, - 7, 6, 6, 5, 6, 5, 5, 4, 6, 5, 5, 4, 5, 4, 4, 3, - 7, 6, 6, 5, 6, 5, 5, 4, 6, 5, 5, 4, 5, 4, 4, 3, - 6, 5, 5, 4, 5, 4, 4, 3, 5, 4, 4, 3, 4, 3, 3, 2, - 7, 6, 6, 5, 6, 5, 5, 4, 6, 5, 5, 4, 5, 4, 4, 3, - 6, 5, 5, 4, 5, 4, 4, 3, 5, 4, 4, 3, 4, 3, 3, 2, - 6, 5, 5, 4, 5, 4, 4, 3, 5, 4, 4, 3, 4, 3, 3, 2, - 5, 4, 4, 3, 4, 3, 3, 2, 4, 3, 3, 2, 3, 2, 2, 1, - 7, 6, 6, 5, 6, 5, 5, 4, 6, 5, 5, 4, 5, 4, 4, 3, - 6, 5, 5, 4, 5, 4, 4, 3, 5, 4, 4, 3, 4, 3, 3, 2, - 6, 5, 5, 4, 5, 4, 4, 3, 5, 4, 4, 3, 4, 3, 3, 2, - 5, 4, 4, 3, 4, 3, 3, 2, 4, 3, 3, 2, 3, 2, 2, 1, - 6, 5, 5, 4, 5, 4, 4, 3, 5, 4, 4, 3, 4, 3, 3, 2, - 5, 4, 4, 3, 4, 3, 3, 2, 4, 3, 3, 2, 3, 2, 2, 1, - 5, 4, 4, 3, 4, 3, 3, 2, 4, 3, 3, 2, 3, 2, 2, 1, + 8, 7, 7, 6, 7, 6, 6, 5, 7, 6, 6, 5, 6, 5, 5, 4, + 7, 6, 6, 5, 6, 5, 5, 4, 6, 5, 5, 4, 5, 4, 4, 3, + 7, 6, 6, 5, 6, 5, 5, 4, 6, 5, 5, 4, 5, 4, 4, 3, + 6, 5, 5, 4, 5, 4, 4, 3, 5, 4, 4, 3, 4, 3, 3, 2, + 7, 6, 6, 5, 6, 5, 5, 4, 6, 5, 5, 4, 5, 4, 4, 3, + 6, 5, 5, 4, 5, 4, 4, 3, 5, 4, 4, 3, 4, 3, 3, 2, + 6, 5, 5, 4, 5, 4, 4, 3, 5, 4, 4, 3, 4, 3, 3, 2, + 5, 4, 4, 3, 4, 3, 3, 2, 4, 3, 3, 2, 3, 2, 2, 1, + 7, 6, 6, 5, 6, 5, 5, 4, 6, 5, 5, 4, 5, 4, 4, 3, + 6, 5, 5, 4, 5, 4, 4, 3, 5, 4, 4, 3, 4, 3, 3, 2, + 6, 5, 5, 4, 5, 4, 4, 3, 5, 4, 4, 3, 4, 3, 3, 2, + 5, 4, 4, 3, 4, 3, 3, 2, 4, 3, 3, 2, 3, 2, 2, 1, + 6, 5, 5, 4, 5, 4, 4, 3, 5, 4, 4, 3, 4, 3, 3, 2, + 5, 4, 4, 3, 4, 3, 3, 2, 4, 3, 3, 2, 3, 2, 2, 1, + 5, 4, 4, 3, 4, 3, 3, 2, 4, 3, 3, 2, 3, 2, 2, 1, 4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0}; @@ -2480,8 +2479,8 @@ int missing_points(unsigned char *bitmap, int n) { count = 0; while (n >= 8) { - tmp = *bitmap++; - n -= 8; + tmp = *bitmap++; + n -= 8; count += bitsum[tmp]; } tmp = *bitmap | ((1 << (8 - n)) - 1); @@ -2498,262 +2497,262 @@ int missing_points(unsigned char *bitmap, int n) { */ const struct ParmTable parm_table_ncep_opn[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"PRES", "Pressure [Pa]"}, - /* 2 */ {"PRMSL", "Pressure reduced to MSL [Pa]"}, - /* 3 */ {"PTEND", "Pressure tendency [Pa/s]"}, - /* 4 */ {"PVORT", "Pot. vorticity [km^2/kg/s]"}, - /* 5 */ {"ICAHT", "ICAO Standard Atmosphere Reference Height [M]"}, - /* 6 */ {"GP", "Geopotential [m^2/s^2]"}, - /* 7 */ {"HGT", "Geopotential height [gpm]"}, - /* 8 */ {"DIST", "Geometric height [m]"}, - /* 9 */ {"HSTDV", "Std dev of height [m]"}, - /* 10 */ {"TOZNE", "Total ozone [Dobson]"}, - /* 11 */ {"TMP", "Temp. [K]"}, - /* 12 */ {"VTMP", "Virtual temp. [K]"}, - /* 13 */ {"POT", "Potential temp. [K]"}, - /* 14 */ {"EPOT", "Pseudo-adiabatic pot. temp. [K]"}, - /* 15 */ {"TMAX", "Max. temp. [K]"}, - /* 16 */ {"TMIN", "Min. temp. [K]"}, - /* 17 */ {"DPT", "Dew point temp. [K]"}, - /* 18 */ {"DEPR", "Dew point depression [K]"}, - /* 19 */ {"LAPR", "Lapse rate [K/m]"}, - /* 20 */ {"VIS", "Visibility [m]"}, - /* 21 */ {"RDSP1", "Radar spectra (1) [non-dim]"}, - /* 22 */ {"RDSP2", "Radar spectra (2) [non-dim]"}, - /* 23 */ {"RDSP3", "Radar spectra (3) [non-dim]"}, - /* 24 */ {"PLI", "Parcel lifted index (to 500 hPa) [K]"}, - /* 25 */ {"TMPA", "Temp. anomaly [K]"}, - /* 26 */ {"PRESA", "Pressure anomaly [Pa]"}, - /* 27 */ {"GPA", "Geopotential height anomaly [gpm]"}, - /* 28 */ {"WVSP1", "Wave spectra (1) [non-dim]"}, - /* 29 */ {"WVSP2", "Wave spectra (2) [non-dim]"}, - /* 30 */ {"WVSP3", "Wave spectra (3) [non-dim]"}, - /* 31 */ {"WDIR", "Wind direction [deg]"}, - /* 32 */ {"WIND", "Wind speed [m/s]"}, - /* 33 */ {"UGRD", "u wind [m/s]"}, - /* 34 */ {"VGRD", "v wind [m/s]"}, - /* 35 */ {"STRM", "Stream function [m^2/s]"}, - /* 36 */ {"VPOT", "Velocity potential [m^2/s]"}, - /* 37 */ {"MNTSF", "Montgomery stream function [m^2/s^2]"}, - /* 38 */ {"SGCVV", "Sigma coord. vertical velocity [/s]"}, - /* 39 */ {"VVEL", "Pressure vertical velocity [Pa/s]"}, - /* 40 */ {"DZDT", "Geometric vertical velocity [m/s]"}, - /* 41 */ {"ABSV", "Absolute vorticity [/s]"}, - /* 42 */ {"ABSD", "Absolute divergence [/s]"}, - /* 43 */ {"RELV", "Relative vorticity [/s]"}, - /* 44 */ {"RELD", "Relative divergence [/s]"}, - /* 45 */ {"VUCSH", "Vertical u shear [/s]"}, - /* 46 */ {"VVCSH", "Vertical v shear [/s]"}, - /* 47 */ {"DIRC", "Direction of current [deg]"}, - /* 48 */ {"SPC", "Speed of current [m/s]"}, - /* 49 */ {"UOGRD", "u of current [m/s]"}, - /* 50 */ {"VOGRD", "v of current [m/s]"}, - /* 51 */ {"SPFH", "Specific humidity [kg/kg]"}, - /* 52 */ {"RH", "Relative humidity [%]"}, - /* 53 */ {"MIXR", "Humidity mixing ratio [kg/kg]"}, - /* 54 */ {"PWAT", "Precipitable water [kg/m^2]"}, - /* 55 */ {"VAPP", "Vapor pressure [Pa]"}, - /* 56 */ {"SATD", "Saturation deficit [Pa]"}, - /* 57 */ {"EVP", "Evaporation [kg/m^2]"}, - /* 58 */ {"CICE", "Cloud Ice [kg/m^2]"}, - /* 59 */ {"PRATE", "Precipitation rate [kg/m^2/s]"}, - /* 60 */ {"TSTM", "Thunderstorm probability [%]"}, - /* 61 */ {"APCP", "Total precipitation [kg/m^2]"}, - /* 62 */ {"NCPCP", "Large scale precipitation [kg/m^2]"}, - /* 63 */ {"ACPCP", "Convective precipitation [kg/m^2]"}, - /* 64 */ {"SRWEQ", "Snowfall rate water equiv. [kg/m^2/s]"}, - /* 65 */ {"WEASD", "Accum. snow [kg/m^2]"}, - /* 66 */ {"SNOD", "Snow depth [m]"}, - /* 67 */ {"MIXHT", "Mixed layer depth [m]"}, - /* 68 */ {"TTHDP", "Transient thermocline depth [m]"}, - /* 69 */ {"MTHD", "Main thermocline depth [m]"}, - /* 70 */ {"MTHA", "Main thermocline anomaly [m]"}, - /* 71 */ {"TCDC", "Total cloud cover [%]"}, - /* 72 */ {"CDCON", "Convective cloud cover [%]"}, - /* 73 */ {"LCDC", "Low level cloud cover [%]"}, - /* 74 */ {"MCDC", "Mid level cloud cover [%]"}, - /* 75 */ {"HCDC", "High level cloud cover [%]"}, - /* 76 */ {"CWAT", "Cloud water [kg/m^2]"}, - /* 77 */ {"BLI", "Best lifted index (to 500 hPa) [K]"}, - /* 78 */ {"SNOC", "Convective snow [kg/m^2]"}, - /* 79 */ {"SNOL", "Large scale snow [kg/m^2]"}, - /* 80 */ {"WTMP", "Water temp. [K]"}, - /* 81 */ {"LAND", "Land cover (land=1;sea=0) [fraction]"}, - /* 82 */ {"DSLM", "Deviation of sea level from mean [m]"}, - /* 83 */ {"SFCR", "Surface roughness [m]"}, - /* 84 */ {"ALBDO", "Albedo [%]"}, - /* 85 */ {"TSOIL", "Soil temp. [K]"}, - /* 86 */ {"SOILM", "Soil moisture content [kg/m^2]"}, - /* 87 */ {"VEG", "Vegetation [%]"}, - /* 88 */ {"SALTY", "Salinity [kg/kg]"}, - /* 89 */ {"DEN", "Density [kg/m^3]"}, - /* 90 */ {"WATR", "Water runoff [kg/m^2]"}, - /* 91 */ {"ICEC", "Ice concentration (ice=1;no ice=0) [fraction]"}, - /* 92 */ {"ICETK", "Ice thickness [m]"}, - /* 93 */ {"DICED", "Direction of ice drift [deg]"}, - /* 94 */ {"SICED", "Speed of ice drift [m/s]"}, - /* 95 */ {"UICE", "u of ice drift [m/s]"}, - /* 96 */ {"VICE", "v of ice drift [m/s]"}, - /* 97 */ {"ICEG", "Ice growth rate [m/s]"}, - /* 98 */ {"ICED", "Ice divergence [/s]"}, - /* 99 */ {"SNOM", "Snow melt [kg/m^2]"}, - /* 100 */ {"HTSGW", "Sig height of wind waves and swell [m]"}, - /* 101 */ {"WVDIR", "Direction of wind waves [deg]"}, - /* 102 */ {"WVHGT", "Sig height of wind waves [m]"}, - /* 103 */ {"WVPER", "Mean period of wind waves [s]"}, - /* 104 */ {"SWDIR", "Direction of swell waves [deg]"}, - /* 105 */ {"SWELL", "Sig height of swell waves [m]"}, - /* 106 */ {"SWPER", "Mean period of swell waves [s]"}, - /* 107 */ {"DIRPW", "Primary wave direction [deg]"}, - /* 108 */ {"PERPW", "Primary wave mean period [s]"}, - /* 109 */ {"DIRSW", "Secondary wave direction [deg]"}, - /* 110 */ {"PERSW", "Secondary wave mean period [s]"}, - /* 111 */ {"NSWRS", "Net short wave (surface) [W/m^2]"}, - /* 112 */ {"NLWRS", "Net long wave (surface) [W/m^2]"}, - /* 113 */ {"NSWRT", "Net short wave (top) [W/m^2]"}, - /* 114 */ {"NLWRT", "Net long wave (top) [W/m^2]"}, - /* 115 */ {"LWAVR", "Long wave [W/m^2]"}, - /* 116 */ {"SWAVR", "Short wave [W/m^2]"}, - /* 117 */ {"GRAD", "Global radiation [W/m^2]"}, - /* 118 */ {"BRTMP", "Brightness temperature [K]"}, - /* 119 */ {"LWRAD", "Radiance with respect to wave no. [W/m/sr]"}, - /* 120 */ {"SWRAD", "Radiance with respect ot wave len. [W/m^3/sr]"}, - /* 121 */ {"LHTFL", "Latent heat flux [W/m^2]"}, - /* 122 */ {"SHTFL", "Sensible heat flux [W/m^2]"}, - /* 123 */ {"BLYDP", "Boundary layer dissipation [W/m^2]"}, - /* 124 */ {"UFLX", "Zonal momentum flux [N/m^2]"}, - /* 125 */ {"VFLX", "Meridional momentum flux [N/m^2]"}, - /* 126 */ {"WMIXE", "Wind mixing energy [J]"}, - /* 127 */ {"IMGD", "Image data []"}, - /* 128 */ {"MSLSA", "Mean sea level pressure (Std Atm) [Pa]"}, - /* 129 */ {"MSLMA", "Mean sea level pressure (MAPS) [Pa]"}, - /* 130 */ {"MSLET", "Mean sea level pressure (ETA model) [Pa]"}, - /* 131 */ {"LFTX", "Surface lifted index [K]"}, - /* 132 */ {"4LFTX", "Best (4-layer) lifted index [K]"}, - /* 133 */ {"KX", "K index [K]"}, - /* 134 */ {"SX", "Sweat index [K]"}, - /* 135 */ {"MCONV", "Horizontal moisture divergence [kg/kg/s]"}, - /* 136 */ {"VWSH", "Vertical speed shear [1/s]"}, - /* 137 */ {"TSLSA", "3-hr pressure tendency (Std Atmos Red) [Pa/s]"}, - /* 138 */ {"BVF2", "Brunt-Vaisala frequency^2 [1/s^2]"}, - /* 139 */ {"PVMW", "Potential vorticity (mass-weighted) [1/s/m]"}, - /* 140 */ {"CRAIN", "Categorical rain [yes=1;no=0]"}, - /* 141 */ {"CFRZR", "Categorical freezing rain [yes=1;no=0]"}, - /* 142 */ {"CICEP", "Categorical ice pellets [yes=1;no=0]"}, - /* 143 */ {"CSNOW", "Categorical snow [yes=1;no=0]"}, - /* 144 */ {"SOILW", "Volumetric soil moisture [fraction]"}, - /* 145 */ {"PEVPR", "Potential evaporation rate [W/m^2]"}, - /* 146 */ {"CWORK", "Cloud work function [J/kg]"}, - /* 147 */ {"U-GWD", "Zonal gravity wave stress [N/m^2]"}, - /* 148 */ {"V-GWD", "Meridional gravity wave stress [N/m^2]"}, - /* 149 */ {"PV", "Potential vorticity [m^2/s/kg]"}, - /* 150 */ {"COVMZ", "Covariance between u and v [m^2/s^2]"}, - /* 151 */ {"COVTZ", "Covariance between u and T [K*m/s]"}, - /* 152 */ {"COVTM", "Covariance between v and T [K*m/s]"}, - /* 153 */ {"CLWMR", "Cloud water [kg/kg]"}, - /* 154 */ {"O3MR", "Ozone mixing ratio [kg/kg]"}, - /* 155 */ {"GFLUX", "Ground heat flux [W/m^2]"}, - /* 156 */ {"CIN", "Convective inhibition [J/kg]"}, - /* 157 */ {"CAPE", "Convective Avail. Pot. Energy [J/kg]"}, - /* 158 */ {"TKE", "Turbulent kinetic energy [J/kg]"}, - /* 159 */ {"CONDP", "Lifted parcel condensation pressure [Pa]"}, - /* 160 */ {"CSUSF", "Clear sky upward solar flux [W/m^2]"}, - /* 161 */ {"CSDSF", "Clear sky downward solar flux [W/m^2]"}, - /* 162 */ {"CSULF", "Clear sky upward long wave flux [W/m^2]"}, - /* 163 */ {"CSDLF", "Clear sky downward long wave flux [W/m^2]"}, - /* 164 */ {"CFNSF", "Cloud forcing net solar flux [W/m^2]"}, - /* 165 */ {"CFNLF", "Cloud forcing net long wave flux [W/m^2]"}, - /* 166 */ {"VBDSF", "Visible beam downward solar flux [W/m^2]"}, - /* 167 */ {"VDDSF", "Visible diffuse downward solar flux [W/m^2]"}, - /* 168 */ {"NBDSF", "Near IR beam downward solar flux [W/m^2]"}, - /* 169 */ {"NDDSF", "Near IR diffuse downward solar flux [W/m^2]"}, - /* 170 */ {"RWMR", "Rain water mixing ratio [kg/kg]"}, - /* 171 */ {"SNMR", "Snow mixing ratio [kg/kg]"}, - /* 172 */ {"MFLX", "Momentum flux [N/m^2]"}, - /* 173 */ {"LMH", "Mass point model surface [non-dim]"}, - /* 174 */ {"LMV", "Velocity point model surface [non-dim]"}, - /* 175 */ {"MLYNO", "Model layer number (from bottom up) [non-dim]"}, - /* 176 */ {"NLAT", "Latitude (-90 to +90) [deg]"}, - /* 177 */ {"ELON", "East longitude (0-360) [deg]"}, - /* 178 */ {"ICMR", "Ice mixing ratio [kg/kg]"}, - /* 179 */ {"GRMR", "Graupel mixing ratio [kg/kg]"}, - /* 180 */ {"GUST", "Surface wind gust [m/s]"}, - /* 181 */ {"LPSX", "x-gradient of log pressure [1/m]"}, - /* 182 */ {"LPSY", "y-gradient of log pressure [1/m]"}, - /* 183 */ {"HGTX", "x-gradient of height [m/m]"}, - /* 184 */ {"HGTY", "y-gradient of height [m/m]"}, - /* 185 */ {"TURB", "Turbulence SIGMET/AIRMET [non-dim]"}, - /* 186 */ {"ICNG", "Icing SIGMET/AIRMET [non-dim]"}, - /* 187 */ {"LTNG", "Lightning [non-dim]"}, - /* 188 */ {"DRIP", "Rate of water dropping from canopy to gnd [kg/m^2]"}, - /* 189 */ {"VPTMP", "Virtual pot. temp. [K]"}, - /* 190 */ {"HLCY", "Storm relative helicity [m^2/s^2]"}, - /* 191 */ {"PROB", "Prob. from ensemble [non-dim]"}, - /* 192 */ {"PROBN", "Prob. from ensemble norm. to clim. expect. [non-dim]"}, - /* 193 */ {"POP", "Prob. of precipitation [%]"}, - /* 194 */ {"CPOFP", "Prob. of frozen precipitation [%]"}, - /* 195 */ {"CPOZP", "Prob. of freezing precipitation [%]"}, - /* 196 */ {"USTM", "u-component of storm motion [m/s]"}, - /* 197 */ {"VSTM", "v-component of storm motion [m/s]"}, - /* 198 */ {"NCIP", "No. concen. ice particles []"}, - /* 199 */ {"EVBS", "Direct evaporation from bare soil [W/m^2]"}, - /* 200 */ {"EVCW", "Canopy water evaporation [W/m^2]"}, - /* 201 */ {"ICWAT", "Ice-free water surface [%]"}, - /* 202 */ {"CWDI", "Convective weather detection index []"}, - /* 203 */ {"VAFTAD", "VAFTAD?? [??]"}, - /* 204 */ {"DSWRF", "Downward short wave flux [W/m^2]"}, - /* 205 */ {"DLWRF", "Downward long wave flux [W/m^2]"}, - /* 206 */ {"UVI", "Ultraviolet index [W/m^2]"}, - /* 207 */ {"MSTAV", "Moisture availability [%]"}, - /* 208 */ {"SFEXC", "Exchange coefficient [(kg/m^3)(m/s)]"}, - /* 209 */ {"MIXLY", "No. of mixed layers next to surface [integer]"}, - /* 210 */ {"TRANS", "Transpiration [W/m^2]"}, - /* 211 */ {"USWRF", "Upward short wave flux [W/m^2]"}, - /* 212 */ {"ULWRF", "Upward long wave flux [W/m^2]"}, - /* 213 */ {"CDLYR", "Non-convective cloud [%]"}, - /* 214 */ {"CPRAT", "Convective precip. rate [kg/m^2/s]"}, - /* 215 */ {"TTDIA", "Temp. tendency by all physics [K/s]"}, - /* 216 */ {"TTRAD", "Temp. tendency by all radiation [K/s]"}, - /* 217 */ {"TTPHY", "Temp. tendency by non-radiation physics [K/s]"}, - /* 218 */ {"PREIX", "Precip index (0.0-1.00) [fraction]"}, - /* 219 */ {"TSD1D", "Std. dev. of IR T over 1x1 deg area [K]"}, - /* 220 */ {"NLGSP", "Natural log of surface pressure [ln(kPa)]"}, - /* 221 */ {"HPBL", "Planetary boundary layer height [m]"}, - /* 222 */ {"5WAVH", "5-wave geopotential height [gpm]"}, - /* 223 */ {"CNWAT", "Plant canopy surface water [kg/m^2]"}, - /* 224 */ {"SOTYP", "Soil type (Zobler) [0..9]"}, - /* 225 */ {"VGTYP", "Vegetation type (as in SiB) [0..13]"}, - /* 226 */ {"BMIXL", "Blackadar's mixing length scale [m]"}, - /* 227 */ {"AMIXL", "Asymptotic mixing length scale [m]"}, - /* 228 */ {"PEVAP", "Pot. evaporation [kg/m^2]"}, - /* 229 */ {"SNOHF", "Snow phase-change heat flux [W/m^2]"}, - /* 230 */ {"5WAVA", "5-wave geopot. height anomaly [gpm]"}, - /* 231 */ {"MFLUX", "Convective cloud mass flux [Pa/s]"}, - /* 232 */ {"DTRF", "Downward total radiation flux [W/m^2]"}, - /* 233 */ {"UTRF", "Upward total radiation flux [W/m^2]"}, - /* 234 */ {"BGRUN", "Baseflow-groundwater runoff [kg/m^2]"}, - /* 235 */ {"SSRUN", "Storm surface runoff [kg/m^2]"}, - /* 236 */ {"SIPD", "Supercooled large droplet (SLD) icing pot. diagn. []"}, - /* 237 */ {"O3TOT", "Total ozone [kg/m^2]"}, - /* 238 */ {"SNOWC", "Snow cover [%]"}, - /* 239 */ {"SNOT", "Snow temp. [K]"}, - /* 240 */ {"COVTW", "Covariance T and w [K*m/s]"}, - /* 241 */ {"LRGHR", "Large scale condensation heating [K/s]"}, - /* 242 */ {"CNVHR", "Deep convective heating [K/s]"}, - /* 243 */ {"CNVMR", "Deep convective moistening [kg/kg/s]"}, - /* 244 */ {"SHAHR", "Shallow convective heating [K/s]"}, - /* 245 */ {"SHAMR", "Shallow convective moistening [kg/kg/s]"}, - /* 246 */ {"VDFHR", "Vertical diffusion heating [K/s]"}, - /* 247 */ {"VDFUA", "Vertical diffusion zonal accel [m/s^2]"}, - /* 248 */ {"VDFVA", "Vertical diffusion meridional accel [m/s^2]"}, - /* 249 */ {"VDFMR", "Vertical diffusion moistening [kg/kg/s]"}, - /* 250 */ {"SWHR", "Solar radiative heating [K/s]"}, - /* 251 */ {"LWHR", "Longwave radiative heating [K/s]"}, - /* 252 */ {"CD", "Drag coefficient [non-dim]"}, - /* 253 */ {"FRICV", "Friction velocity [m/s]"}, - /* 254 */ {"RI", "Richardson number [non-dim]"}, - /* 255 */ {"var255", "undefined"}, + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"PRES", "Pressure [Pa]"}, + /* 2 */ {"PRMSL", "Pressure reduced to MSL [Pa]"}, + /* 3 */ {"PTEND", "Pressure tendency [Pa/s]"}, + /* 4 */ {"PVORT", "Pot. vorticity [km^2/kg/s]"}, + /* 5 */ {"ICAHT", "ICAO Standard Atmosphere Reference Height [M]"}, + /* 6 */ {"GP", "Geopotential [m^2/s^2]"}, + /* 7 */ {"HGT", "Geopotential height [gpm]"}, + /* 8 */ {"DIST", "Geometric height [m]"}, + /* 9 */ {"HSTDV", "Std dev of height [m]"}, + /* 10 */ {"TOZNE", "Total ozone [Dobson]"}, + /* 11 */ {"TMP", "Temp. [K]"}, + /* 12 */ {"VTMP", "Virtual temp. [K]"}, + /* 13 */ {"POT", "Potential temp. [K]"}, + /* 14 */ {"EPOT", "Pseudo-adiabatic pot. temp. [K]"}, + /* 15 */ {"TMAX", "Max. temp. [K]"}, + /* 16 */ {"TMIN", "Min. temp. [K]"}, + /* 17 */ {"DPT", "Dew point temp. [K]"}, + /* 18 */ {"DEPR", "Dew point depression [K]"}, + /* 19 */ {"LAPR", "Lapse rate [K/m]"}, + /* 20 */ {"VIS", "Visibility [m]"}, + /* 21 */ {"RDSP1", "Radar spectra (1) [non-dim]"}, + /* 22 */ {"RDSP2", "Radar spectra (2) [non-dim]"}, + /* 23 */ {"RDSP3", "Radar spectra (3) [non-dim]"}, + /* 24 */ {"PLI", "Parcel lifted index (to 500 hPa) [K]"}, + /* 25 */ {"TMPA", "Temp. anomaly [K]"}, + /* 26 */ {"PRESA", "Pressure anomaly [Pa]"}, + /* 27 */ {"GPA", "Geopotential height anomaly [gpm]"}, + /* 28 */ {"WVSP1", "Wave spectra (1) [non-dim]"}, + /* 29 */ {"WVSP2", "Wave spectra (2) [non-dim]"}, + /* 30 */ {"WVSP3", "Wave spectra (3) [non-dim]"}, + /* 31 */ {"WDIR", "Wind direction [deg]"}, + /* 32 */ {"WIND", "Wind speed [m/s]"}, + /* 33 */ {"UGRD", "u wind [m/s]"}, + /* 34 */ {"VGRD", "v wind [m/s]"}, + /* 35 */ {"STRM", "Stream function [m^2/s]"}, + /* 36 */ {"VPOT", "Velocity potential [m^2/s]"}, + /* 37 */ {"MNTSF", "Montgomery stream function [m^2/s^2]"}, + /* 38 */ {"SGCVV", "Sigma coord. vertical velocity [/s]"}, + /* 39 */ {"VVEL", "Pressure vertical velocity [Pa/s]"}, + /* 40 */ {"DZDT", "Geometric vertical velocity [m/s]"}, + /* 41 */ {"ABSV", "Absolute vorticity [/s]"}, + /* 42 */ {"ABSD", "Absolute divergence [/s]"}, + /* 43 */ {"RELV", "Relative vorticity [/s]"}, + /* 44 */ {"RELD", "Relative divergence [/s]"}, + /* 45 */ {"VUCSH", "Vertical u shear [/s]"}, + /* 46 */ {"VVCSH", "Vertical v shear [/s]"}, + /* 47 */ {"DIRC", "Direction of current [deg]"}, + /* 48 */ {"SPC", "Speed of current [m/s]"}, + /* 49 */ {"UOGRD", "u of current [m/s]"}, + /* 50 */ {"VOGRD", "v of current [m/s]"}, + /* 51 */ {"SPFH", "Specific humidity [kg/kg]"}, + /* 52 */ {"RH", "Relative humidity [%]"}, + /* 53 */ {"MIXR", "Humidity mixing ratio [kg/kg]"}, + /* 54 */ {"PWAT", "Precipitable water [kg/m^2]"}, + /* 55 */ {"VAPP", "Vapor pressure [Pa]"}, + /* 56 */ {"SATD", "Saturation deficit [Pa]"}, + /* 57 */ {"EVP", "Evaporation [kg/m^2]"}, + /* 58 */ {"CICE", "Cloud Ice [kg/m^2]"}, + /* 59 */ {"PRATE", "Precipitation rate [kg/m^2/s]"}, + /* 60 */ {"TSTM", "Thunderstorm probability [%]"}, + /* 61 */ {"APCP", "Total precipitation [kg/m^2]"}, + /* 62 */ {"NCPCP", "Large scale precipitation [kg/m^2]"}, + /* 63 */ {"ACPCP", "Convective precipitation [kg/m^2]"}, + /* 64 */ {"SRWEQ", "Snowfall rate water equiv. [kg/m^2/s]"}, + /* 65 */ {"WEASD", "Accum. snow [kg/m^2]"}, + /* 66 */ {"SNOD", "Snow depth [m]"}, + /* 67 */ {"MIXHT", "Mixed layer depth [m]"}, + /* 68 */ {"TTHDP", "Transient thermocline depth [m]"}, + /* 69 */ {"MTHD", "Main thermocline depth [m]"}, + /* 70 */ {"MTHA", "Main thermocline anomaly [m]"}, + /* 71 */ {"TCDC", "Total cloud cover [%]"}, + /* 72 */ {"CDCON", "Convective cloud cover [%]"}, + /* 73 */ {"LCDC", "Low level cloud cover [%]"}, + /* 74 */ {"MCDC", "Mid level cloud cover [%]"}, + /* 75 */ {"HCDC", "High level cloud cover [%]"}, + /* 76 */ {"CWAT", "Cloud water [kg/m^2]"}, + /* 77 */ {"BLI", "Best lifted index (to 500 hPa) [K]"}, + /* 78 */ {"SNOC", "Convective snow [kg/m^2]"}, + /* 79 */ {"SNOL", "Large scale snow [kg/m^2]"}, + /* 80 */ {"WTMP", "Water temp. [K]"}, + /* 81 */ {"LAND", "Land cover (land=1;sea=0) [fraction]"}, + /* 82 */ {"DSLM", "Deviation of sea level from mean [m]"}, + /* 83 */ {"SFCR", "Surface roughness [m]"}, + /* 84 */ {"ALBDO", "Albedo [%]"}, + /* 85 */ {"TSOIL", "Soil temp. [K]"}, + /* 86 */ {"SOILM", "Soil moisture content [kg/m^2]"}, + /* 87 */ {"VEG", "Vegetation [%]"}, + /* 88 */ {"SALTY", "Salinity [kg/kg]"}, + /* 89 */ {"DEN", "Density [kg/m^3]"}, + /* 90 */ {"WATR", "Water runoff [kg/m^2]"}, + /* 91 */ {"ICEC", "Ice concentration (ice=1;no ice=0) [fraction]"}, + /* 92 */ {"ICETK", "Ice thickness [m]"}, + /* 93 */ {"DICED", "Direction of ice drift [deg]"}, + /* 94 */ {"SICED", "Speed of ice drift [m/s]"}, + /* 95 */ {"UICE", "u of ice drift [m/s]"}, + /* 96 */ {"VICE", "v of ice drift [m/s]"}, + /* 97 */ {"ICEG", "Ice growth rate [m/s]"}, + /* 98 */ {"ICED", "Ice divergence [/s]"}, + /* 99 */ {"SNOM", "Snow melt [kg/m^2]"}, + /* 100 */ {"HTSGW", "Sig height of wind waves and swell [m]"}, + /* 101 */ {"WVDIR", "Direction of wind waves [deg]"}, + /* 102 */ {"WVHGT", "Sig height of wind waves [m]"}, + /* 103 */ {"WVPER", "Mean period of wind waves [s]"}, + /* 104 */ {"SWDIR", "Direction of swell waves [deg]"}, + /* 105 */ {"SWELL", "Sig height of swell waves [m]"}, + /* 106 */ {"SWPER", "Mean period of swell waves [s]"}, + /* 107 */ {"DIRPW", "Primary wave direction [deg]"}, + /* 108 */ {"PERPW", "Primary wave mean period [s]"}, + /* 109 */ {"DIRSW", "Secondary wave direction [deg]"}, + /* 110 */ {"PERSW", "Secondary wave mean period [s]"}, + /* 111 */ {"NSWRS", "Net short wave (surface) [W/m^2]"}, + /* 112 */ {"NLWRS", "Net long wave (surface) [W/m^2]"}, + /* 113 */ {"NSWRT", "Net short wave (top) [W/m^2]"}, + /* 114 */ {"NLWRT", "Net long wave (top) [W/m^2]"}, + /* 115 */ {"LWAVR", "Long wave [W/m^2]"}, + /* 116 */ {"SWAVR", "Short wave [W/m^2]"}, + /* 117 */ {"GRAD", "Global radiation [W/m^2]"}, + /* 118 */ {"BRTMP", "Brightness temperature [K]"}, + /* 119 */ {"LWRAD", "Radiance with respect to wave no. [W/m/sr]"}, + /* 120 */ {"SWRAD", "Radiance with respect ot wave len. [W/m^3/sr]"}, + /* 121 */ {"LHTFL", "Latent heat flux [W/m^2]"}, + /* 122 */ {"SHTFL", "Sensible heat flux [W/m^2]"}, + /* 123 */ {"BLYDP", "Boundary layer dissipation [W/m^2]"}, + /* 124 */ {"UFLX", "Zonal momentum flux [N/m^2]"}, + /* 125 */ {"VFLX", "Meridional momentum flux [N/m^2]"}, + /* 126 */ {"WMIXE", "Wind mixing energy [J]"}, + /* 127 */ {"IMGD", "Image data []"}, + /* 128 */ {"MSLSA", "Mean sea level pressure (Std Atm) [Pa]"}, + /* 129 */ {"MSLMA", "Mean sea level pressure (MAPS) [Pa]"}, + /* 130 */ {"MSLET", "Mean sea level pressure (ETA model) [Pa]"}, + /* 131 */ {"LFTX", "Surface lifted index [K]"}, + /* 132 */ {"4LFTX", "Best (4-layer) lifted index [K]"}, + /* 133 */ {"KX", "K index [K]"}, + /* 134 */ {"SX", "Sweat index [K]"}, + /* 135 */ {"MCONV", "Horizontal moisture divergence [kg/kg/s]"}, + /* 136 */ {"VWSH", "Vertical speed shear [1/s]"}, + /* 137 */ {"TSLSA", "3-hr pressure tendency (Std Atmos Red) [Pa/s]"}, + /* 138 */ {"BVF2", "Brunt-Vaisala frequency^2 [1/s^2]"}, + /* 139 */ {"PVMW", "Potential vorticity (mass-weighted) [1/s/m]"}, + /* 140 */ {"CRAIN", "Categorical rain [yes=1;no=0]"}, + /* 141 */ {"CFRZR", "Categorical freezing rain [yes=1;no=0]"}, + /* 142 */ {"CICEP", "Categorical ice pellets [yes=1;no=0]"}, + /* 143 */ {"CSNOW", "Categorical snow [yes=1;no=0]"}, + /* 144 */ {"SOILW", "Volumetric soil moisture [fraction]"}, + /* 145 */ {"PEVPR", "Potential evaporation rate [W/m^2]"}, + /* 146 */ {"CWORK", "Cloud work function [J/kg]"}, + /* 147 */ {"U-GWD", "Zonal gravity wave stress [N/m^2]"}, + /* 148 */ {"V-GWD", "Meridional gravity wave stress [N/m^2]"}, + /* 149 */ {"PV", "Potential vorticity [m^2/s/kg]"}, + /* 150 */ {"COVMZ", "Covariance between u and v [m^2/s^2]"}, + /* 151 */ {"COVTZ", "Covariance between u and T [K*m/s]"}, + /* 152 */ {"COVTM", "Covariance between v and T [K*m/s]"}, + /* 153 */ {"CLWMR", "Cloud water [kg/kg]"}, + /* 154 */ {"O3MR", "Ozone mixing ratio [kg/kg]"}, + /* 155 */ {"GFLUX", "Ground heat flux [W/m^2]"}, + /* 156 */ {"CIN", "Convective inhibition [J/kg]"}, + /* 157 */ {"CAPE", "Convective Avail. Pot. Energy [J/kg]"}, + /* 158 */ {"TKE", "Turbulent kinetic energy [J/kg]"}, + /* 159 */ {"CONDP", "Lifted parcel condensation pressure [Pa]"}, + /* 160 */ {"CSUSF", "Clear sky upward solar flux [W/m^2]"}, + /* 161 */ {"CSDSF", "Clear sky downward solar flux [W/m^2]"}, + /* 162 */ {"CSULF", "Clear sky upward long wave flux [W/m^2]"}, + /* 163 */ {"CSDLF", "Clear sky downward long wave flux [W/m^2]"}, + /* 164 */ {"CFNSF", "Cloud forcing net solar flux [W/m^2]"}, + /* 165 */ {"CFNLF", "Cloud forcing net long wave flux [W/m^2]"}, + /* 166 */ {"VBDSF", "Visible beam downward solar flux [W/m^2]"}, + /* 167 */ {"VDDSF", "Visible diffuse downward solar flux [W/m^2]"}, + /* 168 */ {"NBDSF", "Near IR beam downward solar flux [W/m^2]"}, + /* 169 */ {"NDDSF", "Near IR diffuse downward solar flux [W/m^2]"}, + /* 170 */ {"RWMR", "Rain water mixing ratio [kg/kg]"}, + /* 171 */ {"SNMR", "Snow mixing ratio [kg/kg]"}, + /* 172 */ {"MFLX", "Momentum flux [N/m^2]"}, + /* 173 */ {"LMH", "Mass point model surface [non-dim]"}, + /* 174 */ {"LMV", "Velocity point model surface [non-dim]"}, + /* 175 */ {"MLYNO", "Model layer number (from bottom up) [non-dim]"}, + /* 176 */ {"NLAT", "Latitude (-90 to +90) [deg]"}, + /* 177 */ {"ELON", "East longitude (0-360) [deg]"}, + /* 178 */ {"ICMR", "Ice mixing ratio [kg/kg]"}, + /* 179 */ {"GRMR", "Graupel mixing ratio [kg/kg]"}, + /* 180 */ {"GUST", "Surface wind gust [m/s]"}, + /* 181 */ {"LPSX", "x-gradient of log pressure [1/m]"}, + /* 182 */ {"LPSY", "y-gradient of log pressure [1/m]"}, + /* 183 */ {"HGTX", "x-gradient of height [m/m]"}, + /* 184 */ {"HGTY", "y-gradient of height [m/m]"}, + /* 185 */ {"TURB", "Turbulence SIGMET/AIRMET [non-dim]"}, + /* 186 */ {"ICNG", "Icing SIGMET/AIRMET [non-dim]"}, + /* 187 */ {"LTNG", "Lightning [non-dim]"}, + /* 188 */ {"DRIP", "Rate of water dropping from canopy to gnd [kg/m^2]"}, + /* 189 */ {"VPTMP", "Virtual pot. temp. [K]"}, + /* 190 */ {"HLCY", "Storm relative helicity [m^2/s^2]"}, + /* 191 */ {"PROB", "Prob. from ensemble [non-dim]"}, + /* 192 */ {"PROBN", "Prob. from ensemble norm. to clim. expect. [non-dim]"}, + /* 193 */ {"POP", "Prob. of precipitation [%]"}, + /* 194 */ {"CPOFP", "Prob. of frozen precipitation [%]"}, + /* 195 */ {"CPOZP", "Prob. of freezing precipitation [%]"}, + /* 196 */ {"USTM", "u-component of storm motion [m/s]"}, + /* 197 */ {"VSTM", "v-component of storm motion [m/s]"}, + /* 198 */ {"NCIP", "No. concen. ice particles []"}, + /* 199 */ {"EVBS", "Direct evaporation from bare soil [W/m^2]"}, + /* 200 */ {"EVCW", "Canopy water evaporation [W/m^2]"}, + /* 201 */ {"ICWAT", "Ice-free water surface [%]"}, + /* 202 */ {"CWDI", "Convective weather detection index []"}, + /* 203 */ {"VAFTAD", "VAFTAD?? [??]"}, + /* 204 */ {"DSWRF", "Downward short wave flux [W/m^2]"}, + /* 205 */ {"DLWRF", "Downward long wave flux [W/m^2]"}, + /* 206 */ {"UVI", "Ultraviolet index [W/m^2]"}, + /* 207 */ {"MSTAV", "Moisture availability [%]"}, + /* 208 */ {"SFEXC", "Exchange coefficient [(kg/m^3)(m/s)]"}, + /* 209 */ {"MIXLY", "No. of mixed layers next to surface [integer]"}, + /* 210 */ {"TRANS", "Transpiration [W/m^2]"}, + /* 211 */ {"USWRF", "Upward short wave flux [W/m^2]"}, + /* 212 */ {"ULWRF", "Upward long wave flux [W/m^2]"}, + /* 213 */ {"CDLYR", "Non-convective cloud [%]"}, + /* 214 */ {"CPRAT", "Convective precip. rate [kg/m^2/s]"}, + /* 215 */ {"TTDIA", "Temp. tendency by all physics [K/s]"}, + /* 216 */ {"TTRAD", "Temp. tendency by all radiation [K/s]"}, + /* 217 */ {"TTPHY", "Temp. tendency by non-radiation physics [K/s]"}, + /* 218 */ {"PREIX", "Precip index (0.0-1.00) [fraction]"}, + /* 219 */ {"TSD1D", "Std. dev. of IR T over 1x1 deg area [K]"}, + /* 220 */ {"NLGSP", "Natural log of surface pressure [ln(kPa)]"}, + /* 221 */ {"HPBL", "Planetary boundary layer height [m]"}, + /* 222 */ {"5WAVH", "5-wave geopotential height [gpm]"}, + /* 223 */ {"CNWAT", "Plant canopy surface water [kg/m^2]"}, + /* 224 */ {"SOTYP", "Soil type (Zobler) [0..9]"}, + /* 225 */ {"VGTYP", "Vegetation type (as in SiB) [0..13]"}, + /* 226 */ {"BMIXL", "Blackadar's mixing length scale [m]"}, + /* 227 */ {"AMIXL", "Asymptotic mixing length scale [m]"}, + /* 228 */ {"PEVAP", "Pot. evaporation [kg/m^2]"}, + /* 229 */ {"SNOHF", "Snow phase-change heat flux [W/m^2]"}, + /* 230 */ {"5WAVA", "5-wave geopot. height anomaly [gpm]"}, + /* 231 */ {"MFLUX", "Convective cloud mass flux [Pa/s]"}, + /* 232 */ {"DTRF", "Downward total radiation flux [W/m^2]"}, + /* 233 */ {"UTRF", "Upward total radiation flux [W/m^2]"}, + /* 234 */ {"BGRUN", "Baseflow-groundwater runoff [kg/m^2]"}, + /* 235 */ {"SSRUN", "Storm surface runoff [kg/m^2]"}, + /* 236 */ {"SIPD", "Supercooled large droplet (SLD) icing pot. diagn. []"}, + /* 237 */ {"O3TOT", "Total ozone [kg/m^2]"}, + /* 238 */ {"SNOWC", "Snow cover [%]"}, + /* 239 */ {"SNOT", "Snow temp. [K]"}, + /* 240 */ {"COVTW", "Covariance T and w [K*m/s]"}, + /* 241 */ {"LRGHR", "Large scale condensation heating [K/s]"}, + /* 242 */ {"CNVHR", "Deep convective heating [K/s]"}, + /* 243 */ {"CNVMR", "Deep convective moistening [kg/kg/s]"}, + /* 244 */ {"SHAHR", "Shallow convective heating [K/s]"}, + /* 245 */ {"SHAMR", "Shallow convective moistening [kg/kg/s]"}, + /* 246 */ {"VDFHR", "Vertical diffusion heating [K/s]"}, + /* 247 */ {"VDFUA", "Vertical diffusion zonal accel [m/s^2]"}, + /* 248 */ {"VDFVA", "Vertical diffusion meridional accel [m/s^2]"}, + /* 249 */ {"VDFMR", "Vertical diffusion moistening [kg/kg/s]"}, + /* 250 */ {"SWHR", "Solar radiative heating [K/s]"}, + /* 251 */ {"LWHR", "Longwave radiative heating [K/s]"}, + /* 252 */ {"CD", "Drag coefficient [non-dim]"}, + /* 253 */ {"FRICV", "Friction velocity [m/s]"}, + /* 254 */ {"RI", "Richardson number [non-dim]"}, + /* 255 */ {"var255", "undefined"}, }; /* @@ -2767,1824 +2766,4675 @@ const struct ParmTable parm_table_ncep_opn[256] = { * * Some ways to tell Reanalysis files from OPN files * Reanalysis: always generated by process 80 - T62 28 level model - * Original subcenter=0 Reanalysis files had + * Original subcenter=0 Reanalysis files had * 2.5x2.5 (144x73) lat-long grid or 192x94 Gaussian grid (PDS grid=255?) */ const struct ParmTable parm_table_ncep_reanal[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"PRES", "Pressure [Pa]"}, - /* 2 */ {"PRMSL", "Pressure reduced to MSL [Pa]"}, - /* 3 */ {"PTEND", "Pressure tendency [Pa/s]"}, - /* 4 */ {"var4", "undefined"}, - /* 5 */ {"var5", "undefined"}, - /* 6 */ {"GP", "Geopotential [m^2/s^2]"}, - /* 7 */ {"HGT", "Geopotential height [gpm]"}, - /* 8 */ {"DIST", "Geometric height [m]"}, - /* 9 */ {"HSTDV", "Std dev of height [m]"}, - /* 10 */ {"HVAR", "Variance of height [m^2]"}, - /* 11 */ {"TMP", "Temp. [K]"}, - /* 12 */ {"VTMP", "Virtual temp. [K]"}, - /* 13 */ {"POT", "Potential temp. [K]"}, - /* 14 */ {"EPOT", "Pseudo-adiabatic pot. temp. [K]"}, - /* 15 */ {"TMAX", "Max. temp. [K]"}, - /* 16 */ {"TMIN", "Min. temp. [K]"}, - /* 17 */ {"DPT", "Dew point temp. [K]"}, - /* 18 */ {"DEPR", "Dew point depression [K]"}, - /* 19 */ {"LAPR", "Lapse rate [K/m]"}, - /* 20 */ {"VISIB", "Visibility [m]"}, - /* 21 */ {"RDSP1", "Radar spectra (1) [non-dim]"}, - /* 22 */ {"RDSP2", "Radar spectra (2) [non-dim]"}, - /* 23 */ {"RDSP3", "Radar spectra (3) [non-dim]"}, - /* 24 */ {"var24", "undefined"}, - /* 25 */ {"TMPA", "Temp. anomaly [K]"}, - /* 26 */ {"PRESA", "Pressure anomaly [Pa]"}, - /* 27 */ {"GPA", "Geopotential height anomaly [gpm]"}, - /* 28 */ {"WVSP1", "Wave spectra (1) [non-dim]"}, - /* 29 */ {"WVSP2", "Wave spectra (2) [non-dim]"}, - /* 30 */ {"WVSP3", "Wave spectra (3) [non-dim]"}, - /* 31 */ {"WDIR", "Wind direction [deg]"}, - /* 32 */ {"WIND", "Wind speed [m/s]"}, - /* 33 */ {"UGRD", "u wind [m/s]"}, - /* 34 */ {"VGRD", "v wind [m/s]"}, - /* 35 */ {"STRM", "Stream function [m^2/s]"}, - /* 36 */ {"VPOT", "Velocity potential [m^2/s]"}, - /* 37 */ {"MNTSF", "Montgomery stream function [m^2/s^2]"}, - /* 38 */ {"SGCVV", "Sigma coord. vertical velocity [/s]"}, - /* 39 */ {"VVEL", "Pressure vertical velocity [Pa/s]"}, - /* 40 */ {"DZDT", "Geometric vertical velocity [m/s]"}, - /* 41 */ {"ABSV", "Absolute vorticity [/s]"}, - /* 42 */ {"ABSD", "Absolute divergence [/s]"}, - /* 43 */ {"RELV", "Relative vorticity [/s]"}, - /* 44 */ {"RELD", "Relative divergence [/s]"}, - /* 45 */ {"VUCSH", "Vertical u shear [/s]"}, - /* 46 */ {"VVCSH", "Vertical v shear [/s]"}, - /* 47 */ {"DIRC", "Direction of current [deg]"}, - /* 48 */ {"SPC", "Speed of current [m/s]"}, - /* 49 */ {"UOGRD", "u of current [m/s]"}, - /* 50 */ {"VOGRD", "v of current [m/s]"}, - /* 51 */ {"SPFH", "Specific humidity [kg/kg]"}, - /* 52 */ {"RH", "Relative humidity [%]"}, - /* 53 */ {"MIXR", "Humidity mixing ratio [kg/kg]"}, - /* 54 */ {"PWAT", "Precipitable water [kg/m^2]"}, - /* 55 */ {"VAPP", "Vapor pressure [Pa]"}, - /* 56 */ {"SATD", "Saturation deficit [Pa]"}, - /* 57 */ {"EVP", "Evaporation [kg/m^2]"}, - /* 58 */ {"CICE", "Cloud Ice [kg/kg]"}, - /* 59 */ {"PRATE", "Precipitation rate [kg/m^2/s]"}, - /* 60 */ {"TSTM", "Thunderstorm probability [%]"}, - /* 61 */ {"APCP", "Total precipitation [kg/m^2]"}, - /* 62 */ {"NCPCP", "Large scale precipitation [kg/m^2]"}, - /* 63 */ {"ACPCP", "Convective precipitation [kg/m^2]"}, - /* 64 */ {"SRWEQ", "Snowfall rate water equiv. [kg/m^2/s]"}, - /* 65 */ {"WEASD", "Accum. snow [kg/m^2]"}, - /* 66 */ {"SNOD", "Snow depth [m]"}, - /* 67 */ {"MIXHT", "Mixed layer depth [m]"}, - /* 68 */ {"TTHDP", "Transient thermocline depth [m]"}, - /* 69 */ {"MTHD", "Main thermocline depth [m]"}, - /* 70 */ {"MTHA", "Main thermocline anomaly [m]"}, - /* 71 */ {"TCDC", "Total cloud cover [%]"}, - /* 72 */ {"CDCON", "Convective cloud cover [%]"}, - /* 73 */ {"LCDC", "Low level cloud cover [%]"}, - /* 74 */ {"MCDC", "Mid level cloud cover [%]"}, - /* 75 */ {"HCDC", "High level cloud cover [%]"}, - /* 76 */ {"CWAT", "Cloud water [kg/m^2]"}, - /* 77 */ {"var77", "undefined"}, - /* 78 */ {"SNOC", "Convective snow [kg/m^2]"}, - /* 79 */ {"SNOL", "Large scale snow [kg/m^2]"}, - /* 80 */ {"WTMP", "Water temp. [K]"}, - /* 81 */ {"LAND", "Land-sea mask [1=land; 0=sea]"}, - /* 82 */ {"DSLM", "Deviation of sea level from mean [m]"}, - /* 83 */ {"SFCR", "Surface roughness [m]"}, - /* 84 */ {"ALBDO", "Albedo [%]"}, - /* 85 */ {"TSOIL", "Soil temp. [K]"}, - /* 86 */ {"SOILM", "Soil moisture content [kg/m^2]"}, - /* 87 */ {"VEG", "Vegetation [%]"}, - /* 88 */ {"SALTY", "Salinity [kg/kg]"}, - /* 89 */ {"DEN", "Density [kg/m^3]"}, - /* 90 */ {"RUNOF", "Runoff [kg/m^2]"}, - /* 91 */ {"ICEC", "Ice concentration [ice=1;no ice=0]"}, - /* 92 */ {"ICETK", "Ice thickness [m]"}, - /* 93 */ {"DICED", "Direction of ice drift [deg]"}, - /* 94 */ {"SICED", "Speed of ice drift [m/s]"}, - /* 95 */ {"UICE", "u of ice drift [m/s]"}, - /* 96 */ {"VICE", "v of ice drift [m/s]"}, - /* 97 */ {"ICEG", "Ice growth rate [m/s]"}, - /* 98 */ {"ICED", "Ice divergence [/s]"}, - /* 99 */ {"SNOM", "Snow melt [kg/m^2]"}, - /* 100 */ {"HTSGW", "Sig height of wind waves and swell [m]"}, - /* 101 */ {"WVDIR", "Direction of wind waves [deg]"}, - /* 102 */ {"WVHGT", "Sig height of wind waves [m]"}, - /* 103 */ {"WVPER", "Mean period of wind waves [s]"}, - /* 104 */ {"SWDIR", "Direction of swell waves [deg]"}, - /* 105 */ {"SWELL", "Sig height of swell waves [m]"}, - /* 106 */ {"SWPER", "Mean period of swell waves [s]"}, - /* 107 */ {"DIRPW", "Primary wave direction [deg]"}, - /* 108 */ {"PERPW", "Primary wave mean period [s]"}, - /* 109 */ {"DIRSW", "Secondary wave direction [deg]"}, - /* 110 */ {"PERSW", "Secondary wave mean period [s]"}, - /* 111 */ {"NSWRS", "Net short wave (surface) [W/m^2]"}, - /* 112 */ {"NLWRS", "Net long wave (surface) [W/m^2]"}, - /* 113 */ {"NSWRT", "Net short wave (top) [W/m^2]"}, - /* 114 */ {"NLWRT", "Net long wave (top) [W/m^2]"}, - /* 115 */ {"LWAVR", "Long wave [W/m^2]"}, - /* 116 */ {"SWAVR", "Short wave [W/m^2]"}, - /* 117 */ {"GRAD", "Global radiation [W/m^2]"}, - /* 118 */ {"var118", "undefined"}, - /* 119 */ {"var119", "undefined"}, - /* 120 */ {"var120", "undefined"}, - /* 121 */ {"LHTFL", "Latent heat flux [W/m^2]"}, - /* 122 */ {"SHTFL", "Sensible heat flux [W/m^2]"}, - /* 123 */ {"BLYDP", "Boundary layer dissipation [W/m^2]"}, - /* 124 */ {"UFLX", "Zonal momentum flux [N/m^2]"}, - /* 125 */ {"VFLX", "Meridional momentum flux [N/m^2]"}, - /* 126 */ {"WMIXE", "Wind mixing energy [J]"}, - /* 127 */ {"IMGD", "Image data [integer]"}, - /* 128 */ {"MSLSA", "Mean sea level pressure (Std Atm) [Pa]"}, - /* 129 */ {"MSLMA", "Mean sea level pressure (MAPS) [Pa]"}, - /* 130 */ {"MSLET", "Mean sea level pressure (ETA model) [Pa]"}, - /* 131 */ {"LFTX", "Surface lifted index [K]"}, - /* 132 */ {"4LFTX", "Best (4-layer) lifted index [K]"}, - /* 133 */ {"KX", "K index [K]"}, - /* 134 */ {"SX", "Sweat index [K]"}, - /* 135 */ {"MCONV", "Horizontal moisture divergence [kg/kg/s]"}, - /* 136 */ {"VSSH", "Vertical speed shear [1/s]"}, - /* 137 */ {"TSLSA", "3-hr pressure tendency [Pa/s]"}, - /* 138 */ {"BVF2", "Brunt-Vaisala frequency^2 [1/s^2]"}, - /* 139 */ {"PVMW", "Potential vorticity (mass-weighted) [1/s/m]"}, - /* 140 */ {"CRAIN", "Categorical rain [yes=1;no=0]"}, - /* 141 */ {"CFRZR", "Categorical freezing rain [yes=1;no=0]"}, - /* 142 */ {"CICEP", "Categorical ice pellets [yes=1;no=0]"}, - /* 143 */ {"CSNOW", "Categorical snow [yes=1;no=0]"}, - /* 144 */ {"SOILW", "Volumetric soil moisture [fraction]"}, - /* 145 */ {"PEVPR", "Potential evaporation rate [W/m^2]"}, - /* 146 */ {"CWORK", "Cloud work function [J/kg]"}, - /* 147 */ {"U-GWD", "Zonal gravity wave stress [N/m^2]"}, - /* 148 */ {"V-GWD", "Meridional gravity wave stress [N/m^2]"}, - /* 149 */ {"PV___", "Potential vorticity [m^2/s/kg]"}, - /* 150 */ {"var150", "undefined"}, - /* 151 */ {"var151", "undefined"}, - /* 152 */ {"var152", "undefined"}, - /* 153 */ {"MFXDV", "Moisture flux divergence [gr/gr*m/s/m]"}, - /* 154 */ {"var154", "undefined"}, - /* 155 */ {"GFLUX", "Ground heat flux [W/m^2]"}, - /* 156 */ {"CIN", "Convective inhibition [J/kg]"}, - /* 157 */ {"CAPE", "Convective Avail. Pot. Energy [J/kg]"}, - /* 158 */ {"TKE", "Turbulent kinetic energy [J/kg]"}, - /* 159 */ {"CONDP", "Lifted parcel condensation pressure [Pa]"}, - /* 160 */ {"CSUSF", "Clear sky upward solar flux [W/m^2]"}, - /* 161 */ {"CSDSF", "Clear sky downward solar flux [W/m^2]"}, - /* 162 */ {"CSULF", "Clear sky upward long wave flux [W/m^2]"}, - /* 163 */ {"CSDLF", "Clear sky downward long wave flux [W/m^2]"}, - /* 164 */ {"CFNSF", "Cloud forcing net solar flux [W/m^2]"}, - /* 165 */ {"CFNLF", "Cloud forcing net long wave flux [W/m^2]"}, - /* 166 */ {"VBDSF", "Visible beam downward solar flux [W/m^2]"}, - /* 167 */ {"VDDSF", "Visible diffuse downward solar flux [W/m^2]"}, - /* 168 */ {"NBDSF", "Near IR beam downward solar flux [W/m^2]"}, - /* 169 */ {"NDDSF", "Near IR diffuse downward solar flux [W/m^2]"}, - /* 170 */ {"USTR", "U wind stress [N/m^2]"}, - /* 171 */ {"VSTR", "V wind stress [N/m^2]"}, - /* 172 */ {"MFLX", "Momentum flux [N/m^2]"}, - /* 173 */ {"LMH", "Mass point model surface [integer]"}, - /* 174 */ {"LMV", "Velocity point model surface [integer]"}, - /* 175 */ {"SGLYR", "Nearby model level [integer]"}, - /* 176 */ {"NLAT", "Latitude [deg]"}, - /* 177 */ {"ELON", "Longitude [deg]"}, - /* 178 */ {"UMAS", "Mass weighted u [gm/m*K*s]"}, - /* 179 */ {"VMAS", "Mass weighted v [gm/m*K*s]"}, - /* 180 */ {"XPRATE", "corrected precip [kg/m^2/s]"}, - /* 181 */ {"LPSX", "x-gradient of log pressure [1/m]"}, - /* 182 */ {"LPSY", "y-gradient of log pressure [1/m]"}, - /* 183 */ {"HGTX", "x-gradient of height [m/m]"}, - /* 184 */ {"HGTY", "y-gradient of height [m/m]"}, - /* 185 */ {"STDZ", "Std dev of Geop. hgt. [m]"}, - /* 186 */ {"STDU", "Std dev of zonal wind [m/s]"}, - /* 187 */ {"STDV", "Std dev of meridional wind [m/s]"}, - /* 188 */ {"STDQ", "Std dev of spec. hum. [gm/gm]"}, - /* 189 */ {"STDT", "Std dev of temp. [K]"}, - /* 190 */ {"CBUW", "Covar. u and omega [m/s*Pa/s]"}, - /* 191 */ {"CBVW", "Covar. v and omega [m/s*Pa/s]"}, - /* 192 */ {"CBUQ", "Covar. u and specific hum [m/s*gm/gm]"}, - /* 193 */ {"CBVQ", "Covar. v and specific hum [m/s*gm/gm]"}, - /* 194 */ {"CBTW", "Covar. T and omega [K*Pa/s]"}, - /* 195 */ {"CBQW", "Covar. spec. hum and omega [gm/gm*Pa/s]"}, - /* 196 */ {"CBMZW", "Covar. v and u [m^2/s^2]"}, - /* 197 */ {"CBTZW", "Covar. u and T [K*m/s]"}, - /* 198 */ {"CBTMW", "Covar. v and T [K*m/s]"}, - /* 199 */ {"STDRH", "Std dev of Rel. Hum. [%]"}, - /* 200 */ {"SDTZ", "Std dev of time tend of geop. hgt [m]"}, - /* 201 */ {"ICWAT", "Ice-free water surface [%]"}, - /* 202 */ {"SDTU", "Std dev of time tend of zonal wind [m/s]"}, - /* 203 */ {"SDTV", "Std dev of time tend of merid wind [m/s]"}, - /* 204 */ {"DSWRF", "Downward solar radiation flux [W/m^2]"}, - /* 205 */ {"DLWRF", "Downward long wave flux [W/m^2]"}, - /* 206 */ {"SDTQ", "Std dev of time tend of spec. hum [gm/gm]"}, - /* 207 */ {"MSTAV", "Moisture availability [%]"}, - /* 208 */ {"SFEXC", "Exchange coefficient [kg*m/m^3/s]"}, - /* 209 */ {"MIXLY", "No. of mixed layers next to sfc [integer]"}, - /* 210 */ {"SDTT", "Std dev of time tend of temp. [K]"}, - /* 211 */ {"USWRF", "Upward solar radiation flux [W/m^2]"}, - /* 212 */ {"ULWRF", "Upward long wave flux [W/m^2]"}, - /* 213 */ {"CDLYR", "Non-convective cloud [%]"}, - /* 214 */ {"CPRAT", "Convective precip. rate [kg/m^2/s]"}, - /* 215 */ {"TTDIA", "Temp. tendency by all physics [K/s]"}, - /* 216 */ {"TTRAD", "Temp. tendency by all radiation [K/s]"}, - /* 217 */ {"TTPHY", "Temp. tendency by nonrad physics [K/s]"}, - /* 218 */ {"PREIX", "Precipitation index [fraction]"}, - /* 219 */ {"TSD1D", "Std dev of IR T over 1x1 deg area [K]"}, - /* 220 */ {"NLSGP", "Natural log of surface pressure [ln(kPa)]"}, - /* 221 */ {"SDTRH", "Std dev of time tend of rel hum [%]"}, - /* 222 */ {"5WAVH", "5-wave geopotential height [gpm]"}, - /* 223 */ {"CNWAT", "Plant canopy surface water [kg/m^2]"}, - /* 224 */ {"PLTRS", "Max. stomato plant resistance [s/m]"}, - /* 225 */ {"RHCLD", "RH-type cloud cover [%]"}, - /* 226 */ {"BMIXL", "Blackadar's mixing length scale [m]"}, - /* 227 */ {"AMIXL", "Asymptotic mixing length scale [m]"}, - /* 228 */ {"PEVAP", "Pot. evaporation [kg/m^2]"}, - /* 229 */ {"SNOHF", "Snow melt heat flux [W/m^2]"}, - /* 230 */ {"SNOEV", "Snow sublimation heat flux [W/m^2]"}, - /* 231 */ {"MFLUX", "Convective cloud mass flux [Pa/s]"}, - /* 232 */ {"DTRF", "Downward total radiation flux [W/m^2]"}, - /* 233 */ {"UTRF", "Upward total radiation flux [W/m^2]"}, - /* 234 */ {"BGRUN", "Baseflow-groundwater runoff [kg/m^2]"}, - /* 235 */ {"SSRUN", "Storm surface runoff [kg/m^2]"}, - /* 236 */ {"var236", "undefined"}, - /* 237 */ {"OZONE", "Total column ozone [Dobson]"}, - /* 238 */ {"SNOWC", "Snow cover [%]"}, - /* 239 */ {"SNOT", "Snow temp. [K]"}, - /* 240 */ {"GLCR", "Permanent snow points [mask]"}, - /* 241 */ {"LRGHR", "Large scale condensation heating [K/s]"}, - /* 242 */ {"CNVHR", "Deep convective heating [K/s]"}, - /* 243 */ {"CNVMR", "Deep convective moistening [kg/kg/s]"}, - /* 244 */ {"SHAHR", "Shallow convective heating [K/s]"}, - /* 245 */ {"SHAMR", "Shallow convective moistening [kg/kg/s]"}, - /* 246 */ {"VDFHR", "Vertical diffusion heating [K/s]"}, - /* 247 */ {"VDFUA", "Vertical diffusion zonal accel [m/s^2]"}, - /* 248 */ {"VDFVA", "Vertical diffusion meridional accel [m/s^2]"}, - /* 249 */ {"VDFMR", "Vertical diffusion moistening [kg/kg/s]"}, - /* 250 */ {"SWHR", "Solar radiative heating [K/s]"}, - /* 251 */ {"LWHR", "Longwave radiative heating [K/s]"}, - /* 252 */ {"CD", "Drag coefficient [non-dim]"}, - /* 253 */ {"FRICV", "Friction velocity [m/s]"}, - /* 254 */ {"RI", "Richardson number [non-dim]"}, - /* 255 */ {"var255", "undefined"}, + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"PRES", "Pressure [Pa]"}, + /* 2 */ {"PRMSL", "Pressure reduced to MSL [Pa]"}, + /* 3 */ {"PTEND", "Pressure tendency [Pa/s]"}, + /* 4 */ {"var4", "undefined"}, + /* 5 */ {"var5", "undefined"}, + /* 6 */ {"GP", "Geopotential [m^2/s^2]"}, + /* 7 */ {"HGT", "Geopotential height [gpm]"}, + /* 8 */ {"DIST", "Geometric height [m]"}, + /* 9 */ {"HSTDV", "Std dev of height [m]"}, + /* 10 */ {"HVAR", "Variance of height [m^2]"}, + /* 11 */ {"TMP", "Temp. [K]"}, + /* 12 */ {"VTMP", "Virtual temp. [K]"}, + /* 13 */ {"POT", "Potential temp. [K]"}, + /* 14 */ {"EPOT", "Pseudo-adiabatic pot. temp. [K]"}, + /* 15 */ {"TMAX", "Max. temp. [K]"}, + /* 16 */ {"TMIN", "Min. temp. [K]"}, + /* 17 */ {"DPT", "Dew point temp. [K]"}, + /* 18 */ {"DEPR", "Dew point depression [K]"}, + /* 19 */ {"LAPR", "Lapse rate [K/m]"}, + /* 20 */ {"VISIB", "Visibility [m]"}, + /* 21 */ {"RDSP1", "Radar spectra (1) [non-dim]"}, + /* 22 */ {"RDSP2", "Radar spectra (2) [non-dim]"}, + /* 23 */ {"RDSP3", "Radar spectra (3) [non-dim]"}, + /* 24 */ {"var24", "undefined"}, + /* 25 */ {"TMPA", "Temp. anomaly [K]"}, + /* 26 */ {"PRESA", "Pressure anomaly [Pa]"}, + /* 27 */ {"GPA", "Geopotential height anomaly [gpm]"}, + /* 28 */ {"WVSP1", "Wave spectra (1) [non-dim]"}, + /* 29 */ {"WVSP2", "Wave spectra (2) [non-dim]"}, + /* 30 */ {"WVSP3", "Wave spectra (3) [non-dim]"}, + /* 31 */ {"WDIR", "Wind direction [deg]"}, + /* 32 */ {"WIND", "Wind speed [m/s]"}, + /* 33 */ {"UGRD", "u wind [m/s]"}, + /* 34 */ {"VGRD", "v wind [m/s]"}, + /* 35 */ {"STRM", "Stream function [m^2/s]"}, + /* 36 */ {"VPOT", "Velocity potential [m^2/s]"}, + /* 37 */ {"MNTSF", "Montgomery stream function [m^2/s^2]"}, + /* 38 */ {"SGCVV", "Sigma coord. vertical velocity [/s]"}, + /* 39 */ {"VVEL", "Pressure vertical velocity [Pa/s]"}, + /* 40 */ {"DZDT", "Geometric vertical velocity [m/s]"}, + /* 41 */ {"ABSV", "Absolute vorticity [/s]"}, + /* 42 */ {"ABSD", "Absolute divergence [/s]"}, + /* 43 */ {"RELV", "Relative vorticity [/s]"}, + /* 44 */ {"RELD", "Relative divergence [/s]"}, + /* 45 */ {"VUCSH", "Vertical u shear [/s]"}, + /* 46 */ {"VVCSH", "Vertical v shear [/s]"}, + /* 47 */ {"DIRC", "Direction of current [deg]"}, + /* 48 */ {"SPC", "Speed of current [m/s]"}, + /* 49 */ {"UOGRD", "u of current [m/s]"}, + /* 50 */ {"VOGRD", "v of current [m/s]"}, + /* 51 */ {"SPFH", "Specific humidity [kg/kg]"}, + /* 52 */ {"RH", "Relative humidity [%]"}, + /* 53 */ {"MIXR", "Humidity mixing ratio [kg/kg]"}, + /* 54 */ {"PWAT", "Precipitable water [kg/m^2]"}, + /* 55 */ {"VAPP", "Vapor pressure [Pa]"}, + /* 56 */ {"SATD", "Saturation deficit [Pa]"}, + /* 57 */ {"EVP", "Evaporation [kg/m^2]"}, + /* 58 */ {"CICE", "Cloud Ice [kg/kg]"}, + /* 59 */ {"PRATE", "Precipitation rate [kg/m^2/s]"}, + /* 60 */ {"TSTM", "Thunderstorm probability [%]"}, + /* 61 */ {"APCP", "Total precipitation [kg/m^2]"}, + /* 62 */ {"NCPCP", "Large scale precipitation [kg/m^2]"}, + /* 63 */ {"ACPCP", "Convective precipitation [kg/m^2]"}, + /* 64 */ {"SRWEQ", "Snowfall rate water equiv. [kg/m^2/s]"}, + /* 65 */ {"WEASD", "Accum. snow [kg/m^2]"}, + /* 66 */ {"SNOD", "Snow depth [m]"}, + /* 67 */ {"MIXHT", "Mixed layer depth [m]"}, + /* 68 */ {"TTHDP", "Transient thermocline depth [m]"}, + /* 69 */ {"MTHD", "Main thermocline depth [m]"}, + /* 70 */ {"MTHA", "Main thermocline anomaly [m]"}, + /* 71 */ {"TCDC", "Total cloud cover [%]"}, + /* 72 */ {"CDCON", "Convective cloud cover [%]"}, + /* 73 */ {"LCDC", "Low level cloud cover [%]"}, + /* 74 */ {"MCDC", "Mid level cloud cover [%]"}, + /* 75 */ {"HCDC", "High level cloud cover [%]"}, + /* 76 */ {"CWAT", "Cloud water [kg/m^2]"}, + /* 77 */ {"var77", "undefined"}, + /* 78 */ {"SNOC", "Convective snow [kg/m^2]"}, + /* 79 */ {"SNOL", "Large scale snow [kg/m^2]"}, + /* 80 */ {"WTMP", "Water temp. [K]"}, + /* 81 */ {"LAND", "Land-sea mask [1=land; 0=sea]"}, + /* 82 */ {"DSLM", "Deviation of sea level from mean [m]"}, + /* 83 */ {"SFCR", "Surface roughness [m]"}, + /* 84 */ {"ALBDO", "Albedo [%]"}, + /* 85 */ {"TSOIL", "Soil temp. [K]"}, + /* 86 */ {"SOILM", "Soil moisture content [kg/m^2]"}, + /* 87 */ {"VEG", "Vegetation [%]"}, + /* 88 */ {"SALTY", "Salinity [kg/kg]"}, + /* 89 */ {"DEN", "Density [kg/m^3]"}, + /* 90 */ {"RUNOF", "Runoff [kg/m^2]"}, + /* 91 */ {"ICEC", "Ice concentration [ice=1;no ice=0]"}, + /* 92 */ {"ICETK", "Ice thickness [m]"}, + /* 93 */ {"DICED", "Direction of ice drift [deg]"}, + /* 94 */ {"SICED", "Speed of ice drift [m/s]"}, + /* 95 */ {"UICE", "u of ice drift [m/s]"}, + /* 96 */ {"VICE", "v of ice drift [m/s]"}, + /* 97 */ {"ICEG", "Ice growth rate [m/s]"}, + /* 98 */ {"ICED", "Ice divergence [/s]"}, + /* 99 */ {"SNOM", "Snow melt [kg/m^2]"}, + /* 100 */ {"HTSGW", "Sig height of wind waves and swell [m]"}, + /* 101 */ {"WVDIR", "Direction of wind waves [deg]"}, + /* 102 */ {"WVHGT", "Sig height of wind waves [m]"}, + /* 103 */ {"WVPER", "Mean period of wind waves [s]"}, + /* 104 */ {"SWDIR", "Direction of swell waves [deg]"}, + /* 105 */ {"SWELL", "Sig height of swell waves [m]"}, + /* 106 */ {"SWPER", "Mean period of swell waves [s]"}, + /* 107 */ {"DIRPW", "Primary wave direction [deg]"}, + /* 108 */ {"PERPW", "Primary wave mean period [s]"}, + /* 109 */ {"DIRSW", "Secondary wave direction [deg]"}, + /* 110 */ {"PERSW", "Secondary wave mean period [s]"}, + /* 111 */ {"NSWRS", "Net short wave (surface) [W/m^2]"}, + /* 112 */ {"NLWRS", "Net long wave (surface) [W/m^2]"}, + /* 113 */ {"NSWRT", "Net short wave (top) [W/m^2]"}, + /* 114 */ {"NLWRT", "Net long wave (top) [W/m^2]"}, + /* 115 */ {"LWAVR", "Long wave [W/m^2]"}, + /* 116 */ {"SWAVR", "Short wave [W/m^2]"}, + /* 117 */ {"GRAD", "Global radiation [W/m^2]"}, + /* 118 */ {"var118", "undefined"}, + /* 119 */ {"var119", "undefined"}, + /* 120 */ {"var120", "undefined"}, + /* 121 */ {"LHTFL", "Latent heat flux [W/m^2]"}, + /* 122 */ {"SHTFL", "Sensible heat flux [W/m^2]"}, + /* 123 */ {"BLYDP", "Boundary layer dissipation [W/m^2]"}, + /* 124 */ {"UFLX", "Zonal momentum flux [N/m^2]"}, + /* 125 */ {"VFLX", "Meridional momentum flux [N/m^2]"}, + /* 126 */ {"WMIXE", "Wind mixing energy [J]"}, + /* 127 */ {"IMGD", "Image data [integer]"}, + /* 128 */ {"MSLSA", "Mean sea level pressure (Std Atm) [Pa]"}, + /* 129 */ {"MSLMA", "Mean sea level pressure (MAPS) [Pa]"}, + /* 130 */ {"MSLET", "Mean sea level pressure (ETA model) [Pa]"}, + /* 131 */ {"LFTX", "Surface lifted index [K]"}, + /* 132 */ {"4LFTX", "Best (4-layer) lifted index [K]"}, + /* 133 */ {"KX", "K index [K]"}, + /* 134 */ {"SX", "Sweat index [K]"}, + /* 135 */ {"MCONV", "Horizontal moisture divergence [kg/kg/s]"}, + /* 136 */ {"VSSH", "Vertical speed shear [1/s]"}, + /* 137 */ {"TSLSA", "3-hr pressure tendency [Pa/s]"}, + /* 138 */ {"BVF2", "Brunt-Vaisala frequency^2 [1/s^2]"}, + /* 139 */ {"PVMW", "Potential vorticity (mass-weighted) [1/s/m]"}, + /* 140 */ {"CRAIN", "Categorical rain [yes=1;no=0]"}, + /* 141 */ {"CFRZR", "Categorical freezing rain [yes=1;no=0]"}, + /* 142 */ {"CICEP", "Categorical ice pellets [yes=1;no=0]"}, + /* 143 */ {"CSNOW", "Categorical snow [yes=1;no=0]"}, + /* 144 */ {"SOILW", "Volumetric soil moisture [fraction]"}, + /* 145 */ {"PEVPR", "Potential evaporation rate [W/m^2]"}, + /* 146 */ {"CWORK", "Cloud work function [J/kg]"}, + /* 147 */ {"U-GWD", "Zonal gravity wave stress [N/m^2]"}, + /* 148 */ {"V-GWD", "Meridional gravity wave stress [N/m^2]"}, + /* 149 */ {"PV___", "Potential vorticity [m^2/s/kg]"}, + /* 150 */ {"var150", "undefined"}, + /* 151 */ {"var151", "undefined"}, + /* 152 */ {"var152", "undefined"}, + /* 153 */ {"MFXDV", "Moisture flux divergence [gr/gr*m/s/m]"}, + /* 154 */ {"var154", "undefined"}, + /* 155 */ {"GFLUX", "Ground heat flux [W/m^2]"}, + /* 156 */ {"CIN", "Convective inhibition [J/kg]"}, + /* 157 */ {"CAPE", "Convective Avail. Pot. Energy [J/kg]"}, + /* 158 */ {"TKE", "Turbulent kinetic energy [J/kg]"}, + /* 159 */ {"CONDP", "Lifted parcel condensation pressure [Pa]"}, + /* 160 */ {"CSUSF", "Clear sky upward solar flux [W/m^2]"}, + /* 161 */ {"CSDSF", "Clear sky downward solar flux [W/m^2]"}, + /* 162 */ {"CSULF", "Clear sky upward long wave flux [W/m^2]"}, + /* 163 */ {"CSDLF", "Clear sky downward long wave flux [W/m^2]"}, + /* 164 */ {"CFNSF", "Cloud forcing net solar flux [W/m^2]"}, + /* 165 */ {"CFNLF", "Cloud forcing net long wave flux [W/m^2]"}, + /* 166 */ {"VBDSF", "Visible beam downward solar flux [W/m^2]"}, + /* 167 */ {"VDDSF", "Visible diffuse downward solar flux [W/m^2]"}, + /* 168 */ {"NBDSF", "Near IR beam downward solar flux [W/m^2]"}, + /* 169 */ {"NDDSF", "Near IR diffuse downward solar flux [W/m^2]"}, + /* 170 */ {"USTR", "U wind stress [N/m^2]"}, + /* 171 */ {"VSTR", "V wind stress [N/m^2]"}, + /* 172 */ {"MFLX", "Momentum flux [N/m^2]"}, + /* 173 */ {"LMH", "Mass point model surface [integer]"}, + /* 174 */ {"LMV", "Velocity point model surface [integer]"}, + /* 175 */ {"SGLYR", "Nearby model level [integer]"}, + /* 176 */ {"NLAT", "Latitude [deg]"}, + /* 177 */ {"ELON", "Longitude [deg]"}, + /* 178 */ {"UMAS", "Mass weighted u [gm/m*K*s]"}, + /* 179 */ {"VMAS", "Mass weighted v [gm/m*K*s]"}, + /* 180 */ {"XPRATE", "corrected precip [kg/m^2/s]"}, + /* 181 */ {"LPSX", "x-gradient of log pressure [1/m]"}, + /* 182 */ {"LPSY", "y-gradient of log pressure [1/m]"}, + /* 183 */ {"HGTX", "x-gradient of height [m/m]"}, + /* 184 */ {"HGTY", "y-gradient of height [m/m]"}, + /* 185 */ {"STDZ", "Std dev of Geop. hgt. [m]"}, + /* 186 */ {"STDU", "Std dev of zonal wind [m/s]"}, + /* 187 */ {"STDV", "Std dev of meridional wind [m/s]"}, + /* 188 */ {"STDQ", "Std dev of spec. hum. [gm/gm]"}, + /* 189 */ {"STDT", "Std dev of temp. [K]"}, + /* 190 */ {"CBUW", "Covar. u and omega [m/s*Pa/s]"}, + /* 191 */ {"CBVW", "Covar. v and omega [m/s*Pa/s]"}, + /* 192 */ {"CBUQ", "Covar. u and specific hum [m/s*gm/gm]"}, + /* 193 */ {"CBVQ", "Covar. v and specific hum [m/s*gm/gm]"}, + /* 194 */ {"CBTW", "Covar. T and omega [K*Pa/s]"}, + /* 195 */ {"CBQW", "Covar. spec. hum and omega [gm/gm*Pa/s]"}, + /* 196 */ {"CBMZW", "Covar. v and u [m^2/s^2]"}, + /* 197 */ {"CBTZW", "Covar. u and T [K*m/s]"}, + /* 198 */ {"CBTMW", "Covar. v and T [K*m/s]"}, + /* 199 */ {"STDRH", "Std dev of Rel. Hum. [%]"}, + /* 200 */ {"SDTZ", "Std dev of time tend of geop. hgt [m]"}, + /* 201 */ {"ICWAT", "Ice-free water surface [%]"}, + /* 202 */ {"SDTU", "Std dev of time tend of zonal wind [m/s]"}, + /* 203 */ {"SDTV", "Std dev of time tend of merid wind [m/s]"}, + /* 204 */ {"DSWRF", "Downward solar radiation flux [W/m^2]"}, + /* 205 */ {"DLWRF", "Downward long wave flux [W/m^2]"}, + /* 206 */ {"SDTQ", "Std dev of time tend of spec. hum [gm/gm]"}, + /* 207 */ {"MSTAV", "Moisture availability [%]"}, + /* 208 */ {"SFEXC", "Exchange coefficient [kg*m/m^3/s]"}, + /* 209 */ {"MIXLY", "No. of mixed layers next to sfc [integer]"}, + /* 210 */ {"SDTT", "Std dev of time tend of temp. [K]"}, + /* 211 */ {"USWRF", "Upward solar radiation flux [W/m^2]"}, + /* 212 */ {"ULWRF", "Upward long wave flux [W/m^2]"}, + /* 213 */ {"CDLYR", "Non-convective cloud [%]"}, + /* 214 */ {"CPRAT", "Convective precip. rate [kg/m^2/s]"}, + /* 215 */ {"TTDIA", "Temp. tendency by all physics [K/s]"}, + /* 216 */ {"TTRAD", "Temp. tendency by all radiation [K/s]"}, + /* 217 */ {"TTPHY", "Temp. tendency by nonrad physics [K/s]"}, + /* 218 */ {"PREIX", "Precipitation index [fraction]"}, + /* 219 */ {"TSD1D", "Std dev of IR T over 1x1 deg area [K]"}, + /* 220 */ {"NLSGP", "Natural log of surface pressure [ln(kPa)]"}, + /* 221 */ {"SDTRH", "Std dev of time tend of rel hum [%]"}, + /* 222 */ {"5WAVH", "5-wave geopotential height [gpm]"}, + /* 223 */ {"CNWAT", "Plant canopy surface water [kg/m^2]"}, + /* 224 */ {"PLTRS", "Max. stomato plant resistance [s/m]"}, + /* 225 */ {"RHCLD", "RH-type cloud cover [%]"}, + /* 226 */ {"BMIXL", "Blackadar's mixing length scale [m]"}, + /* 227 */ {"AMIXL", "Asymptotic mixing length scale [m]"}, + /* 228 */ {"PEVAP", "Pot. evaporation [kg/m^2]"}, + /* 229 */ {"SNOHF", "Snow melt heat flux [W/m^2]"}, + /* 230 */ {"SNOEV", "Snow sublimation heat flux [W/m^2]"}, + /* 231 */ {"MFLUX", "Convective cloud mass flux [Pa/s]"}, + /* 232 */ {"DTRF", "Downward total radiation flux [W/m^2]"}, + /* 233 */ {"UTRF", "Upward total radiation flux [W/m^2]"}, + /* 234 */ {"BGRUN", "Baseflow-groundwater runoff [kg/m^2]"}, + /* 235 */ {"SSRUN", "Storm surface runoff [kg/m^2]"}, + /* 236 */ {"var236", "undefined"}, + /* 237 */ {"OZONE", "Total column ozone [Dobson]"}, + /* 238 */ {"SNOWC", "Snow cover [%]"}, + /* 239 */ {"SNOT", "Snow temp. [K]"}, + /* 240 */ {"GLCR", "Permanent snow points [mask]"}, + /* 241 */ {"LRGHR", "Large scale condensation heating [K/s]"}, + /* 242 */ {"CNVHR", "Deep convective heating [K/s]"}, + /* 243 */ {"CNVMR", "Deep convective moistening [kg/kg/s]"}, + /* 244 */ {"SHAHR", "Shallow convective heating [K/s]"}, + /* 245 */ {"SHAMR", "Shallow convective moistening [kg/kg/s]"}, + /* 246 */ {"VDFHR", "Vertical diffusion heating [K/s]"}, + /* 247 */ {"VDFUA", "Vertical diffusion zonal accel [m/s^2]"}, + /* 248 */ {"VDFVA", "Vertical diffusion meridional accel [m/s^2]"}, + /* 249 */ {"VDFMR", "Vertical diffusion moistening [kg/kg/s]"}, + /* 250 */ {"SWHR", "Solar radiative heating [K/s]"}, + /* 251 */ {"LWHR", "Longwave radiative heating [K/s]"}, + /* 252 */ {"CD", "Drag coefficient [non-dim]"}, + /* 253 */ {"FRICV", "Friction velocity [m/s]"}, + /* 254 */ {"RI", "Richardson number [non-dim]"}, + /* 255 */ {"var255", "undefined"}, }; const struct ParmTable parm_table_nceptab_131[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"PRES", "Pressure [Pa]"}, - /* 2 */ {"PRMSL", "Pressure reduced to MSL [Pa]"}, - /* 3 */ {"PTEND", "Pressure tendency [Pa/s]"}, - /* 4 */ {"PVORT", "Pot. vorticity [km^2/kg/s]"}, - /* 5 */ {"ICAHT", "ICAO Standard Atmosphere Reference Height [M]"}, - /* 6 */ {"GP", "Geopotential [m^2/s^2]"}, - /* 7 */ {"HGT", "Geopotential height [gpm]"}, - /* 8 */ {"DIST", "Geometric height [m]"}, - /* 9 */ {"HSTDV", "Std dev of height [m]"}, - /* 10 */ {"TOZNE", "Total ozone [Dobson]"}, - /* 11 */ {"TMP", "Temp. [K]"}, - /* 12 */ {"VTMP", "Virtual temp. [K]"}, - /* 13 */ {"POT", "Potential temp. [K]"}, - /* 14 */ {"EPOT", "Pseudo-adiabatic pot. temp. [K]"}, - /* 15 */ {"TMAX", "Max. temp. [K]"}, - /* 16 */ {"TMIN", "Min. temp. [K]"}, - /* 17 */ {"DPT", "Dew point temp. [K]"}, - /* 18 */ {"DEPR", "Dew point depression [K]"}, - /* 19 */ {"LAPR", "Lapse rate [K/m]"}, - /* 20 */ {"VIS", "Visibility [m]"}, - /* 21 */ {"RDSP1", "Radar spectra (1) [non-dim]"}, - /* 22 */ {"RDSP2", "Radar spectra (2) [non-dim]"}, - /* 23 */ {"RDSP3", "Radar spectra (3) [non-dim]"}, - /* 24 */ {"PLI", "Parcel lifted index (to 500 hPa) [K]"}, - /* 25 */ {"TMPA", "Temp. anomaly [K]"}, - /* 26 */ {"PRESA", "Pressure anomaly [Pa]"}, - /* 27 */ {"GPA", "Geopotential height anomaly [gpm]"}, - /* 28 */ {"WVSP1", "Wave spectra (1) [non-dim]"}, - /* 29 */ {"WVSP2", "Wave spectra (2) [non-dim]"}, - /* 30 */ {"WVSP3", "Wave spectra (3) [non-dim]"}, - /* 31 */ {"WDIR", "Wind direction [deg]"}, - /* 32 */ {"WIND", "Wind speed [m/s]"}, - /* 33 */ {"UGRD", "u wind [m/s]"}, - /* 34 */ {"VGRD", "v wind [m/s]"}, - /* 35 */ {"STRM", "Stream function [m^2/s]"}, - /* 36 */ {"VPOT", "Velocity potential [m^2/s]"}, - /* 37 */ {"MNTSF", "Montgomery stream function [m^2/s^2]"}, - /* 38 */ {"SGCVV", "Sigma coord. vertical velocity [/s]"}, - /* 39 */ {"VVEL", "Pressure vertical velocity [Pa/s]"}, - /* 40 */ {"DZDT", "Geometric vertical velocity [m/s]"}, - /* 41 */ {"ABSV", "Absolute vorticity [/s]"}, - /* 42 */ {"ABSD", "Absolute divergence [/s]"}, - /* 43 */ {"RELV", "Relative vorticity [/s]"}, - /* 44 */ {"RELD", "Relative divergence [/s]"}, - /* 45 */ {"VUCSH", "Vertical u shear [/s]"}, - /* 46 */ {"VVCSH", "Vertical v shear [/s]"}, - /* 47 */ {"DIRC", "Direction of current [deg]"}, - /* 48 */ {"SPC", "Speed of current [m/s]"}, - /* 49 */ {"UOGRD", "u of current [m/s]"}, - /* 50 */ {"VOGRD", "v of current [m/s]"}, - /* 51 */ {"SPFH", "Specific humidity [kg/kg]"}, - /* 52 */ {"RH", "Relative humidity [%]"}, - /* 53 */ {"MIXR", "Humidity mixing ratio [kg/kg]"}, - /* 54 */ {"PWAT", "Precipitable water [kg/m^2]"}, - /* 55 */ {"VAPP", "Vapor pressure [Pa]"}, - /* 56 */ {"SATD", "Saturation deficit [Pa]"}, - /* 57 */ {"EVP", "Evaporation [kg/m^2]"}, - /* 58 */ {"CICE", "Cloud Ice [kg/m^2]"}, - /* 59 */ {"PRATE", "Precipitation rate [kg/m^2/s]"}, - /* 60 */ {"TSTM", "Thunderstorm probability [%]"}, - /* 61 */ {"APCP", "Total precipitation [kg/m^2]"}, - /* 62 */ {"NCPCP", "Large scale precipitation [kg/m^2]"}, - /* 63 */ {"ACPCP", "Convective precipitation [kg/m^2]"}, - /* 64 */ {"SRWEQ", "Snowfall rate water equiv. [kg/m^2/s]"}, - /* 65 */ {"WEASD", "Accum. snow [kg/m^2]"}, - /* 66 */ {"SNOD", "Snow depth [m]"}, - /* 67 */ {"MIXHT", "Mixed layer depth [m]"}, - /* 68 */ {"TTHDP", "Transient thermocline depth [m]"}, - /* 69 */ {"MTHD", "Main thermocline depth [m]"}, - /* 70 */ {"MTHA", "Main thermocline anomaly [m]"}, - /* 71 */ {"TCDC", "Total cloud cover [%]"}, - /* 72 */ {"CDCON", "Convective cloud cover [%]"}, - /* 73 */ {"LCDC", "Low level cloud cover [%]"}, - /* 74 */ {"MCDC", "Mid level cloud cover [%]"}, - /* 75 */ {"HCDC", "High level cloud cover [%]"}, - /* 76 */ {"CWAT", "Cloud water [kg/m^2]"}, - /* 77 */ {"BLI", "Best lifted index (to 500 hPa) [K]"}, - /* 78 */ {"SNOC", "Convective snow [kg/m^2]"}, - /* 79 */ {"SNOL", "Large scale snow [kg/m^2]"}, - /* 80 */ {"WTMP", "Water temp. [K]"}, - /* 81 */ {"LAND", "Land-sea coverage (land=1;sea=0) [fraction]"}, - /* 82 */ {"DSLM", "Deviation of sea level from mean [m]"}, - /* 83 */ {"SFCR", "Surface roughness [m]"}, - /* 84 */ {"ALBDO", "Albedo [%]"}, - /* 85 */ {"TSOIL", "Soil temp. [K]"}, - /* 86 */ {"SOILM", "Soil moisture content [kg/m^2]"}, - /* 87 */ {"VEG", "Vegetation [%]"}, - /* 88 */ {"SALTY", "Salinity [kg/kg]"}, - /* 89 */ {"DEN", "Density [kg/m^3]"}, - /* 90 */ {"WATR", "Water runoff [kg/m^2]"}, - /* 91 */ {"ICEC", "Ice concentration (ice=1;no ice=0) [fraction]"}, - /* 92 */ {"ICETK", "Ice thickness [m]"}, - /* 93 */ {"DICED", "Direction of ice drift [deg]"}, - /* 94 */ {"SICED", "Speed of ice drift [m/s]"}, - /* 95 */ {"UICE", "u of ice drift [m/s]"}, - /* 96 */ {"VICE", "v of ice drift [m/s]"}, - /* 97 */ {"ICEG", "Ice growth rate [m/s]"}, - /* 98 */ {"ICED", "Ice divergence [/s]"}, - /* 99 */ {"SNOM", "Snow melt [kg/m^2]"}, - /* 100 */ {"HTSGW", "Sig height of wind waves and swell [m]"}, - /* 101 */ {"WVDIR", "Direction of wind waves [deg]"}, - /* 102 */ {"WVHGT", "Sig height of wind waves [m]"}, - /* 103 */ {"WVPER", "Mean period of wind waves [s]"}, - /* 104 */ {"SWDIR", "Direction of swell waves [deg]"}, - /* 105 */ {"SWELL", "Sig height of swell waves [m]"}, - /* 106 */ {"SWPER", "Mean period of swell waves [s]"}, - /* 107 */ {"DIRPW", "Primary wave direction [deg]"}, - /* 108 */ {"PERPW", "Primary wave mean period [s]"}, - /* 109 */ {"DIRSW", "Secondary wave direction [deg]"}, - /* 110 */ {"PERSW", "Secondary wave mean period [s]"}, - /* 111 */ {"NSWRS", "Net short wave (surface) [W/m^2]"}, - /* 112 */ {"NLWRS", "Net long wave (surface) [W/m^2]"}, - /* 113 */ {"NSWRT", "Net short wave (top) [W/m^2]"}, - /* 114 */ {"NLWRT", "Net long wave (top) [W/m^2]"}, - /* 115 */ {"LWAVR", "Long wave [W/m^2]"}, - /* 116 */ {"SWAVR", "Short wave [W/m^2]"}, - /* 117 */ {"GRAD", "Global radiation [W/m^2]"}, - /* 118 */ {"BRTMP", "Brightness temperature [K]"}, - /* 119 */ {"LWRAD", "Radiance with respect to wave no. [W/m/sr]"}, - /* 120 */ {"SWRAD", "Radiance with respect ot wave len. [W/m^3/sr]"}, - /* 121 */ {"LHTFL", "Latent heat flux [W/m^2]"}, - /* 122 */ {"SHTFL", "Sensible heat flux [W/m^2]"}, - /* 123 */ {"BLYDP", "Boundary layer dissipation [W/m^2]"}, - /* 124 */ {"UFLX", "Zonal momentum flux [N/m^2]"}, - /* 125 */ {"VFLX", "Meridional momentum flux [N/m^2]"}, - /* 126 */ {"WMIXE", "Wind mixing energy [J]"}, - /* 127 */ {"IMGD", "Image data []"}, - /* 128 */ {"MSLSA", "Mean sea level pressure (Std Atm) [Pa]"}, - /* 129 */ {"var129", "undefined"}, - /* 130 */ {"MSLET", "Mean sea level pressure (ETA model) [Pa]"}, - /* 131 */ {"LFTX", "Surface lifted index [K]"}, - /* 132 */ {"4LFTX", "Best (4-layer) lifted index [K]"}, - /* 133 */ {"var133", "undefined"}, - /* 134 */ {"PRESN", "Pressure (nearest grid point) [Pa]"}, - /* 135 */ {"MCONV", "Horizontal moisture divergence [kg/kg/s]"}, - /* 136 */ {"VWSH", "Vertical speed shear [1/s]"}, - /* 137 */ {"LTNGSD", "Lightning strike density [1/m^2/s]"}, - /* 138 */ {"var138", "undefined"}, - /* 139 */ {"PVMW", "Potential vorticity (mass-weighted) [1/s/m]"}, - /* 140 */ {"CRAIN", "Categorical rain [yes=1;no=0]"}, - /* 141 */ {"CFRZR", "Categorical freezing rain [yes=1;no=0]"}, - /* 142 */ {"CICEP", "Categorical ice pellets [yes=1;no=0]"}, - /* 143 */ {"CSNOW", "Categorical snow [yes=1;no=0]"}, - /* 144 */ {"SOILW", "Volumetric soil moisture (frozen + liquid) [fraction]"}, - /* 145 */ {"PEVPR", "Potential evaporation rate [W/m^2]"}, - /* 146 */ {"VEGT", "Vegetation canopy temperature [K]"}, - /* 147 */ {"BARET", "Bare soil surface skin temperature [K]"}, - /* 148 */ {"AVSFT", "Average surface skin temperature [K]"}, - /* 149 */ {"RADT", "Effective radiative skin temperature [K]"}, - /* 150 */ {"SSTOR", "Surface water storage [kg/m^2]"}, - /* 151 */ {"LSOIL", "Liquid soil moisture content (non-frozen) [kg/m^2]"}, - /* 152 */ {"EWATR", "Open water evaporation (standing water) [W/m^2]"}, - /* 153 */ {"CLWMR", "Cloud water [kg/kg]"}, - /* 154 */ {"var154", "undefined"}, - /* 155 */ {"GFLUX", "Ground Heat Flux [W/m^2]"}, - /* 156 */ {"CIN", "Convective inhibition [J/kg]"}, - /* 157 */ {"CAPE", "Convective available potential energy [J/kg]"}, - /* 158 */ {"TKE", "Turbulent Kinetic Energy [J/kg]"}, - /* 159 */ {"MXSALB", "Maximum snow albedo [%]"}, - /* 160 */ {"SOILL", "Liquid volumetric soil moisture (non-frozen) [fraction]"}, - /* 161 */ {"ASNOW", "Frozen precipitation (e.g. snowfall) [kg/m^2]"}, - /* 162 */ {"ARAIN", "Liquid precipitation (rainfall) [kg/m^2]"}, - /* 163 */ {"GWREC", "Groundwater recharge [kg/m^2]"}, - /* 164 */ {"QREC", "Flood plain recharge [kg/m^2]"}, - /* 165 */ {"SNOWT", "Snow temperature, depth-avg [K]"}, - /* 166 */ {"VBDSF", "Visible beam downward solar flux [W/m^2]"}, - /* 167 */ {"VDDSF", "Visible diffuse downward solar flux [W/m^2]"}, - /* 168 */ {"NBDSF", "Near IR beam downward solar flux [W/m^2]"}, - /* 169 */ {"NDDSF", "Near IR diffuse downward solar flux [W/m^2]"}, - /* 170 */ {"SNFALB", "Snow-free albedo [%]"}, - /* 171 */ {"RLYRS", "Number of soil layers in root zone [non-dim]"}, - /* 172 */ {"FLX", "Momentum flux N/m2 [M]"}, - /* 173 */ {"LMH", "Mass point model surface [non-dim]"}, - /* 174 */ {"LMV", "Velocity point model surface [non-dim]"}, - /* 175 */ {"MLYNO", "Model layer number (from bottom up) [non-dim]"}, - /* 176 */ {"NLAT", "Latitude (-90 to +90) [deg]"}, - /* 177 */ {"ELON", "East longitude (0-360) [deg]"}, - /* 178 */ {"ICMR", "Ice mixing ratio [kg/kg]"}, - /* 179 */ {"ACOND", "Aerodynamic conductance [m/s]"}, - /* 180 */ {"SNOAG", "Snow age [s]"}, - /* 181 */ {"CCOND", "Canopy conductance [m/s]"}, - /* 182 */ {"LAI", "Leaf area index (0-9) [non-dim]"}, - /* 183 */ {"SFCRH", "Roughness length for heat [m]"}, - /* 184 */ {"SALBD", "Snow albedo (over snow cover area only) [%]"}, - /* 185 */ {"var185", "undefined"}, - /* 186 */ {"var186", "undefined"}, - /* 187 */ {"NDVI", "Normalized Difference Vegetation Index []"}, - /* 188 */ {"DRIP", "Rate of water dropping from canopy to gnd [kg/m^2]"}, - /* 189 */ {"LANDN", "Land-sea coverage (nearest neighbor) [land=1,sea=0]"}, - /* 190 */ {"HLCY", "Storm relative helicity [m^2/s^2]"}, - /* 191 */ {"NLATN", "Latitude (nearest neigbhbor) (-90 to +90) [deg]"}, - /* 192 */ {"ELONN", "East longitude (nearest neigbhbor) (0-360) [deg]"}, - /* 193 */ {"APTMP", "Apparent temperature [K]"}, - /* 194 */ {"CPOFP", "Prob. of frozen precipitation [%]"}, - /* 195 */ {"var195", "undefined"}, - /* 196 */ {"USTM", "u-component of storm motion [m/s]"}, - /* 197 */ {"VSTM", "v-component of storm motion [m/s]"}, - /* 198 */ {"SBSNO", "Sublimation (evaporation from snow) [W/m^2]"}, - /* 199 */ {"EVBS", "Direct evaporation from bare soil [W/m^2]"}, - /* 200 */ {"EVCW", "Canopy water evaporation [W/m^2]"}, - /* 201 */ {"var201", "undefined"}, - /* 202 */ {"APCPN", "Total precipitation (nearest grid point) [kg/m^2]"}, - /* 203 */ {"RSMIN", "Minimal stomatal resistance [s/m]"}, - /* 204 */ {"DSWRF", "Downward shortwave radiation flux [W/m^2]"}, - /* 205 */ {"DLWRF", "Downward longwave radiation flux [W/m^2]"}, - /* 206 */ {"ACPCPN", "Convective precipitation (nearest grid point) [kg/m^2]"}, - /* 207 */ {"MSTAV", "Moisture availability [%]"}, - /* 208 */ {"SFEXC", "Exchange coefficient [(kg/m^3)(m/s)]"}, - /* 209 */ {"var209", "undefined"}, - /* 210 */ {"TRANS", "Transpiration [W/m^2]"}, - /* 211 */ {"USWRF", "Upward short wave radiation flux [W/m^2]"}, - /* 212 */ {"ULWRF", "Upward long wave radiation flux [W/m^2]"}, - /* 213 */ {"CDLYR", "Non-convective cloud [%]"}, - /* 214 */ {"CPRAT", "Convective precip. rate [kg/m^2/s]"}, - /* 215 */ {"var215", "undefined"}, - /* 216 */ {"TTRAD", "Temp. tendency by all radiation [K/s]"}, - /* 217 */ {"var217", "undefined"}, - /* 218 */ {"HGTN", "Geopotential Height (nearest grid point) [gpm]"}, - /* 219 */ {"WILT", "Wilting point [fraction]"}, - /* 220 */ {"FLDCP", "Field Capacity [fraction]"}, - /* 221 */ {"HPBL", "Planetary boundary layer height [m]"}, - /* 222 */ {"SLTYP", "Surface slope type [Index]"}, - /* 223 */ {"CNWAT", "Plant canopy surface water [kg/m^2]"}, - /* 224 */ {"SOTYP", "Soil type [Index]"}, - /* 225 */ {"VGTYP", "Vegetation type [Index]"}, - /* 226 */ {"BMIXL", "Blackadars mixing length scale [m]"}, - /* 227 */ {"AMIXL", "Asymptotic mixing length scale [m]"}, - /* 228 */ {"PEVAP", "Potential evaporation [kg/m^2]"}, - /* 229 */ {"SNOHF", "Snow phase-change heat flux [W/m^2]"}, - /* 230 */ {"SMREF", "Transpiration stress-onset (soil moisture) [fraction]"}, - /* 231 */ {"SMDRY", "Direct evaporation cease (soil moisture) [fraction]"}, - /* 232 */ {"WVINC", "water vapor added by precip assimilation [kg/m^2]"}, - /* 233 */ {"WCINC", "water condensate added by precip assimilaition [kg/m^2]"}, - /* 234 */ {"BGRUN", "Subsurface runoff (baseflow) [kg/m^2]"}, - /* 235 */ {"SSRUN", "Surface runoff (non-infiltrating) [kg/m^2]"}, - /* 236 */ {"var236", "undefined"}, - /* 237 */ {"WVCONV", "Water vapor flux convergence (vertical int) [kg/m^2]"}, - /* 238 */ {"SNOWC", "Snow cover [%]"}, - /* 239 */ {"SNOT", "Snow temperature [K]"}, - /* 240 */ {"POROS", "Soil porosity [fraction]"}, - /* 241 */ {"WCCONV", "Water condensate flux convergence (vertical int) [kg/m^2]"}, - /* 242 */ {"WVUFLX", "Water vapor zonal flux (vertical int)[kg/m]"}, - /* 243 */ {"WVVFLX", "Water vapor meridional flux (vertical int) [kg/m]"}, - /* 244 */ {"WCUFLX", "Water condensate zonal flux (vertical int) [kg/m]"}, - /* 245 */ {"WCVFLX", "Water condensate meridional flux (vertical int) [kg/m]"}, - /* 246 */ {"RCS", "Solar parameter in canopy conductance [fraction]"}, - /* 247 */ {"RCT", "Temperature parameter in canopy conductance [fraction]"}, - /* 248 */ {"RCQ", "Humidity parameter in canopy conductance [fraction]"}, - /* 249 */ {"RCSOL", "Soil moisture parameter in canopy conductance [fraction]"}, - /* 250 */ {"SWHR", "Solar radiative heating [K/s]"}, - /* 251 */ {"LWHR", "Longwave radiative heating [K/s]"}, - /* 252 */ {"CD", "Surface drag coefficient [non-dim]"}, - /* 253 */ {"FRICV", "Surface friction velocity [m/s]"}, - /* 254 */ {"RI", "Richardson number [non-dim]"}, - /* 255 */ {"var255", "undefined"}, + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"PRES", "Pressure [Pa]"}, + /* 2 */ {"PRMSL", "Pressure reduced to MSL [Pa]"}, + /* 3 */ {"PTEND", "Pressure tendency [Pa/s]"}, + /* 4 */ {"PVORT", "Pot. vorticity [km^2/kg/s]"}, + /* 5 */ {"ICAHT", "ICAO Standard Atmosphere Reference Height [M]"}, + /* 6 */ {"GP", "Geopotential [m^2/s^2]"}, + /* 7 */ {"HGT", "Geopotential height [gpm]"}, + /* 8 */ {"DIST", "Geometric height [m]"}, + /* 9 */ {"HSTDV", "Std dev of height [m]"}, + /* 10 */ {"TOZNE", "Total ozone [Dobson]"}, + /* 11 */ {"TMP", "Temp. [K]"}, + /* 12 */ {"VTMP", "Virtual temp. [K]"}, + /* 13 */ {"POT", "Potential temp. [K]"}, + /* 14 */ {"EPOT", "Pseudo-adiabatic pot. temp. [K]"}, + /* 15 */ {"TMAX", "Max. temp. [K]"}, + /* 16 */ {"TMIN", "Min. temp. [K]"}, + /* 17 */ {"DPT", "Dew point temp. [K]"}, + /* 18 */ {"DEPR", "Dew point depression [K]"}, + /* 19 */ {"LAPR", "Lapse rate [K/m]"}, + /* 20 */ {"VIS", "Visibility [m]"}, + /* 21 */ {"RDSP1", "Radar spectra (1) [non-dim]"}, + /* 22 */ {"RDSP2", "Radar spectra (2) [non-dim]"}, + /* 23 */ {"RDSP3", "Radar spectra (3) [non-dim]"}, + /* 24 */ {"PLI", "Parcel lifted index (to 500 hPa) [K]"}, + /* 25 */ {"TMPA", "Temp. anomaly [K]"}, + /* 26 */ {"PRESA", "Pressure anomaly [Pa]"}, + /* 27 */ {"GPA", "Geopotential height anomaly [gpm]"}, + /* 28 */ {"WVSP1", "Wave spectra (1) [non-dim]"}, + /* 29 */ {"WVSP2", "Wave spectra (2) [non-dim]"}, + /* 30 */ {"WVSP3", "Wave spectra (3) [non-dim]"}, + /* 31 */ {"WDIR", "Wind direction [deg]"}, + /* 32 */ {"WIND", "Wind speed [m/s]"}, + /* 33 */ {"UGRD", "u wind [m/s]"}, + /* 34 */ {"VGRD", "v wind [m/s]"}, + /* 35 */ {"STRM", "Stream function [m^2/s]"}, + /* 36 */ {"VPOT", "Velocity potential [m^2/s]"}, + /* 37 */ {"MNTSF", "Montgomery stream function [m^2/s^2]"}, + /* 38 */ {"SGCVV", "Sigma coord. vertical velocity [/s]"}, + /* 39 */ {"VVEL", "Pressure vertical velocity [Pa/s]"}, + /* 40 */ {"DZDT", "Geometric vertical velocity [m/s]"}, + /* 41 */ {"ABSV", "Absolute vorticity [/s]"}, + /* 42 */ {"ABSD", "Absolute divergence [/s]"}, + /* 43 */ {"RELV", "Relative vorticity [/s]"}, + /* 44 */ {"RELD", "Relative divergence [/s]"}, + /* 45 */ {"VUCSH", "Vertical u shear [/s]"}, + /* 46 */ {"VVCSH", "Vertical v shear [/s]"}, + /* 47 */ {"DIRC", "Direction of current [deg]"}, + /* 48 */ {"SPC", "Speed of current [m/s]"}, + /* 49 */ {"UOGRD", "u of current [m/s]"}, + /* 50 */ {"VOGRD", "v of current [m/s]"}, + /* 51 */ {"SPFH", "Specific humidity [kg/kg]"}, + /* 52 */ {"RH", "Relative humidity [%]"}, + /* 53 */ {"MIXR", "Humidity mixing ratio [kg/kg]"}, + /* 54 */ {"PWAT", "Precipitable water [kg/m^2]"}, + /* 55 */ {"VAPP", "Vapor pressure [Pa]"}, + /* 56 */ {"SATD", "Saturation deficit [Pa]"}, + /* 57 */ {"EVP", "Evaporation [kg/m^2]"}, + /* 58 */ {"CICE", "Cloud Ice [kg/m^2]"}, + /* 59 */ {"PRATE", "Precipitation rate [kg/m^2/s]"}, + /* 60 */ {"TSTM", "Thunderstorm probability [%]"}, + /* 61 */ {"APCP", "Total precipitation [kg/m^2]"}, + /* 62 */ {"NCPCP", "Large scale precipitation [kg/m^2]"}, + /* 63 */ {"ACPCP", "Convective precipitation [kg/m^2]"}, + /* 64 */ {"SRWEQ", "Snowfall rate water equiv. [kg/m^2/s]"}, + /* 65 */ {"WEASD", "Accum. snow [kg/m^2]"}, + /* 66 */ {"SNOD", "Snow depth [m]"}, + /* 67 */ {"MIXHT", "Mixed layer depth [m]"}, + /* 68 */ {"TTHDP", "Transient thermocline depth [m]"}, + /* 69 */ {"MTHD", "Main thermocline depth [m]"}, + /* 70 */ {"MTHA", "Main thermocline anomaly [m]"}, + /* 71 */ {"TCDC", "Total cloud cover [%]"}, + /* 72 */ {"CDCON", "Convective cloud cover [%]"}, + /* 73 */ {"LCDC", "Low level cloud cover [%]"}, + /* 74 */ {"MCDC", "Mid level cloud cover [%]"}, + /* 75 */ {"HCDC", "High level cloud cover [%]"}, + /* 76 */ {"CWAT", "Cloud water [kg/m^2]"}, + /* 77 */ {"BLI", "Best lifted index (to 500 hPa) [K]"}, + /* 78 */ {"SNOC", "Convective snow [kg/m^2]"}, + /* 79 */ {"SNOL", "Large scale snow [kg/m^2]"}, + /* 80 */ {"WTMP", "Water temp. [K]"}, + /* 81 */ {"LAND", "Land-sea coverage (land=1;sea=0) [fraction]"}, + /* 82 */ {"DSLM", "Deviation of sea level from mean [m]"}, + /* 83 */ {"SFCR", "Surface roughness [m]"}, + /* 84 */ {"ALBDO", "Albedo [%]"}, + /* 85 */ {"TSOIL", "Soil temp. [K]"}, + /* 86 */ {"SOILM", "Soil moisture content [kg/m^2]"}, + /* 87 */ {"VEG", "Vegetation [%]"}, + /* 88 */ {"SALTY", "Salinity [kg/kg]"}, + /* 89 */ {"DEN", "Density [kg/m^3]"}, + /* 90 */ {"WATR", "Water runoff [kg/m^2]"}, + /* 91 */ {"ICEC", "Ice concentration (ice=1;no ice=0) [fraction]"}, + /* 92 */ {"ICETK", "Ice thickness [m]"}, + /* 93 */ {"DICED", "Direction of ice drift [deg]"}, + /* 94 */ {"SICED", "Speed of ice drift [m/s]"}, + /* 95 */ {"UICE", "u of ice drift [m/s]"}, + /* 96 */ {"VICE", "v of ice drift [m/s]"}, + /* 97 */ {"ICEG", "Ice growth rate [m/s]"}, + /* 98 */ {"ICED", "Ice divergence [/s]"}, + /* 99 */ {"SNOM", "Snow melt [kg/m^2]"}, + /* 100 */ {"HTSGW", "Sig height of wind waves and swell [m]"}, + /* 101 */ {"WVDIR", "Direction of wind waves [deg]"}, + /* 102 */ {"WVHGT", "Sig height of wind waves [m]"}, + /* 103 */ {"WVPER", "Mean period of wind waves [s]"}, + /* 104 */ {"SWDIR", "Direction of swell waves [deg]"}, + /* 105 */ {"SWELL", "Sig height of swell waves [m]"}, + /* 106 */ {"SWPER", "Mean period of swell waves [s]"}, + /* 107 */ {"DIRPW", "Primary wave direction [deg]"}, + /* 108 */ {"PERPW", "Primary wave mean period [s]"}, + /* 109 */ {"DIRSW", "Secondary wave direction [deg]"}, + /* 110 */ {"PERSW", "Secondary wave mean period [s]"}, + /* 111 */ {"NSWRS", "Net short wave (surface) [W/m^2]"}, + /* 112 */ {"NLWRS", "Net long wave (surface) [W/m^2]"}, + /* 113 */ {"NSWRT", "Net short wave (top) [W/m^2]"}, + /* 114 */ {"NLWRT", "Net long wave (top) [W/m^2]"}, + /* 115 */ {"LWAVR", "Long wave [W/m^2]"}, + /* 116 */ {"SWAVR", "Short wave [W/m^2]"}, + /* 117 */ {"GRAD", "Global radiation [W/m^2]"}, + /* 118 */ {"BRTMP", "Brightness temperature [K]"}, + /* 119 */ {"LWRAD", "Radiance with respect to wave no. [W/m/sr]"}, + /* 120 */ {"SWRAD", "Radiance with respect ot wave len. [W/m^3/sr]"}, + /* 121 */ {"LHTFL", "Latent heat flux [W/m^2]"}, + /* 122 */ {"SHTFL", "Sensible heat flux [W/m^2]"}, + /* 123 */ {"BLYDP", "Boundary layer dissipation [W/m^2]"}, + /* 124 */ {"UFLX", "Zonal momentum flux [N/m^2]"}, + /* 125 */ {"VFLX", "Meridional momentum flux [N/m^2]"}, + /* 126 */ {"WMIXE", "Wind mixing energy [J]"}, + /* 127 */ {"IMGD", "Image data []"}, + /* 128 */ {"MSLSA", "Mean sea level pressure (Std Atm) [Pa]"}, + /* 129 */ {"var129", "undefined"}, + /* 130 */ {"MSLET", "Mean sea level pressure (ETA model) [Pa]"}, + /* 131 */ {"LFTX", "Surface lifted index [K]"}, + /* 132 */ {"4LFTX", "Best (4-layer) lifted index [K]"}, + /* 133 */ {"var133", "undefined"}, + /* 134 */ {"PRESN", "Pressure (nearest grid point) [Pa]"}, + /* 135 */ {"MCONV", "Horizontal moisture divergence [kg/kg/s]"}, + /* 136 */ {"VWSH", "Vertical speed shear [1/s]"}, + /* 137 */ {"LTNGSD", "Lightning strike density [1/m^2/s]"}, + /* 138 */ {"var138", "undefined"}, + /* 139 */ {"PVMW", "Potential vorticity (mass-weighted) [1/s/m]"}, + /* 140 */ {"CRAIN", "Categorical rain [yes=1;no=0]"}, + /* 141 */ {"CFRZR", "Categorical freezing rain [yes=1;no=0]"}, + /* 142 */ {"CICEP", "Categorical ice pellets [yes=1;no=0]"}, + /* 143 */ {"CSNOW", "Categorical snow [yes=1;no=0]"}, + /* 144 */ {"SOILW", "Volumetric soil moisture (frozen + liquid) [fraction]"}, + /* 145 */ {"PEVPR", "Potential evaporation rate [W/m^2]"}, + /* 146 */ {"VEGT", "Vegetation canopy temperature [K]"}, + /* 147 */ {"BARET", "Bare soil surface skin temperature [K]"}, + /* 148 */ {"AVSFT", "Average surface skin temperature [K]"}, + /* 149 */ {"RADT", "Effective radiative skin temperature [K]"}, + /* 150 */ {"SSTOR", "Surface water storage [kg/m^2]"}, + /* 151 */ {"LSOIL", "Liquid soil moisture content (non-frozen) [kg/m^2]"}, + /* 152 */ {"EWATR", "Open water evaporation (standing water) [W/m^2]"}, + /* 153 */ {"CLWMR", "Cloud water [kg/kg]"}, + /* 154 */ {"var154", "undefined"}, + /* 155 */ {"GFLUX", "Ground Heat Flux [W/m^2]"}, + /* 156 */ {"CIN", "Convective inhibition [J/kg]"}, + /* 157 */ {"CAPE", "Convective available potential energy [J/kg]"}, + /* 158 */ {"TKE", "Turbulent Kinetic Energy [J/kg]"}, + /* 159 */ {"MXSALB", "Maximum snow albedo [%]"}, + /* 160 */ {"SOILL", "Liquid volumetric soil moisture (non-frozen) [fraction]"}, + /* 161 */ {"ASNOW", "Frozen precipitation (e.g. snowfall) [kg/m^2]"}, + /* 162 */ {"ARAIN", "Liquid precipitation (rainfall) [kg/m^2]"}, + /* 163 */ {"GWREC", "Groundwater recharge [kg/m^2]"}, + /* 164 */ {"QREC", "Flood plain recharge [kg/m^2]"}, + /* 165 */ {"SNOWT", "Snow temperature, depth-avg [K]"}, + /* 166 */ {"VBDSF", "Visible beam downward solar flux [W/m^2]"}, + /* 167 */ {"VDDSF", "Visible diffuse downward solar flux [W/m^2]"}, + /* 168 */ {"NBDSF", "Near IR beam downward solar flux [W/m^2]"}, + /* 169 */ {"NDDSF", "Near IR diffuse downward solar flux [W/m^2]"}, + /* 170 */ {"SNFALB", "Snow-free albedo [%]"}, + /* 171 */ {"RLYRS", "Number of soil layers in root zone [non-dim]"}, + /* 172 */ {"FLX", "Momentum flux N/m2 [M]"}, + /* 173 */ {"LMH", "Mass point model surface [non-dim]"}, + /* 174 */ {"LMV", "Velocity point model surface [non-dim]"}, + /* 175 */ {"MLYNO", "Model layer number (from bottom up) [non-dim]"}, + /* 176 */ {"NLAT", "Latitude (-90 to +90) [deg]"}, + /* 177 */ {"ELON", "East longitude (0-360) [deg]"}, + /* 178 */ {"ICMR", "Ice mixing ratio [kg/kg]"}, + /* 179 */ {"ACOND", "Aerodynamic conductance [m/s]"}, + /* 180 */ {"SNOAG", "Snow age [s]"}, + /* 181 */ {"CCOND", "Canopy conductance [m/s]"}, + /* 182 */ {"LAI", "Leaf area index (0-9) [non-dim]"}, + /* 183 */ {"SFCRH", "Roughness length for heat [m]"}, + /* 184 */ {"SALBD", "Snow albedo (over snow cover area only) [%]"}, + /* 185 */ {"var185", "undefined"}, + /* 186 */ {"var186", "undefined"}, + /* 187 */ {"NDVI", "Normalized Difference Vegetation Index []"}, + /* 188 */ {"DRIP", "Rate of water dropping from canopy to gnd [kg/m^2]"}, + /* 189 */ {"LANDN", "Land-sea coverage (nearest neighbor) [land=1,sea=0]"}, + /* 190 */ {"HLCY", "Storm relative helicity [m^2/s^2]"}, + /* 191 */ {"NLATN", "Latitude (nearest neigbhbor) (-90 to +90) [deg]"}, + /* 192 */ {"ELONN", "East longitude (nearest neigbhbor) (0-360) [deg]"}, + /* 193 */ {"APTMP", "Apparent temperature [K]"}, + /* 194 */ {"CPOFP", "Prob. of frozen precipitation [%]"}, + /* 195 */ {"var195", "undefined"}, + /* 196 */ {"USTM", "u-component of storm motion [m/s]"}, + /* 197 */ {"VSTM", "v-component of storm motion [m/s]"}, + /* 198 */ {"SBSNO", "Sublimation (evaporation from snow) [W/m^2]"}, + /* 199 */ {"EVBS", "Direct evaporation from bare soil [W/m^2]"}, + /* 200 */ {"EVCW", "Canopy water evaporation [W/m^2]"}, + /* 201 */ {"var201", "undefined"}, + /* 202 */ {"APCPN", "Total precipitation (nearest grid point) [kg/m^2]"}, + /* 203 */ {"RSMIN", "Minimal stomatal resistance [s/m]"}, + /* 204 */ {"DSWRF", "Downward shortwave radiation flux [W/m^2]"}, + /* 205 */ {"DLWRF", "Downward longwave radiation flux [W/m^2]"}, + /* 206 */ {"ACPCPN", "Convective precipitation (nearest grid point) [kg/m^2]"}, + /* 207 */ {"MSTAV", "Moisture availability [%]"}, + /* 208 */ {"SFEXC", "Exchange coefficient [(kg/m^3)(m/s)]"}, + /* 209 */ {"var209", "undefined"}, + /* 210 */ {"TRANS", "Transpiration [W/m^2]"}, + /* 211 */ {"USWRF", "Upward short wave radiation flux [W/m^2]"}, + /* 212 */ {"ULWRF", "Upward long wave radiation flux [W/m^2]"}, + /* 213 */ {"CDLYR", "Non-convective cloud [%]"}, + /* 214 */ {"CPRAT", "Convective precip. rate [kg/m^2/s]"}, + /* 215 */ {"var215", "undefined"}, + /* 216 */ {"TTRAD", "Temp. tendency by all radiation [K/s]"}, + /* 217 */ {"var217", "undefined"}, + /* 218 */ {"HGTN", "Geopotential Height (nearest grid point) [gpm]"}, + /* 219 */ {"WILT", "Wilting point [fraction]"}, + /* 220 */ {"FLDCP", "Field Capacity [fraction]"}, + /* 221 */ {"HPBL", "Planetary boundary layer height [m]"}, + /* 222 */ {"SLTYP", "Surface slope type [Index]"}, + /* 223 */ {"CNWAT", "Plant canopy surface water [kg/m^2]"}, + /* 224 */ {"SOTYP", "Soil type [Index]"}, + /* 225 */ {"VGTYP", "Vegetation type [Index]"}, + /* 226 */ {"BMIXL", "Blackadars mixing length scale [m]"}, + /* 227 */ {"AMIXL", "Asymptotic mixing length scale [m]"}, + /* 228 */ {"PEVAP", "Potential evaporation [kg/m^2]"}, + /* 229 */ {"SNOHF", "Snow phase-change heat flux [W/m^2]"}, + /* 230 */ {"SMREF", "Transpiration stress-onset (soil moisture) [fraction]"}, + /* 231 */ {"SMDRY", "Direct evaporation cease (soil moisture) [fraction]"}, + /* 232 */ {"WVINC", "water vapor added by precip assimilation [kg/m^2]"}, + /* 233 */ {"WCINC", "water condensate added by precip assimilaition [kg/m^2]"}, + /* 234 */ {"BGRUN", "Subsurface runoff (baseflow) [kg/m^2]"}, + /* 235 */ {"SSRUN", "Surface runoff (non-infiltrating) [kg/m^2]"}, + /* 236 */ {"var236", "undefined"}, + /* 237 */ {"WVCONV", "Water vapor flux convergence (vertical int) [kg/m^2]"}, + /* 238 */ {"SNOWC", "Snow cover [%]"}, + /* 239 */ {"SNOT", "Snow temperature [K]"}, + /* 240 */ {"POROS", "Soil porosity [fraction]"}, + /* 241 */ {"WCCONV", "Water condensate flux convergence (vertical int) [kg/m^2]"}, + /* 242 */ {"WVUFLX", "Water vapor zonal flux (vertical int)[kg/m]"}, + /* 243 */ {"WVVFLX", "Water vapor meridional flux (vertical int) [kg/m]"}, + /* 244 */ {"WCUFLX", "Water condensate zonal flux (vertical int) [kg/m]"}, + /* 245 */ {"WCVFLX", "Water condensate meridional flux (vertical int) [kg/m]"}, + /* 246 */ {"RCS", "Solar parameter in canopy conductance [fraction]"}, + /* 247 */ {"RCT", "Temperature parameter in canopy conductance [fraction]"}, + /* 248 */ {"RCQ", "Humidity parameter in canopy conductance [fraction]"}, + /* 249 */ {"RCSOL", "Soil moisture parameter in canopy conductance [fraction]"}, + /* 250 */ {"SWHR", "Solar radiative heating [K/s]"}, + /* 251 */ {"LWHR", "Longwave radiative heating [K/s]"}, + /* 252 */ {"CD", "Surface drag coefficient [non-dim]"}, + /* 253 */ {"FRICV", "Surface friction velocity [m/s]"}, + /* 254 */ {"RI", "Richardson number [non-dim]"}, + /* 255 */ {"var255", "undefined"}, }; const struct ParmTable parm_table_nceptab_130[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"PRES", "Pressure [Pa]"}, - /* 2 */ {"PRMSL", "Pressure reduced to MSL [Pa]"}, - /* 3 */ {"PTEND", "Pressure tendency [Pa/s]"}, - /* 4 */ {"PVORT", "Pot. vorticity [km^2/kg/s]"}, - /* 5 */ {"ICAHT", "ICAO Standard Atmosphere Reference Height [M]"}, - /* 6 */ {"GP", "Geopotential [m^2/s^2]"}, - /* 7 */ {"HGT", "Geopotential height [gpm]"}, - /* 8 */ {"DIST", "Geometric height [m]"}, - /* 9 */ {"HSTDV", "Std dev of height [m]"}, - /* 10 */ {"TOZNE", "Total ozone [Dobson]"}, - /* 11 */ {"TMP", "Temp. [K]"}, - /* 12 */ {"VTMP", "Virtual temp. [K]"}, - /* 13 */ {"POT", "Potential temp. [K]"}, - /* 14 */ {"EPOT", "Pseudo-adiabatic pot. temp. [K]"}, - /* 15 */ {"TMAX", "Max. temp. [K]"}, - /* 16 */ {"TMIN", "Min. temp. [K]"}, - /* 17 */ {"DPT", "Dew point temp. [K]"}, - /* 18 */ {"DEPR", "Dew point depression [K]"}, - /* 19 */ {"LAPR", "Lapse rate [K/m]"}, - /* 20 */ {"VIS", "Visibility [m]"}, - /* 21 */ {"RDSP1", "Radar spectra (1) [non-dim]"}, - /* 22 */ {"RDSP2", "Radar spectra (2) [non-dim]"}, - /* 23 */ {"RDSP3", "Radar spectra (3) [non-dim]"}, - /* 24 */ {"PLI", "Parcel lifted index (to 500 hPa) [K]"}, - /* 25 */ {"TMPA", "Temp. anomaly [K]"}, - /* 26 */ {"PRESA", "Pressure anomaly [Pa]"}, - /* 27 */ {"GPA", "Geopotential height anomaly [gpm]"}, - /* 28 */ {"WVSP1", "Wave spectra (1) [non-dim]"}, - /* 29 */ {"WVSP2", "Wave spectra (2) [non-dim]"}, - /* 30 */ {"WVSP3", "Wave spectra (3) [non-dim]"}, - /* 31 */ {"WDIR", "Wind direction [deg]"}, - /* 32 */ {"WIND", "Wind speed [m/s]"}, - /* 33 */ {"UGRD", "u wind [m/s]"}, - /* 34 */ {"VGRD", "v wind [m/s]"}, - /* 35 */ {"STRM", "Stream function [m^2/s]"}, - /* 36 */ {"VPOT", "Velocity potential [m^2/s]"}, - /* 37 */ {"MNTSF", "Montgomery stream function [m^2/s^2]"}, - /* 38 */ {"SGCVV", "Sigma coord. vertical velocity [/s]"}, - /* 39 */ {"VVEL", "Pressure vertical velocity [Pa/s]"}, - /* 40 */ {"DZDT", "Geometric vertical velocity [m/s]"}, - /* 41 */ {"ABSV", "Absolute vorticity [/s]"}, - /* 42 */ {"ABSD", "Absolute divergence [/s]"}, - /* 43 */ {"RELV", "Relative vorticity [/s]"}, - /* 44 */ {"RELD", "Relative divergence [/s]"}, - /* 45 */ {"VUCSH", "Vertical u shear [/s]"}, - /* 46 */ {"VVCSH", "Vertical v shear [/s]"}, - /* 47 */ {"DIRC", "Direction of current [deg]"}, - /* 48 */ {"SPC", "Speed of current [m/s]"}, - /* 49 */ {"UOGRD", "u of current [m/s]"}, - /* 50 */ {"VOGRD", "v of current [m/s]"}, - /* 51 */ {"SPFH", "Specific humidity [kg/kg]"}, - /* 52 */ {"RH", "Relative humidity [%]"}, - /* 53 */ {"MIXR", "Humidity mixing ratio [kg/kg]"}, - /* 54 */ {"PWAT", "Precipitable water [kg/m^2]"}, - /* 55 */ {"VAPP", "Vapor pressure [Pa]"}, - /* 56 */ {"SATD", "Saturation deficit [Pa]"}, - /* 57 */ {"EVP", "Evaporation [kg/m^2]"}, - /* 58 */ {"CICE", "Cloud Ice [kg/m^2]"}, - /* 59 */ {"PRATE", "Precipitation rate [kg/m^2/s]"}, - /* 60 */ {"TSTM", "Thunderstorm probability [%]"}, - /* 61 */ {"APCP", "Total precipitation [kg/m^2]"}, - /* 62 */ {"NCPCP", "Large scale precipitation [kg/m^2]"}, - /* 63 */ {"ACPCP", "Convective precipitation [kg/m^2]"}, - /* 64 */ {"SRWEQ", "Snowfall rate water equiv. [kg/m^2/s]"}, - /* 65 */ {"WEASD", "Accum. snow [kg/m^2]"}, - /* 66 */ {"SNOD", "Snow depth [m]"}, - /* 67 */ {"MIXHT", "Mixed layer depth [m]"}, - /* 68 */ {"TTHDP", "Transient thermocline depth [m]"}, - /* 69 */ {"MTHD", "Main thermocline depth [m]"}, - /* 70 */ {"MTHA", "Main thermocline anomaly [m]"}, - /* 71 */ {"TCDC", "Total cloud cover [%]"}, - /* 72 */ {"CDCON", "Convective cloud cover [%]"}, - /* 73 */ {"LCDC", "Low level cloud cover [%]"}, - /* 74 */ {"MCDC", "Mid level cloud cover [%]"}, - /* 75 */ {"HCDC", "High level cloud cover [%]"}, - /* 76 */ {"CWAT", "Cloud water [kg/m^2]"}, - /* 77 */ {"BLI", "Best lifted index (to 500 hPa) [K]"}, - /* 78 */ {"SNOC", "Convective snow [kg/m^2]"}, - /* 79 */ {"SNOL", "Large scale snow [kg/m^2]"}, - /* 80 */ {"WTMP", "Water temp. [K]"}, - /* 81 */ {"LAND", "Land cover (land=1;sea=0) [fraction]"}, - /* 82 */ {"DSLM", "Deviation of sea level from mean [m]"}, - /* 83 */ {"SFCR", "Surface roughness [m]"}, - /* 84 */ {"ALBDO", "Albedo [%]"}, - /* 85 */ {"TSOIL", "Soil temp. [K]"}, - /* 86 */ {"SOILM", "Soil moisture content [kg/m^2]"}, - /* 87 */ {"VEG", "Vegetation [%]"}, - /* 88 */ {"SALTY", "Salinity [kg/kg]"}, - /* 89 */ {"DEN", "Density [kg/m^3]"}, - /* 90 */ {"WATR", "Water runoff [kg/m^2]"}, - /* 91 */ {"ICEC", "Ice concentration (ice=1;no ice=0) [fraction]"}, - /* 92 */ {"ICETK", "Ice thickness [m]"}, - /* 93 */ {"DICED", "Direction of ice drift [deg]"}, - /* 94 */ {"SICED", "Speed of ice drift [m/s]"}, - /* 95 */ {"UICE", "u of ice drift [m/s]"}, - /* 96 */ {"VICE", "v of ice drift [m/s]"}, - /* 97 */ {"ICEG", "Ice growth rate [m/s]"}, - /* 98 */ {"ICED", "Ice divergence [/s]"}, - /* 99 */ {"SNOM", "Snow melt [kg/m^2]"}, - /* 100 */ {"HTSGW", "Sig height of wind waves and swell [m]"}, - /* 101 */ {"WVDIR", "Direction of wind waves [deg]"}, - /* 102 */ {"WVHGT", "Sig height of wind waves [m]"}, - /* 103 */ {"WVPER", "Mean period of wind waves [s]"}, - /* 104 */ {"SWDIR", "Direction of swell waves [deg]"}, - /* 105 */ {"SWELL", "Sig height of swell waves [m]"}, - /* 106 */ {"SWPER", "Mean period of swell waves [s]"}, - /* 107 */ {"DIRPW", "Primary wave direction [deg]"}, - /* 108 */ {"PERPW", "Primary wave mean period [s]"}, - /* 109 */ {"DIRSW", "Secondary wave direction [deg]"}, - /* 110 */ {"PERSW", "Secondary wave mean period [s]"}, - /* 111 */ {"NSWRS", "Net short wave (surface) [W/m^2]"}, - /* 112 */ {"NLWRS", "Net long wave (surface) [W/m^2]"}, - /* 113 */ {"NSWRT", "Net short wave (top) [W/m^2]"}, - /* 114 */ {"NLWRT", "Net long wave (top) [W/m^2]"}, - /* 115 */ {"LWAVR", "Long wave [W/m^2]"}, - /* 116 */ {"SWAVR", "Short wave [W/m^2]"}, - /* 117 */ {"GRAD", "Global radiation [W/m^2]"}, - /* 118 */ {"BRTMP", "Brightness temperature [K]"}, - /* 119 */ {"LWRAD", "Radiance with respect to wave no. [W/m/sr]"}, - /* 120 */ {"SWRAD", "Radiance with respect ot wave len. [W/m^3/sr]"}, - /* 121 */ {"LHTFL", "Latent heat flux [W/m^2]"}, - /* 122 */ {"SHTFL", "Sensible heat flux [W/m^2]"}, - /* 123 */ {"BLYDP", "Boundary layer dissipation [W/m^2]"}, - /* 124 */ {"UFLX", "Zonal momentum flux [N/m^2]"}, - /* 125 */ {"VFLX", "Meridional momentum flux [N/m^2]"}, - /* 126 */ {"WMIXE", "Wind mixing energy [J]"}, - /* 127 */ {"IMGD", "Image data []"}, - /* 128 */ {"var128", "undefined"}, - /* 129 */ {"var129", "undefined"}, - /* 130 */ {"var130", "undefined"}, - /* 131 */ {"var131", "undefined"}, - /* 132 */ {"var132", "undefined"}, - /* 133 */ {"var133", "undefined"}, - /* 134 */ {"var134", "undefined"}, - /* 135 */ {"var135", "undefined"}, - /* 136 */ {"var136", "undefined"}, - /* 137 */ {"var137", "undefined"}, - /* 138 */ {"var138", "undefined"}, - /* 139 */ {"var139", "undefined"}, - /* 140 */ {"var140", "undefined"}, - /* 141 */ {"var141", "undefined"}, - /* 142 */ {"var142", "undefined"}, - /* 143 */ {"var143", "undefined"}, - /* 144 */ {"SOILW", "Volumetric soil moisture (frozen + liquid) [fraction]"}, - /* 145 */ {"PEVPR", "Potential evaporation rate [W/m^2]"}, - /* 146 */ {"VEGT", "Vegetation canopy temperature [K]"}, - /* 147 */ {"BARET", "Bare soil surface skin temperature [K]"}, - /* 148 */ {"AVSFT", "Average surface skin temperature [K]"}, - /* 149 */ {"RADT", "Effective radiative skin temperature [K]"}, - /* 150 */ {"SSTOR", "Surface water storage [Kg/m^2]"}, - /* 151 */ {"LSOIL", "Liquid soil moisture content (non-frozen) [Kg/m^2]"}, - /* 152 */ {"EWATR", "Open water evaporation (standing water) [W/m^2]"}, - /* 153 */ {"NCRAIN", "Number concentration for rain particles [-]"}, - /* 154 */ {"LSPA", "Land Surface Precipitation Accumulation [kg/m^2]"}, - /* 155 */ {"GFLUX", "Ground Heat Flux [W/m^2]"}, - /* 156 */ {"CIN", "Convective inhibition [J/Kg]"}, - /* 157 */ {"CAPE", "Convective available potential energy [J/Kg]"}, - /* 158 */ {"TKE", "Turbulent Kinetic Energy [J/Kg]"}, - /* 159 */ {"MXSALB", "Maximum snow albedo [%]"}, - /* 160 */ {"SOILL", "Liquid volumetric soil moisture (non-frozen) [fraction]"}, - /* 161 */ {"ASNOW", "Frozen precipitation (e.g. snowfall) [Kg/m^2]"}, - /* 162 */ {"ARAIN", "Liquid precipitation (rainfall) [Kg/m^2]"}, - /* 163 */ {"GWREC", "Groundwater recharge [Kg/m^2]"}, - /* 164 */ {"QREC", "Flood plain recharge [Kg/m^2]"}, - /* 165 */ {"SNOWT", "Snow temperature, depth-avg [K]"}, - /* 166 */ {"VBDSF", "Visible beam downward solar flux [W/m^2]"}, - /* 167 */ {"VDDSF", "Visible diffuse downward solar flux [W/m^2]"}, - /* 168 */ {"NBDSF", "Near IR beam downward solar flux [W/m^2]"}, - /* 169 */ {"NDDSF", "Near IR diffuse downward solar flux [W/m^2]"}, - /* 170 */ {"SNFALB", "Snow-free albedo [%]"}, - /* 171 */ {"RLYRS", "Number of soil layers in root zone [non-dim]"}, - /* 172 */ {"MFLX", "Momentum flux [N/m^2]"}, - /* 173 */ {"var173", "undefined"}, - /* 174 */ {"var174", "undefined"}, - /* 175 */ {"var175", "undefined"}, - /* 176 */ {"NLAT", "Latitude (-90 to +90) [deg]"}, - /* 177 */ {"ELON", "East longitude (0-360) [deg]"}, - /* 178 */ {"FLDCAP", "Field capacity [fraction]"}, - /* 179 */ {"ACOND", "Aerodynamic conductance [m/s]"}, - /* 180 */ {"SNOAG", "Snow age [s]"}, - /* 181 */ {"CCOND", "Canopy conductance [m/s]"}, - /* 182 */ {"LAI", "Leaf area index (0-9) [non-dim]"}, - /* 183 */ {"SFCRH", "Roughness length for heat [m]"}, - /* 184 */ {"SALBD", "Snow albedo (over snow cover area only) [%]"}, - /* 185 */ {"var185", "undefined"}, - /* 186 */ {"var186", "undefined"}, - /* 187 */ {"NDVI", "Normalized Difference Vegetation Index []"}, - /* 188 */ {"DRIP", "Canopy drip [Kg/m^2]"}, - /* 189 */ {"VBSALB", "Visible, black sky albedo [%]"}, - /* 190 */ {"VWSALB", "Visible, white sky albedo [%]"}, - /* 191 */ {"NBSALB", "Near IR, black sky albedo [%]"}, - /* 192 */ {"NWSALB", "Near IR, white sky albedo [%]"}, - /* 193 */ {"FRZR", "Freezing rain [kg/m^2]"}, - /* 194 */ {"FROZR", "Frozen rain [kg/m^2]"}, - /* 195 */ {"TSNOW", "Total snow [kg/m^2]"}, - /* 196 */ {"MTERH", "Model terrain height [m]"}, - /* 197 */ {"var197", "undefined"}, - /* 198 */ {"SBSNO", "Sublimation (evaporation from snow) [W/m^2]"}, - /* 199 */ {"EVBS", "Direct evaporation from bare soil [W/m^2]"}, - /* 200 */ {"EVCW", "Canopy water evaporation [W/m^2]"}, - /* 201 */ {"VTCIN", "Virtual temperature based convective inhibition [J/kg]"}, - /* 202 */ {"VTCAPE", "Virtual temperature based convective available pot. energy [J/Kg]"}, - /* 203 */ {"RSMIN", "Minimal stomatal resistance [s/m]"}, - /* 204 */ {"DSWRF", "Downward shortwave radiation flux [W/m^2]"}, - /* 205 */ {"DLWRF", "Downward longwave radiation flux [W/m^2]"}, - /* 206 */ {"VIL", "Vertically integrated liquid [Kg/m^2]"}, - /* 207 */ {"MSTAV", "Moisture availability [%]"}, - /* 208 */ {"SFEXC", "Exchange coefficient [(Kg/m^3)(m/s)]"}, - /* 209 */ {"var209", "undefined"}, - /* 210 */ {"TRANS", "Transpiration [W/m^2]"}, - /* 211 */ {"USWRF", "Upward short wave radiation flux [W/m^2]"}, - /* 212 */ {"ULWRF", "Upward long wave radiation flux [W/m^2]"}, - /* 213 */ {"var213", "undefined"}, - /* 214 */ {"var214", "undefined"}, - /* 215 */ {"var215", "undefined"}, - /* 216 */ {"var216", "undefined"}, - /* 217 */ {"var217", "undefined"}, - /* 218 */ {"var218", "undefined"}, - /* 219 */ {"WILT", "Wilting point [fraction]"}, - /* 220 */ {"FLDCP", "Field Capacity [fraction]"}, - /* 221 */ {"HPBL", "Planetary boundary layer height [m]"}, - /* 222 */ {"SLTYP", "Surface slope type [Index]"}, - /* 223 */ {"CNWAT", "Plant canopy surface water [Kg/m^2]"}, - /* 224 */ {"SOTYP", "Soil type [Index]"}, - /* 225 */ {"VGTYP", "Vegetation type [Index]"}, - /* 226 */ {"BMIXL", "Blackadars mixing length scale [m]"}, - /* 227 */ {"AMIXL", "Asymptotic mixing length scale [m]"}, - /* 228 */ {"PEVAP", "Potential evaporation [Kg/m^2]"}, - /* 229 */ {"SNOHF", "Snow phase-change heat flux [W/m^2]"}, - /* 230 */ {"SMREF", "Transpiration stress-onset (soil moisture) [fraction]"}, - /* 231 */ {"SMDRY", "Direct evaporation cease (soil moisture) [fraction]"}, - /* 232 */ {"var232", "undefined"}, - /* 233 */ {"var233", "undefined"}, - /* 234 */ {"BGRUN", "Subsurface runoff (baseflow) [Kg/m^2]"}, - /* 235 */ {"SSRUN", "Surface runoff (non-infiltrating) [Kg/m^2]"}, - /* 236 */ {"var236", "undefined"}, - /* 237 */ {"var237", "undefined"}, - /* 238 */ {"SNOWC", "Snow cover [%]"}, - /* 239 */ {"SNOT", "Snow temperature [K]"}, - /* 240 */ {"POROS", "Soil porosity [fraction]"}, - /* 241 */ {"SBT112", "Simulated brightness temp for GOES11, channel 2 [K]"}, - /* 242 */ {"SBT113", "Simulated brightness temp for GOES11, channel 3 [K]"}, - /* 243 */ {"SBT114", "Simulated brightness temp for GOES11, channel 4 [K]"}, - /* 244 */ {"SBT115", "Simulated brightness temp for GOES11, channel 5 [K]"}, - /* 245 */ {"var245", "undefined"}, - /* 246 */ {"RCS", "Solar parameter in canopy conductance [fraction]"}, - /* 247 */ {"RCT", "Temperature parameter in canopy conductance [fraction]"}, - /* 248 */ {"RCQ", "Humidity parameter in canopy conductance [fraction]"}, - /* 249 */ {"RCSOL", "Soil moisture parameter in canopy conductance [fraction]"}, - /* 250 */ {"var250", "undefined"}, - /* 251 */ {"var251", "undefined"}, - /* 252 */ {"CD", "Surface drag coefficient [non-dim]"}, - /* 253 */ {"FRICV", "Surface friction velocity [m/s]"}, - /* 254 */ {"RI", "Richardson number [non-dim]"}, - /* 255 */ {"var255", "undefined"}, + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"PRES", "Pressure [Pa]"}, + /* 2 */ {"PRMSL", "Pressure reduced to MSL [Pa]"}, + /* 3 */ {"PTEND", "Pressure tendency [Pa/s]"}, + /* 4 */ {"PVORT", "Pot. vorticity [km^2/kg/s]"}, + /* 5 */ {"ICAHT", "ICAO Standard Atmosphere Reference Height [M]"}, + /* 6 */ {"GP", "Geopotential [m^2/s^2]"}, + /* 7 */ {"HGT", "Geopotential height [gpm]"}, + /* 8 */ {"DIST", "Geometric height [m]"}, + /* 9 */ {"HSTDV", "Std dev of height [m]"}, + /* 10 */ {"TOZNE", "Total ozone [Dobson]"}, + /* 11 */ {"TMP", "Temp. [K]"}, + /* 12 */ {"VTMP", "Virtual temp. [K]"}, + /* 13 */ {"POT", "Potential temp. [K]"}, + /* 14 */ {"EPOT", "Pseudo-adiabatic pot. temp. [K]"}, + /* 15 */ {"TMAX", "Max. temp. [K]"}, + /* 16 */ {"TMIN", "Min. temp. [K]"}, + /* 17 */ {"DPT", "Dew point temp. [K]"}, + /* 18 */ {"DEPR", "Dew point depression [K]"}, + /* 19 */ {"LAPR", "Lapse rate [K/m]"}, + /* 20 */ {"VIS", "Visibility [m]"}, + /* 21 */ {"RDSP1", "Radar spectra (1) [non-dim]"}, + /* 22 */ {"RDSP2", "Radar spectra (2) [non-dim]"}, + /* 23 */ {"RDSP3", "Radar spectra (3) [non-dim]"}, + /* 24 */ {"PLI", "Parcel lifted index (to 500 hPa) [K]"}, + /* 25 */ {"TMPA", "Temp. anomaly [K]"}, + /* 26 */ {"PRESA", "Pressure anomaly [Pa]"}, + /* 27 */ {"GPA", "Geopotential height anomaly [gpm]"}, + /* 28 */ {"WVSP1", "Wave spectra (1) [non-dim]"}, + /* 29 */ {"WVSP2", "Wave spectra (2) [non-dim]"}, + /* 30 */ {"WVSP3", "Wave spectra (3) [non-dim]"}, + /* 31 */ {"WDIR", "Wind direction [deg]"}, + /* 32 */ {"WIND", "Wind speed [m/s]"}, + /* 33 */ {"UGRD", "u wind [m/s]"}, + /* 34 */ {"VGRD", "v wind [m/s]"}, + /* 35 */ {"STRM", "Stream function [m^2/s]"}, + /* 36 */ {"VPOT", "Velocity potential [m^2/s]"}, + /* 37 */ {"MNTSF", "Montgomery stream function [m^2/s^2]"}, + /* 38 */ {"SGCVV", "Sigma coord. vertical velocity [/s]"}, + /* 39 */ {"VVEL", "Pressure vertical velocity [Pa/s]"}, + /* 40 */ {"DZDT", "Geometric vertical velocity [m/s]"}, + /* 41 */ {"ABSV", "Absolute vorticity [/s]"}, + /* 42 */ {"ABSD", "Absolute divergence [/s]"}, + /* 43 */ {"RELV", "Relative vorticity [/s]"}, + /* 44 */ {"RELD", "Relative divergence [/s]"}, + /* 45 */ {"VUCSH", "Vertical u shear [/s]"}, + /* 46 */ {"VVCSH", "Vertical v shear [/s]"}, + /* 47 */ {"DIRC", "Direction of current [deg]"}, + /* 48 */ {"SPC", "Speed of current [m/s]"}, + /* 49 */ {"UOGRD", "u of current [m/s]"}, + /* 50 */ {"VOGRD", "v of current [m/s]"}, + /* 51 */ {"SPFH", "Specific humidity [kg/kg]"}, + /* 52 */ {"RH", "Relative humidity [%]"}, + /* 53 */ {"MIXR", "Humidity mixing ratio [kg/kg]"}, + /* 54 */ {"PWAT", "Precipitable water [kg/m^2]"}, + /* 55 */ {"VAPP", "Vapor pressure [Pa]"}, + /* 56 */ {"SATD", "Saturation deficit [Pa]"}, + /* 57 */ {"EVP", "Evaporation [kg/m^2]"}, + /* 58 */ {"CICE", "Cloud Ice [kg/m^2]"}, + /* 59 */ {"PRATE", "Precipitation rate [kg/m^2/s]"}, + /* 60 */ {"TSTM", "Thunderstorm probability [%]"}, + /* 61 */ {"APCP", "Total precipitation [kg/m^2]"}, + /* 62 */ {"NCPCP", "Large scale precipitation [kg/m^2]"}, + /* 63 */ {"ACPCP", "Convective precipitation [kg/m^2]"}, + /* 64 */ {"SRWEQ", "Snowfall rate water equiv. [kg/m^2/s]"}, + /* 65 */ {"WEASD", "Accum. snow [kg/m^2]"}, + /* 66 */ {"SNOD", "Snow depth [m]"}, + /* 67 */ {"MIXHT", "Mixed layer depth [m]"}, + /* 68 */ {"TTHDP", "Transient thermocline depth [m]"}, + /* 69 */ {"MTHD", "Main thermocline depth [m]"}, + /* 70 */ {"MTHA", "Main thermocline anomaly [m]"}, + /* 71 */ {"TCDC", "Total cloud cover [%]"}, + /* 72 */ {"CDCON", "Convective cloud cover [%]"}, + /* 73 */ {"LCDC", "Low level cloud cover [%]"}, + /* 74 */ {"MCDC", "Mid level cloud cover [%]"}, + /* 75 */ {"HCDC", "High level cloud cover [%]"}, + /* 76 */ {"CWAT", "Cloud water [kg/m^2]"}, + /* 77 */ {"BLI", "Best lifted index (to 500 hPa) [K]"}, + /* 78 */ {"SNOC", "Convective snow [kg/m^2]"}, + /* 79 */ {"SNOL", "Large scale snow [kg/m^2]"}, + /* 80 */ {"WTMP", "Water temp. [K]"}, + /* 81 */ {"LAND", "Land cover (land=1;sea=0) [fraction]"}, + /* 82 */ {"DSLM", "Deviation of sea level from mean [m]"}, + /* 83 */ {"SFCR", "Surface roughness [m]"}, + /* 84 */ {"ALBDO", "Albedo [%]"}, + /* 85 */ {"TSOIL", "Soil temp. [K]"}, + /* 86 */ {"SOILM", "Soil moisture content [kg/m^2]"}, + /* 87 */ {"VEG", "Vegetation [%]"}, + /* 88 */ {"SALTY", "Salinity [kg/kg]"}, + /* 89 */ {"DEN", "Density [kg/m^3]"}, + /* 90 */ {"WATR", "Water runoff [kg/m^2]"}, + /* 91 */ {"ICEC", "Ice concentration (ice=1;no ice=0) [fraction]"}, + /* 92 */ {"ICETK", "Ice thickness [m]"}, + /* 93 */ {"DICED", "Direction of ice drift [deg]"}, + /* 94 */ {"SICED", "Speed of ice drift [m/s]"}, + /* 95 */ {"UICE", "u of ice drift [m/s]"}, + /* 96 */ {"VICE", "v of ice drift [m/s]"}, + /* 97 */ {"ICEG", "Ice growth rate [m/s]"}, + /* 98 */ {"ICED", "Ice divergence [/s]"}, + /* 99 */ {"SNOM", "Snow melt [kg/m^2]"}, + /* 100 */ {"HTSGW", "Sig height of wind waves and swell [m]"}, + /* 101 */ {"WVDIR", "Direction of wind waves [deg]"}, + /* 102 */ {"WVHGT", "Sig height of wind waves [m]"}, + /* 103 */ {"WVPER", "Mean period of wind waves [s]"}, + /* 104 */ {"SWDIR", "Direction of swell waves [deg]"}, + /* 105 */ {"SWELL", "Sig height of swell waves [m]"}, + /* 106 */ {"SWPER", "Mean period of swell waves [s]"}, + /* 107 */ {"DIRPW", "Primary wave direction [deg]"}, + /* 108 */ {"PERPW", "Primary wave mean period [s]"}, + /* 109 */ {"DIRSW", "Secondary wave direction [deg]"}, + /* 110 */ {"PERSW", "Secondary wave mean period [s]"}, + /* 111 */ {"NSWRS", "Net short wave (surface) [W/m^2]"}, + /* 112 */ {"NLWRS", "Net long wave (surface) [W/m^2]"}, + /* 113 */ {"NSWRT", "Net short wave (top) [W/m^2]"}, + /* 114 */ {"NLWRT", "Net long wave (top) [W/m^2]"}, + /* 115 */ {"LWAVR", "Long wave [W/m^2]"}, + /* 116 */ {"SWAVR", "Short wave [W/m^2]"}, + /* 117 */ {"GRAD", "Global radiation [W/m^2]"}, + /* 118 */ {"BRTMP", "Brightness temperature [K]"}, + /* 119 */ {"LWRAD", "Radiance with respect to wave no. [W/m/sr]"}, + /* 120 */ {"SWRAD", "Radiance with respect ot wave len. [W/m^3/sr]"}, + /* 121 */ {"LHTFL", "Latent heat flux [W/m^2]"}, + /* 122 */ {"SHTFL", "Sensible heat flux [W/m^2]"}, + /* 123 */ {"BLYDP", "Boundary layer dissipation [W/m^2]"}, + /* 124 */ {"UFLX", "Zonal momentum flux [N/m^2]"}, + /* 125 */ {"VFLX", "Meridional momentum flux [N/m^2]"}, + /* 126 */ {"WMIXE", "Wind mixing energy [J]"}, + /* 127 */ {"IMGD", "Image data []"}, + /* 128 */ {"var128", "undefined"}, + /* 129 */ {"var129", "undefined"}, + /* 130 */ {"var130", "undefined"}, + /* 131 */ {"var131", "undefined"}, + /* 132 */ {"var132", "undefined"}, + /* 133 */ {"var133", "undefined"}, + /* 134 */ {"var134", "undefined"}, + /* 135 */ {"var135", "undefined"}, + /* 136 */ {"var136", "undefined"}, + /* 137 */ {"var137", "undefined"}, + /* 138 */ {"var138", "undefined"}, + /* 139 */ {"var139", "undefined"}, + /* 140 */ {"var140", "undefined"}, + /* 141 */ {"var141", "undefined"}, + /* 142 */ {"var142", "undefined"}, + /* 143 */ {"var143", "undefined"}, + /* 144 */ {"SOILW", "Volumetric soil moisture (frozen + liquid) [fraction]"}, + /* 145 */ {"PEVPR", "Potential evaporation rate [W/m^2]"}, + /* 146 */ {"VEGT", "Vegetation canopy temperature [K]"}, + /* 147 */ {"BARET", "Bare soil surface skin temperature [K]"}, + /* 148 */ {"AVSFT", "Average surface skin temperature [K]"}, + /* 149 */ {"RADT", "Effective radiative skin temperature [K]"}, + /* 150 */ {"SSTOR", "Surface water storage [Kg/m^2]"}, + /* 151 */ {"LSOIL", "Liquid soil moisture content (non-frozen) [Kg/m^2]"}, + /* 152 */ {"EWATR", "Open water evaporation (standing water) [W/m^2]"}, + /* 153 */ {"NCRAIN", "Number concentration for rain particles [-]"}, + /* 154 */ {"LSPA", "Land Surface Precipitation Accumulation [kg/m^2]"}, + /* 155 */ {"GFLUX", "Ground Heat Flux [W/m^2]"}, + /* 156 */ {"CIN", "Convective inhibition [J/Kg]"}, + /* 157 */ {"CAPE", "Convective available potential energy [J/Kg]"}, + /* 158 */ {"TKE", "Turbulent Kinetic Energy [J/Kg]"}, + /* 159 */ {"MXSALB", "Maximum snow albedo [%]"}, + /* 160 */ {"SOILL", "Liquid volumetric soil moisture (non-frozen) [fraction]"}, + /* 161 */ {"ASNOW", "Frozen precipitation (e.g. snowfall) [Kg/m^2]"}, + /* 162 */ {"ARAIN", "Liquid precipitation (rainfall) [Kg/m^2]"}, + /* 163 */ {"GWREC", "Groundwater recharge [Kg/m^2]"}, + /* 164 */ {"QREC", "Flood plain recharge [Kg/m^2]"}, + /* 165 */ {"SNOWT", "Snow temperature, depth-avg [K]"}, + /* 166 */ {"VBDSF", "Visible beam downward solar flux [W/m^2]"}, + /* 167 */ {"VDDSF", "Visible diffuse downward solar flux [W/m^2]"}, + /* 168 */ {"NBDSF", "Near IR beam downward solar flux [W/m^2]"}, + /* 169 */ {"NDDSF", "Near IR diffuse downward solar flux [W/m^2]"}, + /* 170 */ {"SNFALB", "Snow-free albedo [%]"}, + /* 171 */ {"RLYRS", "Number of soil layers in root zone [non-dim]"}, + /* 172 */ {"MFLX", "Momentum flux [N/m^2]"}, + /* 173 */ {"var173", "undefined"}, + /* 174 */ {"var174", "undefined"}, + /* 175 */ {"var175", "undefined"}, + /* 176 */ {"NLAT", "Latitude (-90 to +90) [deg]"}, + /* 177 */ {"ELON", "East longitude (0-360) [deg]"}, + /* 178 */ {"FLDCAP", "Field capacity [fraction]"}, + /* 179 */ {"ACOND", "Aerodynamic conductance [m/s]"}, + /* 180 */ {"SNOAG", "Snow age [s]"}, + /* 181 */ {"CCOND", "Canopy conductance [m/s]"}, + /* 182 */ {"LAI", "Leaf area index (0-9) [non-dim]"}, + /* 183 */ {"SFCRH", "Roughness length for heat [m]"}, + /* 184 */ {"SALBD", "Snow albedo (over snow cover area only) [%]"}, + /* 185 */ {"var185", "undefined"}, + /* 186 */ {"var186", "undefined"}, + /* 187 */ {"NDVI", "Normalized Difference Vegetation Index []"}, + /* 188 */ {"DRIP", "Canopy drip [Kg/m^2]"}, + /* 189 */ {"VBSALB", "Visible, black sky albedo [%]"}, + /* 190 */ {"VWSALB", "Visible, white sky albedo [%]"}, + /* 191 */ {"NBSALB", "Near IR, black sky albedo [%]"}, + /* 192 */ {"NWSALB", "Near IR, white sky albedo [%]"}, + /* 193 */ {"FRZR", "Freezing rain [kg/m^2]"}, + /* 194 */ {"FROZR", "Frozen rain [kg/m^2]"}, + /* 195 */ {"TSNOW", "Total snow [kg/m^2]"}, + /* 196 */ {"MTERH", "Model terrain height [m]"}, + /* 197 */ {"var197", "undefined"}, + /* 198 */ {"SBSNO", "Sublimation (evaporation from snow) [W/m^2]"}, + /* 199 */ {"EVBS", "Direct evaporation from bare soil [W/m^2]"}, + /* 200 */ {"EVCW", "Canopy water evaporation [W/m^2]"}, + /* 201 */ {"VTCIN", "Virtual temperature based convective inhibition [J/kg]"}, + /* 202 */ {"VTCAPE", "Virtual temperature based convective available pot. energy [J/Kg]"}, + /* 203 */ {"RSMIN", "Minimal stomatal resistance [s/m]"}, + /* 204 */ {"DSWRF", "Downward shortwave radiation flux [W/m^2]"}, + /* 205 */ {"DLWRF", "Downward longwave radiation flux [W/m^2]"}, + /* 206 */ {"VIL", "Vertically integrated liquid [Kg/m^2]"}, + /* 207 */ {"MSTAV", "Moisture availability [%]"}, + /* 208 */ {"SFEXC", "Exchange coefficient [(Kg/m^3)(m/s)]"}, + /* 209 */ {"var209", "undefined"}, + /* 210 */ {"TRANS", "Transpiration [W/m^2]"}, + /* 211 */ {"USWRF", "Upward short wave radiation flux [W/m^2]"}, + /* 212 */ {"ULWRF", "Upward long wave radiation flux [W/m^2]"}, + /* 213 */ {"var213", "undefined"}, + /* 214 */ {"var214", "undefined"}, + /* 215 */ {"var215", "undefined"}, + /* 216 */ {"var216", "undefined"}, + /* 217 */ {"var217", "undefined"}, + /* 218 */ {"var218", "undefined"}, + /* 219 */ {"WILT", "Wilting point [fraction]"}, + /* 220 */ {"FLDCP", "Field Capacity [fraction]"}, + /* 221 */ {"HPBL", "Planetary boundary layer height [m]"}, + /* 222 */ {"SLTYP", "Surface slope type [Index]"}, + /* 223 */ {"CNWAT", "Plant canopy surface water [Kg/m^2]"}, + /* 224 */ {"SOTYP", "Soil type [Index]"}, + /* 225 */ {"VGTYP", "Vegetation type [Index]"}, + /* 226 */ {"BMIXL", "Blackadars mixing length scale [m]"}, + /* 227 */ {"AMIXL", "Asymptotic mixing length scale [m]"}, + /* 228 */ {"PEVAP", "Potential evaporation [Kg/m^2]"}, + /* 229 */ {"SNOHF", "Snow phase-change heat flux [W/m^2]"}, + /* 230 */ {"SMREF", "Transpiration stress-onset (soil moisture) [fraction]"}, + /* 231 */ {"SMDRY", "Direct evaporation cease (soil moisture) [fraction]"}, + /* 232 */ {"var232", "undefined"}, + /* 233 */ {"var233", "undefined"}, + /* 234 */ {"BGRUN", "Subsurface runoff (baseflow) [Kg/m^2]"}, + /* 235 */ {"SSRUN", "Surface runoff (non-infiltrating) [Kg/m^2]"}, + /* 236 */ {"var236", "undefined"}, + /* 237 */ {"var237", "undefined"}, + /* 238 */ {"SNOWC", "Snow cover [%]"}, + /* 239 */ {"SNOT", "Snow temperature [K]"}, + /* 240 */ {"POROS", "Soil porosity [fraction]"}, + /* 241 */ {"SBT112", "Simulated brightness temp for GOES11, channel 2 [K]"}, + /* 242 */ {"SBT113", "Simulated brightness temp for GOES11, channel 3 [K]"}, + /* 243 */ {"SBT114", "Simulated brightness temp for GOES11, channel 4 [K]"}, + /* 244 */ {"SBT115", "Simulated brightness temp for GOES11, channel 5 [K]"}, + /* 245 */ {"var245", "undefined"}, + /* 246 */ {"RCS", "Solar parameter in canopy conductance [fraction]"}, + /* 247 */ {"RCT", "Temperature parameter in canopy conductance [fraction]"}, + /* 248 */ {"RCQ", "Humidity parameter in canopy conductance [fraction]"}, + /* 249 */ {"RCSOL", "Soil moisture parameter in canopy conductance [fraction]"}, + /* 250 */ {"var250", "undefined"}, + /* 251 */ {"var251", "undefined"}, + /* 252 */ {"CD", "Surface drag coefficient [non-dim]"}, + /* 253 */ {"FRICV", "Surface friction velocity [m/s]"}, + /* 254 */ {"RI", "Richardson number [non-dim]"}, + /* 255 */ {"var255", "undefined"}, }; const struct ParmTable parm_table_nceptab_133[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"PRES", "Pressure [Pa]"}, - /* 2 */ {"PRMSL", "Pressure reduced to MSL [Pa]"}, - /* 3 */ {"PTEND", "Pressure tendency [Pa/s]"}, - /* 4 */ {"PVORT", "Pot. vorticity [km^2/kg/s]"}, - /* 5 */ {"ICAHT", "ICAO Standard Atmosphere Reference Height [M]"}, - /* 6 */ {"GP", "Geopotential [m^2/s^2]"}, - /* 7 */ {"HGT", "Geopotential height [gpm]"}, - /* 8 */ {"DIST", "Geometric height [m]"}, - /* 9 */ {"HSTDV", "Std dev of height [m]"}, - /* 10 */ {"TOZNE", "Total ozone [Dobson]"}, - /* 11 */ {"TMP", "Temp. [K]"}, - /* 12 */ {"VTMP", "Virtual temp. [K]"}, - /* 13 */ {"POT", "Potential temp. [K]"}, - /* 14 */ {"EPOT", "Pseudo-adiabatic pot. temp. [K]"}, - /* 15 */ {"TMAX", "Max. temp. [K]"}, - /* 16 */ {"TMIN", "Min. temp. [K]"}, - /* 17 */ {"DPT", "Dew point temp. [K]"}, - /* 18 */ {"DEPR", "Dew point depression [K]"}, - /* 19 */ {"LAPR", "Lapse rate [K/m]"}, - /* 20 */ {"VIS", "Visibility [m]"}, - /* 21 */ {"RDSP1", "Radar spectra (1) [non-dim]"}, - /* 22 */ {"RDSP2", "Radar spectra (2) [non-dim]"}, - /* 23 */ {"RDSP3", "Radar spectra (3) [non-dim]"}, - /* 24 */ {"PLI", "Parcel lifted index (to 500 hPa) [K]"}, - /* 25 */ {"TMPA", "Temp. anomaly [K]"}, - /* 26 */ {"PRESA", "Pressure anomaly [Pa]"}, - /* 27 */ {"GPA", "Geopotential height anomaly [gpm]"}, - /* 28 */ {"WVSP1", "Wave spectra (1) [non-dim]"}, - /* 29 */ {"WVSP2", "Wave spectra (2) [non-dim]"}, - /* 30 */ {"WVSP3", "Wave spectra (3) [non-dim]"}, - /* 31 */ {"WDIR", "Wind direction [deg]"}, - /* 32 */ {"WIND", "Wind speed [m/s]"}, - /* 33 */ {"UGRD", "u wind [m/s]"}, - /* 34 */ {"VGRD", "v wind [m/s]"}, - /* 35 */ {"STRM", "Stream function [m^2/s]"}, - /* 36 */ {"VPOT", "Velocity potential [m^2/s]"}, - /* 37 */ {"MNTSF", "Montgomery stream function [m^2/s^2]"}, - /* 38 */ {"SGCVV", "Sigma coord. vertical velocity [/s]"}, - /* 39 */ {"VVEL", "Pressure vertical velocity [Pa/s]"}, - /* 40 */ {"DZDT", "Geometric vertical velocity [m/s]"}, - /* 41 */ {"ABSV", "Absolute vorticity [/s]"}, - /* 42 */ {"ABSD", "Absolute divergence [/s]"}, - /* 43 */ {"RELV", "Relative vorticity [/s]"}, - /* 44 */ {"RELD", "Relative divergence [/s]"}, - /* 45 */ {"VUCSH", "Vertical u shear [/s]"}, - /* 46 */ {"VVCSH", "Vertical v shear [/s]"}, - /* 47 */ {"DIRC", "Direction of current [deg]"}, - /* 48 */ {"SPC", "Speed of current [m/s]"}, - /* 49 */ {"UOGRD", "u of current [m/s]"}, - /* 50 */ {"VOGRD", "v of current [m/s]"}, - /* 51 */ {"SPFH", "Specific humidity [kg/kg]"}, - /* 52 */ {"RH", "Relative humidity [%]"}, - /* 53 */ {"MIXR", "Humidity mixing ratio [kg/kg]"}, - /* 54 */ {"PWAT", "Precipitable water [kg/m^2]"}, - /* 55 */ {"VAPP", "Vapor pressure [Pa]"}, - /* 56 */ {"SATD", "Saturation deficit [Pa]"}, - /* 57 */ {"EVP", "Evaporation [kg/m^2]"}, - /* 58 */ {"CICE", "Cloud Ice [kg/m^2]"}, - /* 59 */ {"PRATE", "Precipitation rate [kg/m^2/s]"}, - /* 60 */ {"TSTM", "Thunderstorm probability [%]"}, - /* 61 */ {"APCP", "Total precipitation [kg/m^2]"}, - /* 62 */ {"NCPCP", "Large scale precipitation [kg/m^2]"}, - /* 63 */ {"ACPCP", "Convective precipitation [kg/m^2]"}, - /* 64 */ {"SRWEQ", "Snowfall rate water equiv. [kg/m^2/s]"}, - /* 65 */ {"WEASD", "Accum. snow [kg/m^2]"}, - /* 66 */ {"SNOD", "Snow depth [m]"}, - /* 67 */ {"MIXHT", "Mixed layer depth [m]"}, - /* 68 */ {"TTHDP", "Transient thermocline depth [m]"}, - /* 69 */ {"MTHD", "Main thermocline depth [m]"}, - /* 70 */ {"MTHA", "Main thermocline anomaly [m]"}, - /* 71 */ {"TCDC", "Total cloud cover [%]"}, - /* 72 */ {"CDCON", "Convective cloud cover [%]"}, - /* 73 */ {"LCDC", "Low level cloud cover [%]"}, - /* 74 */ {"MCDC", "Mid level cloud cover [%]"}, - /* 75 */ {"HCDC", "High level cloud cover [%]"}, - /* 76 */ {"CWAT", "Cloud water [kg/m^2]"}, - /* 77 */ {"BLI", "Best lifted index (to 500 hPa) [K]"}, - /* 78 */ {"SNOC", "Convective snow [kg/m^2]"}, - /* 79 */ {"SNOL", "Large scale snow [kg/m^2]"}, - /* 80 */ {"WTMP", "Water temp. [K]"}, - /* 81 */ {"LAND", "Land-sea coverage (land=1;sea=0) [fraction]"}, - /* 82 */ {"DSLM", "Deviation of sea level from mean [m]"}, - /* 83 */ {"SFCR", "Surface roughness [m]"}, - /* 84 */ {"ALBDO", "Albedo [%]"}, - /* 85 */ {"TSOIL", "Soil temp. [K]"}, - /* 86 */ {"SOILM", "Soil moisture content [kg/m^2]"}, - /* 87 */ {"VEG", "Vegetation [%]"}, - /* 88 */ {"SALTY", "Salinity [kg/kg]"}, - /* 89 */ {"DEN", "Density [kg/m^3]"}, - /* 90 */ {"WATR", "Water runoff [kg/m^2]"}, - /* 91 */ {"ICEC", "Ice concentration (ice=1;no ice=0) [fraction]"}, - /* 92 */ {"ICETK", "Ice thickness [m]"}, - /* 93 */ {"DICED", "Direction of ice drift [deg]"}, - /* 94 */ {"SICED", "Speed of ice drift [m/s]"}, - /* 95 */ {"UICE", "u of ice drift [m/s]"}, - /* 96 */ {"VICE", "v of ice drift [m/s]"}, - /* 97 */ {"ICEG", "Ice growth rate [m/s]"}, - /* 98 */ {"ICED", "Ice divergence [/s]"}, - /* 99 */ {"SNOM", "Snow melt [kg/m^2]"}, - /* 100 */ {"HTSGW", "Sig height of wind waves and swell [m]"}, - /* 101 */ {"WVDIR", "Direction of wind waves [deg]"}, - /* 102 */ {"WVHGT", "Sig height of wind waves [m]"}, - /* 103 */ {"WVPER", "Mean period of wind waves [s]"}, - /* 104 */ {"SWDIR", "Direction of swell waves [deg]"}, - /* 105 */ {"SWELL", "Sig height of swell waves [m]"}, - /* 106 */ {"SWPER", "Mean period of swell waves [s]"}, - /* 107 */ {"DIRPW", "Primary wave direction [deg]"}, - /* 108 */ {"PERPW", "Primary wave mean period [s]"}, - /* 109 */ {"DIRSW", "Secondary wave direction [deg]"}, - /* 110 */ {"PERSW", "Secondary wave mean period [s]"}, - /* 111 */ {"NSWRS", "Net short wave (surface) [W/m^2]"}, - /* 112 */ {"NLWRS", "Net long wave (surface) [W/m^2]"}, - /* 113 */ {"NSWRT", "Net short wave (top) [W/m^2]"}, - /* 114 */ {"NLWRT", "Net long wave (top) [W/m^2]"}, - /* 115 */ {"LWAVR", "Long wave [W/m^2]"}, - /* 116 */ {"SWAVR", "Short wave [W/m^2]"}, - /* 117 */ {"GRAD", "Global radiation [W/m^2]"}, - /* 118 */ {"BRTMP", "Brightness temperature [K]"}, - /* 119 */ {"LWRAD", "Radiance with respect to wave no. [W/m/sr]"}, - /* 120 */ {"SWRAD", "Radiance with respect ot wave len. [W/m^3/sr]"}, - /* 121 */ {"LHTFL", "Latent heat flux [W/m^2]"}, - /* 122 */ {"SHTFL", "Sensible heat flux [W/m^2]"}, - /* 123 */ {"BLYDP", "Boundary layer dissipation [W/m^2]"}, - /* 124 */ {"UFLX", "Zonal momentum flux [N/m^2]"}, - /* 125 */ {"VFLX", "Meridional momentum flux [N/m^2]"}, - /* 126 */ {"WMIXE", "Wind mixing energy [J]"}, - /* 127 */ {"IMGD", "Image data []"}, - /* 128 */ {"var128", "undefined"}, - /* 129 */ {"var129", "undefined"}, - /* 130 */ {"var130", "undefined"}, - /* 131 */ {"var131", "undefined"}, - /* 132 */ {"var132", "undefined"}, - /* 133 */ {"var133", "undefined"}, - /* 134 */ {"var134", "undefined"}, - /* 135 */ {"var135", "undefined"}, - /* 136 */ {"var136", "undefined"}, - /* 137 */ {"var137", "undefined"}, - /* 138 */ {"var138", "undefined"}, - /* 139 */ {"POZT", "Ozone production from T term"}, - /* 140 */ {"var140", "undefined"}, - /* 141 */ {"var141", "undefined"}, - /* 142 */ {"var142", "undefined"}, - /* 143 */ {"var143", "undefined"}, - /* 144 */ {"var144", "undefined"}, - /* 145 */ {"var145", "undefined"}, - /* 146 */ {"var146", "undefined"}, - /* 147 */ {"var147", "undefined"}, - /* 148 */ {"var148", "undefined"}, - /* 149 */ {"var149", "undefined"}, - /* 150 */ {"var150", "undefined"}, - /* 151 */ {"var151", "undefined"}, - /* 152 */ {"var152", "undefined"}, - /* 153 */ {"var153", "undefined"}, - /* 154 */ {"OMGALF", "omega divided by density"}, - /* 155 */ {"var155", "undefined"}, - /* 156 */ {"var156", "undefined"}, - /* 157 */ {"var157", "undefined"}, - /* 158 */ {"var158", "undefined"}, - /* 159 */ {"var159", "undefined"}, - /* 160 */ {"var160", "undefined"}, - /* 161 */ {"var161", "undefined"}, - /* 162 */ {"var162", "undefined"}, - /* 163 */ {"var163", "undefined"}, - /* 164 */ {"COVZZ", "Covariance between u and u"}, - /* 165 */ {"COVMM", "Covariance between v and v"}, - /* 166 */ {"COVQZ", "Covariance between q and u"}, - /* 167 */ {"COVQM", "Covariance between q and v"}, - /* 168 */ {"COVTVV", "Covariance between T and omega"}, - /* 169 */ {"COVQVV", "Covariance between q and omega"}, - /* 170 */ {"var170", "undefined"}, - /* 171 */ {"var171", "undefined"}, - /* 172 */ {"var172", "undefined"}, - /* 173 */ {"LRGMR", "Large scale moistening rate"}, - /* 174 */ {"VDFOZ", "Ozone vertical diffusion"}, - /* 175 */ {"POZ", "Ozone production"}, - /* 176 */ {"AMSRE9", "Sim brightness tmp for AMSRE on Aqua channel 9 [K]"}, - /* 177 */ {"AMSRE10", "Sim brightness tmp for AMSRE on Aqua channel 10 [K]"}, - /* 178 */ {"AMSRE11", "Sim brightness tmp for AMSRE on Aqua channel 11 [K]"}, - /* 179 */ {"AMSRE12", "Sim brightness tmp for AMSRE on Aqua channel 12 [K]"}, - /* 180 */ {"var180", "undefined"}, - /* 181 */ {"GWDU", "Gravity wave drag u acceleration"}, - /* 182 */ {"GWDV", "Gravity wave drag v acceleration"}, - /* 183 */ {"CNVU", "Convective u momentum mixing acceleration"}, - /* 184 */ {"CNVV", "Convective v momentum mixing acceleration"}, - /* 185 */ {"AKHS", "Sfc exchange coeff for T and Q divided by delta z"}, - /* 186 */ {"AKMS", "Sfc exchange coeff for U and V divided by delta z"}, - /* 187 */ {"var187", "undefined"}, - /* 188 */ {"TOZ", "Ozone tendency"}, - /* 189 */ {"var189", "undefined"}, - /* 190 */ {"var190", "undefined"}, - /* 191 */ {"SUNSD", "Sunshine duration [s]"}, - /* 192 */ {"MOSF", "Meridional overturning stream function [10^6m^3/s]"}, - /* 193 */ {"EPSR", "Radiative emiissivity"}, - /* 194 */ {"var194", "undefined"}, - /* 195 */ {"QZ0", "q at top of viscous sublayer"}, - /* 196 */ {"CNGWDU", "Convective gravity wave drag zonal acceleration"}, - /* 197 */ {"CNGWDV", "Convective gravity wave drag meridional acceleration"}, - /* 198 */ {"var198", "undefined"}, - /* 199 */ {"var199", "undefined"}, - /* 200 */ {"var200", "undefined"}, - /* 201 */ {"THZ0", "Theta at top of viscous sublayer"}, - /* 202 */ {"CNVUMF", "Convective updraft mass flux"}, - /* 203 */ {"COVPSPS", "Covariance between psfc and psfc"}, - /* 204 */ {"QMAX", "Maximum specific humidity at 2m"}, - /* 205 */ {"QMIN", "Minimum specific humidity at 2m"}, - /* 206 */ {"COVQQ", "Covariance between q and q"}, - /* 207 */ {"var207", "undefined"}, - /* 208 */ {"var208", "undefined"}, - /* 209 */ {"CNVDMF", "Convective downdraft mass flux"}, - /* 210 */ {"var210", "undefined"}, - /* 211 */ {"var211", "undefined"}, - /* 212 */ {"var212", "undefined"}, - /* 213 */ {"var213", "undefined"}, - /* 214 */ {"var214", "undefined"}, - /* 215 */ {"var215", "undefined"}, - /* 216 */ {"var216", "undefined"}, - /* 217 */ {"var217", "undefined"}, - /* 218 */ {"var218", "undefined"}, - /* 219 */ {"CNVDEMF", "Convective detrainment mass flux"}, - /* 220 */ {"COVVVVV", "Covariance between omega and omega"}, - /* 221 */ {"var221", "undefined"}, - /* 222 */ {"var222", "undefined"}, - /* 223 */ {"var223", "undefined"}, - /* 224 */ {"var224", "undefined"}, - /* 225 */ {"var225", "undefined"}, - /* 226 */ {"var226", "undefined"}, - /* 227 */ {"var227", "undefined"}, - /* 228 */ {"var228", "undefined"}, - /* 229 */ {"var229", "undefined"}, - /* 230 */ {"var230", "undefined"}, - /* 231 */ {"var231", "undefined"}, - /* 232 */ {"var232", "undefined"}, - /* 233 */ {"var233", "undefined"}, - /* 234 */ {"COVTT", "Covariance between T and T"}, - /* 235 */ {"var235", "undefined"}, - /* 236 */ {"WTEND", "Tendency of vertical velocity"}, - /* 237 */ {"var237", "undefined"}, - /* 238 */ {"var238", "undefined"}, - /* 239 */ {"POZO", "Ozone production from col ozone term"}, - /* 240 */ {"var240", "undefined"}, - /* 241 */ {"var241", "undefined"}, - /* 242 */ {"var242", "undefined"}, - /* 243 */ {"var243", "undefined"}, - /* 244 */ {"var244", "undefined"}, - /* 245 */ {"var245", "undefined"}, - /* 246 */ {"var246", "undefined"}, - /* 247 */ {"var247", "undefined"}, - /* 248 */ {"var248", "undefined"}, - /* 249 */ {"var249", "undefined"}, - /* 250 */ {"var250", "undefined"}, - /* 251 */ {"var251", "undefined"}, - /* 252 */ {"var252", "undefined"}, - /* 253 */ {"var253", "undefined"}, - /* 254 */ {"var254", "undefined"}, - /* 255 */ {"var255", "undefined"}, + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"PRES", "Pressure [Pa]"}, + /* 2 */ {"PRMSL", "Pressure reduced to MSL [Pa]"}, + /* 3 */ {"PTEND", "Pressure tendency [Pa/s]"}, + /* 4 */ {"PVORT", "Pot. vorticity [km^2/kg/s]"}, + /* 5 */ {"ICAHT", "ICAO Standard Atmosphere Reference Height [M]"}, + /* 6 */ {"GP", "Geopotential [m^2/s^2]"}, + /* 7 */ {"HGT", "Geopotential height [gpm]"}, + /* 8 */ {"DIST", "Geometric height [m]"}, + /* 9 */ {"HSTDV", "Std dev of height [m]"}, + /* 10 */ {"TOZNE", "Total ozone [Dobson]"}, + /* 11 */ {"TMP", "Temp. [K]"}, + /* 12 */ {"VTMP", "Virtual temp. [K]"}, + /* 13 */ {"POT", "Potential temp. [K]"}, + /* 14 */ {"EPOT", "Pseudo-adiabatic pot. temp. [K]"}, + /* 15 */ {"TMAX", "Max. temp. [K]"}, + /* 16 */ {"TMIN", "Min. temp. [K]"}, + /* 17 */ {"DPT", "Dew point temp. [K]"}, + /* 18 */ {"DEPR", "Dew point depression [K]"}, + /* 19 */ {"LAPR", "Lapse rate [K/m]"}, + /* 20 */ {"VIS", "Visibility [m]"}, + /* 21 */ {"RDSP1", "Radar spectra (1) [non-dim]"}, + /* 22 */ {"RDSP2", "Radar spectra (2) [non-dim]"}, + /* 23 */ {"RDSP3", "Radar spectra (3) [non-dim]"}, + /* 24 */ {"PLI", "Parcel lifted index (to 500 hPa) [K]"}, + /* 25 */ {"TMPA", "Temp. anomaly [K]"}, + /* 26 */ {"PRESA", "Pressure anomaly [Pa]"}, + /* 27 */ {"GPA", "Geopotential height anomaly [gpm]"}, + /* 28 */ {"WVSP1", "Wave spectra (1) [non-dim]"}, + /* 29 */ {"WVSP2", "Wave spectra (2) [non-dim]"}, + /* 30 */ {"WVSP3", "Wave spectra (3) [non-dim]"}, + /* 31 */ {"WDIR", "Wind direction [deg]"}, + /* 32 */ {"WIND", "Wind speed [m/s]"}, + /* 33 */ {"UGRD", "u wind [m/s]"}, + /* 34 */ {"VGRD", "v wind [m/s]"}, + /* 35 */ {"STRM", "Stream function [m^2/s]"}, + /* 36 */ {"VPOT", "Velocity potential [m^2/s]"}, + /* 37 */ {"MNTSF", "Montgomery stream function [m^2/s^2]"}, + /* 38 */ {"SGCVV", "Sigma coord. vertical velocity [/s]"}, + /* 39 */ {"VVEL", "Pressure vertical velocity [Pa/s]"}, + /* 40 */ {"DZDT", "Geometric vertical velocity [m/s]"}, + /* 41 */ {"ABSV", "Absolute vorticity [/s]"}, + /* 42 */ {"ABSD", "Absolute divergence [/s]"}, + /* 43 */ {"RELV", "Relative vorticity [/s]"}, + /* 44 */ {"RELD", "Relative divergence [/s]"}, + /* 45 */ {"VUCSH", "Vertical u shear [/s]"}, + /* 46 */ {"VVCSH", "Vertical v shear [/s]"}, + /* 47 */ {"DIRC", "Direction of current [deg]"}, + /* 48 */ {"SPC", "Speed of current [m/s]"}, + /* 49 */ {"UOGRD", "u of current [m/s]"}, + /* 50 */ {"VOGRD", "v of current [m/s]"}, + /* 51 */ {"SPFH", "Specific humidity [kg/kg]"}, + /* 52 */ {"RH", "Relative humidity [%]"}, + /* 53 */ {"MIXR", "Humidity mixing ratio [kg/kg]"}, + /* 54 */ {"PWAT", "Precipitable water [kg/m^2]"}, + /* 55 */ {"VAPP", "Vapor pressure [Pa]"}, + /* 56 */ {"SATD", "Saturation deficit [Pa]"}, + /* 57 */ {"EVP", "Evaporation [kg/m^2]"}, + /* 58 */ {"CICE", "Cloud Ice [kg/m^2]"}, + /* 59 */ {"PRATE", "Precipitation rate [kg/m^2/s]"}, + /* 60 */ {"TSTM", "Thunderstorm probability [%]"}, + /* 61 */ {"APCP", "Total precipitation [kg/m^2]"}, + /* 62 */ {"NCPCP", "Large scale precipitation [kg/m^2]"}, + /* 63 */ {"ACPCP", "Convective precipitation [kg/m^2]"}, + /* 64 */ {"SRWEQ", "Snowfall rate water equiv. [kg/m^2/s]"}, + /* 65 */ {"WEASD", "Accum. snow [kg/m^2]"}, + /* 66 */ {"SNOD", "Snow depth [m]"}, + /* 67 */ {"MIXHT", "Mixed layer depth [m]"}, + /* 68 */ {"TTHDP", "Transient thermocline depth [m]"}, + /* 69 */ {"MTHD", "Main thermocline depth [m]"}, + /* 70 */ {"MTHA", "Main thermocline anomaly [m]"}, + /* 71 */ {"TCDC", "Total cloud cover [%]"}, + /* 72 */ {"CDCON", "Convective cloud cover [%]"}, + /* 73 */ {"LCDC", "Low level cloud cover [%]"}, + /* 74 */ {"MCDC", "Mid level cloud cover [%]"}, + /* 75 */ {"HCDC", "High level cloud cover [%]"}, + /* 76 */ {"CWAT", "Cloud water [kg/m^2]"}, + /* 77 */ {"BLI", "Best lifted index (to 500 hPa) [K]"}, + /* 78 */ {"SNOC", "Convective snow [kg/m^2]"}, + /* 79 */ {"SNOL", "Large scale snow [kg/m^2]"}, + /* 80 */ {"WTMP", "Water temp. [K]"}, + /* 81 */ {"LAND", "Land-sea coverage (land=1;sea=0) [fraction]"}, + /* 82 */ {"DSLM", "Deviation of sea level from mean [m]"}, + /* 83 */ {"SFCR", "Surface roughness [m]"}, + /* 84 */ {"ALBDO", "Albedo [%]"}, + /* 85 */ {"TSOIL", "Soil temp. [K]"}, + /* 86 */ {"SOILM", "Soil moisture content [kg/m^2]"}, + /* 87 */ {"VEG", "Vegetation [%]"}, + /* 88 */ {"SALTY", "Salinity [kg/kg]"}, + /* 89 */ {"DEN", "Density [kg/m^3]"}, + /* 90 */ {"WATR", "Water runoff [kg/m^2]"}, + /* 91 */ {"ICEC", "Ice concentration (ice=1;no ice=0) [fraction]"}, + /* 92 */ {"ICETK", "Ice thickness [m]"}, + /* 93 */ {"DICED", "Direction of ice drift [deg]"}, + /* 94 */ {"SICED", "Speed of ice drift [m/s]"}, + /* 95 */ {"UICE", "u of ice drift [m/s]"}, + /* 96 */ {"VICE", "v of ice drift [m/s]"}, + /* 97 */ {"ICEG", "Ice growth rate [m/s]"}, + /* 98 */ {"ICED", "Ice divergence [/s]"}, + /* 99 */ {"SNOM", "Snow melt [kg/m^2]"}, + /* 100 */ {"HTSGW", "Sig height of wind waves and swell [m]"}, + /* 101 */ {"WVDIR", "Direction of wind waves [deg]"}, + /* 102 */ {"WVHGT", "Sig height of wind waves [m]"}, + /* 103 */ {"WVPER", "Mean period of wind waves [s]"}, + /* 104 */ {"SWDIR", "Direction of swell waves [deg]"}, + /* 105 */ {"SWELL", "Sig height of swell waves [m]"}, + /* 106 */ {"SWPER", "Mean period of swell waves [s]"}, + /* 107 */ {"DIRPW", "Primary wave direction [deg]"}, + /* 108 */ {"PERPW", "Primary wave mean period [s]"}, + /* 109 */ {"DIRSW", "Secondary wave direction [deg]"}, + /* 110 */ {"PERSW", "Secondary wave mean period [s]"}, + /* 111 */ {"NSWRS", "Net short wave (surface) [W/m^2]"}, + /* 112 */ {"NLWRS", "Net long wave (surface) [W/m^2]"}, + /* 113 */ {"NSWRT", "Net short wave (top) [W/m^2]"}, + /* 114 */ {"NLWRT", "Net long wave (top) [W/m^2]"}, + /* 115 */ {"LWAVR", "Long wave [W/m^2]"}, + /* 116 */ {"SWAVR", "Short wave [W/m^2]"}, + /* 117 */ {"GRAD", "Global radiation [W/m^2]"}, + /* 118 */ {"BRTMP", "Brightness temperature [K]"}, + /* 119 */ {"LWRAD", "Radiance with respect to wave no. [W/m/sr]"}, + /* 120 */ {"SWRAD", "Radiance with respect ot wave len. [W/m^3/sr]"}, + /* 121 */ {"LHTFL", "Latent heat flux [W/m^2]"}, + /* 122 */ {"SHTFL", "Sensible heat flux [W/m^2]"}, + /* 123 */ {"BLYDP", "Boundary layer dissipation [W/m^2]"}, + /* 124 */ {"UFLX", "Zonal momentum flux [N/m^2]"}, + /* 125 */ {"VFLX", "Meridional momentum flux [N/m^2]"}, + /* 126 */ {"WMIXE", "Wind mixing energy [J]"}, + /* 127 */ {"IMGD", "Image data []"}, + /* 128 */ {"var128", "undefined"}, + /* 129 */ {"var129", "undefined"}, + /* 130 */ {"var130", "undefined"}, + /* 131 */ {"var131", "undefined"}, + /* 132 */ {"var132", "undefined"}, + /* 133 */ {"var133", "undefined"}, + /* 134 */ {"var134", "undefined"}, + /* 135 */ {"var135", "undefined"}, + /* 136 */ {"var136", "undefined"}, + /* 137 */ {"var137", "undefined"}, + /* 138 */ {"var138", "undefined"}, + /* 139 */ {"POZT", "Ozone production from T term"}, + /* 140 */ {"var140", "undefined"}, + /* 141 */ {"var141", "undefined"}, + /* 142 */ {"var142", "undefined"}, + /* 143 */ {"var143", "undefined"}, + /* 144 */ {"var144", "undefined"}, + /* 145 */ {"var145", "undefined"}, + /* 146 */ {"var146", "undefined"}, + /* 147 */ {"var147", "undefined"}, + /* 148 */ {"var148", "undefined"}, + /* 149 */ {"var149", "undefined"}, + /* 150 */ {"var150", "undefined"}, + /* 151 */ {"var151", "undefined"}, + /* 152 */ {"var152", "undefined"}, + /* 153 */ {"var153", "undefined"}, + /* 154 */ {"OMGALF", "omega divided by density"}, + /* 155 */ {"var155", "undefined"}, + /* 156 */ {"var156", "undefined"}, + /* 157 */ {"var157", "undefined"}, + /* 158 */ {"var158", "undefined"}, + /* 159 */ {"var159", "undefined"}, + /* 160 */ {"var160", "undefined"}, + /* 161 */ {"var161", "undefined"}, + /* 162 */ {"var162", "undefined"}, + /* 163 */ {"var163", "undefined"}, + /* 164 */ {"COVZZ", "Covariance between u and u"}, + /* 165 */ {"COVMM", "Covariance between v and v"}, + /* 166 */ {"COVQZ", "Covariance between q and u"}, + /* 167 */ {"COVQM", "Covariance between q and v"}, + /* 168 */ {"COVTVV", "Covariance between T and omega"}, + /* 169 */ {"COVQVV", "Covariance between q and omega"}, + /* 170 */ {"var170", "undefined"}, + /* 171 */ {"var171", "undefined"}, + /* 172 */ {"var172", "undefined"}, + /* 173 */ {"LRGMR", "Large scale moistening rate"}, + /* 174 */ {"VDFOZ", "Ozone vertical diffusion"}, + /* 175 */ {"POZ", "Ozone production"}, + /* 176 */ {"AMSRE9", "Sim brightness tmp for AMSRE on Aqua channel 9 [K]"}, + /* 177 */ {"AMSRE10", "Sim brightness tmp for AMSRE on Aqua channel 10 [K]"}, + /* 178 */ {"AMSRE11", "Sim brightness tmp for AMSRE on Aqua channel 11 [K]"}, + /* 179 */ {"AMSRE12", "Sim brightness tmp for AMSRE on Aqua channel 12 [K]"}, + /* 180 */ {"var180", "undefined"}, + /* 181 */ {"GWDU", "Gravity wave drag u acceleration"}, + /* 182 */ {"GWDV", "Gravity wave drag v acceleration"}, + /* 183 */ {"CNVU", "Convective u momentum mixing acceleration"}, + /* 184 */ {"CNVV", "Convective v momentum mixing acceleration"}, + /* 185 */ {"AKHS", "Sfc exchange coeff for T and Q divided by delta z"}, + /* 186 */ {"AKMS", "Sfc exchange coeff for U and V divided by delta z"}, + /* 187 */ {"var187", "undefined"}, + /* 188 */ {"TOZ", "Ozone tendency"}, + /* 189 */ {"var189", "undefined"}, + /* 190 */ {"var190", "undefined"}, + /* 191 */ {"SUNSD", "Sunshine duration [s]"}, + /* 192 */ {"MOSF", "Meridional overturning stream function [10^6m^3/s]"}, + /* 193 */ {"EPSR", "Radiative emiissivity"}, + /* 194 */ {"var194", "undefined"}, + /* 195 */ {"QZ0", "q at top of viscous sublayer"}, + /* 196 */ {"CNGWDU", "Convective gravity wave drag zonal acceleration"}, + /* 197 */ {"CNGWDV", "Convective gravity wave drag meridional acceleration"}, + /* 198 */ {"var198", "undefined"}, + /* 199 */ {"var199", "undefined"}, + /* 200 */ {"var200", "undefined"}, + /* 201 */ {"THZ0", "Theta at top of viscous sublayer"}, + /* 202 */ {"CNVUMF", "Convective updraft mass flux"}, + /* 203 */ {"COVPSPS", "Covariance between psfc and psfc"}, + /* 204 */ {"QMAX", "Maximum specific humidity at 2m"}, + /* 205 */ {"QMIN", "Minimum specific humidity at 2m"}, + /* 206 */ {"COVQQ", "Covariance between q and q"}, + /* 207 */ {"var207", "undefined"}, + /* 208 */ {"var208", "undefined"}, + /* 209 */ {"CNVDMF", "Convective downdraft mass flux"}, + /* 210 */ {"var210", "undefined"}, + /* 211 */ {"var211", "undefined"}, + /* 212 */ {"var212", "undefined"}, + /* 213 */ {"var213", "undefined"}, + /* 214 */ {"var214", "undefined"}, + /* 215 */ {"var215", "undefined"}, + /* 216 */ {"var216", "undefined"}, + /* 217 */ {"var217", "undefined"}, + /* 218 */ {"var218", "undefined"}, + /* 219 */ {"CNVDEMF", "Convective detrainment mass flux"}, + /* 220 */ {"COVVVVV", "Covariance between omega and omega"}, + /* 221 */ {"var221", "undefined"}, + /* 222 */ {"var222", "undefined"}, + /* 223 */ {"var223", "undefined"}, + /* 224 */ {"var224", "undefined"}, + /* 225 */ {"var225", "undefined"}, + /* 226 */ {"var226", "undefined"}, + /* 227 */ {"var227", "undefined"}, + /* 228 */ {"var228", "undefined"}, + /* 229 */ {"var229", "undefined"}, + /* 230 */ {"var230", "undefined"}, + /* 231 */ {"var231", "undefined"}, + /* 232 */ {"var232", "undefined"}, + /* 233 */ {"var233", "undefined"}, + /* 234 */ {"COVTT", "Covariance between T and T"}, + /* 235 */ {"var235", "undefined"}, + /* 236 */ {"WTEND", "Tendency of vertical velocity"}, + /* 237 */ {"var237", "undefined"}, + /* 238 */ {"var238", "undefined"}, + /* 239 */ {"POZO", "Ozone production from col ozone term"}, + /* 240 */ {"var240", "undefined"}, + /* 241 */ {"var241", "undefined"}, + /* 242 */ {"var242", "undefined"}, + /* 243 */ {"var243", "undefined"}, + /* 244 */ {"var244", "undefined"}, + /* 245 */ {"var245", "undefined"}, + /* 246 */ {"var246", "undefined"}, + /* 247 */ {"var247", "undefined"}, + /* 248 */ {"var248", "undefined"}, + /* 249 */ {"var249", "undefined"}, + /* 250 */ {"var250", "undefined"}, + /* 251 */ {"var251", "undefined"}, + /* 252 */ {"var252", "undefined"}, + /* 253 */ {"var253", "undefined"}, + /* 254 */ {"var254", "undefined"}, + /* 255 */ {"var255", "undefined"}, }; const struct ParmTable parm_table_nceptab_128[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"PRES", "Pressure [Pa]"}, - /* 2 */ {"PRMSL", "Pressure reduced to MSL [Pa]"}, - /* 3 */ {"PTEND", "Pressure tendency [Pa/s]"}, - /* 4 */ {"PVORT", "Pot. vorticity [km^2/kg/s]"}, - /* 5 */ {"ICAHT", "ICAO Standard Atmosphere Reference Height [M]"}, - /* 6 */ {"GP", "Geopotential [m^2/s^2]"}, - /* 7 */ {"HGT", "Geopotential height [gpm]"}, - /* 8 */ {"DIST", "Geometric height [m]"}, - /* 9 */ {"HSTDV", "Std dev of height [m]"}, - /* 10 */ {"TOZNE", "Total ozone [Dobson]"}, - /* 11 */ {"TMP", "Temp. [K]"}, - /* 12 */ {"VTMP", "Virtual temp. [K]"}, - /* 13 */ {"POT", "Potential temp. [K]"}, - /* 14 */ {"EPOT", "Pseudo-adiabatic pot. temp. [K]"}, - /* 15 */ {"TMAX", "Max. temp. [K]"}, - /* 16 */ {"TMIN", "Min. temp. [K]"}, - /* 17 */ {"DPT", "Dew point temp. [K]"}, - /* 18 */ {"DEPR", "Dew point depression [K]"}, - /* 19 */ {"LAPR", "Lapse rate [K/m]"}, - /* 20 */ {"VIS", "Visibility [m]"}, - /* 21 */ {"RDSP1", "Radar spectra (1) [non-dim]"}, - /* 22 */ {"RDSP2", "Radar spectra (2) [non-dim]"}, - /* 23 */ {"RDSP3", "Radar spectra (3) [non-dim]"}, - /* 24 */ {"PLI", "Parcel lifted index (to 500 hPa) [K]"}, - /* 25 */ {"TMPA", "Temp. anomaly [K]"}, - /* 26 */ {"PRESA", "Pressure anomaly [Pa]"}, - /* 27 */ {"GPA", "Geopotential height anomaly [gpm]"}, - /* 28 */ {"WVSP1", "Wave spectra (1) [non-dim]"}, - /* 29 */ {"WVSP2", "Wave spectra (2) [non-dim]"}, - /* 30 */ {"WVSP3", "Wave spectra (3) [non-dim]"}, - /* 31 */ {"WDIR", "Wind direction [deg]"}, - /* 32 */ {"WIND", "Wind speed [m/s]"}, - /* 33 */ {"UGRD", "u wind [m/s]"}, - /* 34 */ {"VGRD", "v wind [m/s]"}, - /* 35 */ {"STRM", "Stream function [m^2/s]"}, - /* 36 */ {"VPOT", "Velocity potential [m^2/s]"}, - /* 37 */ {"MNTSF", "Montgomery stream function [m^2/s^2]"}, - /* 38 */ {"SGCVV", "Sigma coord. vertical velocity [/s]"}, - /* 39 */ {"VVEL", "Pressure vertical velocity [Pa/s]"}, - /* 40 */ {"DZDT", "Geometric vertical velocity [m/s]"}, - /* 41 */ {"ABSV", "Absolute vorticity [/s]"}, - /* 42 */ {"ABSD", "Absolute divergence [/s]"}, - /* 43 */ {"RELV", "Relative vorticity [/s]"}, - /* 44 */ {"RELD", "Relative divergence [/s]"}, - /* 45 */ {"VUCSH", "Vertical u shear [/s]"}, - /* 46 */ {"VVCSH", "Vertical v shear [/s]"}, - /* 47 */ {"DIRC", "Direction of current [deg]"}, - /* 48 */ {"SPC", "Speed of current [m/s]"}, - /* 49 */ {"UOGRD", "u of current [m/s]"}, - /* 50 */ {"VOGRD", "v of current [m/s]"}, - /* 51 */ {"SPFH", "Specific humidity [kg/kg]"}, - /* 52 */ {"RH", "Relative humidity [%]"}, - /* 53 */ {"MIXR", "Humidity mixing ratio [kg/kg]"}, - /* 54 */ {"PWAT", "Precipitable water [kg/m^2]"}, - /* 55 */ {"VAPP", "Vapor pressure [Pa]"}, - /* 56 */ {"SATD", "Saturation deficit [Pa]"}, - /* 57 */ {"EVP", "Evaporation [kg/m^2]"}, - /* 58 */ {"CICE", "Cloud Ice [kg/m^2]"}, - /* 59 */ {"PRATE", "Precipitation rate [kg/m^2/s]"}, - /* 60 */ {"TSTM", "Thunderstorm probability [%]"}, - /* 61 */ {"APCP", "Total precipitation [kg/m^2]"}, - /* 62 */ {"NCPCP", "Large scale precipitation [kg/m^2]"}, - /* 63 */ {"ACPCP", "Convective precipitation [kg/m^2]"}, - /* 64 */ {"SRWEQ", "Snowfall rate water equiv. [kg/m^2/s]"}, - /* 65 */ {"WEASD", "Accum. snow [kg/m^2]"}, - /* 66 */ {"SNOD", "Snow depth [m]"}, - /* 67 */ {"MIXHT", "Mixed layer depth [m]"}, - /* 68 */ {"TTHDP", "Transient thermocline depth [m]"}, - /* 69 */ {"MTHD", "Main thermocline depth [m]"}, - /* 70 */ {"MTHA", "Main thermocline anomaly [m]"}, - /* 71 */ {"TCDC", "Total cloud cover [%]"}, - /* 72 */ {"CDCON", "Convective cloud cover [%]"}, - /* 73 */ {"LCDC", "Low level cloud cover [%]"}, - /* 74 */ {"MCDC", "Mid level cloud cover [%]"}, - /* 75 */ {"HCDC", "High level cloud cover [%]"}, - /* 76 */ {"CWAT", "Cloud water [kg/m^2]"}, - /* 77 */ {"BLI", "Best lifted index (to 500 hPa) [K]"}, - /* 78 */ {"SNOC", "Convective snow [kg/m^2]"}, - /* 79 */ {"SNOL", "Large scale snow [kg/m^2]"}, - /* 80 */ {"WTMP", "Water temp. [K]"}, - /* 81 */ {"LAND", "Land cover (land=1;sea=0) [fraction]"}, - /* 82 */ {"DSLM", "Deviation of sea level from mean [m]"}, - /* 83 */ {"SFCR", "Surface roughness [m]"}, - /* 84 */ {"ALBDO", "Albedo [%]"}, - /* 85 */ {"TSOIL", "Soil temp. [K]"}, - /* 86 */ {"SOILM", "Soil moisture content [kg/m^2]"}, - /* 87 */ {"VEG", "Vegetation [%]"}, - /* 88 */ {"SALTY", "Salinity [kg/kg]"}, - /* 89 */ {"DEN", "Density [kg/m^3]"}, - /* 90 */ {"WATR", "Water runoff [kg/m^2]"}, - /* 91 */ {"ICEC", "Ice concentration (ice=1;no ice=0) [fraction]"}, - /* 92 */ {"ICETK", "Ice thickness [m]"}, - /* 93 */ {"DICED", "Direction of ice drift [deg]"}, - /* 94 */ {"SICED", "Speed of ice drift [m/s]"}, - /* 95 */ {"UICE", "u of ice drift [m/s]"}, - /* 96 */ {"VICE", "v of ice drift [m/s]"}, - /* 97 */ {"ICEG", "Ice growth rate [m/s]"}, - /* 98 */ {"ICED", "Ice divergence [/s]"}, - /* 99 */ {"SNOM", "Snow melt [kg/m^2]"}, - /* 100 */ {"HTSGW", "Sig height of wind waves and swell [m]"}, - /* 101 */ {"WVDIR", "Direction of wind waves [deg]"}, - /* 102 */ {"WVHGT", "Sig height of wind waves [m]"}, - /* 103 */ {"WVPER", "Mean period of wind waves [s]"}, - /* 104 */ {"SWDIR", "Direction of swell waves [deg]"}, - /* 105 */ {"SWELL", "Sig height of swell waves [m]"}, - /* 106 */ {"SWPER", "Mean period of swell waves [s]"}, - /* 107 */ {"DIRPW", "Primary wave direction [deg]"}, - /* 108 */ {"PERPW", "Primary wave mean period [s]"}, - /* 109 */ {"DIRSW", "Secondary wave direction [deg]"}, - /* 110 */ {"PERSW", "Secondary wave mean period [s]"}, - /* 111 */ {"NSWRS", "Net short wave (surface) [W/m^2]"}, - /* 112 */ {"NLWRS", "Net long wave (surface) [W/m^2]"}, - /* 113 */ {"NSWRT", "Net short wave (top) [W/m^2]"}, - /* 114 */ {"NLWRT", "Net long wave (top) [W/m^2]"}, - /* 115 */ {"LWAVR", "Long wave [W/m^2]"}, - /* 116 */ {"SWAVR", "Short wave [W/m^2]"}, - /* 117 */ {"GRAD", "Global radiation [W/m^2]"}, - /* 118 */ {"BRTMP", "Brightness temperature [K]"}, - /* 119 */ {"LWRAD", "Radiance with respect to wave no. [W/m/sr]"}, - /* 120 */ {"SWRAD", "Radiance with respect ot wave len. [W/m^3/sr]"}, - /* 121 */ {"LHTFL", "Latent heat flux [W/m^2]"}, - /* 122 */ {"SHTFL", "Sensible heat flux [W/m^2]"}, - /* 123 */ {"BLYDP", "Boundary layer dissipation [W/m^2]"}, - /* 124 */ {"UFLX", "Zonal momentum flux [N/m^2]"}, - /* 125 */ {"VFLX", "Meridional momentum flux [N/m^2]"}, - /* 126 */ {"WMIXE", "Wind mixing energy [J]"}, - /* 127 */ {"IMGD", "Image data []"}, - /* 128 */ {"AVDEPTH", "Ocean depth - mean [m]"}, - /* 129 */ {"DEPTH", "Ocean depth - instantaneous [m]"}, - /* 130 */ {"ELEV", "Ocean surface elevation relative to geoid [m]"}, - /* 131 */ {"MXEL24", "Max ocean surface elevation in last 24 hours [m]"}, - /* 132 */ {"MNEL24", "Min ocean surface elevation in last 24 hours [m]"}, - /* 133 */ {"var133", "undefined"}, - /* 134 */ {"var134", "undefined"}, - /* 135 */ {"O2", "Oxygen (O2 (aq)) []"}, - /* 136 */ {"PO4", "PO4 [Mol/kg]"}, - /* 137 */ {"NO3", "NO3 [Mol/kg]"}, - /* 138 */ {"SiO4", "SiO4 [Mol/kg]"}, - /* 139 */ {"CO2aq", "CO2 (aq) [Mol/kg]"}, - /* 140 */ {"HCO3", "HCO3 - [Mol/kg]"}, - /* 141 */ {"CO3", "CO3 -- [Mol/kg]"}, - /* 142 */ {"TCO2", "TCO2 [Mol/kg]"}, - /* 143 */ {"TALK", "TALK [Mol/kg]"}, - /* 144 */ {"var144", "undefined"}, - /* 145 */ {"var145", "undefined"}, - /* 146 */ {"S11", "S11 - 1,1 component of ice stress tensor []"}, - /* 147 */ {"S12", "S12 - 1,2 component of ice stress tensor []"}, - /* 148 */ {"S22", "S22 - 2,2 component of ice stress tensor []"}, - /* 149 */ {"INV1", "T1 - First invariant of stress tensor []"}, - /* 150 */ {"INV2", "T2 - Second invariant of stress tensor []"}, - /* 151 */ {"var151", "undefined"}, - /* 152 */ {"var152", "undefined"}, - /* 153 */ {"var153", "undefined"}, - /* 154 */ {"var154", "undefined"}, - /* 155 */ {"WVRGH", "Wave Roughness[ ]"}, - /* 156 */ {"WVSTRS", "Wave Stresses []"}, - /* 157 */ {"WHITE", "Whitecap coverage []"}, - /* 158 */ {"SWDIRWID", "Swell direction width []"}, - /* 159 */ {"SWFREWID", "Swell frequency width []"}, - /* 160 */ {"WVAGE", "Wave age []"}, - /* 161 */ {"PWVAGE", "Physical Wave age []"}, - /* 162 */ {"var162", "undefined"}, - /* 163 */ {"var163", "undefined"}, - /* 164 */ {"var164", "undefined"}, - /* 165 */ {"LTURB", "Master length scale (turbulence) [m]"}, - /* 166 */ {"var166", "undefined"}, - /* 167 */ {"var167", "undefined"}, - /* 168 */ {"var168", "undefined"}, - /* 169 */ {"var169", "undefined"}, - /* 170 */ {"AIHFLX", "Net Air-Ice heat flux [W/m^2]"}, - /* 171 */ {"AOHFLX", "Net Air-Ocean heat flux [W/m^2]"}, - /* 172 */ {"IOHFLX", "Net Ice-Ocean heat flux [W/m^2]"}, - /* 173 */ {"IOSFLX", "Net Ice-Ocean salt flux kg/s]"}, - /* 174 */ {"var174", "undefined"}, - /* 175 */ {"OMLT", "Ocean Mixed Layer Temperature [K]"}, - /* 176 */ {"OMLS", "Ocean Mixed Layer Salinity [kg/kg]"}, - /* 177 */ {"OMLPOTDEN", "Ocean Mixed Layer Potential density (Referenced to 2000m) [kg/m^3]"}, - /* 178 */ {"OMLU", "U Velocity in mixed layer [m/s]"}, - /* 179 */ {"OMLV", "V Velocity in mixed layer [m/s]"}, - /* 180 */ {"ASHFL", "Assimilative Heat Flux [W/m^2]"}, - /* 181 */ {"ASSFL", "Assimilative Salt Flux [mm/day]"}, - /* 182 */ {"BOTLD", "Bottom Layer Depth [m]"}, - /* 183 */ {"UBARO", "Barotropic U Velocity [m/s]"}, - /* 184 */ {"VBARO", "Barotropic V Velocity [m/s]"}, - /* 185 */ {"INTFD", "Interface Depth [m]"}, - /* 186 */ {"WTMPC", "Temperature [C]"}, - /* 187 */ {"SALIN", "Salinity [psu]"}, - /* 188 */ {"EMNP", "Evaporation - Precipitation [cm/day]"}, - /* 189 */ {"var189", "undefined"}, - /* 190 */ {"KENG", "Kinetic Energy [J/kg]"}, - /* 191 */ {"var191", "undefined"}, - /* 192 */ {"LAYTH", "Layer Thickness[m]"}, - /* 193 */ {"SSTT", "Surface Temperature Trend [K/day]"}, - /* 194 */ {"SSST", "Surface Salinity Trend [psu/day]"}, - /* 195 */ {"OVHD", "Ocean vertical heat diffusivity [m^2/s]"}, - /* 196 */ {"OVSD", "Ocean vertical salt diffusivity [m^2/s]"}, - /* 197 */ {"OVMD", "Ocean vertical momementum diffusivity [m^2/s]"}, - /* 198 */ {"var198", "undefined"}, - /* 199 */ {"var199", "undefined"}, - /* 200 */ {"var200", "undefined"}, - /* 201 */ {"var201", "undefined"}, - /* 202 */ {"var202", "undefined"}, - /* 203 */ {"var203", "undefined"}, - /* 204 */ {"var204", "undefined"}, - /* 205 */ {"var205", "undefined"}, - /* 206 */ {"var206", "undefined"}, - /* 207 */ {"var207", "undefined"}, - /* 208 */ {"var208", "undefined"}, - /* 209 */ {"var209", "undefined"}, - /* 210 */ {"var210", "undefined"}, - /* 211 */ {"var211", "undefined"}, - /* 212 */ {"var212", "undefined"}, - /* 213 */ {"var213", "undefined"}, - /* 214 */ {"var214", "undefined"}, - /* 215 */ {"var215", "undefined"}, - /* 216 */ {"var216", "undefined"}, - /* 217 */ {"var217", "undefined"}, - /* 218 */ {"var218", "undefined"}, - /* 219 */ {"var219", "undefined"}, - /* 220 */ {"var220", "undefined"}, - /* 221 */ {"var221", "undefined"}, - /* 222 */ {"var222", "undefined"}, - /* 223 */ {"var223", "undefined"}, - /* 224 */ {"var224", "undefined"}, - /* 225 */ {"var225", "undefined"}, - /* 226 */ {"var226", "undefined"}, - /* 227 */ {"var227", "undefined"}, - /* 228 */ {"var228", "undefined"}, - /* 229 */ {"var229", "undefined"}, - /* 230 */ {"var230", "undefined"}, - /* 231 */ {"var231", "undefined"}, - /* 232 */ {"var232", "undefined"}, - /* 233 */ {"var233", "undefined"}, - /* 234 */ {"var234", "undefined"}, - /* 235 */ {"var235", "undefined"}, - /* 236 */ {"var236", "undefined"}, - /* 237 */ {"var237", "undefined"}, - /* 238 */ {"var238", "undefined"}, - /* 239 */ {"var239", "undefined"}, - /* 240 */ {"var240", "undefined"}, - /* 241 */ {"var241", "undefined"}, - /* 242 */ {"var242", "undefined"}, - /* 243 */ {"var243", "undefined"}, - /* 244 */ {"var244", "undefined"}, - /* 245 */ {"var245", "undefined"}, - /* 246 */ {"var246", "undefined"}, - /* 247 */ {"var247", "undefined"}, - /* 248 */ {"var248", "undefined"}, - /* 249 */ {"var249", "undefined"}, - /* 250 */ {"var250", "undefined"}, - /* 251 */ {"var251", "undefined"}, - /* 252 */ {"var252", "undefined"}, - /* 253 */ {"var253", "undefined"}, - /* 254 */ {"RERRVAR", "Relative Error Variance [pure number]"}, - /* 255 */ {"var255", "undefined"}, + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"PRES", "Pressure [Pa]"}, + /* 2 */ {"PRMSL", "Pressure reduced to MSL [Pa]"}, + /* 3 */ {"PTEND", "Pressure tendency [Pa/s]"}, + /* 4 */ {"PVORT", "Pot. vorticity [km^2/kg/s]"}, + /* 5 */ {"ICAHT", "ICAO Standard Atmosphere Reference Height [M]"}, + /* 6 */ {"GP", "Geopotential [m^2/s^2]"}, + /* 7 */ {"HGT", "Geopotential height [gpm]"}, + /* 8 */ {"DIST", "Geometric height [m]"}, + /* 9 */ {"HSTDV", "Std dev of height [m]"}, + /* 10 */ {"TOZNE", "Total ozone [Dobson]"}, + /* 11 */ {"TMP", "Temp. [K]"}, + /* 12 */ {"VTMP", "Virtual temp. [K]"}, + /* 13 */ {"POT", "Potential temp. [K]"}, + /* 14 */ {"EPOT", "Pseudo-adiabatic pot. temp. [K]"}, + /* 15 */ {"TMAX", "Max. temp. [K]"}, + /* 16 */ {"TMIN", "Min. temp. [K]"}, + /* 17 */ {"DPT", "Dew point temp. [K]"}, + /* 18 */ {"DEPR", "Dew point depression [K]"}, + /* 19 */ {"LAPR", "Lapse rate [K/m]"}, + /* 20 */ {"VIS", "Visibility [m]"}, + /* 21 */ {"RDSP1", "Radar spectra (1) [non-dim]"}, + /* 22 */ {"RDSP2", "Radar spectra (2) [non-dim]"}, + /* 23 */ {"RDSP3", "Radar spectra (3) [non-dim]"}, + /* 24 */ {"PLI", "Parcel lifted index (to 500 hPa) [K]"}, + /* 25 */ {"TMPA", "Temp. anomaly [K]"}, + /* 26 */ {"PRESA", "Pressure anomaly [Pa]"}, + /* 27 */ {"GPA", "Geopotential height anomaly [gpm]"}, + /* 28 */ {"WVSP1", "Wave spectra (1) [non-dim]"}, + /* 29 */ {"WVSP2", "Wave spectra (2) [non-dim]"}, + /* 30 */ {"WVSP3", "Wave spectra (3) [non-dim]"}, + /* 31 */ {"WDIR", "Wind direction [deg]"}, + /* 32 */ {"WIND", "Wind speed [m/s]"}, + /* 33 */ {"UGRD", "u wind [m/s]"}, + /* 34 */ {"VGRD", "v wind [m/s]"}, + /* 35 */ {"STRM", "Stream function [m^2/s]"}, + /* 36 */ {"VPOT", "Velocity potential [m^2/s]"}, + /* 37 */ {"MNTSF", "Montgomery stream function [m^2/s^2]"}, + /* 38 */ {"SGCVV", "Sigma coord. vertical velocity [/s]"}, + /* 39 */ {"VVEL", "Pressure vertical velocity [Pa/s]"}, + /* 40 */ {"DZDT", "Geometric vertical velocity [m/s]"}, + /* 41 */ {"ABSV", "Absolute vorticity [/s]"}, + /* 42 */ {"ABSD", "Absolute divergence [/s]"}, + /* 43 */ {"RELV", "Relative vorticity [/s]"}, + /* 44 */ {"RELD", "Relative divergence [/s]"}, + /* 45 */ {"VUCSH", "Vertical u shear [/s]"}, + /* 46 */ {"VVCSH", "Vertical v shear [/s]"}, + /* 47 */ {"DIRC", "Direction of current [deg]"}, + /* 48 */ {"SPC", "Speed of current [m/s]"}, + /* 49 */ {"UOGRD", "u of current [m/s]"}, + /* 50 */ {"VOGRD", "v of current [m/s]"}, + /* 51 */ {"SPFH", "Specific humidity [kg/kg]"}, + /* 52 */ {"RH", "Relative humidity [%]"}, + /* 53 */ {"MIXR", "Humidity mixing ratio [kg/kg]"}, + /* 54 */ {"PWAT", "Precipitable water [kg/m^2]"}, + /* 55 */ {"VAPP", "Vapor pressure [Pa]"}, + /* 56 */ {"SATD", "Saturation deficit [Pa]"}, + /* 57 */ {"EVP", "Evaporation [kg/m^2]"}, + /* 58 */ {"CICE", "Cloud Ice [kg/m^2]"}, + /* 59 */ {"PRATE", "Precipitation rate [kg/m^2/s]"}, + /* 60 */ {"TSTM", "Thunderstorm probability [%]"}, + /* 61 */ {"APCP", "Total precipitation [kg/m^2]"}, + /* 62 */ {"NCPCP", "Large scale precipitation [kg/m^2]"}, + /* 63 */ {"ACPCP", "Convective precipitation [kg/m^2]"}, + /* 64 */ {"SRWEQ", "Snowfall rate water equiv. [kg/m^2/s]"}, + /* 65 */ {"WEASD", "Accum. snow [kg/m^2]"}, + /* 66 */ {"SNOD", "Snow depth [m]"}, + /* 67 */ {"MIXHT", "Mixed layer depth [m]"}, + /* 68 */ {"TTHDP", "Transient thermocline depth [m]"}, + /* 69 */ {"MTHD", "Main thermocline depth [m]"}, + /* 70 */ {"MTHA", "Main thermocline anomaly [m]"}, + /* 71 */ {"TCDC", "Total cloud cover [%]"}, + /* 72 */ {"CDCON", "Convective cloud cover [%]"}, + /* 73 */ {"LCDC", "Low level cloud cover [%]"}, + /* 74 */ {"MCDC", "Mid level cloud cover [%]"}, + /* 75 */ {"HCDC", "High level cloud cover [%]"}, + /* 76 */ {"CWAT", "Cloud water [kg/m^2]"}, + /* 77 */ {"BLI", "Best lifted index (to 500 hPa) [K]"}, + /* 78 */ {"SNOC", "Convective snow [kg/m^2]"}, + /* 79 */ {"SNOL", "Large scale snow [kg/m^2]"}, + /* 80 */ {"WTMP", "Water temp. [K]"}, + /* 81 */ {"LAND", "Land cover (land=1;sea=0) [fraction]"}, + /* 82 */ {"DSLM", "Deviation of sea level from mean [m]"}, + /* 83 */ {"SFCR", "Surface roughness [m]"}, + /* 84 */ {"ALBDO", "Albedo [%]"}, + /* 85 */ {"TSOIL", "Soil temp. [K]"}, + /* 86 */ {"SOILM", "Soil moisture content [kg/m^2]"}, + /* 87 */ {"VEG", "Vegetation [%]"}, + /* 88 */ {"SALTY", "Salinity [kg/kg]"}, + /* 89 */ {"DEN", "Density [kg/m^3]"}, + /* 90 */ {"WATR", "Water runoff [kg/m^2]"}, + /* 91 */ {"ICEC", "Ice concentration (ice=1;no ice=0) [fraction]"}, + /* 92 */ {"ICETK", "Ice thickness [m]"}, + /* 93 */ {"DICED", "Direction of ice drift [deg]"}, + /* 94 */ {"SICED", "Speed of ice drift [m/s]"}, + /* 95 */ {"UICE", "u of ice drift [m/s]"}, + /* 96 */ {"VICE", "v of ice drift [m/s]"}, + /* 97 */ {"ICEG", "Ice growth rate [m/s]"}, + /* 98 */ {"ICED", "Ice divergence [/s]"}, + /* 99 */ {"SNOM", "Snow melt [kg/m^2]"}, + /* 100 */ {"HTSGW", "Sig height of wind waves and swell [m]"}, + /* 101 */ {"WVDIR", "Direction of wind waves [deg]"}, + /* 102 */ {"WVHGT", "Sig height of wind waves [m]"}, + /* 103 */ {"WVPER", "Mean period of wind waves [s]"}, + /* 104 */ {"SWDIR", "Direction of swell waves [deg]"}, + /* 105 */ {"SWELL", "Sig height of swell waves [m]"}, + /* 106 */ {"SWPER", "Mean period of swell waves [s]"}, + /* 107 */ {"DIRPW", "Primary wave direction [deg]"}, + /* 108 */ {"PERPW", "Primary wave mean period [s]"}, + /* 109 */ {"DIRSW", "Secondary wave direction [deg]"}, + /* 110 */ {"PERSW", "Secondary wave mean period [s]"}, + /* 111 */ {"NSWRS", "Net short wave (surface) [W/m^2]"}, + /* 112 */ {"NLWRS", "Net long wave (surface) [W/m^2]"}, + /* 113 */ {"NSWRT", "Net short wave (top) [W/m^2]"}, + /* 114 */ {"NLWRT", "Net long wave (top) [W/m^2]"}, + /* 115 */ {"LWAVR", "Long wave [W/m^2]"}, + /* 116 */ {"SWAVR", "Short wave [W/m^2]"}, + /* 117 */ {"GRAD", "Global radiation [W/m^2]"}, + /* 118 */ {"BRTMP", "Brightness temperature [K]"}, + /* 119 */ {"LWRAD", "Radiance with respect to wave no. [W/m/sr]"}, + /* 120 */ {"SWRAD", "Radiance with respect ot wave len. [W/m^3/sr]"}, + /* 121 */ {"LHTFL", "Latent heat flux [W/m^2]"}, + /* 122 */ {"SHTFL", "Sensible heat flux [W/m^2]"}, + /* 123 */ {"BLYDP", "Boundary layer dissipation [W/m^2]"}, + /* 124 */ {"UFLX", "Zonal momentum flux [N/m^2]"}, + /* 125 */ {"VFLX", "Meridional momentum flux [N/m^2]"}, + /* 126 */ {"WMIXE", "Wind mixing energy [J]"}, + /* 127 */ {"IMGD", "Image data []"}, + /* 128 */ {"AVDEPTH", "Ocean depth - mean [m]"}, + /* 129 */ {"DEPTH", "Ocean depth - instantaneous [m]"}, + /* 130 */ {"ELEV", "Ocean surface elevation relative to geoid [m]"}, + /* 131 */ {"MXEL24", "Max ocean surface elevation in last 24 hours [m]"}, + /* 132 */ {"MNEL24", "Min ocean surface elevation in last 24 hours [m]"}, + /* 133 */ {"var133", "undefined"}, + /* 134 */ {"var134", "undefined"}, + /* 135 */ {"O2", "Oxygen (O2 (aq)) []"}, + /* 136 */ {"PO4", "PO4 [Mol/kg]"}, + /* 137 */ {"NO3", "NO3 [Mol/kg]"}, + /* 138 */ {"SiO4", "SiO4 [Mol/kg]"}, + /* 139 */ {"CO2aq", "CO2 (aq) [Mol/kg]"}, + /* 140 */ {"HCO3", "HCO3 - [Mol/kg]"}, + /* 141 */ {"CO3", "CO3 -- [Mol/kg]"}, + /* 142 */ {"TCO2", "TCO2 [Mol/kg]"}, + /* 143 */ {"TALK", "TALK [Mol/kg]"}, + /* 144 */ {"var144", "undefined"}, + /* 145 */ {"var145", "undefined"}, + /* 146 */ {"S11", "S11 - 1,1 component of ice stress tensor []"}, + /* 147 */ {"S12", "S12 - 1,2 component of ice stress tensor []"}, + /* 148 */ {"S22", "S22 - 2,2 component of ice stress tensor []"}, + /* 149 */ {"INV1", "T1 - First invariant of stress tensor []"}, + /* 150 */ {"INV2", "T2 - Second invariant of stress tensor []"}, + /* 151 */ {"var151", "undefined"}, + /* 152 */ {"var152", "undefined"}, + /* 153 */ {"var153", "undefined"}, + /* 154 */ {"var154", "undefined"}, + /* 155 */ {"WVRGH", "Wave Roughness[ ]"}, + /* 156 */ {"WVSTRS", "Wave Stresses []"}, + /* 157 */ {"WHITE", "Whitecap coverage []"}, + /* 158 */ {"SWDIRWID", "Swell direction width []"}, + /* 159 */ {"SWFREWID", "Swell frequency width []"}, + /* 160 */ {"WVAGE", "Wave age []"}, + /* 161 */ {"PWVAGE", "Physical Wave age []"}, + /* 162 */ {"var162", "undefined"}, + /* 163 */ {"var163", "undefined"}, + /* 164 */ {"var164", "undefined"}, + /* 165 */ {"LTURB", "Master length scale (turbulence) [m]"}, + /* 166 */ {"var166", "undefined"}, + /* 167 */ {"var167", "undefined"}, + /* 168 */ {"var168", "undefined"}, + /* 169 */ {"var169", "undefined"}, + /* 170 */ {"AIHFLX", "Net Air-Ice heat flux [W/m^2]"}, + /* 171 */ {"AOHFLX", "Net Air-Ocean heat flux [W/m^2]"}, + /* 172 */ {"IOHFLX", "Net Ice-Ocean heat flux [W/m^2]"}, + /* 173 */ {"IOSFLX", "Net Ice-Ocean salt flux kg/s]"}, + /* 174 */ {"var174", "undefined"}, + /* 175 */ {"OMLT", "Ocean Mixed Layer Temperature [K]"}, + /* 176 */ {"OMLS", "Ocean Mixed Layer Salinity [kg/kg]"}, + /* 177 */ {"OMLPOTDEN", "Ocean Mixed Layer Potential density (Referenced to 2000m) [kg/m^3]"}, + /* 178 */ {"OMLU", "U Velocity in mixed layer [m/s]"}, + /* 179 */ {"OMLV", "V Velocity in mixed layer [m/s]"}, + /* 180 */ {"ASHFL", "Assimilative Heat Flux [W/m^2]"}, + /* 181 */ {"ASSFL", "Assimilative Salt Flux [mm/day]"}, + /* 182 */ {"BOTLD", "Bottom Layer Depth [m]"}, + /* 183 */ {"UBARO", "Barotropic U Velocity [m/s]"}, + /* 184 */ {"VBARO", "Barotropic V Velocity [m/s]"}, + /* 185 */ {"INTFD", "Interface Depth [m]"}, + /* 186 */ {"WTMPC", "Temperature [C]"}, + /* 187 */ {"SALIN", "Salinity [psu]"}, + /* 188 */ {"EMNP", "Evaporation - Precipitation [cm/day]"}, + /* 189 */ {"var189", "undefined"}, + /* 190 */ {"KENG", "Kinetic Energy [J/kg]"}, + /* 191 */ {"var191", "undefined"}, + /* 192 */ {"LAYTH", "Layer Thickness[m]"}, + /* 193 */ {"SSTT", "Surface Temperature Trend [K/day]"}, + /* 194 */ {"SSST", "Surface Salinity Trend [psu/day]"}, + /* 195 */ {"OVHD", "Ocean vertical heat diffusivity [m^2/s]"}, + /* 196 */ {"OVSD", "Ocean vertical salt diffusivity [m^2/s]"}, + /* 197 */ {"OVMD", "Ocean vertical momementum diffusivity [m^2/s]"}, + /* 198 */ {"var198", "undefined"}, + /* 199 */ {"var199", "undefined"}, + /* 200 */ {"var200", "undefined"}, + /* 201 */ {"var201", "undefined"}, + /* 202 */ {"var202", "undefined"}, + /* 203 */ {"var203", "undefined"}, + /* 204 */ {"var204", "undefined"}, + /* 205 */ {"var205", "undefined"}, + /* 206 */ {"var206", "undefined"}, + /* 207 */ {"var207", "undefined"}, + /* 208 */ {"var208", "undefined"}, + /* 209 */ {"var209", "undefined"}, + /* 210 */ {"var210", "undefined"}, + /* 211 */ {"var211", "undefined"}, + /* 212 */ {"var212", "undefined"}, + /* 213 */ {"var213", "undefined"}, + /* 214 */ {"var214", "undefined"}, + /* 215 */ {"var215", "undefined"}, + /* 216 */ {"var216", "undefined"}, + /* 217 */ {"var217", "undefined"}, + /* 218 */ {"var218", "undefined"}, + /* 219 */ {"var219", "undefined"}, + /* 220 */ {"var220", "undefined"}, + /* 221 */ {"var221", "undefined"}, + /* 222 */ {"var222", "undefined"}, + /* 223 */ {"var223", "undefined"}, + /* 224 */ {"var224", "undefined"}, + /* 225 */ {"var225", "undefined"}, + /* 226 */ {"var226", "undefined"}, + /* 227 */ {"var227", "undefined"}, + /* 228 */ {"var228", "undefined"}, + /* 229 */ {"var229", "undefined"}, + /* 230 */ {"var230", "undefined"}, + /* 231 */ {"var231", "undefined"}, + /* 232 */ {"var232", "undefined"}, + /* 233 */ {"var233", "undefined"}, + /* 234 */ {"var234", "undefined"}, + /* 235 */ {"var235", "undefined"}, + /* 236 */ {"var236", "undefined"}, + /* 237 */ {"var237", "undefined"}, + /* 238 */ {"var238", "undefined"}, + /* 239 */ {"var239", "undefined"}, + /* 240 */ {"var240", "undefined"}, + /* 241 */ {"var241", "undefined"}, + /* 242 */ {"var242", "undefined"}, + /* 243 */ {"var243", "undefined"}, + /* 244 */ {"var244", "undefined"}, + /* 245 */ {"var245", "undefined"}, + /* 246 */ {"var246", "undefined"}, + /* 247 */ {"var247", "undefined"}, + /* 248 */ {"var248", "undefined"}, + /* 249 */ {"var249", "undefined"}, + /* 250 */ {"var250", "undefined"}, + /* 251 */ {"var251", "undefined"}, + /* 252 */ {"var252", "undefined"}, + /* 253 */ {"var253", "undefined"}, + /* 254 */ {"RERRVAR", "Relative Error Variance [pure number]"}, + /* 255 */ {"var255", "undefined"}, }; const struct ParmTable parm_table_ecmwf_128[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"STRF", "Stream function [m**2 s**-1]"}, - /* 2 */ {"VPOT", "Velocity potential [m**2 s**-1]"}, - /* 3 */ {"PT", "Potential temperature [K]"}, - /* 4 */ {"EQPT", "Equivalent potential temperature [K]"}, - /* 5 */ {"SEPT", "Saturated equivalent potential temperature [K]"}, - /* 6 */ {"SSFR", "Soil sand fraction [(0 - 1)]"}, - /* 7 */ {"SCFR", "Soil clay fraction [(0 - 1)]"}, - /* 8 */ {"SRO", "Surface runoff [m]"}, - /* 9 */ {"SSRO", "Sub-surface runoff [m]"}, - /* 10 */ {"WIND", "Wind speed [m s**-1]"}, - /* 11 */ {"UDVW", "U component of divergent wind [m s**-1]"}, - /* 12 */ {"VDVW", "V component of divergent wind [m s**-1]"}, - /* 13 */ {"URTW", "U component of rotational wind [m s**-1]"}, - /* 14 */ {"VRTW", "V component of rotational wind [m s**-1]"}, - /* 15 */ {"ALUVP", "UV visible albedo for direct radiation [(0 - 1)]"}, - /* 16 */ {"ALUVD", "UV visible albedo for diffuse radiation [(0 - 1)]"}, - /* 17 */ {"ALNIP", "Near IR albedo for direct radiation [(0 - 1)]"}, - /* 18 */ {"ALNID", "Near IR albedo for diffuse radiation [(0 - 1)]"}, - /* 19 */ {"UVCS", "Clear sky surface UV [W m**-2 s]"}, - /* 20 */ {"PARCS", "Clear sky surface PAR [W m**-2 s]"}, - /* 21 */ {"UCTP", "Unbalanced component of temperature [K]"}, - /* 22 */ {"UCLN", "Unbalanced component of logarithm of surface pressure []"}, - /* 23 */ {"UCDV", "Unbalanced component of divergence [s**-1]"}, - /* 24 */ {"var24", "Reserved for future unbalanced components []"}, - /* 25 */ {"var25", "Reserved for future unbalanced components []"}, - /* 26 */ {"CL", "Lake cover [(0 - 1)]"}, - /* 27 */ {"CVL", "Low vegetation cover [(0 - 1)]"}, - /* 28 */ {"CVH", "High vegetation cover [(0 - 1)]"}, - /* 29 */ {"TVL", "Type of low vegetation []"}, - /* 30 */ {"TVH", "Type of high vegetation []"}, - /* 31 */ {"CI", "Sea-ice cover [(0 - 1)]"}, - /* 32 */ {"ASN", "Snow albedo [(0 - 1)]"}, - /* 33 */ {"RSN", "Snow density [kg m**-3]"}, - /* 34 */ {"SSTK", "Sea surface temperature [K]"}, - /* 35 */ {"ISTL1", "Ice surface temperature layer 1 [K]"}, - /* 36 */ {"ISTL2", "Ice surface temperature layer 2 [K]"}, - /* 37 */ {"ISTL3", "Ice surface temperature layer 3 [K]"}, - /* 38 */ {"ISTL4", "Ice surface temperature layer 4 [K]"}, - /* 39 */ {"SWVL1", "Volumetric soil water layer 1 [m**3 m**-3]"}, - /* 40 */ {"SWVL2", "Volumetric soil water layer 2 [m**3 m**-3]"}, - /* 41 */ {"SWVL3", "Volumetric soil water layer 3 [m**3 m**-3]"}, - /* 42 */ {"SWVL4", "Volumetric soil water layer 4 [m**3 m**-3]"}, - /* 43 */ {"SLT", "Soil type []"}, - /* 44 */ {"ES", "Snow evaporation [m of water]"}, - /* 45 */ {"SMLT", "Snowmelt [m of water]"}, - /* 46 */ {"SDUR", "Solar duration [s]"}, - /* 47 */ {"DSRP", "Direct solar radiation [w m**-2]"}, - /* 48 */ {"MAGSS", "Magnitude of surface stress [N m**-2 s]"}, - /* 49 */ {"10FG", "10 metre wind gust [m s**-1]"}, - /* 50 */ {"LSPF", "Large-scale precipitation fraction [s]"}, - /* 51 */ {"MX2T24", "Maximum temperature at 2 metres since last 24 hours [K]"}, - /* 52 */ {"MN2T24", "Minimum temperature at 2 metres since last 24 hours [K]"}, - /* 53 */ {"MONT", "Montgomery potential [m**2 s**-2]"}, - /* 54 */ {"PRES", "Pressure [Pa]"}, - /* 55 */ {"MEAN2T24", "Mean temperature at 2 metres since last 24 hours [K]"}, - /* 56 */ {"MN2D24", "Mean 2 metre dewpoint temperature in past 24 hours [K]"}, - /* 57 */ {"UVB", "Downward UV radiation at the surface [w m**-2 s]"}, - /* 58 */ {"PAR", "Photosynthetically active radiation at the surface [w m**-2 s]"}, - /* 59 */ {"CAPE", "Convective available potential energy [J kg**-1]"}, - /* 60 */ {"PV", "Potential vorticity [K m**2 kg**-1 s**-1]"}, - /* 61 */ {"var61", "undefined"}, - /* 62 */ {"OBCT", "Observation count []"}, - /* 63 */ {"var63", "Start time for skin temperature difference [s]"}, - /* 64 */ {"var64", "Finish time for skin temperature difference [s]"}, - /* 65 */ {"var65", "Skin temperature difference [K]"}, - /* 66 */ {"var66", "Leaf area index, low vegetation [m**2 / m**2]"}, - /* 67 */ {"var67", "Leaf area index, high vegetation [m**2 / m**2]"}, - /* 68 */ {"var68", "Minimum stomatal resistance, low vegetation [s m**-1]"}, - /* 69 */ {"var69", "Minimum stomatal resistance, high vegetation [s m**-1]"}, - /* 70 */ {"var70", "Biome cover, low vegetation [(0 - 1)]"}, - /* 71 */ {"var71", "Biome cover, high vegetation [(0 - 1)]"}, - /* 72 */ {"ISSRD", "Instantaneous surface solar radiation downwards [w m**-2]"}, - /* 73 */ {"ISTRD", "Instantaneous surface thermal radiation downwards [w m**-2]"}, - /* 74 */ {"SDFOR", "Standard deviation of filtered subgrid orography [m]"}, - /* 75 */ {"CRWC", "Cloud rain water content [kg kg**-1]"}, - /* 76 */ {"CSWC", "Cloud snow water content [kg kg**-1]"}, - /* 77 */ {"ETADOT", "Eta-coordinate vertical velocity [s**-1]"}, - /* 78 */ {"TCLW", "Total column liquid water [kg m**-2]"}, - /* 79 */ {"TCIW", "Total column ice water [kg m**-2]"}, - /* 80 */ {"var80", "Experimental product []"}, - /* 81 */ {"var81", "Experimental product []"}, - /* 82 */ {"var82", "Experimental product []"}, - /* 83 */ {"var83", "Experimental product []"}, - /* 84 */ {"var84", "Experimental product []"}, - /* 85 */ {"var85", "Experimental product []"}, - /* 86 */ {"var86", "Experimental product []"}, - /* 87 */ {"var87", "Experimental product []"}, - /* 88 */ {"var88", "Experimental product []"}, - /* 89 */ {"var89", "Experimental product []"}, - /* 90 */ {"var90", "Experimental product []"}, - /* 91 */ {"var91", "Experimental product []"}, - /* 92 */ {"var92", "Experimental product []"}, - /* 93 */ {"var93", "Experimental product []"}, - /* 94 */ {"var94", "Experimental product []"}, - /* 95 */ {"var95", "Experimental product []"}, - /* 96 */ {"var96", "Experimental product []"}, - /* 97 */ {"var97", "Experimental product []"}, - /* 98 */ {"var98", "Experimental product []"}, - /* 99 */ {"var99", "Experimental product []"}, - /* 100 */ {"var100", "Experimental product []"}, - /* 101 */ {"var101", "Experimental product []"}, - /* 102 */ {"var102", "Experimental product []"}, - /* 103 */ {"var103", "Experimental product []"}, - /* 104 */ {"var104", "Experimental product []"}, - /* 105 */ {"var105", "Experimental product []"}, - /* 106 */ {"var106", "Experimental product []"}, - /* 107 */ {"var107", "Experimental product []"}, - /* 108 */ {"var108", "Experimental product []"}, - /* 109 */ {"var109", "Experimental product []"}, - /* 110 */ {"var110", "Experimental product []"}, - /* 111 */ {"var111", "Experimental product []"}, - /* 112 */ {"var112", "Experimental product []"}, - /* 113 */ {"var113", "Experimental product []"}, - /* 114 */ {"var114", "Experimental product []"}, - /* 115 */ {"var115", "Experimental product []"}, - /* 116 */ {"var116", "Experimental product []"}, - /* 117 */ {"var117", "Experimental product []"}, - /* 118 */ {"var118", "Experimental product []"}, - /* 119 */ {"var119", "Experimental product []"}, - /* 120 */ {"var120", "Experimental product []"}, - /* 121 */ {"MX2T6", "Maximum temperature at 2 metres since last 6 hours [K]"}, - /* 122 */ {"MN2T6", "Minimum temperature at 2 metres since last 6 hours [K]"}, - /* 123 */ {"10FG6", "10 metre wind gust in the past 6 hours [m s**-1]"}, - /* 124 */ {"EMIS", "Surface emissivity [dimensionless]"}, - /* 125 */ {"var125", "Vertically integrated total energy [J m**-2]"}, - /* 126 */ {"var126", "Generic parameter for sensitive area prediction [Various]"}, - /* 127 */ {"AT", "Atmospheric tide []"}, - /* 128 */ {"BV", "Budget values []"}, - /* 129 */ {"Z", "Geopotential [m**2 s**-2]"}, - /* 130 */ {"T", "Temperature [K]"}, - /* 131 */ {"U", "U velocity [m s**-1]"}, - /* 132 */ {"V", "V velocity [m s**-1]"}, - /* 133 */ {"Q", "Specific humidity [kg kg**-1]"}, - /* 134 */ {"SP", "Surface pressure [Pa]"}, - /* 135 */ {"W", "Vertical velocity [Pa s**-1]"}, - /* 136 */ {"TCW", "Total column water [kg m**-2]"}, - /* 137 */ {"TCWV", "Total column water vapour [kg m**-2]"}, - /* 138 */ {"VO", "Vorticity (relative) [s**-1]"}, - /* 139 */ {"STL1", "Soil temperature level 1 [K]"}, - /* 140 */ {"SWL1", "Soil wetness level 1 [m of water]"}, - /* 141 */ {"SD", "Snow depth [m of water equivalent]"}, - /* 142 */ {"LSP", "Stratiform precipitation (Large-scale precipitation) [m]"}, - /* 143 */ {"CP", "Convective precipitation [m]"}, - /* 144 */ {"SF", "Snowfall [m of water equivalent]"}, - /* 145 */ {"BLD", "Boundary layer dissipation [W m**-2 s]"}, - /* 146 */ {"SSHF", "Surface sensible heat flux [W m**-2 s]"}, - /* 147 */ {"SLHF", "Surface latent heat flux [W m**-2 s]"}, - /* 148 */ {"CHNK", "Charnock []"}, - /* 149 */ {"SNR", "Surface net radiation [W m**-2 s]"}, - /* 150 */ {"TNR", "Top net radiation []"}, - /* 151 */ {"MSL", "Mean sea level pressure [Pa]"}, - /* 152 */ {"LNSP", "Logarithm of surface pressure []"}, - /* 153 */ {"SWHR", "Short-wave heating rate [K]"}, - /* 154 */ {"LWHR", "Long-wave heating rate [K]"}, - /* 155 */ {"D", "Divergence [s**-1]"}, - /* 156 */ {"GH", "Height [gpm]"}, - /* 157 */ {"R", "Relative humidity [%]"}, - /* 158 */ {"TSP", "Tendency of surface pressure [Pa s**-1]"}, - /* 159 */ {"BLH", "Boundary layer height [m]"}, - /* 160 */ {"SDOR", "Standard deviation of orography []"}, - /* 161 */ {"ISOR", "Anisotropy of sub-gridscale orography []"}, - /* 162 */ {"ANOR", "Angle of sub-gridscale orography [rad]"}, - /* 163 */ {"SLOR", "Slope of sub-gridscale orography []"}, - /* 164 */ {"TCC", "Total cloud cover [(0 - 1)]"}, - /* 165 */ {"10U", "10 metre U wind component [m s**-1]"}, - /* 166 */ {"10V", "10 metre V wind component [m s**-1]"}, - /* 167 */ {"2T", "2 metre temperature [K]"}, - /* 168 */ {"2D", "2 metre dewpoint temperature [K]"}, - /* 169 */ {"SSRD", "Surface solar radiation downwards [W m**-2 s]"}, - /* 170 */ {"STL2", "Soil temperature level 2 [K]"}, - /* 171 */ {"SWL2", "Soil wetness level 2 [m of water]"}, - /* 172 */ {"LSM", "Land-sea mask [(0 - 1)]"}, - /* 173 */ {"SR", "Surface roughness [m]"}, - /* 174 */ {"AL", "Albedo [(0 - 1)]"}, - /* 175 */ {"STRD", "Surface thermal radiation downwards [W m**-2 s]"}, - /* 176 */ {"SSR", "Surface solar radiation [W m**-2 s]"}, - /* 177 */ {"STR", "Surface thermal radiation [W m**-2 s]"}, - /* 178 */ {"TSR", "Top solar radiation [W m**-2 s]"}, - /* 179 */ {"TTR", "Top thermal radiation [W m**-2 s]"}, - /* 180 */ {"EWSS", "East-West surface stress [N m**-2 s]"}, - /* 181 */ {"NSSS", "North-South surface stress [N m**-2 s]"}, - /* 182 */ {"E", "Evaporation [m of water]"}, - /* 183 */ {"STL3", "Soil temperature level 3 [K]"}, - /* 184 */ {"SWL3", "Soil wetness level 3 [m of water]"}, - /* 185 */ {"CCC", "Convective cloud cover [(0 - 1)]"}, - /* 186 */ {"LCC", "Low cloud cover [(0 - 1)]"}, - /* 187 */ {"MCC", "Medium cloud cover [(0 - 1)]"}, - /* 188 */ {"HCC", "High cloud cover [(0 - 1)]"}, - /* 189 */ {"SUND", "Sunshine duration [s]"}, - /* 190 */ {"EWOV", "East-West component of sub-gridscale orographic variance [m**2]"}, - /* 191 */ {"NSOV", "North-South component of sub-gridscale orographic variance [m**2]"}, - /* 192 */ {"NWOV", "North-West/South-East component of sub-gridscale orographic variance [m**2]"}, - /* 193 */ {"NEOV", "North-East/South-West component of sub-gridscale orographic variance [m**2]"}, - /* 194 */ {"BTMP", "Brightness temperature [K]"}, - /* 195 */ {"LGWS", "Latitudinal component of gravity wave stress [N m**-2 s]"}, - /* 196 */ {"MGWS", "Meridional component of gravity wave stress [N m**-2 s]"}, - /* 197 */ {"GWD", "Gravity wave dissipation [W m**-2 s]"}, - /* 198 */ {"SRC", "Skin reservoir content [m of water]"}, - /* 199 */ {"VEG", "Vegetation fraction [(0 - 1)]"}, - /* 200 */ {"VSO", "Variance of sub-gridscale orography [m**2]"}, - /* 201 */ {"MX2T", "Maximum temperature at 2 metres since previous post-processing [K]"}, - /* 202 */ {"MN2T", "Minimum temperature at 2 metres since previous post-processing [K]"}, - /* 203 */ {"O3", "Ozone mass mixing ratio [kg kg**-1]"}, - /* 204 */ {"PAW", "Precipitation analysis weights []"}, - /* 205 */ {"RO", "Runoff [m]"}, - /* 206 */ {"TCO3", "Total column ozone [kg m**-2]"}, - /* 207 */ {"10SI", "10 metre wind speed [m s**-1]"}, - /* 208 */ {"TSRC", "Top net solar radiation, clear sky [W m**-2 s]"}, - /* 209 */ {"TTRC", "Top net thermal radiation, clear sky [W m**-2 s]"}, - /* 210 */ {"SSRC", "Surface net solar radiation, clear sky [W m**-2 s]"}, - /* 211 */ {"STRC", "Surface net thermal radiation, clear sky [W m**-2 s]"}, - /* 212 */ {"TISR", "TOA incident solar radiation [W m**-2 s]"}, - /* 213 */ {"VIMD", "Vertically integrated moisture divergence [kg m**-2]"}, - /* 214 */ {"DHR", "Diabatic heating by radiation [K]"}, - /* 215 */ {"DHVD", "Diabatic heating by vertical diffusion [K]"}, - /* 216 */ {"DHCC", "Diabatic heating by cumulus convection [K]"}, - /* 217 */ {"DHLC", "Diabatic heating large-scale condensation [K]"}, - /* 218 */ {"VDZW", "Vertical diffusion of zonal wind [m s**-1]"}, - /* 219 */ {"VDMW", "Vertical diffusion of meridional wind [m s**-1]"}, - /* 220 */ {"EWGD", "East-West gravity wave drag tendency [m s**-1]"}, - /* 221 */ {"NSGD", "North-South gravity wave drag tendency [m s**-1]"}, - /* 222 */ {"CTZW", "Convective tendency of zonal wind [m s**-1]"}, - /* 223 */ {"CTMW", "Convective tendency of meridional wind [m s**-1]"}, - /* 224 */ {"VDH", "Vertical diffusion of humidity [kg kg**-1]"}, - /* 225 */ {"HTCC", "Humidity tendency by cumulus convection [kg kg**-1]"}, - /* 226 */ {"HTLC", "Humidity tendency by large-scale condensation [kg kg**-1]"}, - /* 227 */ {"CRNH", "Change from removal of negative humidity [kg kg**-1]"}, - /* 228 */ {"TP", "Total precipitation [m]"}, - /* 229 */ {"IEWS", "Instantaneous X surface stress [N m**-2]"}, - /* 230 */ {"INSS", "Instantaneous Y surface stress [N m**-2]"}, - /* 231 */ {"ISHF", "Instantaneous surface heat flux [W m**-2]"}, - /* 232 */ {"IE", "Instantaneous moisture flux [kg m**-2 s**-1]"}, - /* 233 */ {"ASQ", "Apparent surface humidity [kg kg**-1]"}, - /* 234 */ {"LSRH", "Logarithm of surface roughness length for heat []"}, - /* 235 */ {"SKT", "Skin temperature [K]"}, - /* 236 */ {"STL4", "Soil temperature level 4 [K]"}, - /* 237 */ {"SWL4", "Soil wetness level 4 [m]"}, - /* 238 */ {"TSN", "Temperature of snow layer [K]"}, - /* 239 */ {"CSF", "Convective snowfall [m of water equivalent]"}, - /* 240 */ {"LSF", "Large-scale snowfall [m of water equivalent]"}, - /* 241 */ {"ACF", "Accumulated cloud fraction tendency [(-1 to 1)]"}, - /* 242 */ {"ALW", "Accumulated liquid water tendency [(-1 to 1)]"}, - /* 243 */ {"FAL", "Forecast albedo [(0 - 1)]"}, - /* 244 */ {"FSR", "Forecast surface roughness [m]"}, - /* 245 */ {"FLSR", "Forecast logarithm of surface roughness for heat []"}, - /* 246 */ {"CLWC", "Cloud liquid water content [kg kg**-1]"}, - /* 247 */ {"CIWC", "Cloud ice water content [kg kg**-1]"}, - /* 248 */ {"CC", "Cloud cover [(0 - 1)]"}, - /* 249 */ {"AIW", "Accumulated ice water tendency [(-1 to 1)]"}, - /* 250 */ {"ICE", "Ice age [(0 - 1)]"}, - /* 251 */ {"ATTE", "Adiabatic tendency of temperature [K]"}, - /* 252 */ {"ATHE", "Adiabatic tendency of humidity [kg kg**-1]"}, - /* 253 */ {"ATZE", "Adiabatic tendency of zonal wind [m s**-1]"}, - /* 254 */ {"ATMW", "Adiabatic tendency of meridional wind [m s**-1]"}, - /* 255 */ {"var255", "Indicates a missing value []"}, + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"STRF", "Stream function [m**2 s**-1]"}, + /* 2 */ {"VPOT", "Velocity potential [m**2 s**-1]"}, + /* 3 */ {"PT", "Potential temperature [K]"}, + /* 4 */ {"EQPT", "Equivalent potential temperature [K]"}, + /* 5 */ {"SEPT", "Saturated equivalent potential temperature [K]"}, + /* 6 */ {"SSFR", "Soil sand fraction [(0 - 1)]"}, + /* 7 */ {"SCFR", "Soil clay fraction [(0 - 1)]"}, + /* 8 */ {"SRO", "Surface runoff [m]"}, + /* 9 */ {"SSRO", "Sub-surface runoff [m]"}, + /* 10 */ {"WIND", "Wind speed [m s**-1]"}, + /* 11 */ {"UDVW", "U component of divergent wind [m s**-1]"}, + /* 12 */ {"VDVW", "V component of divergent wind [m s**-1]"}, + /* 13 */ {"URTW", "U component of rotational wind [m s**-1]"}, + /* 14 */ {"VRTW", "V component of rotational wind [m s**-1]"}, + /* 15 */ {"ALUVP", "UV visible albedo for direct radiation [(0 - 1)]"}, + /* 16 */ {"ALUVD", "UV visible albedo for diffuse radiation [(0 - 1)]"}, + /* 17 */ {"ALNIP", "Near IR albedo for direct radiation [(0 - 1)]"}, + /* 18 */ {"ALNID", "Near IR albedo for diffuse radiation [(0 - 1)]"}, + /* 19 */ {"UVCS", "Clear sky surface UV [W m**-2 s]"}, + /* 20 */ {"PARCS", "Clear sky surface PAR [W m**-2 s]"}, + /* 21 */ {"UCTP", "Unbalanced component of temperature [K]"}, + /* 22 */ {"UCLN", "Unbalanced component of logarithm of surface pressure []"}, + /* 23 */ {"UCDV", "Unbalanced component of divergence [s**-1]"}, + /* 24 */ {"var24", "Reserved for future unbalanced components []"}, + /* 25 */ {"var25", "Reserved for future unbalanced components []"}, + /* 26 */ {"CL", "Lake cover [(0 - 1)]"}, + /* 27 */ {"CVL", "Low vegetation cover [(0 - 1)]"}, + /* 28 */ {"CVH", "High vegetation cover [(0 - 1)]"}, + /* 29 */ {"TVL", "Type of low vegetation []"}, + /* 30 */ {"TVH", "Type of high vegetation []"}, + /* 31 */ {"CI", "Sea-ice cover [(0 - 1)]"}, + /* 32 */ {"ASN", "Snow albedo [(0 - 1)]"}, + /* 33 */ {"RSN", "Snow density [kg m**-3]"}, + /* 34 */ {"SSTK", "Sea surface temperature [K]"}, + /* 35 */ {"ISTL1", "Ice surface temperature layer 1 [K]"}, + /* 36 */ {"ISTL2", "Ice surface temperature layer 2 [K]"}, + /* 37 */ {"ISTL3", "Ice surface temperature layer 3 [K]"}, + /* 38 */ {"ISTL4", "Ice surface temperature layer 4 [K]"}, + /* 39 */ {"SWVL1", "Volumetric soil water layer 1 [m**3 m**-3]"}, + /* 40 */ {"SWVL2", "Volumetric soil water layer 2 [m**3 m**-3]"}, + /* 41 */ {"SWVL3", "Volumetric soil water layer 3 [m**3 m**-3]"}, + /* 42 */ {"SWVL4", "Volumetric soil water layer 4 [m**3 m**-3]"}, + /* 43 */ {"SLT", "Soil type []"}, + /* 44 */ {"ES", "Snow evaporation [m of water]"}, + /* 45 */ {"SMLT", "Snowmelt [m of water]"}, + /* 46 */ {"SDUR", "Solar duration [s]"}, + /* 47 */ {"DSRP", "Direct solar radiation [w m**-2]"}, + /* 48 */ {"MAGSS", "Magnitude of surface stress [N m**-2 s]"}, + /* 49 */ {"10FG", "10 metre wind gust [m s**-1]"}, + /* 50 */ {"LSPF", "Large-scale precipitation fraction [s]"}, + /* 51 */ {"MX2T24", "Maximum temperature at 2 metres since last 24 hours [K]"}, + /* 52 */ {"MN2T24", "Minimum temperature at 2 metres since last 24 hours [K]"}, + /* 53 */ {"MONT", "Montgomery potential [m**2 s**-2]"}, + /* 54 */ {"PRES", "Pressure [Pa]"}, + /* 55 */ {"MEAN2T24", "Mean temperature at 2 metres since last 24 hours [K]"}, + /* 56 */ {"MN2D24", "Mean 2 metre dewpoint temperature in past 24 hours [K]"}, + /* 57 */ {"UVB", "Downward UV radiation at the surface [w m**-2 s]"}, + /* 58 */ {"PAR", "Photosynthetically active radiation at the surface [w m**-2 s]"}, + /* 59 */ {"CAPE", "Convective available potential energy [J kg**-1]"}, + /* 60 */ {"PV", "Potential vorticity [K m**2 kg**-1 s**-1]"}, + /* 61 */ {"var61", "undefined"}, + /* 62 */ {"OBCT", "Observation count []"}, + /* 63 */ {"var63", "Start time for skin temperature difference [s]"}, + /* 64 */ {"var64", "Finish time for skin temperature difference [s]"}, + /* 65 */ {"var65", "Skin temperature difference [K]"}, + /* 66 */ {"var66", "Leaf area index, low vegetation [m**2 / m**2]"}, + /* 67 */ {"var67", "Leaf area index, high vegetation [m**2 / m**2]"}, + /* 68 */ {"var68", "Minimum stomatal resistance, low vegetation [s m**-1]"}, + /* 69 */ {"var69", "Minimum stomatal resistance, high vegetation [s m**-1]"}, + /* 70 */ {"var70", "Biome cover, low vegetation [(0 - 1)]"}, + /* 71 */ {"var71", "Biome cover, high vegetation [(0 - 1)]"}, + /* 72 */ {"ISSRD", "Instantaneous surface solar radiation downwards [w m**-2]"}, + /* 73 */ {"ISTRD", "Instantaneous surface thermal radiation downwards [w m**-2]"}, + /* 74 */ {"SDFOR", "Standard deviation of filtered subgrid orography [m]"}, + /* 75 */ {"CRWC", "Cloud rain water content [kg kg**-1]"}, + /* 76 */ {"CSWC", "Cloud snow water content [kg kg**-1]"}, + /* 77 */ {"ETADOT", "Eta-coordinate vertical velocity [s**-1]"}, + /* 78 */ {"TCLW", "Total column liquid water [kg m**-2]"}, + /* 79 */ {"TCIW", "Total column ice water [kg m**-2]"}, + /* 80 */ {"var80", "Experimental product []"}, + /* 81 */ {"var81", "Experimental product []"}, + /* 82 */ {"var82", "Experimental product []"}, + /* 83 */ {"var83", "Experimental product []"}, + /* 84 */ {"var84", "Experimental product []"}, + /* 85 */ {"var85", "Experimental product []"}, + /* 86 */ {"var86", "Experimental product []"}, + /* 87 */ {"var87", "Experimental product []"}, + /* 88 */ {"var88", "Experimental product []"}, + /* 89 */ {"var89", "Experimental product []"}, + /* 90 */ {"var90", "Experimental product []"}, + /* 91 */ {"var91", "Experimental product []"}, + /* 92 */ {"var92", "Experimental product []"}, + /* 93 */ {"var93", "Experimental product []"}, + /* 94 */ {"var94", "Experimental product []"}, + /* 95 */ {"var95", "Experimental product []"}, + /* 96 */ {"var96", "Experimental product []"}, + /* 97 */ {"var97", "Experimental product []"}, + /* 98 */ {"var98", "Experimental product []"}, + /* 99 */ {"var99", "Experimental product []"}, + /* 100 */ {"var100", "Experimental product []"}, + /* 101 */ {"var101", "Experimental product []"}, + /* 102 */ {"var102", "Experimental product []"}, + /* 103 */ {"var103", "Experimental product []"}, + /* 104 */ {"var104", "Experimental product []"}, + /* 105 */ {"var105", "Experimental product []"}, + /* 106 */ {"var106", "Experimental product []"}, + /* 107 */ {"var107", "Experimental product []"}, + /* 108 */ {"var108", "Experimental product []"}, + /* 109 */ {"var109", "Experimental product []"}, + /* 110 */ {"var110", "Experimental product []"}, + /* 111 */ {"var111", "Experimental product []"}, + /* 112 */ {"var112", "Experimental product []"}, + /* 113 */ {"var113", "Experimental product []"}, + /* 114 */ {"var114", "Experimental product []"}, + /* 115 */ {"var115", "Experimental product []"}, + /* 116 */ {"var116", "Experimental product []"}, + /* 117 */ {"var117", "Experimental product []"}, + /* 118 */ {"var118", "Experimental product []"}, + /* 119 */ {"var119", "Experimental product []"}, + /* 120 */ {"var120", "Experimental product []"}, + /* 121 */ {"MX2T6", "Maximum temperature at 2 metres since last 6 hours [K]"}, + /* 122 */ {"MN2T6", "Minimum temperature at 2 metres since last 6 hours [K]"}, + /* 123 */ {"10FG6", "10 metre wind gust in the past 6 hours [m s**-1]"}, + /* 124 */ {"EMIS", "Surface emissivity [dimensionless]"}, + /* 125 */ {"var125", "Vertically integrated total energy [J m**-2]"}, + /* 126 */ {"var126", "Generic parameter for sensitive area prediction [Various]"}, + /* 127 */ {"AT", "Atmospheric tide []"}, + /* 128 */ {"BV", "Budget values []"}, + /* 129 */ {"Z", "Geopotential [m**2 s**-2]"}, + /* 130 */ {"T", "Temperature [K]"}, + /* 131 */ {"U", "U velocity [m s**-1]"}, + /* 132 */ {"V", "V velocity [m s**-1]"}, + /* 133 */ {"Q", "Specific humidity [kg kg**-1]"}, + /* 134 */ {"SP", "Surface pressure [Pa]"}, + /* 135 */ {"W", "Vertical velocity [Pa s**-1]"}, + /* 136 */ {"TCW", "Total column water [kg m**-2]"}, + /* 137 */ {"TCWV", "Total column water vapour [kg m**-2]"}, + /* 138 */ {"VO", "Vorticity (relative) [s**-1]"}, + /* 139 */ {"STL1", "Soil temperature level 1 [K]"}, + /* 140 */ {"SWL1", "Soil wetness level 1 [m of water]"}, + /* 141 */ {"SD", "Snow depth [m of water equivalent]"}, + /* 142 */ {"LSP", "Stratiform precipitation (Large-scale precipitation) [m]"}, + /* 143 */ {"CP", "Convective precipitation [m]"}, + /* 144 */ {"SF", "Snowfall [m of water equivalent]"}, + /* 145 */ {"BLD", "Boundary layer dissipation [W m**-2 s]"}, + /* 146 */ {"SSHF", "Surface sensible heat flux [W m**-2 s]"}, + /* 147 */ {"SLHF", "Surface latent heat flux [W m**-2 s]"}, + /* 148 */ {"CHNK", "Charnock []"}, + /* 149 */ {"SNR", "Surface net radiation [W m**-2 s]"}, + /* 150 */ {"TNR", "Top net radiation []"}, + /* 151 */ {"MSL", "Mean sea level pressure [Pa]"}, + /* 152 */ {"LNSP", "Logarithm of surface pressure []"}, + /* 153 */ {"SWHR", "Short-wave heating rate [K]"}, + /* 154 */ {"LWHR", "Long-wave heating rate [K]"}, + /* 155 */ {"D", "Divergence [s**-1]"}, + /* 156 */ {"GH", "Height [gpm]"}, + /* 157 */ {"R", "Relative humidity [%]"}, + /* 158 */ {"TSP", "Tendency of surface pressure [Pa s**-1]"}, + /* 159 */ {"BLH", "Boundary layer height [m]"}, + /* 160 */ {"SDOR", "Standard deviation of orography []"}, + /* 161 */ {"ISOR", "Anisotropy of sub-gridscale orography []"}, + /* 162 */ {"ANOR", "Angle of sub-gridscale orography [rad]"}, + /* 163 */ {"SLOR", "Slope of sub-gridscale orography []"}, + /* 164 */ {"TCC", "Total cloud cover [(0 - 1)]"}, + /* 165 */ {"10U", "10 metre U wind component [m s**-1]"}, + /* 166 */ {"10V", "10 metre V wind component [m s**-1]"}, + /* 167 */ {"2T", "2 metre temperature [K]"}, + /* 168 */ {"2D", "2 metre dewpoint temperature [K]"}, + /* 169 */ {"SSRD", "Surface solar radiation downwards [W m**-2 s]"}, + /* 170 */ {"STL2", "Soil temperature level 2 [K]"}, + /* 171 */ {"SWL2", "Soil wetness level 2 [m of water]"}, + /* 172 */ {"LSM", "Land-sea mask [(0 - 1)]"}, + /* 173 */ {"SR", "Surface roughness [m]"}, + /* 174 */ {"AL", "Albedo [(0 - 1)]"}, + /* 175 */ {"STRD", "Surface thermal radiation downwards [W m**-2 s]"}, + /* 176 */ {"SSR", "Surface solar radiation [W m**-2 s]"}, + /* 177 */ {"STR", "Surface thermal radiation [W m**-2 s]"}, + /* 178 */ {"TSR", "Top solar radiation [W m**-2 s]"}, + /* 179 */ {"TTR", "Top thermal radiation [W m**-2 s]"}, + /* 180 */ {"EWSS", "East-West surface stress [N m**-2 s]"}, + /* 181 */ {"NSSS", "North-South surface stress [N m**-2 s]"}, + /* 182 */ {"E", "Evaporation [m of water]"}, + /* 183 */ {"STL3", "Soil temperature level 3 [K]"}, + /* 184 */ {"SWL3", "Soil wetness level 3 [m of water]"}, + /* 185 */ {"CCC", "Convective cloud cover [(0 - 1)]"}, + /* 186 */ {"LCC", "Low cloud cover [(0 - 1)]"}, + /* 187 */ {"MCC", "Medium cloud cover [(0 - 1)]"}, + /* 188 */ {"HCC", "High cloud cover [(0 - 1)]"}, + /* 189 */ {"SUND", "Sunshine duration [s]"}, + /* 190 */ {"EWOV", "East-West component of sub-gridscale orographic variance [m**2]"}, + /* 191 */ {"NSOV", "North-South component of sub-gridscale orographic variance [m**2]"}, + /* 192 */ {"NWOV", "North-West/South-East component of sub-gridscale orographic variance [m**2]"}, + /* 193 */ {"NEOV", "North-East/South-West component of sub-gridscale orographic variance [m**2]"}, + /* 194 */ {"BTMP", "Brightness temperature [K]"}, + /* 195 */ {"LGWS", "Latitudinal component of gravity wave stress [N m**-2 s]"}, + /* 196 */ {"MGWS", "Meridional component of gravity wave stress [N m**-2 s]"}, + /* 197 */ {"GWD", "Gravity wave dissipation [W m**-2 s]"}, + /* 198 */ {"SRC", "Skin reservoir content [m of water]"}, + /* 199 */ {"VEG", "Vegetation fraction [(0 - 1)]"}, + /* 200 */ {"VSO", "Variance of sub-gridscale orography [m**2]"}, + /* 201 */ {"MX2T", "Maximum temperature at 2 metres since previous post-processing [K]"}, + /* 202 */ {"MN2T", "Minimum temperature at 2 metres since previous post-processing [K]"}, + /* 203 */ {"O3", "Ozone mass mixing ratio [kg kg**-1]"}, + /* 204 */ {"PAW", "Precipitation analysis weights []"}, + /* 205 */ {"RO", "Runoff [m]"}, + /* 206 */ {"TCO3", "Total column ozone [kg m**-2]"}, + /* 207 */ {"10SI", "10 metre wind speed [m s**-1]"}, + /* 208 */ {"TSRC", "Top net solar radiation, clear sky [W m**-2 s]"}, + /* 209 */ {"TTRC", "Top net thermal radiation, clear sky [W m**-2 s]"}, + /* 210 */ {"SSRC", "Surface net solar radiation, clear sky [W m**-2 s]"}, + /* 211 */ {"STRC", "Surface net thermal radiation, clear sky [W m**-2 s]"}, + /* 212 */ {"TISR", "TOA incident solar radiation [W m**-2 s]"}, + /* 213 */ {"VIMD", "Vertically integrated moisture divergence [kg m**-2]"}, + /* 214 */ {"DHR", "Diabatic heating by radiation [K]"}, + /* 215 */ {"DHVD", "Diabatic heating by vertical diffusion [K]"}, + /* 216 */ {"DHCC", "Diabatic heating by cumulus convection [K]"}, + /* 217 */ {"DHLC", "Diabatic heating large-scale condensation [K]"}, + /* 218 */ {"VDZW", "Vertical diffusion of zonal wind [m s**-1]"}, + /* 219 */ {"VDMW", "Vertical diffusion of meridional wind [m s**-1]"}, + /* 220 */ {"EWGD", "East-West gravity wave drag tendency [m s**-1]"}, + /* 221 */ {"NSGD", "North-South gravity wave drag tendency [m s**-1]"}, + /* 222 */ {"CTZW", "Convective tendency of zonal wind [m s**-1]"}, + /* 223 */ {"CTMW", "Convective tendency of meridional wind [m s**-1]"}, + /* 224 */ {"VDH", "Vertical diffusion of humidity [kg kg**-1]"}, + /* 225 */ {"HTCC", "Humidity tendency by cumulus convection [kg kg**-1]"}, + /* 226 */ {"HTLC", "Humidity tendency by large-scale condensation [kg kg**-1]"}, + /* 227 */ {"CRNH", "Change from removal of negative humidity [kg kg**-1]"}, + /* 228 */ {"TP", "Total precipitation [m]"}, + /* 229 */ {"IEWS", "Instantaneous X surface stress [N m**-2]"}, + /* 230 */ {"INSS", "Instantaneous Y surface stress [N m**-2]"}, + /* 231 */ {"ISHF", "Instantaneous surface heat flux [W m**-2]"}, + /* 232 */ {"IE", "Instantaneous moisture flux [kg m**-2 s**-1]"}, + /* 233 */ {"ASQ", "Apparent surface humidity [kg kg**-1]"}, + /* 234 */ {"LSRH", "Logarithm of surface roughness length for heat []"}, + /* 235 */ {"SKT", "Skin temperature [K]"}, + /* 236 */ {"STL4", "Soil temperature level 4 [K]"}, + /* 237 */ {"SWL4", "Soil wetness level 4 [m]"}, + /* 238 */ {"TSN", "Temperature of snow layer [K]"}, + /* 239 */ {"CSF", "Convective snowfall [m of water equivalent]"}, + /* 240 */ {"LSF", "Large-scale snowfall [m of water equivalent]"}, + /* 241 */ {"ACF", "Accumulated cloud fraction tendency [(-1 to 1)]"}, + /* 242 */ {"ALW", "Accumulated liquid water tendency [(-1 to 1)]"}, + /* 243 */ {"FAL", "Forecast albedo [(0 - 1)]"}, + /* 244 */ {"FSR", "Forecast surface roughness [m]"}, + /* 245 */ {"FLSR", "Forecast logarithm of surface roughness for heat []"}, + /* 246 */ {"CLWC", "Cloud liquid water content [kg kg**-1]"}, + /* 247 */ {"CIWC", "Cloud ice water content [kg kg**-1]"}, + /* 248 */ {"CC", "Cloud cover [(0 - 1)]"}, + /* 249 */ {"AIW", "Accumulated ice water tendency [(-1 to 1)]"}, + /* 250 */ {"ICE", "Ice age [(0 - 1)]"}, + /* 251 */ {"ATTE", "Adiabatic tendency of temperature [K]"}, + /* 252 */ {"ATHE", "Adiabatic tendency of humidity [kg kg**-1]"}, + /* 253 */ {"ATZE", "Adiabatic tendency of zonal wind [m s**-1]"}, + /* 254 */ {"ATMW", "Adiabatic tendency of meridional wind [m s**-1]"}, + /* 255 */ {"var255", "Indicates a missing value []"}, }; const struct ParmTable parm_table_ecmwf_129[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"STRF", "Stream function [m**2 s**-1]"}, - /* 2 */ {"VPOT", "Velocity potential [m**2 s**-1]"}, - /* 3 */ {"PT", "Potential temperature [K]"}, - /* 4 */ {"EQPT", "Equivalent potential temperature [K]"}, - /* 5 */ {"SEPT", "Saturated equivalent potential temperature [K]"}, - /* 6 */ {"var6", "undefined"}, - /* 7 */ {"var7", "undefined"}, - /* 8 */ {"var8", "undefined"}, - /* 9 */ {"var9", "undefined"}, - /* 10 */ {"var10", "undefined"}, - /* 11 */ {"UDVW", "U component of divergent wind [m s**-1]"}, - /* 12 */ {"VDVW", "V component of divergent wind [m s**-1]"}, - /* 13 */ {"URTW", "U component of rotational wind [m s**-1]"}, - /* 14 */ {"VRTW", "V component of rotational wind [m s**-1]"}, - /* 15 */ {"var15", "undefined"}, - /* 16 */ {"var16", "undefined"}, - /* 17 */ {"var17", "undefined"}, - /* 18 */ {"var18", "undefined"}, - /* 19 */ {"var19", "undefined"}, - /* 20 */ {"var20", "undefined"}, - /* 21 */ {"UCTP", "Unbalanced component of temperature [K]"}, - /* 22 */ {"UCLN", "Unbalanced component of logarithm of surface pressure []"}, - /* 23 */ {"UCDV", "Unbalanced component of divergence [s**-1]"}, - /* 24 */ {"var24", "Reserved for future unbalanced components []"}, - /* 25 */ {"var25", "Reserved for future unbalanced components []"}, - /* 26 */ {"CL", "Lake cover [(0 - 1)]"}, - /* 27 */ {"CVL", "Low vegetation cover [(0 - 1)]"}, - /* 28 */ {"CVH", "High vegetation cover [(0 - 1)]"}, - /* 29 */ {"TVL", "Type of low vegetation []"}, - /* 30 */ {"TVH", "Type of high vegetation []"}, - /* 31 */ {"CI", "Sea-ice cover [(0 - 1)]"}, - /* 32 */ {"ASN", "Snow albedo [(0 - 1)]"}, - /* 33 */ {"RSN", "Snow density [kg m**-3]"}, - /* 34 */ {"SSTK", "Sea surface temperature [K]"}, - /* 35 */ {"ISTL1", "Ice surface temperature layer 1 [K]"}, - /* 36 */ {"ISTL2", "Ice surface temperature layer 2 [K]"}, - /* 37 */ {"ISTL3", "Ice surface temperature layer 3 [K]"}, - /* 38 */ {"ISTL4", "Ice surface temperature layer 4 [K]"}, - /* 39 */ {"SWVL1", "Volumetric soil water layer 1 [m**3 m**-3]"}, - /* 40 */ {"SWVL2", "Volumetric soil water layer 2 [m**3 m**-3]"}, - /* 41 */ {"SWVL3", "Volumetric soil water layer 3 [m**3 m**-3]"}, - /* 42 */ {"SWVL4", "Volumetric soil water layer 4 [m**3 m**-3]"}, - /* 43 */ {"SLT", "Soil type []"}, - /* 44 */ {"ES", "Snow evaporation [m of water]"}, - /* 45 */ {"SMLT", "Snowmelt [m of water]"}, - /* 46 */ {"SDUR", "Solar duration [s]"}, - /* 47 */ {"DSRP", "Direct solar radiation [w m**-2]"}, - /* 48 */ {"MAGSS", "Magnitude of surface stress [N m**-2 s]"}, - /* 49 */ {"10FG", "10 metre wind gust [m s**-1]"}, - /* 50 */ {"LSPF", "Large-scale precipitation fraction [s]"}, - /* 51 */ {"MX2T24", "Maximum 2 metre temperature [K]"}, - /* 52 */ {"MN2T24", "Minimum 2 metre temperature [K]"}, - /* 53 */ {"MONT", "Montgomery potential [m**2 s**-2]"}, - /* 54 */ {"PRES", "Pressure [Pa]"}, - /* 55 */ {"MEAN2T24", "Mean 2 metre temperature in past 24 hours [K]"}, - /* 56 */ {"MN2D24", "Mean 2 metre dewpoint temperature in past 24 hours [K]"}, - /* 57 */ {"UVB", "Downward UV radiation at the surface [w m**-2 s]"}, - /* 58 */ {"PAR", "Photosynthetically active radiation at the surface [w m**-2 s]"}, - /* 59 */ {"CAPE", "Convective available potential energy [J kg**-1]"}, - /* 60 */ {"PV", "Potential vorticity [K m**2 kg**-1 s**-1]"}, - /* 61 */ {"TPO", "Total precipitation from observations [Millimetres*100 + number of stations]"}, - /* 62 */ {"OBCT", "Observation count []"}, - /* 63 */ {"var63", "Start time for skin temperature difference [s]"}, - /* 64 */ {"var64", "Finish time for skin temperature difference [s]"}, - /* 65 */ {"var65", "Skin temperature difference [K]"}, - /* 66 */ {"var66", "Leaf area index, low vegetation [m**2 / m**2]"}, - /* 67 */ {"var67", "Leaf area index, high vegetation [m**2 / m**2]"}, - /* 68 */ {"var68", "Minimum stomatal resistance, low vegetation [s m**-1]"}, - /* 69 */ {"var69", "Minimum stomatal resistance, high vegetation [s m**-1]"}, - /* 70 */ {"var70", "Biome cover, low vegetation [(0 - 1)]"}, - /* 71 */ {"var71", "Biome cover, high vegetation [(0 - 1)]"}, - /* 72 */ {"var72", "undefined"}, - /* 73 */ {"var73", "undefined"}, - /* 74 */ {"var74", "undefined"}, - /* 75 */ {"var75", "undefined"}, - /* 76 */ {"var76", "undefined"}, - /* 77 */ {"var77", "undefined"}, - /* 78 */ {"var78", "Total column liquid water [kg m**-2]"}, - /* 79 */ {"var79", "Total column ice water [kg m**-2]"}, - /* 80 */ {"var80", "Experimental product []"}, - /* 81 */ {"var81", "Experimental product []"}, - /* 82 */ {"var82", "Experimental product []"}, - /* 83 */ {"var83", "Experimental product []"}, - /* 84 */ {"var84", "Experimental product []"}, - /* 85 */ {"var85", "Experimental product []"}, - /* 86 */ {"var86", "Experimental product []"}, - /* 87 */ {"var87", "Experimental product []"}, - /* 88 */ {"var88", "Experimental product []"}, - /* 89 */ {"var89", "Experimental product []"}, - /* 90 */ {"var90", "Experimental product []"}, - /* 91 */ {"var91", "Experimental product []"}, - /* 92 */ {"var92", "Experimental product []"}, - /* 93 */ {"var93", "Experimental product []"}, - /* 94 */ {"var94", "Experimental product []"}, - /* 95 */ {"var95", "Experimental product []"}, - /* 96 */ {"var96", "Experimental product []"}, - /* 97 */ {"var97", "Experimental product []"}, - /* 98 */ {"var98", "Experimental product []"}, - /* 99 */ {"var99", "Experimental product []"}, - /* 100 */ {"var100", "Experimental product []"}, - /* 101 */ {"var101", "Experimental product []"}, - /* 102 */ {"var102", "Experimental product []"}, - /* 103 */ {"var103", "Experimental product []"}, - /* 104 */ {"var104", "Experimental product []"}, - /* 105 */ {"var105", "Experimental product []"}, - /* 106 */ {"var106", "Experimental product []"}, - /* 107 */ {"var107", "Experimental product []"}, - /* 108 */ {"var108", "Experimental product []"}, - /* 109 */ {"var109", "Experimental product []"}, - /* 110 */ {"var110", "Experimental product []"}, - /* 111 */ {"var111", "Experimental product []"}, - /* 112 */ {"var112", "Experimental product []"}, - /* 113 */ {"var113", "Experimental product []"}, - /* 114 */ {"var114", "Experimental product []"}, - /* 115 */ {"var115", "Experimental product []"}, - /* 116 */ {"var116", "Experimental product []"}, - /* 117 */ {"var117", "Experimental product []"}, - /* 118 */ {"var118", "Experimental product []"}, - /* 119 */ {"var119", "Experimental product []"}, - /* 120 */ {"var120", "Experimental product []"}, - /* 121 */ {"MX2T6", "Maximum temperature at 2 metres [K]"}, - /* 122 */ {"MN2T6", "Minimum temperature at 2 metres [K]"}, - /* 123 */ {"10FG6", "10 metre wind gust in the past 6 hours [m s**-1]"}, - /* 124 */ {"var124", "undefined"}, - /* 125 */ {"var125", "Vertically integrated total energy [J m**-2]"}, - /* 126 */ {"var126", "Generic parameter for sensitive area prediction [Various]"}, - /* 127 */ {"AT", "Atmospheric tide []"}, - /* 128 */ {"BV", "Budget values []"}, - /* 129 */ {"Z", "Geopotential [m**2 s**-2]"}, - /* 130 */ {"T", "Temperature [K]"}, - /* 131 */ {"U", "U velocity [m s**-1]"}, - /* 132 */ {"V", "V velocity [m s**-1]"}, - /* 133 */ {"Q", "Specific humidity [kg kg**-1]"}, - /* 134 */ {"SP", "Surface pressure [Pa]"}, - /* 135 */ {"W", "Vertical velocity [Pa s**-1]"}, - /* 136 */ {"TCW", "Total column water [kg m**-2]"}, - /* 137 */ {"TCWV", "Total column water vapour [kg m**-2]"}, - /* 138 */ {"VO", "Vorticity (relative) [s**-1]"}, - /* 139 */ {"STL1", "Soil temperature level 1 [K]"}, - /* 140 */ {"SWL1", "Soil wetness level 1 [m of water]"}, - /* 141 */ {"SD", "Snow depth [m of water equivalent]"}, - /* 142 */ {"LSP", "Stratiform precipitation (Large-scale precipitation) [m]"}, - /* 143 */ {"CP", "Convective precipitation [m]"}, - /* 144 */ {"SF", "Snowfall (convective + stratiform) [m of water equivalent]"}, - /* 145 */ {"BLD", "Boundary layer dissipation [W m**-2 s]"}, - /* 146 */ {"SSHF", "Surface sensible heat flux [W m**-2 s]"}, - /* 147 */ {"SLHF", "Surface latent heat flux [W m**-2 s]"}, - /* 148 */ {"CHNK", "Charnock []"}, - /* 149 */ {"SNR", "Surface net radiation [W m**-2 s]"}, - /* 150 */ {"TNR", "Top net radiation []"}, - /* 151 */ {"MSL", "Mean sea level pressure [Pa]"}, - /* 152 */ {"LNSP", "Logarithm of surface pressure []"}, - /* 153 */ {"SWHR", "Short-wave heating rate [K]"}, - /* 154 */ {"LWHR", "Long-wave heating rate [K]"}, - /* 155 */ {"D", "Divergence [s**-1]"}, - /* 156 */ {"GH", "Height [m]"}, - /* 157 */ {"R", "Relative humidity [%]"}, - /* 158 */ {"TSP", "Tendency of surface pressure [Pa s**-1]"}, - /* 159 */ {"BLH", "Boundary layer height [m]"}, - /* 160 */ {"SDOR", "Standard deviation of orography []"}, - /* 161 */ {"ISOR", "Anisotropy of sub-gridscale orography []"}, - /* 162 */ {"ANOR", "Angle of sub-gridscale orography [rad]"}, - /* 163 */ {"SLOR", "Slope of sub-gridscale orography []"}, - /* 164 */ {"TCC", "Total cloud cover [(0 - 1)]"}, - /* 165 */ {"10U", "10 metre U wind component [m s**-1]"}, - /* 166 */ {"10V", "10 metre V wind component [m s**-1]"}, - /* 167 */ {"2T", "2 metre temperature [K]"}, - /* 168 */ {"2D", "2 metre dewpoint temperature [K]"}, - /* 169 */ {"SSRD", "Surface solar radiation downwards [W m**-2 s]"}, - /* 170 */ {"STL2", "Soil temperature level 2 [K]"}, - /* 171 */ {"SWL2", "Soil wetness level 2 [m of water]"}, - /* 172 */ {"LSM", "Land-sea mask [(0 - 1)]"}, - /* 173 */ {"SR", "Surface roughness [m]"}, - /* 174 */ {"AL", "Albedo [(0 - 1)]"}, - /* 175 */ {"STRD", "Surface thermal radiation downwards [W m**-2 s]"}, - /* 176 */ {"SSR", "Surface solar radiation [W m**-2 s]"}, - /* 177 */ {"STR", "Surface thermal radiation [W m**-2 s]"}, - /* 178 */ {"TSR", "Top solar radiation [W m**-2 s]"}, - /* 179 */ {"TTR", "Top thermal radiation [W m**-2 s]"}, - /* 180 */ {"EWSS", "East-West surface stress [N m**-2 s]"}, - /* 181 */ {"NSSS", "North-South surface stress [N m**-2 s]"}, - /* 182 */ {"E", "Evaporation [m of water]"}, - /* 183 */ {"STL3", "Soil temperature level 3 [K]"}, - /* 184 */ {"SWL3", "Soil wetness level 3 [m of water]"}, - /* 185 */ {"CCC", "Convective cloud cover [(0 - 1)]"}, - /* 186 */ {"LCC", "Low cloud cover [(0 - 1)]"}, - /* 187 */ {"MCC", "Medium cloud cover [(0 - 1)]"}, - /* 188 */ {"HCC", "High cloud cover [(0 - 1)]"}, - /* 189 */ {"SUND", "Sunshine duration [s]"}, - /* 190 */ {"EWOV", "East-West component of sub-gridscale orographic variance [m**2]"}, - /* 191 */ {"NSOV", "North-South component of sub-gridscale orographic variance [m**2]"}, - /* 192 */ {"NWOV", "North-West/South-East component of sub-gridscale orographic variance [m**2]"}, - /* 193 */ {"NEOV", "North-East/South-West component of sub-gridscale orographic variance [m**2]"}, - /* 194 */ {"BTMP", "Brightness temperature [K]"}, - /* 195 */ {"LGWS", "Latitudinal component of gravity wave stress [N m**-2 s]"}, - /* 196 */ {"MGWS", "Meridional component of gravity wave stress [N m**-2 s]"}, - /* 197 */ {"GWD", "Gravity wave dissipation [W m**-2 s]"}, - /* 198 */ {"SRC", "Skin reservoir content [m of water]"}, - /* 199 */ {"VEG", "Vegetation fraction [(0 - 1)]"}, - /* 200 */ {"VSO", "Variance of sub-gridscale orography [m**2]"}, - /* 201 */ {"MX2T", "Maximum temperature at 2 metres since previous post-processing [K]"}, - /* 202 */ {"MN2T", "Minimum temperature at 2 metres since previous post-processing [K]"}, - /* 203 */ {"O3", "Ozone mass mixing ratio [kg kg**-1]"}, - /* 204 */ {"PAW", "Precipitation analysis weights []"}, - /* 205 */ {"RO", "Runoff [m]"}, - /* 206 */ {"TCO3", "Total column ozone [kg m**-2]"}, - /* 207 */ {"10SI", "10 metre wind speed [m s**-1]"}, - /* 208 */ {"TSRC", "Top net solar radiation, clear sky [W m**-2 s]"}, - /* 209 */ {"TTRC", "Top net thermal radiation, clear sky [W m**-2 s]"}, - /* 210 */ {"SSRC", "Surface net solar radiation, clear sky [W m**-2 s]"}, - /* 211 */ {"STRC", "Surface net thermal radiation, clear sky [W m**-2 s]"}, - /* 212 */ {"TISR", "TOA incident solar radiation [W m**-2 s]"}, - /* 213 */ {"var213", "undefined"}, - /* 214 */ {"DHR", "Diabatic heating by radiation [K]"}, - /* 215 */ {"DHVD", "Diabatic heating by vertical diffusion [K]"}, - /* 216 */ {"DHCC", "Diabatic heating by cumulus convection [K]"}, - /* 217 */ {"DHLC", "Diabatic heating large-scale condensation [K]"}, - /* 218 */ {"VDZW", "Vertical diffusion of zonal wind [m s**-1]"}, - /* 219 */ {"VDMW", "Vertical diffusion of meridional wind [m s**-1]"}, - /* 220 */ {"EWGD", "East-West gravity wave drag tendency [m s**-1]"}, - /* 221 */ {"NSGD", "North-South gravity wave drag tendency [m s**-1]"}, - /* 222 */ {"CTZW", "Convective tendency of zonal wind [m s**-1]"}, - /* 223 */ {"CTMW", "Convective tendency of meridional wind [m s**-1]"}, - /* 224 */ {"VDH", "Vertical diffusion of humidity [kg kg**-1]"}, - /* 225 */ {"HTCC", "Humidity tendency by cumulus convection [kg kg**-1]"}, - /* 226 */ {"HTLC", "Humidity tendency by large-scale condensation [kg kg**-1]"}, - /* 227 */ {"CRNH", "Change from removal of negative humidity [kg kg**-1]"}, - /* 228 */ {"TP", "Total precipitation [m]"}, - /* 229 */ {"IEWS", "Instantaneous X surface stress [N m**-2]"}, - /* 230 */ {"INSS", "Instantaneous Y surface stress [N m**-2]"}, - /* 231 */ {"ISHF", "Instantaneous surface heat flux [W m**-2]"}, - /* 232 */ {"IE", "Instantaneous moisture flux [kg m**-2 s]"}, - /* 233 */ {"ASQ", "Apparent surface humidity [kg kg**-1]"}, - /* 234 */ {"LSRH", "Logarithm of surface roughness length for heat []"}, - /* 235 */ {"SKT", "Skin temperature [K]"}, - /* 236 */ {"STL4", "Soil temperature level 4 [K]"}, - /* 237 */ {"SWL4", "Soil wetness level 4 [m]"}, - /* 238 */ {"TSN", "Temperature of snow layer [K]"}, - /* 239 */ {"CSF", "Convective snowfall [m of water equivalent]"}, - /* 240 */ {"LSF", "Large-scale snowfall [m of water equivalent]"}, - /* 241 */ {"ACF", "Accumulated cloud fraction tendency [(-1 to 1)]"}, - /* 242 */ {"ALW", "Accumulated liquid water tendency [(-1 to 1)]"}, - /* 243 */ {"FAL", "Forecast albedo [(0 - 1)]"}, - /* 244 */ {"FSR", "Forecast surface roughness [m]"}, - /* 245 */ {"FLSR", "Forecast logarithm of surface roughness for heat []"}, - /* 246 */ {"CLWC", "Cloud liquid water content [kg kg**-1]"}, - /* 247 */ {"CIWC", "Cloud ice water content [kg kg**-1]"}, - /* 248 */ {"CC", "Cloud cover [(0 - 1)]"}, - /* 249 */ {"AIW", "Accumulated ice water tendency [(-1 to 1)]"}, - /* 250 */ {"ICE", "Ice age [(0 - 1)]"}, - /* 251 */ {"ATTE", "Adiabatic tendency of temperature [K]"}, - /* 252 */ {"ATHE", "Adiabatic tendency of humidity [kg kg**-1]"}, - /* 253 */ {"ATZE", "Adiabatic tendency of zonal wind [m s**-1]"}, - /* 254 */ {"ATMW", "Adiabatic tendency of meridional wind [m s**-1]"}, - /* 255 */ {"var255", "Indicates a missing value []"}, + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"STRF", "Stream function [m**2 s**-1]"}, + /* 2 */ {"VPOT", "Velocity potential [m**2 s**-1]"}, + /* 3 */ {"PT", "Potential temperature [K]"}, + /* 4 */ {"EQPT", "Equivalent potential temperature [K]"}, + /* 5 */ {"SEPT", "Saturated equivalent potential temperature [K]"}, + /* 6 */ {"var6", "undefined"}, + /* 7 */ {"var7", "undefined"}, + /* 8 */ {"var8", "undefined"}, + /* 9 */ {"var9", "undefined"}, + /* 10 */ {"var10", "undefined"}, + /* 11 */ {"UDVW", "U component of divergent wind [m s**-1]"}, + /* 12 */ {"VDVW", "V component of divergent wind [m s**-1]"}, + /* 13 */ {"URTW", "U component of rotational wind [m s**-1]"}, + /* 14 */ {"VRTW", "V component of rotational wind [m s**-1]"}, + /* 15 */ {"var15", "undefined"}, + /* 16 */ {"var16", "undefined"}, + /* 17 */ {"var17", "undefined"}, + /* 18 */ {"var18", "undefined"}, + /* 19 */ {"var19", "undefined"}, + /* 20 */ {"var20", "undefined"}, + /* 21 */ {"UCTP", "Unbalanced component of temperature [K]"}, + /* 22 */ {"UCLN", "Unbalanced component of logarithm of surface pressure []"}, + /* 23 */ {"UCDV", "Unbalanced component of divergence [s**-1]"}, + /* 24 */ {"var24", "Reserved for future unbalanced components []"}, + /* 25 */ {"var25", "Reserved for future unbalanced components []"}, + /* 26 */ {"CL", "Lake cover [(0 - 1)]"}, + /* 27 */ {"CVL", "Low vegetation cover [(0 - 1)]"}, + /* 28 */ {"CVH", "High vegetation cover [(0 - 1)]"}, + /* 29 */ {"TVL", "Type of low vegetation []"}, + /* 30 */ {"TVH", "Type of high vegetation []"}, + /* 31 */ {"CI", "Sea-ice cover [(0 - 1)]"}, + /* 32 */ {"ASN", "Snow albedo [(0 - 1)]"}, + /* 33 */ {"RSN", "Snow density [kg m**-3]"}, + /* 34 */ {"SSTK", "Sea surface temperature [K]"}, + /* 35 */ {"ISTL1", "Ice surface temperature layer 1 [K]"}, + /* 36 */ {"ISTL2", "Ice surface temperature layer 2 [K]"}, + /* 37 */ {"ISTL3", "Ice surface temperature layer 3 [K]"}, + /* 38 */ {"ISTL4", "Ice surface temperature layer 4 [K]"}, + /* 39 */ {"SWVL1", "Volumetric soil water layer 1 [m**3 m**-3]"}, + /* 40 */ {"SWVL2", "Volumetric soil water layer 2 [m**3 m**-3]"}, + /* 41 */ {"SWVL3", "Volumetric soil water layer 3 [m**3 m**-3]"}, + /* 42 */ {"SWVL4", "Volumetric soil water layer 4 [m**3 m**-3]"}, + /* 43 */ {"SLT", "Soil type []"}, + /* 44 */ {"ES", "Snow evaporation [m of water]"}, + /* 45 */ {"SMLT", "Snowmelt [m of water]"}, + /* 46 */ {"SDUR", "Solar duration [s]"}, + /* 47 */ {"DSRP", "Direct solar radiation [w m**-2]"}, + /* 48 */ {"MAGSS", "Magnitude of surface stress [N m**-2 s]"}, + /* 49 */ {"10FG", "10 metre wind gust [m s**-1]"}, + /* 50 */ {"LSPF", "Large-scale precipitation fraction [s]"}, + /* 51 */ {"MX2T24", "Maximum 2 metre temperature [K]"}, + /* 52 */ {"MN2T24", "Minimum 2 metre temperature [K]"}, + /* 53 */ {"MONT", "Montgomery potential [m**2 s**-2]"}, + /* 54 */ {"PRES", "Pressure [Pa]"}, + /* 55 */ {"MEAN2T24", "Mean 2 metre temperature in past 24 hours [K]"}, + /* 56 */ {"MN2D24", "Mean 2 metre dewpoint temperature in past 24 hours [K]"}, + /* 57 */ {"UVB", "Downward UV radiation at the surface [w m**-2 s]"}, + /* 58 */ {"PAR", "Photosynthetically active radiation at the surface [w m**-2 s]"}, + /* 59 */ {"CAPE", "Convective available potential energy [J kg**-1]"}, + /* 60 */ {"PV", "Potential vorticity [K m**2 kg**-1 s**-1]"}, + /* 61 */ {"TPO", "Total precipitation from observations [Millimetres*100 + number of stations]"}, + /* 62 */ {"OBCT", "Observation count []"}, + /* 63 */ {"var63", "Start time for skin temperature difference [s]"}, + /* 64 */ {"var64", "Finish time for skin temperature difference [s]"}, + /* 65 */ {"var65", "Skin temperature difference [K]"}, + /* 66 */ {"var66", "Leaf area index, low vegetation [m**2 / m**2]"}, + /* 67 */ {"var67", "Leaf area index, high vegetation [m**2 / m**2]"}, + /* 68 */ {"var68", "Minimum stomatal resistance, low vegetation [s m**-1]"}, + /* 69 */ {"var69", "Minimum stomatal resistance, high vegetation [s m**-1]"}, + /* 70 */ {"var70", "Biome cover, low vegetation [(0 - 1)]"}, + /* 71 */ {"var71", "Biome cover, high vegetation [(0 - 1)]"}, + /* 72 */ {"var72", "undefined"}, + /* 73 */ {"var73", "undefined"}, + /* 74 */ {"var74", "undefined"}, + /* 75 */ {"var75", "undefined"}, + /* 76 */ {"var76", "undefined"}, + /* 77 */ {"var77", "undefined"}, + /* 78 */ {"var78", "Total column liquid water [kg m**-2]"}, + /* 79 */ {"var79", "Total column ice water [kg m**-2]"}, + /* 80 */ {"var80", "Experimental product []"}, + /* 81 */ {"var81", "Experimental product []"}, + /* 82 */ {"var82", "Experimental product []"}, + /* 83 */ {"var83", "Experimental product []"}, + /* 84 */ {"var84", "Experimental product []"}, + /* 85 */ {"var85", "Experimental product []"}, + /* 86 */ {"var86", "Experimental product []"}, + /* 87 */ {"var87", "Experimental product []"}, + /* 88 */ {"var88", "Experimental product []"}, + /* 89 */ {"var89", "Experimental product []"}, + /* 90 */ {"var90", "Experimental product []"}, + /* 91 */ {"var91", "Experimental product []"}, + /* 92 */ {"var92", "Experimental product []"}, + /* 93 */ {"var93", "Experimental product []"}, + /* 94 */ {"var94", "Experimental product []"}, + /* 95 */ {"var95", "Experimental product []"}, + /* 96 */ {"var96", "Experimental product []"}, + /* 97 */ {"var97", "Experimental product []"}, + /* 98 */ {"var98", "Experimental product []"}, + /* 99 */ {"var99", "Experimental product []"}, + /* 100 */ {"var100", "Experimental product []"}, + /* 101 */ {"var101", "Experimental product []"}, + /* 102 */ {"var102", "Experimental product []"}, + /* 103 */ {"var103", "Experimental product []"}, + /* 104 */ {"var104", "Experimental product []"}, + /* 105 */ {"var105", "Experimental product []"}, + /* 106 */ {"var106", "Experimental product []"}, + /* 107 */ {"var107", "Experimental product []"}, + /* 108 */ {"var108", "Experimental product []"}, + /* 109 */ {"var109", "Experimental product []"}, + /* 110 */ {"var110", "Experimental product []"}, + /* 111 */ {"var111", "Experimental product []"}, + /* 112 */ {"var112", "Experimental product []"}, + /* 113 */ {"var113", "Experimental product []"}, + /* 114 */ {"var114", "Experimental product []"}, + /* 115 */ {"var115", "Experimental product []"}, + /* 116 */ {"var116", "Experimental product []"}, + /* 117 */ {"var117", "Experimental product []"}, + /* 118 */ {"var118", "Experimental product []"}, + /* 119 */ {"var119", "Experimental product []"}, + /* 120 */ {"var120", "Experimental product []"}, + /* 121 */ {"MX2T6", "Maximum temperature at 2 metres [K]"}, + /* 122 */ {"MN2T6", "Minimum temperature at 2 metres [K]"}, + /* 123 */ {"10FG6", "10 metre wind gust in the past 6 hours [m s**-1]"}, + /* 124 */ {"var124", "undefined"}, + /* 125 */ {"var125", "Vertically integrated total energy [J m**-2]"}, + /* 126 */ {"var126", "Generic parameter for sensitive area prediction [Various]"}, + /* 127 */ {"AT", "Atmospheric tide []"}, + /* 128 */ {"BV", "Budget values []"}, + /* 129 */ {"Z", "Geopotential [m**2 s**-2]"}, + /* 130 */ {"T", "Temperature [K]"}, + /* 131 */ {"U", "U velocity [m s**-1]"}, + /* 132 */ {"V", "V velocity [m s**-1]"}, + /* 133 */ {"Q", "Specific humidity [kg kg**-1]"}, + /* 134 */ {"SP", "Surface pressure [Pa]"}, + /* 135 */ {"W", "Vertical velocity [Pa s**-1]"}, + /* 136 */ {"TCW", "Total column water [kg m**-2]"}, + /* 137 */ {"TCWV", "Total column water vapour [kg m**-2]"}, + /* 138 */ {"VO", "Vorticity (relative) [s**-1]"}, + /* 139 */ {"STL1", "Soil temperature level 1 [K]"}, + /* 140 */ {"SWL1", "Soil wetness level 1 [m of water]"}, + /* 141 */ {"SD", "Snow depth [m of water equivalent]"}, + /* 142 */ {"LSP", "Stratiform precipitation (Large-scale precipitation) [m]"}, + /* 143 */ {"CP", "Convective precipitation [m]"}, + /* 144 */ {"SF", "Snowfall (convective + stratiform) [m of water equivalent]"}, + /* 145 */ {"BLD", "Boundary layer dissipation [W m**-2 s]"}, + /* 146 */ {"SSHF", "Surface sensible heat flux [W m**-2 s]"}, + /* 147 */ {"SLHF", "Surface latent heat flux [W m**-2 s]"}, + /* 148 */ {"CHNK", "Charnock []"}, + /* 149 */ {"SNR", "Surface net radiation [W m**-2 s]"}, + /* 150 */ {"TNR", "Top net radiation []"}, + /* 151 */ {"MSL", "Mean sea level pressure [Pa]"}, + /* 152 */ {"LNSP", "Logarithm of surface pressure []"}, + /* 153 */ {"SWHR", "Short-wave heating rate [K]"}, + /* 154 */ {"LWHR", "Long-wave heating rate [K]"}, + /* 155 */ {"D", "Divergence [s**-1]"}, + /* 156 */ {"GH", "Height [m]"}, + /* 157 */ {"R", "Relative humidity [%]"}, + /* 158 */ {"TSP", "Tendency of surface pressure [Pa s**-1]"}, + /* 159 */ {"BLH", "Boundary layer height [m]"}, + /* 160 */ {"SDOR", "Standard deviation of orography []"}, + /* 161 */ {"ISOR", "Anisotropy of sub-gridscale orography []"}, + /* 162 */ {"ANOR", "Angle of sub-gridscale orography [rad]"}, + /* 163 */ {"SLOR", "Slope of sub-gridscale orography []"}, + /* 164 */ {"TCC", "Total cloud cover [(0 - 1)]"}, + /* 165 */ {"10U", "10 metre U wind component [m s**-1]"}, + /* 166 */ {"10V", "10 metre V wind component [m s**-1]"}, + /* 167 */ {"2T", "2 metre temperature [K]"}, + /* 168 */ {"2D", "2 metre dewpoint temperature [K]"}, + /* 169 */ {"SSRD", "Surface solar radiation downwards [W m**-2 s]"}, + /* 170 */ {"STL2", "Soil temperature level 2 [K]"}, + /* 171 */ {"SWL2", "Soil wetness level 2 [m of water]"}, + /* 172 */ {"LSM", "Land-sea mask [(0 - 1)]"}, + /* 173 */ {"SR", "Surface roughness [m]"}, + /* 174 */ {"AL", "Albedo [(0 - 1)]"}, + /* 175 */ {"STRD", "Surface thermal radiation downwards [W m**-2 s]"}, + /* 176 */ {"SSR", "Surface solar radiation [W m**-2 s]"}, + /* 177 */ {"STR", "Surface thermal radiation [W m**-2 s]"}, + /* 178 */ {"TSR", "Top solar radiation [W m**-2 s]"}, + /* 179 */ {"TTR", "Top thermal radiation [W m**-2 s]"}, + /* 180 */ {"EWSS", "East-West surface stress [N m**-2 s]"}, + /* 181 */ {"NSSS", "North-South surface stress [N m**-2 s]"}, + /* 182 */ {"E", "Evaporation [m of water]"}, + /* 183 */ {"STL3", "Soil temperature level 3 [K]"}, + /* 184 */ {"SWL3", "Soil wetness level 3 [m of water]"}, + /* 185 */ {"CCC", "Convective cloud cover [(0 - 1)]"}, + /* 186 */ {"LCC", "Low cloud cover [(0 - 1)]"}, + /* 187 */ {"MCC", "Medium cloud cover [(0 - 1)]"}, + /* 188 */ {"HCC", "High cloud cover [(0 - 1)]"}, + /* 189 */ {"SUND", "Sunshine duration [s]"}, + /* 190 */ {"EWOV", "East-West component of sub-gridscale orographic variance [m**2]"}, + /* 191 */ {"NSOV", "North-South component of sub-gridscale orographic variance [m**2]"}, + /* 192 */ {"NWOV", "North-West/South-East component of sub-gridscale orographic variance [m**2]"}, + /* 193 */ {"NEOV", "North-East/South-West component of sub-gridscale orographic variance [m**2]"}, + /* 194 */ {"BTMP", "Brightness temperature [K]"}, + /* 195 */ {"LGWS", "Latitudinal component of gravity wave stress [N m**-2 s]"}, + /* 196 */ {"MGWS", "Meridional component of gravity wave stress [N m**-2 s]"}, + /* 197 */ {"GWD", "Gravity wave dissipation [W m**-2 s]"}, + /* 198 */ {"SRC", "Skin reservoir content [m of water]"}, + /* 199 */ {"VEG", "Vegetation fraction [(0 - 1)]"}, + /* 200 */ {"VSO", "Variance of sub-gridscale orography [m**2]"}, + /* 201 */ {"MX2T", "Maximum temperature at 2 metres since previous post-processing [K]"}, + /* 202 */ {"MN2T", "Minimum temperature at 2 metres since previous post-processing [K]"}, + /* 203 */ {"O3", "Ozone mass mixing ratio [kg kg**-1]"}, + /* 204 */ {"PAW", "Precipitation analysis weights []"}, + /* 205 */ {"RO", "Runoff [m]"}, + /* 206 */ {"TCO3", "Total column ozone [kg m**-2]"}, + /* 207 */ {"10SI", "10 metre wind speed [m s**-1]"}, + /* 208 */ {"TSRC", "Top net solar radiation, clear sky [W m**-2 s]"}, + /* 209 */ {"TTRC", "Top net thermal radiation, clear sky [W m**-2 s]"}, + /* 210 */ {"SSRC", "Surface net solar radiation, clear sky [W m**-2 s]"}, + /* 211 */ {"STRC", "Surface net thermal radiation, clear sky [W m**-2 s]"}, + /* 212 */ {"TISR", "TOA incident solar radiation [W m**-2 s]"}, + /* 213 */ {"var213", "undefined"}, + /* 214 */ {"DHR", "Diabatic heating by radiation [K]"}, + /* 215 */ {"DHVD", "Diabatic heating by vertical diffusion [K]"}, + /* 216 */ {"DHCC", "Diabatic heating by cumulus convection [K]"}, + /* 217 */ {"DHLC", "Diabatic heating large-scale condensation [K]"}, + /* 218 */ {"VDZW", "Vertical diffusion of zonal wind [m s**-1]"}, + /* 219 */ {"VDMW", "Vertical diffusion of meridional wind [m s**-1]"}, + /* 220 */ {"EWGD", "East-West gravity wave drag tendency [m s**-1]"}, + /* 221 */ {"NSGD", "North-South gravity wave drag tendency [m s**-1]"}, + /* 222 */ {"CTZW", "Convective tendency of zonal wind [m s**-1]"}, + /* 223 */ {"CTMW", "Convective tendency of meridional wind [m s**-1]"}, + /* 224 */ {"VDH", "Vertical diffusion of humidity [kg kg**-1]"}, + /* 225 */ {"HTCC", "Humidity tendency by cumulus convection [kg kg**-1]"}, + /* 226 */ {"HTLC", "Humidity tendency by large-scale condensation [kg kg**-1]"}, + /* 227 */ {"CRNH", "Change from removal of negative humidity [kg kg**-1]"}, + /* 228 */ {"TP", "Total precipitation [m]"}, + /* 229 */ {"IEWS", "Instantaneous X surface stress [N m**-2]"}, + /* 230 */ {"INSS", "Instantaneous Y surface stress [N m**-2]"}, + /* 231 */ {"ISHF", "Instantaneous surface heat flux [W m**-2]"}, + /* 232 */ {"IE", "Instantaneous moisture flux [kg m**-2 s]"}, + /* 233 */ {"ASQ", "Apparent surface humidity [kg kg**-1]"}, + /* 234 */ {"LSRH", "Logarithm of surface roughness length for heat []"}, + /* 235 */ {"SKT", "Skin temperature [K]"}, + /* 236 */ {"STL4", "Soil temperature level 4 [K]"}, + /* 237 */ {"SWL4", "Soil wetness level 4 [m]"}, + /* 238 */ {"TSN", "Temperature of snow layer [K]"}, + /* 239 */ {"CSF", "Convective snowfall [m of water equivalent]"}, + /* 240 */ {"LSF", "Large-scale snowfall [m of water equivalent]"}, + /* 241 */ {"ACF", "Accumulated cloud fraction tendency [(-1 to 1)]"}, + /* 242 */ {"ALW", "Accumulated liquid water tendency [(-1 to 1)]"}, + /* 243 */ {"FAL", "Forecast albedo [(0 - 1)]"}, + /* 244 */ {"FSR", "Forecast surface roughness [m]"}, + /* 245 */ {"FLSR", "Forecast logarithm of surface roughness for heat []"}, + /* 246 */ {"CLWC", "Cloud liquid water content [kg kg**-1]"}, + /* 247 */ {"CIWC", "Cloud ice water content [kg kg**-1]"}, + /* 248 */ {"CC", "Cloud cover [(0 - 1)]"}, + /* 249 */ {"AIW", "Accumulated ice water tendency [(-1 to 1)]"}, + /* 250 */ {"ICE", "Ice age [(0 - 1)]"}, + /* 251 */ {"ATTE", "Adiabatic tendency of temperature [K]"}, + /* 252 */ {"ATHE", "Adiabatic tendency of humidity [kg kg**-1]"}, + /* 253 */ {"ATZE", "Adiabatic tendency of zonal wind [m s**-1]"}, + /* 254 */ {"ATMW", "Adiabatic tendency of meridional wind [m s**-1]"}, + /* 255 */ {"var255", "Indicates a missing value []"}, }; const struct ParmTable parm_table_ecmwf_130[256] = { + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"var1", "undefined"}, + /* 2 */ {"var2", "undefined"}, + /* 3 */ {"var3", "undefined"}, + /* 4 */ {"var4", "undefined"}, + /* 5 */ {"var5", "undefined"}, + /* 6 */ {"var6", "undefined"}, + /* 7 */ {"var7", "undefined"}, + /* 8 */ {"var8", "undefined"}, + /* 9 */ {"var9", "undefined"}, + /* 10 */ {"var10", "undefined"}, + /* 11 */ {"var11", "undefined"}, + /* 12 */ {"var12", "undefined"}, + /* 13 */ {"var13", "undefined"}, + /* 14 */ {"var14", "undefined"}, + /* 15 */ {"var15", "undefined"}, + /* 16 */ {"var16", "undefined"}, + /* 17 */ {"var17", "undefined"}, + /* 18 */ {"var18", "undefined"}, + /* 19 */ {"var19", "undefined"}, + /* 20 */ {"var20", "undefined"}, + /* 21 */ {"var21", "undefined"}, + /* 22 */ {"var22", "undefined"}, + /* 23 */ {"var23", "undefined"}, + /* 24 */ {"var24", "undefined"}, + /* 25 */ {"var25", "undefined"}, + /* 26 */ {"var26", "undefined"}, + /* 27 */ {"var27", "undefined"}, + /* 28 */ {"var28", "undefined"}, + /* 29 */ {"var29", "undefined"}, + /* 30 */ {"var30", "undefined"}, + /* 31 */ {"var31", "undefined"}, + /* 32 */ {"var32", "undefined"}, + /* 33 */ {"var33", "undefined"}, + /* 34 */ {"var34", "undefined"}, + /* 35 */ {"var35", "undefined"}, + /* 36 */ {"var36", "undefined"}, + /* 37 */ {"var37", "undefined"}, + /* 38 */ {"var38", "undefined"}, + /* 39 */ {"var39", "undefined"}, + /* 40 */ {"var40", "undefined"}, + /* 41 */ {"var41", "undefined"}, + /* 42 */ {"var42", "undefined"}, + /* 43 */ {"var43", "undefined"}, + /* 44 */ {"var44", "undefined"}, + /* 45 */ {"var45", "undefined"}, + /* 46 */ {"var46", "undefined"}, + /* 47 */ {"var47", "undefined"}, + /* 48 */ {"var48", "undefined"}, + /* 49 */ {"var49", "undefined"}, + /* 50 */ {"var50", "undefined"}, + /* 51 */ {"var51", "undefined"}, + /* 52 */ {"var52", "undefined"}, + /* 53 */ {"var53", "undefined"}, + /* 54 */ {"var54", "undefined"}, + /* 55 */ {"var55", "undefined"}, + /* 56 */ {"var56", "undefined"}, + /* 57 */ {"var57", "undefined"}, + /* 58 */ {"var58", "undefined"}, + /* 59 */ {"var59", "undefined"}, + /* 60 */ {"var60", "undefined"}, + /* 61 */ {"var61", "undefined"}, + /* 62 */ {"var62", "undefined"}, + /* 63 */ {"var63", "undefined"}, + /* 64 */ {"var64", "undefined"}, + /* 65 */ {"var65", "undefined"}, + /* 66 */ {"var66", "undefined"}, + /* 67 */ {"var67", "undefined"}, + /* 68 */ {"var68", "undefined"}, + /* 69 */ {"var69", "undefined"}, + /* 70 */ {"var70", "undefined"}, + /* 71 */ {"var71", "undefined"}, + /* 72 */ {"var72", "undefined"}, + /* 73 */ {"var73", "undefined"}, + /* 74 */ {"var74", "undefined"}, + /* 75 */ {"var75", "undefined"}, + /* 76 */ {"var76", "undefined"}, + /* 77 */ {"var77", "undefined"}, + /* 78 */ {"var78", "undefined"}, + /* 79 */ {"var79", "undefined"}, + /* 80 */ {"var80", "undefined"}, + /* 81 */ {"var81", "undefined"}, + /* 82 */ {"var82", "undefined"}, + /* 83 */ {"var83", "undefined"}, + /* 84 */ {"var84", "undefined"}, + /* 85 */ {"var85", "undefined"}, + /* 86 */ {"var86", "undefined"}, + /* 87 */ {"var87", "undefined"}, + /* 88 */ {"var88", "undefined"}, + /* 89 */ {"var89", "undefined"}, + /* 90 */ {"var90", "undefined"}, + /* 91 */ {"var91", "undefined"}, + /* 92 */ {"var92", "undefined"}, + /* 93 */ {"var93", "undefined"}, + /* 94 */ {"var94", "undefined"}, + /* 95 */ {"var95", "undefined"}, + /* 96 */ {"var96", "undefined"}, + /* 97 */ {"var97", "undefined"}, + /* 98 */ {"var98", "undefined"}, + /* 99 */ {"var99", "undefined"}, + /* 100 */ {"var100", "undefined"}, + /* 101 */ {"var101", "undefined"}, + /* 102 */ {"var102", "undefined"}, + /* 103 */ {"var103", "undefined"}, + /* 104 */ {"var104", "undefined"}, + /* 105 */ {"var105", "undefined"}, + /* 106 */ {"var106", "undefined"}, + /* 107 */ {"var107", "undefined"}, + /* 108 */ {"var108", "undefined"}, + /* 109 */ {"var109", "undefined"}, + /* 110 */ {"var110", "undefined"}, + /* 111 */ {"var111", "undefined"}, + /* 112 */ {"var112", "undefined"}, + /* 113 */ {"var113", "undefined"}, + /* 114 */ {"var114", "undefined"}, + /* 115 */ {"var115", "undefined"}, + /* 116 */ {"var116", "undefined"}, + /* 117 */ {"var117", "undefined"}, + /* 118 */ {"var118", "undefined"}, + /* 119 */ {"var119", "undefined"}, + /* 120 */ {"var120", "undefined"}, + /* 121 */ {"var121", "undefined"}, + /* 122 */ {"var122", "undefined"}, + /* 123 */ {"var123", "undefined"}, + /* 124 */ {"var124", "undefined"}, + /* 125 */ {"var125", "undefined"}, + /* 126 */ {"var126", "undefined"}, + /* 127 */ {"var127", "undefined"}, + /* 128 */ {"var128", "undefined"}, + /* 129 */ {"var129", "undefined"}, + /* 130 */ {"var130", "undefined"}, + /* 131 */ {"var131", "undefined"}, + /* 132 */ {"var132", "undefined"}, + /* 133 */ {"var133", "undefined"}, + /* 134 */ {"var134", "undefined"}, + /* 135 */ {"var135", "undefined"}, + /* 136 */ {"var136", "undefined"}, + /* 137 */ {"var137", "undefined"}, + /* 138 */ {"var138", "undefined"}, + /* 139 */ {"var139", "undefined"}, + /* 140 */ {"var140", "undefined"}, + /* 141 */ {"var141", "undefined"}, + /* 142 */ {"var142", "undefined"}, + /* 143 */ {"var143", "undefined"}, + /* 144 */ {"var144", "undefined"}, + /* 145 */ {"var145", "undefined"}, + /* 146 */ {"var146", "undefined"}, + /* 147 */ {"var147", "undefined"}, + /* 148 */ {"var148", "undefined"}, + /* 149 */ {"var149", "undefined"}, + /* 150 */ {"var150", "undefined"}, + /* 151 */ {"var151", "undefined"}, + /* 152 */ {"var152", "undefined"}, + /* 153 */ {"var153", "undefined"}, + /* 154 */ {"var154", "undefined"}, + /* 155 */ {"var155", "undefined"}, + /* 156 */ {"var156", "undefined"}, + /* 157 */ {"var157", "undefined"}, + /* 158 */ {"var158", "undefined"}, + /* 159 */ {"var159", "undefined"}, + /* 160 */ {"var160", "undefined"}, + /* 161 */ {"var161", "undefined"}, + /* 162 */ {"var162", "undefined"}, + /* 163 */ {"var163", "undefined"}, + /* 164 */ {"var164", "undefined"}, + /* 165 */ {"var165", "undefined"}, + /* 166 */ {"var166", "undefined"}, + /* 167 */ {"var167", "undefined"}, + /* 168 */ {"var168", "undefined"}, + /* 169 */ {"var169", "undefined"}, + /* 170 */ {"var170", "undefined"}, + /* 171 */ {"var171", "undefined"}, + /* 172 */ {"var172", "undefined"}, + /* 173 */ {"var173", "undefined"}, + /* 174 */ {"var174", "undefined"}, + /* 175 */ {"var175", "undefined"}, + /* 176 */ {"var176", "undefined"}, + /* 177 */ {"var177", "undefined"}, + /* 178 */ {"var178", "undefined"}, + /* 179 */ {"var179", "undefined"}, + /* 180 */ {"var180", "undefined"}, + /* 181 */ {"var181", "undefined"}, + /* 182 */ {"var182", "undefined"}, + /* 183 */ {"var183", "undefined"}, + /* 184 */ {"var184", "undefined"}, + /* 185 */ {"var185", "undefined"}, + /* 186 */ {"var186", "undefined"}, + /* 187 */ {"var187", "undefined"}, + /* 188 */ {"var188", "undefined"}, + /* 189 */ {"var189", "undefined"}, + /* 190 */ {"var190", "undefined"}, + /* 191 */ {"var191", "undefined"}, + /* 192 */ {"var192", "undefined"}, + /* 193 */ {"var193", "undefined"}, + /* 194 */ {"var194", "undefined"}, + /* 195 */ {"var195", "undefined"}, + /* 196 */ {"var196", "undefined"}, + /* 197 */ {"var197", "undefined"}, + /* 198 */ {"var198", "undefined"}, + /* 199 */ {"var199", "undefined"}, + /* 200 */ {"var200", "undefined"}, + /* 201 */ {"var201", "undefined"}, + /* 202 */ {"var202", "undefined"}, + /* 203 */ {"var203", "undefined"}, + /* 204 */ {"var204", "undefined"}, + /* 205 */ {"var205", "undefined"}, + /* 206 */ {"var206", "undefined"}, + /* 207 */ {"var207", "undefined"}, + /* 208 */ {"TSRU", "Top solar radiation upward [W m**-2]"}, + /* 209 */ {"TTRU", "Top thermal radiation upward [W m**-2]"}, + /* 210 */ {"TSUC", "Top solar radiation upward, clear sky [W m**-2]"}, + /* 211 */ {"TTUC", "Top thermal radiation upward, clear sky [W m**-2]"}, + /* 212 */ {"CLW", "Cloud liquid water [kg kg**-1]"}, + /* 213 */ {"CF", "Cloud fraction [(0 - 1)]"}, + /* 214 */ {"DHR", "Diabatic heating by radiation [K s**-1]"}, + /* 215 */ {"DHVD", "Diabatic heating by vertical diffusion [K s**-1]"}, + /* 216 */ {"DHCC", "Diabatic heating by cumulus convection [K s**-1]"}, + /* 217 */ {"DHLC", "Diabatic heating by large-scale condensation [K s**-1]"}, + /* 218 */ {"VDZW", "Vertical diffusion of zonal wind [m**2 s**-3]"}, + /* 219 */ {"VDMW", "Vertical diffusion of meridional wind [m**2 s**-3]"}, + /* 220 */ {"EWGD", "East-West gravity wave drag [m**2 s**-3]"}, + /* 221 */ {"NSGD", "North-South gravity wave drag [m**2 s**-3]"}, + /* 222 */ {"CTZW", "Convective tendency of zonal wind [m**2 s**-3]"}, + /* 223 */ {"CTMW", "Convective tendency of meridional wind [m**2 s**-3]"}, + /* 224 */ {"VDH", "Vertical diffusion of humidity [kg kg**-1 s**-1]"}, + /* 225 */ {"HTCC", "Humidity tendency by cumulus convection [kg kg**-1 s**-1]"}, + /* 226 */ {"HTLC", "Humidity tendency by large-scale condensation [kg kg**-1 s**-1]"}, + /* 227 */ {"CRNH", "Change from removal of negative humidity [kg kg**-1 s**-1]"}, + /* 228 */ {"ATT", "Adiabatic tendency of temperature [K s**-1]"}, + /* 229 */ {"ATH", "Adiabatic tendency of humidity [kg kg**-1 s**-1]"}, + /* 230 */ {"ATZW", "Adiabatic tendency of zonal wind [m**2 s**-3]"}, + /* 231 */ {"ATMWAX", "Adiabatic tendency of meridional wind [m**2 s**-3]"}, + /* 232 */ {"MVV", "Mean vertical velocity [Pa s**-1]"}, + /* 233 */ {"var233", "undefined"}, + /* 234 */ {"var234", "undefined"}, + /* 235 */ {"var235", "undefined"}, + /* 236 */ {"var236", "undefined"}, + /* 237 */ {"var237", "undefined"}, + /* 238 */ {"var238", "undefined"}, + /* 239 */ {"var239", "undefined"}, + /* 240 */ {"var240", "undefined"}, + /* 241 */ {"var241", "undefined"}, + /* 242 */ {"var242", "undefined"}, + /* 243 */ {"var243", "undefined"}, + /* 244 */ {"var244", "undefined"}, + /* 245 */ {"var245", "undefined"}, + /* 246 */ {"var246", "undefined"}, + /* 247 */ {"var247", "undefined"}, + /* 248 */ {"var248", "undefined"}, + /* 249 */ {"var249", "undefined"}, + /* 250 */ {"var250", "undefined"}, + /* 251 */ {"var251", "undefined"}, + /* 252 */ {"var252", "undefined"}, + /* 253 */ {"var253", "undefined"}, + /* 254 */ {"var254", "undefined"}, + /* 255 */ {"var255", "Indicates a missing value []"}, +}; + +const struct ParmTable parm_table_ecmwf_131[256] = { + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"2TAG2", "2m temperature anomaly of at least +2K [%]"}, + /* 2 */ {"2TAG1", "2m temperature anomaly of at least +1K [%]"}, + /* 3 */ {"2TAG0", "2m temperature anomaly of at least 0K [%]"}, + /* 4 */ {"2TALM1", "2m temperature anomaly of at most -1K [%]"}, + /* 5 */ {"2TALM2", "2m temperature anomaly of at most -2K [%]"}, + /* 6 */ {"TPAG20", "Total precipitation anomaly of at least 20 mm [%]"}, + /* 7 */ {"TPAG10", "Total precipitation anomaly of at least 10 mm [%]"}, + /* 8 */ {"TPAG0", "Total precipitation anomaly of at least 0 mm [%]"}, + /* 9 */ {"STAG0", "Surface temperature anomaly of at least 0K [%]"}, + /* 10 */ {"MSLAG0", "Mean sea level pressure anomaly of at least 0 Pa [%]"}, + /* 11 */ {"var11", "undefined"}, + /* 12 */ {"var12", "undefined"}, + /* 13 */ {"var13", "undefined"}, + /* 14 */ {"var14", "undefined"}, + /* 15 */ {"H0DIP", "Heigth of 0 degree isotherm probability [percentage]"}, + /* 16 */ {"HSLP", "Heigth of snowfall limit probability [percentage]"}, + /* 17 */ {"SAIP", "Showalter index probability [percentage]"}, + /* 18 */ {"WHIP", "Whiting index probability [percentage]"}, + /* 19 */ {"var19", "undefined"}, + /* 20 */ {"TALM2K", "Temperature anomaly less than -2 K [%]"}, + /* 21 */ {"TAG2K", "Temperature anomaly of at least +2 K [%]"}, + /* 22 */ {"TALM8K", "Temperature anomaly less than -8 K [%]"}, + /* 23 */ {"TALM4K", "Temperature anomaly less than -4 K [%]"}, + /* 24 */ {"TAG4K", "Temperature anomaly greater than +4 K [%]"}, + /* 25 */ {"TAG8K", "Temperature anomaly greater than +8 K [%]"}, + /* 26 */ {"var26", "undefined"}, + /* 27 */ {"var27", "undefined"}, + /* 28 */ {"var28", "undefined"}, + /* 29 */ {"var29", "undefined"}, + /* 30 */ {"var30", "undefined"}, + /* 31 */ {"var31", "undefined"}, + /* 32 */ {"var32", "undefined"}, + /* 33 */ {"var33", "undefined"}, + /* 34 */ {"var34", "undefined"}, + /* 35 */ {"var35", "undefined"}, + /* 36 */ {"var36", "undefined"}, + /* 37 */ {"var37", "undefined"}, + /* 38 */ {"var38", "undefined"}, + /* 39 */ {"var39", "undefined"}, + /* 40 */ {"var40", "undefined"}, + /* 41 */ {"var41", "undefined"}, + /* 42 */ {"var42", "undefined"}, + /* 43 */ {"var43", "undefined"}, + /* 44 */ {"var44", "undefined"}, + /* 45 */ {"var45", "undefined"}, + /* 46 */ {"var46", "undefined"}, + /* 47 */ {"var47", "undefined"}, + /* 48 */ {"var48", "undefined"}, + /* 49 */ {"10GP", "10 metre wind gust probability [percentage]"}, + /* 50 */ {"var50", "undefined"}, + /* 51 */ {"var51", "undefined"}, + /* 52 */ {"var52", "undefined"}, + /* 53 */ {"var53", "undefined"}, + /* 54 */ {"var54", "undefined"}, + /* 55 */ {"var55", "undefined"}, + /* 56 */ {"var56", "undefined"}, + /* 57 */ {"var57", "undefined"}, + /* 58 */ {"var58", "undefined"}, + /* 59 */ {"CAPEP", "Convective available potential energy probability [percentage]"}, + /* 60 */ {"TPG1", "Total precipitation of at least 1 mm [%]"}, + /* 61 */ {"TPG5", "Total precipitation of at least 5 mm [%]"}, + /* 62 */ {"TPG10", "Total precipitation of at least 10 mm [%]"}, + /* 63 */ {"TPG20", "Total precipitation of at least 20 mm [%]"}, + /* 64 */ {"TPL01", "Total precipitation less than 0.1 mm [%]"}, + /* 65 */ {"TPRL1", "Total precipitation rate less than 1 mm per day [%]"}, + /* 66 */ {"TPRG3", "Total precipitation rate of at least 3 mm per day [%]"}, + /* 67 */ {"TPRG5", "Total precipitation rate of at least 5 mm per day [%]"}, + /* 68 */ {"10SPG10", "10 metre Wind speed of at least 10 metre per second [%]"}, + /* 69 */ {"10SPG15", "10 metre Wind speed of at least 15 metre per second [%]"}, + /* 70 */ {"10FGG15", "10 metre Wind gust of at least 15 metre per second [%]"}, + /* 71 */ {"10FGG20", "10 metre Wind gust of at least 20 metre per second [%]"}, + /* 72 */ {"10FGG25", "10 metre Wind gust of at least 25 metre per second [%]"}, + /* 73 */ {"2TL273", "2 metre temperature less than 273.15 K [%]"}, + /* 74 */ {"SWHG2", "Significant wave height of at least 2 m [%]"}, + /* 75 */ {"SWHG4", "Significant wave height of at least 4 m [%]"}, + /* 76 */ {"SWHG6", "Significant wave height of at least 6 m [%]"}, + /* 77 */ {"SWHG8", "Significant wave height of at least 8 m [%]"}, + /* 78 */ {"MWPG8", "Mean wave period of at least 8 s [%]"}, + /* 79 */ {"MWPG10", "Mean wave period of at least 10 s [%]"}, + /* 80 */ {"MWPG12", "Mean wave period of at least 12 s [%]"}, + /* 81 */ {"MWPG15", "Mean wave period of at least 15 s [%]"}, + /* 82 */ {"TPG40", "Total precipitation of at least 40 mm [%]"}, + /* 83 */ {"TPG60", "Total precipitation of at least 60 mm [%]"}, + /* 84 */ {"TPG80", "Total precipitation of at least 80 mm [%]"}, + /* 85 */ {"TPG100", "Total precipitation of at least 100 mm [%]"}, + /* 86 */ {"TPG150", "Total precipitation of at least 150 mm [%]"}, + /* 87 */ {"TPG200", "Total precipitation of at least 200 mm [%]"}, + /* 88 */ {"TPG300", "Total precipitation of at least 300 mm [%]"}, + /* 89 */ {"var89", "undefined"}, + /* 90 */ {"var90", "undefined"}, + /* 91 */ {"var91", "undefined"}, + /* 92 */ {"var92", "undefined"}, + /* 93 */ {"var93", "undefined"}, + /* 94 */ {"var94", "undefined"}, + /* 95 */ {"var95", "undefined"}, + /* 96 */ {"var96", "undefined"}, + /* 97 */ {"var97", "undefined"}, + /* 98 */ {"var98", "undefined"}, + /* 99 */ {"var99", "undefined"}, + /* 100 */ {"var100", "undefined"}, + /* 101 */ {"var101", "undefined"}, + /* 102 */ {"var102", "undefined"}, + /* 103 */ {"var103", "undefined"}, + /* 104 */ {"var104", "undefined"}, + /* 105 */ {"var105", "undefined"}, + /* 106 */ {"var106", "undefined"}, + /* 107 */ {"var107", "undefined"}, + /* 108 */ {"var108", "undefined"}, + /* 109 */ {"var109", "undefined"}, + /* 110 */ {"var110", "undefined"}, + /* 111 */ {"var111", "undefined"}, + /* 112 */ {"var112", "undefined"}, + /* 113 */ {"var113", "undefined"}, + /* 114 */ {"var114", "undefined"}, + /* 115 */ {"var115", "undefined"}, + /* 116 */ {"var116", "undefined"}, + /* 117 */ {"var117", "undefined"}, + /* 118 */ {"var118", "undefined"}, + /* 119 */ {"var119", "undefined"}, + /* 120 */ {"var120", "undefined"}, + /* 121 */ {"var121", "undefined"}, + /* 122 */ {"var122", "undefined"}, + /* 123 */ {"var123", "undefined"}, + /* 124 */ {"var124", "undefined"}, + /* 125 */ {"var125", "undefined"}, + /* 126 */ {"var126", "undefined"}, + /* 127 */ {"var127", "undefined"}, + /* 128 */ {"var128", "undefined"}, + /* 129 */ {"ZP", "Geopotential probability [%]"}, + /* 130 */ {"TAP", "Temperature anomaly probability [percentage]"}, + /* 131 */ {"var131", "undefined"}, + /* 132 */ {"var132", "undefined"}, + /* 133 */ {"var133", "undefined"}, + /* 134 */ {"var134", "undefined"}, + /* 135 */ {"var135", "undefined"}, + /* 136 */ {"var136", "undefined"}, + /* 137 */ {"var137", "undefined"}, + /* 138 */ {"var138", "undefined"}, + /* 139 */ {"var139", "2 metre temperature probability [%]"}, + /* 140 */ {"var140", "undefined"}, + /* 141 */ {"var141", "undefined"}, + /* 142 */ {"var142", "undefined"}, + /* 143 */ {"var143", "undefined"}, + /* 144 */ {"SFP", "Snowfall probability [percentage]"}, + /* 145 */ {"var145", "undefined"}, + /* 146 */ {"var146", "undefined"}, + /* 147 */ {"var147", "undefined"}, + /* 148 */ {"var148", "undefined"}, + /* 149 */ {"var149", "undefined"}, + /* 150 */ {"var150", "undefined"}, + /* 151 */ {"var151", "Total precipitation probability [%]"}, + /* 152 */ {"var152", "undefined"}, + /* 153 */ {"var153", "undefined"}, + /* 154 */ {"var154", "undefined"}, + /* 155 */ {"var155", "undefined"}, + /* 156 */ {"var156", "undefined"}, + /* 157 */ {"var157", "undefined"}, + /* 158 */ {"var158", "undefined"}, + /* 159 */ {"var159", "undefined"}, + /* 160 */ {"var160", "undefined"}, + /* 161 */ {"var161", "undefined"}, + /* 162 */ {"var162", "undefined"}, + /* 163 */ {"var163", "undefined"}, + /* 164 */ {"TCCP", "Total cloud cover probability [percentage]"}, + /* 165 */ {"10SP", "10 metre speed probability [percentage]"}, + /* 166 */ {"var166", "undefined"}, + /* 167 */ {"2TP", "2 metre temperature probability [percentage]"}, + /* 168 */ {"var168", "undefined"}, + /* 169 */ {"var169", "undefined"}, + /* 170 */ {"var170", "undefined"}, + /* 171 */ {"var171", "undefined"}, + /* 172 */ {"var172", "undefined"}, + /* 173 */ {"var173", "undefined"}, + /* 174 */ {"var174", "undefined"}, + /* 175 */ {"var175", "undefined"}, + /* 176 */ {"var176", "undefined"}, + /* 177 */ {"var177", "undefined"}, + /* 178 */ {"var178", "undefined"}, + /* 179 */ {"var179", "undefined"}, + /* 180 */ {"var180", "undefined"}, + /* 181 */ {"var181", "undefined"}, + /* 182 */ {"var182", "undefined"}, + /* 183 */ {"var183", "undefined"}, + /* 184 */ {"var184", "undefined"}, + /* 185 */ {"var185", "undefined"}, + /* 186 */ {"var186", "undefined"}, + /* 187 */ {"var187", "undefined"}, + /* 188 */ {"var188", "undefined"}, + /* 189 */ {"var189", "undefined"}, + /* 190 */ {"var190", "undefined"}, + /* 191 */ {"var191", "undefined"}, + /* 192 */ {"var192", "undefined"}, + /* 193 */ {"var193", "undefined"}, + /* 194 */ {"var194", "undefined"}, + /* 195 */ {"var195", "undefined"}, + /* 196 */ {"var196", "undefined"}, + /* 197 */ {"var197", "undefined"}, + /* 198 */ {"var198", "undefined"}, + /* 199 */ {"var199", "undefined"}, + /* 200 */ {"var200", "undefined"}, + /* 201 */ {"MX2TP", "Maximum 2 metre temperature probability [percentage]"}, + /* 202 */ {"MN2TP", "Minimum 2 metre temperature probability [percentage]"}, + /* 203 */ {"var203", "undefined"}, + /* 204 */ {"var204", "undefined"}, + /* 205 */ {"var205", "undefined"}, + /* 206 */ {"var206", "undefined"}, + /* 207 */ {"var207", "undefined"}, + /* 208 */ {"var208", "undefined"}, + /* 209 */ {"var209", "undefined"}, + /* 210 */ {"var210", "undefined"}, + /* 211 */ {"var211", "undefined"}, + /* 212 */ {"var212", "undefined"}, + /* 213 */ {"var213", "undefined"}, + /* 214 */ {"var214", "undefined"}, + /* 215 */ {"var215", "undefined"}, + /* 216 */ {"var216", "undefined"}, + /* 217 */ {"var217", "undefined"}, + /* 218 */ {"var218", "undefined"}, + /* 219 */ {"var219", "undefined"}, + /* 220 */ {"var220", "undefined"}, + /* 221 */ {"var221", "undefined"}, + /* 222 */ {"var222", "undefined"}, + /* 223 */ {"var223", "undefined"}, + /* 224 */ {"var224", "undefined"}, + /* 225 */ {"var225", "undefined"}, + /* 226 */ {"var226", "undefined"}, + /* 227 */ {"var227", "undefined"}, + /* 228 */ {"TPP", "Total precipitation probability [percentage]"}, + /* 229 */ {"SWHP", "Significant wave height probability [percentage]"}, + /* 230 */ {"var230", "undefined"}, + /* 231 */ {"var231", "undefined"}, + /* 232 */ {"MWPP", "Mean wave period probability [percentage]"}, + /* 233 */ {"var233", "undefined"}, + /* 234 */ {"var234", "undefined"}, + /* 235 */ {"var235", "undefined"}, + /* 236 */ {"var236", "undefined"}, + /* 237 */ {"var237", "undefined"}, + /* 238 */ {"var238", "undefined"}, + /* 239 */ {"var239", "undefined"}, + /* 240 */ {"var240", "undefined"}, + /* 241 */ {"var241", "undefined"}, + /* 242 */ {"var242", "undefined"}, + /* 243 */ {"var243", "undefined"}, + /* 244 */ {"var244", "undefined"}, + /* 245 */ {"var245", "undefined"}, + /* 246 */ {"var246", "undefined"}, + /* 247 */ {"var247", "undefined"}, + /* 248 */ {"var248", "undefined"}, + /* 249 */ {"var249", "undefined"}, + /* 250 */ {"var250", "undefined"}, + /* 251 */ {"var251", "undefined"}, + /* 252 */ {"var252", "undefined"}, + /* 253 */ {"var253", "undefined"}, + /* 254 */ {"var254", "undefined"}, + /* 255 */ {"var255", "Indicates a missing value []"}, +}; + +const struct ParmTable parm_table_ecmwf_132[256] = { + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"var1", "undefined"}, + /* 2 */ {"var2", "undefined"}, + /* 3 */ {"var3", "undefined"}, + /* 4 */ {"var4", "undefined"}, + /* 5 */ {"var5", "undefined"}, + /* 6 */ {"var6", "undefined"}, + /* 7 */ {"var7", "undefined"}, + /* 8 */ {"var8", "undefined"}, + /* 9 */ {"var9", "undefined"}, + /* 10 */ {"var10", "undefined"}, + /* 11 */ {"var11", "undefined"}, + /* 12 */ {"var12", "undefined"}, + /* 13 */ {"var13", "undefined"}, + /* 14 */ {"var14", "undefined"}, + /* 15 */ {"var15", "undefined"}, + /* 16 */ {"var16", "undefined"}, + /* 17 */ {"var17", "undefined"}, + /* 18 */ {"var18", "undefined"}, + /* 19 */ {"var19", "undefined"}, + /* 20 */ {"var20", "undefined"}, + /* 21 */ {"var21", "undefined"}, + /* 22 */ {"var22", "undefined"}, + /* 23 */ {"var23", "undefined"}, + /* 24 */ {"var24", "undefined"}, + /* 25 */ {"var25", "undefined"}, + /* 26 */ {"var26", "undefined"}, + /* 27 */ {"var27", "undefined"}, + /* 28 */ {"var28", "undefined"}, + /* 29 */ {"var29", "undefined"}, + /* 30 */ {"var30", "undefined"}, + /* 31 */ {"var31", "undefined"}, + /* 32 */ {"var32", "undefined"}, + /* 33 */ {"var33", "undefined"}, + /* 34 */ {"var34", "undefined"}, + /* 35 */ {"var35", "undefined"}, + /* 36 */ {"var36", "undefined"}, + /* 37 */ {"var37", "undefined"}, + /* 38 */ {"var38", "undefined"}, + /* 39 */ {"var39", "undefined"}, + /* 40 */ {"var40", "undefined"}, + /* 41 */ {"var41", "undefined"}, + /* 42 */ {"var42", "undefined"}, + /* 43 */ {"var43", "undefined"}, + /* 44 */ {"var44", "undefined"}, + /* 45 */ {"var45", "undefined"}, + /* 46 */ {"var46", "undefined"}, + /* 47 */ {"var47", "undefined"}, + /* 48 */ {"var48", "undefined"}, + /* 49 */ {"10FGI", "10 metre wind gust index [(-1 to 1)]"}, + /* 50 */ {"var50", "undefined"}, + /* 51 */ {"var51", "undefined"}, + /* 52 */ {"var52", "undefined"}, + /* 53 */ {"var53", "undefined"}, + /* 54 */ {"var54", "undefined"}, + /* 55 */ {"var55", "undefined"}, + /* 56 */ {"var56", "undefined"}, + /* 57 */ {"var57", "undefined"}, + /* 58 */ {"var58", "undefined"}, + /* 59 */ {"var59", "undefined"}, + /* 60 */ {"var60", "undefined"}, + /* 61 */ {"var61", "undefined"}, + /* 62 */ {"var62", "undefined"}, + /* 63 */ {"var63", "undefined"}, + /* 64 */ {"var64", "undefined"}, + /* 65 */ {"var65", "undefined"}, + /* 66 */ {"var66", "undefined"}, + /* 67 */ {"var67", "undefined"}, + /* 68 */ {"var68", "undefined"}, + /* 69 */ {"var69", "undefined"}, + /* 70 */ {"var70", "undefined"}, + /* 71 */ {"var71", "undefined"}, + /* 72 */ {"var72", "undefined"}, + /* 73 */ {"var73", "undefined"}, + /* 74 */ {"var74", "undefined"}, + /* 75 */ {"var75", "undefined"}, + /* 76 */ {"var76", "undefined"}, + /* 77 */ {"var77", "undefined"}, + /* 78 */ {"var78", "undefined"}, + /* 79 */ {"var79", "undefined"}, + /* 80 */ {"var80", "undefined"}, + /* 81 */ {"var81", "undefined"}, + /* 82 */ {"var82", "undefined"}, + /* 83 */ {"var83", "undefined"}, + /* 84 */ {"var84", "undefined"}, + /* 85 */ {"var85", "undefined"}, + /* 86 */ {"var86", "undefined"}, + /* 87 */ {"var87", "undefined"}, + /* 88 */ {"var88", "undefined"}, + /* 89 */ {"var89", "undefined"}, + /* 90 */ {"var90", "undefined"}, + /* 91 */ {"var91", "undefined"}, + /* 92 */ {"var92", "undefined"}, + /* 93 */ {"var93", "undefined"}, + /* 94 */ {"var94", "undefined"}, + /* 95 */ {"var95", "undefined"}, + /* 96 */ {"var96", "undefined"}, + /* 97 */ {"var97", "undefined"}, + /* 98 */ {"var98", "undefined"}, + /* 99 */ {"var99", "undefined"}, + /* 100 */ {"var100", "undefined"}, + /* 101 */ {"var101", "undefined"}, + /* 102 */ {"var102", "undefined"}, + /* 103 */ {"var103", "undefined"}, + /* 104 */ {"var104", "undefined"}, + /* 105 */ {"var105", "undefined"}, + /* 106 */ {"var106", "undefined"}, + /* 107 */ {"var107", "undefined"}, + /* 108 */ {"var108", "undefined"}, + /* 109 */ {"var109", "undefined"}, + /* 110 */ {"var110", "undefined"}, + /* 111 */ {"var111", "undefined"}, + /* 112 */ {"var112", "undefined"}, + /* 113 */ {"var113", "undefined"}, + /* 114 */ {"var114", "undefined"}, + /* 115 */ {"var115", "undefined"}, + /* 116 */ {"var116", "undefined"}, + /* 117 */ {"var117", "undefined"}, + /* 118 */ {"var118", "undefined"}, + /* 119 */ {"var119", "undefined"}, + /* 120 */ {"var120", "undefined"}, + /* 121 */ {"var121", "undefined"}, + /* 122 */ {"var122", "undefined"}, + /* 123 */ {"var123", "undefined"}, + /* 124 */ {"var124", "undefined"}, + /* 125 */ {"var125", "undefined"}, + /* 126 */ {"var126", "undefined"}, + /* 127 */ {"var127", "undefined"}, + /* 128 */ {"var128", "undefined"}, + /* 129 */ {"var129", "undefined"}, + /* 130 */ {"var130", "undefined"}, + /* 131 */ {"var131", "undefined"}, + /* 132 */ {"var132", "undefined"}, + /* 133 */ {"var133", "undefined"}, + /* 134 */ {"var134", "undefined"}, + /* 135 */ {"var135", "undefined"}, + /* 136 */ {"var136", "undefined"}, + /* 137 */ {"var137", "undefined"}, + /* 138 */ {"var138", "undefined"}, + /* 139 */ {"var139", "undefined"}, + /* 140 */ {"var140", "undefined"}, + /* 141 */ {"var141", "undefined"}, + /* 142 */ {"var142", "undefined"}, + /* 143 */ {"var143", "undefined"}, + /* 144 */ {"SFI", "Snowfall index [(-1 to 1)]"}, + /* 145 */ {"var145", "undefined"}, + /* 146 */ {"var146", "undefined"}, + /* 147 */ {"var147", "undefined"}, + /* 148 */ {"var148", "undefined"}, + /* 149 */ {"var149", "undefined"}, + /* 150 */ {"var150", "undefined"}, + /* 151 */ {"var151", "undefined"}, + /* 152 */ {"var152", "undefined"}, + /* 153 */ {"var153", "undefined"}, + /* 154 */ {"var154", "undefined"}, + /* 155 */ {"var155", "undefined"}, + /* 156 */ {"var156", "undefined"}, + /* 157 */ {"var157", "undefined"}, + /* 158 */ {"var158", "undefined"}, + /* 159 */ {"var159", "undefined"}, + /* 160 */ {"var160", "undefined"}, + /* 161 */ {"var161", "undefined"}, + /* 162 */ {"var162", "undefined"}, + /* 163 */ {"var163", "undefined"}, + /* 164 */ {"var164", "undefined"}, + /* 165 */ {"10WSI", "10 metre speed index [(-1 to 1)]"}, + /* 166 */ {"var166", "undefined"}, + /* 167 */ {"2TI", "2 metre temperature index [(-1 to 1)]"}, + /* 168 */ {"var168", "undefined"}, + /* 169 */ {"var169", "undefined"}, + /* 170 */ {"var170", "undefined"}, + /* 171 */ {"var171", "undefined"}, + /* 172 */ {"var172", "undefined"}, + /* 173 */ {"var173", "undefined"}, + /* 174 */ {"var174", "undefined"}, + /* 175 */ {"var175", "undefined"}, + /* 176 */ {"var176", "undefined"}, + /* 177 */ {"var177", "undefined"}, + /* 178 */ {"var178", "undefined"}, + /* 179 */ {"var179", "undefined"}, + /* 180 */ {"var180", "undefined"}, + /* 181 */ {"var181", "undefined"}, + /* 182 */ {"var182", "undefined"}, + /* 183 */ {"var183", "undefined"}, + /* 184 */ {"var184", "undefined"}, + /* 185 */ {"var185", "undefined"}, + /* 186 */ {"var186", "undefined"}, + /* 187 */ {"var187", "undefined"}, + /* 188 */ {"var188", "undefined"}, + /* 189 */ {"var189", "undefined"}, + /* 190 */ {"var190", "undefined"}, + /* 191 */ {"var191", "undefined"}, + /* 192 */ {"var192", "undefined"}, + /* 193 */ {"var193", "undefined"}, + /* 194 */ {"var194", "undefined"}, + /* 195 */ {"var195", "undefined"}, + /* 196 */ {"var196", "undefined"}, + /* 197 */ {"var197", "undefined"}, + /* 198 */ {"var198", "undefined"}, + /* 199 */ {"var199", "undefined"}, + /* 200 */ {"MAXSWHI", "Maximum of significant wave height index [(-1 to 1)]"}, + /* 201 */ {"MX2TI", "Maximum temperature at 2 metres index [(-1 to 1)]"}, + /* 202 */ {"MN2TI", "Minimum temperature at 2 metres index [(-1 to 1)]"}, + /* 203 */ {"var203", "undefined"}, + /* 204 */ {"var204", "undefined"}, + /* 205 */ {"var205", "undefined"}, + /* 206 */ {"var206", "undefined"}, + /* 207 */ {"var207", "undefined"}, + /* 208 */ {"var208", "undefined"}, + /* 209 */ {"var209", "undefined"}, + /* 210 */ {"var210", "undefined"}, + /* 211 */ {"var211", "undefined"}, + /* 212 */ {"var212", "undefined"}, + /* 213 */ {"var213", "undefined"}, + /* 214 */ {"var214", "undefined"}, + /* 215 */ {"var215", "undefined"}, + /* 216 */ {"var216", "undefined"}, + /* 217 */ {"var217", "undefined"}, + /* 218 */ {"var218", "undefined"}, + /* 219 */ {"var219", "undefined"}, + /* 220 */ {"var220", "undefined"}, + /* 221 */ {"var221", "undefined"}, + /* 222 */ {"var222", "undefined"}, + /* 223 */ {"var223", "undefined"}, + /* 224 */ {"var224", "undefined"}, + /* 225 */ {"var225", "undefined"}, + /* 226 */ {"var226", "undefined"}, + /* 227 */ {"var227", "undefined"}, + /* 228 */ {"TPI", "Total precipitation index [(-1 to 1)]"}, + /* 229 */ {"var229", "undefined"}, + /* 230 */ {"var230", "undefined"}, + /* 231 */ {"var231", "undefined"}, + /* 232 */ {"var232", "undefined"}, + /* 233 */ {"var233", "undefined"}, + /* 234 */ {"var234", "undefined"}, + /* 235 */ {"var235", "undefined"}, + /* 236 */ {"var236", "undefined"}, + /* 237 */ {"var237", "undefined"}, + /* 238 */ {"var238", "undefined"}, + /* 239 */ {"var239", "undefined"}, + /* 240 */ {"var240", "undefined"}, + /* 241 */ {"var241", "undefined"}, + /* 242 */ {"var242", "undefined"}, + /* 243 */ {"var243", "undefined"}, + /* 244 */ {"var244", "undefined"}, + /* 245 */ {"var245", "undefined"}, + /* 246 */ {"var246", "undefined"}, + /* 247 */ {"var247", "undefined"}, + /* 248 */ {"var248", "undefined"}, + /* 249 */ {"var249", "undefined"}, + /* 250 */ {"var250", "undefined"}, + /* 251 */ {"var251", "undefined"}, + /* 252 */ {"var252", "undefined"}, + /* 253 */ {"var253", "undefined"}, + /* 254 */ {"var254", "undefined"}, + /* 255 */ {"var255", "Indicates a missing value []"}, +}; + +const struct ParmTable parm_table_ecmwf_133[256] = { + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"2TPLM10", "2m temperature probability less than -10 C [%]"}, + /* 2 */ {"2TPLM5", "2m temperature probability less than -5 C [%]"}, + /* 3 */ {"2TPL0", "2m temperature probability less than 0 C [%]"}, + /* 4 */ {"2TPL5", "2m temperature probability less than 5 C [%]"}, + /* 5 */ {"2TPL10", "2m temperature probability less than 10 C [%]"}, + /* 6 */ {"2TPG25", "2m temperature probability greater than 25 C [%]"}, + /* 7 */ {"2TPG30", "2m temperature probability greater than 30 C [%]"}, + /* 8 */ {"2TPG35", "2m temperature probability greater than 35 C [%]"}, + /* 9 */ {"2TPG40", "2m temperature probability greater than 40 C [%]"}, + /* 10 */ {"2TPG45", "2m temperature probability greater than 45 C [%]"}, + /* 11 */ {"MN2TPLM10", "Minimum 2 metre temperature probability less than -10 C [%]"}, + /* 12 */ {"MN2TPLM5", "Minimum 2 metre temperature probability less than -5 C [%]"}, + /* 13 */ {"MN2TPL0", "Minimum 2 metre temperature probability less than 0 C [%]"}, + /* 14 */ {"MN2TPL5", "Minimum 2 metre temperature probability less than 5 C [%]"}, + /* 15 */ {"MN2TPL10", "Minimum 2 metre temperature probability less than 10 C [%]"}, + /* 16 */ {"MX2TPG25", "Maximum 2 metre temperature probability greater than 25 C [%]"}, + /* 17 */ {"MX2TPG30", "Maximum 2 metre temperature probability greater than 30 C [%]"}, + /* 18 */ {"MX2TPG35", "Maximum 2 metre temperature probability greater than 35 C [%]"}, + /* 19 */ {"MX2TPG40", "Maximum 2 metre temperature probability greater than 40 C [%]"}, + /* 20 */ {"MX2TPG45", "Maximum 2 metre temperature probability greater than 45 C [%]"}, + /* 21 */ {"10SPG10", "10 metre wind speed probability of at least 10 m/s [%]"}, + /* 22 */ {"10SPG15", "10 metre wind speed probability of at least 15 m/s [%]"}, + /* 23 */ {"10SPG20", "10 metre wind speed probability of at least 20 m/s [%]"}, + /* 24 */ {"10SPG35", "10 metre wind speed probability of at least 35 m/s [%]"}, + /* 25 */ {"10SPG50", "10 metre wind speed probability of at least 50 m/s [%]"}, + /* 26 */ {"10GPG20", "10 metre wind gust probability of at least 20 m/s [%]"}, + /* 27 */ {"10GPG35", "10 metre wind gust probability of at least 35 m/s [%]"}, + /* 28 */ {"10GPG50", "10 metre wind gust probability of at least 50 m/s [%]"}, + /* 29 */ {"10GPG75", "10 metre wind gust probability of at least 75 m/s [%]"}, + /* 30 */ {"10GPG100", "10 metre wind gust probability of at least 100 m/s [%]"}, + /* 31 */ {"TPPG1", "Total precipitation probability of at least 1 mm [%]"}, + /* 32 */ {"TPPG5", "Total precipitation probability of at least 5 mm [%]"}, + /* 33 */ {"TPPG10", "Total precipitation probability of at least 10 mm [%]"}, + /* 34 */ {"TPPG20", "Total precipitation probability of at least 20 mm [%]"}, + /* 35 */ {"TPPG40", "Total precipitation probability of at least 40 mm [%]"}, + /* 36 */ {"TPPG60", "Total precipitation probability of at least 60 mm [%]"}, + /* 37 */ {"TPPG80", "Total precipitation probability of at least 80 mm [%]"}, + /* 38 */ {"TPPG100", "Total precipitation probability of at least 100 mm [%]"}, + /* 39 */ {"TPPG150", "Total precipitation probability of at least 150 mm [%]"}, + /* 40 */ {"TPPG200", "Total precipitation probability of at least 200 mm [%]"}, + /* 41 */ {"TPPG300", "Total precipitation probability of at least 300 mm [%]"}, + /* 42 */ {"SFPG1", "Snowfall probability of at least 1 mm [%]"}, + /* 43 */ {"SFPG5", "Snowfall probability of at least 5 mm [%]"}, + /* 44 */ {"SFPG10", "Snowfall probability of at least 10 mm [%]"}, + /* 45 */ {"SFPG20", "Snowfall probability of at least 20 mm [%]"}, + /* 46 */ {"SFPG40", "Snowfall probability of at least 40 mm [%]"}, + /* 47 */ {"SFPG60", "Snowfall probability of at least 60 mm [%]"}, + /* 48 */ {"SFPG80", "Snowfall probability of at least 80 mm [%]"}, + /* 49 */ {"SFPG100", "Snowfall probability of at least 100 mm [%]"}, + /* 50 */ {"SFPG150", "Snowfall probability of at least 150 mm [%]"}, + /* 51 */ {"SFPG200", "Snowfall probability of at least 200 mm [%]"}, + /* 52 */ {"SFPG300", "Snowfall probability of at least 300 mm [%]"}, + /* 53 */ {"TCCPG10", "Total Cloud Cover probability greater than 10% [%]"}, + /* 54 */ {"TCCPG20", "Total Cloud Cover probability greater than 20% [%]"}, + /* 55 */ {"TCCPG30", "Total Cloud Cover probability greater than 30% [%]"}, + /* 56 */ {"TCCPG40", "Total Cloud Cover probability greater than 40% [%]"}, + /* 57 */ {"TCCPG50", "Total Cloud Cover probability greater than 50% [%]"}, + /* 58 */ {"TCCPG60", "Total Cloud Cover probability greater than 60% [%]"}, + /* 59 */ {"TCCPG70", "Total Cloud Cover probability greater than 70% [%]"}, + /* 60 */ {"TCCPG80", "Total Cloud Cover probability greater than 80% [%]"}, + /* 61 */ {"TCCPG90", "Total Cloud Cover probability greater than 90% [%]"}, + /* 62 */ {"TCCPG99", "Total Cloud Cover probability greater than 99% [%]"}, + /* 63 */ {"HCCPG10", "High Cloud Cover probability greater than 10% [%]"}, + /* 64 */ {"HCCPG20", "High Cloud Cover probability greater than 20% [%]"}, + /* 65 */ {"HCCPG30", "High Cloud Cover probability greater than 30% [%]"}, + /* 66 */ {"HCCPG40", "High Cloud Cover probability greater than 40% [%]"}, + /* 67 */ {"HCCPG50", "High Cloud Cover probability greater than 50% [%]"}, + /* 68 */ {"HCCPG60", "High Cloud Cover probability greater than 60% [%]"}, + /* 69 */ {"HCCPG70", "High Cloud Cover probability greater than 70% [%]"}, + /* 70 */ {"HCCPG80", "High Cloud Cover probability greater than 80% [%]"}, + /* 71 */ {"HCCPG90", "High Cloud Cover probability greater than 90% [%]"}, + /* 72 */ {"HCCPG99", "High Cloud Cover probability greater than 99% [%]"}, + /* 73 */ {"MCCPG10", "Medium Cloud Cover probability greater than 10% [%]"}, + /* 74 */ {"MCCPG20", "Medium Cloud Cover probability greater than 20% [%]"}, + /* 75 */ {"MCCPG30", "Medium Cloud Cover probability greater than 30% [%]"}, + /* 76 */ {"MCCPG40", "Medium Cloud Cover probability greater than 40% [%]"}, + /* 77 */ {"MCCPG50", "Medium Cloud Cover probability greater than 50% [%]"}, + /* 78 */ {"MCCPG60", "Medium Cloud Cover probability greater than 60% [%]"}, + /* 79 */ {"MCCPG70", "Medium Cloud Cover probability greater than 70% [%]"}, + /* 80 */ {"MCCPG80", "Medium Cloud Cover probability greater than 80% [%]"}, + /* 81 */ {"MCCPG90", "Medium Cloud Cover probability greater than 90% [%]"}, + /* 82 */ {"MCCPG99", "Medium Cloud Cover probability greater than 99% [%]"}, + /* 83 */ {"LCCPG10", "Low Cloud Cover probability greater than 10% [%]"}, + /* 84 */ {"LCCPG20", "Low Cloud Cover probability greater than 20% [%]"}, + /* 85 */ {"LCCPG30", "Low Cloud Cover probability greater than 30% [%]"}, + /* 86 */ {"LCCPG40", "Low Cloud Cover probability greater than 40% [%]"}, + /* 87 */ {"LCCPG50", "Low Cloud Cover probability greater than 50% [%]"}, + /* 88 */ {"LCCPG60", "Low Cloud Cover probability greater than 60% [%]"}, + /* 89 */ {"LCCPG70", "Low Cloud Cover probability greater than 70% [%]"}, + /* 90 */ {"LCCPG80", "Low Cloud Cover probability greater than 80% [%]"}, + /* 91 */ {"LCCPG90", "Low Cloud Cover probability greater than 90% [%]"}, + /* 92 */ {"LCCPG99", "Low Cloud Cover probability greater than 99% [%]"}, + /* 93 */ {"var93", "undefined"}, + /* 94 */ {"var94", "undefined"}, + /* 95 */ {"var95", "undefined"}, + /* 96 */ {"var96", "undefined"}, + /* 97 */ {"var97", "undefined"}, + /* 98 */ {"var98", "undefined"}, + /* 99 */ {"var99", "undefined"}, + /* 100 */ {"var100", "undefined"}, + /* 101 */ {"var101", "undefined"}, + /* 102 */ {"var102", "undefined"}, + /* 103 */ {"var103", "undefined"}, + /* 104 */ {"var104", "undefined"}, + /* 105 */ {"var105", "undefined"}, + /* 106 */ {"var106", "undefined"}, + /* 107 */ {"var107", "undefined"}, + /* 108 */ {"var108", "undefined"}, + /* 109 */ {"var109", "undefined"}, + /* 110 */ {"var110", "undefined"}, + /* 111 */ {"var111", "undefined"}, + /* 112 */ {"var112", "undefined"}, + /* 113 */ {"var113", "undefined"}, + /* 114 */ {"var114", "undefined"}, + /* 115 */ {"var115", "undefined"}, + /* 116 */ {"var116", "undefined"}, + /* 117 */ {"var117", "undefined"}, + /* 118 */ {"var118", "undefined"}, + /* 119 */ {"var119", "undefined"}, + /* 120 */ {"var120", "undefined"}, + /* 121 */ {"var121", "undefined"}, + /* 122 */ {"var122", "undefined"}, + /* 123 */ {"var123", "undefined"}, + /* 124 */ {"var124", "undefined"}, + /* 125 */ {"var125", "undefined"}, + /* 126 */ {"var126", "undefined"}, + /* 127 */ {"var127", "undefined"}, + /* 128 */ {"var128", "undefined"}, + /* 129 */ {"var129", "undefined"}, + /* 130 */ {"var130", "undefined"}, + /* 131 */ {"var131", "undefined"}, + /* 132 */ {"var132", "undefined"}, + /* 133 */ {"var133", "undefined"}, + /* 134 */ {"var134", "undefined"}, + /* 135 */ {"var135", "undefined"}, + /* 136 */ {"var136", "undefined"}, + /* 137 */ {"var137", "undefined"}, + /* 138 */ {"var138", "undefined"}, + /* 139 */ {"var139", "undefined"}, + /* 140 */ {"var140", "undefined"}, + /* 141 */ {"var141", "undefined"}, + /* 142 */ {"var142", "undefined"}, + /* 143 */ {"var143", "undefined"}, + /* 144 */ {"var144", "undefined"}, + /* 145 */ {"var145", "undefined"}, + /* 146 */ {"var146", "undefined"}, + /* 147 */ {"var147", "undefined"}, + /* 148 */ {"var148", "undefined"}, + /* 149 */ {"var149", "undefined"}, + /* 150 */ {"var150", "undefined"}, + /* 151 */ {"var151", "undefined"}, + /* 152 */ {"var152", "undefined"}, + /* 153 */ {"var153", "undefined"}, + /* 154 */ {"var154", "undefined"}, + /* 155 */ {"var155", "undefined"}, + /* 156 */ {"var156", "undefined"}, + /* 157 */ {"var157", "undefined"}, + /* 158 */ {"var158", "undefined"}, + /* 159 */ {"var159", "undefined"}, + /* 160 */ {"var160", "undefined"}, + /* 161 */ {"var161", "undefined"}, + /* 162 */ {"var162", "undefined"}, + /* 163 */ {"var163", "undefined"}, + /* 164 */ {"var164", "undefined"}, + /* 165 */ {"var165", "undefined"}, + /* 166 */ {"var166", "undefined"}, + /* 167 */ {"var167", "undefined"}, + /* 168 */ {"var168", "undefined"}, + /* 169 */ {"var169", "undefined"}, + /* 170 */ {"var170", "undefined"}, + /* 171 */ {"var171", "undefined"}, + /* 172 */ {"var172", "undefined"}, + /* 173 */ {"var173", "undefined"}, + /* 174 */ {"var174", "undefined"}, + /* 175 */ {"var175", "undefined"}, + /* 176 */ {"var176", "undefined"}, + /* 177 */ {"var177", "undefined"}, + /* 178 */ {"var178", "undefined"}, + /* 179 */ {"var179", "undefined"}, + /* 180 */ {"var180", "undefined"}, + /* 181 */ {"var181", "undefined"}, + /* 182 */ {"var182", "undefined"}, + /* 183 */ {"var183", "undefined"}, + /* 184 */ {"var184", "undefined"}, + /* 185 */ {"var185", "undefined"}, + /* 186 */ {"var186", "undefined"}, + /* 187 */ {"var187", "undefined"}, + /* 188 */ {"var188", "undefined"}, + /* 189 */ {"var189", "undefined"}, + /* 190 */ {"var190", "undefined"}, + /* 191 */ {"var191", "undefined"}, + /* 192 */ {"var192", "undefined"}, + /* 193 */ {"var193", "undefined"}, + /* 194 */ {"var194", "undefined"}, + /* 195 */ {"var195", "undefined"}, + /* 196 */ {"var196", "undefined"}, + /* 197 */ {"var197", "undefined"}, + /* 198 */ {"var198", "undefined"}, + /* 199 */ {"var199", "undefined"}, + /* 200 */ {"var200", "undefined"}, + /* 201 */ {"var201", "undefined"}, + /* 202 */ {"var202", "undefined"}, + /* 203 */ {"var203", "undefined"}, + /* 204 */ {"var204", "undefined"}, + /* 205 */ {"var205", "undefined"}, + /* 206 */ {"var206", "undefined"}, + /* 207 */ {"var207", "undefined"}, + /* 208 */ {"var208", "undefined"}, + /* 209 */ {"var209", "undefined"}, + /* 210 */ {"var210", "undefined"}, + /* 211 */ {"var211", "undefined"}, + /* 212 */ {"var212", "undefined"}, + /* 213 */ {"var213", "undefined"}, + /* 214 */ {"var214", "undefined"}, + /* 215 */ {"var215", "undefined"}, + /* 216 */ {"var216", "undefined"}, + /* 217 */ {"var217", "undefined"}, + /* 218 */ {"var218", "undefined"}, + /* 219 */ {"var219", "undefined"}, + /* 220 */ {"var220", "undefined"}, + /* 221 */ {"var221", "undefined"}, + /* 222 */ {"var222", "undefined"}, + /* 223 */ {"var223", "undefined"}, + /* 224 */ {"var224", "undefined"}, + /* 225 */ {"var225", "undefined"}, + /* 226 */ {"var226", "undefined"}, + /* 227 */ {"var227", "undefined"}, + /* 228 */ {"var228", "undefined"}, + /* 229 */ {"var229", "undefined"}, + /* 230 */ {"var230", "undefined"}, + /* 231 */ {"var231", "undefined"}, + /* 232 */ {"var232", "undefined"}, + /* 233 */ {"var233", "undefined"}, + /* 234 */ {"var234", "undefined"}, + /* 235 */ {"var235", "undefined"}, + /* 236 */ {"var236", "undefined"}, + /* 237 */ {"var237", "undefined"}, + /* 238 */ {"var238", "undefined"}, + /* 239 */ {"var239", "undefined"}, + /* 240 */ {"var240", "undefined"}, + /* 241 */ {"var241", "undefined"}, + /* 242 */ {"var242", "undefined"}, + /* 243 */ {"var243", "undefined"}, + /* 244 */ {"var244", "undefined"}, + /* 245 */ {"var245", "undefined"}, + /* 246 */ {"var246", "undefined"}, + /* 247 */ {"var247", "undefined"}, + /* 248 */ {"var248", "undefined"}, + /* 249 */ {"var249", "undefined"}, + /* 250 */ {"var250", "undefined"}, + /* 251 */ {"var251", "undefined"}, + /* 252 */ {"var252", "undefined"}, + /* 253 */ {"var253", "undefined"}, + /* 254 */ {"var254", "undefined"}, + /* 255 */ {"var255", "undefined"}, +}; + +const struct ParmTable parm_table_ecmwf_140[256] = { + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"var1", "undefined"}, + /* 2 */ {"var2", "undefined"}, + /* 3 */ {"var3", "undefined"}, + /* 4 */ {"var4", "undefined"}, + /* 5 */ {"var5", "undefined"}, + /* 6 */ {"var6", "undefined"}, + /* 7 */ {"var7", "undefined"}, + /* 8 */ {"var8", "undefined"}, + /* 9 */ {"var9", "undefined"}, + /* 10 */ {"var10", "undefined"}, + /* 11 */ {"var11", "undefined"}, + /* 12 */ {"var12", "undefined"}, + /* 13 */ {"var13", "undefined"}, + /* 14 */ {"var14", "undefined"}, + /* 15 */ {"var15", "undefined"}, + /* 16 */ {"var16", "undefined"}, + /* 17 */ {"var17", "undefined"}, + /* 18 */ {"var18", "undefined"}, + /* 19 */ {"var19", "undefined"}, + /* 20 */ {"var20", "undefined"}, + /* 21 */ {"var21", "undefined"}, + /* 22 */ {"var22", "undefined"}, + /* 23 */ {"var23", "undefined"}, + /* 24 */ {"var24", "undefined"}, + /* 25 */ {"var25", "undefined"}, + /* 26 */ {"var26", "undefined"}, + /* 27 */ {"var27", "undefined"}, + /* 28 */ {"var28", "undefined"}, + /* 29 */ {"var29", "undefined"}, + /* 30 */ {"var30", "undefined"}, + /* 31 */ {"var31", "undefined"}, + /* 32 */ {"var32", "undefined"}, + /* 33 */ {"var33", "undefined"}, + /* 34 */ {"var34", "undefined"}, + /* 35 */ {"var35", "undefined"}, + /* 36 */ {"var36", "undefined"}, + /* 37 */ {"var37", "undefined"}, + /* 38 */ {"var38", "undefined"}, + /* 39 */ {"var39", "undefined"}, + /* 40 */ {"var40", "undefined"}, + /* 41 */ {"var41", "undefined"}, + /* 42 */ {"var42", "undefined"}, + /* 43 */ {"var43", "undefined"}, + /* 44 */ {"var44", "undefined"}, + /* 45 */ {"var45", "undefined"}, + /* 46 */ {"var46", "undefined"}, + /* 47 */ {"var47", "undefined"}, + /* 48 */ {"var48", "undefined"}, + /* 49 */ {"var49", "undefined"}, + /* 50 */ {"var50", "undefined"}, + /* 51 */ {"var51", "undefined"}, + /* 52 */ {"var52", "undefined"}, + /* 53 */ {"var53", "undefined"}, + /* 54 */ {"var54", "undefined"}, + /* 55 */ {"var55", "undefined"}, + /* 56 */ {"var56", "undefined"}, + /* 57 */ {"var57", "undefined"}, + /* 58 */ {"var58", "undefined"}, + /* 59 */ {"var59", "undefined"}, + /* 60 */ {"var60", "undefined"}, + /* 61 */ {"var61", "undefined"}, + /* 62 */ {"var62", "undefined"}, + /* 63 */ {"var63", "undefined"}, + /* 64 */ {"var64", "undefined"}, + /* 65 */ {"var65", "undefined"}, + /* 66 */ {"var66", "undefined"}, + /* 67 */ {"var67", "undefined"}, + /* 68 */ {"var68", "undefined"}, + /* 69 */ {"var69", "undefined"}, + /* 70 */ {"var70", "undefined"}, + /* 71 */ {"var71", "undefined"}, + /* 72 */ {"var72", "undefined"}, + /* 73 */ {"var73", "undefined"}, + /* 74 */ {"var74", "undefined"}, + /* 75 */ {"var75", "undefined"}, + /* 76 */ {"var76", "undefined"}, + /* 77 */ {"var77", "undefined"}, + /* 78 */ {"var78", "undefined"}, + /* 79 */ {"var79", "undefined"}, + /* 80 */ {"var80", "undefined"}, + /* 81 */ {"var81", "undefined"}, + /* 82 */ {"var82", "undefined"}, + /* 83 */ {"var83", "undefined"}, + /* 84 */ {"var84", "undefined"}, + /* 85 */ {"var85", "undefined"}, + /* 86 */ {"var86", "undefined"}, + /* 87 */ {"var87", "undefined"}, + /* 88 */ {"var88", "undefined"}, + /* 89 */ {"var89", "undefined"}, + /* 90 */ {"var90", "undefined"}, + /* 91 */ {"var91", "undefined"}, + /* 92 */ {"var92", "undefined"}, + /* 93 */ {"var93", "undefined"}, + /* 94 */ {"var94", "undefined"}, + /* 95 */ {"var95", "undefined"}, + /* 96 */ {"var96", "undefined"}, + /* 97 */ {"var97", "undefined"}, + /* 98 */ {"var98", "undefined"}, + /* 99 */ {"var99", "undefined"}, + /* 100 */ {"var100", "undefined"}, + /* 101 */ {"var101", "undefined"}, + /* 102 */ {"var102", "undefined"}, + /* 103 */ {"var103", "undefined"}, + /* 104 */ {"var104", "undefined"}, + /* 105 */ {"var105", "undefined"}, + /* 106 */ {"var106", "undefined"}, + /* 107 */ {"var107", "undefined"}, + /* 108 */ {"var108", "undefined"}, + /* 109 */ {"var109", "undefined"}, + /* 110 */ {"var110", "undefined"}, + /* 111 */ {"var111", "undefined"}, + /* 112 */ {"var112", "undefined"}, + /* 113 */ {"var113", "undefined"}, + /* 114 */ {"var114", "undefined"}, + /* 115 */ {"var115", "undefined"}, + /* 116 */ {"var116", "undefined"}, + /* 117 */ {"var117", "undefined"}, + /* 118 */ {"var118", "undefined"}, + /* 119 */ {"var119", "undefined"}, + /* 120 */ {"var120", "undefined"}, + /* 121 */ {"var121", "undefined"}, + /* 122 */ {"var122", "undefined"}, + /* 123 */ {"var123", "undefined"}, + /* 124 */ {"var124", "undefined"}, + /* 125 */ {"var125", "undefined"}, + /* 126 */ {"var126", "undefined"}, + /* 127 */ {"var127", "undefined"}, + /* 128 */ {"var128", "undefined"}, + /* 129 */ {"var129", "undefined"}, + /* 130 */ {"var130", "undefined"}, + /* 131 */ {"var131", "undefined"}, + /* 132 */ {"var132", "undefined"}, + /* 133 */ {"var133", "undefined"}, + /* 134 */ {"var134", "undefined"}, + /* 135 */ {"var135", "undefined"}, + /* 136 */ {"var136", "undefined"}, + /* 137 */ {"var137", "undefined"}, + /* 138 */ {"var138", "undefined"}, + /* 139 */ {"var139", "undefined"}, + /* 140 */ {"var140", "undefined"}, + /* 141 */ {"var141", "undefined"}, + /* 142 */ {"var142", "undefined"}, + /* 143 */ {"var143", "undefined"}, + /* 144 */ {"var144", "undefined"}, + /* 145 */ {"var145", "undefined"}, + /* 146 */ {"var146", "undefined"}, + /* 147 */ {"var147", "undefined"}, + /* 148 */ {"var148", "undefined"}, + /* 149 */ {"var149", "undefined"}, + /* 150 */ {"var150", "undefined"}, + /* 151 */ {"var151", "undefined"}, + /* 152 */ {"var152", "undefined"}, + /* 153 */ {"var153", "undefined"}, + /* 154 */ {"var154", "undefined"}, + /* 155 */ {"var155", "undefined"}, + /* 156 */ {"var156", "undefined"}, + /* 157 */ {"var157", "undefined"}, + /* 158 */ {"var158", "undefined"}, + /* 159 */ {"var159", "undefined"}, + /* 160 */ {"var160", "undefined"}, + /* 161 */ {"var161", "undefined"}, + /* 162 */ {"var162", "undefined"}, + /* 163 */ {"var163", "undefined"}, + /* 164 */ {"var164", "undefined"}, + /* 165 */ {"var165", "undefined"}, + /* 166 */ {"var166", "undefined"}, + /* 167 */ {"var167", "undefined"}, + /* 168 */ {"var168", "undefined"}, + /* 169 */ {"var169", "undefined"}, + /* 170 */ {"var170", "undefined"}, + /* 171 */ {"var171", "undefined"}, + /* 172 */ {"var172", "undefined"}, + /* 173 */ {"var173", "undefined"}, + /* 174 */ {"var174", "undefined"}, + /* 175 */ {"var175", "undefined"}, + /* 176 */ {"var176", "undefined"}, + /* 177 */ {"var177", "undefined"}, + /* 178 */ {"var178", "undefined"}, + /* 179 */ {"var179", "undefined"}, + /* 180 */ {"var180", "undefined"}, + /* 181 */ {"var181", "undefined"}, + /* 182 */ {"var182", "undefined"}, + /* 183 */ {"var183", "undefined"}, + /* 184 */ {"var184", "undefined"}, + /* 185 */ {"var185", "undefined"}, + /* 186 */ {"var186", "undefined"}, + /* 187 */ {"var187", "undefined"}, + /* 188 */ {"var188", "undefined"}, + /* 189 */ {"var189", "undefined"}, + /* 190 */ {"var190", "undefined"}, + /* 191 */ {"var191", "undefined"}, + /* 192 */ {"var192", "undefined"}, + /* 193 */ {"var193", "undefined"}, + /* 194 */ {"var194", "undefined"}, + /* 195 */ {"var195", "undefined"}, + /* 196 */ {"var196", "undefined"}, + /* 197 */ {"var197", "undefined"}, + /* 198 */ {"var198", "undefined"}, + /* 199 */ {"var199", "undefined"}, + /* 200 */ {"MAXSWH", "Maximum of significant wave height [m]"}, + /* 201 */ {"var201", "undefined"}, + /* 202 */ {"var202", "undefined"}, + /* 203 */ {"var203", "undefined"}, + /* 204 */ {"var204", "undefined"}, + /* 205 */ {"var205", "undefined"}, + /* 206 */ {"var206", "undefined"}, + /* 207 */ {"var207", "undefined"}, + /* 208 */ {"var208", "undefined"}, + /* 209 */ {"var209", "undefined"}, + /* 210 */ {"var210", "undefined"}, + /* 211 */ {"var211", "undefined"}, + /* 212 */ {"var212", "undefined"}, + /* 213 */ {"var213", "undefined"}, + /* 214 */ {"var214", "undefined"}, + /* 215 */ {"UST", "U-component stokes drift [m s**-1]"}, + /* 216 */ {"VST", "V-component stokes drift [m s**-1]"}, + /* 217 */ {"TMAX", "Period corresponding to maximum individual wave height [s]"}, + /* 218 */ {"HMAX", "Maximum individual wave height [m]"}, + /* 219 */ {"WMB", "Model bathymetry [m]"}, + /* 220 */ {"MP1", "Mean wave period based on first moment [s]"}, + /* 221 */ {"MP2", "Mean wave period based on second moment [s]"}, + /* 222 */ {"WDW", "Wave spectral directional width []"}, + /* 223 */ {"P1WW", "Mean wave period based on first moment for wind waves [s]"}, + /* 224 */ {"P2WW", "Mean wave period based on second moment for wind waves [s]"}, + /* 225 */ {"DWWW", "Wave spectral directional width for wind waves []"}, + /* 226 */ {"P1PS", "Mean wave period based on first moment for swell [s]"}, + /* 227 */ {"P2PS", "Mean wave period based on second moment for swell [s]"}, + /* 228 */ {"DWPS", "Wave spectral directional width for swell []"}, + /* 229 */ {"SWH", "Significant wave height [m]"}, + /* 230 */ {"MWD", "Mean wave direction [degrees]"}, + /* 231 */ {"PP1D", "Peak period of 1D spectra [s]"}, + /* 232 */ {"MWP", "Mean wave period [s]"}, + /* 233 */ {"CDWW", "Coefficient of drag with waves []"}, + /* 234 */ {"SHWW", "Significant height of wind waves [m]"}, + /* 235 */ {"MDWW", "Mean direction of wind waves [degrees]"}, + /* 236 */ {"MPWW", "Mean period of wind waves [s]"}, + /* 237 */ {"SHTS", "Significant height of total swell [m]"}, + /* 238 */ {"MDTS", "Mean direction of total swell [degrees]"}, + /* 239 */ {"MPTS", "Mean period of total swell [s]"}, + /* 240 */ {"SDHS", "Standard deviation wave height [m]"}, + /* 241 */ {"MU10", "Mean of 10 metre wind speed [m s**-1]"}, + /* 242 */ {"MDWI", "Mean wind direction [degrees]"}, + /* 243 */ {"SDU", "Standard deviation of 10 metre wind speed [m s**-1]"}, + /* 244 */ {"MSQS", "Mean square slope of waves [dimensionless]"}, + /* 245 */ {"WIND", "10 metre wind speed [m s**-1]"}, + /* 246 */ {"AWH", "Altimeter wave height [m]"}, + /* 247 */ {"ACWH", "Altimeter corrected wave height [m]"}, + /* 248 */ {"ARRC", "Altimeter range relative correction []"}, + /* 249 */ {"DWI", "10 metre wind direction [degrees]"}, + /* 250 */ {"2DSP", "2D wave spectra (multiple) [m**2 s radian**-1]"}, + /* 251 */ {"2DFD", "2D wave spectra (single) [m**2 s radian**-1]"}, + /* 252 */ {"WSK", "Wave spectral kurtosis []"}, + /* 253 */ {"BFI", "Benjamin-Feir index []"}, + /* 254 */ {"WSP", "Wave spectral peakedness [s**-1]"}, + /* 255 */ {"var255", "Indicates a missing value []"}, +}; + +const struct ParmTable parm_table_ecmwf_150[256] = { + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"var1", "undefined"}, + /* 2 */ {"var2", "undefined"}, + /* 3 */ {"var3", "undefined"}, + /* 4 */ {"var4", "undefined"}, + /* 5 */ {"var5", "undefined"}, + /* 6 */ {"var6", "undefined"}, + /* 7 */ {"var7", "undefined"}, + /* 8 */ {"var8", "undefined"}, + /* 9 */ {"var9", "undefined"}, + /* 10 */ {"var10", "undefined"}, + /* 11 */ {"var11", "undefined"}, + /* 12 */ {"var12", "undefined"}, + /* 13 */ {"var13", "undefined"}, + /* 14 */ {"var14", "undefined"}, + /* 15 */ {"var15", "undefined"}, + /* 16 */ {"var16", "undefined"}, + /* 17 */ {"var17", "undefined"}, + /* 18 */ {"var18", "undefined"}, + /* 19 */ {"var19", "undefined"}, + /* 20 */ {"var20", "undefined"}, + /* 21 */ {"var21", "undefined"}, + /* 22 */ {"var22", "undefined"}, + /* 23 */ {"var23", "undefined"}, + /* 24 */ {"var24", "undefined"}, + /* 25 */ {"var25", "undefined"}, + /* 26 */ {"var26", "undefined"}, + /* 27 */ {"var27", "undefined"}, + /* 28 */ {"var28", "undefined"}, + /* 29 */ {"var29", "undefined"}, + /* 30 */ {"var30", "undefined"}, + /* 31 */ {"var31", "undefined"}, + /* 32 */ {"var32", "undefined"}, + /* 33 */ {"var33", "undefined"}, + /* 34 */ {"var34", "undefined"}, + /* 35 */ {"var35", "undefined"}, + /* 36 */ {"var36", "undefined"}, + /* 37 */ {"var37", "undefined"}, + /* 38 */ {"var38", "undefined"}, + /* 39 */ {"var39", "undefined"}, + /* 40 */ {"var40", "undefined"}, + /* 41 */ {"var41", "undefined"}, + /* 42 */ {"var42", "undefined"}, + /* 43 */ {"var43", "undefined"}, + /* 44 */ {"var44", "undefined"}, + /* 45 */ {"var45", "undefined"}, + /* 46 */ {"var46", "undefined"}, + /* 47 */ {"var47", "undefined"}, + /* 48 */ {"var48", "undefined"}, + /* 49 */ {"var49", "undefined"}, + /* 50 */ {"var50", "undefined"}, + /* 51 */ {"var51", "undefined"}, + /* 52 */ {"var52", "undefined"}, + /* 53 */ {"var53", "undefined"}, + /* 54 */ {"var54", "undefined"}, + /* 55 */ {"var55", "undefined"}, + /* 56 */ {"var56", "undefined"}, + /* 57 */ {"var57", "undefined"}, + /* 58 */ {"var58", "undefined"}, + /* 59 */ {"var59", "undefined"}, + /* 60 */ {"var60", "undefined"}, + /* 61 */ {"var61", "undefined"}, + /* 62 */ {"var62", "undefined"}, + /* 63 */ {"var63", "undefined"}, + /* 64 */ {"var64", "undefined"}, + /* 65 */ {"var65", "undefined"}, + /* 66 */ {"var66", "undefined"}, + /* 67 */ {"var67", "undefined"}, + /* 68 */ {"var68", "undefined"}, + /* 69 */ {"var69", "undefined"}, + /* 70 */ {"var70", "undefined"}, + /* 71 */ {"var71", "undefined"}, + /* 72 */ {"var72", "undefined"}, + /* 73 */ {"var73", "undefined"}, + /* 74 */ {"var74", "undefined"}, + /* 75 */ {"var75", "undefined"}, + /* 76 */ {"var76", "undefined"}, + /* 77 */ {"var77", "undefined"}, + /* 78 */ {"var78", "undefined"}, + /* 79 */ {"var79", "undefined"}, + /* 80 */ {"var80", "undefined"}, + /* 81 */ {"var81", "undefined"}, + /* 82 */ {"var82", "undefined"}, + /* 83 */ {"var83", "undefined"}, + /* 84 */ {"var84", "undefined"}, + /* 85 */ {"var85", "undefined"}, + /* 86 */ {"var86", "undefined"}, + /* 87 */ {"var87", "undefined"}, + /* 88 */ {"var88", "undefined"}, + /* 89 */ {"var89", "undefined"}, + /* 90 */ {"var90", "undefined"}, + /* 91 */ {"var91", "undefined"}, + /* 92 */ {"var92", "undefined"}, + /* 93 */ {"var93", "undefined"}, + /* 94 */ {"var94", "undefined"}, + /* 95 */ {"var95", "undefined"}, + /* 96 */ {"var96", "undefined"}, + /* 97 */ {"var97", "undefined"}, + /* 98 */ {"var98", "undefined"}, + /* 99 */ {"var99", "undefined"}, + /* 100 */ {"var100", "undefined"}, + /* 101 */ {"var101", "undefined"}, + /* 102 */ {"var102", "undefined"}, + /* 103 */ {"var103", "undefined"}, + /* 104 */ {"var104", "undefined"}, + /* 105 */ {"var105", "undefined"}, + /* 106 */ {"var106", "undefined"}, + /* 107 */ {"var107", "undefined"}, + /* 108 */ {"var108", "undefined"}, + /* 109 */ {"var109", "undefined"}, + /* 110 */ {"var110", "undefined"}, + /* 111 */ {"var111", "undefined"}, + /* 112 */ {"var112", "undefined"}, + /* 113 */ {"var113", "undefined"}, + /* 114 */ {"var114", "undefined"}, + /* 115 */ {"var115", "undefined"}, + /* 116 */ {"var116", "undefined"}, + /* 117 */ {"var117", "undefined"}, + /* 118 */ {"var118", "undefined"}, + /* 119 */ {"var119", "undefined"}, + /* 120 */ {"var120", "undefined"}, + /* 121 */ {"var121", "undefined"}, + /* 122 */ {"var122", "undefined"}, + /* 123 */ {"var123", "undefined"}, + /* 124 */ {"var124", "undefined"}, + /* 125 */ {"var125", "undefined"}, + /* 126 */ {"var126", "undefined"}, + /* 127 */ {"var127", "undefined"}, + /* 128 */ {"var128", "undefined"}, + /* 129 */ {"var129", "Ocean potential temperature [deg C]"}, + /* 130 */ {"var130", "Ocean salinity [psu]"}, + /* 131 */ {"var131", "Ocean potential density [kg m**-3 -1000]"}, + /* 132 */ {"var132", "undefined"}, + /* 133 */ {"var133", "Ocean U velocity [m s**-1]"}, + /* 134 */ {"var134", "Ocean V velocity [m s**-1]"}, + /* 135 */ {"var135", "Ocean W velocity [m s**-1]"}, + /* 136 */ {"var136", "undefined"}, + /* 137 */ {"var137", "Richardson number []"}, + /* 138 */ {"var138", "undefined"}, + /* 139 */ {"var139", "U*V product [m s**-2]"}, + /* 140 */ {"var140", "U*T product [m s**-1 deg C]"}, + /* 141 */ {"var141", "V*T product [m s**-1 deg C]"}, + /* 142 */ {"var142", "U*U product [m s**-2]"}, + /* 143 */ {"var143", "V*V product [m s**-2]"}, + /* 144 */ {"var144", "UV - U~V~ [m s**-2]"}, + /* 145 */ {"var145", "UT - U~T~ [m s**-1 deg C]"}, + /* 146 */ {"var146", "VT - V~T~ [m s**-1 deg C]"}, + /* 147 */ {"var147", "UU - U~U~ [m s**-2]"}, + /* 148 */ {"var148", "VV - V~V~ [m s**-2]"}, + /* 149 */ {"var149", "undefined"}, + /* 150 */ {"var150", "undefined"}, + /* 151 */ {"var151", "undefined"}, + /* 152 */ {"var152", "Sea level [m]"}, + /* 153 */ {"var153", "Barotropic stream function []"}, + /* 154 */ {"var154", "Mixed layer depth [m]"}, + /* 155 */ {"var155", "Depth [m]"}, + /* 156 */ {"var156", "undefined"}, + /* 157 */ {"var157", "undefined"}, + /* 158 */ {"var158", "undefined"}, + /* 159 */ {"var159", "undefined"}, + /* 160 */ {"var160", "undefined"}, + /* 161 */ {"var161", "undefined"}, + /* 162 */ {"var162", "undefined"}, + /* 163 */ {"var163", "undefined"}, + /* 164 */ {"var164", "undefined"}, + /* 165 */ {"var165", "undefined"}, + /* 166 */ {"var166", "undefined"}, + /* 167 */ {"var167", "undefined"}, + /* 168 */ {"var168", "U stress [Pa]"}, + /* 169 */ {"var169", "V stress [Pa]"}, + /* 170 */ {"var170", "Turbulent kinetic energy input []"}, + /* 171 */ {"var171", "Net surface heat flux []"}, + /* 172 */ {"var172", "Surface solar radiation []"}, + /* 173 */ {"var173", "P-E []"}, + /* 174 */ {"var174", "undefined"}, + /* 175 */ {"var175", "undefined"}, + /* 176 */ {"var176", "undefined"}, + /* 177 */ {"var177", "undefined"}, + /* 178 */ {"var178", "undefined"}, + /* 179 */ {"var179", "undefined"}, + /* 180 */ {"var180", "Diagnosed sea surface temperature error [deg C]"}, + /* 181 */ {"var181", "Heat flux correction [W m**-2]"}, + /* 182 */ {"var182", "Observed sea surface temperature [deg C]"}, + /* 183 */ {"var183", "Observed heat flux [W m**-2]"}, + /* 184 */ {"var184", "undefined"}, + /* 185 */ {"var185", "undefined"}, + /* 186 */ {"var186", "undefined"}, + /* 187 */ {"var187", "undefined"}, + /* 188 */ {"var188", "undefined"}, + /* 189 */ {"var189", "undefined"}, + /* 190 */ {"var190", "undefined"}, + /* 191 */ {"var191", "undefined"}, + /* 192 */ {"var192", "undefined"}, + /* 193 */ {"var193", "undefined"}, + /* 194 */ {"var194", "undefined"}, + /* 195 */ {"var195", "undefined"}, + /* 196 */ {"var196", "undefined"}, + /* 197 */ {"var197", "undefined"}, + /* 198 */ {"var198", "undefined"}, + /* 199 */ {"var199", "undefined"}, + /* 200 */ {"var200", "undefined"}, + /* 201 */ {"var201", "undefined"}, + /* 202 */ {"var202", "undefined"}, + /* 203 */ {"var203", "undefined"}, + /* 204 */ {"var204", "undefined"}, + /* 205 */ {"var205", "undefined"}, + /* 206 */ {"var206", "undefined"}, + /* 207 */ {"var207", "undefined"}, + /* 208 */ {"var208", "undefined"}, + /* 209 */ {"var209", "undefined"}, + /* 210 */ {"var210", "undefined"}, + /* 211 */ {"var211", "undefined"}, + /* 212 */ {"var212", "undefined"}, + /* 213 */ {"var213", "undefined"}, + /* 214 */ {"var214", "undefined"}, + /* 215 */ {"var215", "undefined"}, + /* 216 */ {"var216", "undefined"}, + /* 217 */ {"var217", "undefined"}, + /* 218 */ {"var218", "undefined"}, + /* 219 */ {"var219", "undefined"}, + /* 220 */ {"var220", "undefined"}, + /* 221 */ {"var221", "undefined"}, + /* 222 */ {"var222", "undefined"}, + /* 223 */ {"var223", "undefined"}, + /* 224 */ {"var224", "undefined"}, + /* 225 */ {"var225", "undefined"}, + /* 226 */ {"var226", "undefined"}, + /* 227 */ {"var227", "undefined"}, + /* 228 */ {"var228", "undefined"}, + /* 229 */ {"var229", "undefined"}, + /* 230 */ {"var230", "undefined"}, + /* 231 */ {"var231", "undefined"}, + /* 232 */ {"var232", "undefined"}, + /* 233 */ {"var233", "undefined"}, + /* 234 */ {"var234", "undefined"}, + /* 235 */ {"var235", "undefined"}, + /* 236 */ {"var236", "undefined"}, + /* 237 */ {"var237", "undefined"}, + /* 238 */ {"var238", "undefined"}, + /* 239 */ {"var239", "undefined"}, + /* 240 */ {"var240", "undefined"}, + /* 241 */ {"var241", "undefined"}, + /* 242 */ {"var242", "undefined"}, + /* 243 */ {"var243", "undefined"}, + /* 244 */ {"var244", "undefined"}, + /* 245 */ {"var245", "undefined"}, + /* 246 */ {"var246", "undefined"}, + /* 247 */ {"var247", "undefined"}, + /* 248 */ {"var248", "undefined"}, + /* 249 */ {"var249", "undefined"}, + /* 250 */ {"var250", "undefined"}, + /* 251 */ {"var251", "undefined"}, + /* 252 */ {"var252", "undefined"}, + /* 253 */ {"var253", "undefined"}, + /* 254 */ {"var254", "undefined"}, + /* 255 */ {"var255", "Indicates a missing value []"}, +}; + +const struct ParmTable parm_table_ecmwf_151[256] = { + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"var1", "undefined"}, + /* 2 */ {"var2", "undefined"}, + /* 3 */ {"var3", "undefined"}, + /* 4 */ {"var4", "undefined"}, + /* 5 */ {"var5", "undefined"}, + /* 6 */ {"var6", "undefined"}, + /* 7 */ {"var7", "undefined"}, + /* 8 */ {"var8", "undefined"}, + /* 9 */ {"var9", "undefined"}, + /* 10 */ {"var10", "undefined"}, + /* 11 */ {"var11", "undefined"}, + /* 12 */ {"var12", "undefined"}, + /* 13 */ {"var13", "undefined"}, + /* 14 */ {"var14", "undefined"}, + /* 15 */ {"var15", "undefined"}, + /* 16 */ {"var16", "undefined"}, + /* 17 */ {"var17", "undefined"}, + /* 18 */ {"var18", "undefined"}, + /* 19 */ {"var19", "undefined"}, + /* 20 */ {"var20", "undefined"}, + /* 21 */ {"var21", "undefined"}, + /* 22 */ {"var22", "undefined"}, + /* 23 */ {"var23", "undefined"}, + /* 24 */ {"var24", "undefined"}, + /* 25 */ {"var25", "undefined"}, + /* 26 */ {"var26", "undefined"}, + /* 27 */ {"var27", "undefined"}, + /* 28 */ {"var28", "undefined"}, + /* 29 */ {"var29", "undefined"}, + /* 30 */ {"var30", "undefined"}, + /* 31 */ {"var31", "undefined"}, + /* 32 */ {"var32", "undefined"}, + /* 33 */ {"var33", "undefined"}, + /* 34 */ {"var34", "undefined"}, + /* 35 */ {"var35", "undefined"}, + /* 36 */ {"var36", "undefined"}, + /* 37 */ {"var37", "undefined"}, + /* 38 */ {"var38", "undefined"}, + /* 39 */ {"var39", "undefined"}, + /* 40 */ {"var40", "undefined"}, + /* 41 */ {"var41", "undefined"}, + /* 42 */ {"var42", "undefined"}, + /* 43 */ {"var43", "undefined"}, + /* 44 */ {"var44", "undefined"}, + /* 45 */ {"var45", "undefined"}, + /* 46 */ {"var46", "undefined"}, + /* 47 */ {"var47", "undefined"}, + /* 48 */ {"var48", "undefined"}, + /* 49 */ {"var49", "undefined"}, + /* 50 */ {"var50", "undefined"}, + /* 51 */ {"var51", "undefined"}, + /* 52 */ {"var52", "undefined"}, + /* 53 */ {"var53", "undefined"}, + /* 54 */ {"var54", "undefined"}, + /* 55 */ {"var55", "undefined"}, + /* 56 */ {"var56", "undefined"}, + /* 57 */ {"var57", "undefined"}, + /* 58 */ {"var58", "undefined"}, + /* 59 */ {"var59", "undefined"}, + /* 60 */ {"var60", "undefined"}, + /* 61 */ {"var61", "undefined"}, + /* 62 */ {"var62", "undefined"}, + /* 63 */ {"var63", "undefined"}, + /* 64 */ {"var64", "undefined"}, + /* 65 */ {"var65", "undefined"}, + /* 66 */ {"var66", "undefined"}, + /* 67 */ {"var67", "undefined"}, + /* 68 */ {"var68", "undefined"}, + /* 69 */ {"var69", "undefined"}, + /* 70 */ {"var70", "undefined"}, + /* 71 */ {"var71", "undefined"}, + /* 72 */ {"var72", "undefined"}, + /* 73 */ {"var73", "undefined"}, + /* 74 */ {"var74", "undefined"}, + /* 75 */ {"var75", "undefined"}, + /* 76 */ {"var76", "undefined"}, + /* 77 */ {"var77", "undefined"}, + /* 78 */ {"var78", "undefined"}, + /* 79 */ {"var79", "undefined"}, + /* 80 */ {"var80", "undefined"}, + /* 81 */ {"var81", "undefined"}, + /* 82 */ {"var82", "undefined"}, + /* 83 */ {"var83", "undefined"}, + /* 84 */ {"var84", "undefined"}, + /* 85 */ {"var85", "undefined"}, + /* 86 */ {"var86", "undefined"}, + /* 87 */ {"var87", "undefined"}, + /* 88 */ {"var88", "undefined"}, + /* 89 */ {"var89", "undefined"}, + /* 90 */ {"var90", "undefined"}, + /* 91 */ {"var91", "undefined"}, + /* 92 */ {"var92", "undefined"}, + /* 93 */ {"var93", "undefined"}, + /* 94 */ {"var94", "undefined"}, + /* 95 */ {"var95", "undefined"}, + /* 96 */ {"var96", "undefined"}, + /* 97 */ {"var97", "undefined"}, + /* 98 */ {"var98", "undefined"}, + /* 99 */ {"var99", "undefined"}, + /* 100 */ {"var100", "undefined"}, + /* 101 */ {"var101", "undefined"}, + /* 102 */ {"var102", "undefined"}, + /* 103 */ {"var103", "undefined"}, + /* 104 */ {"var104", "undefined"}, + /* 105 */ {"var105", "undefined"}, + /* 106 */ {"var106", "undefined"}, + /* 107 */ {"var107", "undefined"}, + /* 108 */ {"var108", "undefined"}, + /* 109 */ {"var109", "undefined"}, + /* 110 */ {"var110", "undefined"}, + /* 111 */ {"var111", "undefined"}, + /* 112 */ {"var112", "undefined"}, + /* 113 */ {"var113", "undefined"}, + /* 114 */ {"var114", "undefined"}, + /* 115 */ {"var115", "undefined"}, + /* 116 */ {"var116", "undefined"}, + /* 117 */ {"var117", "undefined"}, + /* 118 */ {"var118", "undefined"}, + /* 119 */ {"var119", "undefined"}, + /* 120 */ {"var120", "undefined"}, + /* 121 */ {"var121", "undefined"}, + /* 122 */ {"var122", "undefined"}, + /* 123 */ {"var123", "undefined"}, + /* 124 */ {"var124", "undefined"}, + /* 125 */ {"var125", "undefined"}, + /* 126 */ {"var126", "undefined"}, + /* 127 */ {"var127", "undefined"}, + /* 128 */ {"var128", "In situ Temperature [deg C]"}, + /* 129 */ {"OCPT", "Ocean potential temperature [deg C]"}, + /* 130 */ {"S", "Salinity [psu]"}, + /* 131 */ {"OCU", "Ocean current zonal component [m s**-1]"}, + /* 132 */ {"OCV", "Ocean current meridional component [m s**-1]"}, + /* 133 */ {"OCW", "Ocean current vertical component [m s**-1]"}, + /* 134 */ {"MST", "Modulus of strain rate tensor [s**-1]"}, + /* 135 */ {"VVS", "Vertical viscosity [m**2 s**-1]"}, + /* 136 */ {"VDF", "Vertical diffusivity [m**2 s**-1]"}, + /* 137 */ {"DEP", "Bottom level Depth [m]"}, + /* 138 */ {"STH", "Sigma-theta [kg m**-3]"}, + /* 139 */ {"RN", "Richardson number []"}, + /* 140 */ {"UV", "UV product [m**2 s**-2]"}, + /* 141 */ {"UT", "UT product [m s**-1 degC]"}, + /* 142 */ {"VT", "VT product [m s**-1 deg C]"}, + /* 143 */ {"UU", "UU product [m**2 s**-2]"}, + /* 144 */ {"VV", "VV product [m**2 s**-2]"}, + /* 145 */ {"SL", "Sea level [m]"}, + /* 146 */ {"SL_1", "Sea level previous timestep [m]"}, + /* 147 */ {"BSF", "Barotropic stream function [m**3 s**-1]"}, + /* 148 */ {"MLD", "Mixed layer depth [m]"}, + /* 149 */ {"BTP", "Bottom Pressure (equivalent height) [m]"}, + /* 150 */ {"SH", "Steric height [m]"}, + /* 151 */ {"CRL", "Curl of Wind Stress [N m**-3]"}, + /* 152 */ {"var152", "Divergence of wind stress [Nm**-3]"}, + /* 153 */ {"TAX", "U stress [N m**-2]"}, + /* 154 */ {"TAY", "V stress [N m**-2]"}, + /* 155 */ {"TKI", "Turbulent kinetic energy input [W m**-2]"}, + /* 156 */ {"NSF", "Net surface heat flux [W m**-2]"}, + /* 157 */ {"ASR", "Absorbed solar radiation [W m**-2]"}, + /* 158 */ {"PME", "Precipitation - evaporation [m s**-1]"}, + /* 159 */ {"SST", "Specified sea surface temperature [deg C]"}, + /* 160 */ {"SHF", "Specified surface heat flux [W m**-2]"}, + /* 161 */ {"DTE", "Diagnosed sea surface temperature error [deg C]"}, + /* 162 */ {"HFC", "Heat flux correction [W m**-2]"}, + /* 163 */ {"20D", "20 degrees isotherm depth [m]"}, + /* 164 */ {"TAV300", "Average potential temperature in the upper 300m [degrees C]"}, + /* 165 */ {"UBA1", "Vertically integrated zonal velocity (previous time step) [m**2 s**-1]"}, + /* 166 */ {"VBA1", "Vertically Integrated meridional velocity (previous time step) [m**2 s**-1]"}, + /* 167 */ {"ZTR", "Vertically integrated zonal volume transport [m**2 s**-1]"}, + /* 168 */ {"MTR", "Vertically integrated meridional volume transport [m**2 s**-1]"}, + /* 169 */ {"ZHT", "Vertically integrated zonal heat transport [J m**-1 s**-1]"}, + /* 170 */ {"MHT", "Vertically integrated meridional heat transport [J m**-1 s**-1]"}, + /* 171 */ {"UMAX", "U velocity maximum [m s**-1]"}, + /* 172 */ {"DUMAX", "Depth of the velocity maximum [m]"}, + /* 173 */ {"SMAX", "Salinity maximum [psu]"}, + /* 174 */ {"DSMAX", "Depth of salinity maximum [m]"}, + /* 175 */ {"SAV300", "Average salinity in the upper 300m [psu]"}, + /* 176 */ {"LDP", "Layer Thickness at scalar points [m]"}, + /* 177 */ {"LDU", "Layer Thickness at vector points [m]"}, + /* 178 */ {"PTI", "Potential temperature increment [deg C]"}, + /* 179 */ {"PTAE", "Potential temperature analysis error [deg C]"}, + /* 180 */ {"BPT", "Background potential temperature [deg C]"}, + /* 181 */ {"APT", "Analysed potential temperature [deg C]"}, + /* 182 */ {"PTBE", "Potential temperature background error [deg C]"}, + /* 183 */ {"AS", "Analysed salinity [psu]"}, + /* 184 */ {"SALI", "Salinity increment [psu]"}, + /* 185 */ {"EBT", "Estimated Bias in Temperature [deg C]"}, + /* 186 */ {"EBS", "Estimated Bias in Salinity [psu]"}, + /* 187 */ {"UVI", "Zonal Velocity increment (from balance operator) [m/s per time step]"}, + /* 188 */ {"VVI", "Meridional Velocity increment (from balance operator) []"}, + /* 189 */ {"var189", "undefined"}, + /* 190 */ {"SUBI", "Salinity increment (from salinity data) [psu per time step]"}, + /* 191 */ {"SALE", "Salinity analysis error [psu]"}, + /* 192 */ {"BSAL", "Background Salinity [psu]"}, + /* 193 */ {"var193", "Reserved []"}, + /* 194 */ {"SALBE", "Salinity background error [psu]"}, + /* 195 */ {"var195", "undefined"}, + /* 196 */ {"var196", "undefined"}, + /* 197 */ {"var197", "undefined"}, + /* 198 */ {"var198", "undefined"}, + /* 199 */ {"EBTA", "Estimated temperature bias from assimilation [deg C]"}, + /* 200 */ {"EBSA", "Estimated salinity bias from assimilation [psu]"}, + /* 201 */ {"LTI", "Temperature increment from relaxation term [deg C per time step]"}, + /* 202 */ {"LSI", "Salinity increment from relaxation term []"}, + /* 203 */ {"BZPGA", "Bias in the zonal pressure gradient (applied) [Pa**m-1]"}, + /* 204 */ {"BMPGA", "Bias in the meridional pressure gradient (applied) [Pa**m-1]"}, + /* 205 */ {"EBTL", "Estimated temperature bias from relaxation [deg C]"}, + /* 206 */ {"EBSL", "Estimated salinity bias from relaxation [psu]"}, + /* 207 */ {"FGBT", "First guess bias in temperature [deg C]"}, + /* 208 */ {"FGBS", "First guess bias in salinity [psu]"}, + /* 209 */ {"BPA", "Applied bias in pressure [Pa]"}, + /* 210 */ {"FGBP", "FG bias in pressure [Pa]"}, + /* 211 */ {"PTA", "Bias in temperature(applied) [deg C]"}, + /* 212 */ {"PSA", "Bias in salinity (applied) [psu]"}, + /* 213 */ {"var213", "undefined"}, + /* 214 */ {"var214", "undefined"}, + /* 215 */ {"var215", "undefined"}, + /* 216 */ {"var216", "undefined"}, + /* 217 */ {"var217", "undefined"}, + /* 218 */ {"var218", "undefined"}, + /* 219 */ {"var219", "undefined"}, + /* 220 */ {"var220", "undefined"}, + /* 221 */ {"var221", "undefined"}, + /* 222 */ {"var222", "undefined"}, + /* 223 */ {"var223", "undefined"}, + /* 224 */ {"var224", "undefined"}, + /* 225 */ {"var225", "undefined"}, + /* 226 */ {"var226", "undefined"}, + /* 227 */ {"var227", "undefined"}, + /* 228 */ {"var228", "undefined"}, + /* 229 */ {"var229", "undefined"}, + /* 230 */ {"var230", "undefined"}, + /* 231 */ {"var231", "undefined"}, + /* 232 */ {"var232", "undefined"}, + /* 233 */ {"var233", "undefined"}, + /* 234 */ {"var234", "undefined"}, + /* 235 */ {"var235", "undefined"}, + /* 236 */ {"var236", "undefined"}, + /* 237 */ {"var237", "undefined"}, + /* 238 */ {"var238", "undefined"}, + /* 239 */ {"var239", "undefined"}, + /* 240 */ {"var240", "undefined"}, + /* 241 */ {"var241", "undefined"}, + /* 242 */ {"var242", "undefined"}, + /* 243 */ {"var243", "undefined"}, + /* 244 */ {"var244", "undefined"}, + /* 245 */ {"var245", "undefined"}, + /* 246 */ {"var246", "undefined"}, + /* 247 */ {"var247", "undefined"}, + /* 248 */ {"var248", "undefined"}, + /* 249 */ {"var249", "undefined"}, + /* 250 */ {"var250", "undefined"}, + /* 251 */ {"var251", "undefined"}, + /* 252 */ {"var252", "undefined"}, + /* 253 */ {"var253", "undefined"}, + /* 254 */ {"var254", "undefined"}, + /* 255 */ {"var255", " []"}, +}; + +const struct ParmTable parm_table_ecmwf_160[256] = { + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"var1", "undefined"}, + /* 2 */ {"var2", "undefined"}, + /* 3 */ {"var3", "undefined"}, + /* 4 */ {"var4", "undefined"}, + /* 5 */ {"var5", "undefined"}, + /* 6 */ {"var6", "undefined"}, + /* 7 */ {"var7", "undefined"}, + /* 8 */ {"var8", "undefined"}, + /* 9 */ {"var9", "undefined"}, + /* 10 */ {"var10", "undefined"}, + /* 11 */ {"var11", "undefined"}, + /* 12 */ {"var12", "undefined"}, + /* 13 */ {"var13", "undefined"}, + /* 14 */ {"var14", "undefined"}, + /* 15 */ {"var15", "undefined"}, + /* 16 */ {"var16", "undefined"}, + /* 17 */ {"var17", "undefined"}, + /* 18 */ {"var18", "undefined"}, + /* 19 */ {"var19", "undefined"}, + /* 20 */ {"var20", "undefined"}, + /* 21 */ {"var21", "undefined"}, + /* 22 */ {"var22", "undefined"}, + /* 23 */ {"var23", "undefined"}, + /* 24 */ {"var24", "undefined"}, + /* 25 */ {"var25", "undefined"}, + /* 26 */ {"var26", "undefined"}, + /* 27 */ {"var27", "undefined"}, + /* 28 */ {"var28", "undefined"}, + /* 29 */ {"var29", "undefined"}, + /* 30 */ {"var30", "undefined"}, + /* 31 */ {"var31", "undefined"}, + /* 32 */ {"var32", "undefined"}, + /* 33 */ {"var33", "undefined"}, + /* 34 */ {"var34", "undefined"}, + /* 35 */ {"var35", "undefined"}, + /* 36 */ {"var36", "undefined"}, + /* 37 */ {"var37", "undefined"}, + /* 38 */ {"var38", "undefined"}, + /* 39 */ {"var39", "undefined"}, + /* 40 */ {"var40", "undefined"}, + /* 41 */ {"var41", "undefined"}, + /* 42 */ {"var42", "undefined"}, + /* 43 */ {"var43", "undefined"}, + /* 44 */ {"var44", "undefined"}, + /* 45 */ {"var45", "undefined"}, + /* 46 */ {"var46", "undefined"}, + /* 47 */ {"var47", "undefined"}, + /* 48 */ {"var48", "undefined"}, + /* 49 */ {"10FG", "10 metre wind gust during averaging time [m s**-1]"}, + /* 50 */ {"var50", "undefined"}, + /* 51 */ {"var51", "undefined"}, + /* 52 */ {"var52", "undefined"}, + /* 53 */ {"var53", "undefined"}, + /* 54 */ {"var54", "undefined"}, + /* 55 */ {"var55", "undefined"}, + /* 56 */ {"var56", "undefined"}, + /* 57 */ {"var57", "undefined"}, + /* 58 */ {"var58", "undefined"}, + /* 59 */ {"var59", "undefined"}, + /* 60 */ {"var60", "undefined"}, + /* 61 */ {"var61", "undefined"}, + /* 62 */ {"var62", "undefined"}, + /* 63 */ {"var63", "undefined"}, + /* 64 */ {"var64", "undefined"}, + /* 65 */ {"var65", "undefined"}, + /* 66 */ {"var66", "undefined"}, + /* 67 */ {"var67", "undefined"}, + /* 68 */ {"var68", "undefined"}, + /* 69 */ {"var69", "undefined"}, + /* 70 */ {"var70", "undefined"}, + /* 71 */ {"var71", "undefined"}, + /* 72 */ {"var72", "undefined"}, + /* 73 */ {"var73", "undefined"}, + /* 74 */ {"var74", "undefined"}, + /* 75 */ {"var75", "undefined"}, + /* 76 */ {"var76", "undefined"}, + /* 77 */ {"var77", "undefined"}, + /* 78 */ {"var78", "undefined"}, + /* 79 */ {"var79", "undefined"}, + /* 80 */ {"var80", "undefined"}, + /* 81 */ {"var81", "undefined"}, + /* 82 */ {"var82", "undefined"}, + /* 83 */ {"var83", "undefined"}, + /* 84 */ {"var84", "undefined"}, + /* 85 */ {"var85", "undefined"}, + /* 86 */ {"var86", "undefined"}, + /* 87 */ {"var87", "undefined"}, + /* 88 */ {"var88", "undefined"}, + /* 89 */ {"var89", "undefined"}, + /* 90 */ {"var90", "undefined"}, + /* 91 */ {"var91", "undefined"}, + /* 92 */ {"var92", "undefined"}, + /* 93 */ {"var93", "undefined"}, + /* 94 */ {"var94", "undefined"}, + /* 95 */ {"var95", "undefined"}, + /* 96 */ {"var96", "undefined"}, + /* 97 */ {"var97", "undefined"}, + /* 98 */ {"var98", "undefined"}, + /* 99 */ {"var99", "undefined"}, + /* 100 */ {"var100", "undefined"}, + /* 101 */ {"var101", "undefined"}, + /* 102 */ {"var102", "undefined"}, + /* 103 */ {"var103", "undefined"}, + /* 104 */ {"var104", "undefined"}, + /* 105 */ {"var105", "undefined"}, + /* 106 */ {"var106", "undefined"}, + /* 107 */ {"var107", "undefined"}, + /* 108 */ {"var108", "undefined"}, + /* 109 */ {"var109", "undefined"}, + /* 110 */ {"var110", "undefined"}, + /* 111 */ {"var111", "undefined"}, + /* 112 */ {"var112", "undefined"}, + /* 113 */ {"var113", "undefined"}, + /* 114 */ {"var114", "undefined"}, + /* 115 */ {"var115", "undefined"}, + /* 116 */ {"var116", "undefined"}, + /* 117 */ {"var117", "undefined"}, + /* 118 */ {"var118", "undefined"}, + /* 119 */ {"var119", "undefined"}, + /* 120 */ {"var120", "undefined"}, + /* 121 */ {"var121", "undefined"}, + /* 122 */ {"var122", "undefined"}, + /* 123 */ {"var123", "undefined"}, + /* 124 */ {"var124", "undefined"}, + /* 125 */ {"var125", "undefined"}, + /* 126 */ {"var126", "undefined"}, + /* 127 */ {"AT", "Atmospheric tide []"}, + /* 128 */ {"BV", "Budget values []"}, + /* 129 */ {"Z", "Geopotential [m**2 s**-2]"}, + /* 130 */ {"T", "Temperature [K]"}, + /* 131 */ {"U", "U velocity [m s**-1]"}, + /* 132 */ {"V", "V velocity [m s**-1]"}, + /* 133 */ {"Q", "Specific humidity [kg kg**-1]"}, + /* 134 */ {"SP", "Surface pressure [Pa]"}, + /* 135 */ {"W", "Vertical velocity [Pa s**-1]"}, + /* 136 */ {"TCW", "Total column water [kg m**-2]"}, + /* 137 */ {"PWC", "Precipitable water content [kg m**-2]"}, + /* 138 */ {"VO", "Vorticity (relative) [s**-1]"}, + /* 139 */ {"STL1", "Soil temperature level 1 [K]"}, + /* 140 */ {"SWL1", "Soil wetness level 1 [m]"}, + /* 141 */ {"SD", "Snow depth [m of water]"}, + /* 142 */ {"LSP", "Large-scale precipitation [kg m**-2 s**-1]"}, + /* 143 */ {"CP", "Convective precipitation [kg m**-2 s**-1]"}, + /* 144 */ {"SF", "Snowfall [kg m**-2 s**-1]"}, + /* 145 */ {"BLD", "Boundary layer dissipation [W m**-2]"}, + /* 146 */ {"SSHF", "Surface sensible heat flux [W m**-2]"}, + /* 147 */ {"SLHF", "Surface latent heat flux [W m**-2]"}, + /* 148 */ {"var148", "undefined"}, + /* 149 */ {"var149", "undefined"}, + /* 150 */ {"var150", "undefined"}, + /* 151 */ {"MSL", "Mean sea level pressure [Pa]"}, + /* 152 */ {"LNSP", "Logarithm of surface pressure []"}, + /* 153 */ {"var153", "undefined"}, + /* 154 */ {"var154", "undefined"}, + /* 155 */ {"D", "Divergence [s**-1]"}, + /* 156 */ {"GH", "Height [m]"}, + /* 157 */ {"R", "Relative humidity [(0 - 1)]"}, + /* 158 */ {"TSP", "Tendency of surface pressure [Pa s**-1]"}, + /* 159 */ {"var159", "undefined"}, + /* 160 */ {"var160", "undefined"}, + /* 161 */ {"var161", "undefined"}, + /* 162 */ {"var162", "undefined"}, + /* 163 */ {"var163", "undefined"}, + /* 164 */ {"TCC", "Total cloud cover [(0 - 1)]"}, + /* 165 */ {"10U", "10 metre U wind component [m s**-1]"}, + /* 166 */ {"10V", "10 metre V wind component [m s**-1]"}, + /* 167 */ {"2T", "2 metre temperature [K]"}, + /* 168 */ {"2D", "2 metre dewpoint temperature [K]"}, + /* 169 */ {"var169", "undefined"}, + /* 170 */ {"STL2", "Soil temperature level 2 [K]"}, + /* 171 */ {"SWL2", "Soil wetness level 2 [m]"}, + /* 172 */ {"LSM", "Land-sea mask [(0 - 1)]"}, + /* 173 */ {"SR", "Surface roughness [m]"}, + /* 174 */ {"AL", "Albedo [(0 - 1)]"}, + /* 175 */ {"var175", "undefined"}, + /* 176 */ {"SSR", "Surface solar radiation [W m**-2]"}, + /* 177 */ {"STR", "Surface thermal radiation [W m**-2]"}, + /* 178 */ {"TSR", "Top solar radiation [W m**-2]"}, + /* 179 */ {"TTR", "Top thermal radiation [W m**-2]"}, + /* 180 */ {"EWSS", "East-West surface stress [N m**-2 s**-1]"}, + /* 181 */ {"NSSS", "North-South surface stress [N m**-2 s**-1]"}, + /* 182 */ {"E", "Evaporation [kg m**-2 s**-1]"}, + /* 183 */ {"STL3", "Soil temperature level 3 [K]"}, + /* 184 */ {"SWL3", "Soil wetness level 3 [m]"}, + /* 185 */ {"CCC", "Convective cloud cover [(0 - 1)]"}, + /* 186 */ {"LCC", "Low cloud cover [(0 - 1)]"}, + /* 187 */ {"MCC", "Medium cloud cover [(0 - 1)]"}, + /* 188 */ {"HCC", "High cloud cover [(0 - 1)]"}, + /* 189 */ {"var189", "undefined"}, + /* 190 */ {"EWOV", "East-West component of sub-gridscale orographic variance [m**2]"}, + /* 191 */ {"NSOV", "North-South component of sub-gridscale orographic variance [m**2]"}, + /* 192 */ {"NWOV", "North-West/South-East component of sub-gridscale orographic variance [m**2]"}, + /* 193 */ {"NEOV", "North-East/South-West component of sub-gridscale orographic variance [m**2]"}, + /* 194 */ {"var194", "undefined"}, + /* 195 */ {"LGWS", "Latitudinal component of gravity wave stress [N m**-2 s]"}, + /* 196 */ {"MGWS", "Meridional component of gravity wave stress [N m**-2 s]"}, + /* 197 */ {"GWD", "Gravity wave dissipation [W m**-2 s]"}, + /* 198 */ {"SRC", "Skin reservoir content [m of water]"}, + /* 199 */ {"VEG", "Percentage of vegetation [%]"}, + /* 200 */ {"VSO", "Variance of sub-gridscale orography [m**2]"}, + /* 201 */ {"MX2T", "Maximum temperature at 2 metres during averaging time [K]"}, + /* 202 */ {"MN2T", "Minimium temperature at 2 metres during averaging time [K]"}, + /* 203 */ {"var203", "undefined"}, + /* 204 */ {"PAW", "Precipitation analysis weights []"}, + /* 205 */ {"RO", "Runoff [kg m**-2 s**-1]"}, + /* 206 */ {"ZZ", "Standard deviation of geopotential [m**2 s**-2]"}, + /* 207 */ {"TZ", "Covariance of temperature and geopotential [K m**2 s**-2]"}, + /* 208 */ {"TT", "Standard deviation of temperature [K]"}, + /* 209 */ {"QZ", "Covariance of specific humidity and geopotential [m**2 s**-2]"}, + /* 210 */ {"QT", "Covariance of specific humidity and temperature [K]"}, + /* 211 */ {"QQ", "Standard deviation of specific humidity [(0 - 1)]"}, + /* 212 */ {"UZ", "Covariance of U component and geopotential [m**3 s**-3]"}, + /* 213 */ {"UT", "Covariance of U component and temperature [K m s**-1]"}, + /* 214 */ {"UQ", "Covariance of U component and specific humidity [m s**-1]"}, + /* 215 */ {"UU", "Standard deviation of U velocity [m s**-1]"}, + /* 216 */ {"VZ", "Covariance of V component and geopotential [m**3 s**-3]"}, + /* 217 */ {"VT", "Covariance of V component and temperature [K m s**-1]"}, + /* 218 */ {"VQ", "Covariance of V component and specific humidity [m s**-1]"}, + /* 219 */ {"VU", "Covariance of V component and U component [m**2 s**-2]"}, + /* 220 */ {"VV", "Standard deviation of V component [m s**-1]"}, + /* 221 */ {"WZ", "Covariance of W component and geopotential [Pa m**2 s**-3]"}, + /* 222 */ {"WT", "Covariance of W component and temperature [K Pa s**-1]"}, + /* 223 */ {"WQ", "Covariance of W component and specific humidity [Pa s**-1]"}, + /* 224 */ {"WU", "Covariance of W component and U component [Pa m s**-2]"}, + /* 225 */ {"WV", "Covariance of W component and V component [Pa m s**-2]"}, + /* 226 */ {"WW", "Standard deviation of vertical velocity [Pa s**-1]"}, + /* 227 */ {"var227", "undefined"}, + /* 228 */ {"TP", "Total precipitation [m]"}, + /* 229 */ {"IEWS", "Instantaneous X surface stress [N m**-2]"}, + /* 230 */ {"INSS", "Instantaneous Y surface stress [N m**-2]"}, + /* 231 */ {"ISHF", "Instantaneous surface heat flux [W m**-2]"}, + /* 232 */ {"IE", "Instantaneous moisture flux [kg m**-2 s**-1]"}, + /* 233 */ {"ASQ", "Apparent surface humidity [kg kg**-1]"}, + /* 234 */ {"LSRH", "Logarithm of surface roughness length for heat []"}, + /* 235 */ {"SKT", "Skin temperature [K]"}, + /* 236 */ {"STL4", "Soil temperature level 4 [K]"}, + /* 237 */ {"SWL4", "Soil wetness level 4 [m]"}, + /* 238 */ {"TSN", "Temperature of snow layer [K]"}, + /* 239 */ {"CSF", "Convective snowfall [kg m**-2 s**-1]"}, + /* 240 */ {"LSF", "Large-scale snowfall [kg m**-2 s**-1]"}, + /* 241 */ {"CLWCER", "Cloud liquid water content [kg kg**-1]"}, + /* 242 */ {"CC", "Cloud cover [(0 - 1)]"}, + /* 243 */ {"FAL", "Forecast albedo []"}, + /* 244 */ {"FSR", "Forecast surface roughness [m]"}, + /* 245 */ {"FLSR", "Forecast logarithm of surface roughness for heat []"}, + /* 246 */ {"10WS", "10 metre wind speed [m s**-1]"}, + /* 247 */ {"MOFL", "Momentum flux [N m**-2]"}, + /* 248 */ {"var248", "undefined"}, + /* 249 */ {"var249", "Gravity wave dissipation flux [W m**-2]"}, + /* 250 */ {"var250", "undefined"}, + /* 251 */ {"var251", "undefined"}, + /* 252 */ {"var252", "undefined"}, + /* 253 */ {"var253", "undefined"}, + /* 254 */ {"HSD", "Heaviside beta function [(0 - 1)]"}, + /* 255 */ {"var255", "Indicates a missing value []"}, +}; + +const struct ParmTable parm_table_ecmwf_162[256] = { + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"var1", "undefined"}, + /* 2 */ {"var2", "undefined"}, + /* 3 */ {"var3", "undefined"}, + /* 4 */ {"var4", "undefined"}, + /* 5 */ {"var5", "undefined"}, + /* 6 */ {"var6", "undefined"}, + /* 7 */ {"var7", "undefined"}, + /* 8 */ {"var8", "undefined"}, + /* 9 */ {"var9", "undefined"}, + /* 10 */ {"var10", "undefined"}, + /* 11 */ {"var11", "undefined"}, + /* 12 */ {"var12", "undefined"}, + /* 13 */ {"var13", "undefined"}, + /* 14 */ {"var14", "undefined"}, + /* 15 */ {"var15", "undefined"}, + /* 16 */ {"var16", "undefined"}, + /* 17 */ {"var17", "undefined"}, + /* 18 */ {"var18", "undefined"}, + /* 19 */ {"var19", "undefined"}, + /* 20 */ {"var20", "undefined"}, + /* 21 */ {"var21", "undefined"}, + /* 22 */ {"var22", "undefined"}, + /* 23 */ {"var23", "undefined"}, + /* 24 */ {"var24", "undefined"}, + /* 25 */ {"var25", "undefined"}, + /* 26 */ {"var26", "undefined"}, + /* 27 */ {"var27", "undefined"}, + /* 28 */ {"var28", "undefined"}, + /* 29 */ {"var29", "undefined"}, + /* 30 */ {"var30", "undefined"}, + /* 31 */ {"var31", "undefined"}, + /* 32 */ {"var32", "undefined"}, + /* 33 */ {"var33", "undefined"}, + /* 34 */ {"var34", "undefined"}, + /* 35 */ {"var35", "undefined"}, + /* 36 */ {"var36", "undefined"}, + /* 37 */ {"var37", "undefined"}, + /* 38 */ {"var38", "undefined"}, + /* 39 */ {"var39", "undefined"}, + /* 40 */ {"var40", "undefined"}, + /* 41 */ {"var41", "undefined"}, + /* 42 */ {"var42", "undefined"}, + /* 43 */ {"var43", "undefined"}, + /* 44 */ {"var44", "undefined"}, + /* 45 */ {"var45", "undefined"}, + /* 46 */ {"var46", "undefined"}, + /* 47 */ {"var47", "undefined"}, + /* 48 */ {"var48", "undefined"}, + /* 49 */ {"var49", "undefined"}, + /* 50 */ {"var50", "undefined"}, + /* 51 */ {"var51", "Surface geopotential [m**2 s**-2]"}, + /* 52 */ {"var52", "Surface pressure [Pa]"}, + /* 53 */ {"var53", "Vertical integral of mass of atmosphere [kg m**-2]"}, + /* 54 */ {"var54", "Vertical integral of temperature [K kg m**-2]"}, + /* 55 */ {"var55", "Vertical integral of total column water vapour [kg m**-2]"}, + /* 56 */ {"var56", "Vertical integral of total column liquid cloud water [kg m**-2]"}, + /* 57 */ {"var57", "Vertical integral of total column frozen cloud water [kg m**-2]"}, + /* 58 */ {"var58", "Vertical integral of total column ozone [kg m**-2]"}, + /* 59 */ {"var59", "Vertical integral of kinetic energy [J m**-2]"}, + /* 60 */ {"var60", "Vertical integral of thermal energy [J m**-2]"}, + /* 61 */ {"var61", "Vertical integral of dry static energy [J m**-2]"}, + /* 62 */ {"var62", "Vertical integral of moist static energy [J m**-2]"}, + /* 63 */ {"var63", "Vertical integral of total energy [J m**-2]"}, + /* 64 */ {"var64", "Vertical integral of energy conversion [W m**-2]"}, + /* 65 */ {"var65", "Vertical integral of eastward mass flux [kg m**-1 s**-1]"}, + /* 66 */ {"var66", "Vertical integral of northward mass flux [kg m**-1 s**-1]"}, + /* 67 */ {"var67", "Vertical integral of eastward kinetic energy flux [W m**-2]"}, + /* 68 */ {"var68", "Vertical integral of northward kinetic energy flux [W m**-2]"}, + /* 69 */ {"var69", "Vertical integral of eastward heat flux [W m**-2]"}, + /* 70 */ {"var70", "Vertical integral of northward heat flux [W m**-2]"}, + /* 71 */ {"var71", "Vertical integral of eastward water vapour flux [kg m**-1 s**-1]"}, + /* 72 */ {"var72", "Vertical integral of northward water vapour flux [kg m**-1 s**-1]"}, + /* 73 */ {"var73", "Vertical integral of eastward geopotential flux [W m**-2]"}, + /* 74 */ {"var74", "Vertical integral of northward geopotential flux [W m**-2]"}, + /* 75 */ {"var75", "Vertical integral of eastward total energy flux [W m**-2]"}, + /* 76 */ {"var76", "Vertical integral of northward total energy flux [W m**-2]"}, + /* 77 */ {"var77", "Vertical integral of eastward ozone flux [kg m**-1 s**-1]"}, + /* 78 */ {"var78", "Vertical integral of northward ozone flux [kg m**-1 s**-1]"}, + /* 79 */ {"var79", "undefined"}, + /* 80 */ {"var80", "undefined"}, + /* 81 */ {"var81", "Vertical integral of divergence of mass flux [kg m**-2 s**-1]"}, + /* 82 */ {"var82", "Vertical integral of divergence of kinetic energy flux [W m**-2]"}, + /* 83 */ {"var83", "Vertical integral of divergence of thermal energy flux [W m**-2]"}, + /* 84 */ {"var84", "Vertical integral of divergence of moisture flux [kg m**-2 s**-1]"}, + /* 85 */ {"var85", "Vertical integral of divergence of geopotential flux [W m**-2]"}, + /* 86 */ {"var86", "Vertical integral of divergence of total energy flux [W m**-2]"}, + /* 87 */ {"var87", "Vertical integral of divergence of ozone flux [kg m**-2 s**-1]"}, + /* 88 */ {"var88", "undefined"}, + /* 89 */ {"var89", "undefined"}, + /* 90 */ {"var90", "undefined"}, + /* 91 */ {"var91", "undefined"}, + /* 92 */ {"var92", "undefined"}, + /* 93 */ {"var93", "undefined"}, + /* 94 */ {"var94", "undefined"}, + /* 95 */ {"var95", "undefined"}, + /* 96 */ {"var96", "undefined"}, + /* 97 */ {"var97", "undefined"}, + /* 98 */ {"var98", "undefined"}, + /* 99 */ {"var99", "undefined"}, + /* 100 */ {"var100", "Tendency of short wave radiation [K]"}, + /* 101 */ {"var101", "Tendency of long wave radiation [K]"}, + /* 102 */ {"var102", "Tendency of clear sky short wave radiation [K]"}, + /* 103 */ {"var103", "Tendency of clear sky long wave radiation [K]"}, + /* 104 */ {"var104", "Updraught mass flux [kg m**-2]"}, + /* 105 */ {"var105", "Downdraught mass flux [kg m**-2]"}, + /* 106 */ {"var106", "Updraught detrainment rate [kg m**-3]"}, + /* 107 */ {"var107", "Downdraught detrainment rate [kg m**-3]"}, + /* 108 */ {"var108", "Total precipitation flux [kg m**-2]"}, + /* 109 */ {"var109", "Turbulent diffusion coefficient for heat [m**2]"}, + /* 110 */ {"var110", "Tendency of temperature due to physics [K]"}, + /* 111 */ {"var111", "Tendency of specific humidity due to physics [kg kg**-1]"}, + /* 112 */ {"var112", "Tendency of u component due to physics [m s**-1]"}, + /* 113 */ {"var113", "Tendency of v component due to physics [m s**-1]"}, + /* 114 */ {"var114", "undefined"}, + /* 115 */ {"var115", "undefined"}, + /* 116 */ {"var116", "undefined"}, + /* 117 */ {"var117", "undefined"}, + /* 118 */ {"var118", "undefined"}, + /* 119 */ {"var119", "undefined"}, + /* 120 */ {"var120", "undefined"}, + /* 121 */ {"var121", "undefined"}, + /* 122 */ {"var122", "undefined"}, + /* 123 */ {"var123", "undefined"}, + /* 124 */ {"var124", "undefined"}, + /* 125 */ {"var125", "undefined"}, + /* 126 */ {"var126", "undefined"}, + /* 127 */ {"var127", "undefined"}, + /* 128 */ {"var128", "undefined"}, + /* 129 */ {"var129", "undefined"}, + /* 130 */ {"var130", "undefined"}, + /* 131 */ {"var131", "undefined"}, + /* 132 */ {"var132", "undefined"}, + /* 133 */ {"var133", "undefined"}, + /* 134 */ {"var134", "undefined"}, + /* 135 */ {"var135", "undefined"}, + /* 136 */ {"var136", "undefined"}, + /* 137 */ {"var137", "undefined"}, + /* 138 */ {"var138", "undefined"}, + /* 139 */ {"var139", "undefined"}, + /* 140 */ {"var140", "undefined"}, + /* 141 */ {"var141", "undefined"}, + /* 142 */ {"var142", "undefined"}, + /* 143 */ {"var143", "undefined"}, + /* 144 */ {"var144", "undefined"}, + /* 145 */ {"var145", "undefined"}, + /* 146 */ {"var146", "undefined"}, + /* 147 */ {"var147", "undefined"}, + /* 148 */ {"var148", "undefined"}, + /* 149 */ {"var149", "undefined"}, + /* 150 */ {"var150", "undefined"}, + /* 151 */ {"var151", "undefined"}, + /* 152 */ {"var152", "undefined"}, + /* 153 */ {"var153", "undefined"}, + /* 154 */ {"var154", "undefined"}, + /* 155 */ {"var155", "undefined"}, + /* 156 */ {"var156", "undefined"}, + /* 157 */ {"var157", "undefined"}, + /* 158 */ {"var158", "undefined"}, + /* 159 */ {"var159", "undefined"}, + /* 160 */ {"var160", "undefined"}, + /* 161 */ {"var161", "undefined"}, + /* 162 */ {"var162", "undefined"}, + /* 163 */ {"var163", "undefined"}, + /* 164 */ {"var164", "undefined"}, + /* 165 */ {"var165", "undefined"}, + /* 166 */ {"var166", "undefined"}, + /* 167 */ {"var167", "undefined"}, + /* 168 */ {"var168", "undefined"}, + /* 169 */ {"var169", "undefined"}, + /* 170 */ {"var170", "undefined"}, + /* 171 */ {"var171", "undefined"}, + /* 172 */ {"var172", "undefined"}, + /* 173 */ {"var173", "undefined"}, + /* 174 */ {"var174", "undefined"}, + /* 175 */ {"var175", "undefined"}, + /* 176 */ {"var176", "undefined"}, + /* 177 */ {"var177", "undefined"}, + /* 178 */ {"var178", "undefined"}, + /* 179 */ {"var179", "undefined"}, + /* 180 */ {"var180", "undefined"}, + /* 181 */ {"var181", "undefined"}, + /* 182 */ {"var182", "undefined"}, + /* 183 */ {"var183", "undefined"}, + /* 184 */ {"var184", "undefined"}, + /* 185 */ {"var185", "undefined"}, + /* 186 */ {"var186", "undefined"}, + /* 187 */ {"var187", "undefined"}, + /* 188 */ {"var188", "undefined"}, + /* 189 */ {"var189", "undefined"}, + /* 190 */ {"var190", "undefined"}, + /* 191 */ {"var191", "undefined"}, + /* 192 */ {"var192", "undefined"}, + /* 193 */ {"var193", "undefined"}, + /* 194 */ {"var194", "undefined"}, + /* 195 */ {"var195", "undefined"}, + /* 196 */ {"var196", "undefined"}, + /* 197 */ {"var197", "undefined"}, + /* 198 */ {"var198", "undefined"}, + /* 199 */ {"var199", "undefined"}, + /* 200 */ {"var200", "undefined"}, + /* 201 */ {"var201", "undefined"}, + /* 202 */ {"var202", "undefined"}, + /* 203 */ {"var203", "undefined"}, + /* 204 */ {"var204", "undefined"}, + /* 205 */ {"var205", "undefined"}, + /* 206 */ {"var206", "Variance of geopotential [m**4 s**-4]"}, + /* 207 */ {"var207", "Covariance of geopotential/temperature [m**2 K s**-2]"}, + /* 208 */ {"var208", "Variance of temperature [K**2]"}, + /* 209 */ {"var209", "Covariance of geopotential/specific humidity [m**2 s**-2]"}, + /* 210 */ {"var210", "Covariance of temperature/specific humidity [K]"}, + /* 211 */ {"var211", "Variance of specific humidity []"}, + /* 212 */ {"var212", "Covariance of u component/geopotential [M**3 s**-3]"}, + /* 213 */ {"var213", "Covariance of u component/temperature [m s**-1 K]"}, + /* 214 */ {"var214", "Covariance of u component/specific humidity [m s**-1]"}, + /* 215 */ {"var215", "Variance of u component [m**2 s**-2]"}, + /* 216 */ {"var216", "Covariance of v component/geopotential [M**3 s**-3]"}, + /* 217 */ {"var217", "Covariance of v component/temperaure [m s**-1 K]"}, + /* 218 */ {"var218", "Covariance of v component/specific humidity [m s**-1]"}, + /* 219 */ {"var219", "Covariance of v component/u component [m**2 s**-2]"}, + /* 220 */ {"var220", "Variance of v component [m**2 s**-2]"}, + /* 221 */ {"var221", "Covariance of omega/geopotential [m**2 Pa s**-3]"}, + /* 222 */ {"var222", "Covariance of omega/temperature [Pa s**-1 K]"}, + /* 223 */ {"var223", "Covariance of omega/specific humidity [Pa s**-1]"}, + /* 224 */ {"var224", "Covariance of omega/u component [m Pa s**-2]"}, + /* 225 */ {"var225", "Covariance of omega/v component [m Pa s**-2]"}, + /* 226 */ {"var226", "Variance of omega [Pa**2 s**-2]"}, + /* 227 */ {"var227", "Variance of surface pressure [Pa**2]"}, + /* 228 */ {"var228", "undefined"}, + /* 229 */ {"var229", "Variance of relative humidity [dimensionless]"}, + /* 230 */ {"var230", "Covariance of u component/ozone [m s**-1]"}, + /* 231 */ {"var231", "Covariance of v component/ozone [m s**-1]"}, + /* 232 */ {"var232", "Covariance of omega/ozone [Pa s**-1]"}, + /* 233 */ {"var233", "Variance of ozone [dimensionless]"}, + /* 234 */ {"var234", "undefined"}, + /* 235 */ {"var235", "undefined"}, + /* 236 */ {"var236", "undefined"}, + /* 237 */ {"var237", "undefined"}, + /* 238 */ {"var238", "undefined"}, + /* 239 */ {"var239", "undefined"}, + /* 240 */ {"var240", "undefined"}, + /* 241 */ {"var241", "undefined"}, + /* 242 */ {"var242", "undefined"}, + /* 243 */ {"var243", "undefined"}, + /* 244 */ {"var244", "undefined"}, + /* 245 */ {"var245", "undefined"}, + /* 246 */ {"var246", "undefined"}, + /* 247 */ {"var247", "undefined"}, + /* 248 */ {"var248", "undefined"}, + /* 249 */ {"var249", "undefined"}, + /* 250 */ {"var250", "undefined"}, + /* 251 */ {"var251", "undefined"}, + /* 252 */ {"var252", "undefined"}, + /* 253 */ {"var253", "undefined"}, + /* 254 */ {"var254", "undefined"}, + /* 255 */ {"var255", "Indicates a missing value []"}, +}; + +const struct ParmTable parm_table_ecmwf_170[256] = { + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"var1", "undefined"}, + /* 2 */ {"var2", "undefined"}, + /* 3 */ {"var3", "undefined"}, + /* 4 */ {"var4", "undefined"}, + /* 5 */ {"var5", "undefined"}, + /* 6 */ {"var6", "undefined"}, + /* 7 */ {"var7", "undefined"}, + /* 8 */ {"var8", "undefined"}, + /* 9 */ {"var9", "undefined"}, + /* 10 */ {"var10", "undefined"}, + /* 11 */ {"var11", "undefined"}, + /* 12 */ {"var12", "undefined"}, + /* 13 */ {"var13", "undefined"}, + /* 14 */ {"var14", "undefined"}, + /* 15 */ {"var15", "undefined"}, + /* 16 */ {"var16", "undefined"}, + /* 17 */ {"var17", "undefined"}, + /* 18 */ {"var18", "undefined"}, + /* 19 */ {"var19", "undefined"}, + /* 20 */ {"var20", "undefined"}, + /* 21 */ {"var21", "undefined"}, + /* 22 */ {"var22", "undefined"}, + /* 23 */ {"var23", "undefined"}, + /* 24 */ {"var24", "undefined"}, + /* 25 */ {"var25", "undefined"}, + /* 26 */ {"var26", "undefined"}, + /* 27 */ {"var27", "undefined"}, + /* 28 */ {"var28", "undefined"}, + /* 29 */ {"var29", "undefined"}, + /* 30 */ {"var30", "undefined"}, + /* 31 */ {"var31", "undefined"}, + /* 32 */ {"var32", "undefined"}, + /* 33 */ {"var33", "undefined"}, + /* 34 */ {"var34", "undefined"}, + /* 35 */ {"var35", "undefined"}, + /* 36 */ {"var36", "undefined"}, + /* 37 */ {"var37", "undefined"}, + /* 38 */ {"var38", "undefined"}, + /* 39 */ {"var39", "undefined"}, + /* 40 */ {"var40", "undefined"}, + /* 41 */ {"var41", "undefined"}, + /* 42 */ {"var42", "undefined"}, + /* 43 */ {"var43", "undefined"}, + /* 44 */ {"var44", "undefined"}, + /* 45 */ {"var45", "undefined"}, + /* 46 */ {"var46", "undefined"}, + /* 47 */ {"var47", "undefined"}, + /* 48 */ {"var48", "undefined"}, + /* 49 */ {"var49", "undefined"}, + /* 50 */ {"var50", "undefined"}, + /* 51 */ {"var51", "undefined"}, + /* 52 */ {"var52", "undefined"}, + /* 53 */ {"var53", "undefined"}, + /* 54 */ {"var54", "undefined"}, + /* 55 */ {"var55", "undefined"}, + /* 56 */ {"var56", "undefined"}, + /* 57 */ {"var57", "undefined"}, + /* 58 */ {"var58", "undefined"}, + /* 59 */ {"var59", "undefined"}, + /* 60 */ {"var60", "undefined"}, + /* 61 */ {"var61", "undefined"}, + /* 62 */ {"var62", "undefined"}, + /* 63 */ {"var63", "undefined"}, + /* 64 */ {"var64", "undefined"}, + /* 65 */ {"var65", "undefined"}, + /* 66 */ {"var66", "undefined"}, + /* 67 */ {"var67", "undefined"}, + /* 68 */ {"var68", "undefined"}, + /* 69 */ {"var69", "undefined"}, + /* 70 */ {"var70", "undefined"}, + /* 71 */ {"var71", "undefined"}, + /* 72 */ {"var72", "undefined"}, + /* 73 */ {"var73", "undefined"}, + /* 74 */ {"var74", "undefined"}, + /* 75 */ {"var75", "undefined"}, + /* 76 */ {"var76", "undefined"}, + /* 77 */ {"var77", "undefined"}, + /* 78 */ {"var78", "undefined"}, + /* 79 */ {"var79", "undefined"}, + /* 80 */ {"var80", "undefined"}, + /* 81 */ {"var81", "undefined"}, + /* 82 */ {"var82", "undefined"}, + /* 83 */ {"var83", "undefined"}, + /* 84 */ {"var84", "undefined"}, + /* 85 */ {"var85", "undefined"}, + /* 86 */ {"var86", "undefined"}, + /* 87 */ {"var87", "undefined"}, + /* 88 */ {"var88", "undefined"}, + /* 89 */ {"var89", "undefined"}, + /* 90 */ {"var90", "undefined"}, + /* 91 */ {"var91", "undefined"}, + /* 92 */ {"var92", "undefined"}, + /* 93 */ {"var93", "undefined"}, + /* 94 */ {"var94", "undefined"}, + /* 95 */ {"var95", "undefined"}, + /* 96 */ {"var96", "undefined"}, + /* 97 */ {"var97", "undefined"}, + /* 98 */ {"var98", "undefined"}, + /* 99 */ {"var99", "undefined"}, + /* 100 */ {"var100", "undefined"}, + /* 101 */ {"var101", "undefined"}, + /* 102 */ {"var102", "undefined"}, + /* 103 */ {"var103", "undefined"}, + /* 104 */ {"var104", "undefined"}, + /* 105 */ {"var105", "undefined"}, + /* 106 */ {"var106", "undefined"}, + /* 107 */ {"var107", "undefined"}, + /* 108 */ {"var108", "undefined"}, + /* 109 */ {"var109", "undefined"}, + /* 110 */ {"var110", "undefined"}, + /* 111 */ {"var111", "undefined"}, + /* 112 */ {"var112", "undefined"}, + /* 113 */ {"var113", "undefined"}, + /* 114 */ {"var114", "undefined"}, + /* 115 */ {"var115", "undefined"}, + /* 116 */ {"var116", "undefined"}, + /* 117 */ {"var117", "undefined"}, + /* 118 */ {"var118", "undefined"}, + /* 119 */ {"var119", "undefined"}, + /* 120 */ {"var120", "undefined"}, + /* 121 */ {"var121", "undefined"}, + /* 122 */ {"var122", "undefined"}, + /* 123 */ {"var123", "undefined"}, + /* 124 */ {"var124", "undefined"}, + /* 125 */ {"var125", "undefined"}, + /* 126 */ {"var126", "undefined"}, + /* 127 */ {"var127", "undefined"}, + /* 128 */ {"var128", "undefined"}, + /* 129 */ {"Z", "Geopotential [m**2 s**-2]"}, + /* 130 */ {"T", "Temperature [K]"}, + /* 131 */ {"U", "U velocity [m s**-1]"}, + /* 132 */ {"V", "V velocity [m s**-1]"}, + /* 133 */ {"var133", "undefined"}, + /* 134 */ {"var134", "undefined"}, + /* 135 */ {"var135", "undefined"}, + /* 136 */ {"var136", "undefined"}, + /* 137 */ {"var137", "undefined"}, + /* 138 */ {"VO", "Vorticity (relative) [s**-1]"}, + /* 139 */ {"var139", "undefined"}, + /* 140 */ {"SWL1", "Soil wetness level 1 [m]"}, + /* 141 */ {"SD", "Snow depth [m of water equivalent]"}, + /* 142 */ {"var142", "undefined"}, + /* 143 */ {"var143", "undefined"}, + /* 144 */ {"var144", "undefined"}, + /* 145 */ {"var145", "undefined"}, + /* 146 */ {"var146", "undefined"}, + /* 147 */ {"var147", "undefined"}, + /* 148 */ {"var148", "undefined"}, + /* 149 */ {"TSW", "Total soil moisture [m]"}, + /* 150 */ {"var150", "undefined"}, + /* 151 */ {"MSL", "Mean sea level pressure [Pa]"}, + /* 152 */ {"var152", "undefined"}, + /* 153 */ {"var153", "undefined"}, + /* 154 */ {"var154", "undefined"}, + /* 155 */ {"D", "Divergence [s**-1]"}, + /* 156 */ {"var156", "undefined"}, + /* 157 */ {"var157", "undefined"}, + /* 158 */ {"var158", "undefined"}, + /* 159 */ {"var159", "undefined"}, + /* 160 */ {"var160", "undefined"}, + /* 161 */ {"var161", "undefined"}, + /* 162 */ {"var162", "undefined"}, + /* 163 */ {"var163", "undefined"}, + /* 164 */ {"var164", "undefined"}, + /* 165 */ {"var165", "undefined"}, + /* 166 */ {"var166", "undefined"}, + /* 167 */ {"var167", "undefined"}, + /* 168 */ {"var168", "undefined"}, + /* 169 */ {"var169", "undefined"}, + /* 170 */ {"var170", "undefined"}, + /* 171 */ {"SWL2", "Soil wetness level 2 [m]"}, + /* 172 */ {"var172", "undefined"}, + /* 173 */ {"var173", "undefined"}, + /* 174 */ {"var174", "undefined"}, + /* 175 */ {"var175", "undefined"}, + /* 176 */ {"var176", "undefined"}, + /* 177 */ {"var177", "undefined"}, + /* 178 */ {"var178", "undefined"}, + /* 179 */ {"TTR", "Top thermal radiation [W m-2]"}, + /* 180 */ {"var180", "undefined"}, + /* 181 */ {"var181", "undefined"}, + /* 182 */ {"var182", "undefined"}, + /* 183 */ {"var183", "undefined"}, + /* 184 */ {"SWL3", "Soil wetness level 3 [m]"}, + /* 185 */ {"var185", "undefined"}, + /* 186 */ {"var186", "undefined"}, + /* 187 */ {"var187", "undefined"}, + /* 188 */ {"var188", "undefined"}, + /* 189 */ {"var189", "undefined"}, + /* 190 */ {"var190", "undefined"}, + /* 191 */ {"var191", "undefined"}, + /* 192 */ {"var192", "undefined"}, + /* 193 */ {"var193", "undefined"}, + /* 194 */ {"var194", "undefined"}, + /* 195 */ {"var195", "undefined"}, + /* 196 */ {"var196", "undefined"}, + /* 197 */ {"var197", "undefined"}, + /* 198 */ {"var198", "undefined"}, + /* 199 */ {"var199", "undefined"}, + /* 200 */ {"var200", "undefined"}, + /* 201 */ {"MX2T", "Maximum temperature at 2 metres [K]"}, + /* 202 */ {"MN2T", "Minimum temperature at 2 metres [K]"}, + /* 203 */ {"var203", "undefined"}, + /* 204 */ {"var204", "undefined"}, + /* 205 */ {"var205", "undefined"}, + /* 206 */ {"var206", "undefined"}, + /* 207 */ {"var207", "undefined"}, + /* 208 */ {"var208", "undefined"}, + /* 209 */ {"var209", "undefined"}, + /* 210 */ {"var210", "undefined"}, + /* 211 */ {"var211", "undefined"}, + /* 212 */ {"var212", "undefined"}, + /* 213 */ {"var213", "undefined"}, + /* 214 */ {"var214", "undefined"}, + /* 215 */ {"var215", "undefined"}, + /* 216 */ {"var216", "undefined"}, + /* 217 */ {"var217", "undefined"}, + /* 218 */ {"var218", "undefined"}, + /* 219 */ {"var219", "undefined"}, + /* 220 */ {"var220", "undefined"}, + /* 221 */ {"var221", "undefined"}, + /* 222 */ {"var222", "undefined"}, + /* 223 */ {"var223", "undefined"}, + /* 224 */ {"var224", "undefined"}, + /* 225 */ {"var225", "undefined"}, + /* 226 */ {"var226", "undefined"}, + /* 227 */ {"var227", "undefined"}, + /* 228 */ {"TP", "Total precipitation [m]"}, + /* 229 */ {"var229", "undefined"}, + /* 230 */ {"var230", "undefined"}, + /* 231 */ {"var231", "undefined"}, + /* 232 */ {"var232", "undefined"}, + /* 233 */ {"var233", "undefined"}, + /* 234 */ {"var234", "undefined"}, + /* 235 */ {"var235", "undefined"}, + /* 236 */ {"var236", "undefined"}, + /* 237 */ {"var237", "undefined"}, + /* 238 */ {"var238", "undefined"}, + /* 239 */ {"var239", "undefined"}, + /* 240 */ {"var240", "undefined"}, + /* 241 */ {"var241", "undefined"}, + /* 242 */ {"var242", "undefined"}, + /* 243 */ {"var243", "undefined"}, + /* 244 */ {"var244", "undefined"}, + /* 245 */ {"var245", "undefined"}, + /* 246 */ {"var246", "undefined"}, + /* 247 */ {"var247", "undefined"}, + /* 248 */ {"var248", "undefined"}, + /* 249 */ {"var249", "undefined"}, + /* 250 */ {"var250", "undefined"}, + /* 251 */ {"var251", "undefined"}, + /* 252 */ {"var252", "undefined"}, + /* 253 */ {"var253", "undefined"}, + /* 254 */ {"var254", "undefined"}, + /* 255 */ {"var255", "Indicates a missing value []"}, +}; + +const struct ParmTable parm_table_ecmwf_171[256] = { + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"STRFA", "Stream function anomaly [m**2 s**-1]"}, + /* 2 */ {"VPOTA", "Velocity potential anomaly [m**2 s**-1]"}, + /* 3 */ {"var3", "Potential temperature [K]"}, + /* 4 */ {"var4", "Equivalent potential temperature [K]"}, + /* 5 */ {"var5", "Saturated equivalent potential temperature [K]"}, + /* 6 */ {"var6", "undefined"}, + /* 7 */ {"var7", "undefined"}, + /* 8 */ {"var8", "undefined"}, + /* 9 */ {"var9", "undefined"}, + /* 10 */ {"var10", "undefined"}, + /* 11 */ {"var11", "U component of divergent wind [m s**-1]"}, + /* 12 */ {"var12", "V component of divergent wind [m s**-1]"}, + /* 13 */ {"var13", "U component of rotational wind [m s**-1]"}, + /* 14 */ {"var14", "V component of rotational wind [m s**-1]"}, + /* 15 */ {"var15", "undefined"}, + /* 16 */ {"var16", "undefined"}, + /* 17 */ {"var17", "undefined"}, + /* 18 */ {"var18", "undefined"}, + /* 19 */ {"var19", "undefined"}, + /* 20 */ {"var20", "undefined"}, + /* 21 */ {"var21", "Unbalanced component of temperature [K]"}, + /* 22 */ {"var22", "Unbalanced component of logarithm of surface pressure []"}, + /* 23 */ {"var23", "Unbalanced component of divergence [s**-1]"}, + /* 24 */ {"var24", "undefined"}, + /* 25 */ {"var25", "undefined"}, + /* 26 */ {"var26", "Lake cover [(0 - 1)]"}, + /* 27 */ {"var27", "Low vegetation cover [(0 - 1)]"}, + /* 28 */ {"var28", "High vegetation cover [(0 - 1)]"}, + /* 29 */ {"var29", "Type of low vegetation []"}, + /* 30 */ {"var30", "Type of high vegetation []"}, + /* 31 */ {"var31", "Sea-ice cover [(0 - 1)]"}, + /* 32 */ {"var32", "Snow albedo [(0 - 1)]"}, + /* 33 */ {"var33", "Snow density [kg m**-3]"}, + /* 34 */ {"var34", "Sea surface temperature [K]"}, + /* 35 */ {"var35", "Ice surface temperature layer 1 [K]"}, + /* 36 */ {"var36", "Ice surface temperature layer 2 [K]"}, + /* 37 */ {"var37", "Ice surface temperature layer 3 [K]"}, + /* 38 */ {"var38", "Ice surface temperature layer 4 [K]"}, + /* 39 */ {"var39", "Volumetric soil water layer 1 [m**3 m**-3]"}, + /* 40 */ {"var40", "Volumetric soil water layer 2 [m**3 m**-3]"}, + /* 41 */ {"var41", "Volumetric soil water layer 3 [m**3 m**-3]"}, + /* 42 */ {"var42", "Volumetric soil water layer 4 [m**3 m**-3]"}, + /* 43 */ {"var43", "Soil type []"}, + /* 44 */ {"var44", "Snow evaporation [m of water]"}, + /* 45 */ {"var45", "Snowmelt [m of water]"}, + /* 46 */ {"var46", "Solar duration [s]"}, + /* 47 */ {"var47", "Direct solar radiation [w m**-2]"}, + /* 48 */ {"var48", "Magnitude of surface stress [N m**-2 s]"}, + /* 49 */ {"var49", "10 metre wind gust [m s**-1]"}, + /* 50 */ {"var50", "Large-scale precipitation fraction [s]"}, + /* 51 */ {"var51", "Maximum 2 metre temperature [K]"}, + /* 52 */ {"var52", "Minimum 2 metre temperature [K]"}, + /* 53 */ {"var53", "Montgomery potential [m**2 s**-2]"}, + /* 54 */ {"var54", "Pressure [Pa]"}, + /* 55 */ {"var55", "Mean 2 metre temperature in past 24 hours [K]"}, + /* 56 */ {"var56", "Mean 2 metre dewpoint temperature in past 24 hours [K]"}, + /* 57 */ {"var57", "Downward UV radiation at the surface [w m**-2]"}, + /* 58 */ {"var58", "Photosynthetically active radiation at the surface [w m**-2]"}, + /* 59 */ {"var59", "Convective available potential energy [J kg**-1]"}, + /* 60 */ {"var60", "Potential vorticity [K m**2 kg**-1 s**-1]"}, + /* 61 */ {"var61", "Total precipitation from observations [Millimetres*100 + number of stations]"}, + /* 62 */ {"var62", "Observation count []"}, + /* 63 */ {"var63", "Start time for skin temperature difference [s]"}, + /* 64 */ {"var64", "Finish time for skin temperature difference [s]"}, + /* 65 */ {"var65", "Skin temperature difference [K]"}, + /* 66 */ {"var66", "undefined"}, + /* 67 */ {"var67", "undefined"}, + /* 68 */ {"var68", "undefined"}, + /* 69 */ {"var69", "undefined"}, + /* 70 */ {"var70", "undefined"}, + /* 71 */ {"var71", "undefined"}, + /* 72 */ {"var72", "undefined"}, + /* 73 */ {"var73", "undefined"}, + /* 74 */ {"var74", "undefined"}, + /* 75 */ {"var75", "undefined"}, + /* 76 */ {"var76", "undefined"}, + /* 77 */ {"var77", "undefined"}, + /* 78 */ {"TCLWA", "Total column liquid water anomaly [kg m**-2]"}, + /* 79 */ {"TCIWA", "Total column ice water anomaly [kg m**-2]"}, + /* 80 */ {"var80", "undefined"}, + /* 81 */ {"var81", "undefined"}, + /* 82 */ {"var82", "undefined"}, + /* 83 */ {"var83", "undefined"}, + /* 84 */ {"var84", "undefined"}, + /* 85 */ {"var85", "undefined"}, + /* 86 */ {"var86", "undefined"}, + /* 87 */ {"var87", "undefined"}, + /* 88 */ {"var88", "undefined"}, + /* 89 */ {"var89", "undefined"}, + /* 90 */ {"var90", "undefined"}, + /* 91 */ {"var91", "undefined"}, + /* 92 */ {"var92", "undefined"}, + /* 93 */ {"var93", "undefined"}, + /* 94 */ {"var94", "undefined"}, + /* 95 */ {"var95", "undefined"}, + /* 96 */ {"var96", "undefined"}, + /* 97 */ {"var97", "undefined"}, + /* 98 */ {"var98", "undefined"}, + /* 99 */ {"var99", "undefined"}, + /* 100 */ {"var100", "undefined"}, + /* 101 */ {"var101", "undefined"}, + /* 102 */ {"var102", "undefined"}, + /* 103 */ {"var103", "undefined"}, + /* 104 */ {"var104", "undefined"}, + /* 105 */ {"var105", "undefined"}, + /* 106 */ {"var106", "undefined"}, + /* 107 */ {"var107", "undefined"}, + /* 108 */ {"var108", "undefined"}, + /* 109 */ {"var109", "undefined"}, + /* 110 */ {"var110", "undefined"}, + /* 111 */ {"var111", "undefined"}, + /* 112 */ {"var112", "undefined"}, + /* 113 */ {"var113", "undefined"}, + /* 114 */ {"var114", "undefined"}, + /* 115 */ {"var115", "undefined"}, + /* 116 */ {"var116", "undefined"}, + /* 117 */ {"var117", "undefined"}, + /* 118 */ {"var118", "undefined"}, + /* 119 */ {"var119", "undefined"}, + /* 120 */ {"var120", "undefined"}, + /* 121 */ {"var121", "undefined"}, + /* 122 */ {"var122", "undefined"}, + /* 123 */ {"var123", "undefined"}, + /* 124 */ {"var124", "undefined"}, + /* 125 */ {"var125", "Vertically integrated total energy [J m**-2]"}, + /* 126 */ {"var126", "Generic parameter for sensitive area prediction [Various]"}, + /* 127 */ {"var127", "Atmospheric tide []"}, + /* 128 */ {"var128", "Budget values []"}, + /* 129 */ {"ZA", "Geopotential anomaly [m**2 s**-2]"}, + /* 130 */ {"TA", "Temperature anomaly [K]"}, + /* 131 */ {"UA", "U velocity anomaly [m s**-1]"}, + /* 132 */ {"VA", "V velocity anomaly [m s**-1]"}, + /* 133 */ {"var133", "Specific humidity [kg kg**-1]"}, + /* 134 */ {"var134", "Surface pressure [Pa]"}, + /* 135 */ {"var135", "Vertical velocity [Pa s**-1]"}, + /* 136 */ {"TCWA", "Total column water [kg m**-2]"}, + /* 137 */ {"TCWVA", "Total column water vapour [kg m**-2]"}, + /* 138 */ {"var138", "Vorticity (relative) [s**-1]"}, + /* 139 */ {"STAL1", "Soil temperature level 1 [K]"}, + /* 140 */ {"var140", "Soil wetness level 1 [m of water]"}, + /* 141 */ {"var141", "Snow depth [m of water equivalent]"}, + /* 142 */ {"var142", "Stratiform precipitation (Large-scale precipitation) [m]"}, + /* 143 */ {"var143", "Convective precipitation [m]"}, + /* 144 */ {"var144", "Snowfall (convective + stratiform) [m of water equivalent]"}, + /* 145 */ {"var145", "Boundary layer dissipation [W m**-2 s]"}, + /* 146 */ {"var146", "Surface sensible heat flux [W m**-2 s]"}, + /* 147 */ {"var147", "Surface latent heat flux [W m**-2 s]"}, + /* 148 */ {"var148", "Charnock []"}, + /* 149 */ {"var149", "Surface net radiation [W m**-2 s]"}, + /* 150 */ {"var150", "Top net radiation []"}, + /* 151 */ {"MSLA", "Mean sea level pressure anomaly [Pa]"}, + /* 152 */ {"var152", "Logarithm of surface pressure []"}, + /* 153 */ {"var153", "Short-wave heating rate [K]"}, + /* 154 */ {"var154", "Long-wave heating rate [K]"}, + /* 155 */ {"var155", "Divergence [s**-1]"}, + /* 156 */ {"var156", "Height [m]"}, + /* 157 */ {"var157", "Relative humidity [%]"}, + /* 158 */ {"var158", "Tendency of surface pressure [Pa s**-1]"}, + /* 159 */ {"var159", "Boundary layer height [m]"}, + /* 160 */ {"var160", "Standard deviation of orography []"}, + /* 161 */ {"var161", "Anisotropy of sub-gridscale orography []"}, + /* 162 */ {"var162", "Angle of sub-gridscale orography [rad]"}, + /* 163 */ {"var163", "Slope of sub-gridscale orography []"}, + /* 164 */ {"TCCA", "Total cloud cover anomaly [(0 - 1)]"}, + /* 165 */ {"10UA", "10 metre U wind component anomaly [m s**-1]"}, + /* 166 */ {"10VA", "10 metre V wind component anomaly [m s**-1]"}, + /* 167 */ {"2TA", "2 metre temperature anomaly [K]"}, + /* 168 */ {"var168", "2 metre dewpoint temperature [K]"}, + /* 169 */ {"var169", "Surface solar radiation downwards [W m**-2 s]"}, + /* 170 */ {"var170", "Soil temperature level 2 [K]"}, + /* 171 */ {"var171", "Soil wetness level 2 [m of water]"}, + /* 172 */ {"var172", "Land-sea mask [(0 - 1)]"}, + /* 173 */ {"var173", "Surface roughness [m]"}, + /* 174 */ {"var174", "Albedo [(0 - 1)]"}, + /* 175 */ {"var175", "Surface thermal radiation downwards [W m**-2 s]"}, + /* 176 */ {"var176", "Surface solar radiation [W m**-2 s]"}, + /* 177 */ {"var177", "Surface thermal radiation [W m**-2 s]"}, + /* 178 */ {"var178", "Top solar radiation [W m**-2 s]"}, + /* 179 */ {"var179", "Top thermal radiation [W m**-2 s]"}, + /* 180 */ {"var180", "East-West surface stress [N m**-2 s]"}, + /* 181 */ {"var181", "North-South surface stress [N m**-2 s]"}, + /* 182 */ {"var182", "Evaporation [m of water]"}, + /* 183 */ {"var183", "Soil temperature level 3 [K]"}, + /* 184 */ {"var184", "Soil wetness level 3 [m of water]"}, + /* 185 */ {"var185", "Convective cloud cover [(0 - 1)]"}, + /* 186 */ {"var186", "Low cloud cover [(0 - 1)]"}, + /* 187 */ {"var187", "Medium cloud cover [(0 - 1)]"}, + /* 188 */ {"var188", "High cloud cover [(0 - 1)]"}, + /* 189 */ {"SUNDA", "Sunshine duration anomaly [s]"}, + /* 190 */ {"var190", "East-West component of sub-gridscale orographic variance [m**2]"}, + /* 191 */ {"var191", "North-South component of sub-gridscale orographic variance [m**2]"}, + /* 192 */ {"var192", "North-West/South-East component of sub-gridscale orographic variance [m**2]"}, + /* 193 */ {"var193", "North-East/South-West component of sub-gridscale orographic variance [m**2]"}, + /* 194 */ {"var194", "Brightness temperature [K]"}, + /* 195 */ {"var195", "Latitudinal component of gravity wave stress [N m**-2 s]"}, + /* 196 */ {"var196", "Meridional component of gravity wave stress [N m**-2 s]"}, + /* 197 */ {"var197", "Gravity wave dissipation [W m**-2 s]"}, + /* 198 */ {"var198", "Skin reservoir content [m of water]"}, + /* 199 */ {"var199", "Vegetation fraction [(0 - 1)]"}, + /* 200 */ {"var200", "Variance of sub-gridscale orography [m**2]"}, + /* 201 */ {"MX2TA", "Maximum temperature at 2 metres anomaly [K]"}, + /* 202 */ {"MN2TA", "Minimum temperature at 2 metres anomaly [K]"}, + /* 203 */ {"var203", "Ozone mass mixing ratio [kg kg**-1]"}, + /* 204 */ {"var204", "Precipitation analysis weights []"}, + /* 205 */ {"var205", "Runoff [m]"}, + /* 206 */ {"var206", "Total column ozone [kg m**-2]"}, + /* 207 */ {"var207", "10 metre wind speed [m s**-1]"}, + /* 208 */ {"var208", "Top net solar radiation, clear sky [W m**-2 s]"}, + /* 209 */ {"var209", "Top net thermal radiation, clear sky [W m**-2 s]"}, + /* 210 */ {"var210", "Surface net solar radiation, clear sky [W m**-2 s]"}, + /* 211 */ {"var211", "Surface net thermal radiation, clear sky [W m**-2 s]"}, + /* 212 */ {"var212", "Solar insolation [W m**-2]"}, + /* 213 */ {"var213", "undefined"}, + /* 214 */ {"var214", "Diabatic heating by radiation [K]"}, + /* 215 */ {"var215", "Diabatic heating by vertical diffusion [K]"}, + /* 216 */ {"var216", "Diabatic heating by cumulus convection [K]"}, + /* 217 */ {"var217", "Diabatic heating by large-scale condensation [K]"}, + /* 218 */ {"var218", "Vertical diffusion of zonal wind [m s**-1]"}, + /* 219 */ {"var219", "Vertical diffusion of meridional wind [m s**-1]"}, + /* 220 */ {"var220", "East-West gravity wave drag tendency [m s**-1]"}, + /* 221 */ {"var221", "North-South gravity wave drag tendency [m s**-1]"}, + /* 222 */ {"var222", "Convective tendency of zonal wind [m s**-1]"}, + /* 223 */ {"var223", "Convective tendency of meridional wind [m s**-1]"}, + /* 224 */ {"var224", "Vertical diffusion of humidity [kg kg**-1]"}, + /* 225 */ {"var225", "Humidity tendency by cumulus convection [kg kg**-1]"}, + /* 226 */ {"var226", "Humidity tendency by large-scale condensation [kg kg**-1]"}, + /* 227 */ {"var227", "Change from removal of negative humidity [kg kg**-1]"}, + /* 228 */ {"TPA", "Total precipitation anomaly [m]"}, + /* 229 */ {"var229", "Instantaneous X surface stress [N m**-2]"}, + /* 230 */ {"var230", "Instantaneous Y surface stress [N m**-2]"}, + /* 231 */ {"var231", "Instantaneous surface heat flux [W m**-2]"}, + /* 232 */ {"var232", "Instantaneous moisture flux [kg m**-2 s]"}, + /* 233 */ {"var233", "Apparent surface humidity [kg kg**-1]"}, + /* 234 */ {"var234", "Logarithm of surface roughness length for heat []"}, + /* 235 */ {"var235", "Skin temperature [K]"}, + /* 236 */ {"var236", "Soil temperature level 4 [K]"}, + /* 237 */ {"var237", "Soil wetness level 4 [m]"}, + /* 238 */ {"var238", "Temperature of snow layer [K]"}, + /* 239 */ {"var239", "Convective snowfall [m of water equivalent]"}, + /* 240 */ {"var240", "Large-scale snowfall [m of water equivalent]"}, + /* 241 */ {"var241", "Accumulated cloud fraction tendency [(-1 to 1)]"}, + /* 242 */ {"var242", "Accumulated liquid water tendency [(-1 to 1)]"}, + /* 243 */ {"var243", "Forecast albedo [(0 - 1)]"}, + /* 244 */ {"var244", "Forecast surface roughness [m]"}, + /* 245 */ {"var245", "Forecast logarithm of surface roughness for heat []"}, + /* 246 */ {"var246", "Cloud liquid water content [kg kg**-1]"}, + /* 247 */ {"var247", "Cloud ice water content [kg kg**-1]"}, + /* 248 */ {"var248", "Cloud cover [(0 - 1)]"}, + /* 249 */ {"var249", "Accumulated ice water tendency [(-1 to 1)]"}, + /* 250 */ {"var250", "Ice age [(0 - 1)]"}, + /* 251 */ {"var251", "Adiabatic tendency of temperature [K]"}, + /* 252 */ {"var252", "Adiabatic tendency of humidity [kg kg**-1]"}, + /* 253 */ {"var253", "Adiabatic tendency of zonal wind [m s**-1]"}, + /* 254 */ {"var254", "Adiabatic tendency of meridional wind [m s**-1]"}, + /* 255 */ {"var255", "Indicates a missing value []"}, +}; + +/* ectable 172 from Geert Jan van Oldenborgh */ + +const struct ParmTable parm_table_ecmwf_172[256] = { /* 0 */ {"var0", "undefined"}, /* 1 */ {"var1", "undefined"}, /* 2 */ {"var2", "undefined"}, @@ -4629,13 +7479,13 @@ const struct ParmTable parm_table_ecmwf_130[256] = { /* 41 */ {"var41", "undefined"}, /* 42 */ {"var42", "undefined"}, /* 43 */ {"var43", "undefined"}, - /* 44 */ {"var44", "undefined"}, - /* 45 */ {"var45", "undefined"}, + /* 44 */ {"SNOE", "Snow evaporation m of water s**-1"}, + /* 45 */ {"SNOM", "Snow melt m of water s**-1"}, /* 46 */ {"var46", "undefined"}, /* 47 */ {"var47", "undefined"}, - /* 48 */ {"var48", "undefined"}, + /* 48 */ {"MSS", "magnitude of surface stress N m**-2"}, /* 49 */ {"var49", "undefined"}, - /* 50 */ {"var50", "undefined"}, + /* 50 */ {"", "Large-scale precipitation fraction -"}, /* 51 */ {"var51", "undefined"}, /* 52 */ {"var52", "undefined"}, /* 53 */ {"var53", "undefined"}, @@ -4727,4943 +7577,19 @@ const struct ParmTable parm_table_ecmwf_130[256] = { /* 139 */ {"var139", "undefined"}, /* 140 */ {"var140", "undefined"}, /* 141 */ {"var141", "undefined"}, - /* 142 */ {"var142", "undefined"}, - /* 143 */ {"var143", "undefined"}, - /* 144 */ {"var144", "undefined"}, - /* 145 */ {"var145", "undefined"}, - /* 146 */ {"var146", "undefined"}, - /* 147 */ {"var147", "undefined"}, - /* 148 */ {"var148", "undefined"}, - /* 149 */ {"var149", "undefined"}, - /* 150 */ {"var150", "undefined"}, - /* 151 */ {"var151", "undefined"}, - /* 152 */ {"var152", "undefined"}, - /* 153 */ {"var153", "undefined"}, - /* 154 */ {"var154", "undefined"}, - /* 155 */ {"var155", "undefined"}, - /* 156 */ {"var156", "undefined"}, - /* 157 */ {"var157", "undefined"}, - /* 158 */ {"var158", "undefined"}, - /* 159 */ {"var159", "undefined"}, - /* 160 */ {"var160", "undefined"}, - /* 161 */ {"var161", "undefined"}, - /* 162 */ {"var162", "undefined"}, - /* 163 */ {"var163", "undefined"}, - /* 164 */ {"var164", "undefined"}, - /* 165 */ {"var165", "undefined"}, - /* 166 */ {"var166", "undefined"}, - /* 167 */ {"var167", "undefined"}, - /* 168 */ {"var168", "undefined"}, - /* 169 */ {"var169", "undefined"}, - /* 170 */ {"var170", "undefined"}, - /* 171 */ {"var171", "undefined"}, - /* 172 */ {"var172", "undefined"}, - /* 173 */ {"var173", "undefined"}, - /* 174 */ {"var174", "undefined"}, - /* 175 */ {"var175", "undefined"}, - /* 176 */ {"var176", "undefined"}, - /* 177 */ {"var177", "undefined"}, - /* 178 */ {"var178", "undefined"}, - /* 179 */ {"var179", "undefined"}, - /* 180 */ {"var180", "undefined"}, - /* 181 */ {"var181", "undefined"}, - /* 182 */ {"var182", "undefined"}, - /* 183 */ {"var183", "undefined"}, - /* 184 */ {"var184", "undefined"}, - /* 185 */ {"var185", "undefined"}, - /* 186 */ {"var186", "undefined"}, - /* 187 */ {"var187", "undefined"}, - /* 188 */ {"var188", "undefined"}, - /* 189 */ {"var189", "undefined"}, - /* 190 */ {"var190", "undefined"}, - /* 191 */ {"var191", "undefined"}, - /* 192 */ {"var192", "undefined"}, - /* 193 */ {"var193", "undefined"}, - /* 194 */ {"var194", "undefined"}, - /* 195 */ {"var195", "undefined"}, - /* 196 */ {"var196", "undefined"}, - /* 197 */ {"var197", "undefined"}, - /* 198 */ {"var198", "undefined"}, - /* 199 */ {"var199", "undefined"}, - /* 200 */ {"var200", "undefined"}, - /* 201 */ {"var201", "undefined"}, - /* 202 */ {"var202", "undefined"}, - /* 203 */ {"var203", "undefined"}, - /* 204 */ {"var204", "undefined"}, - /* 205 */ {"var205", "undefined"}, - /* 206 */ {"var206", "undefined"}, - /* 207 */ {"var207", "undefined"}, - /* 208 */ {"TSRU", "Top solar radiation upward [W m**-2]"}, - /* 209 */ {"TTRU", "Top thermal radiation upward [W m**-2]"}, - /* 210 */ {"TSUC", "Top solar radiation upward, clear sky [W m**-2]"}, - /* 211 */ {"TTUC", "Top thermal radiation upward, clear sky [W m**-2]"}, - /* 212 */ {"CLW", "Cloud liquid water [kg kg**-1]"}, - /* 213 */ {"CF", "Cloud fraction [(0 - 1)]"}, - /* 214 */ {"DHR", "Diabatic heating by radiation [K s**-1]"}, - /* 215 */ {"DHVD", "Diabatic heating by vertical diffusion [K s**-1]"}, - /* 216 */ {"DHCC", "Diabatic heating by cumulus convection [K s**-1]"}, - /* 217 */ {"DHLC", "Diabatic heating by large-scale condensation [K s**-1]"}, - /* 218 */ {"VDZW", "Vertical diffusion of zonal wind [m**2 s**-3]"}, - /* 219 */ {"VDMW", "Vertical diffusion of meridional wind [m**2 s**-3]"}, - /* 220 */ {"EWGD", "East-West gravity wave drag [m**2 s**-3]"}, - /* 221 */ {"NSGD", "North-South gravity wave drag [m**2 s**-3]"}, - /* 222 */ {"CTZW", "Convective tendency of zonal wind [m**2 s**-3]"}, - /* 223 */ {"CTMW", "Convective tendency of meridional wind [m**2 s**-3]"}, - /* 224 */ {"VDH", "Vertical diffusion of humidity [kg kg**-1 s**-1]"}, - /* 225 */ {"HTCC", "Humidity tendency by cumulus convection [kg kg**-1 s**-1]"}, - /* 226 */ {"HTLC", "Humidity tendency by large-scale condensation [kg kg**-1 s**-1]"}, - /* 227 */ {"CRNH", "Change from removal of negative humidity [kg kg**-1 s**-1]"}, - /* 228 */ {"ATT", "Adiabatic tendency of temperature [K s**-1]"}, - /* 229 */ {"ATH", "Adiabatic tendency of humidity [kg kg**-1 s**-1]"}, - /* 230 */ {"ATZW", "Adiabatic tendency of zonal wind [m**2 s**-3]"}, - /* 231 */ {"ATMWAX", "Adiabatic tendency of meridional wind [m**2 s**-3]"}, - /* 232 */ {"MVV", "Mean vertical velocity [Pa s**-1]"}, - /* 233 */ {"var233", "undefined"}, - /* 234 */ {"var234", "undefined"}, - /* 235 */ {"var235", "undefined"}, - /* 236 */ {"var236", "undefined"}, - /* 237 */ {"var237", "undefined"}, - /* 238 */ {"var238", "undefined"}, - /* 239 */ {"var239", "undefined"}, - /* 240 */ {"var240", "undefined"}, - /* 241 */ {"var241", "undefined"}, - /* 242 */ {"var242", "undefined"}, - /* 243 */ {"var243", "undefined"}, - /* 244 */ {"var244", "undefined"}, - /* 245 */ {"var245", "undefined"}, - /* 246 */ {"var246", "undefined"}, - /* 247 */ {"var247", "undefined"}, - /* 248 */ {"var248", "undefined"}, - /* 249 */ {"var249", "undefined"}, - /* 250 */ {"var250", "undefined"}, - /* 251 */ {"var251", "undefined"}, - /* 252 */ {"var252", "undefined"}, - /* 253 */ {"var253", "undefined"}, - /* 254 */ {"var254", "undefined"}, - /* 255 */ {"var255", "Indicates a missing value []"}, -}; - -const struct ParmTable parm_table_ecmwf_131[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"2TAG2", "2m temperature anomaly of at least +2K [%]"}, - /* 2 */ {"2TAG1", "2m temperature anomaly of at least +1K [%]"}, - /* 3 */ {"2TAG0", "2m temperature anomaly of at least 0K [%]"}, - /* 4 */ {"2TALM1", "2m temperature anomaly of at most -1K [%]"}, - /* 5 */ {"2TALM2", "2m temperature anomaly of at most -2K [%]"}, - /* 6 */ {"TPAG20", "Total precipitation anomaly of at least 20 mm [%]"}, - /* 7 */ {"TPAG10", "Total precipitation anomaly of at least 10 mm [%]"}, - /* 8 */ {"TPAG0", "Total precipitation anomaly of at least 0 mm [%]"}, - /* 9 */ {"STAG0", "Surface temperature anomaly of at least 0K [%]"}, - /* 10 */ {"MSLAG0", "Mean sea level pressure anomaly of at least 0 Pa [%]"}, - /* 11 */ {"var11", "undefined"}, - /* 12 */ {"var12", "undefined"}, - /* 13 */ {"var13", "undefined"}, - /* 14 */ {"var14", "undefined"}, - /* 15 */ {"H0DIP", "Heigth of 0 degree isotherm probability [percentage]"}, - /* 16 */ {"HSLP", "Heigth of snowfall limit probability [percentage]"}, - /* 17 */ {"SAIP", "Showalter index probability [percentage]"}, - /* 18 */ {"WHIP", "Whiting index probability [percentage]"}, - /* 19 */ {"var19", "undefined"}, - /* 20 */ {"TALM2K", "Temperature anomaly less than -2 K [%]"}, - /* 21 */ {"TAG2K", "Temperature anomaly of at least +2 K [%]"}, - /* 22 */ {"TALM8K", "Temperature anomaly less than -8 K [%]"}, - /* 23 */ {"TALM4K", "Temperature anomaly less than -4 K [%]"}, - /* 24 */ {"TAG4K", "Temperature anomaly greater than +4 K [%]"}, - /* 25 */ {"TAG8K", "Temperature anomaly greater than +8 K [%]"}, - /* 26 */ {"var26", "undefined"}, - /* 27 */ {"var27", "undefined"}, - /* 28 */ {"var28", "undefined"}, - /* 29 */ {"var29", "undefined"}, - /* 30 */ {"var30", "undefined"}, - /* 31 */ {"var31", "undefined"}, - /* 32 */ {"var32", "undefined"}, - /* 33 */ {"var33", "undefined"}, - /* 34 */ {"var34", "undefined"}, - /* 35 */ {"var35", "undefined"}, - /* 36 */ {"var36", "undefined"}, - /* 37 */ {"var37", "undefined"}, - /* 38 */ {"var38", "undefined"}, - /* 39 */ {"var39", "undefined"}, - /* 40 */ {"var40", "undefined"}, - /* 41 */ {"var41", "undefined"}, - /* 42 */ {"var42", "undefined"}, - /* 43 */ {"var43", "undefined"}, - /* 44 */ {"var44", "undefined"}, - /* 45 */ {"var45", "undefined"}, - /* 46 */ {"var46", "undefined"}, - /* 47 */ {"var47", "undefined"}, - /* 48 */ {"var48", "undefined"}, - /* 49 */ {"10GP", "10 metre wind gust probability [percentage]"}, - /* 50 */ {"var50", "undefined"}, - /* 51 */ {"var51", "undefined"}, - /* 52 */ {"var52", "undefined"}, - /* 53 */ {"var53", "undefined"}, - /* 54 */ {"var54", "undefined"}, - /* 55 */ {"var55", "undefined"}, - /* 56 */ {"var56", "undefined"}, - /* 57 */ {"var57", "undefined"}, - /* 58 */ {"var58", "undefined"}, - /* 59 */ {"CAPEP", "Convective available potential energy probability [percentage]"}, - /* 60 */ {"TPG1", "Total precipitation of at least 1 mm [%]"}, - /* 61 */ {"TPG5", "Total precipitation of at least 5 mm [%]"}, - /* 62 */ {"TPG10", "Total precipitation of at least 10 mm [%]"}, - /* 63 */ {"TPG20", "Total precipitation of at least 20 mm [%]"}, - /* 64 */ {"TPL01", "Total precipitation less than 0.1 mm [%]"}, - /* 65 */ {"TPRL1", "Total precipitation rate less than 1 mm per day [%]"}, - /* 66 */ {"TPRG3", "Total precipitation rate of at least 3 mm per day [%]"}, - /* 67 */ {"TPRG5", "Total precipitation rate of at least 5 mm per day [%]"}, - /* 68 */ {"10SPG10", "10 metre Wind speed of at least 10 metre per second [%]"}, - /* 69 */ {"10SPG15", "10 metre Wind speed of at least 15 metre per second [%]"}, - /* 70 */ {"10FGG15", "10 metre Wind gust of at least 15 metre per second [%]"}, - /* 71 */ {"10FGG20", "10 metre Wind gust of at least 20 metre per second [%]"}, - /* 72 */ {"10FGG25", "10 metre Wind gust of at least 25 metre per second [%]"}, - /* 73 */ {"2TL273", "2 metre temperature less than 273.15 K [%]"}, - /* 74 */ {"SWHG2", "Significant wave height of at least 2 m [%]"}, - /* 75 */ {"SWHG4", "Significant wave height of at least 4 m [%]"}, - /* 76 */ {"SWHG6", "Significant wave height of at least 6 m [%]"}, - /* 77 */ {"SWHG8", "Significant wave height of at least 8 m [%]"}, - /* 78 */ {"MWPG8", "Mean wave period of at least 8 s [%]"}, - /* 79 */ {"MWPG10", "Mean wave period of at least 10 s [%]"}, - /* 80 */ {"MWPG12", "Mean wave period of at least 12 s [%]"}, - /* 81 */ {"MWPG15", "Mean wave period of at least 15 s [%]"}, - /* 82 */ {"TPG40", "Total precipitation of at least 40 mm [%]"}, - /* 83 */ {"TPG60", "Total precipitation of at least 60 mm [%]"}, - /* 84 */ {"TPG80", "Total precipitation of at least 80 mm [%]"}, - /* 85 */ {"TPG100", "Total precipitation of at least 100 mm [%]"}, - /* 86 */ {"TPG150", "Total precipitation of at least 150 mm [%]"}, - /* 87 */ {"TPG200", "Total precipitation of at least 200 mm [%]"}, - /* 88 */ {"TPG300", "Total precipitation of at least 300 mm [%]"}, - /* 89 */ {"var89", "undefined"}, - /* 90 */ {"var90", "undefined"}, - /* 91 */ {"var91", "undefined"}, - /* 92 */ {"var92", "undefined"}, - /* 93 */ {"var93", "undefined"}, - /* 94 */ {"var94", "undefined"}, - /* 95 */ {"var95", "undefined"}, - /* 96 */ {"var96", "undefined"}, - /* 97 */ {"var97", "undefined"}, - /* 98 */ {"var98", "undefined"}, - /* 99 */ {"var99", "undefined"}, - /* 100 */ {"var100", "undefined"}, - /* 101 */ {"var101", "undefined"}, - /* 102 */ {"var102", "undefined"}, - /* 103 */ {"var103", "undefined"}, - /* 104 */ {"var104", "undefined"}, - /* 105 */ {"var105", "undefined"}, - /* 106 */ {"var106", "undefined"}, - /* 107 */ {"var107", "undefined"}, - /* 108 */ {"var108", "undefined"}, - /* 109 */ {"var109", "undefined"}, - /* 110 */ {"var110", "undefined"}, - /* 111 */ {"var111", "undefined"}, - /* 112 */ {"var112", "undefined"}, - /* 113 */ {"var113", "undefined"}, - /* 114 */ {"var114", "undefined"}, - /* 115 */ {"var115", "undefined"}, - /* 116 */ {"var116", "undefined"}, - /* 117 */ {"var117", "undefined"}, - /* 118 */ {"var118", "undefined"}, - /* 119 */ {"var119", "undefined"}, - /* 120 */ {"var120", "undefined"}, - /* 121 */ {"var121", "undefined"}, - /* 122 */ {"var122", "undefined"}, - /* 123 */ {"var123", "undefined"}, - /* 124 */ {"var124", "undefined"}, - /* 125 */ {"var125", "undefined"}, - /* 126 */ {"var126", "undefined"}, - /* 127 */ {"var127", "undefined"}, - /* 128 */ {"var128", "undefined"}, - /* 129 */ {"ZP", "Geopotential probability [%]"}, - /* 130 */ {"TAP", "Temperature anomaly probability [percentage]"}, - /* 131 */ {"var131", "undefined"}, - /* 132 */ {"var132", "undefined"}, - /* 133 */ {"var133", "undefined"}, - /* 134 */ {"var134", "undefined"}, - /* 135 */ {"var135", "undefined"}, - /* 136 */ {"var136", "undefined"}, - /* 137 */ {"var137", "undefined"}, - /* 138 */ {"var138", "undefined"}, - /* 139 */ {"var139", "2 metre temperature probability [%]"}, - /* 140 */ {"var140", "undefined"}, - /* 141 */ {"var141", "undefined"}, - /* 142 */ {"var142", "undefined"}, - /* 143 */ {"var143", "undefined"}, - /* 144 */ {"SFP", "Snowfall probability [percentage]"}, - /* 145 */ {"var145", "undefined"}, - /* 146 */ {"var146", "undefined"}, - /* 147 */ {"var147", "undefined"}, - /* 148 */ {"var148", "undefined"}, - /* 149 */ {"var149", "undefined"}, - /* 150 */ {"var150", "undefined"}, - /* 151 */ {"var151", "Total precipitation probability [%]"}, - /* 152 */ {"var152", "undefined"}, - /* 153 */ {"var153", "undefined"}, - /* 154 */ {"var154", "undefined"}, - /* 155 */ {"var155", "undefined"}, - /* 156 */ {"var156", "undefined"}, - /* 157 */ {"var157", "undefined"}, - /* 158 */ {"var158", "undefined"}, - /* 159 */ {"var159", "undefined"}, - /* 160 */ {"var160", "undefined"}, - /* 161 */ {"var161", "undefined"}, - /* 162 */ {"var162", "undefined"}, - /* 163 */ {"var163", "undefined"}, - /* 164 */ {"TCCP", "Total cloud cover probability [percentage]"}, - /* 165 */ {"10SP", "10 metre speed probability [percentage]"}, - /* 166 */ {"var166", "undefined"}, - /* 167 */ {"2TP", "2 metre temperature probability [percentage]"}, - /* 168 */ {"var168", "undefined"}, - /* 169 */ {"var169", "undefined"}, - /* 170 */ {"var170", "undefined"}, - /* 171 */ {"var171", "undefined"}, - /* 172 */ {"var172", "undefined"}, - /* 173 */ {"var173", "undefined"}, - /* 174 */ {"var174", "undefined"}, - /* 175 */ {"var175", "undefined"}, - /* 176 */ {"var176", "undefined"}, - /* 177 */ {"var177", "undefined"}, - /* 178 */ {"var178", "undefined"}, - /* 179 */ {"var179", "undefined"}, - /* 180 */ {"var180", "undefined"}, - /* 181 */ {"var181", "undefined"}, - /* 182 */ {"var182", "undefined"}, - /* 183 */ {"var183", "undefined"}, - /* 184 */ {"var184", "undefined"}, - /* 185 */ {"var185", "undefined"}, - /* 186 */ {"var186", "undefined"}, - /* 187 */ {"var187", "undefined"}, - /* 188 */ {"var188", "undefined"}, - /* 189 */ {"var189", "undefined"}, - /* 190 */ {"var190", "undefined"}, - /* 191 */ {"var191", "undefined"}, - /* 192 */ {"var192", "undefined"}, - /* 193 */ {"var193", "undefined"}, - /* 194 */ {"var194", "undefined"}, - /* 195 */ {"var195", "undefined"}, - /* 196 */ {"var196", "undefined"}, - /* 197 */ {"var197", "undefined"}, - /* 198 */ {"var198", "undefined"}, - /* 199 */ {"var199", "undefined"}, - /* 200 */ {"var200", "undefined"}, - /* 201 */ {"MX2TP", "Maximum 2 metre temperature probability [percentage]"}, - /* 202 */ {"MN2TP", "Minimum 2 metre temperature probability [percentage]"}, - /* 203 */ {"var203", "undefined"}, - /* 204 */ {"var204", "undefined"}, - /* 205 */ {"var205", "undefined"}, - /* 206 */ {"var206", "undefined"}, - /* 207 */ {"var207", "undefined"}, - /* 208 */ {"var208", "undefined"}, - /* 209 */ {"var209", "undefined"}, - /* 210 */ {"var210", "undefined"}, - /* 211 */ {"var211", "undefined"}, - /* 212 */ {"var212", "undefined"}, - /* 213 */ {"var213", "undefined"}, - /* 214 */ {"var214", "undefined"}, - /* 215 */ {"var215", "undefined"}, - /* 216 */ {"var216", "undefined"}, - /* 217 */ {"var217", "undefined"}, - /* 218 */ {"var218", "undefined"}, - /* 219 */ {"var219", "undefined"}, - /* 220 */ {"var220", "undefined"}, - /* 221 */ {"var221", "undefined"}, - /* 222 */ {"var222", "undefined"}, - /* 223 */ {"var223", "undefined"}, - /* 224 */ {"var224", "undefined"}, - /* 225 */ {"var225", "undefined"}, - /* 226 */ {"var226", "undefined"}, - /* 227 */ {"var227", "undefined"}, - /* 228 */ {"TPP", "Total precipitation probability [percentage]"}, - /* 229 */ {"SWHP", "Significant wave height probability [percentage]"}, - /* 230 */ {"var230", "undefined"}, - /* 231 */ {"var231", "undefined"}, - /* 232 */ {"MWPP", "Mean wave period probability [percentage]"}, - /* 233 */ {"var233", "undefined"}, - /* 234 */ {"var234", "undefined"}, - /* 235 */ {"var235", "undefined"}, - /* 236 */ {"var236", "undefined"}, - /* 237 */ {"var237", "undefined"}, - /* 238 */ {"var238", "undefined"}, - /* 239 */ {"var239", "undefined"}, - /* 240 */ {"var240", "undefined"}, - /* 241 */ {"var241", "undefined"}, - /* 242 */ {"var242", "undefined"}, - /* 243 */ {"var243", "undefined"}, - /* 244 */ {"var244", "undefined"}, - /* 245 */ {"var245", "undefined"}, - /* 246 */ {"var246", "undefined"}, - /* 247 */ {"var247", "undefined"}, - /* 248 */ {"var248", "undefined"}, - /* 249 */ {"var249", "undefined"}, - /* 250 */ {"var250", "undefined"}, - /* 251 */ {"var251", "undefined"}, - /* 252 */ {"var252", "undefined"}, - /* 253 */ {"var253", "undefined"}, - /* 254 */ {"var254", "undefined"}, - /* 255 */ {"var255", "Indicates a missing value []"}, -}; - -const struct ParmTable parm_table_ecmwf_132[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"var1", "undefined"}, - /* 2 */ {"var2", "undefined"}, - /* 3 */ {"var3", "undefined"}, - /* 4 */ {"var4", "undefined"}, - /* 5 */ {"var5", "undefined"}, - /* 6 */ {"var6", "undefined"}, - /* 7 */ {"var7", "undefined"}, - /* 8 */ {"var8", "undefined"}, - /* 9 */ {"var9", "undefined"}, - /* 10 */ {"var10", "undefined"}, - /* 11 */ {"var11", "undefined"}, - /* 12 */ {"var12", "undefined"}, - /* 13 */ {"var13", "undefined"}, - /* 14 */ {"var14", "undefined"}, - /* 15 */ {"var15", "undefined"}, - /* 16 */ {"var16", "undefined"}, - /* 17 */ {"var17", "undefined"}, - /* 18 */ {"var18", "undefined"}, - /* 19 */ {"var19", "undefined"}, - /* 20 */ {"var20", "undefined"}, - /* 21 */ {"var21", "undefined"}, - /* 22 */ {"var22", "undefined"}, - /* 23 */ {"var23", "undefined"}, - /* 24 */ {"var24", "undefined"}, - /* 25 */ {"var25", "undefined"}, - /* 26 */ {"var26", "undefined"}, - /* 27 */ {"var27", "undefined"}, - /* 28 */ {"var28", "undefined"}, - /* 29 */ {"var29", "undefined"}, - /* 30 */ {"var30", "undefined"}, - /* 31 */ {"var31", "undefined"}, - /* 32 */ {"var32", "undefined"}, - /* 33 */ {"var33", "undefined"}, - /* 34 */ {"var34", "undefined"}, - /* 35 */ {"var35", "undefined"}, - /* 36 */ {"var36", "undefined"}, - /* 37 */ {"var37", "undefined"}, - /* 38 */ {"var38", "undefined"}, - /* 39 */ {"var39", "undefined"}, - /* 40 */ {"var40", "undefined"}, - /* 41 */ {"var41", "undefined"}, - /* 42 */ {"var42", "undefined"}, - /* 43 */ {"var43", "undefined"}, - /* 44 */ {"var44", "undefined"}, - /* 45 */ {"var45", "undefined"}, - /* 46 */ {"var46", "undefined"}, - /* 47 */ {"var47", "undefined"}, - /* 48 */ {"var48", "undefined"}, - /* 49 */ {"10FGI", "10 metre wind gust index [(-1 to 1)]"}, - /* 50 */ {"var50", "undefined"}, - /* 51 */ {"var51", "undefined"}, - /* 52 */ {"var52", "undefined"}, - /* 53 */ {"var53", "undefined"}, - /* 54 */ {"var54", "undefined"}, - /* 55 */ {"var55", "undefined"}, - /* 56 */ {"var56", "undefined"}, - /* 57 */ {"var57", "undefined"}, - /* 58 */ {"var58", "undefined"}, - /* 59 */ {"var59", "undefined"}, - /* 60 */ {"var60", "undefined"}, - /* 61 */ {"var61", "undefined"}, - /* 62 */ {"var62", "undefined"}, - /* 63 */ {"var63", "undefined"}, - /* 64 */ {"var64", "undefined"}, - /* 65 */ {"var65", "undefined"}, - /* 66 */ {"var66", "undefined"}, - /* 67 */ {"var67", "undefined"}, - /* 68 */ {"var68", "undefined"}, - /* 69 */ {"var69", "undefined"}, - /* 70 */ {"var70", "undefined"}, - /* 71 */ {"var71", "undefined"}, - /* 72 */ {"var72", "undefined"}, - /* 73 */ {"var73", "undefined"}, - /* 74 */ {"var74", "undefined"}, - /* 75 */ {"var75", "undefined"}, - /* 76 */ {"var76", "undefined"}, - /* 77 */ {"var77", "undefined"}, - /* 78 */ {"var78", "undefined"}, - /* 79 */ {"var79", "undefined"}, - /* 80 */ {"var80", "undefined"}, - /* 81 */ {"var81", "undefined"}, - /* 82 */ {"var82", "undefined"}, - /* 83 */ {"var83", "undefined"}, - /* 84 */ {"var84", "undefined"}, - /* 85 */ {"var85", "undefined"}, - /* 86 */ {"var86", "undefined"}, - /* 87 */ {"var87", "undefined"}, - /* 88 */ {"var88", "undefined"}, - /* 89 */ {"var89", "undefined"}, - /* 90 */ {"var90", "undefined"}, - /* 91 */ {"var91", "undefined"}, - /* 92 */ {"var92", "undefined"}, - /* 93 */ {"var93", "undefined"}, - /* 94 */ {"var94", "undefined"}, - /* 95 */ {"var95", "undefined"}, - /* 96 */ {"var96", "undefined"}, - /* 97 */ {"var97", "undefined"}, - /* 98 */ {"var98", "undefined"}, - /* 99 */ {"var99", "undefined"}, - /* 100 */ {"var100", "undefined"}, - /* 101 */ {"var101", "undefined"}, - /* 102 */ {"var102", "undefined"}, - /* 103 */ {"var103", "undefined"}, - /* 104 */ {"var104", "undefined"}, - /* 105 */ {"var105", "undefined"}, - /* 106 */ {"var106", "undefined"}, - /* 107 */ {"var107", "undefined"}, - /* 108 */ {"var108", "undefined"}, - /* 109 */ {"var109", "undefined"}, - /* 110 */ {"var110", "undefined"}, - /* 111 */ {"var111", "undefined"}, - /* 112 */ {"var112", "undefined"}, - /* 113 */ {"var113", "undefined"}, - /* 114 */ {"var114", "undefined"}, - /* 115 */ {"var115", "undefined"}, - /* 116 */ {"var116", "undefined"}, - /* 117 */ {"var117", "undefined"}, - /* 118 */ {"var118", "undefined"}, - /* 119 */ {"var119", "undefined"}, - /* 120 */ {"var120", "undefined"}, - /* 121 */ {"var121", "undefined"}, - /* 122 */ {"var122", "undefined"}, - /* 123 */ {"var123", "undefined"}, - /* 124 */ {"var124", "undefined"}, - /* 125 */ {"var125", "undefined"}, - /* 126 */ {"var126", "undefined"}, - /* 127 */ {"var127", "undefined"}, - /* 128 */ {"var128", "undefined"}, - /* 129 */ {"var129", "undefined"}, - /* 130 */ {"var130", "undefined"}, - /* 131 */ {"var131", "undefined"}, - /* 132 */ {"var132", "undefined"}, - /* 133 */ {"var133", "undefined"}, - /* 134 */ {"var134", "undefined"}, - /* 135 */ {"var135", "undefined"}, - /* 136 */ {"var136", "undefined"}, - /* 137 */ {"var137", "undefined"}, - /* 138 */ {"var138", "undefined"}, - /* 139 */ {"var139", "undefined"}, - /* 140 */ {"var140", "undefined"}, - /* 141 */ {"var141", "undefined"}, - /* 142 */ {"var142", "undefined"}, - /* 143 */ {"var143", "undefined"}, - /* 144 */ {"SFI", "Snowfall index [(-1 to 1)]"}, - /* 145 */ {"var145", "undefined"}, - /* 146 */ {"var146", "undefined"}, - /* 147 */ {"var147", "undefined"}, - /* 148 */ {"var148", "undefined"}, - /* 149 */ {"var149", "undefined"}, - /* 150 */ {"var150", "undefined"}, - /* 151 */ {"var151", "undefined"}, - /* 152 */ {"var152", "undefined"}, - /* 153 */ {"var153", "undefined"}, - /* 154 */ {"var154", "undefined"}, - /* 155 */ {"var155", "undefined"}, - /* 156 */ {"var156", "undefined"}, - /* 157 */ {"var157", "undefined"}, - /* 158 */ {"var158", "undefined"}, - /* 159 */ {"var159", "undefined"}, - /* 160 */ {"var160", "undefined"}, - /* 161 */ {"var161", "undefined"}, - /* 162 */ {"var162", "undefined"}, - /* 163 */ {"var163", "undefined"}, - /* 164 */ {"var164", "undefined"}, - /* 165 */ {"10WSI", "10 metre speed index [(-1 to 1)]"}, - /* 166 */ {"var166", "undefined"}, - /* 167 */ {"2TI", "2 metre temperature index [(-1 to 1)]"}, - /* 168 */ {"var168", "undefined"}, - /* 169 */ {"var169", "undefined"}, - /* 170 */ {"var170", "undefined"}, - /* 171 */ {"var171", "undefined"}, - /* 172 */ {"var172", "undefined"}, - /* 173 */ {"var173", "undefined"}, - /* 174 */ {"var174", "undefined"}, - /* 175 */ {"var175", "undefined"}, - /* 176 */ {"var176", "undefined"}, - /* 177 */ {"var177", "undefined"}, - /* 178 */ {"var178", "undefined"}, - /* 179 */ {"var179", "undefined"}, - /* 180 */ {"var180", "undefined"}, - /* 181 */ {"var181", "undefined"}, - /* 182 */ {"var182", "undefined"}, - /* 183 */ {"var183", "undefined"}, - /* 184 */ {"var184", "undefined"}, - /* 185 */ {"var185", "undefined"}, - /* 186 */ {"var186", "undefined"}, - /* 187 */ {"var187", "undefined"}, - /* 188 */ {"var188", "undefined"}, - /* 189 */ {"var189", "undefined"}, - /* 190 */ {"var190", "undefined"}, - /* 191 */ {"var191", "undefined"}, - /* 192 */ {"var192", "undefined"}, - /* 193 */ {"var193", "undefined"}, - /* 194 */ {"var194", "undefined"}, - /* 195 */ {"var195", "undefined"}, - /* 196 */ {"var196", "undefined"}, - /* 197 */ {"var197", "undefined"}, - /* 198 */ {"var198", "undefined"}, - /* 199 */ {"var199", "undefined"}, - /* 200 */ {"MAXSWHI", "Maximum of significant wave height index [(-1 to 1)]"}, - /* 201 */ {"MX2TI", "Maximum temperature at 2 metres index [(-1 to 1)]"}, - /* 202 */ {"MN2TI", "Minimum temperature at 2 metres index [(-1 to 1)]"}, - /* 203 */ {"var203", "undefined"}, - /* 204 */ {"var204", "undefined"}, - /* 205 */ {"var205", "undefined"}, - /* 206 */ {"var206", "undefined"}, - /* 207 */ {"var207", "undefined"}, - /* 208 */ {"var208", "undefined"}, - /* 209 */ {"var209", "undefined"}, - /* 210 */ {"var210", "undefined"}, - /* 211 */ {"var211", "undefined"}, - /* 212 */ {"var212", "undefined"}, - /* 213 */ {"var213", "undefined"}, - /* 214 */ {"var214", "undefined"}, - /* 215 */ {"var215", "undefined"}, - /* 216 */ {"var216", "undefined"}, - /* 217 */ {"var217", "undefined"}, - /* 218 */ {"var218", "undefined"}, - /* 219 */ {"var219", "undefined"}, - /* 220 */ {"var220", "undefined"}, - /* 221 */ {"var221", "undefined"}, - /* 222 */ {"var222", "undefined"}, - /* 223 */ {"var223", "undefined"}, - /* 224 */ {"var224", "undefined"}, - /* 225 */ {"var225", "undefined"}, - /* 226 */ {"var226", "undefined"}, - /* 227 */ {"var227", "undefined"}, - /* 228 */ {"TPI", "Total precipitation index [(-1 to 1)]"}, - /* 229 */ {"var229", "undefined"}, - /* 230 */ {"var230", "undefined"}, - /* 231 */ {"var231", "undefined"}, - /* 232 */ {"var232", "undefined"}, - /* 233 */ {"var233", "undefined"}, - /* 234 */ {"var234", "undefined"}, - /* 235 */ {"var235", "undefined"}, - /* 236 */ {"var236", "undefined"}, - /* 237 */ {"var237", "undefined"}, - /* 238 */ {"var238", "undefined"}, - /* 239 */ {"var239", "undefined"}, - /* 240 */ {"var240", "undefined"}, - /* 241 */ {"var241", "undefined"}, - /* 242 */ {"var242", "undefined"}, - /* 243 */ {"var243", "undefined"}, - /* 244 */ {"var244", "undefined"}, - /* 245 */ {"var245", "undefined"}, - /* 246 */ {"var246", "undefined"}, - /* 247 */ {"var247", "undefined"}, - /* 248 */ {"var248", "undefined"}, - /* 249 */ {"var249", "undefined"}, - /* 250 */ {"var250", "undefined"}, - /* 251 */ {"var251", "undefined"}, - /* 252 */ {"var252", "undefined"}, - /* 253 */ {"var253", "undefined"}, - /* 254 */ {"var254", "undefined"}, - /* 255 */ {"var255", "Indicates a missing value []"}, -}; - -const struct ParmTable parm_table_ecmwf_133[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"2TPLM10", "2m temperature probability less than -10 C [%]"}, - /* 2 */ {"2TPLM5", "2m temperature probability less than -5 C [%]"}, - /* 3 */ {"2TPL0", "2m temperature probability less than 0 C [%]"}, - /* 4 */ {"2TPL5", "2m temperature probability less than 5 C [%]"}, - /* 5 */ {"2TPL10", "2m temperature probability less than 10 C [%]"}, - /* 6 */ {"2TPG25", "2m temperature probability greater than 25 C [%]"}, - /* 7 */ {"2TPG30", "2m temperature probability greater than 30 C [%]"}, - /* 8 */ {"2TPG35", "2m temperature probability greater than 35 C [%]"}, - /* 9 */ {"2TPG40", "2m temperature probability greater than 40 C [%]"}, - /* 10 */ {"2TPG45", "2m temperature probability greater than 45 C [%]"}, - /* 11 */ {"MN2TPLM10", "Minimum 2 metre temperature probability less than -10 C [%]"}, - /* 12 */ {"MN2TPLM5", "Minimum 2 metre temperature probability less than -5 C [%]"}, - /* 13 */ {"MN2TPL0", "Minimum 2 metre temperature probability less than 0 C [%]"}, - /* 14 */ {"MN2TPL5", "Minimum 2 metre temperature probability less than 5 C [%]"}, - /* 15 */ {"MN2TPL10", "Minimum 2 metre temperature probability less than 10 C [%]"}, - /* 16 */ {"MX2TPG25", "Maximum 2 metre temperature probability greater than 25 C [%]"}, - /* 17 */ {"MX2TPG30", "Maximum 2 metre temperature probability greater than 30 C [%]"}, - /* 18 */ {"MX2TPG35", "Maximum 2 metre temperature probability greater than 35 C [%]"}, - /* 19 */ {"MX2TPG40", "Maximum 2 metre temperature probability greater than 40 C [%]"}, - /* 20 */ {"MX2TPG45", "Maximum 2 metre temperature probability greater than 45 C [%]"}, - /* 21 */ {"10SPG10", "10 metre wind speed probability of at least 10 m/s [%]"}, - /* 22 */ {"10SPG15", "10 metre wind speed probability of at least 15 m/s [%]"}, - /* 23 */ {"10SPG20", "10 metre wind speed probability of at least 20 m/s [%]"}, - /* 24 */ {"10SPG35", "10 metre wind speed probability of at least 35 m/s [%]"}, - /* 25 */ {"10SPG50", "10 metre wind speed probability of at least 50 m/s [%]"}, - /* 26 */ {"10GPG20", "10 metre wind gust probability of at least 20 m/s [%]"}, - /* 27 */ {"10GPG35", "10 metre wind gust probability of at least 35 m/s [%]"}, - /* 28 */ {"10GPG50", "10 metre wind gust probability of at least 50 m/s [%]"}, - /* 29 */ {"10GPG75", "10 metre wind gust probability of at least 75 m/s [%]"}, - /* 30 */ {"10GPG100", "10 metre wind gust probability of at least 100 m/s [%]"}, - /* 31 */ {"TPPG1", "Total precipitation probability of at least 1 mm [%]"}, - /* 32 */ {"TPPG5", "Total precipitation probability of at least 5 mm [%]"}, - /* 33 */ {"TPPG10", "Total precipitation probability of at least 10 mm [%]"}, - /* 34 */ {"TPPG20", "Total precipitation probability of at least 20 mm [%]"}, - /* 35 */ {"TPPG40", "Total precipitation probability of at least 40 mm [%]"}, - /* 36 */ {"TPPG60", "Total precipitation probability of at least 60 mm [%]"}, - /* 37 */ {"TPPG80", "Total precipitation probability of at least 80 mm [%]"}, - /* 38 */ {"TPPG100", "Total precipitation probability of at least 100 mm [%]"}, - /* 39 */ {"TPPG150", "Total precipitation probability of at least 150 mm [%]"}, - /* 40 */ {"TPPG200", "Total precipitation probability of at least 200 mm [%]"}, - /* 41 */ {"TPPG300", "Total precipitation probability of at least 300 mm [%]"}, - /* 42 */ {"SFPG1", "Snowfall probability of at least 1 mm [%]"}, - /* 43 */ {"SFPG5", "Snowfall probability of at least 5 mm [%]"}, - /* 44 */ {"SFPG10", "Snowfall probability of at least 10 mm [%]"}, - /* 45 */ {"SFPG20", "Snowfall probability of at least 20 mm [%]"}, - /* 46 */ {"SFPG40", "Snowfall probability of at least 40 mm [%]"}, - /* 47 */ {"SFPG60", "Snowfall probability of at least 60 mm [%]"}, - /* 48 */ {"SFPG80", "Snowfall probability of at least 80 mm [%]"}, - /* 49 */ {"SFPG100", "Snowfall probability of at least 100 mm [%]"}, - /* 50 */ {"SFPG150", "Snowfall probability of at least 150 mm [%]"}, - /* 51 */ {"SFPG200", "Snowfall probability of at least 200 mm [%]"}, - /* 52 */ {"SFPG300", "Snowfall probability of at least 300 mm [%]"}, - /* 53 */ {"TCCPG10", "Total Cloud Cover probability greater than 10% [%]"}, - /* 54 */ {"TCCPG20", "Total Cloud Cover probability greater than 20% [%]"}, - /* 55 */ {"TCCPG30", "Total Cloud Cover probability greater than 30% [%]"}, - /* 56 */ {"TCCPG40", "Total Cloud Cover probability greater than 40% [%]"}, - /* 57 */ {"TCCPG50", "Total Cloud Cover probability greater than 50% [%]"}, - /* 58 */ {"TCCPG60", "Total Cloud Cover probability greater than 60% [%]"}, - /* 59 */ {"TCCPG70", "Total Cloud Cover probability greater than 70% [%]"}, - /* 60 */ {"TCCPG80", "Total Cloud Cover probability greater than 80% [%]"}, - /* 61 */ {"TCCPG90", "Total Cloud Cover probability greater than 90% [%]"}, - /* 62 */ {"TCCPG99", "Total Cloud Cover probability greater than 99% [%]"}, - /* 63 */ {"HCCPG10", "High Cloud Cover probability greater than 10% [%]"}, - /* 64 */ {"HCCPG20", "High Cloud Cover probability greater than 20% [%]"}, - /* 65 */ {"HCCPG30", "High Cloud Cover probability greater than 30% [%]"}, - /* 66 */ {"HCCPG40", "High Cloud Cover probability greater than 40% [%]"}, - /* 67 */ {"HCCPG50", "High Cloud Cover probability greater than 50% [%]"}, - /* 68 */ {"HCCPG60", "High Cloud Cover probability greater than 60% [%]"}, - /* 69 */ {"HCCPG70", "High Cloud Cover probability greater than 70% [%]"}, - /* 70 */ {"HCCPG80", "High Cloud Cover probability greater than 80% [%]"}, - /* 71 */ {"HCCPG90", "High Cloud Cover probability greater than 90% [%]"}, - /* 72 */ {"HCCPG99", "High Cloud Cover probability greater than 99% [%]"}, - /* 73 */ {"MCCPG10", "Medium Cloud Cover probability greater than 10% [%]"}, - /* 74 */ {"MCCPG20", "Medium Cloud Cover probability greater than 20% [%]"}, - /* 75 */ {"MCCPG30", "Medium Cloud Cover probability greater than 30% [%]"}, - /* 76 */ {"MCCPG40", "Medium Cloud Cover probability greater than 40% [%]"}, - /* 77 */ {"MCCPG50", "Medium Cloud Cover probability greater than 50% [%]"}, - /* 78 */ {"MCCPG60", "Medium Cloud Cover probability greater than 60% [%]"}, - /* 79 */ {"MCCPG70", "Medium Cloud Cover probability greater than 70% [%]"}, - /* 80 */ {"MCCPG80", "Medium Cloud Cover probability greater than 80% [%]"}, - /* 81 */ {"MCCPG90", "Medium Cloud Cover probability greater than 90% [%]"}, - /* 82 */ {"MCCPG99", "Medium Cloud Cover probability greater than 99% [%]"}, - /* 83 */ {"LCCPG10", "Low Cloud Cover probability greater than 10% [%]"}, - /* 84 */ {"LCCPG20", "Low Cloud Cover probability greater than 20% [%]"}, - /* 85 */ {"LCCPG30", "Low Cloud Cover probability greater than 30% [%]"}, - /* 86 */ {"LCCPG40", "Low Cloud Cover probability greater than 40% [%]"}, - /* 87 */ {"LCCPG50", "Low Cloud Cover probability greater than 50% [%]"}, - /* 88 */ {"LCCPG60", "Low Cloud Cover probability greater than 60% [%]"}, - /* 89 */ {"LCCPG70", "Low Cloud Cover probability greater than 70% [%]"}, - /* 90 */ {"LCCPG80", "Low Cloud Cover probability greater than 80% [%]"}, - /* 91 */ {"LCCPG90", "Low Cloud Cover probability greater than 90% [%]"}, - /* 92 */ {"LCCPG99", "Low Cloud Cover probability greater than 99% [%]"}, - /* 93 */ {"var93", "undefined"}, - /* 94 */ {"var94", "undefined"}, - /* 95 */ {"var95", "undefined"}, - /* 96 */ {"var96", "undefined"}, - /* 97 */ {"var97", "undefined"}, - /* 98 */ {"var98", "undefined"}, - /* 99 */ {"var99", "undefined"}, - /* 100 */ {"var100", "undefined"}, - /* 101 */ {"var101", "undefined"}, - /* 102 */ {"var102", "undefined"}, - /* 103 */ {"var103", "undefined"}, - /* 104 */ {"var104", "undefined"}, - /* 105 */ {"var105", "undefined"}, - /* 106 */ {"var106", "undefined"}, - /* 107 */ {"var107", "undefined"}, - /* 108 */ {"var108", "undefined"}, - /* 109 */ {"var109", "undefined"}, - /* 110 */ {"var110", "undefined"}, - /* 111 */ {"var111", "undefined"}, - /* 112 */ {"var112", "undefined"}, - /* 113 */ {"var113", "undefined"}, - /* 114 */ {"var114", "undefined"}, - /* 115 */ {"var115", "undefined"}, - /* 116 */ {"var116", "undefined"}, - /* 117 */ {"var117", "undefined"}, - /* 118 */ {"var118", "undefined"}, - /* 119 */ {"var119", "undefined"}, - /* 120 */ {"var120", "undefined"}, - /* 121 */ {"var121", "undefined"}, - /* 122 */ {"var122", "undefined"}, - /* 123 */ {"var123", "undefined"}, - /* 124 */ {"var124", "undefined"}, - /* 125 */ {"var125", "undefined"}, - /* 126 */ {"var126", "undefined"}, - /* 127 */ {"var127", "undefined"}, - /* 128 */ {"var128", "undefined"}, - /* 129 */ {"var129", "undefined"}, - /* 130 */ {"var130", "undefined"}, - /* 131 */ {"var131", "undefined"}, - /* 132 */ {"var132", "undefined"}, - /* 133 */ {"var133", "undefined"}, - /* 134 */ {"var134", "undefined"}, - /* 135 */ {"var135", "undefined"}, - /* 136 */ {"var136", "undefined"}, - /* 137 */ {"var137", "undefined"}, - /* 138 */ {"var138", "undefined"}, - /* 139 */ {"var139", "undefined"}, - /* 140 */ {"var140", "undefined"}, - /* 141 */ {"var141", "undefined"}, - /* 142 */ {"var142", "undefined"}, - /* 143 */ {"var143", "undefined"}, - /* 144 */ {"var144", "undefined"}, - /* 145 */ {"var145", "undefined"}, - /* 146 */ {"var146", "undefined"}, - /* 147 */ {"var147", "undefined"}, - /* 148 */ {"var148", "undefined"}, - /* 149 */ {"var149", "undefined"}, - /* 150 */ {"var150", "undefined"}, - /* 151 */ {"var151", "undefined"}, - /* 152 */ {"var152", "undefined"}, - /* 153 */ {"var153", "undefined"}, - /* 154 */ {"var154", "undefined"}, - /* 155 */ {"var155", "undefined"}, - /* 156 */ {"var156", "undefined"}, - /* 157 */ {"var157", "undefined"}, - /* 158 */ {"var158", "undefined"}, - /* 159 */ {"var159", "undefined"}, - /* 160 */ {"var160", "undefined"}, - /* 161 */ {"var161", "undefined"}, - /* 162 */ {"var162", "undefined"}, - /* 163 */ {"var163", "undefined"}, - /* 164 */ {"var164", "undefined"}, - /* 165 */ {"var165", "undefined"}, - /* 166 */ {"var166", "undefined"}, - /* 167 */ {"var167", "undefined"}, - /* 168 */ {"var168", "undefined"}, - /* 169 */ {"var169", "undefined"}, - /* 170 */ {"var170", "undefined"}, - /* 171 */ {"var171", "undefined"}, - /* 172 */ {"var172", "undefined"}, - /* 173 */ {"var173", "undefined"}, - /* 174 */ {"var174", "undefined"}, - /* 175 */ {"var175", "undefined"}, - /* 176 */ {"var176", "undefined"}, - /* 177 */ {"var177", "undefined"}, - /* 178 */ {"var178", "undefined"}, - /* 179 */ {"var179", "undefined"}, - /* 180 */ {"var180", "undefined"}, - /* 181 */ {"var181", "undefined"}, - /* 182 */ {"var182", "undefined"}, - /* 183 */ {"var183", "undefined"}, - /* 184 */ {"var184", "undefined"}, - /* 185 */ {"var185", "undefined"}, - /* 186 */ {"var186", "undefined"}, - /* 187 */ {"var187", "undefined"}, - /* 188 */ {"var188", "undefined"}, - /* 189 */ {"var189", "undefined"}, - /* 190 */ {"var190", "undefined"}, - /* 191 */ {"var191", "undefined"}, - /* 192 */ {"var192", "undefined"}, - /* 193 */ {"var193", "undefined"}, - /* 194 */ {"var194", "undefined"}, - /* 195 */ {"var195", "undefined"}, - /* 196 */ {"var196", "undefined"}, - /* 197 */ {"var197", "undefined"}, - /* 198 */ {"var198", "undefined"}, - /* 199 */ {"var199", "undefined"}, - /* 200 */ {"var200", "undefined"}, - /* 201 */ {"var201", "undefined"}, - /* 202 */ {"var202", "undefined"}, - /* 203 */ {"var203", "undefined"}, - /* 204 */ {"var204", "undefined"}, - /* 205 */ {"var205", "undefined"}, - /* 206 */ {"var206", "undefined"}, - /* 207 */ {"var207", "undefined"}, - /* 208 */ {"var208", "undefined"}, - /* 209 */ {"var209", "undefined"}, - /* 210 */ {"var210", "undefined"}, - /* 211 */ {"var211", "undefined"}, - /* 212 */ {"var212", "undefined"}, - /* 213 */ {"var213", "undefined"}, - /* 214 */ {"var214", "undefined"}, - /* 215 */ {"var215", "undefined"}, - /* 216 */ {"var216", "undefined"}, - /* 217 */ {"var217", "undefined"}, - /* 218 */ {"var218", "undefined"}, - /* 219 */ {"var219", "undefined"}, - /* 220 */ {"var220", "undefined"}, - /* 221 */ {"var221", "undefined"}, - /* 222 */ {"var222", "undefined"}, - /* 223 */ {"var223", "undefined"}, - /* 224 */ {"var224", "undefined"}, - /* 225 */ {"var225", "undefined"}, - /* 226 */ {"var226", "undefined"}, - /* 227 */ {"var227", "undefined"}, - /* 228 */ {"var228", "undefined"}, - /* 229 */ {"var229", "undefined"}, - /* 230 */ {"var230", "undefined"}, - /* 231 */ {"var231", "undefined"}, - /* 232 */ {"var232", "undefined"}, - /* 233 */ {"var233", "undefined"}, - /* 234 */ {"var234", "undefined"}, - /* 235 */ {"var235", "undefined"}, - /* 236 */ {"var236", "undefined"}, - /* 237 */ {"var237", "undefined"}, - /* 238 */ {"var238", "undefined"}, - /* 239 */ {"var239", "undefined"}, - /* 240 */ {"var240", "undefined"}, - /* 241 */ {"var241", "undefined"}, - /* 242 */ {"var242", "undefined"}, - /* 243 */ {"var243", "undefined"}, - /* 244 */ {"var244", "undefined"}, - /* 245 */ {"var245", "undefined"}, - /* 246 */ {"var246", "undefined"}, - /* 247 */ {"var247", "undefined"}, - /* 248 */ {"var248", "undefined"}, - /* 249 */ {"var249", "undefined"}, - /* 250 */ {"var250", "undefined"}, - /* 251 */ {"var251", "undefined"}, - /* 252 */ {"var252", "undefined"}, - /* 253 */ {"var253", "undefined"}, - /* 254 */ {"var254", "undefined"}, - /* 255 */ {"var255", "undefined"}, -}; - -const struct ParmTable parm_table_ecmwf_140[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"var1", "undefined"}, - /* 2 */ {"var2", "undefined"}, - /* 3 */ {"var3", "undefined"}, - /* 4 */ {"var4", "undefined"}, - /* 5 */ {"var5", "undefined"}, - /* 6 */ {"var6", "undefined"}, - /* 7 */ {"var7", "undefined"}, - /* 8 */ {"var8", "undefined"}, - /* 9 */ {"var9", "undefined"}, - /* 10 */ {"var10", "undefined"}, - /* 11 */ {"var11", "undefined"}, - /* 12 */ {"var12", "undefined"}, - /* 13 */ {"var13", "undefined"}, - /* 14 */ {"var14", "undefined"}, - /* 15 */ {"var15", "undefined"}, - /* 16 */ {"var16", "undefined"}, - /* 17 */ {"var17", "undefined"}, - /* 18 */ {"var18", "undefined"}, - /* 19 */ {"var19", "undefined"}, - /* 20 */ {"var20", "undefined"}, - /* 21 */ {"var21", "undefined"}, - /* 22 */ {"var22", "undefined"}, - /* 23 */ {"var23", "undefined"}, - /* 24 */ {"var24", "undefined"}, - /* 25 */ {"var25", "undefined"}, - /* 26 */ {"var26", "undefined"}, - /* 27 */ {"var27", "undefined"}, - /* 28 */ {"var28", "undefined"}, - /* 29 */ {"var29", "undefined"}, - /* 30 */ {"var30", "undefined"}, - /* 31 */ {"var31", "undefined"}, - /* 32 */ {"var32", "undefined"}, - /* 33 */ {"var33", "undefined"}, - /* 34 */ {"var34", "undefined"}, - /* 35 */ {"var35", "undefined"}, - /* 36 */ {"var36", "undefined"}, - /* 37 */ {"var37", "undefined"}, - /* 38 */ {"var38", "undefined"}, - /* 39 */ {"var39", "undefined"}, - /* 40 */ {"var40", "undefined"}, - /* 41 */ {"var41", "undefined"}, - /* 42 */ {"var42", "undefined"}, - /* 43 */ {"var43", "undefined"}, - /* 44 */ {"var44", "undefined"}, - /* 45 */ {"var45", "undefined"}, - /* 46 */ {"var46", "undefined"}, - /* 47 */ {"var47", "undefined"}, - /* 48 */ {"var48", "undefined"}, - /* 49 */ {"var49", "undefined"}, - /* 50 */ {"var50", "undefined"}, - /* 51 */ {"var51", "undefined"}, - /* 52 */ {"var52", "undefined"}, - /* 53 */ {"var53", "undefined"}, - /* 54 */ {"var54", "undefined"}, - /* 55 */ {"var55", "undefined"}, - /* 56 */ {"var56", "undefined"}, - /* 57 */ {"var57", "undefined"}, - /* 58 */ {"var58", "undefined"}, - /* 59 */ {"var59", "undefined"}, - /* 60 */ {"var60", "undefined"}, - /* 61 */ {"var61", "undefined"}, - /* 62 */ {"var62", "undefined"}, - /* 63 */ {"var63", "undefined"}, - /* 64 */ {"var64", "undefined"}, - /* 65 */ {"var65", "undefined"}, - /* 66 */ {"var66", "undefined"}, - /* 67 */ {"var67", "undefined"}, - /* 68 */ {"var68", "undefined"}, - /* 69 */ {"var69", "undefined"}, - /* 70 */ {"var70", "undefined"}, - /* 71 */ {"var71", "undefined"}, - /* 72 */ {"var72", "undefined"}, - /* 73 */ {"var73", "undefined"}, - /* 74 */ {"var74", "undefined"}, - /* 75 */ {"var75", "undefined"}, - /* 76 */ {"var76", "undefined"}, - /* 77 */ {"var77", "undefined"}, - /* 78 */ {"var78", "undefined"}, - /* 79 */ {"var79", "undefined"}, - /* 80 */ {"var80", "undefined"}, - /* 81 */ {"var81", "undefined"}, - /* 82 */ {"var82", "undefined"}, - /* 83 */ {"var83", "undefined"}, - /* 84 */ {"var84", "undefined"}, - /* 85 */ {"var85", "undefined"}, - /* 86 */ {"var86", "undefined"}, - /* 87 */ {"var87", "undefined"}, - /* 88 */ {"var88", "undefined"}, - /* 89 */ {"var89", "undefined"}, - /* 90 */ {"var90", "undefined"}, - /* 91 */ {"var91", "undefined"}, - /* 92 */ {"var92", "undefined"}, - /* 93 */ {"var93", "undefined"}, - /* 94 */ {"var94", "undefined"}, - /* 95 */ {"var95", "undefined"}, - /* 96 */ {"var96", "undefined"}, - /* 97 */ {"var97", "undefined"}, - /* 98 */ {"var98", "undefined"}, - /* 99 */ {"var99", "undefined"}, - /* 100 */ {"var100", "undefined"}, - /* 101 */ {"var101", "undefined"}, - /* 102 */ {"var102", "undefined"}, - /* 103 */ {"var103", "undefined"}, - /* 104 */ {"var104", "undefined"}, - /* 105 */ {"var105", "undefined"}, - /* 106 */ {"var106", "undefined"}, - /* 107 */ {"var107", "undefined"}, - /* 108 */ {"var108", "undefined"}, - /* 109 */ {"var109", "undefined"}, - /* 110 */ {"var110", "undefined"}, - /* 111 */ {"var111", "undefined"}, - /* 112 */ {"var112", "undefined"}, - /* 113 */ {"var113", "undefined"}, - /* 114 */ {"var114", "undefined"}, - /* 115 */ {"var115", "undefined"}, - /* 116 */ {"var116", "undefined"}, - /* 117 */ {"var117", "undefined"}, - /* 118 */ {"var118", "undefined"}, - /* 119 */ {"var119", "undefined"}, - /* 120 */ {"var120", "undefined"}, - /* 121 */ {"var121", "undefined"}, - /* 122 */ {"var122", "undefined"}, - /* 123 */ {"var123", "undefined"}, - /* 124 */ {"var124", "undefined"}, - /* 125 */ {"var125", "undefined"}, - /* 126 */ {"var126", "undefined"}, - /* 127 */ {"var127", "undefined"}, - /* 128 */ {"var128", "undefined"}, - /* 129 */ {"var129", "undefined"}, - /* 130 */ {"var130", "undefined"}, - /* 131 */ {"var131", "undefined"}, - /* 132 */ {"var132", "undefined"}, - /* 133 */ {"var133", "undefined"}, - /* 134 */ {"var134", "undefined"}, - /* 135 */ {"var135", "undefined"}, - /* 136 */ {"var136", "undefined"}, - /* 137 */ {"var137", "undefined"}, - /* 138 */ {"var138", "undefined"}, - /* 139 */ {"var139", "undefined"}, - /* 140 */ {"var140", "undefined"}, - /* 141 */ {"var141", "undefined"}, - /* 142 */ {"var142", "undefined"}, - /* 143 */ {"var143", "undefined"}, - /* 144 */ {"var144", "undefined"}, - /* 145 */ {"var145", "undefined"}, - /* 146 */ {"var146", "undefined"}, - /* 147 */ {"var147", "undefined"}, - /* 148 */ {"var148", "undefined"}, - /* 149 */ {"var149", "undefined"}, - /* 150 */ {"var150", "undefined"}, - /* 151 */ {"var151", "undefined"}, - /* 152 */ {"var152", "undefined"}, - /* 153 */ {"var153", "undefined"}, - /* 154 */ {"var154", "undefined"}, - /* 155 */ {"var155", "undefined"}, - /* 156 */ {"var156", "undefined"}, - /* 157 */ {"var157", "undefined"}, - /* 158 */ {"var158", "undefined"}, - /* 159 */ {"var159", "undefined"}, - /* 160 */ {"var160", "undefined"}, - /* 161 */ {"var161", "undefined"}, - /* 162 */ {"var162", "undefined"}, - /* 163 */ {"var163", "undefined"}, - /* 164 */ {"var164", "undefined"}, - /* 165 */ {"var165", "undefined"}, - /* 166 */ {"var166", "undefined"}, - /* 167 */ {"var167", "undefined"}, - /* 168 */ {"var168", "undefined"}, - /* 169 */ {"var169", "undefined"}, - /* 170 */ {"var170", "undefined"}, - /* 171 */ {"var171", "undefined"}, - /* 172 */ {"var172", "undefined"}, - /* 173 */ {"var173", "undefined"}, - /* 174 */ {"var174", "undefined"}, - /* 175 */ {"var175", "undefined"}, - /* 176 */ {"var176", "undefined"}, - /* 177 */ {"var177", "undefined"}, - /* 178 */ {"var178", "undefined"}, - /* 179 */ {"var179", "undefined"}, - /* 180 */ {"var180", "undefined"}, - /* 181 */ {"var181", "undefined"}, - /* 182 */ {"var182", "undefined"}, - /* 183 */ {"var183", "undefined"}, - /* 184 */ {"var184", "undefined"}, - /* 185 */ {"var185", "undefined"}, - /* 186 */ {"var186", "undefined"}, - /* 187 */ {"var187", "undefined"}, - /* 188 */ {"var188", "undefined"}, - /* 189 */ {"var189", "undefined"}, - /* 190 */ {"var190", "undefined"}, - /* 191 */ {"var191", "undefined"}, - /* 192 */ {"var192", "undefined"}, - /* 193 */ {"var193", "undefined"}, - /* 194 */ {"var194", "undefined"}, - /* 195 */ {"var195", "undefined"}, - /* 196 */ {"var196", "undefined"}, - /* 197 */ {"var197", "undefined"}, - /* 198 */ {"var198", "undefined"}, - /* 199 */ {"var199", "undefined"}, - /* 200 */ {"MAXSWH", "Maximum of significant wave height [m]"}, - /* 201 */ {"var201", "undefined"}, - /* 202 */ {"var202", "undefined"}, - /* 203 */ {"var203", "undefined"}, - /* 204 */ {"var204", "undefined"}, - /* 205 */ {"var205", "undefined"}, - /* 206 */ {"var206", "undefined"}, - /* 207 */ {"var207", "undefined"}, - /* 208 */ {"var208", "undefined"}, - /* 209 */ {"var209", "undefined"}, - /* 210 */ {"var210", "undefined"}, - /* 211 */ {"var211", "undefined"}, - /* 212 */ {"var212", "undefined"}, - /* 213 */ {"var213", "undefined"}, - /* 214 */ {"var214", "undefined"}, - /* 215 */ {"UST", "U-component stokes drift [m s**-1]"}, - /* 216 */ {"VST", "V-component stokes drift [m s**-1]"}, - /* 217 */ {"TMAX", "Period corresponding to maximum individual wave height [s]"}, - /* 218 */ {"HMAX", "Maximum individual wave height [m]"}, - /* 219 */ {"WMB", "Model bathymetry [m]"}, - /* 220 */ {"MP1", "Mean wave period based on first moment [s]"}, - /* 221 */ {"MP2", "Mean wave period based on second moment [s]"}, - /* 222 */ {"WDW", "Wave spectral directional width []"}, - /* 223 */ {"P1WW", "Mean wave period based on first moment for wind waves [s]"}, - /* 224 */ {"P2WW", "Mean wave period based on second moment for wind waves [s]"}, - /* 225 */ {"DWWW", "Wave spectral directional width for wind waves []"}, - /* 226 */ {"P1PS", "Mean wave period based on first moment for swell [s]"}, - /* 227 */ {"P2PS", "Mean wave period based on second moment for swell [s]"}, - /* 228 */ {"DWPS", "Wave spectral directional width for swell []"}, - /* 229 */ {"SWH", "Significant wave height [m]"}, - /* 230 */ {"MWD", "Mean wave direction [degrees]"}, - /* 231 */ {"PP1D", "Peak period of 1D spectra [s]"}, - /* 232 */ {"MWP", "Mean wave period [s]"}, - /* 233 */ {"CDWW", "Coefficient of drag with waves []"}, - /* 234 */ {"SHWW", "Significant height of wind waves [m]"}, - /* 235 */ {"MDWW", "Mean direction of wind waves [degrees]"}, - /* 236 */ {"MPWW", "Mean period of wind waves [s]"}, - /* 237 */ {"SHTS", "Significant height of total swell [m]"}, - /* 238 */ {"MDTS", "Mean direction of total swell [degrees]"}, - /* 239 */ {"MPTS", "Mean period of total swell [s]"}, - /* 240 */ {"SDHS", "Standard deviation wave height [m]"}, - /* 241 */ {"MU10", "Mean of 10 metre wind speed [m s**-1]"}, - /* 242 */ {"MDWI", "Mean wind direction [degrees]"}, - /* 243 */ {"SDU", "Standard deviation of 10 metre wind speed [m s**-1]"}, - /* 244 */ {"MSQS", "Mean square slope of waves [dimensionless]"}, - /* 245 */ {"WIND", "10 metre wind speed [m s**-1]"}, - /* 246 */ {"AWH", "Altimeter wave height [m]"}, - /* 247 */ {"ACWH", "Altimeter corrected wave height [m]"}, - /* 248 */ {"ARRC", "Altimeter range relative correction []"}, - /* 249 */ {"DWI", "10 metre wind direction [degrees]"}, - /* 250 */ {"2DSP", "2D wave spectra (multiple) [m**2 s radian**-1]"}, - /* 251 */ {"2DFD", "2D wave spectra (single) [m**2 s radian**-1]"}, - /* 252 */ {"WSK", "Wave spectral kurtosis []"}, - /* 253 */ {"BFI", "Benjamin-Feir index []"}, - /* 254 */ {"WSP", "Wave spectral peakedness [s**-1]"}, - /* 255 */ {"var255", "Indicates a missing value []"}, -}; - -const struct ParmTable parm_table_ecmwf_150[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"var1", "undefined"}, - /* 2 */ {"var2", "undefined"}, - /* 3 */ {"var3", "undefined"}, - /* 4 */ {"var4", "undefined"}, - /* 5 */ {"var5", "undefined"}, - /* 6 */ {"var6", "undefined"}, - /* 7 */ {"var7", "undefined"}, - /* 8 */ {"var8", "undefined"}, - /* 9 */ {"var9", "undefined"}, - /* 10 */ {"var10", "undefined"}, - /* 11 */ {"var11", "undefined"}, - /* 12 */ {"var12", "undefined"}, - /* 13 */ {"var13", "undefined"}, - /* 14 */ {"var14", "undefined"}, - /* 15 */ {"var15", "undefined"}, - /* 16 */ {"var16", "undefined"}, - /* 17 */ {"var17", "undefined"}, - /* 18 */ {"var18", "undefined"}, - /* 19 */ {"var19", "undefined"}, - /* 20 */ {"var20", "undefined"}, - /* 21 */ {"var21", "undefined"}, - /* 22 */ {"var22", "undefined"}, - /* 23 */ {"var23", "undefined"}, - /* 24 */ {"var24", "undefined"}, - /* 25 */ {"var25", "undefined"}, - /* 26 */ {"var26", "undefined"}, - /* 27 */ {"var27", "undefined"}, - /* 28 */ {"var28", "undefined"}, - /* 29 */ {"var29", "undefined"}, - /* 30 */ {"var30", "undefined"}, - /* 31 */ {"var31", "undefined"}, - /* 32 */ {"var32", "undefined"}, - /* 33 */ {"var33", "undefined"}, - /* 34 */ {"var34", "undefined"}, - /* 35 */ {"var35", "undefined"}, - /* 36 */ {"var36", "undefined"}, - /* 37 */ {"var37", "undefined"}, - /* 38 */ {"var38", "undefined"}, - /* 39 */ {"var39", "undefined"}, - /* 40 */ {"var40", "undefined"}, - /* 41 */ {"var41", "undefined"}, - /* 42 */ {"var42", "undefined"}, - /* 43 */ {"var43", "undefined"}, - /* 44 */ {"var44", "undefined"}, - /* 45 */ {"var45", "undefined"}, - /* 46 */ {"var46", "undefined"}, - /* 47 */ {"var47", "undefined"}, - /* 48 */ {"var48", "undefined"}, - /* 49 */ {"var49", "undefined"}, - /* 50 */ {"var50", "undefined"}, - /* 51 */ {"var51", "undefined"}, - /* 52 */ {"var52", "undefined"}, - /* 53 */ {"var53", "undefined"}, - /* 54 */ {"var54", "undefined"}, - /* 55 */ {"var55", "undefined"}, - /* 56 */ {"var56", "undefined"}, - /* 57 */ {"var57", "undefined"}, - /* 58 */ {"var58", "undefined"}, - /* 59 */ {"var59", "undefined"}, - /* 60 */ {"var60", "undefined"}, - /* 61 */ {"var61", "undefined"}, - /* 62 */ {"var62", "undefined"}, - /* 63 */ {"var63", "undefined"}, - /* 64 */ {"var64", "undefined"}, - /* 65 */ {"var65", "undefined"}, - /* 66 */ {"var66", "undefined"}, - /* 67 */ {"var67", "undefined"}, - /* 68 */ {"var68", "undefined"}, - /* 69 */ {"var69", "undefined"}, - /* 70 */ {"var70", "undefined"}, - /* 71 */ {"var71", "undefined"}, - /* 72 */ {"var72", "undefined"}, - /* 73 */ {"var73", "undefined"}, - /* 74 */ {"var74", "undefined"}, - /* 75 */ {"var75", "undefined"}, - /* 76 */ {"var76", "undefined"}, - /* 77 */ {"var77", "undefined"}, - /* 78 */ {"var78", "undefined"}, - /* 79 */ {"var79", "undefined"}, - /* 80 */ {"var80", "undefined"}, - /* 81 */ {"var81", "undefined"}, - /* 82 */ {"var82", "undefined"}, - /* 83 */ {"var83", "undefined"}, - /* 84 */ {"var84", "undefined"}, - /* 85 */ {"var85", "undefined"}, - /* 86 */ {"var86", "undefined"}, - /* 87 */ {"var87", "undefined"}, - /* 88 */ {"var88", "undefined"}, - /* 89 */ {"var89", "undefined"}, - /* 90 */ {"var90", "undefined"}, - /* 91 */ {"var91", "undefined"}, - /* 92 */ {"var92", "undefined"}, - /* 93 */ {"var93", "undefined"}, - /* 94 */ {"var94", "undefined"}, - /* 95 */ {"var95", "undefined"}, - /* 96 */ {"var96", "undefined"}, - /* 97 */ {"var97", "undefined"}, - /* 98 */ {"var98", "undefined"}, - /* 99 */ {"var99", "undefined"}, - /* 100 */ {"var100", "undefined"}, - /* 101 */ {"var101", "undefined"}, - /* 102 */ {"var102", "undefined"}, - /* 103 */ {"var103", "undefined"}, - /* 104 */ {"var104", "undefined"}, - /* 105 */ {"var105", "undefined"}, - /* 106 */ {"var106", "undefined"}, - /* 107 */ {"var107", "undefined"}, - /* 108 */ {"var108", "undefined"}, - /* 109 */ {"var109", "undefined"}, - /* 110 */ {"var110", "undefined"}, - /* 111 */ {"var111", "undefined"}, - /* 112 */ {"var112", "undefined"}, - /* 113 */ {"var113", "undefined"}, - /* 114 */ {"var114", "undefined"}, - /* 115 */ {"var115", "undefined"}, - /* 116 */ {"var116", "undefined"}, - /* 117 */ {"var117", "undefined"}, - /* 118 */ {"var118", "undefined"}, - /* 119 */ {"var119", "undefined"}, - /* 120 */ {"var120", "undefined"}, - /* 121 */ {"var121", "undefined"}, - /* 122 */ {"var122", "undefined"}, - /* 123 */ {"var123", "undefined"}, - /* 124 */ {"var124", "undefined"}, - /* 125 */ {"var125", "undefined"}, - /* 126 */ {"var126", "undefined"}, - /* 127 */ {"var127", "undefined"}, - /* 128 */ {"var128", "undefined"}, - /* 129 */ {"var129", "Ocean potential temperature [deg C]"}, - /* 130 */ {"var130", "Ocean salinity [psu]"}, - /* 131 */ {"var131", "Ocean potential density [kg m**-3 -1000]"}, - /* 132 */ {"var132", "undefined"}, - /* 133 */ {"var133", "Ocean U velocity [m s**-1]"}, - /* 134 */ {"var134", "Ocean V velocity [m s**-1]"}, - /* 135 */ {"var135", "Ocean W velocity [m s**-1]"}, - /* 136 */ {"var136", "undefined"}, - /* 137 */ {"var137", "Richardson number []"}, - /* 138 */ {"var138", "undefined"}, - /* 139 */ {"var139", "U*V product [m s**-2]"}, - /* 140 */ {"var140", "U*T product [m s**-1 deg C]"}, - /* 141 */ {"var141", "V*T product [m s**-1 deg C]"}, - /* 142 */ {"var142", "U*U product [m s**-2]"}, - /* 143 */ {"var143", "V*V product [m s**-2]"}, - /* 144 */ {"var144", "UV - U~V~ [m s**-2]"}, - /* 145 */ {"var145", "UT - U~T~ [m s**-1 deg C]"}, - /* 146 */ {"var146", "VT - V~T~ [m s**-1 deg C]"}, - /* 147 */ {"var147", "UU - U~U~ [m s**-2]"}, - /* 148 */ {"var148", "VV - V~V~ [m s**-2]"}, - /* 149 */ {"var149", "undefined"}, - /* 150 */ {"var150", "undefined"}, - /* 151 */ {"var151", "undefined"}, - /* 152 */ {"var152", "Sea level [m]"}, - /* 153 */ {"var153", "Barotropic stream function []"}, - /* 154 */ {"var154", "Mixed layer depth [m]"}, - /* 155 */ {"var155", "Depth [m]"}, - /* 156 */ {"var156", "undefined"}, - /* 157 */ {"var157", "undefined"}, - /* 158 */ {"var158", "undefined"}, - /* 159 */ {"var159", "undefined"}, - /* 160 */ {"var160", "undefined"}, - /* 161 */ {"var161", "undefined"}, - /* 162 */ {"var162", "undefined"}, - /* 163 */ {"var163", "undefined"}, - /* 164 */ {"var164", "undefined"}, - /* 165 */ {"var165", "undefined"}, - /* 166 */ {"var166", "undefined"}, - /* 167 */ {"var167", "undefined"}, - /* 168 */ {"var168", "U stress [Pa]"}, - /* 169 */ {"var169", "V stress [Pa]"}, - /* 170 */ {"var170", "Turbulent kinetic energy input []"}, - /* 171 */ {"var171", "Net surface heat flux []"}, - /* 172 */ {"var172", "Surface solar radiation []"}, - /* 173 */ {"var173", "P-E []"}, - /* 174 */ {"var174", "undefined"}, - /* 175 */ {"var175", "undefined"}, - /* 176 */ {"var176", "undefined"}, - /* 177 */ {"var177", "undefined"}, - /* 178 */ {"var178", "undefined"}, - /* 179 */ {"var179", "undefined"}, - /* 180 */ {"var180", "Diagnosed sea surface temperature error [deg C]"}, - /* 181 */ {"var181", "Heat flux correction [W m**-2]"}, - /* 182 */ {"var182", "Observed sea surface temperature [deg C]"}, - /* 183 */ {"var183", "Observed heat flux [W m**-2]"}, - /* 184 */ {"var184", "undefined"}, - /* 185 */ {"var185", "undefined"}, - /* 186 */ {"var186", "undefined"}, - /* 187 */ {"var187", "undefined"}, - /* 188 */ {"var188", "undefined"}, - /* 189 */ {"var189", "undefined"}, - /* 190 */ {"var190", "undefined"}, - /* 191 */ {"var191", "undefined"}, - /* 192 */ {"var192", "undefined"}, - /* 193 */ {"var193", "undefined"}, - /* 194 */ {"var194", "undefined"}, - /* 195 */ {"var195", "undefined"}, - /* 196 */ {"var196", "undefined"}, - /* 197 */ {"var197", "undefined"}, - /* 198 */ {"var198", "undefined"}, - /* 199 */ {"var199", "undefined"}, - /* 200 */ {"var200", "undefined"}, - /* 201 */ {"var201", "undefined"}, - /* 202 */ {"var202", "undefined"}, - /* 203 */ {"var203", "undefined"}, - /* 204 */ {"var204", "undefined"}, - /* 205 */ {"var205", "undefined"}, - /* 206 */ {"var206", "undefined"}, - /* 207 */ {"var207", "undefined"}, - /* 208 */ {"var208", "undefined"}, - /* 209 */ {"var209", "undefined"}, - /* 210 */ {"var210", "undefined"}, - /* 211 */ {"var211", "undefined"}, - /* 212 */ {"var212", "undefined"}, - /* 213 */ {"var213", "undefined"}, - /* 214 */ {"var214", "undefined"}, - /* 215 */ {"var215", "undefined"}, - /* 216 */ {"var216", "undefined"}, - /* 217 */ {"var217", "undefined"}, - /* 218 */ {"var218", "undefined"}, - /* 219 */ {"var219", "undefined"}, - /* 220 */ {"var220", "undefined"}, - /* 221 */ {"var221", "undefined"}, - /* 222 */ {"var222", "undefined"}, - /* 223 */ {"var223", "undefined"}, - /* 224 */ {"var224", "undefined"}, - /* 225 */ {"var225", "undefined"}, - /* 226 */ {"var226", "undefined"}, - /* 227 */ {"var227", "undefined"}, - /* 228 */ {"var228", "undefined"}, - /* 229 */ {"var229", "undefined"}, - /* 230 */ {"var230", "undefined"}, - /* 231 */ {"var231", "undefined"}, - /* 232 */ {"var232", "undefined"}, - /* 233 */ {"var233", "undefined"}, - /* 234 */ {"var234", "undefined"}, - /* 235 */ {"var235", "undefined"}, - /* 236 */ {"var236", "undefined"}, - /* 237 */ {"var237", "undefined"}, - /* 238 */ {"var238", "undefined"}, - /* 239 */ {"var239", "undefined"}, - /* 240 */ {"var240", "undefined"}, - /* 241 */ {"var241", "undefined"}, - /* 242 */ {"var242", "undefined"}, - /* 243 */ {"var243", "undefined"}, - /* 244 */ {"var244", "undefined"}, - /* 245 */ {"var245", "undefined"}, - /* 246 */ {"var246", "undefined"}, - /* 247 */ {"var247", "undefined"}, - /* 248 */ {"var248", "undefined"}, - /* 249 */ {"var249", "undefined"}, - /* 250 */ {"var250", "undefined"}, - /* 251 */ {"var251", "undefined"}, - /* 252 */ {"var252", "undefined"}, - /* 253 */ {"var253", "undefined"}, - /* 254 */ {"var254", "undefined"}, - /* 255 */ {"var255", "Indicates a missing value []"}, -}; - -const struct ParmTable parm_table_ecmwf_151[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"var1", "undefined"}, - /* 2 */ {"var2", "undefined"}, - /* 3 */ {"var3", "undefined"}, - /* 4 */ {"var4", "undefined"}, - /* 5 */ {"var5", "undefined"}, - /* 6 */ {"var6", "undefined"}, - /* 7 */ {"var7", "undefined"}, - /* 8 */ {"var8", "undefined"}, - /* 9 */ {"var9", "undefined"}, - /* 10 */ {"var10", "undefined"}, - /* 11 */ {"var11", "undefined"}, - /* 12 */ {"var12", "undefined"}, - /* 13 */ {"var13", "undefined"}, - /* 14 */ {"var14", "undefined"}, - /* 15 */ {"var15", "undefined"}, - /* 16 */ {"var16", "undefined"}, - /* 17 */ {"var17", "undefined"}, - /* 18 */ {"var18", "undefined"}, - /* 19 */ {"var19", "undefined"}, - /* 20 */ {"var20", "undefined"}, - /* 21 */ {"var21", "undefined"}, - /* 22 */ {"var22", "undefined"}, - /* 23 */ {"var23", "undefined"}, - /* 24 */ {"var24", "undefined"}, - /* 25 */ {"var25", "undefined"}, - /* 26 */ {"var26", "undefined"}, - /* 27 */ {"var27", "undefined"}, - /* 28 */ {"var28", "undefined"}, - /* 29 */ {"var29", "undefined"}, - /* 30 */ {"var30", "undefined"}, - /* 31 */ {"var31", "undefined"}, - /* 32 */ {"var32", "undefined"}, - /* 33 */ {"var33", "undefined"}, - /* 34 */ {"var34", "undefined"}, - /* 35 */ {"var35", "undefined"}, - /* 36 */ {"var36", "undefined"}, - /* 37 */ {"var37", "undefined"}, - /* 38 */ {"var38", "undefined"}, - /* 39 */ {"var39", "undefined"}, - /* 40 */ {"var40", "undefined"}, - /* 41 */ {"var41", "undefined"}, - /* 42 */ {"var42", "undefined"}, - /* 43 */ {"var43", "undefined"}, - /* 44 */ {"var44", "undefined"}, - /* 45 */ {"var45", "undefined"}, - /* 46 */ {"var46", "undefined"}, - /* 47 */ {"var47", "undefined"}, - /* 48 */ {"var48", "undefined"}, - /* 49 */ {"var49", "undefined"}, - /* 50 */ {"var50", "undefined"}, - /* 51 */ {"var51", "undefined"}, - /* 52 */ {"var52", "undefined"}, - /* 53 */ {"var53", "undefined"}, - /* 54 */ {"var54", "undefined"}, - /* 55 */ {"var55", "undefined"}, - /* 56 */ {"var56", "undefined"}, - /* 57 */ {"var57", "undefined"}, - /* 58 */ {"var58", "undefined"}, - /* 59 */ {"var59", "undefined"}, - /* 60 */ {"var60", "undefined"}, - /* 61 */ {"var61", "undefined"}, - /* 62 */ {"var62", "undefined"}, - /* 63 */ {"var63", "undefined"}, - /* 64 */ {"var64", "undefined"}, - /* 65 */ {"var65", "undefined"}, - /* 66 */ {"var66", "undefined"}, - /* 67 */ {"var67", "undefined"}, - /* 68 */ {"var68", "undefined"}, - /* 69 */ {"var69", "undefined"}, - /* 70 */ {"var70", "undefined"}, - /* 71 */ {"var71", "undefined"}, - /* 72 */ {"var72", "undefined"}, - /* 73 */ {"var73", "undefined"}, - /* 74 */ {"var74", "undefined"}, - /* 75 */ {"var75", "undefined"}, - /* 76 */ {"var76", "undefined"}, - /* 77 */ {"var77", "undefined"}, - /* 78 */ {"var78", "undefined"}, - /* 79 */ {"var79", "undefined"}, - /* 80 */ {"var80", "undefined"}, - /* 81 */ {"var81", "undefined"}, - /* 82 */ {"var82", "undefined"}, - /* 83 */ {"var83", "undefined"}, - /* 84 */ {"var84", "undefined"}, - /* 85 */ {"var85", "undefined"}, - /* 86 */ {"var86", "undefined"}, - /* 87 */ {"var87", "undefined"}, - /* 88 */ {"var88", "undefined"}, - /* 89 */ {"var89", "undefined"}, - /* 90 */ {"var90", "undefined"}, - /* 91 */ {"var91", "undefined"}, - /* 92 */ {"var92", "undefined"}, - /* 93 */ {"var93", "undefined"}, - /* 94 */ {"var94", "undefined"}, - /* 95 */ {"var95", "undefined"}, - /* 96 */ {"var96", "undefined"}, - /* 97 */ {"var97", "undefined"}, - /* 98 */ {"var98", "undefined"}, - /* 99 */ {"var99", "undefined"}, - /* 100 */ {"var100", "undefined"}, - /* 101 */ {"var101", "undefined"}, - /* 102 */ {"var102", "undefined"}, - /* 103 */ {"var103", "undefined"}, - /* 104 */ {"var104", "undefined"}, - /* 105 */ {"var105", "undefined"}, - /* 106 */ {"var106", "undefined"}, - /* 107 */ {"var107", "undefined"}, - /* 108 */ {"var108", "undefined"}, - /* 109 */ {"var109", "undefined"}, - /* 110 */ {"var110", "undefined"}, - /* 111 */ {"var111", "undefined"}, - /* 112 */ {"var112", "undefined"}, - /* 113 */ {"var113", "undefined"}, - /* 114 */ {"var114", "undefined"}, - /* 115 */ {"var115", "undefined"}, - /* 116 */ {"var116", "undefined"}, - /* 117 */ {"var117", "undefined"}, - /* 118 */ {"var118", "undefined"}, - /* 119 */ {"var119", "undefined"}, - /* 120 */ {"var120", "undefined"}, - /* 121 */ {"var121", "undefined"}, - /* 122 */ {"var122", "undefined"}, - /* 123 */ {"var123", "undefined"}, - /* 124 */ {"var124", "undefined"}, - /* 125 */ {"var125", "undefined"}, - /* 126 */ {"var126", "undefined"}, - /* 127 */ {"var127", "undefined"}, - /* 128 */ {"var128", "In situ Temperature [deg C]"}, - /* 129 */ {"OCPT", "Ocean potential temperature [deg C]"}, - /* 130 */ {"S", "Salinity [psu]"}, - /* 131 */ {"OCU", "Ocean current zonal component [m s**-1]"}, - /* 132 */ {"OCV", "Ocean current meridional component [m s**-1]"}, - /* 133 */ {"OCW", "Ocean current vertical component [m s**-1]"}, - /* 134 */ {"MST", "Modulus of strain rate tensor [s**-1]"}, - /* 135 */ {"VVS", "Vertical viscosity [m**2 s**-1]"}, - /* 136 */ {"VDF", "Vertical diffusivity [m**2 s**-1]"}, - /* 137 */ {"DEP", "Bottom level Depth [m]"}, - /* 138 */ {"STH", "Sigma-theta [kg m**-3]"}, - /* 139 */ {"RN", "Richardson number []"}, - /* 140 */ {"UV", "UV product [m**2 s**-2]"}, - /* 141 */ {"UT", "UT product [m s**-1 degC]"}, - /* 142 */ {"VT", "VT product [m s**-1 deg C]"}, - /* 143 */ {"UU", "UU product [m**2 s**-2]"}, - /* 144 */ {"VV", "VV product [m**2 s**-2]"}, - /* 145 */ {"SL", "Sea level [m]"}, - /* 146 */ {"SL_1", "Sea level previous timestep [m]"}, - /* 147 */ {"BSF", "Barotropic stream function [m**3 s**-1]"}, - /* 148 */ {"MLD", "Mixed layer depth [m]"}, - /* 149 */ {"BTP", "Bottom Pressure (equivalent height) [m]"}, - /* 150 */ {"SH", "Steric height [m]"}, - /* 151 */ {"CRL", "Curl of Wind Stress [N m**-3]"}, - /* 152 */ {"var152", "Divergence of wind stress [Nm**-3]"}, - /* 153 */ {"TAX", "U stress [N m**-2]"}, - /* 154 */ {"TAY", "V stress [N m**-2]"}, - /* 155 */ {"TKI", "Turbulent kinetic energy input [W m**-2]"}, - /* 156 */ {"NSF", "Net surface heat flux [W m**-2]"}, - /* 157 */ {"ASR", "Absorbed solar radiation [W m**-2]"}, - /* 158 */ {"PME", "Precipitation - evaporation [m s**-1]"}, - /* 159 */ {"SST", "Specified sea surface temperature [deg C]"}, - /* 160 */ {"SHF", "Specified surface heat flux [W m**-2]"}, - /* 161 */ {"DTE", "Diagnosed sea surface temperature error [deg C]"}, - /* 162 */ {"HFC", "Heat flux correction [W m**-2]"}, - /* 163 */ {"20D", "20 degrees isotherm depth [m]"}, - /* 164 */ {"TAV300", "Average potential temperature in the upper 300m [degrees C]"}, - /* 165 */ {"UBA1", "Vertically integrated zonal velocity (previous time step) [m**2 s**-1]"}, - /* 166 */ {"VBA1", "Vertically Integrated meridional velocity (previous time step) [m**2 s**-1]"}, - /* 167 */ {"ZTR", "Vertically integrated zonal volume transport [m**2 s**-1]"}, - /* 168 */ {"MTR", "Vertically integrated meridional volume transport [m**2 s**-1]"}, - /* 169 */ {"ZHT", "Vertically integrated zonal heat transport [J m**-1 s**-1]"}, - /* 170 */ {"MHT", "Vertically integrated meridional heat transport [J m**-1 s**-1]"}, - /* 171 */ {"UMAX", "U velocity maximum [m s**-1]"}, - /* 172 */ {"DUMAX", "Depth of the velocity maximum [m]"}, - /* 173 */ {"SMAX", "Salinity maximum [psu]"}, - /* 174 */ {"DSMAX", "Depth of salinity maximum [m]"}, - /* 175 */ {"SAV300", "Average salinity in the upper 300m [psu]"}, - /* 176 */ {"LDP", "Layer Thickness at scalar points [m]"}, - /* 177 */ {"LDU", "Layer Thickness at vector points [m]"}, - /* 178 */ {"PTI", "Potential temperature increment [deg C]"}, - /* 179 */ {"PTAE", "Potential temperature analysis error [deg C]"}, - /* 180 */ {"BPT", "Background potential temperature [deg C]"}, - /* 181 */ {"APT", "Analysed potential temperature [deg C]"}, - /* 182 */ {"PTBE", "Potential temperature background error [deg C]"}, - /* 183 */ {"AS", "Analysed salinity [psu]"}, - /* 184 */ {"SALI", "Salinity increment [psu]"}, - /* 185 */ {"EBT", "Estimated Bias in Temperature [deg C]"}, - /* 186 */ {"EBS", "Estimated Bias in Salinity [psu]"}, - /* 187 */ {"UVI", "Zonal Velocity increment (from balance operator) [m/s per time step]"}, - /* 188 */ {"VVI", "Meridional Velocity increment (from balance operator) []"}, - /* 189 */ {"var189", "undefined"}, - /* 190 */ {"SUBI", "Salinity increment (from salinity data) [psu per time step]"}, - /* 191 */ {"SALE", "Salinity analysis error [psu]"}, - /* 192 */ {"BSAL", "Background Salinity [psu]"}, - /* 193 */ {"var193", "Reserved []"}, - /* 194 */ {"SALBE", "Salinity background error [psu]"}, - /* 195 */ {"var195", "undefined"}, - /* 196 */ {"var196", "undefined"}, - /* 197 */ {"var197", "undefined"}, - /* 198 */ {"var198", "undefined"}, - /* 199 */ {"EBTA", "Estimated temperature bias from assimilation [deg C]"}, - /* 200 */ {"EBSA", "Estimated salinity bias from assimilation [psu]"}, - /* 201 */ {"LTI", "Temperature increment from relaxation term [deg C per time step]"}, - /* 202 */ {"LSI", "Salinity increment from relaxation term []"}, - /* 203 */ {"BZPGA", "Bias in the zonal pressure gradient (applied) [Pa**m-1]"}, - /* 204 */ {"BMPGA", "Bias in the meridional pressure gradient (applied) [Pa**m-1]"}, - /* 205 */ {"EBTL", "Estimated temperature bias from relaxation [deg C]"}, - /* 206 */ {"EBSL", "Estimated salinity bias from relaxation [psu]"}, - /* 207 */ {"FGBT", "First guess bias in temperature [deg C]"}, - /* 208 */ {"FGBS", "First guess bias in salinity [psu]"}, - /* 209 */ {"BPA", "Applied bias in pressure [Pa]"}, - /* 210 */ {"FGBP", "FG bias in pressure [Pa]"}, - /* 211 */ {"PTA", "Bias in temperature(applied) [deg C]"}, - /* 212 */ {"PSA", "Bias in salinity (applied) [psu]"}, - /* 213 */ {"var213", "undefined"}, - /* 214 */ {"var214", "undefined"}, - /* 215 */ {"var215", "undefined"}, - /* 216 */ {"var216", "undefined"}, - /* 217 */ {"var217", "undefined"}, - /* 218 */ {"var218", "undefined"}, - /* 219 */ {"var219", "undefined"}, - /* 220 */ {"var220", "undefined"}, - /* 221 */ {"var221", "undefined"}, - /* 222 */ {"var222", "undefined"}, - /* 223 */ {"var223", "undefined"}, - /* 224 */ {"var224", "undefined"}, - /* 225 */ {"var225", "undefined"}, - /* 226 */ {"var226", "undefined"}, - /* 227 */ {"var227", "undefined"}, - /* 228 */ {"var228", "undefined"}, - /* 229 */ {"var229", "undefined"}, - /* 230 */ {"var230", "undefined"}, - /* 231 */ {"var231", "undefined"}, - /* 232 */ {"var232", "undefined"}, - /* 233 */ {"var233", "undefined"}, - /* 234 */ {"var234", "undefined"}, - /* 235 */ {"var235", "undefined"}, - /* 236 */ {"var236", "undefined"}, - /* 237 */ {"var237", "undefined"}, - /* 238 */ {"var238", "undefined"}, - /* 239 */ {"var239", "undefined"}, - /* 240 */ {"var240", "undefined"}, - /* 241 */ {"var241", "undefined"}, - /* 242 */ {"var242", "undefined"}, - /* 243 */ {"var243", "undefined"}, - /* 244 */ {"var244", "undefined"}, - /* 245 */ {"var245", "undefined"}, - /* 246 */ {"var246", "undefined"}, - /* 247 */ {"var247", "undefined"}, - /* 248 */ {"var248", "undefined"}, - /* 249 */ {"var249", "undefined"}, - /* 250 */ {"var250", "undefined"}, - /* 251 */ {"var251", "undefined"}, - /* 252 */ {"var252", "undefined"}, - /* 253 */ {"var253", "undefined"}, - /* 254 */ {"var254", "undefined"}, - /* 255 */ {"var255", " []"}, -}; - -const struct ParmTable parm_table_ecmwf_160[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"var1", "undefined"}, - /* 2 */ {"var2", "undefined"}, - /* 3 */ {"var3", "undefined"}, - /* 4 */ {"var4", "undefined"}, - /* 5 */ {"var5", "undefined"}, - /* 6 */ {"var6", "undefined"}, - /* 7 */ {"var7", "undefined"}, - /* 8 */ {"var8", "undefined"}, - /* 9 */ {"var9", "undefined"}, - /* 10 */ {"var10", "undefined"}, - /* 11 */ {"var11", "undefined"}, - /* 12 */ {"var12", "undefined"}, - /* 13 */ {"var13", "undefined"}, - /* 14 */ {"var14", "undefined"}, - /* 15 */ {"var15", "undefined"}, - /* 16 */ {"var16", "undefined"}, - /* 17 */ {"var17", "undefined"}, - /* 18 */ {"var18", "undefined"}, - /* 19 */ {"var19", "undefined"}, - /* 20 */ {"var20", "undefined"}, - /* 21 */ {"var21", "undefined"}, - /* 22 */ {"var22", "undefined"}, - /* 23 */ {"var23", "undefined"}, - /* 24 */ {"var24", "undefined"}, - /* 25 */ {"var25", "undefined"}, - /* 26 */ {"var26", "undefined"}, - /* 27 */ {"var27", "undefined"}, - /* 28 */ {"var28", "undefined"}, - /* 29 */ {"var29", "undefined"}, - /* 30 */ {"var30", "undefined"}, - /* 31 */ {"var31", "undefined"}, - /* 32 */ {"var32", "undefined"}, - /* 33 */ {"var33", "undefined"}, - /* 34 */ {"var34", "undefined"}, - /* 35 */ {"var35", "undefined"}, - /* 36 */ {"var36", "undefined"}, - /* 37 */ {"var37", "undefined"}, - /* 38 */ {"var38", "undefined"}, - /* 39 */ {"var39", "undefined"}, - /* 40 */ {"var40", "undefined"}, - /* 41 */ {"var41", "undefined"}, - /* 42 */ {"var42", "undefined"}, - /* 43 */ {"var43", "undefined"}, - /* 44 */ {"var44", "undefined"}, - /* 45 */ {"var45", "undefined"}, - /* 46 */ {"var46", "undefined"}, - /* 47 */ {"var47", "undefined"}, - /* 48 */ {"var48", "undefined"}, - /* 49 */ {"10FG", "10 metre wind gust during averaging time [m s**-1]"}, - /* 50 */ {"var50", "undefined"}, - /* 51 */ {"var51", "undefined"}, - /* 52 */ {"var52", "undefined"}, - /* 53 */ {"var53", "undefined"}, - /* 54 */ {"var54", "undefined"}, - /* 55 */ {"var55", "undefined"}, - /* 56 */ {"var56", "undefined"}, - /* 57 */ {"var57", "undefined"}, - /* 58 */ {"var58", "undefined"}, - /* 59 */ {"var59", "undefined"}, - /* 60 */ {"var60", "undefined"}, - /* 61 */ {"var61", "undefined"}, - /* 62 */ {"var62", "undefined"}, - /* 63 */ {"var63", "undefined"}, - /* 64 */ {"var64", "undefined"}, - /* 65 */ {"var65", "undefined"}, - /* 66 */ {"var66", "undefined"}, - /* 67 */ {"var67", "undefined"}, - /* 68 */ {"var68", "undefined"}, - /* 69 */ {"var69", "undefined"}, - /* 70 */ {"var70", "undefined"}, - /* 71 */ {"var71", "undefined"}, - /* 72 */ {"var72", "undefined"}, - /* 73 */ {"var73", "undefined"}, - /* 74 */ {"var74", "undefined"}, - /* 75 */ {"var75", "undefined"}, - /* 76 */ {"var76", "undefined"}, - /* 77 */ {"var77", "undefined"}, - /* 78 */ {"var78", "undefined"}, - /* 79 */ {"var79", "undefined"}, - /* 80 */ {"var80", "undefined"}, - /* 81 */ {"var81", "undefined"}, - /* 82 */ {"var82", "undefined"}, - /* 83 */ {"var83", "undefined"}, - /* 84 */ {"var84", "undefined"}, - /* 85 */ {"var85", "undefined"}, - /* 86 */ {"var86", "undefined"}, - /* 87 */ {"var87", "undefined"}, - /* 88 */ {"var88", "undefined"}, - /* 89 */ {"var89", "undefined"}, - /* 90 */ {"var90", "undefined"}, - /* 91 */ {"var91", "undefined"}, - /* 92 */ {"var92", "undefined"}, - /* 93 */ {"var93", "undefined"}, - /* 94 */ {"var94", "undefined"}, - /* 95 */ {"var95", "undefined"}, - /* 96 */ {"var96", "undefined"}, - /* 97 */ {"var97", "undefined"}, - /* 98 */ {"var98", "undefined"}, - /* 99 */ {"var99", "undefined"}, - /* 100 */ {"var100", "undefined"}, - /* 101 */ {"var101", "undefined"}, - /* 102 */ {"var102", "undefined"}, - /* 103 */ {"var103", "undefined"}, - /* 104 */ {"var104", "undefined"}, - /* 105 */ {"var105", "undefined"}, - /* 106 */ {"var106", "undefined"}, - /* 107 */ {"var107", "undefined"}, - /* 108 */ {"var108", "undefined"}, - /* 109 */ {"var109", "undefined"}, - /* 110 */ {"var110", "undefined"}, - /* 111 */ {"var111", "undefined"}, - /* 112 */ {"var112", "undefined"}, - /* 113 */ {"var113", "undefined"}, - /* 114 */ {"var114", "undefined"}, - /* 115 */ {"var115", "undefined"}, - /* 116 */ {"var116", "undefined"}, - /* 117 */ {"var117", "undefined"}, - /* 118 */ {"var118", "undefined"}, - /* 119 */ {"var119", "undefined"}, - /* 120 */ {"var120", "undefined"}, - /* 121 */ {"var121", "undefined"}, - /* 122 */ {"var122", "undefined"}, - /* 123 */ {"var123", "undefined"}, - /* 124 */ {"var124", "undefined"}, - /* 125 */ {"var125", "undefined"}, - /* 126 */ {"var126", "undefined"}, - /* 127 */ {"AT", "Atmospheric tide []"}, - /* 128 */ {"BV", "Budget values []"}, - /* 129 */ {"Z", "Geopotential [m**2 s**-2]"}, - /* 130 */ {"T", "Temperature [K]"}, - /* 131 */ {"U", "U velocity [m s**-1]"}, - /* 132 */ {"V", "V velocity [m s**-1]"}, - /* 133 */ {"Q", "Specific humidity [kg kg**-1]"}, - /* 134 */ {"SP", "Surface pressure [Pa]"}, - /* 135 */ {"W", "Vertical velocity [Pa s**-1]"}, - /* 136 */ {"TCW", "Total column water [kg m**-2]"}, - /* 137 */ {"PWC", "Precipitable water content [kg m**-2]"}, - /* 138 */ {"VO", "Vorticity (relative) [s**-1]"}, - /* 139 */ {"STL1", "Soil temperature level 1 [K]"}, - /* 140 */ {"SWL1", "Soil wetness level 1 [m]"}, - /* 141 */ {"SD", "Snow depth [m of water]"}, - /* 142 */ {"LSP", "Large-scale precipitation [kg m**-2 s**-1]"}, - /* 143 */ {"CP", "Convective precipitation [kg m**-2 s**-1]"}, - /* 144 */ {"SF", "Snowfall [kg m**-2 s**-1]"}, - /* 145 */ {"BLD", "Boundary layer dissipation [W m**-2]"}, - /* 146 */ {"SSHF", "Surface sensible heat flux [W m**-2]"}, - /* 147 */ {"SLHF", "Surface latent heat flux [W m**-2]"}, - /* 148 */ {"var148", "undefined"}, - /* 149 */ {"var149", "undefined"}, - /* 150 */ {"var150", "undefined"}, - /* 151 */ {"MSL", "Mean sea level pressure [Pa]"}, - /* 152 */ {"LNSP", "Logarithm of surface pressure []"}, - /* 153 */ {"var153", "undefined"}, - /* 154 */ {"var154", "undefined"}, - /* 155 */ {"D", "Divergence [s**-1]"}, - /* 156 */ {"GH", "Height [m]"}, - /* 157 */ {"R", "Relative humidity [(0 - 1)]"}, - /* 158 */ {"TSP", "Tendency of surface pressure [Pa s**-1]"}, - /* 159 */ {"var159", "undefined"}, - /* 160 */ {"var160", "undefined"}, - /* 161 */ {"var161", "undefined"}, - /* 162 */ {"var162", "undefined"}, - /* 163 */ {"var163", "undefined"}, - /* 164 */ {"TCC", "Total cloud cover [(0 - 1)]"}, - /* 165 */ {"10U", "10 metre U wind component [m s**-1]"}, - /* 166 */ {"10V", "10 metre V wind component [m s**-1]"}, - /* 167 */ {"2T", "2 metre temperature [K]"}, - /* 168 */ {"2D", "2 metre dewpoint temperature [K]"}, - /* 169 */ {"var169", "undefined"}, - /* 170 */ {"STL2", "Soil temperature level 2 [K]"}, - /* 171 */ {"SWL2", "Soil wetness level 2 [m]"}, - /* 172 */ {"LSM", "Land-sea mask [(0 - 1)]"}, - /* 173 */ {"SR", "Surface roughness [m]"}, - /* 174 */ {"AL", "Albedo [(0 - 1)]"}, - /* 175 */ {"var175", "undefined"}, - /* 176 */ {"SSR", "Surface solar radiation [W m**-2]"}, - /* 177 */ {"STR", "Surface thermal radiation [W m**-2]"}, - /* 178 */ {"TSR", "Top solar radiation [W m**-2]"}, - /* 179 */ {"TTR", "Top thermal radiation [W m**-2]"}, - /* 180 */ {"EWSS", "East-West surface stress [N m**-2 s**-1]"}, - /* 181 */ {"NSSS", "North-South surface stress [N m**-2 s**-1]"}, - /* 182 */ {"E", "Evaporation [kg m**-2 s**-1]"}, - /* 183 */ {"STL3", "Soil temperature level 3 [K]"}, - /* 184 */ {"SWL3", "Soil wetness level 3 [m]"}, - /* 185 */ {"CCC", "Convective cloud cover [(0 - 1)]"}, - /* 186 */ {"LCC", "Low cloud cover [(0 - 1)]"}, - /* 187 */ {"MCC", "Medium cloud cover [(0 - 1)]"}, - /* 188 */ {"HCC", "High cloud cover [(0 - 1)]"}, - /* 189 */ {"var189", "undefined"}, - /* 190 */ {"EWOV", "East-West component of sub-gridscale orographic variance [m**2]"}, - /* 191 */ {"NSOV", "North-South component of sub-gridscale orographic variance [m**2]"}, - /* 192 */ {"NWOV", "North-West/South-East component of sub-gridscale orographic variance [m**2]"}, - /* 193 */ {"NEOV", "North-East/South-West component of sub-gridscale orographic variance [m**2]"}, - /* 194 */ {"var194", "undefined"}, - /* 195 */ {"LGWS", "Latitudinal component of gravity wave stress [N m**-2 s]"}, - /* 196 */ {"MGWS", "Meridional component of gravity wave stress [N m**-2 s]"}, - /* 197 */ {"GWD", "Gravity wave dissipation [W m**-2 s]"}, - /* 198 */ {"SRC", "Skin reservoir content [m of water]"}, - /* 199 */ {"VEG", "Percentage of vegetation [%]"}, - /* 200 */ {"VSO", "Variance of sub-gridscale orography [m**2]"}, - /* 201 */ {"MX2T", "Maximum temperature at 2 metres during averaging time [K]"}, - /* 202 */ {"MN2T", "Minimium temperature at 2 metres during averaging time [K]"}, - /* 203 */ {"var203", "undefined"}, - /* 204 */ {"PAW", "Precipitation analysis weights []"}, - /* 205 */ {"RO", "Runoff [kg m**-2 s**-1]"}, - /* 206 */ {"ZZ", "Standard deviation of geopotential [m**2 s**-2]"}, - /* 207 */ {"TZ", "Covariance of temperature and geopotential [K m**2 s**-2]"}, - /* 208 */ {"TT", "Standard deviation of temperature [K]"}, - /* 209 */ {"QZ", "Covariance of specific humidity and geopotential [m**2 s**-2]"}, - /* 210 */ {"QT", "Covariance of specific humidity and temperature [K]"}, - /* 211 */ {"QQ", "Standard deviation of specific humidity [(0 - 1)]"}, - /* 212 */ {"UZ", "Covariance of U component and geopotential [m**3 s**-3]"}, - /* 213 */ {"UT", "Covariance of U component and temperature [K m s**-1]"}, - /* 214 */ {"UQ", "Covariance of U component and specific humidity [m s**-1]"}, - /* 215 */ {"UU", "Standard deviation of U velocity [m s**-1]"}, - /* 216 */ {"VZ", "Covariance of V component and geopotential [m**3 s**-3]"}, - /* 217 */ {"VT", "Covariance of V component and temperature [K m s**-1]"}, - /* 218 */ {"VQ", "Covariance of V component and specific humidity [m s**-1]"}, - /* 219 */ {"VU", "Covariance of V component and U component [m**2 s**-2]"}, - /* 220 */ {"VV", "Standard deviation of V component [m s**-1]"}, - /* 221 */ {"WZ", "Covariance of W component and geopotential [Pa m**2 s**-3]"}, - /* 222 */ {"WT", "Covariance of W component and temperature [K Pa s**-1]"}, - /* 223 */ {"WQ", "Covariance of W component and specific humidity [Pa s**-1]"}, - /* 224 */ {"WU", "Covariance of W component and U component [Pa m s**-2]"}, - /* 225 */ {"WV", "Covariance of W component and V component [Pa m s**-2]"}, - /* 226 */ {"WW", "Standard deviation of vertical velocity [Pa s**-1]"}, - /* 227 */ {"var227", "undefined"}, - /* 228 */ {"TP", "Total precipitation [m]"}, - /* 229 */ {"IEWS", "Instantaneous X surface stress [N m**-2]"}, - /* 230 */ {"INSS", "Instantaneous Y surface stress [N m**-2]"}, - /* 231 */ {"ISHF", "Instantaneous surface heat flux [W m**-2]"}, - /* 232 */ {"IE", "Instantaneous moisture flux [kg m**-2 s**-1]"}, - /* 233 */ {"ASQ", "Apparent surface humidity [kg kg**-1]"}, - /* 234 */ {"LSRH", "Logarithm of surface roughness length for heat []"}, - /* 235 */ {"SKT", "Skin temperature [K]"}, - /* 236 */ {"STL4", "Soil temperature level 4 [K]"}, - /* 237 */ {"SWL4", "Soil wetness level 4 [m]"}, - /* 238 */ {"TSN", "Temperature of snow layer [K]"}, - /* 239 */ {"CSF", "Convective snowfall [kg m**-2 s**-1]"}, - /* 240 */ {"LSF", "Large-scale snowfall [kg m**-2 s**-1]"}, - /* 241 */ {"CLWCER", "Cloud liquid water content [kg kg**-1]"}, - /* 242 */ {"CC", "Cloud cover [(0 - 1)]"}, - /* 243 */ {"FAL", "Forecast albedo []"}, - /* 244 */ {"FSR", "Forecast surface roughness [m]"}, - /* 245 */ {"FLSR", "Forecast logarithm of surface roughness for heat []"}, - /* 246 */ {"10WS", "10 metre wind speed [m s**-1]"}, - /* 247 */ {"MOFL", "Momentum flux [N m**-2]"}, - /* 248 */ {"var248", "undefined"}, - /* 249 */ {"var249", "Gravity wave dissipation flux [W m**-2]"}, - /* 250 */ {"var250", "undefined"}, - /* 251 */ {"var251", "undefined"}, - /* 252 */ {"var252", "undefined"}, - /* 253 */ {"var253", "undefined"}, - /* 254 */ {"HSD", "Heaviside beta function [(0 - 1)]"}, - /* 255 */ {"var255", "Indicates a missing value []"}, -}; - -const struct ParmTable parm_table_ecmwf_162[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"var1", "undefined"}, - /* 2 */ {"var2", "undefined"}, - /* 3 */ {"var3", "undefined"}, - /* 4 */ {"var4", "undefined"}, - /* 5 */ {"var5", "undefined"}, - /* 6 */ {"var6", "undefined"}, - /* 7 */ {"var7", "undefined"}, - /* 8 */ {"var8", "undefined"}, - /* 9 */ {"var9", "undefined"}, - /* 10 */ {"var10", "undefined"}, - /* 11 */ {"var11", "undefined"}, - /* 12 */ {"var12", "undefined"}, - /* 13 */ {"var13", "undefined"}, - /* 14 */ {"var14", "undefined"}, - /* 15 */ {"var15", "undefined"}, - /* 16 */ {"var16", "undefined"}, - /* 17 */ {"var17", "undefined"}, - /* 18 */ {"var18", "undefined"}, - /* 19 */ {"var19", "undefined"}, - /* 20 */ {"var20", "undefined"}, - /* 21 */ {"var21", "undefined"}, - /* 22 */ {"var22", "undefined"}, - /* 23 */ {"var23", "undefined"}, - /* 24 */ {"var24", "undefined"}, - /* 25 */ {"var25", "undefined"}, - /* 26 */ {"var26", "undefined"}, - /* 27 */ {"var27", "undefined"}, - /* 28 */ {"var28", "undefined"}, - /* 29 */ {"var29", "undefined"}, - /* 30 */ {"var30", "undefined"}, - /* 31 */ {"var31", "undefined"}, - /* 32 */ {"var32", "undefined"}, - /* 33 */ {"var33", "undefined"}, - /* 34 */ {"var34", "undefined"}, - /* 35 */ {"var35", "undefined"}, - /* 36 */ {"var36", "undefined"}, - /* 37 */ {"var37", "undefined"}, - /* 38 */ {"var38", "undefined"}, - /* 39 */ {"var39", "undefined"}, - /* 40 */ {"var40", "undefined"}, - /* 41 */ {"var41", "undefined"}, - /* 42 */ {"var42", "undefined"}, - /* 43 */ {"var43", "undefined"}, - /* 44 */ {"var44", "undefined"}, - /* 45 */ {"var45", "undefined"}, - /* 46 */ {"var46", "undefined"}, - /* 47 */ {"var47", "undefined"}, - /* 48 */ {"var48", "undefined"}, - /* 49 */ {"var49", "undefined"}, - /* 50 */ {"var50", "undefined"}, - /* 51 */ {"var51", "Surface geopotential [m**2 s**-2]"}, - /* 52 */ {"var52", "Surface pressure [Pa]"}, - /* 53 */ {"var53", "Vertical integral of mass of atmosphere [kg m**-2]"}, - /* 54 */ {"var54", "Vertical integral of temperature [K kg m**-2]"}, - /* 55 */ {"var55", "Vertical integral of total column water vapour [kg m**-2]"}, - /* 56 */ {"var56", "Vertical integral of total column liquid cloud water [kg m**-2]"}, - /* 57 */ {"var57", "Vertical integral of total column frozen cloud water [kg m**-2]"}, - /* 58 */ {"var58", "Vertical integral of total column ozone [kg m**-2]"}, - /* 59 */ {"var59", "Vertical integral of kinetic energy [J m**-2]"}, - /* 60 */ {"var60", "Vertical integral of thermal energy [J m**-2]"}, - /* 61 */ {"var61", "Vertical integral of dry static energy [J m**-2]"}, - /* 62 */ {"var62", "Vertical integral of moist static energy [J m**-2]"}, - /* 63 */ {"var63", "Vertical integral of total energy [J m**-2]"}, - /* 64 */ {"var64", "Vertical integral of energy conversion [W m**-2]"}, - /* 65 */ {"var65", "Vertical integral of eastward mass flux [kg m**-1 s**-1]"}, - /* 66 */ {"var66", "Vertical integral of northward mass flux [kg m**-1 s**-1]"}, - /* 67 */ {"var67", "Vertical integral of eastward kinetic energy flux [W m**-2]"}, - /* 68 */ {"var68", "Vertical integral of northward kinetic energy flux [W m**-2]"}, - /* 69 */ {"var69", "Vertical integral of eastward heat flux [W m**-2]"}, - /* 70 */ {"var70", "Vertical integral of northward heat flux [W m**-2]"}, - /* 71 */ {"var71", "Vertical integral of eastward water vapour flux [kg m**-1 s**-1]"}, - /* 72 */ {"var72", "Vertical integral of northward water vapour flux [kg m**-1 s**-1]"}, - /* 73 */ {"var73", "Vertical integral of eastward geopotential flux [W m**-2]"}, - /* 74 */ {"var74", "Vertical integral of northward geopotential flux [W m**-2]"}, - /* 75 */ {"var75", "Vertical integral of eastward total energy flux [W m**-2]"}, - /* 76 */ {"var76", "Vertical integral of northward total energy flux [W m**-2]"}, - /* 77 */ {"var77", "Vertical integral of eastward ozone flux [kg m**-1 s**-1]"}, - /* 78 */ {"var78", "Vertical integral of northward ozone flux [kg m**-1 s**-1]"}, - /* 79 */ {"var79", "undefined"}, - /* 80 */ {"var80", "undefined"}, - /* 81 */ {"var81", "Vertical integral of divergence of mass flux [kg m**-2 s**-1]"}, - /* 82 */ {"var82", "Vertical integral of divergence of kinetic energy flux [W m**-2]"}, - /* 83 */ {"var83", "Vertical integral of divergence of thermal energy flux [W m**-2]"}, - /* 84 */ {"var84", "Vertical integral of divergence of moisture flux [kg m**-2 s**-1]"}, - /* 85 */ {"var85", "Vertical integral of divergence of geopotential flux [W m**-2]"}, - /* 86 */ {"var86", "Vertical integral of divergence of total energy flux [W m**-2]"}, - /* 87 */ {"var87", "Vertical integral of divergence of ozone flux [kg m**-2 s**-1]"}, - /* 88 */ {"var88", "undefined"}, - /* 89 */ {"var89", "undefined"}, - /* 90 */ {"var90", "undefined"}, - /* 91 */ {"var91", "undefined"}, - /* 92 */ {"var92", "undefined"}, - /* 93 */ {"var93", "undefined"}, - /* 94 */ {"var94", "undefined"}, - /* 95 */ {"var95", "undefined"}, - /* 96 */ {"var96", "undefined"}, - /* 97 */ {"var97", "undefined"}, - /* 98 */ {"var98", "undefined"}, - /* 99 */ {"var99", "undefined"}, - /* 100 */ {"var100", "Tendency of short wave radiation [K]"}, - /* 101 */ {"var101", "Tendency of long wave radiation [K]"}, - /* 102 */ {"var102", "Tendency of clear sky short wave radiation [K]"}, - /* 103 */ {"var103", "Tendency of clear sky long wave radiation [K]"}, - /* 104 */ {"var104", "Updraught mass flux [kg m**-2]"}, - /* 105 */ {"var105", "Downdraught mass flux [kg m**-2]"}, - /* 106 */ {"var106", "Updraught detrainment rate [kg m**-3]"}, - /* 107 */ {"var107", "Downdraught detrainment rate [kg m**-3]"}, - /* 108 */ {"var108", "Total precipitation flux [kg m**-2]"}, - /* 109 */ {"var109", "Turbulent diffusion coefficient for heat [m**2]"}, - /* 110 */ {"var110", "Tendency of temperature due to physics [K]"}, - /* 111 */ {"var111", "Tendency of specific humidity due to physics [kg kg**-1]"}, - /* 112 */ {"var112", "Tendency of u component due to physics [m s**-1]"}, - /* 113 */ {"var113", "Tendency of v component due to physics [m s**-1]"}, - /* 114 */ {"var114", "undefined"}, - /* 115 */ {"var115", "undefined"}, - /* 116 */ {"var116", "undefined"}, - /* 117 */ {"var117", "undefined"}, - /* 118 */ {"var118", "undefined"}, - /* 119 */ {"var119", "undefined"}, - /* 120 */ {"var120", "undefined"}, - /* 121 */ {"var121", "undefined"}, - /* 122 */ {"var122", "undefined"}, - /* 123 */ {"var123", "undefined"}, - /* 124 */ {"var124", "undefined"}, - /* 125 */ {"var125", "undefined"}, - /* 126 */ {"var126", "undefined"}, - /* 127 */ {"var127", "undefined"}, - /* 128 */ {"var128", "undefined"}, - /* 129 */ {"var129", "undefined"}, - /* 130 */ {"var130", "undefined"}, - /* 131 */ {"var131", "undefined"}, - /* 132 */ {"var132", "undefined"}, - /* 133 */ {"var133", "undefined"}, - /* 134 */ {"var134", "undefined"}, - /* 135 */ {"var135", "undefined"}, - /* 136 */ {"var136", "undefined"}, - /* 137 */ {"var137", "undefined"}, - /* 138 */ {"var138", "undefined"}, - /* 139 */ {"var139", "undefined"}, - /* 140 */ {"var140", "undefined"}, - /* 141 */ {"var141", "undefined"}, - /* 142 */ {"var142", "undefined"}, - /* 143 */ {"var143", "undefined"}, - /* 144 */ {"var144", "undefined"}, - /* 145 */ {"var145", "undefined"}, - /* 146 */ {"var146", "undefined"}, - /* 147 */ {"var147", "undefined"}, - /* 148 */ {"var148", "undefined"}, - /* 149 */ {"var149", "undefined"}, - /* 150 */ {"var150", "undefined"}, - /* 151 */ {"var151", "undefined"}, - /* 152 */ {"var152", "undefined"}, - /* 153 */ {"var153", "undefined"}, - /* 154 */ {"var154", "undefined"}, - /* 155 */ {"var155", "undefined"}, - /* 156 */ {"var156", "undefined"}, - /* 157 */ {"var157", "undefined"}, - /* 158 */ {"var158", "undefined"}, - /* 159 */ {"var159", "undefined"}, - /* 160 */ {"var160", "undefined"}, - /* 161 */ {"var161", "undefined"}, - /* 162 */ {"var162", "undefined"}, - /* 163 */ {"var163", "undefined"}, - /* 164 */ {"var164", "undefined"}, - /* 165 */ {"var165", "undefined"}, - /* 166 */ {"var166", "undefined"}, - /* 167 */ {"var167", "undefined"}, - /* 168 */ {"var168", "undefined"}, - /* 169 */ {"var169", "undefined"}, - /* 170 */ {"var170", "undefined"}, - /* 171 */ {"var171", "undefined"}, - /* 172 */ {"var172", "undefined"}, - /* 173 */ {"var173", "undefined"}, - /* 174 */ {"var174", "undefined"}, - /* 175 */ {"var175", "undefined"}, - /* 176 */ {"var176", "undefined"}, - /* 177 */ {"var177", "undefined"}, - /* 178 */ {"var178", "undefined"}, - /* 179 */ {"var179", "undefined"}, - /* 180 */ {"var180", "undefined"}, - /* 181 */ {"var181", "undefined"}, - /* 182 */ {"var182", "undefined"}, - /* 183 */ {"var183", "undefined"}, - /* 184 */ {"var184", "undefined"}, - /* 185 */ {"var185", "undefined"}, - /* 186 */ {"var186", "undefined"}, - /* 187 */ {"var187", "undefined"}, - /* 188 */ {"var188", "undefined"}, - /* 189 */ {"var189", "undefined"}, - /* 190 */ {"var190", "undefined"}, - /* 191 */ {"var191", "undefined"}, - /* 192 */ {"var192", "undefined"}, - /* 193 */ {"var193", "undefined"}, - /* 194 */ {"var194", "undefined"}, - /* 195 */ {"var195", "undefined"}, - /* 196 */ {"var196", "undefined"}, - /* 197 */ {"var197", "undefined"}, - /* 198 */ {"var198", "undefined"}, - /* 199 */ {"var199", "undefined"}, - /* 200 */ {"var200", "undefined"}, - /* 201 */ {"var201", "undefined"}, - /* 202 */ {"var202", "undefined"}, - /* 203 */ {"var203", "undefined"}, - /* 204 */ {"var204", "undefined"}, - /* 205 */ {"var205", "undefined"}, - /* 206 */ {"var206", "Variance of geopotential [m**4 s**-4]"}, - /* 207 */ {"var207", "Covariance of geopotential/temperature [m**2 K s**-2]"}, - /* 208 */ {"var208", "Variance of temperature [K**2]"}, - /* 209 */ {"var209", "Covariance of geopotential/specific humidity [m**2 s**-2]"}, - /* 210 */ {"var210", "Covariance of temperature/specific humidity [K]"}, - /* 211 */ {"var211", "Variance of specific humidity []"}, - /* 212 */ {"var212", "Covariance of u component/geopotential [M**3 s**-3]"}, - /* 213 */ {"var213", "Covariance of u component/temperature [m s**-1 K]"}, - /* 214 */ {"var214", "Covariance of u component/specific humidity [m s**-1]"}, - /* 215 */ {"var215", "Variance of u component [m**2 s**-2]"}, - /* 216 */ {"var216", "Covariance of v component/geopotential [M**3 s**-3]"}, - /* 217 */ {"var217", "Covariance of v component/temperaure [m s**-1 K]"}, - /* 218 */ {"var218", "Covariance of v component/specific humidity [m s**-1]"}, - /* 219 */ {"var219", "Covariance of v component/u component [m**2 s**-2]"}, - /* 220 */ {"var220", "Variance of v component [m**2 s**-2]"}, - /* 221 */ {"var221", "Covariance of omega/geopotential [m**2 Pa s**-3]"}, - /* 222 */ {"var222", "Covariance of omega/temperature [Pa s**-1 K]"}, - /* 223 */ {"var223", "Covariance of omega/specific humidity [Pa s**-1]"}, - /* 224 */ {"var224", "Covariance of omega/u component [m Pa s**-2]"}, - /* 225 */ {"var225", "Covariance of omega/v component [m Pa s**-2]"}, - /* 226 */ {"var226", "Variance of omega [Pa**2 s**-2]"}, - /* 227 */ {"var227", "Variance of surface pressure [Pa**2]"}, - /* 228 */ {"var228", "undefined"}, - /* 229 */ {"var229", "Variance of relative humidity [dimensionless]"}, - /* 230 */ {"var230", "Covariance of u component/ozone [m s**-1]"}, - /* 231 */ {"var231", "Covariance of v component/ozone [m s**-1]"}, - /* 232 */ {"var232", "Covariance of omega/ozone [Pa s**-1]"}, - /* 233 */ {"var233", "Variance of ozone [dimensionless]"}, - /* 234 */ {"var234", "undefined"}, - /* 235 */ {"var235", "undefined"}, - /* 236 */ {"var236", "undefined"}, - /* 237 */ {"var237", "undefined"}, - /* 238 */ {"var238", "undefined"}, - /* 239 */ {"var239", "undefined"}, - /* 240 */ {"var240", "undefined"}, - /* 241 */ {"var241", "undefined"}, - /* 242 */ {"var242", "undefined"}, - /* 243 */ {"var243", "undefined"}, - /* 244 */ {"var244", "undefined"}, - /* 245 */ {"var245", "undefined"}, - /* 246 */ {"var246", "undefined"}, - /* 247 */ {"var247", "undefined"}, - /* 248 */ {"var248", "undefined"}, - /* 249 */ {"var249", "undefined"}, - /* 250 */ {"var250", "undefined"}, - /* 251 */ {"var251", "undefined"}, - /* 252 */ {"var252", "undefined"}, - /* 253 */ {"var253", "undefined"}, - /* 254 */ {"var254", "undefined"}, - /* 255 */ {"var255", "Indicates a missing value []"}, -}; - -const struct ParmTable parm_table_ecmwf_170[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"var1", "undefined"}, - /* 2 */ {"var2", "undefined"}, - /* 3 */ {"var3", "undefined"}, - /* 4 */ {"var4", "undefined"}, - /* 5 */ {"var5", "undefined"}, - /* 6 */ {"var6", "undefined"}, - /* 7 */ {"var7", "undefined"}, - /* 8 */ {"var8", "undefined"}, - /* 9 */ {"var9", "undefined"}, - /* 10 */ {"var10", "undefined"}, - /* 11 */ {"var11", "undefined"}, - /* 12 */ {"var12", "undefined"}, - /* 13 */ {"var13", "undefined"}, - /* 14 */ {"var14", "undefined"}, - /* 15 */ {"var15", "undefined"}, - /* 16 */ {"var16", "undefined"}, - /* 17 */ {"var17", "undefined"}, - /* 18 */ {"var18", "undefined"}, - /* 19 */ {"var19", "undefined"}, - /* 20 */ {"var20", "undefined"}, - /* 21 */ {"var21", "undefined"}, - /* 22 */ {"var22", "undefined"}, - /* 23 */ {"var23", "undefined"}, - /* 24 */ {"var24", "undefined"}, - /* 25 */ {"var25", "undefined"}, - /* 26 */ {"var26", "undefined"}, - /* 27 */ {"var27", "undefined"}, - /* 28 */ {"var28", "undefined"}, - /* 29 */ {"var29", "undefined"}, - /* 30 */ {"var30", "undefined"}, - /* 31 */ {"var31", "undefined"}, - /* 32 */ {"var32", "undefined"}, - /* 33 */ {"var33", "undefined"}, - /* 34 */ {"var34", "undefined"}, - /* 35 */ {"var35", "undefined"}, - /* 36 */ {"var36", "undefined"}, - /* 37 */ {"var37", "undefined"}, - /* 38 */ {"var38", "undefined"}, - /* 39 */ {"var39", "undefined"}, - /* 40 */ {"var40", "undefined"}, - /* 41 */ {"var41", "undefined"}, - /* 42 */ {"var42", "undefined"}, - /* 43 */ {"var43", "undefined"}, - /* 44 */ {"var44", "undefined"}, - /* 45 */ {"var45", "undefined"}, - /* 46 */ {"var46", "undefined"}, - /* 47 */ {"var47", "undefined"}, - /* 48 */ {"var48", "undefined"}, - /* 49 */ {"var49", "undefined"}, - /* 50 */ {"var50", "undefined"}, - /* 51 */ {"var51", "undefined"}, - /* 52 */ {"var52", "undefined"}, - /* 53 */ {"var53", "undefined"}, - /* 54 */ {"var54", "undefined"}, - /* 55 */ {"var55", "undefined"}, - /* 56 */ {"var56", "undefined"}, - /* 57 */ {"var57", "undefined"}, - /* 58 */ {"var58", "undefined"}, - /* 59 */ {"var59", "undefined"}, - /* 60 */ {"var60", "undefined"}, - /* 61 */ {"var61", "undefined"}, - /* 62 */ {"var62", "undefined"}, - /* 63 */ {"var63", "undefined"}, - /* 64 */ {"var64", "undefined"}, - /* 65 */ {"var65", "undefined"}, - /* 66 */ {"var66", "undefined"}, - /* 67 */ {"var67", "undefined"}, - /* 68 */ {"var68", "undefined"}, - /* 69 */ {"var69", "undefined"}, - /* 70 */ {"var70", "undefined"}, - /* 71 */ {"var71", "undefined"}, - /* 72 */ {"var72", "undefined"}, - /* 73 */ {"var73", "undefined"}, - /* 74 */ {"var74", "undefined"}, - /* 75 */ {"var75", "undefined"}, - /* 76 */ {"var76", "undefined"}, - /* 77 */ {"var77", "undefined"}, - /* 78 */ {"var78", "undefined"}, - /* 79 */ {"var79", "undefined"}, - /* 80 */ {"var80", "undefined"}, - /* 81 */ {"var81", "undefined"}, - /* 82 */ {"var82", "undefined"}, - /* 83 */ {"var83", "undefined"}, - /* 84 */ {"var84", "undefined"}, - /* 85 */ {"var85", "undefined"}, - /* 86 */ {"var86", "undefined"}, - /* 87 */ {"var87", "undefined"}, - /* 88 */ {"var88", "undefined"}, - /* 89 */ {"var89", "undefined"}, - /* 90 */ {"var90", "undefined"}, - /* 91 */ {"var91", "undefined"}, - /* 92 */ {"var92", "undefined"}, - /* 93 */ {"var93", "undefined"}, - /* 94 */ {"var94", "undefined"}, - /* 95 */ {"var95", "undefined"}, - /* 96 */ {"var96", "undefined"}, - /* 97 */ {"var97", "undefined"}, - /* 98 */ {"var98", "undefined"}, - /* 99 */ {"var99", "undefined"}, - /* 100 */ {"var100", "undefined"}, - /* 101 */ {"var101", "undefined"}, - /* 102 */ {"var102", "undefined"}, - /* 103 */ {"var103", "undefined"}, - /* 104 */ {"var104", "undefined"}, - /* 105 */ {"var105", "undefined"}, - /* 106 */ {"var106", "undefined"}, - /* 107 */ {"var107", "undefined"}, - /* 108 */ {"var108", "undefined"}, - /* 109 */ {"var109", "undefined"}, - /* 110 */ {"var110", "undefined"}, - /* 111 */ {"var111", "undefined"}, - /* 112 */ {"var112", "undefined"}, - /* 113 */ {"var113", "undefined"}, - /* 114 */ {"var114", "undefined"}, - /* 115 */ {"var115", "undefined"}, - /* 116 */ {"var116", "undefined"}, - /* 117 */ {"var117", "undefined"}, - /* 118 */ {"var118", "undefined"}, - /* 119 */ {"var119", "undefined"}, - /* 120 */ {"var120", "undefined"}, - /* 121 */ {"var121", "undefined"}, - /* 122 */ {"var122", "undefined"}, - /* 123 */ {"var123", "undefined"}, - /* 124 */ {"var124", "undefined"}, - /* 125 */ {"var125", "undefined"}, - /* 126 */ {"var126", "undefined"}, - /* 127 */ {"var127", "undefined"}, - /* 128 */ {"var128", "undefined"}, - /* 129 */ {"Z", "Geopotential [m**2 s**-2]"}, - /* 130 */ {"T", "Temperature [K]"}, - /* 131 */ {"U", "U velocity [m s**-1]"}, - /* 132 */ {"V", "V velocity [m s**-1]"}, - /* 133 */ {"var133", "undefined"}, - /* 134 */ {"var134", "undefined"}, - /* 135 */ {"var135", "undefined"}, - /* 136 */ {"var136", "undefined"}, - /* 137 */ {"var137", "undefined"}, - /* 138 */ {"VO", "Vorticity (relative) [s**-1]"}, - /* 139 */ {"var139", "undefined"}, - /* 140 */ {"SWL1", "Soil wetness level 1 [m]"}, - /* 141 */ {"SD", "Snow depth [m of water equivalent]"}, - /* 142 */ {"var142", "undefined"}, - /* 143 */ {"var143", "undefined"}, - /* 144 */ {"var144", "undefined"}, - /* 145 */ {"var145", "undefined"}, - /* 146 */ {"var146", "undefined"}, - /* 147 */ {"var147", "undefined"}, - /* 148 */ {"var148", "undefined"}, - /* 149 */ {"TSW", "Total soil moisture [m]"}, - /* 150 */ {"var150", "undefined"}, - /* 151 */ {"MSL", "Mean sea level pressure [Pa]"}, - /* 152 */ {"var152", "undefined"}, - /* 153 */ {"var153", "undefined"}, - /* 154 */ {"var154", "undefined"}, - /* 155 */ {"D", "Divergence [s**-1]"}, - /* 156 */ {"var156", "undefined"}, - /* 157 */ {"var157", "undefined"}, - /* 158 */ {"var158", "undefined"}, - /* 159 */ {"var159", "undefined"}, - /* 160 */ {"var160", "undefined"}, - /* 161 */ {"var161", "undefined"}, - /* 162 */ {"var162", "undefined"}, - /* 163 */ {"var163", "undefined"}, - /* 164 */ {"var164", "undefined"}, - /* 165 */ {"var165", "undefined"}, - /* 166 */ {"var166", "undefined"}, - /* 167 */ {"var167", "undefined"}, - /* 168 */ {"var168", "undefined"}, - /* 169 */ {"var169", "undefined"}, - /* 170 */ {"var170", "undefined"}, - /* 171 */ {"SWL2", "Soil wetness level 2 [m]"}, - /* 172 */ {"var172", "undefined"}, - /* 173 */ {"var173", "undefined"}, - /* 174 */ {"var174", "undefined"}, - /* 175 */ {"var175", "undefined"}, - /* 176 */ {"var176", "undefined"}, - /* 177 */ {"var177", "undefined"}, - /* 178 */ {"var178", "undefined"}, - /* 179 */ {"TTR", "Top thermal radiation [W m-2]"}, - /* 180 */ {"var180", "undefined"}, - /* 181 */ {"var181", "undefined"}, - /* 182 */ {"var182", "undefined"}, - /* 183 */ {"var183", "undefined"}, - /* 184 */ {"SWL3", "Soil wetness level 3 [m]"}, - /* 185 */ {"var185", "undefined"}, - /* 186 */ {"var186", "undefined"}, - /* 187 */ {"var187", "undefined"}, - /* 188 */ {"var188", "undefined"}, - /* 189 */ {"var189", "undefined"}, - /* 190 */ {"var190", "undefined"}, - /* 191 */ {"var191", "undefined"}, - /* 192 */ {"var192", "undefined"}, - /* 193 */ {"var193", "undefined"}, - /* 194 */ {"var194", "undefined"}, - /* 195 */ {"var195", "undefined"}, - /* 196 */ {"var196", "undefined"}, - /* 197 */ {"var197", "undefined"}, - /* 198 */ {"var198", "undefined"}, - /* 199 */ {"var199", "undefined"}, - /* 200 */ {"var200", "undefined"}, - /* 201 */ {"MX2T", "Maximum temperature at 2 metres [K]"}, - /* 202 */ {"MN2T", "Minimum temperature at 2 metres [K]"}, - /* 203 */ {"var203", "undefined"}, - /* 204 */ {"var204", "undefined"}, - /* 205 */ {"var205", "undefined"}, - /* 206 */ {"var206", "undefined"}, - /* 207 */ {"var207", "undefined"}, - /* 208 */ {"var208", "undefined"}, - /* 209 */ {"var209", "undefined"}, - /* 210 */ {"var210", "undefined"}, - /* 211 */ {"var211", "undefined"}, - /* 212 */ {"var212", "undefined"}, - /* 213 */ {"var213", "undefined"}, - /* 214 */ {"var214", "undefined"}, - /* 215 */ {"var215", "undefined"}, - /* 216 */ {"var216", "undefined"}, - /* 217 */ {"var217", "undefined"}, - /* 218 */ {"var218", "undefined"}, - /* 219 */ {"var219", "undefined"}, - /* 220 */ {"var220", "undefined"}, - /* 221 */ {"var221", "undefined"}, - /* 222 */ {"var222", "undefined"}, - /* 223 */ {"var223", "undefined"}, - /* 224 */ {"var224", "undefined"}, - /* 225 */ {"var225", "undefined"}, - /* 226 */ {"var226", "undefined"}, - /* 227 */ {"var227", "undefined"}, - /* 228 */ {"TP", "Total precipitation [m]"}, - /* 229 */ {"var229", "undefined"}, - /* 230 */ {"var230", "undefined"}, - /* 231 */ {"var231", "undefined"}, - /* 232 */ {"var232", "undefined"}, - /* 233 */ {"var233", "undefined"}, - /* 234 */ {"var234", "undefined"}, - /* 235 */ {"var235", "undefined"}, - /* 236 */ {"var236", "undefined"}, - /* 237 */ {"var237", "undefined"}, - /* 238 */ {"var238", "undefined"}, - /* 239 */ {"var239", "undefined"}, - /* 240 */ {"var240", "undefined"}, - /* 241 */ {"var241", "undefined"}, - /* 242 */ {"var242", "undefined"}, - /* 243 */ {"var243", "undefined"}, - /* 244 */ {"var244", "undefined"}, - /* 245 */ {"var245", "undefined"}, - /* 246 */ {"var246", "undefined"}, - /* 247 */ {"var247", "undefined"}, - /* 248 */ {"var248", "undefined"}, - /* 249 */ {"var249", "undefined"}, - /* 250 */ {"var250", "undefined"}, - /* 251 */ {"var251", "undefined"}, - /* 252 */ {"var252", "undefined"}, - /* 253 */ {"var253", "undefined"}, - /* 254 */ {"var254", "undefined"}, - /* 255 */ {"var255", "Indicates a missing value []"}, -}; - -const struct ParmTable parm_table_ecmwf_171[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"STRFA", "Stream function anomaly [m**2 s**-1]"}, - /* 2 */ {"VPOTA", "Velocity potential anomaly [m**2 s**-1]"}, - /* 3 */ {"var3", "Potential temperature [K]"}, - /* 4 */ {"var4", "Equivalent potential temperature [K]"}, - /* 5 */ {"var5", "Saturated equivalent potential temperature [K]"}, - /* 6 */ {"var6", "undefined"}, - /* 7 */ {"var7", "undefined"}, - /* 8 */ {"var8", "undefined"}, - /* 9 */ {"var9", "undefined"}, - /* 10 */ {"var10", "undefined"}, - /* 11 */ {"var11", "U component of divergent wind [m s**-1]"}, - /* 12 */ {"var12", "V component of divergent wind [m s**-1]"}, - /* 13 */ {"var13", "U component of rotational wind [m s**-1]"}, - /* 14 */ {"var14", "V component of rotational wind [m s**-1]"}, - /* 15 */ {"var15", "undefined"}, - /* 16 */ {"var16", "undefined"}, - /* 17 */ {"var17", "undefined"}, - /* 18 */ {"var18", "undefined"}, - /* 19 */ {"var19", "undefined"}, - /* 20 */ {"var20", "undefined"}, - /* 21 */ {"var21", "Unbalanced component of temperature [K]"}, - /* 22 */ {"var22", "Unbalanced component of logarithm of surface pressure []"}, - /* 23 */ {"var23", "Unbalanced component of divergence [s**-1]"}, - /* 24 */ {"var24", "undefined"}, - /* 25 */ {"var25", "undefined"}, - /* 26 */ {"var26", "Lake cover [(0 - 1)]"}, - /* 27 */ {"var27", "Low vegetation cover [(0 - 1)]"}, - /* 28 */ {"var28", "High vegetation cover [(0 - 1)]"}, - /* 29 */ {"var29", "Type of low vegetation []"}, - /* 30 */ {"var30", "Type of high vegetation []"}, - /* 31 */ {"var31", "Sea-ice cover [(0 - 1)]"}, - /* 32 */ {"var32", "Snow albedo [(0 - 1)]"}, - /* 33 */ {"var33", "Snow density [kg m**-3]"}, - /* 34 */ {"var34", "Sea surface temperature [K]"}, - /* 35 */ {"var35", "Ice surface temperature layer 1 [K]"}, - /* 36 */ {"var36", "Ice surface temperature layer 2 [K]"}, - /* 37 */ {"var37", "Ice surface temperature layer 3 [K]"}, - /* 38 */ {"var38", "Ice surface temperature layer 4 [K]"}, - /* 39 */ {"var39", "Volumetric soil water layer 1 [m**3 m**-3]"}, - /* 40 */ {"var40", "Volumetric soil water layer 2 [m**3 m**-3]"}, - /* 41 */ {"var41", "Volumetric soil water layer 3 [m**3 m**-3]"}, - /* 42 */ {"var42", "Volumetric soil water layer 4 [m**3 m**-3]"}, - /* 43 */ {"var43", "Soil type []"}, - /* 44 */ {"var44", "Snow evaporation [m of water]"}, - /* 45 */ {"var45", "Snowmelt [m of water]"}, - /* 46 */ {"var46", "Solar duration [s]"}, - /* 47 */ {"var47", "Direct solar radiation [w m**-2]"}, - /* 48 */ {"var48", "Magnitude of surface stress [N m**-2 s]"}, - /* 49 */ {"var49", "10 metre wind gust [m s**-1]"}, - /* 50 */ {"var50", "Large-scale precipitation fraction [s]"}, - /* 51 */ {"var51", "Maximum 2 metre temperature [K]"}, - /* 52 */ {"var52", "Minimum 2 metre temperature [K]"}, - /* 53 */ {"var53", "Montgomery potential [m**2 s**-2]"}, - /* 54 */ {"var54", "Pressure [Pa]"}, - /* 55 */ {"var55", "Mean 2 metre temperature in past 24 hours [K]"}, - /* 56 */ {"var56", "Mean 2 metre dewpoint temperature in past 24 hours [K]"}, - /* 57 */ {"var57", "Downward UV radiation at the surface [w m**-2]"}, - /* 58 */ {"var58", "Photosynthetically active radiation at the surface [w m**-2]"}, - /* 59 */ {"var59", "Convective available potential energy [J kg**-1]"}, - /* 60 */ {"var60", "Potential vorticity [K m**2 kg**-1 s**-1]"}, - /* 61 */ {"var61", "Total precipitation from observations [Millimetres*100 + number of stations]"}, - /* 62 */ {"var62", "Observation count []"}, - /* 63 */ {"var63", "Start time for skin temperature difference [s]"}, - /* 64 */ {"var64", "Finish time for skin temperature difference [s]"}, - /* 65 */ {"var65", "Skin temperature difference [K]"}, - /* 66 */ {"var66", "undefined"}, - /* 67 */ {"var67", "undefined"}, - /* 68 */ {"var68", "undefined"}, - /* 69 */ {"var69", "undefined"}, - /* 70 */ {"var70", "undefined"}, - /* 71 */ {"var71", "undefined"}, - /* 72 */ {"var72", "undefined"}, - /* 73 */ {"var73", "undefined"}, - /* 74 */ {"var74", "undefined"}, - /* 75 */ {"var75", "undefined"}, - /* 76 */ {"var76", "undefined"}, - /* 77 */ {"var77", "undefined"}, - /* 78 */ {"TCLWA", "Total column liquid water anomaly [kg m**-2]"}, - /* 79 */ {"TCIWA", "Total column ice water anomaly [kg m**-2]"}, - /* 80 */ {"var80", "undefined"}, - /* 81 */ {"var81", "undefined"}, - /* 82 */ {"var82", "undefined"}, - /* 83 */ {"var83", "undefined"}, - /* 84 */ {"var84", "undefined"}, - /* 85 */ {"var85", "undefined"}, - /* 86 */ {"var86", "undefined"}, - /* 87 */ {"var87", "undefined"}, - /* 88 */ {"var88", "undefined"}, - /* 89 */ {"var89", "undefined"}, - /* 90 */ {"var90", "undefined"}, - /* 91 */ {"var91", "undefined"}, - /* 92 */ {"var92", "undefined"}, - /* 93 */ {"var93", "undefined"}, - /* 94 */ {"var94", "undefined"}, - /* 95 */ {"var95", "undefined"}, - /* 96 */ {"var96", "undefined"}, - /* 97 */ {"var97", "undefined"}, - /* 98 */ {"var98", "undefined"}, - /* 99 */ {"var99", "undefined"}, - /* 100 */ {"var100", "undefined"}, - /* 101 */ {"var101", "undefined"}, - /* 102 */ {"var102", "undefined"}, - /* 103 */ {"var103", "undefined"}, - /* 104 */ {"var104", "undefined"}, - /* 105 */ {"var105", "undefined"}, - /* 106 */ {"var106", "undefined"}, - /* 107 */ {"var107", "undefined"}, - /* 108 */ {"var108", "undefined"}, - /* 109 */ {"var109", "undefined"}, - /* 110 */ {"var110", "undefined"}, - /* 111 */ {"var111", "undefined"}, - /* 112 */ {"var112", "undefined"}, - /* 113 */ {"var113", "undefined"}, - /* 114 */ {"var114", "undefined"}, - /* 115 */ {"var115", "undefined"}, - /* 116 */ {"var116", "undefined"}, - /* 117 */ {"var117", "undefined"}, - /* 118 */ {"var118", "undefined"}, - /* 119 */ {"var119", "undefined"}, - /* 120 */ {"var120", "undefined"}, - /* 121 */ {"var121", "undefined"}, - /* 122 */ {"var122", "undefined"}, - /* 123 */ {"var123", "undefined"}, - /* 124 */ {"var124", "undefined"}, - /* 125 */ {"var125", "Vertically integrated total energy [J m**-2]"}, - /* 126 */ {"var126", "Generic parameter for sensitive area prediction [Various]"}, - /* 127 */ {"var127", "Atmospheric tide []"}, - /* 128 */ {"var128", "Budget values []"}, - /* 129 */ {"ZA", "Geopotential anomaly [m**2 s**-2]"}, - /* 130 */ {"TA", "Temperature anomaly [K]"}, - /* 131 */ {"UA", "U velocity anomaly [m s**-1]"}, - /* 132 */ {"VA", "V velocity anomaly [m s**-1]"}, - /* 133 */ {"var133", "Specific humidity [kg kg**-1]"}, - /* 134 */ {"var134", "Surface pressure [Pa]"}, - /* 135 */ {"var135", "Vertical velocity [Pa s**-1]"}, - /* 136 */ {"TCWA", "Total column water [kg m**-2]"}, - /* 137 */ {"TCWVA", "Total column water vapour [kg m**-2]"}, - /* 138 */ {"var138", "Vorticity (relative) [s**-1]"}, - /* 139 */ {"STAL1", "Soil temperature level 1 [K]"}, - /* 140 */ {"var140", "Soil wetness level 1 [m of water]"}, - /* 141 */ {"var141", "Snow depth [m of water equivalent]"}, - /* 142 */ {"var142", "Stratiform precipitation (Large-scale precipitation) [m]"}, - /* 143 */ {"var143", "Convective precipitation [m]"}, - /* 144 */ {"var144", "Snowfall (convective + stratiform) [m of water equivalent]"}, - /* 145 */ {"var145", "Boundary layer dissipation [W m**-2 s]"}, - /* 146 */ {"var146", "Surface sensible heat flux [W m**-2 s]"}, - /* 147 */ {"var147", "Surface latent heat flux [W m**-2 s]"}, - /* 148 */ {"var148", "Charnock []"}, - /* 149 */ {"var149", "Surface net radiation [W m**-2 s]"}, - /* 150 */ {"var150", "Top net radiation []"}, - /* 151 */ {"MSLA", "Mean sea level pressure anomaly [Pa]"}, - /* 152 */ {"var152", "Logarithm of surface pressure []"}, - /* 153 */ {"var153", "Short-wave heating rate [K]"}, - /* 154 */ {"var154", "Long-wave heating rate [K]"}, - /* 155 */ {"var155", "Divergence [s**-1]"}, - /* 156 */ {"var156", "Height [m]"}, - /* 157 */ {"var157", "Relative humidity [%]"}, - /* 158 */ {"var158", "Tendency of surface pressure [Pa s**-1]"}, - /* 159 */ {"var159", "Boundary layer height [m]"}, - /* 160 */ {"var160", "Standard deviation of orography []"}, - /* 161 */ {"var161", "Anisotropy of sub-gridscale orography []"}, - /* 162 */ {"var162", "Angle of sub-gridscale orography [rad]"}, - /* 163 */ {"var163", "Slope of sub-gridscale orography []"}, - /* 164 */ {"TCCA", "Total cloud cover anomaly [(0 - 1)]"}, - /* 165 */ {"10UA", "10 metre U wind component anomaly [m s**-1]"}, - /* 166 */ {"10VA", "10 metre V wind component anomaly [m s**-1]"}, - /* 167 */ {"2TA", "2 metre temperature anomaly [K]"}, - /* 168 */ {"var168", "2 metre dewpoint temperature [K]"}, - /* 169 */ {"var169", "Surface solar radiation downwards [W m**-2 s]"}, - /* 170 */ {"var170", "Soil temperature level 2 [K]"}, - /* 171 */ {"var171", "Soil wetness level 2 [m of water]"}, - /* 172 */ {"var172", "Land-sea mask [(0 - 1)]"}, - /* 173 */ {"var173", "Surface roughness [m]"}, - /* 174 */ {"var174", "Albedo [(0 - 1)]"}, - /* 175 */ {"var175", "Surface thermal radiation downwards [W m**-2 s]"}, - /* 176 */ {"var176", "Surface solar radiation [W m**-2 s]"}, - /* 177 */ {"var177", "Surface thermal radiation [W m**-2 s]"}, - /* 178 */ {"var178", "Top solar radiation [W m**-2 s]"}, - /* 179 */ {"var179", "Top thermal radiation [W m**-2 s]"}, - /* 180 */ {"var180", "East-West surface stress [N m**-2 s]"}, - /* 181 */ {"var181", "North-South surface stress [N m**-2 s]"}, - /* 182 */ {"var182", "Evaporation [m of water]"}, - /* 183 */ {"var183", "Soil temperature level 3 [K]"}, - /* 184 */ {"var184", "Soil wetness level 3 [m of water]"}, - /* 185 */ {"var185", "Convective cloud cover [(0 - 1)]"}, - /* 186 */ {"var186", "Low cloud cover [(0 - 1)]"}, - /* 187 */ {"var187", "Medium cloud cover [(0 - 1)]"}, - /* 188 */ {"var188", "High cloud cover [(0 - 1)]"}, - /* 189 */ {"SUNDA", "Sunshine duration anomaly [s]"}, - /* 190 */ {"var190", "East-West component of sub-gridscale orographic variance [m**2]"}, - /* 191 */ {"var191", "North-South component of sub-gridscale orographic variance [m**2]"}, - /* 192 */ {"var192", "North-West/South-East component of sub-gridscale orographic variance [m**2]"}, - /* 193 */ {"var193", "North-East/South-West component of sub-gridscale orographic variance [m**2]"}, - /* 194 */ {"var194", "Brightness temperature [K]"}, - /* 195 */ {"var195", "Latitudinal component of gravity wave stress [N m**-2 s]"}, - /* 196 */ {"var196", "Meridional component of gravity wave stress [N m**-2 s]"}, - /* 197 */ {"var197", "Gravity wave dissipation [W m**-2 s]"}, - /* 198 */ {"var198", "Skin reservoir content [m of water]"}, - /* 199 */ {"var199", "Vegetation fraction [(0 - 1)]"}, - /* 200 */ {"var200", "Variance of sub-gridscale orography [m**2]"}, - /* 201 */ {"MX2TA", "Maximum temperature at 2 metres anomaly [K]"}, - /* 202 */ {"MN2TA", "Minimum temperature at 2 metres anomaly [K]"}, - /* 203 */ {"var203", "Ozone mass mixing ratio [kg kg**-1]"}, - /* 204 */ {"var204", "Precipitation analysis weights []"}, - /* 205 */ {"var205", "Runoff [m]"}, - /* 206 */ {"var206", "Total column ozone [kg m**-2]"}, - /* 207 */ {"var207", "10 metre wind speed [m s**-1]"}, - /* 208 */ {"var208", "Top net solar radiation, clear sky [W m**-2 s]"}, - /* 209 */ {"var209", "Top net thermal radiation, clear sky [W m**-2 s]"}, - /* 210 */ {"var210", "Surface net solar radiation, clear sky [W m**-2 s]"}, - /* 211 */ {"var211", "Surface net thermal radiation, clear sky [W m**-2 s]"}, - /* 212 */ {"var212", "Solar insolation [W m**-2]"}, - /* 213 */ {"var213", "undefined"}, - /* 214 */ {"var214", "Diabatic heating by radiation [K]"}, - /* 215 */ {"var215", "Diabatic heating by vertical diffusion [K]"}, - /* 216 */ {"var216", "Diabatic heating by cumulus convection [K]"}, - /* 217 */ {"var217", "Diabatic heating by large-scale condensation [K]"}, - /* 218 */ {"var218", "Vertical diffusion of zonal wind [m s**-1]"}, - /* 219 */ {"var219", "Vertical diffusion of meridional wind [m s**-1]"}, - /* 220 */ {"var220", "East-West gravity wave drag tendency [m s**-1]"}, - /* 221 */ {"var221", "North-South gravity wave drag tendency [m s**-1]"}, - /* 222 */ {"var222", "Convective tendency of zonal wind [m s**-1]"}, - /* 223 */ {"var223", "Convective tendency of meridional wind [m s**-1]"}, - /* 224 */ {"var224", "Vertical diffusion of humidity [kg kg**-1]"}, - /* 225 */ {"var225", "Humidity tendency by cumulus convection [kg kg**-1]"}, - /* 226 */ {"var226", "Humidity tendency by large-scale condensation [kg kg**-1]"}, - /* 227 */ {"var227", "Change from removal of negative humidity [kg kg**-1]"}, - /* 228 */ {"TPA", "Total precipitation anomaly [m]"}, - /* 229 */ {"var229", "Instantaneous X surface stress [N m**-2]"}, - /* 230 */ {"var230", "Instantaneous Y surface stress [N m**-2]"}, - /* 231 */ {"var231", "Instantaneous surface heat flux [W m**-2]"}, - /* 232 */ {"var232", "Instantaneous moisture flux [kg m**-2 s]"}, - /* 233 */ {"var233", "Apparent surface humidity [kg kg**-1]"}, - /* 234 */ {"var234", "Logarithm of surface roughness length for heat []"}, - /* 235 */ {"var235", "Skin temperature [K]"}, - /* 236 */ {"var236", "Soil temperature level 4 [K]"}, - /* 237 */ {"var237", "Soil wetness level 4 [m]"}, - /* 238 */ {"var238", "Temperature of snow layer [K]"}, - /* 239 */ {"var239", "Convective snowfall [m of water equivalent]"}, - /* 240 */ {"var240", "Large-scale snowfall [m of water equivalent]"}, - /* 241 */ {"var241", "Accumulated cloud fraction tendency [(-1 to 1)]"}, - /* 242 */ {"var242", "Accumulated liquid water tendency [(-1 to 1)]"}, - /* 243 */ {"var243", "Forecast albedo [(0 - 1)]"}, - /* 244 */ {"var244", "Forecast surface roughness [m]"}, - /* 245 */ {"var245", "Forecast logarithm of surface roughness for heat []"}, - /* 246 */ {"var246", "Cloud liquid water content [kg kg**-1]"}, - /* 247 */ {"var247", "Cloud ice water content [kg kg**-1]"}, - /* 248 */ {"var248", "Cloud cover [(0 - 1)]"}, - /* 249 */ {"var249", "Accumulated ice water tendency [(-1 to 1)]"}, - /* 250 */ {"var250", "Ice age [(0 - 1)]"}, - /* 251 */ {"var251", "Adiabatic tendency of temperature [K]"}, - /* 252 */ {"var252", "Adiabatic tendency of humidity [kg kg**-1]"}, - /* 253 */ {"var253", "Adiabatic tendency of zonal wind [m s**-1]"}, - /* 254 */ {"var254", "Adiabatic tendency of meridional wind [m s**-1]"}, - /* 255 */ {"var255", "Indicates a missing value []"}, -}; - -/* ectable 172 from Geert Jan van Oldenborgh */ - -const struct ParmTable parm_table_ecmwf_172[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"var1", "undefined"}, - /* 2 */ {"var2", "undefined"}, - /* 3 */ {"var3", "undefined"}, - /* 4 */ {"var4", "undefined"}, - /* 5 */ {"var5", "undefined"}, - /* 6 */ {"var6", "undefined"}, - /* 7 */ {"var7", "undefined"}, - /* 8 */ {"var8", "undefined"}, - /* 9 */ {"var9", "undefined"}, - /* 10 */ {"var10", "undefined"}, - /* 11 */ {"var11", "undefined"}, - /* 12 */ {"var12", "undefined"}, - /* 13 */ {"var13", "undefined"}, - /* 14 */ {"var14", "undefined"}, - /* 15 */ {"var15", "undefined"}, - /* 16 */ {"var16", "undefined"}, - /* 17 */ {"var17", "undefined"}, - /* 18 */ {"var18", "undefined"}, - /* 19 */ {"var19", "undefined"}, - /* 20 */ {"var20", "undefined"}, - /* 21 */ {"var21", "undefined"}, - /* 22 */ {"var22", "undefined"}, - /* 23 */ {"var23", "undefined"}, - /* 24 */ {"var24", "undefined"}, - /* 25 */ {"var25", "undefined"}, - /* 26 */ {"var26", "undefined"}, - /* 27 */ {"var27", "undefined"}, - /* 28 */ {"var28", "undefined"}, - /* 29 */ {"var29", "undefined"}, - /* 30 */ {"var30", "undefined"}, - /* 31 */ {"var31", "undefined"}, - /* 32 */ {"var32", "undefined"}, - /* 33 */ {"var33", "undefined"}, - /* 34 */ {"var34", "undefined"}, - /* 35 */ {"var35", "undefined"}, - /* 36 */ {"var36", "undefined"}, - /* 37 */ {"var37", "undefined"}, - /* 38 */ {"var38", "undefined"}, - /* 39 */ {"var39", "undefined"}, - /* 40 */ {"var40", "undefined"}, - /* 41 */ {"var41", "undefined"}, - /* 42 */ {"var42", "undefined"}, - /* 43 */ {"var43", "undefined"}, - /* 44 */ {"SNOE", "Snow evaporation m of water s**-1"}, - /* 45 */ {"SNOM", "Snow melt m of water s**-1"}, - /* 46 */ {"var46", "undefined"}, - /* 47 */ {"var47", "undefined"}, - /* 48 */ {"MSS", "magnitude of surface stress N m**-2"}, - /* 49 */ {"var49", "undefined"}, - /* 50 */ {"", "Large-scale precipitation fraction -"}, - /* 51 */ {"var51", "undefined"}, - /* 52 */ {"var52", "undefined"}, - /* 53 */ {"var53", "undefined"}, - /* 54 */ {"var54", "undefined"}, - /* 55 */ {"var55", "undefined"}, - /* 56 */ {"var56", "undefined"}, - /* 57 */ {"var57", "undefined"}, - /* 58 */ {"var58", "undefined"}, - /* 59 */ {"var59", "undefined"}, - /* 60 */ {"var60", "undefined"}, - /* 61 */ {"var61", "undefined"}, - /* 62 */ {"var62", "undefined"}, - /* 63 */ {"var63", "undefined"}, - /* 64 */ {"var64", "undefined"}, - /* 65 */ {"var65", "undefined"}, - /* 66 */ {"var66", "undefined"}, - /* 67 */ {"var67", "undefined"}, - /* 68 */ {"var68", "undefined"}, - /* 69 */ {"var69", "undefined"}, - /* 70 */ {"var70", "undefined"}, - /* 71 */ {"var71", "undefined"}, - /* 72 */ {"var72", "undefined"}, - /* 73 */ {"var73", "undefined"}, - /* 74 */ {"var74", "undefined"}, - /* 75 */ {"var75", "undefined"}, - /* 76 */ {"var76", "undefined"}, - /* 77 */ {"var77", "undefined"}, - /* 78 */ {"var78", "undefined"}, - /* 79 */ {"var79", "undefined"}, - /* 80 */ {"var80", "undefined"}, - /* 81 */ {"var81", "undefined"}, - /* 82 */ {"var82", "undefined"}, - /* 83 */ {"var83", "undefined"}, - /* 84 */ {"var84", "undefined"}, - /* 85 */ {"var85", "undefined"}, - /* 86 */ {"var86", "undefined"}, - /* 87 */ {"var87", "undefined"}, - /* 88 */ {"var88", "undefined"}, - /* 89 */ {"var89", "undefined"}, - /* 90 */ {"var90", "undefined"}, - /* 91 */ {"var91", "undefined"}, - /* 92 */ {"var92", "undefined"}, - /* 93 */ {"var93", "undefined"}, - /* 94 */ {"var94", "undefined"}, - /* 95 */ {"var95", "undefined"}, - /* 96 */ {"var96", "undefined"}, - /* 97 */ {"var97", "undefined"}, - /* 98 */ {"var98", "undefined"}, - /* 99 */ {"var99", "undefined"}, - /* 100 */ {"var100", "undefined"}, - /* 101 */ {"var101", "undefined"}, - /* 102 */ {"var102", "undefined"}, - /* 103 */ {"var103", "undefined"}, - /* 104 */ {"var104", "undefined"}, - /* 105 */ {"var105", "undefined"}, - /* 106 */ {"var106", "undefined"}, - /* 107 */ {"var107", "undefined"}, - /* 108 */ {"var108", "undefined"}, - /* 109 */ {"var109", "undefined"}, - /* 110 */ {"var110", "undefined"}, - /* 111 */ {"var111", "undefined"}, - /* 112 */ {"var112", "undefined"}, - /* 113 */ {"var113", "undefined"}, - /* 114 */ {"var114", "undefined"}, - /* 115 */ {"var115", "undefined"}, - /* 116 */ {"var116", "undefined"}, - /* 117 */ {"var117", "undefined"}, - /* 118 */ {"var118", "undefined"}, - /* 119 */ {"var119", "undefined"}, - /* 120 */ {"var120", "undefined"}, - /* 121 */ {"var121", "undefined"}, - /* 122 */ {"var122", "undefined"}, - /* 123 */ {"var123", "undefined"}, - /* 124 */ {"var124", "undefined"}, - /* 125 */ {"var125", "undefined"}, - /* 126 */ {"var126", "undefined"}, - /* 127 */ {"var127", "undefined"}, - /* 128 */ {"var128", "undefined"}, - /* 129 */ {"var129", "undefined"}, - /* 130 */ {"var130", "undefined"}, - /* 131 */ {"var131", "undefined"}, - /* 132 */ {"var132", "undefined"}, - /* 133 */ {"var133", "undefined"}, - /* 134 */ {"var134", "undefined"}, - /* 135 */ {"var135", "undefined"}, - /* 136 */ {"var136", "undefined"}, - /* 137 */ {"var137", "undefined"}, - /* 138 */ {"var138", "undefined"}, - /* 139 */ {"var139", "undefined"}, - /* 140 */ {"var140", "undefined"}, - /* 141 */ {"var141", "undefined"}, - /* 142 */ {"LSP", "Large scale precipitation m s**-1"}, - /* 143 */ {"CP", "Convective precipitation m s**-1"}, - /* 144 */ {"SF", "Snowfall (convective + stratiform) m of water equivalent s**-1"}, - /* 145 */ {"BLD", "Boundary layer dissipation W m**-2"}, - /* 146 */ {"SSHF", "Surface sensible heat flux W m**-2"}, - /* 147 */ {"SLHF", "Surface latent heat flux W m**-2"}, - /* 148 */ {"SNR", "Surface net radiation W m**-2"}, - /* 149 */ {"var149", "undefined"}, - /* 150 */ {"var150", "undefined"}, - /* 151 */ {"var151", "undefined"}, - /* 152 */ {"var152", "undefined"}, - /* 153 */ {"SWHR", "Short-wave heating rate K s**-1"}, - /* 154 */ {"LWHR", "Long-wave heating rate K s**-1"}, - /* 155 */ {"var155", "undefined"}, - /* 156 */ {"var156", "undefined"}, - /* 157 */ {"var157", "undefined"}, - /* 158 */ {"var158", "undefined"}, - /* 159 */ {"var159", "undefined"}, - /* 160 */ {"var160", "undefined"}, - /* 161 */ {"var161", "undefined"}, - /* 162 */ {"var162", "undefined"}, - /* 163 */ {"var163", "undefined"}, - /* 164 */ {"var164", "undefined"}, - /* 165 */ {"var165", "undefined"}, - /* 166 */ {"var166", "undefined"}, - /* 167 */ {"var167", "undefined"}, - /* 168 */ {"var168", "undefined"}, - /* 169 */ {"SSRD", "Surface solar radiation downwards W m**-2"}, - /* 170 */ {"var170", "undefined"}, - /* 171 */ {"var171", "undefined"}, - /* 172 */ {"var172", "undefined"}, - /* 173 */ {"var173", "undefined"}, - /* 174 */ {"var174", "undefined"}, - /* 175 */ {"STRD", "Surface thermal radiation downwards W m**-2"}, - /* 176 */ {"SSR", "Surface solar radiation W m**-2"}, - /* 177 */ {"STR", "Surface thermal radiation W m**-2"}, - /* 178 */ {"TSR", "Top solar radiation W m**-2"}, - /* 179 */ {"TTR", "Top thermal radiation W m-2"}, - /* 180 */ {"EWSS", "East-West surface stress N m**-2"}, - /* 181 */ {"NSSS", "North-South surface stress N m**-2"}, - /* 182 */ {"E", "Evaporation m of water s**-1"}, - /* 183 */ {"var183", "undefined"}, - /* 184 */ {"var184", "undefined"}, - /* 185 */ {"var185", "undefined"}, - /* 186 */ {"var186", "undefined"}, - /* 187 */ {"var187", "undefined"}, - /* 188 */ {"var188", "undefined"}, - /* 189 */ {"SUND", "Sunshine duration"}, - /* 190 */ {"var190", "undefined"}, - /* 191 */ {"var191", "undefined"}, - /* 192 */ {"var192", "undefined"}, - /* 193 */ {"var193", "undefined"}, - /* 194 */ {"var194", "undefined"}, - /* 195 */ {"LGWS", "Latitudinal component of gravity wave stress N m**-2"}, - /* 196 */ {"MGWS", "Meridional component of gravity wave stress N m**-2"}, - /* 197 */ {"GWD", "Gravity wave dissipation W m**-2"}, - /* 198 */ {"var198", "undefined"}, - /* 199 */ {"var199", "undefined"}, - /* 200 */ {"var200", "undefined"}, - /* 201 */ {"var201", "undefined"}, - /* 202 */ {"var202", "undefined"}, - /* 203 */ {"var203", "undefined"}, - /* 204 */ {"var204", "undefined"}, - /* 205 */ {"RO", "Runoff m s**-1"}, - /* 206 */ {"var206", "undefined"}, - /* 207 */ {"var207", "undefined"}, - /* 208 */ {"TSRC", "Top net solar radiation, clear sky W m**-2"}, - /* 209 */ {"TTRC", "Top net thermal radiation, clear sky W m**-2"}, - /* 210 */ {"SSRC", "Surface net solar radiation, clear sky W m**-2"}, - /* 211 */ {"STRC", "Surface net thermal radiation, clear sky W m**-2"}, - /* 212 */ {"SI", "Solar insolation W m**-2"}, - /* 213 */ {"var213", "undefined"}, - /* 214 */ {"var214", "undefined"}, - /* 215 */ {"var215", "undefined"}, - /* 216 */ {"var216", "undefined"}, - /* 217 */ {"var217", "undefined"}, - /* 218 */ {"var218", "undefined"}, - /* 219 */ {"var219", "undefined"}, - /* 220 */ {"var220", "undefined"}, - /* 221 */ {"var221", "undefined"}, - /* 222 */ {"var222", "undefined"}, - /* 223 */ {"var223", "undefined"}, - /* 224 */ {"var224", "undefined"}, - /* 225 */ {"var225", "undefined"}, - /* 226 */ {"var226", "undefined"}, - /* 227 */ {"var227", "undefined"}, - /* 228 */ {"TP", "Total precipitation m s**-1"}, - /* 229 */ {"var229", "undefined"}, - /* 230 */ {"var230", "undefined"}, - /* 231 */ {"var231", "undefined"}, - /* 232 */ {"var232", "undefined"}, - /* 233 */ {"var233", "undefined"}, - /* 234 */ {"var234", "undefined"}, - /* 235 */ {"var235", "undefined"}, - /* 236 */ {"var236", "undefined"}, - /* 237 */ {"var237", "undefined"}, - /* 238 */ {"var238", "undefined"}, - /* 239 */ {"CSF", "Convective snowfall m of water equivalent s**-1"}, - /* 240 */ {"LSF", "Large-scale snowfall m of water equivalent s**-1"}, - /* 241 */ {"var241", "undefined"}, - /* 242 */ {"var242", "undefined"}, - /* 243 */ {"var243", "undefined"}, - /* 244 */ {"var244", "undefined"}, - /* 245 */ {"var245", "undefined"}, - /* 246 */ {"var246", "undefined"}, - /* 247 */ {"var247", "undefined"}, - /* 248 */ {"var248", "undefined"}, - /* 249 */ {"var249", "undefined"}, - /* 250 */ {"var250", "undefined"}, - /* 251 */ {"var251", "undefined"}, - /* 252 */ {"var252", "undefined"}, - /* 253 */ {"var253", "undefined"}, - /* 254 */ {"var254", "undefined"}, - /* 255 */ {"var255", "undefined"}, -}; - - -const struct ParmTable parm_table_ecmwf_173[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"var1", "undefined"}, - /* 2 */ {"var2", "undefined"}, - /* 3 */ {"var3", "undefined"}, - /* 4 */ {"var4", "undefined"}, - /* 5 */ {"var5", "undefined"}, - /* 6 */ {"var6", "undefined"}, - /* 7 */ {"var7", "undefined"}, - /* 8 */ {"var8", "undefined"}, - /* 9 */ {"var9", "undefined"}, - /* 10 */ {"var10", "undefined"}, - /* 11 */ {"var11", "undefined"}, - /* 12 */ {"var12", "undefined"}, - /* 13 */ {"var13", "undefined"}, - /* 14 */ {"var14", "undefined"}, - /* 15 */ {"var15", "undefined"}, - /* 16 */ {"var16", "undefined"}, - /* 17 */ {"var17", "undefined"}, - /* 18 */ {"var18", "undefined"}, - /* 19 */ {"var19", "undefined"}, - /* 20 */ {"var20", "undefined"}, - /* 21 */ {"var21", "undefined"}, - /* 22 */ {"var22", "undefined"}, - /* 23 */ {"var23", "undefined"}, - /* 24 */ {"var24", "undefined"}, - /* 25 */ {"var25", "undefined"}, - /* 26 */ {"var26", "undefined"}, - /* 27 */ {"var27", "undefined"}, - /* 28 */ {"var28", "undefined"}, - /* 29 */ {"var29", "undefined"}, - /* 30 */ {"var30", "undefined"}, - /* 31 */ {"var31", "undefined"}, - /* 32 */ {"var32", "undefined"}, - /* 33 */ {"var33", "undefined"}, - /* 34 */ {"var34", "undefined"}, - /* 35 */ {"var35", "undefined"}, - /* 36 */ {"var36", "undefined"}, - /* 37 */ {"var37", "undefined"}, - /* 38 */ {"var38", "undefined"}, - /* 39 */ {"var39", "undefined"}, - /* 40 */ {"var40", "undefined"}, - /* 41 */ {"var41", "undefined"}, - /* 42 */ {"var42", "undefined"}, - /* 43 */ {"var43", "undefined"}, - /* 44 */ {"var44", "Snow evaporation anomaly [m of water s**-1]"}, - /* 45 */ {"var45", "Snowmelt anomaly [m of water s**-1]"}, - /* 46 */ {"var46", "undefined"}, - /* 47 */ {"var47", "undefined"}, - /* 48 */ {"var48", "Magnitude of surface stress anomaly [N m**-2]"}, - /* 49 */ {"var49", "undefined"}, - /* 50 */ {"var50", "Large-scale precipitation fraction anomaly []"}, - /* 51 */ {"var51", "undefined"}, - /* 52 */ {"var52", "undefined"}, - /* 53 */ {"var53", "undefined"}, - /* 54 */ {"var54", "undefined"}, - /* 55 */ {"var55", "undefined"}, - /* 56 */ {"var56", "undefined"}, - /* 57 */ {"var57", "undefined"}, - /* 58 */ {"var58", "undefined"}, - /* 59 */ {"var59", "undefined"}, - /* 60 */ {"var60", "undefined"}, - /* 61 */ {"var61", "undefined"}, - /* 62 */ {"var62", "undefined"}, - /* 63 */ {"var63", "undefined"}, - /* 64 */ {"var64", "undefined"}, - /* 65 */ {"var65", "undefined"}, - /* 66 */ {"var66", "undefined"}, - /* 67 */ {"var67", "undefined"}, - /* 68 */ {"var68", "undefined"}, - /* 69 */ {"var69", "undefined"}, - /* 70 */ {"var70", "undefined"}, - /* 71 */ {"var71", "undefined"}, - /* 72 */ {"var72", "undefined"}, - /* 73 */ {"var73", "undefined"}, - /* 74 */ {"var74", "undefined"}, - /* 75 */ {"var75", "undefined"}, - /* 76 */ {"var76", "undefined"}, - /* 77 */ {"var77", "undefined"}, - /* 78 */ {"var78", "undefined"}, - /* 79 */ {"var79", "undefined"}, - /* 80 */ {"var80", "undefined"}, - /* 81 */ {"var81", "undefined"}, - /* 82 */ {"var82", "undefined"}, - /* 83 */ {"var83", "undefined"}, - /* 84 */ {"var84", "undefined"}, - /* 85 */ {"var85", "undefined"}, - /* 86 */ {"var86", "undefined"}, - /* 87 */ {"var87", "undefined"}, - /* 88 */ {"var88", "undefined"}, - /* 89 */ {"var89", "undefined"}, - /* 90 */ {"var90", "undefined"}, - /* 91 */ {"var91", "undefined"}, - /* 92 */ {"var92", "undefined"}, - /* 93 */ {"var93", "undefined"}, - /* 94 */ {"var94", "undefined"}, - /* 95 */ {"var95", "undefined"}, - /* 96 */ {"var96", "undefined"}, - /* 97 */ {"var97", "undefined"}, - /* 98 */ {"var98", "undefined"}, - /* 99 */ {"var99", "undefined"}, - /* 100 */ {"var100", "undefined"}, - /* 101 */ {"var101", "undefined"}, - /* 102 */ {"var102", "undefined"}, - /* 103 */ {"var103", "undefined"}, - /* 104 */ {"var104", "undefined"}, - /* 105 */ {"var105", "undefined"}, - /* 106 */ {"var106", "undefined"}, - /* 107 */ {"var107", "undefined"}, - /* 108 */ {"var108", "undefined"}, - /* 109 */ {"var109", "undefined"}, - /* 110 */ {"var110", "undefined"}, - /* 111 */ {"var111", "undefined"}, - /* 112 */ {"var112", "undefined"}, - /* 113 */ {"var113", "undefined"}, - /* 114 */ {"var114", "undefined"}, - /* 115 */ {"var115", "undefined"}, - /* 116 */ {"var116", "undefined"}, - /* 117 */ {"var117", "undefined"}, - /* 118 */ {"var118", "undefined"}, - /* 119 */ {"var119", "undefined"}, - /* 120 */ {"var120", "undefined"}, - /* 121 */ {"var121", "undefined"}, - /* 122 */ {"var122", "undefined"}, - /* 123 */ {"var123", "undefined"}, - /* 124 */ {"var124", "undefined"}, - /* 125 */ {"var125", "undefined"}, - /* 126 */ {"var126", "undefined"}, - /* 127 */ {"var127", "undefined"}, - /* 128 */ {"var128", "undefined"}, - /* 129 */ {"var129", "undefined"}, - /* 130 */ {"var130", "undefined"}, - /* 131 */ {"var131", "undefined"}, - /* 132 */ {"var132", "undefined"}, - /* 133 */ {"var133", "undefined"}, - /* 134 */ {"var134", "undefined"}, - /* 135 */ {"var135", "undefined"}, - /* 136 */ {"var136", "undefined"}, - /* 137 */ {"var137", "undefined"}, - /* 138 */ {"var138", "undefined"}, - /* 139 */ {"var139", "undefined"}, - /* 140 */ {"var140", "undefined"}, - /* 141 */ {"var141", "undefined"}, - /* 142 */ {"var142", "Stratiform precipitation (Large-scale precipitation) anomaly [m s**-1]"}, - /* 143 */ {"var143", "Convective precipitation anomaly [m s**-1]"}, - /* 144 */ {"SFARA", "Snowfall (convective + stratiform) anomalous rate of accumulation [m of water equivalent s**-1]"}, - /* 145 */ {"var145", "Boundary layer dissipation anomaly [W m**-2]"}, - /* 146 */ {"var146", "Surface sensible heat flux anomaly [W m**-2]"}, - /* 147 */ {"var147", "Surface latent heat flux anomaly [W m**-2]"}, - /* 148 */ {"var148", "undefined"}, - /* 149 */ {"var149", "Surface net radiation anomaly [W m**-2]"}, - /* 150 */ {"var150", "undefined"}, - /* 151 */ {"var151", "undefined"}, - /* 152 */ {"var152", "undefined"}, - /* 153 */ {"var153", "Short-wave heating rate anomaly [K s**-1]"}, - /* 154 */ {"var154", "Long-wave heating rate anomaly [K s**-1]"}, - /* 155 */ {"var155", "undefined"}, - /* 156 */ {"var156", "undefined"}, - /* 157 */ {"var157", "undefined"}, - /* 158 */ {"var158", "undefined"}, - /* 159 */ {"var159", "undefined"}, - /* 160 */ {"var160", "undefined"}, - /* 161 */ {"var161", "undefined"}, - /* 162 */ {"var162", "undefined"}, - /* 163 */ {"var163", "undefined"}, - /* 164 */ {"var164", "undefined"}, - /* 165 */ {"var165", "undefined"}, - /* 166 */ {"var166", "undefined"}, - /* 167 */ {"var167", "undefined"}, - /* 168 */ {"var168", "undefined"}, - /* 169 */ {"var169", "Surface solar radiation downwards anomaly [W m**-2]"}, - /* 170 */ {"var170", "undefined"}, - /* 171 */ {"var171", "undefined"}, - /* 172 */ {"var172", "undefined"}, - /* 173 */ {"var173", "undefined"}, - /* 174 */ {"var174", "undefined"}, - /* 175 */ {"var175", "Surface thermal radiation downwards anomaly [W m**-2]"}, - /* 176 */ {"var176", "Surface solar radiation anomaly [W m**-2]"}, - /* 177 */ {"var177", "Surface thermal radiation anomaly [W m**-2]"}, - /* 178 */ {"var178", "Top solar radiation anomaly [W m**-2]"}, - /* 179 */ {"var179", "Top thermal radiation anomaly [W m**-2]"}, - /* 180 */ {"var180", "East-West surface stress anomaly [N m**-2]"}, - /* 181 */ {"var181", "North-South surface stress anomaly [N m**-2]"}, - /* 182 */ {"var182", "Evaporation anomaly [m of water s**-1]"}, - /* 183 */ {"var183", "undefined"}, - /* 184 */ {"var184", "undefined"}, - /* 185 */ {"var185", "undefined"}, - /* 186 */ {"var186", "undefined"}, - /* 187 */ {"var187", "undefined"}, - /* 188 */ {"var188", "undefined"}, - /* 189 */ {"SUNDARA", "Sunshine duration anomalous rate of accumulation [dimensionless]"}, - /* 190 */ {"var190", "undefined"}, - /* 191 */ {"var191", "undefined"}, - /* 192 */ {"var192", "undefined"}, - /* 193 */ {"var193", "undefined"}, - /* 194 */ {"var194", "undefined"}, - /* 195 */ {"var195", "Latitudinal component of gravity wave stress anomaly [N m**-2]"}, - /* 196 */ {"var196", "Meridional component of gravity wave stress anomaly [N m**-2]"}, - /* 197 */ {"var197", "Gravity wave dissipation anomaly [W m**-2]"}, - /* 198 */ {"var198", "undefined"}, - /* 199 */ {"var199", "undefined"}, - /* 200 */ {"var200", "undefined"}, - /* 201 */ {"var201", "undefined"}, - /* 202 */ {"var202", "undefined"}, - /* 203 */ {"var203", "undefined"}, - /* 204 */ {"var204", "undefined"}, - /* 205 */ {"var205", "Runoff anomaly [m s**-1]"}, - /* 206 */ {"var206", "undefined"}, - /* 207 */ {"var207", "undefined"}, - /* 208 */ {"var208", "Top net solar radiation, clear sky anomaly [W m**-2]"}, - /* 209 */ {"var209", "Top net thermal radiation, clear sky anomaly [W m**-2]"}, - /* 210 */ {"var210", "Surface net solar radiation, clear sky anomaly [W m**-2]"}, - /* 211 */ {"var211", "Surface net thermal radiation, clear sky anomaly [W m**-2]"}, - /* 212 */ {"var212", "Solar insolation anomaly [W m**-2 s**-1]"}, - /* 213 */ {"var213", "undefined"}, - /* 214 */ {"var214", "undefined"}, - /* 215 */ {"var215", "undefined"}, - /* 216 */ {"var216", "undefined"}, - /* 217 */ {"var217", "undefined"}, - /* 218 */ {"var218", "undefined"}, - /* 219 */ {"var219", "undefined"}, - /* 220 */ {"var220", "undefined"}, - /* 221 */ {"var221", "undefined"}, - /* 222 */ {"var222", "undefined"}, - /* 223 */ {"var223", "undefined"}, - /* 224 */ {"var224", "undefined"}, - /* 225 */ {"var225", "undefined"}, - /* 226 */ {"var226", "undefined"}, - /* 227 */ {"var227", "undefined"}, - /* 228 */ {"TPARA", "Total precipitation anomalous rate of accumulation [m s**-1]"}, - /* 229 */ {"var229", "undefined"}, - /* 230 */ {"var230", "undefined"}, - /* 231 */ {"var231", "undefined"}, - /* 232 */ {"var232", "undefined"}, - /* 233 */ {"var233", "undefined"}, - /* 234 */ {"var234", "undefined"}, - /* 235 */ {"var235", "undefined"}, - /* 236 */ {"var236", "undefined"}, - /* 237 */ {"var237", "undefined"}, - /* 238 */ {"var238", "undefined"}, - /* 239 */ {"var239", "Convective snowfall anomaly [m of water equivalent s**-1]"}, - /* 240 */ {"var240", "Large-scale snowfall anomaly [m of water equivalent s**-1]"}, - /* 241 */ {"var241", "undefined"}, - /* 242 */ {"var242", "undefined"}, - /* 243 */ {"var243", "undefined"}, - /* 244 */ {"var244", "undefined"}, - /* 245 */ {"var245", "undefined"}, - /* 246 */ {"var246", "undefined"}, - /* 247 */ {"var247", "undefined"}, - /* 248 */ {"var248", "undefined"}, - /* 249 */ {"var249", "undefined"}, - /* 250 */ {"var250", "undefined"}, - /* 251 */ {"var251", "undefined"}, - /* 252 */ {"var252", "undefined"}, - /* 253 */ {"var253", "undefined"}, - /* 254 */ {"var254", "undefined"}, - /* 255 */ {"var255", "Indicates a missing value []"}, -}; - -const struct ParmTable parm_table_ecmwf_174[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"var1", "undefined"}, - /* 2 */ {"var2", "undefined"}, - /* 3 */ {"var3", "undefined"}, - /* 4 */ {"var4", "undefined"}, - /* 5 */ {"var5", "undefined"}, - /* 6 */ {"var6", "Total soil moisture [m]"}, - /* 7 */ {"var7", "undefined"}, - /* 8 */ {"SRO", "Surface runoff [kg m**-2]"}, - /* 9 */ {"SSRO", "Sub-surface runoff [kg m**-2]"}, - /* 10 */ {"var10", "undefined"}, - /* 11 */ {"var11", "undefined"}, - /* 12 */ {"var12", "undefined"}, - /* 13 */ {"var13", "undefined"}, - /* 14 */ {"var14", "undefined"}, - /* 15 */ {"var15", "undefined"}, - /* 16 */ {"var16", "undefined"}, - /* 17 */ {"var17", "undefined"}, - /* 18 */ {"var18", "undefined"}, - /* 19 */ {"var19", "undefined"}, - /* 20 */ {"var20", "undefined"}, - /* 21 */ {"var21", "undefined"}, - /* 22 */ {"var22", "undefined"}, - /* 23 */ {"var23", "undefined"}, - /* 24 */ {"var24", "undefined"}, - /* 25 */ {"var25", "undefined"}, - /* 26 */ {"var26", "undefined"}, - /* 27 */ {"var27", "undefined"}, - /* 28 */ {"var28", "undefined"}, - /* 29 */ {"var29", "undefined"}, - /* 30 */ {"var30", "undefined"}, - /* 31 */ {"var31", "Fraction of sea-ice in sea [(0 - 1)]"}, - /* 32 */ {"var32", "undefined"}, - /* 33 */ {"var33", "undefined"}, - /* 34 */ {"var34", "Open-sea surface temperature [K]"}, - /* 35 */ {"var35", "undefined"}, - /* 36 */ {"var36", "undefined"}, - /* 37 */ {"var37", "undefined"}, - /* 38 */ {"var38", "undefined"}, - /* 39 */ {"var39", "Volumetric soil water layer 1 [m**3 m**-3]"}, - /* 40 */ {"var40", "Volumetric soil water layer 2 [m**3 m**-3]"}, - /* 41 */ {"var41", "Volumetric soil water layer 3 [m**3 m**-3]"}, - /* 42 */ {"var42", "Volumetric soil water layer 4 [m**3 m**-3]"}, - /* 43 */ {"var43", "undefined"}, - /* 44 */ {"var44", "undefined"}, - /* 45 */ {"var45", "undefined"}, - /* 46 */ {"var46", "undefined"}, - /* 47 */ {"var47", "undefined"}, - /* 48 */ {"var48", "undefined"}, - /* 49 */ {"var49", "10 metre wind gust over last 24 hours [m s**-1]"}, - /* 50 */ {"var50", "undefined"}, - /* 51 */ {"var51", "undefined"}, - /* 52 */ {"var52", "undefined"}, - /* 53 */ {"var53", "undefined"}, - /* 54 */ {"var54", "undefined"}, - /* 55 */ {"var55", "1.5m temperature - mean over last 24 hours [K]"}, - /* 56 */ {"var56", "undefined"}, - /* 57 */ {"var57", "undefined"}, - /* 58 */ {"var58", "undefined"}, - /* 59 */ {"var59", "undefined"}, - /* 60 */ {"var60", "undefined"}, - /* 61 */ {"var61", "undefined"}, - /* 62 */ {"var62", "undefined"}, - /* 63 */ {"var63", "undefined"}, - /* 64 */ {"var64", "undefined"}, - /* 65 */ {"var65", "undefined"}, - /* 66 */ {"var66", "undefined"}, - /* 67 */ {"var67", "undefined"}, - /* 68 */ {"var68", "undefined"}, - /* 69 */ {"var69", "undefined"}, - /* 70 */ {"var70", "undefined"}, - /* 71 */ {"var71", "undefined"}, - /* 72 */ {"var72", "undefined"}, - /* 73 */ {"var73", "undefined"}, - /* 74 */ {"var74", "undefined"}, - /* 75 */ {"var75", "undefined"}, - /* 76 */ {"var76", "undefined"}, - /* 77 */ {"var77", "undefined"}, - /* 78 */ {"var78", "undefined"}, - /* 79 */ {"var79", "undefined"}, - /* 80 */ {"var80", "undefined"}, - /* 81 */ {"var81", "undefined"}, - /* 82 */ {"var82", "undefined"}, - /* 83 */ {"var83", "Net primary productivity [kg C m**-2 s**-1]"}, - /* 84 */ {"var84", "undefined"}, - /* 85 */ {"var85", "10m U wind over land [m s**-1]"}, - /* 86 */ {"var86", "10m V wind over land [m s**-1]"}, - /* 87 */ {"var87", "1.5m temperature over land [K]"}, - /* 88 */ {"var88", "1.5m dewpoint temperature over land [K]"}, - /* 89 */ {"var89", "Top incoming solar radiation [W m**-2 s]"}, - /* 90 */ {"var90", "Top outgoing solar radiation [W m**-2 s]"}, - /* 91 */ {"var91", "undefined"}, - /* 92 */ {"var92", "undefined"}, - /* 93 */ {"var93", "undefined"}, - /* 94 */ {"var94", "Mean sea surface temperature [K]"}, - /* 95 */ {"var95", "1.5m specific humidity [kg kg**-1]"}, - /* 96 */ {"var96", "undefined"}, - /* 97 */ {"var97", "undefined"}, - /* 98 */ {"var98", "Sea-ice thickness [m]"}, - /* 99 */ {"var99", "Liquid water potential temperature [K]"}, - /* 100 */ {"var100", "undefined"}, - /* 101 */ {"var101", "undefined"}, - /* 102 */ {"var102", "undefined"}, - /* 103 */ {"var103", "undefined"}, - /* 104 */ {"var104", "undefined"}, - /* 105 */ {"var105", "undefined"}, - /* 106 */ {"var106", "undefined"}, - /* 107 */ {"var107", "undefined"}, - /* 108 */ {"var108", "undefined"}, - /* 109 */ {"var109", "undefined"}, - /* 110 */ {"var110", "Ocean ice concentration [(0 - 1)]"}, - /* 111 */ {"var111", "Ocean mean ice depth [m]"}, - /* 112 */ {"var112", "undefined"}, - /* 113 */ {"var113", "undefined"}, - /* 114 */ {"var114", "undefined"}, - /* 115 */ {"var115", "undefined"}, - /* 116 */ {"var116", "undefined"}, - /* 117 */ {"var117", "undefined"}, - /* 118 */ {"var118", "undefined"}, - /* 119 */ {"var119", "undefined"}, - /* 120 */ {"var120", "undefined"}, - /* 121 */ {"var121", "undefined"}, - /* 122 */ {"var122", "undefined"}, - /* 123 */ {"var123", "undefined"}, - /* 124 */ {"var124", "undefined"}, - /* 125 */ {"var125", "undefined"}, - /* 126 */ {"var126", "undefined"}, - /* 127 */ {"var127", "undefined"}, - /* 128 */ {"var128", "undefined"}, - /* 129 */ {"var129", "undefined"}, - /* 130 */ {"var130", "undefined"}, - /* 131 */ {"var131", "undefined"}, - /* 132 */ {"var132", "undefined"}, - /* 133 */ {"var133", "undefined"}, - /* 134 */ {"var134", "undefined"}, - /* 135 */ {"var135", "undefined"}, - /* 136 */ {"var136", "undefined"}, - /* 137 */ {"var137", "undefined"}, - /* 138 */ {"var138", "undefined"}, - /* 139 */ {"var139", "Soil temperature layer 1 [K]"}, - /* 140 */ {"var140", "undefined"}, - /* 141 */ {"var141", "undefined"}, - /* 142 */ {"var142", "undefined"}, - /* 143 */ {"var143", "undefined"}, - /* 144 */ {"var144", "undefined"}, - /* 145 */ {"var145", "undefined"}, - /* 146 */ {"var146", "undefined"}, - /* 147 */ {"var147", "undefined"}, - /* 148 */ {"var148", "undefined"}, - /* 149 */ {"var149", "undefined"}, - /* 150 */ {"var150", "undefined"}, - /* 151 */ {"var151", "undefined"}, - /* 152 */ {"var152", "undefined"}, - /* 153 */ {"var153", "undefined"}, - /* 154 */ {"var154", "undefined"}, - /* 155 */ {"var155", "undefined"}, - /* 156 */ {"var156", "undefined"}, - /* 157 */ {"var157", "undefined"}, - /* 158 */ {"var158", "undefined"}, - /* 159 */ {"var159", "undefined"}, - /* 160 */ {"var160", "undefined"}, - /* 161 */ {"var161", "undefined"}, - /* 162 */ {"var162", "undefined"}, - /* 163 */ {"var163", "undefined"}, - /* 164 */ {"var164", "Average potential temperature in upper 293.4m [degrees C]"}, - /* 165 */ {"var165", "undefined"}, - /* 166 */ {"var166", "undefined"}, - /* 167 */ {"var167", "1.5m temperature [K]"}, - /* 168 */ {"var168", "1.5m dewpoint temperature [K]"}, - /* 169 */ {"var169", "undefined"}, - /* 170 */ {"var170", "Soil temperature layer 2 [K]"}, - /* 171 */ {"var171", "undefined"}, - /* 172 */ {"var172", "Fractional land mask [(0 - 1)]"}, - /* 173 */ {"var173", "undefined"}, - /* 174 */ {"var174", "undefined"}, - /* 175 */ {"var175", "Average salinity in upper 293.4m [psu]"}, - /* 176 */ {"var176", "undefined"}, - /* 177 */ {"var177", "undefined"}, - /* 178 */ {"var178", "undefined"}, - /* 179 */ {"var179", "undefined"}, - /* 180 */ {"var180", "undefined"}, - /* 181 */ {"var181", "undefined"}, - /* 182 */ {"var182", "undefined"}, - /* 183 */ {"var183", "Soil temperature layer 3 [K]"}, - /* 184 */ {"var184", "undefined"}, - /* 185 */ {"var185", "undefined"}, - /* 186 */ {"var186", "undefined"}, - /* 187 */ {"var187", "undefined"}, - /* 188 */ {"var188", "undefined"}, - /* 189 */ {"var189", "undefined"}, - /* 190 */ {"var190", "undefined"}, - /* 191 */ {"var191", "undefined"}, - /* 192 */ {"var192", "undefined"}, - /* 193 */ {"var193", "undefined"}, - /* 194 */ {"var194", "undefined"}, - /* 195 */ {"var195", "undefined"}, - /* 196 */ {"var196", "undefined"}, - /* 197 */ {"var197", "undefined"}, - /* 198 */ {"var198", "undefined"}, - /* 199 */ {"var199", "undefined"}, - /* 200 */ {"var200", "undefined"}, - /* 201 */ {"var201", "1.5m temperature - maximum over last 24 hours [K]"}, - /* 202 */ {"var202", "1.5m temperature - minimum over last 24 hours [K]"}, - /* 203 */ {"var203", "undefined"}, - /* 204 */ {"var204", "undefined"}, - /* 205 */ {"var205", "undefined"}, - /* 206 */ {"var206", "undefined"}, - /* 207 */ {"var207", "undefined"}, - /* 208 */ {"var208", "undefined"}, - /* 209 */ {"var209", "undefined"}, - /* 210 */ {"var210", "undefined"}, - /* 211 */ {"var211", "undefined"}, - /* 212 */ {"var212", "undefined"}, - /* 213 */ {"var213", "undefined"}, - /* 214 */ {"var214", "undefined"}, - /* 215 */ {"var215", "undefined"}, - /* 216 */ {"var216", "undefined"}, - /* 217 */ {"var217", "undefined"}, - /* 218 */ {"var218", "undefined"}, - /* 219 */ {"var219", "undefined"}, - /* 220 */ {"var220", "undefined"}, - /* 221 */ {"var221", "undefined"}, - /* 222 */ {"var222", "undefined"}, - /* 223 */ {"var223", "undefined"}, - /* 224 */ {"var224", "undefined"}, - /* 225 */ {"var225", "undefined"}, - /* 226 */ {"var226", "undefined"}, - /* 227 */ {"var227", "undefined"}, - /* 228 */ {"var228", "undefined"}, - /* 229 */ {"var229", "undefined"}, - /* 230 */ {"var230", "undefined"}, - /* 231 */ {"var231", "undefined"}, - /* 232 */ {"var232", "undefined"}, - /* 233 */ {"var233", "undefined"}, - /* 234 */ {"var234", "undefined"}, - /* 235 */ {"var235", "undefined"}, - /* 236 */ {"var236", "Soil temperature layer 4 [K]"}, - /* 237 */ {"var237", "undefined"}, - /* 238 */ {"var238", "undefined"}, - /* 239 */ {"var239", "undefined"}, - /* 240 */ {"var240", "undefined"}, - /* 241 */ {"var241", "undefined"}, - /* 242 */ {"var242", "undefined"}, - /* 243 */ {"var243", "undefined"}, - /* 244 */ {"var244", "undefined"}, - /* 245 */ {"var245", "undefined"}, - /* 246 */ {"var246", "undefined"}, - /* 247 */ {"var247", "undefined"}, - /* 248 */ {"var248", "undefined"}, - /* 249 */ {"var249", "undefined"}, - /* 250 */ {"var250", "undefined"}, - /* 251 */ {"var251", "undefined"}, - /* 252 */ {"var252", "undefined"}, - /* 253 */ {"var253", "undefined"}, - /* 254 */ {"var254", "undefined"}, - /* 255 */ {"var255", "Indicates a missing value []"}, -}; - -const struct ParmTable parm_table_ecmwf_180[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"var1", "undefined"}, - /* 2 */ {"var2", "undefined"}, - /* 3 */ {"var3", "undefined"}, - /* 4 */ {"var4", "undefined"}, - /* 5 */ {"var5", "undefined"}, - /* 6 */ {"var6", "undefined"}, - /* 7 */ {"var7", "undefined"}, - /* 8 */ {"var8", "undefined"}, - /* 9 */ {"var9", "undefined"}, - /* 10 */ {"var10", "undefined"}, - /* 11 */ {"var11", "undefined"}, - /* 12 */ {"var12", "undefined"}, - /* 13 */ {"var13", "undefined"}, - /* 14 */ {"var14", "undefined"}, - /* 15 */ {"var15", "undefined"}, - /* 16 */ {"var16", "undefined"}, - /* 17 */ {"var17", "undefined"}, - /* 18 */ {"var18", "undefined"}, - /* 19 */ {"var19", "undefined"}, - /* 20 */ {"var20", "undefined"}, - /* 21 */ {"var21", "undefined"}, - /* 22 */ {"var22", "undefined"}, - /* 23 */ {"var23", "undefined"}, - /* 24 */ {"var24", "undefined"}, - /* 25 */ {"var25", "undefined"}, - /* 26 */ {"var26", "undefined"}, - /* 27 */ {"var27", "undefined"}, - /* 28 */ {"var28", "undefined"}, - /* 29 */ {"var29", "undefined"}, - /* 30 */ {"var30", "undefined"}, - /* 31 */ {"var31", "undefined"}, - /* 32 */ {"var32", "undefined"}, - /* 33 */ {"var33", "undefined"}, - /* 34 */ {"var34", "undefined"}, - /* 35 */ {"var35", "undefined"}, - /* 36 */ {"var36", "undefined"}, - /* 37 */ {"var37", "undefined"}, - /* 38 */ {"var38", "undefined"}, - /* 39 */ {"var39", "undefined"}, - /* 40 */ {"var40", "undefined"}, - /* 41 */ {"var41", "undefined"}, - /* 42 */ {"var42", "undefined"}, - /* 43 */ {"var43", "undefined"}, - /* 44 */ {"var44", "undefined"}, - /* 45 */ {"var45", "undefined"}, - /* 46 */ {"var46", "undefined"}, - /* 47 */ {"var47", "undefined"}, - /* 48 */ {"var48", "undefined"}, - /* 49 */ {"var49", "undefined"}, - /* 50 */ {"var50", "undefined"}, - /* 51 */ {"var51", "undefined"}, - /* 52 */ {"var52", "undefined"}, - /* 53 */ {"var53", "undefined"}, - /* 54 */ {"var54", "undefined"}, - /* 55 */ {"var55", "undefined"}, - /* 56 */ {"var56", "undefined"}, - /* 57 */ {"var57", "undefined"}, - /* 58 */ {"var58", "undefined"}, - /* 59 */ {"var59", "undefined"}, - /* 60 */ {"var60", "undefined"}, - /* 61 */ {"var61", "undefined"}, - /* 62 */ {"var62", "undefined"}, - /* 63 */ {"var63", "undefined"}, - /* 64 */ {"var64", "undefined"}, - /* 65 */ {"var65", "undefined"}, - /* 66 */ {"var66", "undefined"}, - /* 67 */ {"var67", "undefined"}, - /* 68 */ {"var68", "undefined"}, - /* 69 */ {"var69", "undefined"}, - /* 70 */ {"var70", "undefined"}, - /* 71 */ {"var71", "undefined"}, - /* 72 */ {"var72", "undefined"}, - /* 73 */ {"var73", "undefined"}, - /* 74 */ {"var74", "undefined"}, - /* 75 */ {"var75", "undefined"}, - /* 76 */ {"var76", "undefined"}, - /* 77 */ {"var77", "undefined"}, - /* 78 */ {"var78", "undefined"}, - /* 79 */ {"var79", "undefined"}, - /* 80 */ {"var80", "undefined"}, - /* 81 */ {"var81", "undefined"}, - /* 82 */ {"var82", "undefined"}, - /* 83 */ {"var83", "undefined"}, - /* 84 */ {"var84", "undefined"}, - /* 85 */ {"var85", "undefined"}, - /* 86 */ {"var86", "undefined"}, - /* 87 */ {"var87", "undefined"}, - /* 88 */ {"var88", "undefined"}, - /* 89 */ {"var89", "undefined"}, - /* 90 */ {"var90", "undefined"}, - /* 91 */ {"var91", "undefined"}, - /* 92 */ {"var92", "undefined"}, - /* 93 */ {"var93", "undefined"}, - /* 94 */ {"var94", "undefined"}, - /* 95 */ {"var95", "undefined"}, - /* 96 */ {"var96", "undefined"}, - /* 97 */ {"var97", "undefined"}, - /* 98 */ {"var98", "undefined"}, - /* 99 */ {"var99", "undefined"}, - /* 100 */ {"var100", "undefined"}, - /* 101 */ {"var101", "undefined"}, - /* 102 */ {"var102", "undefined"}, - /* 103 */ {"var103", "undefined"}, - /* 104 */ {"var104", "undefined"}, - /* 105 */ {"var105", "undefined"}, - /* 106 */ {"var106", "undefined"}, - /* 107 */ {"var107", "undefined"}, - /* 108 */ {"var108", "undefined"}, - /* 109 */ {"var109", "undefined"}, - /* 110 */ {"var110", "undefined"}, - /* 111 */ {"var111", "undefined"}, - /* 112 */ {"var112", "undefined"}, - /* 113 */ {"var113", "undefined"}, - /* 114 */ {"var114", "undefined"}, - /* 115 */ {"var115", "undefined"}, - /* 116 */ {"var116", "undefined"}, - /* 117 */ {"var117", "undefined"}, - /* 118 */ {"var118", "undefined"}, - /* 119 */ {"var119", "undefined"}, - /* 120 */ {"var120", "undefined"}, - /* 121 */ {"var121", "undefined"}, - /* 122 */ {"var122", "undefined"}, - /* 123 */ {"var123", "undefined"}, - /* 124 */ {"var124", "undefined"}, - /* 125 */ {"var125", "undefined"}, - /* 126 */ {"var126", "undefined"}, - /* 127 */ {"var127", "undefined"}, - /* 128 */ {"var128", "undefined"}, - /* 129 */ {"Z", "Geopotential [m**2 s**-2]"}, - /* 130 */ {"T", "Temperature [K]"}, - /* 131 */ {"U", "U velocity [m s**-1]"}, - /* 132 */ {"V", "V velocity [m s**-1]"}, - /* 133 */ {"Q", "Specific humidity [kg kg**-1]"}, - /* 134 */ {"SP", "Surface pressure [Pa]"}, - /* 135 */ {"var135", "undefined"}, - /* 136 */ {"var136", "undefined"}, - /* 137 */ {"TCWV", "Total column water vapour [kg m**-2]"}, - /* 138 */ {"VO", "Vorticity (relative) [s**-1]"}, - /* 139 */ {"var139", "undefined"}, - /* 140 */ {"var140", "undefined"}, - /* 141 */ {"SD", "Snow depth [m of water equivalent]"}, - /* 142 */ {"LSP", "Large-scale precipitation [m]"}, - /* 143 */ {"CP", "Convective precipitation [m]"}, - /* 144 */ {"SF", "Snowfall [m of water equivalent]"}, - /* 145 */ {"var145", "undefined"}, - /* 146 */ {"SSHF", "Surface sensible heat flux [W m**-2 s]"}, - /* 147 */ {"SLHF", "Surface latent heat flux [W m**-2 s]"}, - /* 148 */ {"var148", "undefined"}, - /* 149 */ {"TSW", "Total soil wetness [m]"}, - /* 150 */ {"var150", "undefined"}, - /* 151 */ {"MSL", "Mean sea level pressure [Pa]"}, - /* 152 */ {"var152", "undefined"}, - /* 153 */ {"var153", "undefined"}, - /* 154 */ {"var154", "undefined"}, - /* 155 */ {"D", "Divergence [s**-1]"}, - /* 156 */ {"var156", "undefined"}, - /* 157 */ {"var157", "undefined"}, - /* 158 */ {"var158", "undefined"}, - /* 159 */ {"var159", "undefined"}, - /* 160 */ {"var160", "undefined"}, - /* 161 */ {"var161", "undefined"}, - /* 162 */ {"var162", "undefined"}, - /* 163 */ {"var163", "undefined"}, - /* 164 */ {"TCC", "Total cloud cover [(0 - 1)]"}, - /* 165 */ {"10U", "10 metre U wind component [m s**-1]"}, - /* 166 */ {"10V", "10 metre V wind component [m s**-1]"}, - /* 167 */ {"2T", "2 metre temperature [K]"}, - /* 168 */ {"2D", "2 metre dewpoint temperature [K]"}, - /* 169 */ {"var169", "undefined"}, - /* 170 */ {"var170", "undefined"}, - /* 171 */ {"var171", "undefined"}, - /* 172 */ {"LSM", "Land-sea mask [(0 - 1)]"}, - /* 173 */ {"var173", "undefined"}, - /* 174 */ {"var174", "undefined"}, - /* 175 */ {"var175", "undefined"}, - /* 176 */ {"SSR", "Surface solar radiation [J m**-2 s]"}, - /* 177 */ {"STR", "Surface thermal radiation [J m**-2 s]"}, - /* 178 */ {"TSR", "Top solar radiation [J m**-2 s]"}, - /* 179 */ {"TTR", "Top thermal radiation [J m**-2 s]"}, - /* 180 */ {"EWSS", "East-West surface stress [N m**-2 s]"}, - /* 181 */ {"NSSS", "North-South surface stress [N m**-2 s]"}, - /* 182 */ {"E", "Evaporation [m of water]"}, - /* 183 */ {"var183", "undefined"}, - /* 184 */ {"var184", "undefined"}, - /* 185 */ {"var185", "undefined"}, - /* 186 */ {"var186", "undefined"}, - /* 187 */ {"var187", "undefined"}, - /* 188 */ {"var188", "undefined"}, - /* 189 */ {"var189", "undefined"}, - /* 190 */ {"var190", "undefined"}, - /* 191 */ {"var191", "undefined"}, - /* 192 */ {"var192", "undefined"}, - /* 193 */ {"var193", "undefined"}, - /* 194 */ {"var194", "undefined"}, - /* 195 */ {"var195", "undefined"}, - /* 196 */ {"var196", "undefined"}, - /* 197 */ {"var197", "undefined"}, - /* 198 */ {"var198", "undefined"}, - /* 199 */ {"var199", "undefined"}, - /* 200 */ {"var200", "undefined"}, - /* 201 */ {"var201", "undefined"}, - /* 202 */ {"var202", "undefined"}, - /* 203 */ {"var203", "undefined"}, - /* 204 */ {"var204", "undefined"}, - /* 205 */ {"RO", "Runoff [m]"}, - /* 206 */ {"var206", "undefined"}, - /* 207 */ {"var207", "undefined"}, - /* 208 */ {"var208", "undefined"}, - /* 209 */ {"var209", "undefined"}, - /* 210 */ {"var210", "undefined"}, - /* 211 */ {"var211", "undefined"}, - /* 212 */ {"var212", "undefined"}, - /* 213 */ {"var213", "undefined"}, - /* 214 */ {"var214", "undefined"}, - /* 215 */ {"var215", "undefined"}, - /* 216 */ {"var216", "undefined"}, - /* 217 */ {"var217", "undefined"}, - /* 218 */ {"var218", "undefined"}, - /* 219 */ {"var219", "undefined"}, - /* 220 */ {"var220", "undefined"}, - /* 221 */ {"var221", "undefined"}, - /* 222 */ {"var222", "undefined"}, - /* 223 */ {"var223", "undefined"}, - /* 224 */ {"var224", "undefined"}, - /* 225 */ {"var225", "undefined"}, - /* 226 */ {"var226", "undefined"}, - /* 227 */ {"var227", "undefined"}, - /* 228 */ {"var228", "undefined"}, - /* 229 */ {"var229", "undefined"}, - /* 230 */ {"var230", "undefined"}, - /* 231 */ {"var231", "undefined"}, - /* 232 */ {"var232", "undefined"}, - /* 233 */ {"var233", "undefined"}, - /* 234 */ {"var234", "undefined"}, - /* 235 */ {"var235", "undefined"}, - /* 236 */ {"var236", "undefined"}, - /* 237 */ {"var237", "undefined"}, - /* 238 */ {"var238", "undefined"}, - /* 239 */ {"var239", "undefined"}, - /* 240 */ {"var240", "undefined"}, - /* 241 */ {"var241", "undefined"}, - /* 242 */ {"var242", "undefined"}, - /* 243 */ {"var243", "undefined"}, - /* 244 */ {"var244", "undefined"}, - /* 245 */ {"var245", "undefined"}, - /* 246 */ {"var246", "undefined"}, - /* 247 */ {"var247", "undefined"}, - /* 248 */ {"var248", "undefined"}, - /* 249 */ {"var249", "undefined"}, - /* 250 */ {"var250", "undefined"}, - /* 251 */ {"var251", "undefined"}, - /* 252 */ {"var252", "undefined"}, - /* 253 */ {"var253", "undefined"}, - /* 254 */ {"var254", "undefined"}, - /* 255 */ {"var255", "Indicates a missing value []"}, -}; - -const struct ParmTable parm_table_ecmwf_190[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"var1", "undefined"}, - /* 2 */ {"var2", "undefined"}, - /* 3 */ {"var3", "undefined"}, - /* 4 */ {"var4", "undefined"}, - /* 5 */ {"var5", "undefined"}, - /* 6 */ {"var6", "undefined"}, - /* 7 */ {"var7", "undefined"}, - /* 8 */ {"var8", "undefined"}, - /* 9 */ {"var9", "undefined"}, - /* 10 */ {"var10", "undefined"}, - /* 11 */ {"var11", "undefined"}, - /* 12 */ {"var12", "undefined"}, - /* 13 */ {"var13", "undefined"}, - /* 14 */ {"var14", "undefined"}, - /* 15 */ {"var15", "undefined"}, - /* 16 */ {"var16", "undefined"}, - /* 17 */ {"var17", "undefined"}, - /* 18 */ {"var18", "undefined"}, - /* 19 */ {"var19", "undefined"}, - /* 20 */ {"var20", "undefined"}, - /* 21 */ {"var21", "undefined"}, - /* 22 */ {"var22", "undefined"}, - /* 23 */ {"var23", "undefined"}, - /* 24 */ {"var24", "undefined"}, - /* 25 */ {"var25", "undefined"}, - /* 26 */ {"var26", "undefined"}, - /* 27 */ {"var27", "undefined"}, - /* 28 */ {"var28", "undefined"}, - /* 29 */ {"var29", "undefined"}, - /* 30 */ {"var30", "undefined"}, - /* 31 */ {"var31", "undefined"}, - /* 32 */ {"var32", "undefined"}, - /* 33 */ {"var33", "undefined"}, - /* 34 */ {"var34", "undefined"}, - /* 35 */ {"var35", "undefined"}, - /* 36 */ {"var36", "undefined"}, - /* 37 */ {"var37", "undefined"}, - /* 38 */ {"var38", "undefined"}, - /* 39 */ {"var39", "undefined"}, - /* 40 */ {"var40", "undefined"}, - /* 41 */ {"var41", "undefined"}, - /* 42 */ {"var42", "undefined"}, - /* 43 */ {"var43", "undefined"}, - /* 44 */ {"var44", "undefined"}, - /* 45 */ {"var45", "undefined"}, - /* 46 */ {"var46", "undefined"}, - /* 47 */ {"var47", "undefined"}, - /* 48 */ {"var48", "undefined"}, - /* 49 */ {"var49", "undefined"}, - /* 50 */ {"var50", "undefined"}, - /* 51 */ {"var51", "undefined"}, - /* 52 */ {"var52", "undefined"}, - /* 53 */ {"var53", "undefined"}, - /* 54 */ {"var54", "undefined"}, - /* 55 */ {"var55", "undefined"}, - /* 56 */ {"var56", "undefined"}, - /* 57 */ {"var57", "undefined"}, - /* 58 */ {"var58", "undefined"}, - /* 59 */ {"var59", "undefined"}, - /* 60 */ {"var60", "undefined"}, - /* 61 */ {"var61", "undefined"}, - /* 62 */ {"var62", "undefined"}, - /* 63 */ {"var63", "undefined"}, - /* 64 */ {"var64", "undefined"}, - /* 65 */ {"var65", "undefined"}, - /* 66 */ {"var66", "undefined"}, - /* 67 */ {"var67", "undefined"}, - /* 68 */ {"var68", "undefined"}, - /* 69 */ {"var69", "undefined"}, - /* 70 */ {"var70", "undefined"}, - /* 71 */ {"var71", "undefined"}, - /* 72 */ {"var72", "undefined"}, - /* 73 */ {"var73", "undefined"}, - /* 74 */ {"var74", "undefined"}, - /* 75 */ {"var75", "undefined"}, - /* 76 */ {"var76", "undefined"}, - /* 77 */ {"var77", "undefined"}, - /* 78 */ {"var78", "undefined"}, - /* 79 */ {"var79", "undefined"}, - /* 80 */ {"var80", "undefined"}, - /* 81 */ {"var81", "undefined"}, - /* 82 */ {"var82", "undefined"}, - /* 83 */ {"var83", "undefined"}, - /* 84 */ {"var84", "undefined"}, - /* 85 */ {"var85", "undefined"}, - /* 86 */ {"var86", "undefined"}, - /* 87 */ {"var87", "undefined"}, - /* 88 */ {"var88", "undefined"}, - /* 89 */ {"var89", "undefined"}, - /* 90 */ {"var90", "undefined"}, - /* 91 */ {"var91", "undefined"}, - /* 92 */ {"var92", "undefined"}, - /* 93 */ {"var93", "undefined"}, - /* 94 */ {"var94", "undefined"}, - /* 95 */ {"var95", "undefined"}, - /* 96 */ {"var96", "undefined"}, - /* 97 */ {"var97", "undefined"}, - /* 98 */ {"var98", "undefined"}, - /* 99 */ {"var99", "undefined"}, - /* 100 */ {"var100", "undefined"}, - /* 101 */ {"var101", "undefined"}, - /* 102 */ {"var102", "undefined"}, - /* 103 */ {"var103", "undefined"}, - /* 104 */ {"var104", "undefined"}, - /* 105 */ {"var105", "undefined"}, - /* 106 */ {"var106", "undefined"}, - /* 107 */ {"var107", "undefined"}, - /* 108 */ {"var108", "undefined"}, - /* 109 */ {"var109", "undefined"}, - /* 110 */ {"var110", "undefined"}, - /* 111 */ {"var111", "undefined"}, - /* 112 */ {"var112", "undefined"}, - /* 113 */ {"var113", "undefined"}, - /* 114 */ {"var114", "undefined"}, - /* 115 */ {"var115", "undefined"}, - /* 116 */ {"var116", "undefined"}, - /* 117 */ {"var117", "undefined"}, - /* 118 */ {"var118", "undefined"}, - /* 119 */ {"var119", "undefined"}, - /* 120 */ {"var120", "undefined"}, - /* 121 */ {"var121", "undefined"}, - /* 122 */ {"var122", "undefined"}, - /* 123 */ {"var123", "undefined"}, - /* 124 */ {"var124", "undefined"}, - /* 125 */ {"var125", "undefined"}, - /* 126 */ {"var126", "undefined"}, - /* 127 */ {"var127", "undefined"}, - /* 128 */ {"var128", "undefined"}, - /* 129 */ {"Z", "Geopotential [m**2 s**-2]"}, - /* 130 */ {"T", "Temperature [K]"}, - /* 131 */ {"U", "U velocity [m s**-1]"}, - /* 132 */ {"V", "V velocity [m s**-1]"}, - /* 133 */ {"Q", "Specific humidity [kg kg**-1]"}, - /* 134 */ {"var134", "undefined"}, - /* 135 */ {"var135", "undefined"}, - /* 136 */ {"var136", "undefined"}, - /* 137 */ {"var137", "undefined"}, - /* 138 */ {"var138", "undefined"}, - /* 139 */ {"STL1", "Soil temperature level 1 [K]"}, - /* 140 */ {"var140", "undefined"}, - /* 141 */ {"SD", "Snow depth [m of water]"}, - /* 142 */ {"var142", "undefined"}, - /* 143 */ {"var143", "undefined"}, - /* 144 */ {"var144", "undefined"}, - /* 145 */ {"var145", "undefined"}, - /* 146 */ {"SSHF", "Surface sensible heat flux [W m**-2 s]"}, - /* 147 */ {"SLHF", "Surface latent heat flux [W m**-2 s]"}, - /* 148 */ {"var148", "undefined"}, - /* 149 */ {"var149", "undefined"}, - /* 150 */ {"var150", "undefined"}, - /* 151 */ {"MSL", "Mean sea level pressure [Pa]"}, - /* 152 */ {"var152", "undefined"}, - /* 153 */ {"var153", "undefined"}, - /* 154 */ {"var154", "undefined"}, - /* 155 */ {"var155", "undefined"}, - /* 156 */ {"var156", "undefined"}, - /* 157 */ {"var157", "undefined"}, - /* 158 */ {"var158", "undefined"}, - /* 159 */ {"var159", "undefined"}, - /* 160 */ {"var160", "undefined"}, - /* 161 */ {"var161", "undefined"}, - /* 162 */ {"var162", "undefined"}, - /* 163 */ {"var163", "undefined"}, - /* 164 */ {"TCC", "Total cloud cover [(0 - 1)]"}, - /* 165 */ {"10U", "10 metre U wind component [m s**-1]"}, - /* 166 */ {"10V", "10 metre V wind component [m s**-1]"}, - /* 167 */ {"2T", "2 metre temperature [K]"}, - /* 168 */ {"2D", "2 metre dewpoint temperature [K]"}, - /* 169 */ {"SSRD", "Downward surface solar radiation [W m**-2 s (W m**-2 for monthly means)]"}, - /* 170 */ {"CAP", "Field capacity [(0 - 1)]"}, - /* 171 */ {"WILT", "Wilting point [(0 - 1)]"}, - /* 172 */ {"LSM", "Land-sea mask [(0 - 1)]"}, - /* 173 */ {"SR", "Roughness length [(0 - 1)]"}, - /* 174 */ {"AL", "Albedo [(0 - 1)]"}, - /* 175 */ {"STRD", "Downward surface long wave radiation [W m**-2 s (W m**-2 for monthly means)]"}, - /* 176 */ {"SSR", "Surface net solar radiation [W m**-2 s (W m**-2 for monthly means)]"}, - /* 177 */ {"STR", "Surface net long wave radiation [W m**-2 s (W m**-2 for monthly means)]"}, - /* 178 */ {"TSR", "Top net solar radiation [W m**-2 s (W m**-2 for monthly means)]"}, - /* 179 */ {"TTR", "Top net long wave radiation [W m**-2 s (W m**-2 for monthly means)]"}, - /* 180 */ {"var180", "undefined"}, - /* 181 */ {"var181", "undefined"}, - /* 182 */ {"E", "Evaporation [m (m s**-1 for monthly means)]"}, - /* 183 */ {"var183", "undefined"}, - /* 184 */ {"var184", "undefined"}, - /* 185 */ {"var185", "undefined"}, - /* 186 */ {"var186", "undefined"}, - /* 187 */ {"var187", "undefined"}, - /* 188 */ {"var188", "undefined"}, - /* 189 */ {"var189", "undefined"}, - /* 190 */ {"var190", "undefined"}, - /* 191 */ {"var191", "undefined"}, - /* 192 */ {"var192", "undefined"}, - /* 193 */ {"var193", "undefined"}, - /* 194 */ {"var194", "undefined"}, - /* 195 */ {"var195", "undefined"}, - /* 196 */ {"var196", "undefined"}, - /* 197 */ {"var197", "undefined"}, - /* 198 */ {"var198", "undefined"}, - /* 199 */ {"var199", "undefined"}, - /* 200 */ {"var200", "undefined"}, - /* 201 */ {"MX2T", "Maximum 2 metre temperature [K]"}, - /* 202 */ {"MN2T", "Minimum 2 metre temperature [K]"}, - /* 203 */ {"var203", "undefined"}, - /* 204 */ {"var204", "undefined"}, - /* 205 */ {"var205", "undefined"}, - /* 206 */ {"var206", "undefined"}, - /* 207 */ {"var207", "undefined"}, - /* 208 */ {"var208", "undefined"}, - /* 209 */ {"var209", "undefined"}, - /* 210 */ {"var210", "undefined"}, - /* 211 */ {"var211", "undefined"}, - /* 212 */ {"var212", "undefined"}, - /* 213 */ {"var213", "undefined"}, - /* 214 */ {"var214", "undefined"}, - /* 215 */ {"var215", "undefined"}, - /* 216 */ {"var216", "undefined"}, - /* 217 */ {"var217", "undefined"}, - /* 218 */ {"var218", "undefined"}, - /* 219 */ {"var219", "undefined"}, - /* 220 */ {"var220", "undefined"}, - /* 221 */ {"var221", "undefined"}, - /* 222 */ {"var222", "undefined"}, - /* 223 */ {"var223", "undefined"}, - /* 224 */ {"var224", "undefined"}, - /* 225 */ {"var225", "undefined"}, - /* 226 */ {"var226", "undefined"}, - /* 227 */ {"var227", "undefined"}, - /* 228 */ {"TP", "Total precipitation [m (m s**-1 for monthly means)]"}, - /* 229 */ {"TSM", "Total soil moisture [m**3 m**-3]"}, - /* 230 */ {"var230", "undefined"}, - /* 231 */ {"var231", "undefined"}, - /* 232 */ {"var232", "undefined"}, - /* 233 */ {"var233", "undefined"}, - /* 234 */ {"var234", "undefined"}, - /* 235 */ {"var235", "undefined"}, - /* 236 */ {"var236", "undefined"}, - /* 237 */ {"var237", "undefined"}, - /* 238 */ {"var238", "undefined"}, - /* 239 */ {"var239", "undefined"}, - /* 240 */ {"var240", "undefined"}, - /* 241 */ {"var241", "undefined"}, - /* 242 */ {"var242", "undefined"}, - /* 243 */ {"var243", "undefined"}, - /* 244 */ {"var244", "undefined"}, - /* 245 */ {"var245", "undefined"}, - /* 246 */ {"var246", "undefined"}, - /* 247 */ {"var247", "undefined"}, - /* 248 */ {"var248", "undefined"}, - /* 249 */ {"var249", "undefined"}, - /* 250 */ {"var250", "undefined"}, - /* 251 */ {"var251", "undefined"}, - /* 252 */ {"var252", "undefined"}, - /* 253 */ {"var253", "undefined"}, - /* 254 */ {"var254", "undefined"}, - /* 255 */ {"var255", " []"}, -}; - -const struct ParmTable parm_table_ecmwf_200[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"STRF", "Stream function [m**2 s**-1]"}, - /* 2 */ {"VPOT", "Velocity potential [m**2 s**-1]"}, - /* 3 */ {"PT", "Potential temperature [K]"}, - /* 4 */ {"EQPT", "Equivalent potential temperature [K]"}, - /* 5 */ {"SEPT", "Saturated equivalent potential temperature [K]"}, - /* 6 */ {"var6", "undefined"}, - /* 7 */ {"var7", "undefined"}, - /* 8 */ {"var8", "undefined"}, - /* 9 */ {"var9", "undefined"}, - /* 10 */ {"var10", "undefined"}, - /* 11 */ {"UDVW", "U component of divergent wind [m s**-1]"}, - /* 12 */ {"VDVW", "V component of divergent wind [m s**-1]"}, - /* 13 */ {"URTW", "U component of rotational wind [m s**-1]"}, - /* 14 */ {"VRTW", "V component of rotational wind [m s**-1]"}, - /* 15 */ {"var15", "undefined"}, - /* 16 */ {"var16", "undefined"}, - /* 17 */ {"var17", "undefined"}, - /* 18 */ {"var18", "undefined"}, - /* 19 */ {"var19", "undefined"}, - /* 20 */ {"var20", "undefined"}, - /* 21 */ {"UCTP", "Unbalanced component of temperature [K]"}, - /* 22 */ {"UCLN", "Unbalanced component of logarithm of surface pressure []"}, - /* 23 */ {"UCDV", "Unbalanced component of divergence [s**-1]"}, - /* 24 */ {"var24", "Reserved for future unbalanced components []"}, - /* 25 */ {"var25", "Reserved for future unbalanced components []"}, - /* 26 */ {"CL", "Lake cover [(0 - 1)]"}, - /* 27 */ {"CVL", "Low vegetation cover [(0 - 1)]"}, - /* 28 */ {"CVH", "High vegetation cover [(0 - 1)]"}, - /* 29 */ {"TVL", "Type of low vegetation []"}, - /* 30 */ {"TVH", "Type of high vegetation []"}, - /* 31 */ {"CI", "Sea-ice cover [(0 - 1)]"}, - /* 32 */ {"ASN", "Snow albedo [(0 - 1)]"}, - /* 33 */ {"RSN", "Snow density [kg m**-3]"}, - /* 34 */ {"SSTK", "Sea surface temperature [K]"}, - /* 35 */ {"ISTL1", "Ice surface temperature layer 1 [K]"}, - /* 36 */ {"ISTL2", "Ice surface temperature layer 2 [K]"}, - /* 37 */ {"ISTL3", "Ice surface temperature layer 3 [K]"}, - /* 38 */ {"ISTL4", "Ice surface temperature layer 4 [K]"}, - /* 39 */ {"SWVL1", "Volumetric soil water layer 1 [m**3 m**-3]"}, - /* 40 */ {"SWVL2", "Volumetric soil water layer 2 [m**3 m**-3]"}, - /* 41 */ {"SWVL3", "Volumetric soil water layer 3 [m**3 m**-3]"}, - /* 42 */ {"SWVL4", "Volumetric soil water layer 4 [m**3 m**-3]"}, - /* 43 */ {"SLT", "Soil type []"}, - /* 44 */ {"ES", "Snow evaporation [m of water]"}, - /* 45 */ {"SMLT", "Snowmelt [m of water]"}, - /* 46 */ {"SDUR", "Solar duration [s]"}, - /* 47 */ {"DSRP", "Direct solar radiation [w m**-2]"}, - /* 48 */ {"MAGSS", "Magnitude of surface stress [N m**-2 s]"}, - /* 49 */ {"10FG", "10 metre wind gust [m s**-1]"}, - /* 50 */ {"LSPF", "Large-scale precipitation fraction [s]"}, - /* 51 */ {"MX2T24", "Maximum 2 metre temperature [K]"}, - /* 52 */ {"MN2T24", "Minimum 2 metre temperature [K]"}, - /* 53 */ {"MONT", "Montgomery potential [m**2 s**-2]"}, - /* 54 */ {"PRES", "Pressure [Pa]"}, - /* 55 */ {"MEAN2T24", "Mean 2 metre temperature in past 24 hours [K]"}, - /* 56 */ {"MN2D24", "Mean 2 metre dewpoint temperature in past 24 hours [K]"}, - /* 57 */ {"UVB", "Downward UV radiation at the surface [w m**-2 s]"}, - /* 58 */ {"PAR", "Photosynthetically active radiation at the surface [w m**-2 s]"}, - /* 59 */ {"CAPE", "Convective available potential energy [J kg**-1]"}, - /* 60 */ {"PV", "Potential vorticity [K m**2 kg**-1 s**-1]"}, - /* 61 */ {"TPO", "Total precipitation from observations [Millimetres*100 + number of stations]"}, - /* 62 */ {"OBCT", "Observation count []"}, - /* 63 */ {"var63", "Start time for skin temperature difference [s]"}, - /* 64 */ {"var64", "Finish time for skin temperature difference [s]"}, - /* 65 */ {"var65", "Skin temperature difference [K]"}, - /* 66 */ {"var66", "Leaf area index, low vegetation [m**2 / m**2]"}, - /* 67 */ {"var67", "Leaf area index, high vegetation [m**2 / m**2]"}, - /* 68 */ {"var68", "Minimum stomatal resistance, low vegetation [s m**-1]"}, - /* 69 */ {"var69", "Minimum stomatal resistance, high vegetation [s m**-1]"}, - /* 70 */ {"var70", "Biome cover, low vegetation [(0 - 1)]"}, - /* 71 */ {"var71", "Biome cover, high vegetation [(0 - 1)]"}, - /* 72 */ {"var72", "undefined"}, - /* 73 */ {"var73", "undefined"}, - /* 74 */ {"var74", "undefined"}, - /* 75 */ {"var75", "undefined"}, - /* 76 */ {"var76", "undefined"}, - /* 77 */ {"var77", "undefined"}, - /* 78 */ {"var78", "Total column liquid water [kg m**-2]"}, - /* 79 */ {"var79", "Total column ice water [kg m**-2]"}, - /* 80 */ {"var80", "Experimental product []"}, - /* 81 */ {"var81", "Experimental product []"}, - /* 82 */ {"var82", "Experimental product []"}, - /* 83 */ {"var83", "Experimental product []"}, - /* 84 */ {"var84", "Experimental product []"}, - /* 85 */ {"var85", "Experimental product []"}, - /* 86 */ {"var86", "Experimental product []"}, - /* 87 */ {"var87", "Experimental product []"}, - /* 88 */ {"var88", "Experimental product []"}, - /* 89 */ {"var89", "Experimental product []"}, - /* 90 */ {"var90", "Experimental product []"}, - /* 91 */ {"var91", "Experimental product []"}, - /* 92 */ {"var92", "Experimental product []"}, - /* 93 */ {"var93", "Experimental product []"}, - /* 94 */ {"var94", "Experimental product []"}, - /* 95 */ {"var95", "Experimental product []"}, - /* 96 */ {"var96", "Experimental product []"}, - /* 97 */ {"var97", "Experimental product []"}, - /* 98 */ {"var98", "Experimental product []"}, - /* 99 */ {"var99", "Experimental product []"}, - /* 100 */ {"var100", "Experimental product []"}, - /* 101 */ {"var101", "Experimental product []"}, - /* 102 */ {"var102", "Experimental product []"}, - /* 103 */ {"var103", "Experimental product []"}, - /* 104 */ {"var104", "Experimental product []"}, - /* 105 */ {"var105", "Experimental product []"}, - /* 106 */ {"var106", "Experimental product []"}, - /* 107 */ {"var107", "Experimental product []"}, - /* 108 */ {"var108", "Experimental product []"}, - /* 109 */ {"var109", "Experimental product []"}, - /* 110 */ {"var110", "Experimental product []"}, - /* 111 */ {"var111", "Experimental product []"}, - /* 112 */ {"var112", "Experimental product []"}, - /* 113 */ {"var113", "Experimental product []"}, - /* 114 */ {"var114", "Experimental product []"}, - /* 115 */ {"var115", "Experimental product []"}, - /* 116 */ {"var116", "Experimental product []"}, - /* 117 */ {"var117", "Experimental product []"}, - /* 118 */ {"var118", "Experimental product []"}, - /* 119 */ {"var119", "Experimental product []"}, - /* 120 */ {"var120", "Experimental product []"}, - /* 121 */ {"MX2T6", "Maximum temperature at 2 metres [K]"}, - /* 122 */ {"MN2T6", "Minimum temperature at 2 metres [K]"}, - /* 123 */ {"10FG6", "10 metre wind gust in the past 6 hours [m s**-1]"}, - /* 124 */ {"var124", "undefined"}, - /* 125 */ {"var125", "Vertically integrated total energy [J m**-2]"}, - /* 126 */ {"var126", "Generic parameter for sensitive area prediction [Various]"}, - /* 127 */ {"AT", "Atmospheric tide []"}, - /* 128 */ {"BV", "Budget values []"}, - /* 129 */ {"Z", "Geopotential [m**2 s**-2]"}, - /* 130 */ {"T", "Temperature [K]"}, - /* 131 */ {"U", "U velocity [m s**-1]"}, - /* 132 */ {"V", "V velocity [m s**-1]"}, - /* 133 */ {"Q", "Specific humidity [kg kg**-1]"}, - /* 134 */ {"SP", "Surface pressure [Pa]"}, - /* 135 */ {"W", "Vertical velocity [Pa s**-1]"}, - /* 136 */ {"TCW", "Total column water [kg m**-2]"}, - /* 137 */ {"TCWV", "Total column water vapour [kg m**-2]"}, - /* 138 */ {"VO", "Vorticity (relative) [s**-1]"}, - /* 139 */ {"STL1", "Soil temperature level 1 [K]"}, - /* 140 */ {"SWL1", "Soil wetness level 1 [m of water]"}, - /* 141 */ {"SD", "Snow depth [m of water equivalent]"}, - /* 142 */ {"LSP", "Stratiform precipitation (Large-scale precipitation) [m]"}, - /* 143 */ {"CP", "Convective precipitation [m]"}, - /* 144 */ {"SF", "Snowfall (convective + stratiform) [m of water equivalent]"}, - /* 145 */ {"BLD", "Boundary layer dissipation [W m**-2 s]"}, - /* 146 */ {"SSHF", "Surface sensible heat flux [W m**-2 s]"}, - /* 147 */ {"SLHF", "Surface latent heat flux [W m**-2 s]"}, - /* 148 */ {"CHNK", "Charnock []"}, - /* 149 */ {"SNR", "Surface net radiation [W m**-2 s]"}, - /* 150 */ {"TNR", "Top net radiation []"}, - /* 151 */ {"MSL", "Mean sea level pressure [Pa]"}, - /* 152 */ {"LNSP", "Logarithm of surface pressure []"}, - /* 153 */ {"SWHR", "Short-wave heating rate [K]"}, - /* 154 */ {"LWHR", "Long-wave heating rate [K]"}, - /* 155 */ {"D", "Divergence [s**-1]"}, - /* 156 */ {"GH", "Height [m]"}, - /* 157 */ {"R", "Relative humidity [%]"}, - /* 158 */ {"TSP", "Tendency of surface pressure [Pa s**-1]"}, - /* 159 */ {"BLH", "Boundary layer height [m]"}, - /* 160 */ {"SDOR", "Standard deviation of orography []"}, - /* 161 */ {"ISOR", "Anisotropy of sub-gridscale orography []"}, - /* 162 */ {"ANOR", "Angle of sub-gridscale orography [rad]"}, - /* 163 */ {"SLOR", "Slope of sub-gridscale orography []"}, - /* 164 */ {"TCC", "Total cloud cover [(0 - 1)]"}, - /* 165 */ {"10U", "10 metre U wind component [m s**-1]"}, - /* 166 */ {"10V", "10 metre V wind component [m s**-1]"}, - /* 167 */ {"2T", "2 metre temperature [K]"}, - /* 168 */ {"2D", "2 metre dewpoint temperature [K]"}, - /* 169 */ {"SSRD", "Surface solar radiation downwards [W m**-2 s]"}, - /* 170 */ {"STL2", "Soil temperature level 2 [K]"}, - /* 171 */ {"SWL2", "Soil wetness level 2 [m of water]"}, - /* 172 */ {"LSM", "Land-sea mask [(0 - 1)]"}, - /* 173 */ {"SR", "Surface roughness [m]"}, - /* 174 */ {"AL", "Albedo [(0 - 1)]"}, - /* 175 */ {"STRD", "Surface thermal radiation downwards [W m**-2 s]"}, - /* 176 */ {"SSR", "Surface solar radiation [W m**-2 s]"}, - /* 177 */ {"STR", "Surface thermal radiation [W m**-2 s]"}, - /* 178 */ {"TSR", "Top solar radiation [W m**-2 s]"}, - /* 179 */ {"TTR", "Top thermal radiation [W m**-2 s]"}, - /* 180 */ {"EWSS", "East-West surface stress [N m**-2 s]"}, - /* 181 */ {"NSSS", "North-South surface stress [N m**-2 s]"}, - /* 182 */ {"E", "Evaporation [m of water]"}, - /* 183 */ {"STL3", "Soil temperature level 3 [K]"}, - /* 184 */ {"SWL3", "Soil wetness level 3 [m of water]"}, - /* 185 */ {"CCC", "Convective cloud cover [(0 - 1)]"}, - /* 186 */ {"LCC", "Low cloud cover [(0 - 1)]"}, - /* 187 */ {"MCC", "Medium cloud cover [(0 - 1)]"}, - /* 188 */ {"HCC", "High cloud cover [(0 - 1)]"}, - /* 189 */ {"SUND", "Sunshine duration [s]"}, - /* 190 */ {"EWOV", "East-West component of sub-gridscale orographic variance [m**2]"}, - /* 191 */ {"NSOV", "North-South component of sub-gridscale orographic variance [m**2]"}, - /* 192 */ {"NWOV", "North-West/South-East component of sub-gridscale orographic variance [m**2]"}, - /* 193 */ {"NEOV", "North-East/South-West component of sub-gridscale orographic variance [m**2]"}, - /* 194 */ {"BTMP", "Brightness temperature [K]"}, - /* 195 */ {"LGWS", "Latitudinal component of gravity wave stress [N m**-2 s]"}, - /* 196 */ {"MGWS", "Meridional component of gravity wave stress [N m**-2 s]"}, - /* 197 */ {"GWD", "Gravity wave dissipation [W m**-2 s]"}, - /* 198 */ {"SRC", "Skin reservoir content [m of water]"}, - /* 199 */ {"VEG", "Vegetation fraction [(0 - 1)]"}, - /* 200 */ {"VSO", "Variance of sub-gridscale orography [m**2]"}, - /* 201 */ {"MX2T", "Maximum temperature at 2 metres since previous post-processing [K]"}, - /* 202 */ {"MN2T", "Minimum temperature at 2 metres since previous post-processing [K]"}, - /* 203 */ {"O3", "Ozone mass mixing ratio [kg kg**-1]"}, - /* 204 */ {"PAW", "Precipitation analysis weights []"}, - /* 205 */ {"RO", "Runoff [m]"}, - /* 206 */ {"TCO3", "Total column ozone [kg m**-2]"}, - /* 207 */ {"10SI", "10 metre wind speed [m s**-1]"}, - /* 208 */ {"TSRC", "Top net solar radiation, clear sky [W m**-2 s]"}, - /* 209 */ {"TTRC", "Top net thermal radiation, clear sky [W m**-2 s]"}, - /* 210 */ {"SSRC", "Surface net solar radiation, clear sky [W m**-2 s]"}, - /* 211 */ {"STRC", "Surface net thermal radiation, clear sky [W m**-2 s]"}, - /* 212 */ {"TISR", "TOA incident solar radiation [W m**-2 s]"}, - /* 213 */ {"var213", "undefined"}, - /* 214 */ {"DHR", "Diabatic heating by radiation [K]"}, - /* 215 */ {"DHVD", "Diabatic heating by vertical diffusion [K]"}, - /* 216 */ {"DHCC", "Diabatic heating by cumulus convection [K]"}, - /* 217 */ {"DHLC", "Diabatic heating large-scale condensation [K]"}, - /* 218 */ {"VDZW", "Vertical diffusion of zonal wind [m s**-1]"}, - /* 219 */ {"VDMW", "Vertical diffusion of meridional wind [m s**-1]"}, - /* 220 */ {"EWGD", "East-West gravity wave drag tendency [m s**-1]"}, - /* 221 */ {"NSGD", "North-South gravity wave drag tendency [m s**-1]"}, - /* 222 */ {"CTZW", "Convective tendency of zonal wind [m s**-1]"}, - /* 223 */ {"CTMW", "Convective tendency of meridional wind [m s**-1]"}, - /* 224 */ {"VDH", "Vertical diffusion of humidity [kg kg**-1]"}, - /* 225 */ {"HTCC", "Humidity tendency by cumulus convection [kg kg**-1]"}, - /* 226 */ {"HTLC", "Humidity tendency by large-scale condensation [kg kg**-1]"}, - /* 227 */ {"CRNH", "Change from removal of negative humidity [kg kg**-1]"}, - /* 228 */ {"TP", "Total precipitation [m]"}, - /* 229 */ {"IEWS", "Instantaneous X surface stress [N m**-2]"}, - /* 230 */ {"INSS", "Instantaneous Y surface stress [N m**-2]"}, - /* 231 */ {"ISHF", "Instantaneous surface heat flux [W m**-2]"}, - /* 232 */ {"IE", "Instantaneous moisture flux [kg m**-2 s]"}, - /* 233 */ {"ASQ", "Apparent surface humidity [kg kg**-1]"}, - /* 234 */ {"LSRH", "Logarithm of surface roughness length for heat []"}, - /* 235 */ {"SKT", "Skin temperature [K]"}, - /* 236 */ {"STL4", "Soil temperature level 4 [K]"}, - /* 237 */ {"SWL4", "Soil wetness level 4 [m]"}, - /* 238 */ {"TSN", "Temperature of snow layer [K]"}, - /* 239 */ {"CSF", "Convective snowfall [m of water equivalent]"}, - /* 240 */ {"LSF", "Large-scale snowfall [m of water equivalent]"}, - /* 241 */ {"ACF", "Accumulated cloud fraction tendency [(-1 to 1)]"}, - /* 242 */ {"ALW", "Accumulated liquid water tendency [(-1 to 1)]"}, - /* 243 */ {"FAL", "Forecast albedo [(0 - 1)]"}, - /* 244 */ {"FSR", "Forecast surface roughness [m]"}, - /* 245 */ {"FLSR", "Forecast logarithm of surface roughness for heat []"}, - /* 246 */ {"CLWC", "Cloud liquid water content [kg kg**-1]"}, - /* 247 */ {"CIWC", "Cloud ice water content [kg kg**-1]"}, - /* 248 */ {"CC", "Cloud cover [(0 - 1)]"}, - /* 249 */ {"AIW", "Accumulated ice water tendency [(-1 to 1)]"}, - /* 250 */ {"ICE", "Ice age [(0 - 1)]"}, - /* 251 */ {"ATTE", "Adiabatic tendency of temperature [K]"}, - /* 252 */ {"ATHE", "Adiabatic tendency of humidity [kg kg**-1]"}, - /* 253 */ {"ATZE", "Adiabatic tendency of zonal wind [m s**-1]"}, - /* 254 */ {"ATMW", "Adiabatic tendency of meridional wind [m s**-1]"}, - /* 255 */ {"var255", "Indicates a missing value []"}, -}; - -const struct ParmTable parm_table_ecmwf_210[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"AERMR01", "Sea Salt Aerosol (0.03 - 0.5 um) Mixing Ratio [kg kg**-1]"}, - /* 2 */ {"AERMR02", "Sea Salt Aerosol (0.5 - 5 um) Mixing Ratio [kg kg**-1]"}, - /* 3 */ {"AERMR03", "Sea Salt Aerosol (5 - 20 um) Mixing Ratio [kg kg**-1]"}, - /* 4 */ {"AERMR04", "Dust Aerosol (0.03 - 0.55 um) Mixing Ratio [kg kg**-1]"}, - /* 5 */ {"AERMR05", "Dust Aerosol (0.55 - 0.9 um) Mixing Ratio [kg kg**-1]"}, - /* 6 */ {"AERMR06", "Dust Aerosol (0.9 - 20 um) Mixing Ratio [kg kg**-1]"}, - /* 7 */ {"AERMR07", "Hydrophobic Organic Matter Aerosol Mixing Ratio [kg kg**-1]"}, - /* 8 */ {"AERMR08", "Hydrophilic Organic Matter Aerosol Mixing Ratio [kg kg**-1]"}, - /* 9 */ {"AERMR09", "Hydrophobic Black Carbon Aerosol Mixing Ratio [kg kg**-1]"}, - /* 10 */ {"AERMR10", "Hydrophilic Black Carbon Aerosol Mixing Ratio [kg kg**-1]"}, - /* 11 */ {"AERMR11", "Sulphate Aerosol Mixing Ratio [kg kg**-1]"}, - /* 12 */ {"AERMR12", "Aerosol type 12 mixing ratio [kg kg**-1]"}, - /* 13 */ {"var13", "undefined"}, - /* 14 */ {"var14", "undefined"}, - /* 15 */ {"var15", "undefined"}, - /* 16 */ {"AERGN01", "Aerosol type 1 source/gain accumulated [kg m**-2]"}, - /* 17 */ {"AERGN02", "Aerosol type 2 source/gain accumulated [kg m**-2]"}, - /* 18 */ {"AERGN03", "Aerosol type 3 source/gain accumulated [kg m**-2]"}, - /* 19 */ {"AERGN04", "Aerosol type 4 source/gain accumulated [kg m**-2]"}, - /* 20 */ {"AERGN05", "Aerosol type 5 source/gain accumulated [kg m**-2]"}, - /* 21 */ {"AERGN06", "Aerosol type 6 source/gain accumulated [kg m**-2]"}, - /* 22 */ {"AERGN07", "Aerosol type 7 source/gain accumulated [kg m**-2]"}, - /* 23 */ {"AERGN08", "Aerosol type 8 source/gain accumulated [kg m**-2]"}, - /* 24 */ {"AERGN09", "Aerosol type 9 source/gain accumulated [kg m**-2]"}, - /* 25 */ {"AERGN10", "Aerosol type 10 source/gain accumulated [kg m**-2]"}, - /* 26 */ {"AERGN11", "Aerosol type 11 source/gain accumulated [kg m**-2]"}, - /* 27 */ {"AERGN12", "Aerosol type 12 source/gain accumulated [kg m**-2]"}, - /* 28 */ {"var28", "undefined"}, - /* 29 */ {"var29", "undefined"}, - /* 30 */ {"var30", "undefined"}, - /* 31 */ {"AERLS01", "Aerosol type 1 sink/loss accumulated [kg m**-2]"}, - /* 32 */ {"AERLS02", "Aerosol type 2 sink/loss accumulated [kg m**-2]"}, - /* 33 */ {"AERLS03", "Aerosol type 3 sink/loss accumulated [kg m**-2]"}, - /* 34 */ {"AERLS04", "Aerosol type 4 sink/loss accumulated [kg m**-2]"}, - /* 35 */ {"AERLS05", "Aerosol type 5 sink/loss accumulated [kg m**-2]"}, - /* 36 */ {"AERLS06", "Aerosol type 6 sink/loss accumulated [kg m**-2]"}, - /* 37 */ {"AERLS07", "Aerosol type 7 sink/loss accumulated [kg m**-2]"}, - /* 38 */ {"AERLS08", "Aerosol type 8 sink/loss accumulated [kg m**-2]"}, - /* 39 */ {"AERLS09", "Aerosol type 9 sink/loss accumulated [kg m**-2]"}, - /* 40 */ {"AERLS10", "Aerosol type 10 sink/loss accumulated [kg m**-2]"}, - /* 41 */ {"AERLS11", "Aerosol type 11 sink/loss accumulated [kg m**-2]"}, - /* 42 */ {"AERLS12", "Aerosol type 12 sink/loss accumulated [kg m**-2]"}, - /* 43 */ {"var43", "undefined"}, - /* 44 */ {"var44", "undefined"}, - /* 45 */ {"var45", "undefined"}, - /* 46 */ {"AERPR", "Aerosol precursor mixing ratio [kg kg**-1]"}, - /* 47 */ {"AERSM", "Aerosol small mode mixing ratio [kg kg**-1]"}, - /* 48 */ {"AERLG", "Aerosol large mode mixing ratio [kg kg**-1]"}, - /* 49 */ {"AODPR", "Aerosol precursor optical depth [dimensionless]"}, - /* 50 */ {"AODSM", "Aerosol small mode optical depth [dimensionless]"}, - /* 51 */ {"AODLG", "Aerosol large mode optical depth [dimensionless]"}, - /* 52 */ {"AERDEP", "Dust emission potential [kg s**2 m**-5]"}, - /* 53 */ {"AERLTS", "Lifting threshold speed [m s**-1]"}, - /* 54 */ {"AERSCC", "Soil clay content [%]"}, - /* 55 */ {"var55", "undefined"}, - /* 56 */ {"var56", "undefined"}, - /* 57 */ {"var57", "undefined"}, - /* 58 */ {"var58", "undefined"}, - /* 59 */ {"var59", "undefined"}, - /* 60 */ {"var60", "undefined"}, - /* 61 */ {"CO2", "Carbon Dioxide [kg kg**-1]"}, - /* 62 */ {"CH4", "Methane [kg kg**-1]"}, - /* 63 */ {"N2O", "Nitrous oxide [kg kg**-1]"}, - /* 64 */ {"TCCO2", "Total column Carbon Dioxide [kg m**-2]"}, - /* 65 */ {"TCCH4", "Total column Methane [kg m**-2]"}, - /* 66 */ {"TCN2O", "Total column Nitrous oxide [kg m**-2]"}, - /* 67 */ {"CO2OF", "Ocean flux of Carbon Dioxide [kg m**-2 s**-1]"}, - /* 68 */ {"CO2NBF", "Natural biosphere flux of Carbon Dioxide [kg m**-2 s**-1]"}, - /* 69 */ {"CO2APF", "Anthropogenic emissions of Carbon Dioxide [kg m**-2 s**-1]"}, - /* 70 */ {"CH4F", "Methane Surface Fluxes [kg m**-2 s**-1]"}, - /* 71 */ {"kCH4", "Methane loss rate due to radical hydroxyl (OH) [s**-1]"}, - /* 72 */ {"var72", "undefined"}, - /* 73 */ {"var73", "undefined"}, - /* 74 */ {"var74", "undefined"}, - /* 75 */ {"var75", "undefined"}, - /* 76 */ {"var76", "undefined"}, - /* 77 */ {"var77", "undefined"}, - /* 78 */ {"var78", "undefined"}, - /* 79 */ {"var79", "undefined"}, - /* 80 */ {"CO2FIRE", "Wildfire flux of Carbon Dioxide [kg m**-2 s**-1]"}, - /* 81 */ {"COFIRE", "Wildfire flux of Carbon Monoxide [kg m**-2 s**-1]"}, - /* 82 */ {"CH4FIRE", "Wildfire flux of Methane [kg m**-2 s**-1]"}, - /* 83 */ {"NMHCFIRE", "Wildfire flux of Non-Methane Hydro-Carbons [kg m**-2 s**-1]"}, - /* 84 */ {"H2FIRE", "Wildfire flux of Hydrogen [kg m**-2 s**-1]"}, - /* 85 */ {"NOXFIRE", "Wildfire flux of Nitrogen Oxides NOx [kg m**-2 s**-1]"}, - /* 86 */ {"N2OFIRE", "Wildfire flux of Nitrous Oxide [kg m**-2 s**-1]"}, - /* 87 */ {"PM2P5FIRE", "Wildfire flux of Particulate Matter PM2.5 [kg m**-2 s**-1]"}, - /* 88 */ {"TPMFIRE", "Wildfire flux of Total Particulate Matter [kg m**-2 s**-1]"}, - /* 89 */ {"TCFIRE", "Wildfire flux of Total Carbon in Aerosols [kg m**-2 s**-1]"}, - /* 90 */ {"OCFIRE", "Wildfire flux of Organic Carbon [kg m**-2 s**-1]"}, - /* 91 */ {"BCFIRE", "Wildfire flux of Black Carbon [kg m**-2 s**-1]"}, - /* 92 */ {"CFIRE", "Wildfire overall flux of burnt Carbon [kg m**-2 s**-1]"}, - /* 93 */ {"C4FFIRE", "Wildfire fraction of C4 plants [dimensionless]"}, - /* 94 */ {"VEGFIRE", "Wildfire vegetation map index [dimensionless]"}, - /* 95 */ {"CCFIRE", "Wildfire Combustion Completeness [dimensionless]"}, - /* 96 */ {"FLFIRE", "Wildfire Fuel Load"}, - /* 97 */ {"BFFIRE", "Wildfire fraction of area burnt [dimensionless]"}, - /* 98 */ {"OAFIRE", "Wildfire observed area [m**2]"}, - /* 99 */ {"FRPFIRE", "Wildfire radiative power [W m**-2]"}, - /* 100 */ {"CRFIRE", "Wildfire combustion rate [kg m**-2 s**-1]"}, - /* 101 */ {"var101", "undefined"}, - /* 102 */ {"var102", "undefined"}, - /* 103 */ {"var103", "undefined"}, - /* 104 */ {"var104", "undefined"}, - /* 105 */ {"var105", "undefined"}, - /* 106 */ {"var106", "undefined"}, - /* 107 */ {"var107", "undefined"}, - /* 108 */ {"var108", "undefined"}, - /* 109 */ {"var109", "undefined"}, - /* 110 */ {"var110", "undefined"}, - /* 111 */ {"var111", "undefined"}, - /* 112 */ {"var112", "undefined"}, - /* 113 */ {"var113", "undefined"}, - /* 114 */ {"var114", "undefined"}, - /* 115 */ {"var115", "undefined"}, - /* 116 */ {"var116", "undefined"}, - /* 117 */ {"var117", "undefined"}, - /* 118 */ {"var118", "undefined"}, - /* 119 */ {"var119", "undefined"}, - /* 120 */ {"var120", "undefined"}, - /* 121 */ {"NO2", "Nitrogen dioxide [kg kg**-1]"}, - /* 122 */ {"SO2", "Sulphur dioxide [kg kg**-1]"}, - /* 123 */ {"CO", "Carbon monoxide [kg kg**-1]"}, - /* 124 */ {"HCHO", "Formaldehyde [kg kg**-1]"}, - /* 125 */ {"TCNO2", "Total column Nitrogen dioxide [kg m**-2]"}, - /* 126 */ {"TCSO2", "Total column Sulphur dioxide [kg m**-2]"}, - /* 127 */ {"TCCO", "Total column Carbon monoxide [kg m**-2]"}, - /* 128 */ {"TCHCHO", "Total column Formaldehyde [kg m**-2]"}, - /* 129 */ {"NOX", "Nitrogen Oxides [kg kg**-1]"}, - /* 130 */ {"TCNOX", "Total Column Nitrogen Oxides [kg m**-2]"}, - /* 131 */ {"GRG1", "Reactive tracer 1 mass mixing ratio [kg kg**-1]"}, - /* 132 */ {"TCGRG1", "Total column GRG tracer 1 [kg m**-2]"}, - /* 133 */ {"GRG2", "Reactive tracer 2 mass mixing ratio [kg kg**-1]"}, - /* 134 */ {"TCGRG2", "Total column GRG tracer 2 [kg m**-2]"}, - /* 135 */ {"GRG3", "Reactive tracer 3 mass mixing ratio [kg kg**-1]"}, - /* 136 */ {"TCGRG3", "Total column GRG tracer 3 [kg m**-2]"}, - /* 137 */ {"GRG4", "Reactive tracer 4 mass mixing ratio [kg kg**-1]"}, - /* 138 */ {"TCGRG4", "Total column GRG tracer 4 [kg m**-2]"}, - /* 139 */ {"GRG5", "Reactive tracer 5 mass mixing ratio [kg kg**-1]"}, - /* 140 */ {"TCGRG5", "Total column GRG tracer 5 [kg m**-2]"}, - /* 141 */ {"GRG6", "Reactive tracer 6 mass mixing ratio [kg kg**-1]"}, - /* 142 */ {"TCGRG6", "Total column GRG tracer 6 [kg m**-2]"}, - /* 143 */ {"GRG7", "Reactive tracer 7 mass mixing ratio [kg kg**-1]"}, - /* 144 */ {"TCGRG7", "Total column GRG tracer 7 [kg m**-2]"}, - /* 145 */ {"GRG8", "Reactive tracer 8 mass mixing ratio [kg kg**-1]"}, - /* 146 */ {"TCGRG8", "Total column GRG tracer 8 [kg m**-2]"}, - /* 147 */ {"GRG9", "Reactive tracer 9 mass mixing ratio [kg kg**-1]"}, - /* 148 */ {"TCGRG9", "Total column GRG tracer 9 [kg m**-2]"}, - /* 149 */ {"GRG10", "Reactive tracer 10 mass mixing ratio [kg kg**-1]"}, - /* 150 */ {"TCGRG10", "Total column GRG tracer 10 [kg m**-2]"}, - /* 151 */ {"SFNOX", "Surface flux Nitrogen oxides [kg m**-2 s**-1]"}, - /* 152 */ {"SFNO2", "Surface flux Nitrogen dioxide [kg m**-2 s**-1]"}, - /* 153 */ {"SFSO2", "Surface flux Sulphur dioxide [kg m**-2 s**-1]"}, - /* 154 */ {"SFCO2", "Surface flux Carbon monoxide [kg m**-2 s**-1]"}, - /* 155 */ {"SFHCHO", "Surface flux Formaldehyde [kg m**-2 s**-1]"}, - /* 156 */ {"SFGO3", "Surface flux GEMS Ozone [kg m**-2 s**-1]"}, - /* 157 */ {"SFGR1", "Surface flux reactive tracer 1 [kg m**-2 s**-1]"}, - /* 158 */ {"SFGR2", "Surface flux reactive tracer 2 [kg m**-2 s**-1]"}, - /* 159 */ {"SFGR3", "Surface flux reactive tracer 3 [kg m**-2 s**-1]"}, - /* 160 */ {"SFGR4", "Surface flux reactive tracer 4 [kg m**-2 s**-1]"}, - /* 161 */ {"SFGR5", "Surface flux reactive tracer 5 [kg m**-2 s**-1]"}, - /* 162 */ {"SFGR6", "Surface flux reactive tracer 6 [kg m**-2 s**-1]"}, - /* 163 */ {"SFGR7", "Surface flux reactive tracer 7 [kg m**-2 s**-1]"}, - /* 164 */ {"SFGR8", "Surface flux reactive tracer 8 [kg m**-2 s**-1]"}, - /* 165 */ {"SFGR9", "Surface flux reactive tracer 9 [kg m**-2 s**-1]"}, - /* 166 */ {"SFGR10", "Surface flux reactive tracer 10 [kg m**-2 s**-1]"}, - /* 167 */ {"var167", "undefined"}, - /* 168 */ {"var168", "undefined"}, - /* 169 */ {"var169", "undefined"}, - /* 170 */ {"var170", "undefined"}, - /* 171 */ {"var171", "undefined"}, - /* 172 */ {"var172", "undefined"}, - /* 173 */ {"var173", "undefined"}, - /* 174 */ {"var174", "undefined"}, - /* 175 */ {"var175", "undefined"}, - /* 176 */ {"var176", "undefined"}, - /* 177 */ {"var177", "undefined"}, - /* 178 */ {"var178", "undefined"}, - /* 179 */ {"var179", "undefined"}, - /* 180 */ {"var180", "undefined"}, - /* 181 */ {"Ra", "Radon [kg kg**-1]"}, - /* 182 */ {"SF6", "Sulphur Hexafluoride [kg kg**-1]"}, - /* 183 */ {"TCRa", "Total column Radon [kg m**-2]"}, - /* 184 */ {"TCSF6", "Total column Sulphur Hexafluoride [kg m**-2]"}, - /* 185 */ {"SF6APF", "Anthropogenic Emissions of Sulphur Hexafluoride [kg m**-2 s**-1]"}, - /* 186 */ {"var186", "undefined"}, - /* 187 */ {"var187", "undefined"}, - /* 188 */ {"var188", "undefined"}, - /* 189 */ {"var189", "undefined"}, - /* 190 */ {"var190", "undefined"}, - /* 191 */ {"var191", "undefined"}, - /* 192 */ {"var192", "undefined"}, - /* 193 */ {"var193", "undefined"}, - /* 194 */ {"var194", "undefined"}, - /* 195 */ {"var195", "undefined"}, - /* 196 */ {"var196", "undefined"}, - /* 197 */ {"var197", "undefined"}, - /* 198 */ {"var198", "undefined"}, - /* 199 */ {"var199", "undefined"}, - /* 200 */ {"var200", "undefined"}, - /* 201 */ {"var201", "undefined"}, - /* 202 */ {"var202", "undefined"}, - /* 203 */ {"GO3", "GEMS Ozone [kg kg**-1]"}, - /* 204 */ {"var204", "undefined"}, - /* 205 */ {"var205", "undefined"}, - /* 206 */ {"GTCO3", "GEMS Total column ozone [kg m**-2]"}, - /* 207 */ {"AOD550", "Total Aerosol Optical Depth at 550nm [-]"}, - /* 208 */ {"SSAOD550", "Sea Salt Aerosol Optical Depth at 550nm [-]"}, - /* 209 */ {"DUAOD550", "Dust Aerosol Optical Depth at 550nm [-]"}, - /* 210 */ {"OMAOD550", "Organic Matter Aerosol Optical Depth at 550nm [-]"}, - /* 211 */ {"BCAOD550", "Black Carbon Aerosol Optical Depth at 550nm [-]"}, - /* 212 */ {"SUAOD550", "Sulphate Aerosol Optical Depth at 550nm [-]"}, - /* 213 */ {"AOD469", "Total Aerosol Optical Depth at 469nm [-]"}, - /* 214 */ {"AOD670", "Total Aerosol Optical Depth at 670nm [-]"}, - /* 215 */ {"AOD865", "Total Aerosol Optical Depth at 865nm [-]"}, - /* 216 */ {"AOD1240", "Total Aerosol Optical Depth at 1240nm [-]"}, - /* 217 */ {"var217", "undefined"}, - /* 218 */ {"var218", "undefined"}, - /* 219 */ {"var219", "undefined"}, - /* 220 */ {"var220", "undefined"}, - /* 221 */ {"var221", "undefined"}, - /* 222 */ {"var222", "undefined"}, - /* 223 */ {"var223", "undefined"}, - /* 224 */ {"var224", "undefined"}, - /* 225 */ {"var225", "undefined"}, - /* 226 */ {"var226", "undefined"}, - /* 227 */ {"var227", "undefined"}, - /* 228 */ {"var228", "undefined"}, - /* 229 */ {"var229", "undefined"}, - /* 230 */ {"var230", "undefined"}, - /* 231 */ {"var231", "undefined"}, - /* 232 */ {"var232", "undefined"}, - /* 233 */ {"var233", "undefined"}, - /* 234 */ {"var234", "undefined"}, - /* 235 */ {"var235", "undefined"}, - /* 236 */ {"var236", "undefined"}, - /* 237 */ {"var237", "undefined"}, - /* 238 */ {"var238", "undefined"}, - /* 239 */ {"var239", "undefined"}, - /* 240 */ {"var240", "undefined"}, - /* 241 */ {"var241", "undefined"}, - /* 242 */ {"var242", "undefined"}, - /* 243 */ {"var243", "undefined"}, - /* 244 */ {"var244", "undefined"}, - /* 245 */ {"var245", "undefined"}, - /* 246 */ {"var246", "undefined"}, - /* 247 */ {"var247", "undefined"}, - /* 248 */ {"var248", "undefined"}, - /* 249 */ {"var249", "undefined"}, - /* 250 */ {"var250", "undefined"}, - /* 251 */ {"var251", "undefined"}, - /* 252 */ {"var252", "undefined"}, - /* 253 */ {"var253", "undefined"}, - /* 254 */ {"var254", "undefined"}, - /* 255 */ {"var255", "undefined"}, -}; - -const struct ParmTable parm_table_ecmwf_211[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"var1", "undefined"}, - /* 2 */ {"var2", "undefined"}, - /* 3 */ {"var3", "undefined"}, - /* 4 */ {"var4", "undefined"}, - /* 5 */ {"var5", "undefined"}, - /* 6 */ {"var6", "undefined"}, - /* 7 */ {"var7", "undefined"}, - /* 8 */ {"var8", "undefined"}, - /* 9 */ {"var9", "undefined"}, - /* 10 */ {"var10", "undefined"}, - /* 11 */ {"var11", "undefined"}, - /* 12 */ {"var12", "undefined"}, - /* 13 */ {"var13", "undefined"}, - /* 14 */ {"var14", "undefined"}, - /* 15 */ {"var15", "undefined"}, - /* 16 */ {"var16", "undefined"}, - /* 17 */ {"var17", "undefined"}, - /* 18 */ {"var18", "undefined"}, - /* 19 */ {"var19", "undefined"}, - /* 20 */ {"var20", "undefined"}, - /* 21 */ {"var21", "undefined"}, - /* 22 */ {"var22", "undefined"}, - /* 23 */ {"var23", "undefined"}, - /* 24 */ {"var24", "undefined"}, - /* 25 */ {"var25", "undefined"}, - /* 26 */ {"var26", "undefined"}, - /* 27 */ {"var27", "undefined"}, - /* 28 */ {"var28", "undefined"}, - /* 29 */ {"var29", "undefined"}, - /* 30 */ {"var30", "undefined"}, - /* 31 */ {"var31", "undefined"}, - /* 32 */ {"var32", "undefined"}, - /* 33 */ {"var33", "undefined"}, - /* 34 */ {"var34", "undefined"}, - /* 35 */ {"var35", "undefined"}, - /* 36 */ {"var36", "undefined"}, - /* 37 */ {"var37", "undefined"}, - /* 38 */ {"var38", "undefined"}, - /* 39 */ {"var39", "undefined"}, - /* 40 */ {"var40", "undefined"}, - /* 41 */ {"var41", "undefined"}, - /* 42 */ {"var42", "undefined"}, - /* 43 */ {"var43", "undefined"}, - /* 44 */ {"var44", "undefined"}, - /* 45 */ {"var45", "undefined"}, - /* 46 */ {"AERPR", "Aerosol precursor mixing ratio [kg kg**-1]"}, - /* 47 */ {"AERSM", "Aerosol small mode mixing ratio [kg kg**-1]"}, - /* 48 */ {"AERLG", "Aerosol large mode mixing ratio [kg kg**-1]"}, - /* 49 */ {"AODPR", "Aerosol precursor optical depth [dimensionless]"}, - /* 50 */ {"AODSM", "Aerosol small mode optical depth [dimensionless]"}, - /* 51 */ {"AODLG", "Aerosol large mode optical depth [dimensionless]"}, - /* 52 */ {"var52", "undefined"}, - /* 53 */ {"var53", "undefined"}, - /* 54 */ {"var54", "undefined"}, - /* 55 */ {"var55", "undefined"}, - /* 56 */ {"var56", "undefined"}, - /* 57 */ {"var57", "undefined"}, - /* 58 */ {"var58", "undefined"}, - /* 59 */ {"var59", "undefined"}, - /* 60 */ {"var60", "undefined"}, - /* 61 */ {"CO2", "Carbon Dioxide [kg kg**-1]"}, - /* 62 */ {"CH4", "Methane [kg kg**-1]"}, - /* 63 */ {"N2O", "Nitrous oxide [kg kg**-1]"}, - /* 64 */ {"var64", "undefined"}, - /* 65 */ {"var65", "undefined"}, - /* 66 */ {"var66", "undefined"}, - /* 67 */ {"var67", "undefined"}, - /* 68 */ {"var68", "undefined"}, - /* 69 */ {"var69", "undefined"}, - /* 70 */ {"var70", "undefined"}, - /* 71 */ {"var71", "undefined"}, - /* 72 */ {"var72", "undefined"}, - /* 73 */ {"var73", "undefined"}, - /* 74 */ {"var74", "undefined"}, - /* 75 */ {"var75", "undefined"}, - /* 76 */ {"var76", "undefined"}, - /* 77 */ {"var77", "undefined"}, - /* 78 */ {"var78", "undefined"}, - /* 79 */ {"var79", "undefined"}, - /* 80 */ {"var80", "undefined"}, - /* 81 */ {"var81", "undefined"}, - /* 82 */ {"var82", "undefined"}, - /* 83 */ {"var83", "undefined"}, - /* 84 */ {"var84", "undefined"}, - /* 85 */ {"var85", "undefined"}, - /* 86 */ {"var86", "undefined"}, - /* 87 */ {"var87", "undefined"}, - /* 88 */ {"var88", "undefined"}, - /* 89 */ {"var89", "undefined"}, - /* 90 */ {"var90", "undefined"}, - /* 91 */ {"var91", "undefined"}, - /* 92 */ {"var92", "undefined"}, - /* 93 */ {"var93", "undefined"}, - /* 94 */ {"var94", "undefined"}, - /* 95 */ {"var95", "undefined"}, - /* 96 */ {"var96", "undefined"}, - /* 97 */ {"var97", "undefined"}, - /* 98 */ {"var98", "undefined"}, - /* 99 */ {"var99", "undefined"}, - /* 100 */ {"var100", "undefined"}, - /* 101 */ {"var101", "undefined"}, - /* 102 */ {"var102", "undefined"}, - /* 103 */ {"var103", "undefined"}, - /* 104 */ {"var104", "undefined"}, - /* 105 */ {"var105", "undefined"}, - /* 106 */ {"var106", "undefined"}, - /* 107 */ {"var107", "undefined"}, - /* 108 */ {"var108", "undefined"}, - /* 109 */ {"var109", "undefined"}, - /* 110 */ {"var110", "undefined"}, - /* 111 */ {"var111", "undefined"}, - /* 112 */ {"var112", "undefined"}, - /* 113 */ {"var113", "undefined"}, - /* 114 */ {"var114", "undefined"}, - /* 115 */ {"var115", "undefined"}, - /* 116 */ {"var116", "undefined"}, - /* 117 */ {"var117", "undefined"}, - /* 118 */ {"var118", "undefined"}, - /* 119 */ {"var119", "undefined"}, - /* 120 */ {"var120", "undefined"}, - /* 121 */ {"NO2", "Nitrogen dioxide [kg kg**-1]"}, - /* 122 */ {"SO2", "Sulphur dioxide [kg kg**-1]"}, - /* 123 */ {"CO", "Carbon monoxide [kg kg**-1]"}, - /* 124 */ {"HCHO", "Formaldehyde [kg kg**-1]"}, - /* 125 */ {"var125", "undefined"}, - /* 126 */ {"var126", "undefined"}, - /* 127 */ {"var127", "undefined"}, - /* 128 */ {"var128", "undefined"}, - /* 129 */ {"var129", "undefined"}, - /* 130 */ {"var130", "undefined"}, - /* 131 */ {"var131", "undefined"}, - /* 132 */ {"var132", "undefined"}, - /* 133 */ {"var133", "undefined"}, - /* 134 */ {"var134", "undefined"}, - /* 135 */ {"var135", "undefined"}, - /* 136 */ {"var136", "undefined"}, - /* 137 */ {"var137", "undefined"}, - /* 138 */ {"var138", "undefined"}, - /* 139 */ {"var139", "undefined"}, - /* 140 */ {"var140", "undefined"}, - /* 141 */ {"var141", "undefined"}, - /* 142 */ {"var142", "undefined"}, - /* 143 */ {"var143", "undefined"}, - /* 144 */ {"var144", "undefined"}, - /* 145 */ {"var145", "undefined"}, - /* 146 */ {"var146", "undefined"}, - /* 147 */ {"var147", "undefined"}, - /* 148 */ {"var148", "undefined"}, - /* 149 */ {"var149", "undefined"}, - /* 150 */ {"var150", "undefined"}, - /* 151 */ {"var151", "undefined"}, - /* 152 */ {"var152", "undefined"}, - /* 153 */ {"var153", "undefined"}, - /* 154 */ {"var154", "undefined"}, - /* 155 */ {"var155", "undefined"}, - /* 156 */ {"var156", "undefined"}, - /* 157 */ {"var157", "undefined"}, - /* 158 */ {"var158", "undefined"}, - /* 159 */ {"var159", "undefined"}, - /* 160 */ {"var160", "undefined"}, - /* 161 */ {"var161", "undefined"}, - /* 162 */ {"var162", "undefined"}, - /* 163 */ {"var163", "undefined"}, - /* 164 */ {"var164", "undefined"}, - /* 165 */ {"var165", "undefined"}, - /* 166 */ {"var166", "undefined"}, - /* 167 */ {"var167", "undefined"}, - /* 168 */ {"var168", "undefined"}, - /* 169 */ {"var169", "undefined"}, - /* 170 */ {"var170", "undefined"}, - /* 171 */ {"var171", "undefined"}, - /* 172 */ {"var172", "undefined"}, - /* 173 */ {"var173", "undefined"}, - /* 174 */ {"var174", "undefined"}, - /* 175 */ {"var175", "undefined"}, - /* 176 */ {"var176", "undefined"}, - /* 177 */ {"var177", "undefined"}, - /* 178 */ {"var178", "undefined"}, - /* 179 */ {"var179", "undefined"}, - /* 180 */ {"var180", "undefined"}, - /* 181 */ {"var181", "undefined"}, - /* 182 */ {"var182", "undefined"}, - /* 183 */ {"var183", "undefined"}, - /* 184 */ {"var184", "undefined"}, - /* 185 */ {"var185", "undefined"}, - /* 186 */ {"var186", "undefined"}, - /* 187 */ {"var187", "undefined"}, - /* 188 */ {"var188", "undefined"}, - /* 189 */ {"var189", "undefined"}, - /* 190 */ {"var190", "undefined"}, - /* 191 */ {"var191", "undefined"}, - /* 192 */ {"var192", "undefined"}, - /* 193 */ {"var193", "undefined"}, - /* 194 */ {"var194", "undefined"}, - /* 195 */ {"var195", "undefined"}, - /* 196 */ {"var196", "undefined"}, - /* 197 */ {"var197", "undefined"}, - /* 198 */ {"var198", "undefined"}, - /* 199 */ {"var199", "undefined"}, - /* 200 */ {"var200", "undefined"}, - /* 201 */ {"var201", "undefined"}, - /* 202 */ {"var202", "undefined"}, - /* 203 */ {"GO3", "GEMS Ozone [kg kg**-1]"}, - /* 204 */ {"var204", "undefined"}, - /* 205 */ {"var205", "undefined"}, - /* 206 */ {"var206", "undefined"}, - /* 207 */ {"var207", "undefined"}, - /* 208 */ {"var208", "undefined"}, - /* 209 */ {"var209", "undefined"}, - /* 210 */ {"var210", "undefined"}, - /* 211 */ {"var211", "undefined"}, - /* 212 */ {"var212", "undefined"}, - /* 213 */ {"var213", "undefined"}, - /* 214 */ {"var214", "undefined"}, - /* 215 */ {"var215", "undefined"}, - /* 216 */ {"var216", "undefined"}, - /* 217 */ {"var217", "undefined"}, - /* 218 */ {"var218", "undefined"}, - /* 219 */ {"var219", "undefined"}, - /* 220 */ {"var220", "undefined"}, - /* 221 */ {"var221", "undefined"}, - /* 222 */ {"var222", "undefined"}, - /* 223 */ {"var223", "undefined"}, - /* 224 */ {"var224", "undefined"}, - /* 225 */ {"var225", "undefined"}, - /* 226 */ {"var226", "undefined"}, - /* 227 */ {"var227", "undefined"}, - /* 228 */ {"var228", "undefined"}, - /* 229 */ {"var229", "undefined"}, - /* 230 */ {"var230", "undefined"}, - /* 231 */ {"var231", "undefined"}, - /* 232 */ {"var232", "undefined"}, - /* 233 */ {"var233", "undefined"}, - /* 234 */ {"var234", "undefined"}, - /* 235 */ {"var235", "undefined"}, - /* 236 */ {"var236", "undefined"}, - /* 237 */ {"var237", "undefined"}, - /* 238 */ {"var238", "undefined"}, - /* 239 */ {"var239", "undefined"}, - /* 240 */ {"var240", "undefined"}, - /* 241 */ {"var241", "undefined"}, - /* 242 */ {"var242", "undefined"}, - /* 243 */ {"var243", "undefined"}, - /* 244 */ {"var244", "undefined"}, - /* 245 */ {"var245", "undefined"}, - /* 246 */ {"var246", "undefined"}, - /* 247 */ {"var247", "undefined"}, - /* 248 */ {"var248", "undefined"}, - /* 249 */ {"var249", "undefined"}, - /* 250 */ {"var250", "undefined"}, - /* 251 */ {"var251", "undefined"}, - /* 252 */ {"var252", "undefined"}, - /* 253 */ {"var253", "undefined"}, - /* 254 */ {"var254", "undefined"}, - /* 255 */ {"var255", "undefined"}, -}; - -const struct ParmTable parm_table_ecmwf_228[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"CIN", "Convective inhibition [J kg**-1]"}, - /* 2 */ {"OROG", "Orography [m]"}, - /* 3 */ {"ZUST", "Friction velocity [m s**-1]"}, - /* 4 */ {"MEAN2T", "Mean temperature at 2 metres [K]"}, - /* 5 */ {"MEAN10WS", "Mean of 10 metre wind speed [m s**-1]"}, - /* 6 */ {"MEANTCC", "Mean total cloud cover [(0 - 1)]"}, - /* 7 */ {"DL", "Lake depth [m]"}, - /* 8 */ {"LMLT", "Lake mix-layer temperature [K]"}, - /* 9 */ {"LMLD", "Lake mix-layer depth [m]"}, - /* 10 */ {"LBLT", "Lake bottom temperature [K]"}, - /* 11 */ {"LTLT", "Lake total layer temperature [K]"}, - /* 12 */ {"LSHF", "Lake shape factor [dimensionless]"}, - /* 13 */ {"LICT", "Lake ice temperature [K]"}, - /* 14 */ {"LICD", "Lake ice depth [m]"}, - /* 15 */ {"DNDZN", "Minimum vertical gradient of refractivity inside trapping layer [m**-1]"}, - /* 16 */ {"DNDZA", "Mean vertical gradient of refractivity inside trapping layer [m**-1]"}, - /* 17 */ {"DCTB", "Duct base height [m]"}, - /* 18 */ {"TPLB", "Trapping layer base height [m]"}, - /* 19 */ {"TPLT", "Trapping layer top height [m]"}, - /* 20 */ {"var20", "undefined"}, - /* 21 */ {"var21", "undefined"}, - /* 22 */ {"var22", "undefined"}, - /* 23 */ {"var23", "undefined"}, - /* 24 */ {"var24", "undefined"}, - /* 25 */ {"var25", "undefined"}, - /* 26 */ {"var26", "undefined"}, - /* 27 */ {"var27", "undefined"}, - /* 28 */ {"var28", "undefined"}, - /* 29 */ {"var29", "undefined"}, - /* 30 */ {"var30", "undefined"}, - /* 31 */ {"var31", "undefined"}, - /* 32 */ {"var32", "undefined"}, - /* 33 */ {"var33", "undefined"}, - /* 34 */ {"var34", "undefined"}, - /* 35 */ {"var35", "undefined"}, - /* 36 */ {"var36", "undefined"}, - /* 37 */ {"var37", "undefined"}, - /* 38 */ {"var38", "undefined"}, - /* 39 */ {"SM", "Soil Moisture [kg m**-3]"}, - /* 40 */ {"var40", "undefined"}, - /* 41 */ {"var41", "undefined"}, - /* 42 */ {"var42", "undefined"}, - /* 43 */ {"var43", "undefined"}, - /* 44 */ {"var44", "undefined"}, - /* 45 */ {"var45", "undefined"}, - /* 46 */ {"var46", "undefined"}, - /* 47 */ {"var47", "undefined"}, - /* 48 */ {"var48", "undefined"}, - /* 49 */ {"var49", "undefined"}, - /* 50 */ {"var50", "undefined"}, - /* 51 */ {"var51", "undefined"}, - /* 52 */ {"var52", "undefined"}, - /* 53 */ {"var53", "undefined"}, - /* 54 */ {"var54", "undefined"}, - /* 55 */ {"var55", "undefined"}, - /* 56 */ {"var56", "undefined"}, - /* 57 */ {"var57", "undefined"}, - /* 58 */ {"var58", "undefined"}, - /* 59 */ {"var59", "undefined"}, - /* 60 */ {"var60", "undefined"}, - /* 61 */ {"var61", "undefined"}, - /* 62 */ {"var62", "undefined"}, - /* 63 */ {"var63", "undefined"}, - /* 64 */ {"var64", "undefined"}, - /* 65 */ {"var65", "undefined"}, - /* 66 */ {"var66", "undefined"}, - /* 67 */ {"var67", "undefined"}, - /* 68 */ {"var68", "undefined"}, - /* 69 */ {"var69", "undefined"}, - /* 70 */ {"var70", "undefined"}, - /* 71 */ {"var71", "undefined"}, - /* 72 */ {"var72", "undefined"}, - /* 73 */ {"var73", "undefined"}, - /* 74 */ {"var74", "undefined"}, - /* 75 */ {"var75", "undefined"}, - /* 76 */ {"var76", "undefined"}, - /* 77 */ {"var77", "undefined"}, - /* 78 */ {"var78", "undefined"}, - /* 79 */ {"var79", "undefined"}, - /* 80 */ {"var80", "undefined"}, - /* 81 */ {"var81", "undefined"}, - /* 82 */ {"var82", "undefined"}, - /* 83 */ {"var83", "undefined"}, - /* 84 */ {"var84", "undefined"}, - /* 85 */ {"var85", "undefined"}, - /* 86 */ {"var86", "undefined"}, - /* 87 */ {"var87", "undefined"}, - /* 88 */ {"var88", "undefined"}, - /* 89 */ {"var89", "undefined"}, - /* 90 */ {"var90", "undefined"}, - /* 91 */ {"var91", "undefined"}, - /* 92 */ {"var92", "undefined"}, - /* 93 */ {"var93", "undefined"}, - /* 94 */ {"var94", "undefined"}, - /* 95 */ {"var95", "undefined"}, - /* 96 */ {"var96", "undefined"}, - /* 97 */ {"var97", "undefined"}, - /* 98 */ {"var98", "undefined"}, - /* 99 */ {"var99", "undefined"}, - /* 100 */ {"var100", "undefined"}, - /* 101 */ {"var101", "undefined"}, - /* 102 */ {"var102", "undefined"}, - /* 103 */ {"var103", "undefined"}, - /* 104 */ {"var104", "undefined"}, - /* 105 */ {"var105", "undefined"}, - /* 106 */ {"var106", "undefined"}, - /* 107 */ {"var107", "undefined"}, - /* 108 */ {"var108", "undefined"}, - /* 109 */ {"var109", "undefined"}, - /* 110 */ {"var110", "undefined"}, - /* 111 */ {"var111", "undefined"}, - /* 112 */ {"var112", "undefined"}, - /* 113 */ {"var113", "undefined"}, - /* 114 */ {"var114", "undefined"}, - /* 115 */ {"var115", "undefined"}, - /* 116 */ {"var116", "undefined"}, - /* 117 */ {"var117", "undefined"}, - /* 118 */ {"var118", "undefined"}, - /* 119 */ {"var119", "undefined"}, - /* 120 */ {"var120", "undefined"}, - /* 121 */ {"var121", "undefined"}, - /* 122 */ {"var122", "undefined"}, - /* 123 */ {"var123", "undefined"}, - /* 124 */ {"var124", "undefined"}, - /* 125 */ {"var125", "undefined"}, - /* 126 */ {"var126", "undefined"}, - /* 127 */ {"var127", "undefined"}, - /* 128 */ {"var128", "undefined"}, - /* 129 */ {"var129", "undefined"}, - /* 130 */ {"var130", "undefined"}, - /* 131 */ {"U10N", "Neutral wind at 10 m x-component [m s**-1]"}, - /* 132 */ {"V10N", "Neutral wind at 10 m y-component [m s**-1]"}, - /* 133 */ {"var133", "undefined"}, - /* 134 */ {"VTNOWD", "V-tendency from non-orographic wave drag [m s**-2]"}, - /* 135 */ {"var135", "undefined"}, - /* 136 */ {"UTNOWD", "U-tendency from non-orographic wave drag [m s**-2]"}, - /* 137 */ {"var137", "undefined"}, - /* 138 */ {"var138", "undefined"}, - /* 139 */ {"ST", "Soil Temperature [K]"}, - /* 140 */ {"var140", "undefined"}, - /* 141 */ {"SD", "Snow Depth water equivalent [m]"}, - /* 142 */ {"var142", "undefined"}, - /* 143 */ {"var143", "undefined"}, - /* 144 */ {"SF", "Snow Fall water equivalent [kg m**-2]"}, - /* 145 */ {"var145", "undefined"}, - /* 146 */ {"var146", "undefined"}, - /* 147 */ {"var147", "undefined"}, - /* 148 */ {"var148", "undefined"}, + /* 142 */ {"LSP", "Large scale precipitation m s**-1"}, + /* 143 */ {"CP", "Convective precipitation m s**-1"}, + /* 144 */ {"SF", "Snowfall (convective + stratiform) m of water equivalent s**-1"}, + /* 145 */ {"BLD", "Boundary layer dissipation W m**-2"}, + /* 146 */ {"SSHF", "Surface sensible heat flux W m**-2"}, + /* 147 */ {"SLHF", "Surface latent heat flux W m**-2"}, + /* 148 */ {"SNR", "Surface net radiation W m**-2"}, /* 149 */ {"var149", "undefined"}, /* 150 */ {"var150", "undefined"}, /* 151 */ {"var151", "undefined"}, /* 152 */ {"var152", "undefined"}, - /* 153 */ {"var153", "undefined"}, - /* 154 */ {"var154", "undefined"}, + /* 153 */ {"SWHR", "Short-wave heating rate K s**-1"}, + /* 154 */ {"LWHR", "Long-wave heating rate K s**-1"}, /* 155 */ {"var155", "undefined"}, /* 156 */ {"var156", "undefined"}, /* 157 */ {"var157", "undefined"}, @@ -9673,40 +7599,40 @@ const struct ParmTable parm_table_ecmwf_228[256] = { /* 161 */ {"var161", "undefined"}, /* 162 */ {"var162", "undefined"}, /* 163 */ {"var163", "undefined"}, - /* 164 */ {"TCC", "Total Cloud Cover [%]"}, + /* 164 */ {"var164", "undefined"}, /* 165 */ {"var165", "undefined"}, /* 166 */ {"var166", "undefined"}, /* 167 */ {"var167", "undefined"}, /* 168 */ {"var168", "undefined"}, - /* 169 */ {"var169", "undefined"}, - /* 170 */ {"CAP", "Field capacity [kg m**-3]"}, - /* 171 */ {"WILT", "Wilting point [kg m**-3]"}, + /* 169 */ {"SSRD", "Surface solar radiation downwards W m**-2"}, + /* 170 */ {"var170", "undefined"}, + /* 171 */ {"var171", "undefined"}, /* 172 */ {"var172", "undefined"}, /* 173 */ {"var173", "undefined"}, /* 174 */ {"var174", "undefined"}, - /* 175 */ {"var175", "undefined"}, - /* 176 */ {"var176", "undefined"}, - /* 177 */ {"var177", "undefined"}, - /* 178 */ {"var178", "undefined"}, - /* 179 */ {"var179", "undefined"}, - /* 180 */ {"var180", "undefined"}, - /* 181 */ {"var181", "undefined"}, - /* 182 */ {"var182", "undefined"}, + /* 175 */ {"STRD", "Surface thermal radiation downwards W m**-2"}, + /* 176 */ {"SSR", "Surface solar radiation W m**-2"}, + /* 177 */ {"STR", "Surface thermal radiation W m**-2"}, + /* 178 */ {"TSR", "Top solar radiation W m**-2"}, + /* 179 */ {"TTR", "Top thermal radiation W m-2"}, + /* 180 */ {"EWSS", "East-West surface stress N m**-2"}, + /* 181 */ {"NSSS", "North-South surface stress N m**-2"}, + /* 182 */ {"E", "Evaporation m of water s**-1"}, /* 183 */ {"var183", "undefined"}, /* 184 */ {"var184", "undefined"}, /* 185 */ {"var185", "undefined"}, /* 186 */ {"var186", "undefined"}, /* 187 */ {"var187", "undefined"}, /* 188 */ {"var188", "undefined"}, - /* 189 */ {"var189", "undefined"}, + /* 189 */ {"SUND", "Sunshine duration"}, /* 190 */ {"var190", "undefined"}, /* 191 */ {"var191", "undefined"}, /* 192 */ {"var192", "undefined"}, /* 193 */ {"var193", "undefined"}, /* 194 */ {"var194", "undefined"}, - /* 195 */ {"var195", "undefined"}, - /* 196 */ {"var196", "undefined"}, - /* 197 */ {"var197", "undefined"}, + /* 195 */ {"LGWS", "Latitudinal component of gravity wave stress N m**-2"}, + /* 196 */ {"MGWS", "Meridional component of gravity wave stress N m**-2"}, + /* 197 */ {"GWD", "Gravity wave dissipation W m**-2"}, /* 198 */ {"var198", "undefined"}, /* 199 */ {"var199", "undefined"}, /* 200 */ {"var200", "undefined"}, @@ -9714,14 +7640,14 @@ const struct ParmTable parm_table_ecmwf_228[256] = { /* 202 */ {"var202", "undefined"}, /* 203 */ {"var203", "undefined"}, /* 204 */ {"var204", "undefined"}, - /* 205 */ {"var205", "undefined"}, + /* 205 */ {"RO", "Runoff m s**-1"}, /* 206 */ {"var206", "undefined"}, /* 207 */ {"var207", "undefined"}, - /* 208 */ {"var208", "undefined"}, - /* 209 */ {"var209", "undefined"}, - /* 210 */ {"var210", "undefined"}, - /* 211 */ {"var211", "undefined"}, - /* 212 */ {"var212", "undefined"}, + /* 208 */ {"TSRC", "Top net solar radiation, clear sky W m**-2"}, + /* 209 */ {"TTRC", "Top net thermal radiation, clear sky W m**-2"}, + /* 210 */ {"SSRC", "Surface net solar radiation, clear sky W m**-2"}, + /* 211 */ {"STRC", "Surface net thermal radiation, clear sky W m**-2"}, + /* 212 */ {"SI", "Solar insolation W m**-2"}, /* 213 */ {"var213", "undefined"}, /* 214 */ {"var214", "undefined"}, /* 215 */ {"var215", "undefined"}, @@ -9737,7 +7663,7 @@ const struct ParmTable parm_table_ecmwf_228[256] = { /* 225 */ {"var225", "undefined"}, /* 226 */ {"var226", "undefined"}, /* 227 */ {"var227", "undefined"}, - /* 228 */ {"TP", "Total Precipitation [kg m**-2]"}, + /* 228 */ {"TP", "Total precipitation m s**-1"}, /* 229 */ {"var229", "undefined"}, /* 230 */ {"var230", "undefined"}, /* 231 */ {"var231", "undefined"}, @@ -9748,8 +7674,8 @@ const struct ParmTable parm_table_ecmwf_228[256] = { /* 236 */ {"var236", "undefined"}, /* 237 */ {"var237", "undefined"}, /* 238 */ {"var238", "undefined"}, - /* 239 */ {"var239", "undefined"}, - /* 240 */ {"var240", "undefined"}, + /* 239 */ {"CSF", "Convective snowfall m of water equivalent s**-1"}, + /* 240 */ {"LSF", "Large-scale snowfall m of water equivalent s**-1"}, /* 241 */ {"var241", "undefined"}, /* 242 */ {"var242", "undefined"}, /* 243 */ {"var243", "undefined"}, @@ -9767,1045 +7693,3118 @@ const struct ParmTable parm_table_ecmwf_228[256] = { /* 255 */ {"var255", "undefined"}, }; -const struct ParmTable parm_table_nceptab_129[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"PRES", "Pressure [Pa]"}, - /* 2 */ {"PRMSL", "Pressure reduced to MSL [Pa]"}, - /* 3 */ {"PTEND", "Pressure tendency [Pa/s]"}, - /* 4 */ {"PVORT", "Pot. vorticity [km^2/kg/s]"}, - /* 5 */ {"ICAHT", "ICAO Standard Atmosphere Reference Height [M]"}, - /* 6 */ {"GP", "Geopotential [m^2/s^2]"}, - /* 7 */ {"HGT", "Geopotential height [gpm]"}, - /* 8 */ {"DIST", "Geometric height [m]"}, - /* 9 */ {"HSTDV", "Std dev of height [m]"}, - /* 10 */ {"TOZNE", "Total ozone [Dobson]"}, - /* 11 */ {"TMP", "Temp. [K]"}, - /* 12 */ {"VTMP", "Virtual temp. [K]"}, - /* 13 */ {"POT", "Potential temp. [K]"}, - /* 14 */ {"EPOT", "Pseudo-adiabatic pot. temp. [K]"}, - /* 15 */ {"TMAX", "Max. temp. [K]"}, - /* 16 */ {"TMIN", "Min. temp. [K]"}, - /* 17 */ {"DPT", "Dew point temp. [K]"}, - /* 18 */ {"DEPR", "Dew point depression [K]"}, - /* 19 */ {"LAPR", "Lapse rate [K/m]"}, - /* 20 */ {"VIS", "Visibility [m]"}, - /* 21 */ {"RDSP1", "Radar spectra (1) [non-dim]"}, - /* 22 */ {"RDSP2", "Radar spectra (2) [non-dim]"}, - /* 23 */ {"RDSP3", "Radar spectra (3) [non-dim]"}, - /* 24 */ {"PLI", "Parcel lifted index (to 500 hPa) [K]"}, - /* 25 */ {"TMPA", "Temp. anomaly [K]"}, - /* 26 */ {"PRESA", "Pressure anomaly [Pa]"}, - /* 27 */ {"GPA", "Geopotential height anomaly [gpm]"}, - /* 28 */ {"WVSP1", "Wave spectra (1) [non-dim]"}, - /* 29 */ {"WVSP2", "Wave spectra (2) [non-dim]"}, - /* 30 */ {"WVSP3", "Wave spectra (3) [non-dim]"}, - /* 31 */ {"WDIR", "Wind direction [deg]"}, - /* 32 */ {"WIND", "Wind speed [m/s]"}, - /* 33 */ {"UGRD", "u wind [m/s]"}, - /* 34 */ {"VGRD", "v wind [m/s]"}, - /* 35 */ {"STRM", "Stream function [m^2/s]"}, - /* 36 */ {"VPOT", "Velocity potential [m^2/s]"}, - /* 37 */ {"MNTSF", "Montgomery stream function [m^2/s^2]"}, - /* 38 */ {"SGCVV", "Sigma coord. vertical velocity [/s]"}, - /* 39 */ {"VVEL", "Pressure vertical velocity [Pa/s]"}, - /* 40 */ {"DZDT", "Geometric vertical velocity [m/s]"}, - /* 41 */ {"ABSV", "Absolute vorticity [/s]"}, - /* 42 */ {"ABSD", "Absolute divergence [/s]"}, - /* 43 */ {"RELV", "Relative vorticity [/s]"}, - /* 44 */ {"RELD", "Relative divergence [/s]"}, - /* 45 */ {"VUCSH", "Vertical u shear [/s]"}, - /* 46 */ {"VVCSH", "Vertical v shear [/s]"}, - /* 47 */ {"DIRC", "Direction of current [deg]"}, - /* 48 */ {"SPC", "Speed of current [m/s]"}, - /* 49 */ {"UOGRD", "u of current [m/s]"}, - /* 50 */ {"VOGRD", "v of current [m/s]"}, - /* 51 */ {"SPFH", "Specific humidity [kg/kg]"}, - /* 52 */ {"RH", "Relative humidity [%]"}, - /* 53 */ {"MIXR", "Humidity mixing ratio [kg/kg]"}, - /* 54 */ {"PWAT", "Precipitable water [kg/m^2]"}, - /* 55 */ {"VAPP", "Vapor pressure [Pa]"}, - /* 56 */ {"SATD", "Saturation deficit [Pa]"}, - /* 57 */ {"EVP", "Evaporation [kg/m^2]"}, - /* 58 */ {"CICE", "Cloud Ice [kg/m^2]"}, - /* 59 */ {"PRATE", "Precipitation rate [kg/m^2/s]"}, - /* 60 */ {"TSTM", "Thunderstorm probability [%]"}, - /* 61 */ {"APCP", "Total precipitation [kg/m^2]"}, - /* 62 */ {"NCPCP", "Large scale precipitation [kg/m^2]"}, - /* 63 */ {"ACPCP", "Convective precipitation [kg/m^2]"}, - /* 64 */ {"SRWEQ", "Snowfall rate water equiv. [kg/m^2/s]"}, - /* 65 */ {"WEASD", "Accum. snow [kg/m^2]"}, - /* 66 */ {"SNOD", "Snow depth [m]"}, - /* 67 */ {"MIXHT", "Mixed layer depth [m]"}, - /* 68 */ {"TTHDP", "Transient thermocline depth [m]"}, - /* 69 */ {"MTHD", "Main thermocline depth [m]"}, - /* 70 */ {"MTHA", "Main thermocline anomaly [m]"}, - /* 71 */ {"TCDC", "Total cloud cover [%]"}, - /* 72 */ {"CDCON", "Convective cloud cover [%]"}, - /* 73 */ {"LCDC", "Low level cloud cover [%]"}, - /* 74 */ {"MCDC", "Mid level cloud cover [%]"}, - /* 75 */ {"HCDC", "High level cloud cover [%]"}, - /* 76 */ {"CWAT", "Cloud water [kg/m^2]"}, - /* 77 */ {"BLI", "Best lifted index (to 500 hPa) [K]"}, - /* 78 */ {"SNOC", "Convective snow [kg/m^2]"}, - /* 79 */ {"SNOL", "Large scale snow [kg/m^2]"}, - /* 80 */ {"WTMP", "Water temp. [K]"}, - /* 81 */ {"LAND", "Land cover (land=1;sea=0) [fraction]"}, - /* 82 */ {"DSLM", "Deviation of sea level from mean [m]"}, - /* 83 */ {"SFCR", "Surface roughness [m]"}, - /* 84 */ {"ALBDO", "Albedo [%]"}, - /* 85 */ {"TSOIL", "Soil temp. [K]"}, - /* 86 */ {"SOILM", "Soil moisture content [kg/m^2]"}, - /* 87 */ {"VEG", "Vegetation [%]"}, - /* 88 */ {"SALTY", "Salinity [kg/kg]"}, - /* 89 */ {"DEN", "Density [kg/m^3]"}, - /* 90 */ {"WATR", "Water runoff [kg/m^2]"}, - /* 91 */ {"ICEC", "Ice concentration (ice=1;no ice=0) [fraction]"}, - /* 92 */ {"ICETK", "Ice thickness [m]"}, - /* 93 */ {"DICED", "Direction of ice drift [deg]"}, - /* 94 */ {"SICED", "Speed of ice drift [m/s]"}, - /* 95 */ {"UICE", "u of ice drift [m/s]"}, - /* 96 */ {"VICE", "v of ice drift [m/s]"}, - /* 97 */ {"ICEG", "Ice growth rate [m/s]"}, - /* 98 */ {"ICED", "Ice divergence [/s]"}, - /* 99 */ {"SNOM", "Snow melt [kg/m^2]"}, - /* 100 */ {"HTSGW", "Sig height of wind waves and swell [m]"}, - /* 101 */ {"WVDIR", "Direction of wind waves [deg]"}, - /* 102 */ {"WVHGT", "Sig height of wind waves [m]"}, - /* 103 */ {"WVPER", "Mean period of wind waves [s]"}, - /* 104 */ {"SWDIR", "Direction of swell waves [deg]"}, - /* 105 */ {"SWELL", "Sig height of swell waves [m]"}, - /* 106 */ {"SWPER", "Mean period of swell waves [s]"}, - /* 107 */ {"DIRPW", "Primary wave direction [deg]"}, - /* 108 */ {"PERPW", "Primary wave mean period [s]"}, - /* 109 */ {"DIRSW", "Secondary wave direction [deg]"}, - /* 110 */ {"PERSW", "Secondary wave mean period [s]"}, - /* 111 */ {"NSWRS", "Net short wave (surface) [W/m^2]"}, - /* 112 */ {"NLWRS", "Net long wave (surface) [W/m^2]"}, - /* 113 */ {"NSWRT", "Net short wave (top) [W/m^2]"}, - /* 114 */ {"NLWRT", "Net long wave (top) [W/m^2]"}, - /* 115 */ {"LWAVR", "Long wave [W/m^2]"}, - /* 116 */ {"SWAVR", "Short wave [W/m^2]"}, - /* 117 */ {"GRAD", "Global radiation [W/m^2]"}, - /* 118 */ {"BRTMP", "Brightness temperature [K]"}, - /* 119 */ {"LWRAD", "Radiance with respect to wave no. [W/m/sr]"}, - /* 120 */ {"SWRAD", "Radiance with respect ot wave len. [W/m^3/sr]"}, - /* 121 */ {"LHTFL", "Latent heat flux [W/m^2]"}, - /* 122 */ {"SHTFL", "Sensible heat flux [W/m^2]"}, - /* 123 */ {"BLYDP", "Boundary layer dissipation [W/m^2]"}, - /* 124 */ {"UFLX", "Zonal momentum flux [N/m^2]"}, - /* 125 */ {"VFLX", "Meridional momentum flux [N/m^2]"}, - /* 126 */ {"WMIXE", "Wind mixing energy [J]"}, - /* 127 */ {"IMGD", "Image data []"}, - /* 128 */ {"PAOT", "Probability anomaly of temp [%]"}, - /* 129 */ {"PAOP", "Probability anomaly of precip [%]"}, - /* 130 */ {"CWR", "Probability of wetting rain > 0.1 in [%]"}, - /* 131 */ {"FRAIN", "Rain fraction of total liquid water []"}, - /* 132 */ {"FICE", "Ice fraction of total condensate []"}, - /* 133 */ {"FRIME", "Rime factor []"}, - /* 134 */ {"CUEFI", "Convective cloud efficiency []"}, - /* 135 */ {"TCOND", "Total condensate [kg/kg]"}, - /* 136 */ {"TCOLW", "Total column cloud water [kg/m/m]"}, - /* 137 */ {"TCOLI", "Total column cloud ice [kg/m/m]"}, - /* 138 */ {"TCOLR", "Total column rain [kg/m/m]"}, - /* 139 */ {"TCOLS", "Total column snow [kg/m/m]"}, - /* 140 */ {"TCOLC", "Total column condensate [kg/m/m]"}, - /* 141 */ {"PLPL", "Pressure of level from which parcel was lifted [Pa]"}, - /* 142 */ {"HLPL", "Height of level from which parcel was lifted [m]"}, - /* 143 */ {"CEMS", "Cloud Emissivity [fraction]"}, - /* 144 */ {"COPD", "Cloud Optical Depth [non-dim]"}, - /* 145 */ {"PSIZ", "Effective Particle size [microns]"}, - /* 146 */ {"TCWAT", "Total Water Cloud [%]"}, - /* 147 */ {"TCICE", "Total Ice Cloud [%]"}, - /* 148 */ {"WDIF", "Wind Difference [m/s]"}, - /* 149 */ {"WSTP", "Wave Steepness [non-dim]"}, - /* 150 */ {"PTAN", "Probability of Temp. above normal [%]"}, - /* 151 */ {"PTNN", "Probability of Temp. near normal [%]"}, - /* 152 */ {"PTBN", "Probability of Temp. below normal [%]"}, - /* 153 */ {"PPAN", "Probability of Precip. above normal [%]"}, - /* 154 */ {"PPNN", "Probability of Precip. near normal [%]"}, - /* 155 */ {"PPBN", "Probability of Precip. below normal [%]"}, - /* 156 */ {"PMTC", "Particulate matter (coarse) [ug/m^3]"}, - /* 157 */ {"PMTF", "Particulate matter (fine) [ug/m^3]"}, - /* 158 */ {"AETMP", "Analysis Error of Temperature [K]"}, - /* 159 */ {"AEDPT", "Analysis Error of Dew Point [K]"}, - /* 160 */ {"AESPH", "Analysis Error of Specific Humidity [kg/kg] wne"}, - /* 161 */ {"AEUWD", "Analysis Error of U-wind [m/s]"}, - /* 162 */ {"AEVWD", "Analysis Error of V-wind [m/s]"}, - /* 163 */ {"LPMTF", "Particulate matter (fine) [log10(ug/m^3)]"}, - /* 164 */ {"LIPMF", "Integrated Column Particulate matter (fine) [log10(ug/m^2)] wne"}, - /* 165 */ {"REFZR", "Derived radar reflectivity backscatter from rain [mm^6/m^3]"}, - /* 166 */ {"REFZI", "Derived radar reflectivity backscatter from ice [mm^6/m^3]"}, - /* 167 */ {"REFZC", "Derived radar reflectivity backscatter from parameterized convection [mm^6/m^3]"}, - /* 168 */ {"TCLSW", "Integrated supercooled liquid water [kg/m^2]"}, - /* 169 */ {"TCOLM", "Total Column Integrated Melting Ice [kg/m^2]"}, - /* 170 */ {"ELRDI", "Ellrod Index [non-dim]"}, - /* 171 */ {"TSEC", "Seconds prior to initial reference time [sec]"}, - /* 172 */ {"TSECA", "Seconds after initial reference time [sec]"}, - /* 173 */ {"NUM", "Number of samples/observations [non-dim]"}, - /* 174 */ {"AEPRS", "Analysis Error of Pressure [Pa]"}, - /* 175 */ {"ICSEV", "Icing Severity [non-dim]"}, - /* 176 */ {"ICPRB", "Icing Probability [non-dim]"}, - /* 177 */ {"LAVNI", "Low-level Aviation Interest [non-dim]"}, - /* 178 */ {"HAVNI", "High-level Aviation Interest [non-dim]"}, - /* 179 */ {"FLGHT", "Flight Category [non-dim]"}, - /* 180 */ {"OZCON", "Ozone concentration [ppb]"}, - /* 181 */ {"OZCAT", "Categorical ozone concentration [?]"}, - /* 182 */ {"VEDH", "vertical heat eddy diffusivity [m^2/s]"}, - /* 183 */ {"SIGV", "Sigma level value [non-dim]"}, - /* 184 */ {"EWGT", "Ensemble Weight [non-dim]"}, - /* 185 */ {"CICEL", "Confidence indicator - Ceiling [non-dim]"}, - /* 186 */ {"CIVIS", "Confidence indicator - Visibility [non-dim]"}, - /* 187 */ {"CIFLT", "Confidence indicator - Flight Category [non-dim]"}, - /* 188 */ {"LAVV", "Latitude of V wind component of velocity [deg]"}, - /* 189 */ {"LOVV", "Longitude of V wind component of velocity [deg]"}, - /* 190 */ {"USCT", "Scatterometer est. U wind component [m/s]"}, - /* 191 */ {"VSCT", "Scatterometer est. V wind component [m/s]"}, - /* 192 */ {"LAUV", "Latitude of U wind component of velocity [deg]"}, - /* 193 */ {"LOUV", "Longitude of U wind component of velocity [deg]"}, - /* 194 */ {"TCHP", "Tropical Cyclone Heat Potential [J/m^2]"}, - /* 195 */ {"DBSS", "Geometric Depth Below Sea Surface [m]"}, - /* 196 */ {"ODHA", "Ocean Dynamic Heat Anomaly [dynamic m]"}, - /* 197 */ {"OHC", "Ocean Heat Content [J/m^2]"}, - /* 198 */ {"SSHG", "Sea Surface Height Relative to Geoid [m]"}, - /* 199 */ {"SLTFL", "Salt flux [g/cm^2/s]"}, - /* 200 */ {"DUVB", "UV-B Downward Solar Flux [W/m^2]"}, - /* 201 */ {"CDUVB", "Clear Sky UV-B Downward Solar Flux [W/m^2]"}, - /* 202 */ {"THFLX", "Total downward heat flux at surface [W/m^2]"}, - /* 203 */ {"UVAR", "U velocity variance [m^2/s^2]"}, - /* 204 */ {"VVAR", "V velocity variance [m^2/s^2]"}, - /* 205 */ {"UVVCC", "UV Velocity Cross Correlation [m^2/s^2]"}, - /* 206 */ {"MCLS", "Meteorological Correlation Length Scale [m]"}, - /* 207 */ {"LAPP", "Latitude of pressure point [deg]"}, - /* 208 */ {"LOPP", "Longitude of pressure point [deg]"}, - /* 209 */ {"var209", "undefined"}, - /* 210 */ {"REFO", "Observed radar reflectivity [dbZ]"}, - /* 211 */ {"REFD", "Derived radar reflectivity [dbZ]"}, - /* 212 */ {"REFC", "Maximum/Composite radar reflectivity [dbZ]"}, - /* 213 */ {"SBT122", "Simulated Brightness Temperature for GOES12, Channel 2 [K]"}, - /* 214 */ {"SBT123", "Simulated Brightness Temperature for GOES12, Channel 3 [K]"}, - /* 215 */ {"SBT124", "Simulated Brightness Temperature for GOES12, Channel 4 [K]"}, - /* 216 */ {"SBT125", "Simulated Brightness Temperature for GOES12, Channel 5 [K]"}, - /* 217 */ {"MINRH", "Minimum Relative Humumidity [%]"}, - /* 218 */ {"MAXRH", "Maximum Relative Humumidity [%]"}, - /* 219 */ {"CEIL", "Ceiling [m]"}, - /* 220 */ {"PBLREG", "Planetary boundary layer regime []"}, - /* 221 */ {"SBC123", "Simulated brightness counts for GOES12, Channel 3 [byte]"}, - /* 222 */ {"SBC124", "Simulated brightness counts for GOES12, Channel 4 [byte]"}, - /* 223 */ {"RPRATE", "Rain precipitation rate [kg/m^2/s]"}, - /* 224 */ {"SPRATE", "Snow precipitation rate [kg/m^2/s]"}, - /* 225 */ {"FPRATE", "Freezing rain precipitation rate [kg/m^2/s]"}, - /* 226 */ {"IPRATE", "Ice pellets precipitation rate [kg/m^2/s]"}, - /* 227 */ {"UPHL", "Updraft Helicity [m^2/s^2]"}, - /* 228 */ {"SURGE", "Storm Surge [m]"}, - /* 229 */ {"ETSRG", "Extra-tropical storm Surge [m]"}, - /* 230 */ {"RHPW", "Relative humidity with respect to precip water [%]"}, - /* 231 */ {"OZMAX1", "Ozone daily max from 1-hour ave [ppbV]"}, - /* 232 */ {"OZMAX8", "Ozone daily max from 8-hour ave [ppbV]"}, - /* 233 */ {"PDMAX1", "PM 2.5 daily max from 1-hour ave [ug/m^3]"}, - /* 234 */ {"PDMAX24", "PM 2.5 daily max from 24-hour ave [ug/m^3]"}, - /* 235 */ {"MAXREF", "Hourly max of sim. reflect at 1km AGL [dbZ]"}, - /* 236 */ {"MXUPHL", "Hourly max updraft helicity 2-5km AGL [m^2/s^2]"}, - /* 237 */ {"MAXUVV", "Hourly max upward vert vel in lowest 400mb [m/s]"}, - /* 238 */ {"MAXDVV", "Hourly max downward vert fel in lowest 400mb [m/s]"}, - /* 239 */ {"MAXVIG", "Hourly max column graupel [kg/m^2]"}, - /* 240 */ {"RETOP", "Radar echo top (18.3 dbZ) [m]"}, - /* 241 */ {"VRATE", "Ventilation rate [m^2/s]"}, - /* 242 */ {"TCSRG20", "20% tropical cyclone storm exceedance [m]"}, - /* 243 */ {"TCSRG30", "30% tropical cyclone storm exceedance [m]"}, - /* 244 */ {"TCSRG40", "40% tropical cyclone storm exceedance [m]"}, - /* 245 */ {"TCSRG50", "50% tropical cyclone storm exceedance [m]"}, - /* 246 */ {"TCSRG60", "60% tropical cyclone storm exceedance [m]"}, - /* 247 */ {"TCSRG70", "70% tropical cyclone storm exceedance [m]"}, - /* 248 */ {"TCSRG80", "80% tropical cyclone storm exceedance [m]"}, - /* 249 */ {"TCSRG90", "90% tropical cyclone storm exceedance [m]"}, - /* 250 */ {"HINDEX", "Haines index []"}, - /* 251 */ {"DIFTEN", "Difference between 2 states in total energy norm [J/kg]"}, - /* 252 */ {"PSPCP", "Pseudo-precipitation [kg/m^2]"}, - /* 253 */ {"MAXUW", "U of hourly max 10m wind speed [m/s]"}, - /* 254 */ {"MAXVW", "V of hourly max 10m wind speed [m/s]"}, - /* 255 */ {"var255", "undefined"}, + +const struct ParmTable parm_table_ecmwf_173[256] = { + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"var1", "undefined"}, + /* 2 */ {"var2", "undefined"}, + /* 3 */ {"var3", "undefined"}, + /* 4 */ {"var4", "undefined"}, + /* 5 */ {"var5", "undefined"}, + /* 6 */ {"var6", "undefined"}, + /* 7 */ {"var7", "undefined"}, + /* 8 */ {"var8", "undefined"}, + /* 9 */ {"var9", "undefined"}, + /* 10 */ {"var10", "undefined"}, + /* 11 */ {"var11", "undefined"}, + /* 12 */ {"var12", "undefined"}, + /* 13 */ {"var13", "undefined"}, + /* 14 */ {"var14", "undefined"}, + /* 15 */ {"var15", "undefined"}, + /* 16 */ {"var16", "undefined"}, + /* 17 */ {"var17", "undefined"}, + /* 18 */ {"var18", "undefined"}, + /* 19 */ {"var19", "undefined"}, + /* 20 */ {"var20", "undefined"}, + /* 21 */ {"var21", "undefined"}, + /* 22 */ {"var22", "undefined"}, + /* 23 */ {"var23", "undefined"}, + /* 24 */ {"var24", "undefined"}, + /* 25 */ {"var25", "undefined"}, + /* 26 */ {"var26", "undefined"}, + /* 27 */ {"var27", "undefined"}, + /* 28 */ {"var28", "undefined"}, + /* 29 */ {"var29", "undefined"}, + /* 30 */ {"var30", "undefined"}, + /* 31 */ {"var31", "undefined"}, + /* 32 */ {"var32", "undefined"}, + /* 33 */ {"var33", "undefined"}, + /* 34 */ {"var34", "undefined"}, + /* 35 */ {"var35", "undefined"}, + /* 36 */ {"var36", "undefined"}, + /* 37 */ {"var37", "undefined"}, + /* 38 */ {"var38", "undefined"}, + /* 39 */ {"var39", "undefined"}, + /* 40 */ {"var40", "undefined"}, + /* 41 */ {"var41", "undefined"}, + /* 42 */ {"var42", "undefined"}, + /* 43 */ {"var43", "undefined"}, + /* 44 */ {"var44", "Snow evaporation anomaly [m of water s**-1]"}, + /* 45 */ {"var45", "Snowmelt anomaly [m of water s**-1]"}, + /* 46 */ {"var46", "undefined"}, + /* 47 */ {"var47", "undefined"}, + /* 48 */ {"var48", "Magnitude of surface stress anomaly [N m**-2]"}, + /* 49 */ {"var49", "undefined"}, + /* 50 */ {"var50", "Large-scale precipitation fraction anomaly []"}, + /* 51 */ {"var51", "undefined"}, + /* 52 */ {"var52", "undefined"}, + /* 53 */ {"var53", "undefined"}, + /* 54 */ {"var54", "undefined"}, + /* 55 */ {"var55", "undefined"}, + /* 56 */ {"var56", "undefined"}, + /* 57 */ {"var57", "undefined"}, + /* 58 */ {"var58", "undefined"}, + /* 59 */ {"var59", "undefined"}, + /* 60 */ {"var60", "undefined"}, + /* 61 */ {"var61", "undefined"}, + /* 62 */ {"var62", "undefined"}, + /* 63 */ {"var63", "undefined"}, + /* 64 */ {"var64", "undefined"}, + /* 65 */ {"var65", "undefined"}, + /* 66 */ {"var66", "undefined"}, + /* 67 */ {"var67", "undefined"}, + /* 68 */ {"var68", "undefined"}, + /* 69 */ {"var69", "undefined"}, + /* 70 */ {"var70", "undefined"}, + /* 71 */ {"var71", "undefined"}, + /* 72 */ {"var72", "undefined"}, + /* 73 */ {"var73", "undefined"}, + /* 74 */ {"var74", "undefined"}, + /* 75 */ {"var75", "undefined"}, + /* 76 */ {"var76", "undefined"}, + /* 77 */ {"var77", "undefined"}, + /* 78 */ {"var78", "undefined"}, + /* 79 */ {"var79", "undefined"}, + /* 80 */ {"var80", "undefined"}, + /* 81 */ {"var81", "undefined"}, + /* 82 */ {"var82", "undefined"}, + /* 83 */ {"var83", "undefined"}, + /* 84 */ {"var84", "undefined"}, + /* 85 */ {"var85", "undefined"}, + /* 86 */ {"var86", "undefined"}, + /* 87 */ {"var87", "undefined"}, + /* 88 */ {"var88", "undefined"}, + /* 89 */ {"var89", "undefined"}, + /* 90 */ {"var90", "undefined"}, + /* 91 */ {"var91", "undefined"}, + /* 92 */ {"var92", "undefined"}, + /* 93 */ {"var93", "undefined"}, + /* 94 */ {"var94", "undefined"}, + /* 95 */ {"var95", "undefined"}, + /* 96 */ {"var96", "undefined"}, + /* 97 */ {"var97", "undefined"}, + /* 98 */ {"var98", "undefined"}, + /* 99 */ {"var99", "undefined"}, + /* 100 */ {"var100", "undefined"}, + /* 101 */ {"var101", "undefined"}, + /* 102 */ {"var102", "undefined"}, + /* 103 */ {"var103", "undefined"}, + /* 104 */ {"var104", "undefined"}, + /* 105 */ {"var105", "undefined"}, + /* 106 */ {"var106", "undefined"}, + /* 107 */ {"var107", "undefined"}, + /* 108 */ {"var108", "undefined"}, + /* 109 */ {"var109", "undefined"}, + /* 110 */ {"var110", "undefined"}, + /* 111 */ {"var111", "undefined"}, + /* 112 */ {"var112", "undefined"}, + /* 113 */ {"var113", "undefined"}, + /* 114 */ {"var114", "undefined"}, + /* 115 */ {"var115", "undefined"}, + /* 116 */ {"var116", "undefined"}, + /* 117 */ {"var117", "undefined"}, + /* 118 */ {"var118", "undefined"}, + /* 119 */ {"var119", "undefined"}, + /* 120 */ {"var120", "undefined"}, + /* 121 */ {"var121", "undefined"}, + /* 122 */ {"var122", "undefined"}, + /* 123 */ {"var123", "undefined"}, + /* 124 */ {"var124", "undefined"}, + /* 125 */ {"var125", "undefined"}, + /* 126 */ {"var126", "undefined"}, + /* 127 */ {"var127", "undefined"}, + /* 128 */ {"var128", "undefined"}, + /* 129 */ {"var129", "undefined"}, + /* 130 */ {"var130", "undefined"}, + /* 131 */ {"var131", "undefined"}, + /* 132 */ {"var132", "undefined"}, + /* 133 */ {"var133", "undefined"}, + /* 134 */ {"var134", "undefined"}, + /* 135 */ {"var135", "undefined"}, + /* 136 */ {"var136", "undefined"}, + /* 137 */ {"var137", "undefined"}, + /* 138 */ {"var138", "undefined"}, + /* 139 */ {"var139", "undefined"}, + /* 140 */ {"var140", "undefined"}, + /* 141 */ {"var141", "undefined"}, + /* 142 */ {"var142", "Stratiform precipitation (Large-scale precipitation) anomaly [m s**-1]"}, + /* 143 */ {"var143", "Convective precipitation anomaly [m s**-1]"}, + /* 144 */ {"SFARA", "Snowfall (convective + stratiform) anomalous rate of accumulation [m of water equivalent s**-1]"}, + /* 145 */ {"var145", "Boundary layer dissipation anomaly [W m**-2]"}, + /* 146 */ {"var146", "Surface sensible heat flux anomaly [W m**-2]"}, + /* 147 */ {"var147", "Surface latent heat flux anomaly [W m**-2]"}, + /* 148 */ {"var148", "undefined"}, + /* 149 */ {"var149", "Surface net radiation anomaly [W m**-2]"}, + /* 150 */ {"var150", "undefined"}, + /* 151 */ {"var151", "undefined"}, + /* 152 */ {"var152", "undefined"}, + /* 153 */ {"var153", "Short-wave heating rate anomaly [K s**-1]"}, + /* 154 */ {"var154", "Long-wave heating rate anomaly [K s**-1]"}, + /* 155 */ {"var155", "undefined"}, + /* 156 */ {"var156", "undefined"}, + /* 157 */ {"var157", "undefined"}, + /* 158 */ {"var158", "undefined"}, + /* 159 */ {"var159", "undefined"}, + /* 160 */ {"var160", "undefined"}, + /* 161 */ {"var161", "undefined"}, + /* 162 */ {"var162", "undefined"}, + /* 163 */ {"var163", "undefined"}, + /* 164 */ {"var164", "undefined"}, + /* 165 */ {"var165", "undefined"}, + /* 166 */ {"var166", "undefined"}, + /* 167 */ {"var167", "undefined"}, + /* 168 */ {"var168", "undefined"}, + /* 169 */ {"var169", "Surface solar radiation downwards anomaly [W m**-2]"}, + /* 170 */ {"var170", "undefined"}, + /* 171 */ {"var171", "undefined"}, + /* 172 */ {"var172", "undefined"}, + /* 173 */ {"var173", "undefined"}, + /* 174 */ {"var174", "undefined"}, + /* 175 */ {"var175", "Surface thermal radiation downwards anomaly [W m**-2]"}, + /* 176 */ {"var176", "Surface solar radiation anomaly [W m**-2]"}, + /* 177 */ {"var177", "Surface thermal radiation anomaly [W m**-2]"}, + /* 178 */ {"var178", "Top solar radiation anomaly [W m**-2]"}, + /* 179 */ {"var179", "Top thermal radiation anomaly [W m**-2]"}, + /* 180 */ {"var180", "East-West surface stress anomaly [N m**-2]"}, + /* 181 */ {"var181", "North-South surface stress anomaly [N m**-2]"}, + /* 182 */ {"var182", "Evaporation anomaly [m of water s**-1]"}, + /* 183 */ {"var183", "undefined"}, + /* 184 */ {"var184", "undefined"}, + /* 185 */ {"var185", "undefined"}, + /* 186 */ {"var186", "undefined"}, + /* 187 */ {"var187", "undefined"}, + /* 188 */ {"var188", "undefined"}, + /* 189 */ {"SUNDARA", "Sunshine duration anomalous rate of accumulation [dimensionless]"}, + /* 190 */ {"var190", "undefined"}, + /* 191 */ {"var191", "undefined"}, + /* 192 */ {"var192", "undefined"}, + /* 193 */ {"var193", "undefined"}, + /* 194 */ {"var194", "undefined"}, + /* 195 */ {"var195", "Latitudinal component of gravity wave stress anomaly [N m**-2]"}, + /* 196 */ {"var196", "Meridional component of gravity wave stress anomaly [N m**-2]"}, + /* 197 */ {"var197", "Gravity wave dissipation anomaly [W m**-2]"}, + /* 198 */ {"var198", "undefined"}, + /* 199 */ {"var199", "undefined"}, + /* 200 */ {"var200", "undefined"}, + /* 201 */ {"var201", "undefined"}, + /* 202 */ {"var202", "undefined"}, + /* 203 */ {"var203", "undefined"}, + /* 204 */ {"var204", "undefined"}, + /* 205 */ {"var205", "Runoff anomaly [m s**-1]"}, + /* 206 */ {"var206", "undefined"}, + /* 207 */ {"var207", "undefined"}, + /* 208 */ {"var208", "Top net solar radiation, clear sky anomaly [W m**-2]"}, + /* 209 */ {"var209", "Top net thermal radiation, clear sky anomaly [W m**-2]"}, + /* 210 */ {"var210", "Surface net solar radiation, clear sky anomaly [W m**-2]"}, + /* 211 */ {"var211", "Surface net thermal radiation, clear sky anomaly [W m**-2]"}, + /* 212 */ {"var212", "Solar insolation anomaly [W m**-2 s**-1]"}, + /* 213 */ {"var213", "undefined"}, + /* 214 */ {"var214", "undefined"}, + /* 215 */ {"var215", "undefined"}, + /* 216 */ {"var216", "undefined"}, + /* 217 */ {"var217", "undefined"}, + /* 218 */ {"var218", "undefined"}, + /* 219 */ {"var219", "undefined"}, + /* 220 */ {"var220", "undefined"}, + /* 221 */ {"var221", "undefined"}, + /* 222 */ {"var222", "undefined"}, + /* 223 */ {"var223", "undefined"}, + /* 224 */ {"var224", "undefined"}, + /* 225 */ {"var225", "undefined"}, + /* 226 */ {"var226", "undefined"}, + /* 227 */ {"var227", "undefined"}, + /* 228 */ {"TPARA", "Total precipitation anomalous rate of accumulation [m s**-1]"}, + /* 229 */ {"var229", "undefined"}, + /* 230 */ {"var230", "undefined"}, + /* 231 */ {"var231", "undefined"}, + /* 232 */ {"var232", "undefined"}, + /* 233 */ {"var233", "undefined"}, + /* 234 */ {"var234", "undefined"}, + /* 235 */ {"var235", "undefined"}, + /* 236 */ {"var236", "undefined"}, + /* 237 */ {"var237", "undefined"}, + /* 238 */ {"var238", "undefined"}, + /* 239 */ {"var239", "Convective snowfall anomaly [m of water equivalent s**-1]"}, + /* 240 */ {"var240", "Large-scale snowfall anomaly [m of water equivalent s**-1]"}, + /* 241 */ {"var241", "undefined"}, + /* 242 */ {"var242", "undefined"}, + /* 243 */ {"var243", "undefined"}, + /* 244 */ {"var244", "undefined"}, + /* 245 */ {"var245", "undefined"}, + /* 246 */ {"var246", "undefined"}, + /* 247 */ {"var247", "undefined"}, + /* 248 */ {"var248", "undefined"}, + /* 249 */ {"var249", "undefined"}, + /* 250 */ {"var250", "undefined"}, + /* 251 */ {"var251", "undefined"}, + /* 252 */ {"var252", "undefined"}, + /* 253 */ {"var253", "undefined"}, + /* 254 */ {"var254", "undefined"}, + /* 255 */ {"var255", "Indicates a missing value []"}, }; -const struct ParmTable parm_table_nceptab_140[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"PRES", "Pressure [Pa]"}, - /* 2 */ {"PRMSL", "Pressure reduced to MSL [Pa]"}, - /* 3 */ {"PTEND", "Pressure tendency [Pa/s]"}, - /* 4 */ {"PVORT", "Pot. vorticity [km^2/kg/s]"}, - /* 5 */ {"ICAHT", "ICAO Standard Atmosphere Reference Height [M]"}, - /* 6 */ {"GP", "Geopotential [m^2/s^2]"}, - /* 7 */ {"HGT", "Geopotential height [gpm]"}, - /* 8 */ {"DIST", "Geometric height [m]"}, - /* 9 */ {"HSTDV", "Std dev of height [m]"}, - /* 10 */ {"TOZNE", "Total ozone [Dobson]"}, - /* 11 */ {"TMP", "Temp. [K]"}, - /* 12 */ {"VTMP", "Virtual temp. [K]"}, - /* 13 */ {"POT", "Potential temp. [K]"}, - /* 14 */ {"EPOT", "Pseudo-adiabatic pot. temp. [K]"}, - /* 15 */ {"TMAX", "Max. temp. [K]"}, - /* 16 */ {"TMIN", "Min. temp. [K]"}, - /* 17 */ {"DPT", "Dew point temp. [K]"}, - /* 18 */ {"DEPR", "Dew point depression [K]"}, - /* 19 */ {"LAPR", "Lapse rate [K/m]"}, - /* 20 */ {"VIS", "Visibility [m]"}, - /* 21 */ {"RDSP1", "Radar spectra (1) [non-dim]"}, - /* 22 */ {"RDSP2", "Radar spectra (2) [non-dim]"}, - /* 23 */ {"RDSP3", "Radar spectra (3) [non-dim]"}, - /* 24 */ {"PLI", "Parcel lifted index (to 500 hPa) [K]"}, - /* 25 */ {"TMPA", "Temp. anomaly [K]"}, - /* 26 */ {"PRESA", "Pressure anomaly [Pa]"}, - /* 27 */ {"GPA", "Geopotential height anomaly [gpm]"}, - /* 28 */ {"WVSP1", "Wave spectra (1) [non-dim]"}, - /* 29 */ {"WVSP2", "Wave spectra (2) [non-dim]"}, - /* 30 */ {"WVSP3", "Wave spectra (3) [non-dim]"}, - /* 31 */ {"WDIR", "Wind direction [deg]"}, - /* 32 */ {"WIND", "Wind speed [m/s]"}, - /* 33 */ {"UGRD", "u wind [m/s]"}, - /* 34 */ {"VGRD", "v wind [m/s]"}, - /* 35 */ {"STRM", "Stream function [m^2/s]"}, - /* 36 */ {"VPOT", "Velocity potential [m^2/s]"}, - /* 37 */ {"MNTSF", "Montgomery stream function [m^2/s^2]"}, - /* 38 */ {"SGCVV", "Sigma coord. vertical velocity [/s]"}, - /* 39 */ {"VVEL", "Pressure vertical velocity [Pa/s]"}, - /* 40 */ {"DZDT", "Geometric vertical velocity [m/s]"}, - /* 41 */ {"ABSV", "Absolute vorticity [/s]"}, - /* 42 */ {"ABSD", "Absolute divergence [/s]"}, - /* 43 */ {"RELV", "Relative vorticity [/s]"}, - /* 44 */ {"RELD", "Relative divergence [/s]"}, - /* 45 */ {"VUCSH", "Vertical u shear [/s]"}, - /* 46 */ {"VVCSH", "Vertical v shear [/s]"}, - /* 47 */ {"DIRC", "Direction of current [deg]"}, - /* 48 */ {"SPC", "Speed of current [m/s]"}, - /* 49 */ {"UOGRD", "u of current [m/s]"}, - /* 50 */ {"VOGRD", "v of current [m/s]"}, - /* 51 */ {"SPFH", "Specific humidity [kg/kg]"}, - /* 52 */ {"RH", "Relative humidity [%]"}, - /* 53 */ {"MIXR", "Humidity mixing ratio [kg/kg]"}, - /* 54 */ {"PWAT", "Precipitable water [kg/m^2]"}, - /* 55 */ {"VAPP", "Vapor pressure [Pa]"}, - /* 56 */ {"SATD", "Saturation deficit [Pa]"}, - /* 57 */ {"EVP", "Evaporation [kg/m^2]"}, - /* 58 */ {"CICE", "Cloud Ice [kg/m^2]"}, - /* 59 */ {"PRATE", "Precipitation rate [kg/m^2/s]"}, - /* 60 */ {"TSTM", "Thunderstorm probability [%]"}, - /* 61 */ {"APCP", "Total precipitation [kg/m^2]"}, - /* 62 */ {"NCPCP", "Large scale precipitation [kg/m^2]"}, - /* 63 */ {"ACPCP", "Convective precipitation [kg/m^2]"}, - /* 64 */ {"SRWEQ", "Snowfall rate water equiv. [kg/m^2/s]"}, - /* 65 */ {"WEASD", "Accum. snow [kg/m^2]"}, - /* 66 */ {"SNOD", "Snow depth [m]"}, - /* 67 */ {"MIXHT", "Mixed layer depth [m]"}, - /* 68 */ {"TTHDP", "Transient thermocline depth [m]"}, - /* 69 */ {"MTHD", "Main thermocline depth [m]"}, - /* 70 */ {"MTHA", "Main thermocline anomaly [m]"}, - /* 71 */ {"TCDC", "Total cloud cover [%]"}, - /* 72 */ {"CDCON", "Convective cloud cover [%]"}, - /* 73 */ {"LCDC", "Low level cloud cover [%]"}, - /* 74 */ {"MCDC", "Mid level cloud cover [%]"}, - /* 75 */ {"HCDC", "High level cloud cover [%]"}, - /* 76 */ {"CWAT", "Cloud water [kg/m^2]"}, - /* 77 */ {"BLI", "Best lifted index (to 500 hPa) [K]"}, - /* 78 */ {"SNOC", "Convective snow [kg/m^2]"}, - /* 79 */ {"SNOL", "Large scale snow [kg/m^2]"}, - /* 80 */ {"WTMP", "Water temp. [K]"}, - /* 81 */ {"LAND", "Land cover (land=1;sea=0) [fraction]"}, - /* 82 */ {"DSLM", "Deviation of sea level from mean [m]"}, - /* 83 */ {"SFCR", "Surface roughness [m]"}, - /* 84 */ {"ALBDO", "Albedo [%]"}, - /* 85 */ {"TSOIL", "Soil temp. [K]"}, - /* 86 */ {"SOILM", "Soil moisture content [kg/m^2]"}, - /* 87 */ {"VEG", "Vegetation [%]"}, - /* 88 */ {"SALTY", "Salinity [kg/kg]"}, - /* 89 */ {"DEN", "Density [kg/m^3]"}, - /* 90 */ {"WATR", "Water runoff [kg/m^2]"}, - /* 91 */ {"ICEC", "Ice concentration (ice=1;no ice=0) [fraction]"}, - /* 92 */ {"ICETK", "Ice thickness [m]"}, - /* 93 */ {"DICED", "Direction of ice drift [deg]"}, - /* 94 */ {"SICED", "Speed of ice drift [m/s]"}, - /* 95 */ {"UICE", "u of ice drift [m/s]"}, - /* 96 */ {"VICE", "v of ice drift [m/s]"}, - /* 97 */ {"ICEG", "Ice growth rate [m/s]"}, - /* 98 */ {"ICED", "Ice divergence [/s]"}, - /* 99 */ {"SNOM", "Snow melt [kg/m^2]"}, - /* 100 */ {"HTSGW", "Sig height of wind waves and swell [m]"}, - /* 101 */ {"WVDIR", "Direction of wind waves [deg]"}, - /* 102 */ {"WVHGT", "Sig height of wind waves [m]"}, - /* 103 */ {"WVPER", "Mean period of wind waves [s]"}, - /* 104 */ {"SWDIR", "Direction of swell waves [deg]"}, - /* 105 */ {"SWELL", "Sig height of swell waves [m]"}, - /* 106 */ {"SWPER", "Mean period of swell waves [s]"}, - /* 107 */ {"DIRPW", "Primary wave direction [deg]"}, - /* 108 */ {"PERPW", "Primary wave mean period [s]"}, - /* 109 */ {"DIRSW", "Secondary wave direction [deg]"}, - /* 110 */ {"PERSW", "Secondary wave mean period [s]"}, - /* 111 */ {"NSWRS", "Net short wave (surface) [W/m^2]"}, - /* 112 */ {"NLWRS", "Net long wave (surface) [W/m^2]"}, - /* 113 */ {"NSWRT", "Net short wave (top) [W/m^2]"}, - /* 114 */ {"NLWRT", "Net long wave (top) [W/m^2]"}, - /* 115 */ {"LWAVR", "Long wave [W/m^2]"}, - /* 116 */ {"SWAVR", "Short wave [W/m^2]"}, - /* 117 */ {"GRAD", "Global radiation [W/m^2]"}, - /* 118 */ {"BRTMP", "Brightness temperature [K]"}, - /* 119 */ {"LWRAD", "Radiance with respect to wave no. [W/m/sr]"}, - /* 120 */ {"SWRAD", "Radiance with respect ot wave len. [W/m^3/sr]"}, - /* 121 */ {"LHTFL", "Latent heat flux [W/m^2]"}, - /* 122 */ {"SHTFL", "Sensible heat flux [W/m^2]"}, - /* 123 */ {"BLYDP", "Boundary layer dissipation [W/m^2]"}, - /* 124 */ {"UFLX", "Zonal momentum flux [N/m^2]"}, - /* 125 */ {"VFLX", "Meridional momentum flux [N/m^2]"}, - /* 126 */ {"WMIXE", "Wind mixing energy [J]"}, - /* 127 */ {"IMGD", "Image data []"}, - /* 128 */ {"var128", "undefined"}, - /* 129 */ {"var129", "undefined"}, - /* 130 */ {"var130", "undefined"}, - /* 131 */ {"var131", "undefined"}, - /* 132 */ {"var132", "undefined"}, - /* 133 */ {"var133", "undefined"}, - /* 134 */ {"var134", "undefined"}, - /* 135 */ {"var135", "undefined"}, - /* 136 */ {"var136", "undefined"}, - /* 137 */ {"var137", "undefined"}, - /* 138 */ {"var138", "undefined"}, - /* 139 */ {"var139", "undefined"}, - /* 140 */ {"var140", "undefined"}, - /* 141 */ {"var141", "undefined"}, - /* 142 */ {"var142", "undefined"}, - /* 143 */ {"var143", "undefined"}, - /* 144 */ {"var144", "undefined"}, - /* 145 */ {"var145", "undefined"}, - /* 146 */ {"var146", "undefined"}, - /* 147 */ {"var147", "undefined"}, - /* 148 */ {"var148", "undefined"}, - /* 149 */ {"var149", "undefined"}, - /* 150 */ {"var150", "undefined"}, - /* 151 */ {"var151", "undefined"}, - /* 152 */ {"var152", "undefined"}, - /* 153 */ {"var153", "undefined"}, - /* 154 */ {"var154", "undefined"}, - /* 155 */ {"var155", "undefined"}, - /* 156 */ {"var156", "undefined"}, - /* 157 */ {"var157", "undefined"}, - /* 158 */ {"var158", "undefined"}, - /* 159 */ {"var159", "undefined"}, - /* 160 */ {"var160", "undefined"}, - /* 161 */ {"var161", "undefined"}, - /* 162 */ {"var162", "undefined"}, - /* 163 */ {"var163", "undefined"}, - /* 164 */ {"var164", "undefined"}, - /* 165 */ {"var165", "undefined"}, - /* 166 */ {"var166", "undefined"}, - /* 167 */ {"var167", "undefined"}, - /* 168 */ {"MEIP", "Mean icing potential []"}, - /* 169 */ {"MAIP", "Maximum icing potential []"}, - /* 170 */ {"MECTP", "Mean in-cloud turbulence potential []"}, - /* 171 */ {"MACTP", "Maximum in-cloud turbulence potential []"}, - /* 172 */ {"MECAT", "Mean cloud air turbulence potential []"}, - /* 173 */ {"MACAT", "Maximum cloud air turbulence potential []"}, - /* 174 */ {"CBHE", "Cumulonimbus horizontal extent [%]"}, - /* 175 */ {"PCBB", "Pressure at cumblonimbus base [Pa]"}, - /* 176 */ {"PCBT", "Pressure at cumblonimbus top [Pa]"}, - /* 177 */ {"PECBB", "Pressure at embedded cumblonimbus base [Pa]"}, - /* 178 */ {"PECBT", "Pressure at embedded cumblonimbus top [Pa]"}, - /* 179 */ {"HCBB", "ICAO height at cumblonimbus base [m]"}, - /* 180 */ {"HCBT", "ICAO height at cumblonimbus top [m]"}, - /* 181 */ {"HECBB", "ICAO height at embedded cumblonimbus base [m]"}, - /* 182 */ {"HECBT", "ICAO height at embedded cumblonimbus top [m]"}, - /* 183 */ {"var183", "undefined"}, - /* 184 */ {"var184", "undefined"}, - /* 185 */ {"var185", "undefined"}, - /* 186 */ {"var186", "undefined"}, - /* 187 */ {"var187", "undefined"}, - /* 188 */ {"var188", "undefined"}, - /* 189 */ {"var189", "undefined"}, - /* 190 */ {"var190", "undefined"}, - /* 191 */ {"var191", "undefined"}, - /* 192 */ {"var192", "undefined"}, - /* 193 */ {"var193", "undefined"}, - /* 194 */ {"var194", "undefined"}, - /* 195 */ {"var195", "undefined"}, - /* 196 */ {"var196", "undefined"}, - /* 197 */ {"var197", "undefined"}, - /* 198 */ {"var198", "undefined"}, - /* 199 */ {"var199", "undefined"}, - /* 200 */ {"var200", "undefined"}, - /* 201 */ {"var201", "undefined"}, - /* 202 */ {"var202", "undefined"}, - /* 203 */ {"var203", "undefined"}, - /* 204 */ {"var204", "undefined"}, - /* 205 */ {"var205", "undefined"}, - /* 206 */ {"var206", "undefined"}, - /* 207 */ {"var207", "undefined"}, - /* 208 */ {"var208", "undefined"}, - /* 209 */ {"var209", "undefined"}, - /* 210 */ {"var210", "undefined"}, - /* 211 */ {"var211", "undefined"}, - /* 212 */ {"var212", "undefined"}, - /* 213 */ {"var213", "undefined"}, - /* 214 */ {"var214", "undefined"}, - /* 215 */ {"var215", "undefined"}, - /* 216 */ {"var216", "undefined"}, - /* 217 */ {"var217", "undefined"}, - /* 218 */ {"var218", "undefined"}, - /* 219 */ {"var219", "undefined"}, - /* 220 */ {"var220", "undefined"}, - /* 221 */ {"var221", "undefined"}, - /* 222 */ {"var222", "undefined"}, - /* 223 */ {"var223", "undefined"}, - /* 224 */ {"var224", "undefined"}, - /* 225 */ {"var225", "undefined"}, - /* 226 */ {"var226", "undefined"}, - /* 227 */ {"var227", "undefined"}, - /* 228 */ {"var228", "undefined"}, - /* 229 */ {"var229", "undefined"}, - /* 230 */ {"var230", "undefined"}, - /* 231 */ {"var231", "undefined"}, - /* 232 */ {"var232", "undefined"}, - /* 233 */ {"var233", "undefined"}, - /* 234 */ {"var234", "undefined"}, - /* 235 */ {"var235", "undefined"}, - /* 236 */ {"var236", "undefined"}, - /* 237 */ {"var237", "undefined"}, - /* 238 */ {"var238", "undefined"}, - /* 239 */ {"var239", "undefined"}, - /* 240 */ {"var240", "undefined"}, - /* 241 */ {"var241", "undefined"}, - /* 242 */ {"var242", "undefined"}, - /* 243 */ {"var243", "undefined"}, - /* 244 */ {"var244", "undefined"}, - /* 245 */ {"var245", "undefined"}, - /* 246 */ {"var246", "undefined"}, - /* 247 */ {"var247", "undefined"}, - /* 248 */ {"var248", "undefined"}, - /* 249 */ {"var249", "undefined"}, - /* 250 */ {"var250", "undefined"}, - /* 251 */ {"var251", "undefined"}, - /* 252 */ {"var252", "undefined"}, - /* 253 */ {"var253", "undefined"}, - /* 254 */ {"var254", "undefined"}, - /* 255 */ {"var255", "undefined"}, +const struct ParmTable parm_table_ecmwf_174[256] = { + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"var1", "undefined"}, + /* 2 */ {"var2", "undefined"}, + /* 3 */ {"var3", "undefined"}, + /* 4 */ {"var4", "undefined"}, + /* 5 */ {"var5", "undefined"}, + /* 6 */ {"var6", "Total soil moisture [m]"}, + /* 7 */ {"var7", "undefined"}, + /* 8 */ {"SRO", "Surface runoff [kg m**-2]"}, + /* 9 */ {"SSRO", "Sub-surface runoff [kg m**-2]"}, + /* 10 */ {"var10", "undefined"}, + /* 11 */ {"var11", "undefined"}, + /* 12 */ {"var12", "undefined"}, + /* 13 */ {"var13", "undefined"}, + /* 14 */ {"var14", "undefined"}, + /* 15 */ {"var15", "undefined"}, + /* 16 */ {"var16", "undefined"}, + /* 17 */ {"var17", "undefined"}, + /* 18 */ {"var18", "undefined"}, + /* 19 */ {"var19", "undefined"}, + /* 20 */ {"var20", "undefined"}, + /* 21 */ {"var21", "undefined"}, + /* 22 */ {"var22", "undefined"}, + /* 23 */ {"var23", "undefined"}, + /* 24 */ {"var24", "undefined"}, + /* 25 */ {"var25", "undefined"}, + /* 26 */ {"var26", "undefined"}, + /* 27 */ {"var27", "undefined"}, + /* 28 */ {"var28", "undefined"}, + /* 29 */ {"var29", "undefined"}, + /* 30 */ {"var30", "undefined"}, + /* 31 */ {"var31", "Fraction of sea-ice in sea [(0 - 1)]"}, + /* 32 */ {"var32", "undefined"}, + /* 33 */ {"var33", "undefined"}, + /* 34 */ {"var34", "Open-sea surface temperature [K]"}, + /* 35 */ {"var35", "undefined"}, + /* 36 */ {"var36", "undefined"}, + /* 37 */ {"var37", "undefined"}, + /* 38 */ {"var38", "undefined"}, + /* 39 */ {"var39", "Volumetric soil water layer 1 [m**3 m**-3]"}, + /* 40 */ {"var40", "Volumetric soil water layer 2 [m**3 m**-3]"}, + /* 41 */ {"var41", "Volumetric soil water layer 3 [m**3 m**-3]"}, + /* 42 */ {"var42", "Volumetric soil water layer 4 [m**3 m**-3]"}, + /* 43 */ {"var43", "undefined"}, + /* 44 */ {"var44", "undefined"}, + /* 45 */ {"var45", "undefined"}, + /* 46 */ {"var46", "undefined"}, + /* 47 */ {"var47", "undefined"}, + /* 48 */ {"var48", "undefined"}, + /* 49 */ {"var49", "10 metre wind gust over last 24 hours [m s**-1]"}, + /* 50 */ {"var50", "undefined"}, + /* 51 */ {"var51", "undefined"}, + /* 52 */ {"var52", "undefined"}, + /* 53 */ {"var53", "undefined"}, + /* 54 */ {"var54", "undefined"}, + /* 55 */ {"var55", "1.5m temperature - mean over last 24 hours [K]"}, + /* 56 */ {"var56", "undefined"}, + /* 57 */ {"var57", "undefined"}, + /* 58 */ {"var58", "undefined"}, + /* 59 */ {"var59", "undefined"}, + /* 60 */ {"var60", "undefined"}, + /* 61 */ {"var61", "undefined"}, + /* 62 */ {"var62", "undefined"}, + /* 63 */ {"var63", "undefined"}, + /* 64 */ {"var64", "undefined"}, + /* 65 */ {"var65", "undefined"}, + /* 66 */ {"var66", "undefined"}, + /* 67 */ {"var67", "undefined"}, + /* 68 */ {"var68", "undefined"}, + /* 69 */ {"var69", "undefined"}, + /* 70 */ {"var70", "undefined"}, + /* 71 */ {"var71", "undefined"}, + /* 72 */ {"var72", "undefined"}, + /* 73 */ {"var73", "undefined"}, + /* 74 */ {"var74", "undefined"}, + /* 75 */ {"var75", "undefined"}, + /* 76 */ {"var76", "undefined"}, + /* 77 */ {"var77", "undefined"}, + /* 78 */ {"var78", "undefined"}, + /* 79 */ {"var79", "undefined"}, + /* 80 */ {"var80", "undefined"}, + /* 81 */ {"var81", "undefined"}, + /* 82 */ {"var82", "undefined"}, + /* 83 */ {"var83", "Net primary productivity [kg C m**-2 s**-1]"}, + /* 84 */ {"var84", "undefined"}, + /* 85 */ {"var85", "10m U wind over land [m s**-1]"}, + /* 86 */ {"var86", "10m V wind over land [m s**-1]"}, + /* 87 */ {"var87", "1.5m temperature over land [K]"}, + /* 88 */ {"var88", "1.5m dewpoint temperature over land [K]"}, + /* 89 */ {"var89", "Top incoming solar radiation [W m**-2 s]"}, + /* 90 */ {"var90", "Top outgoing solar radiation [W m**-2 s]"}, + /* 91 */ {"var91", "undefined"}, + /* 92 */ {"var92", "undefined"}, + /* 93 */ {"var93", "undefined"}, + /* 94 */ {"var94", "Mean sea surface temperature [K]"}, + /* 95 */ {"var95", "1.5m specific humidity [kg kg**-1]"}, + /* 96 */ {"var96", "undefined"}, + /* 97 */ {"var97", "undefined"}, + /* 98 */ {"var98", "Sea-ice thickness [m]"}, + /* 99 */ {"var99", "Liquid water potential temperature [K]"}, + /* 100 */ {"var100", "undefined"}, + /* 101 */ {"var101", "undefined"}, + /* 102 */ {"var102", "undefined"}, + /* 103 */ {"var103", "undefined"}, + /* 104 */ {"var104", "undefined"}, + /* 105 */ {"var105", "undefined"}, + /* 106 */ {"var106", "undefined"}, + /* 107 */ {"var107", "undefined"}, + /* 108 */ {"var108", "undefined"}, + /* 109 */ {"var109", "undefined"}, + /* 110 */ {"var110", "Ocean ice concentration [(0 - 1)]"}, + /* 111 */ {"var111", "Ocean mean ice depth [m]"}, + /* 112 */ {"var112", "undefined"}, + /* 113 */ {"var113", "undefined"}, + /* 114 */ {"var114", "undefined"}, + /* 115 */ {"var115", "undefined"}, + /* 116 */ {"var116", "undefined"}, + /* 117 */ {"var117", "undefined"}, + /* 118 */ {"var118", "undefined"}, + /* 119 */ {"var119", "undefined"}, + /* 120 */ {"var120", "undefined"}, + /* 121 */ {"var121", "undefined"}, + /* 122 */ {"var122", "undefined"}, + /* 123 */ {"var123", "undefined"}, + /* 124 */ {"var124", "undefined"}, + /* 125 */ {"var125", "undefined"}, + /* 126 */ {"var126", "undefined"}, + /* 127 */ {"var127", "undefined"}, + /* 128 */ {"var128", "undefined"}, + /* 129 */ {"var129", "undefined"}, + /* 130 */ {"var130", "undefined"}, + /* 131 */ {"var131", "undefined"}, + /* 132 */ {"var132", "undefined"}, + /* 133 */ {"var133", "undefined"}, + /* 134 */ {"var134", "undefined"}, + /* 135 */ {"var135", "undefined"}, + /* 136 */ {"var136", "undefined"}, + /* 137 */ {"var137", "undefined"}, + /* 138 */ {"var138", "undefined"}, + /* 139 */ {"var139", "Soil temperature layer 1 [K]"}, + /* 140 */ {"var140", "undefined"}, + /* 141 */ {"var141", "undefined"}, + /* 142 */ {"var142", "undefined"}, + /* 143 */ {"var143", "undefined"}, + /* 144 */ {"var144", "undefined"}, + /* 145 */ {"var145", "undefined"}, + /* 146 */ {"var146", "undefined"}, + /* 147 */ {"var147", "undefined"}, + /* 148 */ {"var148", "undefined"}, + /* 149 */ {"var149", "undefined"}, + /* 150 */ {"var150", "undefined"}, + /* 151 */ {"var151", "undefined"}, + /* 152 */ {"var152", "undefined"}, + /* 153 */ {"var153", "undefined"}, + /* 154 */ {"var154", "undefined"}, + /* 155 */ {"var155", "undefined"}, + /* 156 */ {"var156", "undefined"}, + /* 157 */ {"var157", "undefined"}, + /* 158 */ {"var158", "undefined"}, + /* 159 */ {"var159", "undefined"}, + /* 160 */ {"var160", "undefined"}, + /* 161 */ {"var161", "undefined"}, + /* 162 */ {"var162", "undefined"}, + /* 163 */ {"var163", "undefined"}, + /* 164 */ {"var164", "Average potential temperature in upper 293.4m [degrees C]"}, + /* 165 */ {"var165", "undefined"}, + /* 166 */ {"var166", "undefined"}, + /* 167 */ {"var167", "1.5m temperature [K]"}, + /* 168 */ {"var168", "1.5m dewpoint temperature [K]"}, + /* 169 */ {"var169", "undefined"}, + /* 170 */ {"var170", "Soil temperature layer 2 [K]"}, + /* 171 */ {"var171", "undefined"}, + /* 172 */ {"var172", "Fractional land mask [(0 - 1)]"}, + /* 173 */ {"var173", "undefined"}, + /* 174 */ {"var174", "undefined"}, + /* 175 */ {"var175", "Average salinity in upper 293.4m [psu]"}, + /* 176 */ {"var176", "undefined"}, + /* 177 */ {"var177", "undefined"}, + /* 178 */ {"var178", "undefined"}, + /* 179 */ {"var179", "undefined"}, + /* 180 */ {"var180", "undefined"}, + /* 181 */ {"var181", "undefined"}, + /* 182 */ {"var182", "undefined"}, + /* 183 */ {"var183", "Soil temperature layer 3 [K]"}, + /* 184 */ {"var184", "undefined"}, + /* 185 */ {"var185", "undefined"}, + /* 186 */ {"var186", "undefined"}, + /* 187 */ {"var187", "undefined"}, + /* 188 */ {"var188", "undefined"}, + /* 189 */ {"var189", "undefined"}, + /* 190 */ {"var190", "undefined"}, + /* 191 */ {"var191", "undefined"}, + /* 192 */ {"var192", "undefined"}, + /* 193 */ {"var193", "undefined"}, + /* 194 */ {"var194", "undefined"}, + /* 195 */ {"var195", "undefined"}, + /* 196 */ {"var196", "undefined"}, + /* 197 */ {"var197", "undefined"}, + /* 198 */ {"var198", "undefined"}, + /* 199 */ {"var199", "undefined"}, + /* 200 */ {"var200", "undefined"}, + /* 201 */ {"var201", "1.5m temperature - maximum over last 24 hours [K]"}, + /* 202 */ {"var202", "1.5m temperature - minimum over last 24 hours [K]"}, + /* 203 */ {"var203", "undefined"}, + /* 204 */ {"var204", "undefined"}, + /* 205 */ {"var205", "undefined"}, + /* 206 */ {"var206", "undefined"}, + /* 207 */ {"var207", "undefined"}, + /* 208 */ {"var208", "undefined"}, + /* 209 */ {"var209", "undefined"}, + /* 210 */ {"var210", "undefined"}, + /* 211 */ {"var211", "undefined"}, + /* 212 */ {"var212", "undefined"}, + /* 213 */ {"var213", "undefined"}, + /* 214 */ {"var214", "undefined"}, + /* 215 */ {"var215", "undefined"}, + /* 216 */ {"var216", "undefined"}, + /* 217 */ {"var217", "undefined"}, + /* 218 */ {"var218", "undefined"}, + /* 219 */ {"var219", "undefined"}, + /* 220 */ {"var220", "undefined"}, + /* 221 */ {"var221", "undefined"}, + /* 222 */ {"var222", "undefined"}, + /* 223 */ {"var223", "undefined"}, + /* 224 */ {"var224", "undefined"}, + /* 225 */ {"var225", "undefined"}, + /* 226 */ {"var226", "undefined"}, + /* 227 */ {"var227", "undefined"}, + /* 228 */ {"var228", "undefined"}, + /* 229 */ {"var229", "undefined"}, + /* 230 */ {"var230", "undefined"}, + /* 231 */ {"var231", "undefined"}, + /* 232 */ {"var232", "undefined"}, + /* 233 */ {"var233", "undefined"}, + /* 234 */ {"var234", "undefined"}, + /* 235 */ {"var235", "undefined"}, + /* 236 */ {"var236", "Soil temperature layer 4 [K]"}, + /* 237 */ {"var237", "undefined"}, + /* 238 */ {"var238", "undefined"}, + /* 239 */ {"var239", "undefined"}, + /* 240 */ {"var240", "undefined"}, + /* 241 */ {"var241", "undefined"}, + /* 242 */ {"var242", "undefined"}, + /* 243 */ {"var243", "undefined"}, + /* 244 */ {"var244", "undefined"}, + /* 245 */ {"var245", "undefined"}, + /* 246 */ {"var246", "undefined"}, + /* 247 */ {"var247", "undefined"}, + /* 248 */ {"var248", "undefined"}, + /* 249 */ {"var249", "undefined"}, + /* 250 */ {"var250", "undefined"}, + /* 251 */ {"var251", "undefined"}, + /* 252 */ {"var252", "undefined"}, + /* 253 */ {"var253", "undefined"}, + /* 254 */ {"var254", "undefined"}, + /* 255 */ {"var255", "Indicates a missing value []"}, }; -const struct ParmTable parm_table_nceptab_141[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"PRES", "Pressure [Pa]"}, - /* 2 */ {"PRMSL", "Pressure reduced to MSL [Pa]"}, - /* 3 */ {"PTEND", "Pressure tendency [Pa/s]"}, - /* 4 */ {"PVORT", "Pot. vorticity [km^2/kg/s]"}, - /* 5 */ {"ICAHT", "ICAO Standard Atmosphere Reference Height [M]"}, - /* 6 */ {"GP", "Geopotential [m^2/s^2]"}, - /* 7 */ {"HGT", "Geopotential height [gpm]"}, - /* 8 */ {"DIST", "Geometric height [m]"}, - /* 9 */ {"HSTDV", "Std dev of height [m]"}, - /* 10 */ {"TOZNE", "Total ozone [Dobson]"}, - /* 11 */ {"TMP", "Temp. [K]"}, - /* 12 */ {"VTMP", "Virtual temp. [K]"}, - /* 13 */ {"POT", "Potential temp. [K]"}, - /* 14 */ {"EPOT", "Pseudo-adiabatic pot. temp. [K]"}, - /* 15 */ {"TMAX", "Max. temp. [K]"}, - /* 16 */ {"TMIN", "Min. temp. [K]"}, - /* 17 */ {"DPT", "Dew point temp. [K]"}, - /* 18 */ {"DEPR", "Dew point depression [K]"}, - /* 19 */ {"LAPR", "Lapse rate [K/m]"}, - /* 20 */ {"VIS", "Visibility [m]"}, - /* 21 */ {"RDSP1", "Radar spectra (1) [non-dim]"}, - /* 22 */ {"RDSP2", "Radar spectra (2) [non-dim]"}, - /* 23 */ {"RDSP3", "Radar spectra (3) [non-dim]"}, - /* 24 */ {"PLI", "Parcel lifted index (to 500 hPa) [K]"}, - /* 25 */ {"TMPA", "Temp. anomaly [K]"}, - /* 26 */ {"PRESA", "Pressure anomaly [Pa]"}, - /* 27 */ {"GPA", "Geopotential height anomaly [gpm]"}, - /* 28 */ {"WVSP1", "Wave spectra (1) [non-dim]"}, - /* 29 */ {"WVSP2", "Wave spectra (2) [non-dim]"}, - /* 30 */ {"WVSP3", "Wave spectra (3) [non-dim]"}, - /* 31 */ {"WDIR", "Wind direction [deg]"}, - /* 32 */ {"WIND", "Wind speed [m/s]"}, - /* 33 */ {"UGRD", "u wind [m/s]"}, - /* 34 */ {"VGRD", "v wind [m/s]"}, - /* 35 */ {"STRM", "Stream function [m^2/s]"}, - /* 36 */ {"VPOT", "Velocity potential [m^2/s]"}, - /* 37 */ {"MNTSF", "Montgomery stream function [m^2/s^2]"}, - /* 38 */ {"SGCVV", "Sigma coord. vertical velocity [/s]"}, - /* 39 */ {"VVEL", "Pressure vertical velocity [Pa/s]"}, - /* 40 */ {"DZDT", "Geometric vertical velocity [m/s]"}, - /* 41 */ {"ABSV", "Absolute vorticity [/s]"}, - /* 42 */ {"ABSD", "Absolute divergence [/s]"}, - /* 43 */ {"RELV", "Relative vorticity [/s]"}, - /* 44 */ {"RELD", "Relative divergence [/s]"}, - /* 45 */ {"VUCSH", "Vertical u shear [/s]"}, - /* 46 */ {"VVCSH", "Vertical v shear [/s]"}, - /* 47 */ {"DIRC", "Direction of current [deg]"}, - /* 48 */ {"SPC", "Speed of current [m/s]"}, - /* 49 */ {"UOGRD", "u of current [m/s]"}, - /* 50 */ {"VOGRD", "v of current [m/s]"}, - /* 51 */ {"SPFH", "Specific humidity [kg/kg]"}, - /* 52 */ {"RH", "Relative humidity [%]"}, - /* 53 */ {"MIXR", "Humidity mixing ratio [kg/kg]"}, - /* 54 */ {"PWAT", "Precipitable water [kg/m^2]"}, - /* 55 */ {"VAPP", "Vapor pressure [Pa]"}, - /* 56 */ {"SATD", "Saturation deficit [Pa]"}, - /* 57 */ {"EVP", "Evaporation [kg/m^2]"}, - /* 58 */ {"CICE", "Cloud Ice [kg/m^2]"}, - /* 59 */ {"PRATE", "Precipitation rate [kg/m^2/s]"}, - /* 60 */ {"TSTM", "Thunderstorm probability [%]"}, - /* 61 */ {"APCP", "Total precipitation [kg/m^2]"}, - /* 62 */ {"NCPCP", "Large scale precipitation [kg/m^2]"}, - /* 63 */ {"ACPCP", "Convective precipitation [kg/m^2]"}, - /* 64 */ {"SRWEQ", "Snowfall rate water equiv. [kg/m^2/s]"}, - /* 65 */ {"WEASD", "Accum. snow [kg/m^2]"}, - /* 66 */ {"SNOD", "Snow depth [m]"}, - /* 67 */ {"MIXHT", "Mixed layer depth [m]"}, - /* 68 */ {"TTHDP", "Transient thermocline depth [m]"}, - /* 69 */ {"MTHD", "Main thermocline depth [m]"}, - /* 70 */ {"MTHA", "Main thermocline anomaly [m]"}, - /* 71 */ {"TCDC", "Total cloud cover [%]"}, - /* 72 */ {"CDCON", "Convective cloud cover [%]"}, - /* 73 */ {"LCDC", "Low level cloud cover [%]"}, - /* 74 */ {"MCDC", "Mid level cloud cover [%]"}, - /* 75 */ {"HCDC", "High level cloud cover [%]"}, - /* 76 */ {"CWAT", "Cloud water [kg/m^2]"}, - /* 77 */ {"BLI", "Best lifted index (to 500 hPa) [K]"}, - /* 78 */ {"SNOC", "Convective snow [kg/m^2]"}, - /* 79 */ {"SNOL", "Large scale snow [kg/m^2]"}, - /* 80 */ {"WTMP", "Water temp. [K]"}, - /* 81 */ {"LAND", "Land cover (land=1;sea=0) [fraction]"}, - /* 82 */ {"DSLM", "Deviation of sea level from mean [m]"}, - /* 83 */ {"SFCR", "Surface roughness [m]"}, - /* 84 */ {"ALBDO", "Albedo [%]"}, - /* 85 */ {"TSOIL", "Soil temp. [K]"}, - /* 86 */ {"SOILM", "Soil moisture content [kg/m^2]"}, - /* 87 */ {"VEG", "Vegetation [%]"}, - /* 88 */ {"SALTY", "Salinity [kg/kg]"}, - /* 89 */ {"DEN", "Density [kg/m^3]"}, - /* 90 */ {"WATR", "Water runoff [kg/m^2]"}, - /* 91 */ {"ICEC", "Ice concentration (ice=1;no ice=0) [fraction]"}, - /* 92 */ {"ICETK", "Ice thickness [m]"}, - /* 93 */ {"DICED", "Direction of ice drift [deg]"}, - /* 94 */ {"SICED", "Speed of ice drift [m/s]"}, - /* 95 */ {"UICE", "u of ice drift [m/s]"}, - /* 96 */ {"VICE", "v of ice drift [m/s]"}, - /* 97 */ {"ICEG", "Ice growth rate [m/s]"}, - /* 98 */ {"ICED", "Ice divergence [/s]"}, - /* 99 */ {"SNOM", "Snow melt [kg/m^2]"}, - /* 100 */ {"HTSGW", "Sig height of wind waves and swell [m]"}, - /* 101 */ {"WVDIR", "Direction of wind waves [deg]"}, - /* 102 */ {"WVHGT", "Sig height of wind waves [m]"}, - /* 103 */ {"WVPER", "Mean period of wind waves [s]"}, - /* 104 */ {"SWDIR", "Direction of swell waves [deg]"}, - /* 105 */ {"SWELL", "Sig height of swell waves [m]"}, - /* 106 */ {"SWPER", "Mean period of swell waves [s]"}, - /* 107 */ {"DIRPW", "Primary wave direction [deg]"}, - /* 108 */ {"PERPW", "Primary wave mean period [s]"}, - /* 109 */ {"DIRSW", "Secondary wave direction [deg]"}, - /* 110 */ {"PERSW", "Secondary wave mean period [s]"}, - /* 111 */ {"NSWRS", "Net short wave (surface) [W/m^2]"}, - /* 112 */ {"NLWRS", "Net long wave (surface) [W/m^2]"}, - /* 113 */ {"NSWRT", "Net short wave (top) [W/m^2]"}, - /* 114 */ {"NLWRT", "Net long wave (top) [W/m^2]"}, - /* 115 */ {"LWAVR", "Long wave [W/m^2]"}, - /* 116 */ {"SWAVR", "Short wave [W/m^2]"}, - /* 117 */ {"GRAD", "Global radiation [W/m^2]"}, - /* 118 */ {"BRTMP", "Brightness temperature [K]"}, - /* 119 */ {"LWRAD", "Radiance with respect to wave no. [W/m/sr]"}, - /* 120 */ {"SWRAD", "Radiance with respect ot wave len. [W/m^3/sr]"}, - /* 121 */ {"LHTFL", "Latent heat flux [W/m^2]"}, - /* 122 */ {"SHTFL", "Sensible heat flux [W/m^2]"}, - /* 123 */ {"BLYDP", "Boundary layer dissipation [W/m^2]"}, - /* 124 */ {"UFLX", "Zonal momentum flux [N/m^2]"}, - /* 125 */ {"VFLX", "Meridional momentum flux [N/m^2]"}, - /* 126 */ {"WMIXE", "Wind mixing energy [J]"}, - /* 127 */ {"IMGD", "Image data []"}, - /* 128 */ {"EXTNC", "Aerosol Extinction Coefficient [1/km]"}, - /* 129 */ {"AOD", "Aerosol Optical Depth [-]"}, - /* 130 */ {"ASFTR", "Aerosol Asymmetry Factor [-]"}, - /* 131 */ {"SSALBD", "Aerosol Single Scatter Albedo [-]"}, - /* 132 */ {"BSCTRS", "Aerosol Back Scattering [1/km/sr]"}, - /* 133 */ {"var133", "undefined"}, - /* 134 */ {"var134", "undefined"}, - /* 135 */ {"var135", "undefined"}, - /* 136 */ {"var136", "undefined"}, - /* 137 */ {"var137", "undefined"}, - /* 138 */ {"var138", "undefined"}, - /* 139 */ {"var139", "undefined"}, - /* 140 */ {"NOy", "Total Inorganic and Organic Nitrates [ppbV]"}, - /* 141 */ {"NO", "Nitrogen Oxide [ppbV]"}, - /* 142 */ {"NO2", "Nitrogen Dioxide [ppbV]"}, - /* 143 */ {"N2O5", "Nitrogen Pentoxide [ppbV]"}, - /* 144 */ {"HNO3", "Nitric Acid [ppbV]"}, - /* 145 */ {"NO3", "Nitrogen Trioxide [ppbV]"}, - /* 146 */ {"PNA", "Peroxynitric Acid [ppbV]"}, - /* 147 */ {"HONO", "Nitrous Acid [ppbV]"}, - /* 148 */ {"CO", "Carbon Monoxide [ppbV]"}, - /* 149 */ {"NH3", "Ammonia [ppbV]"}, - /* 150 */ {"HCL", "Hydrogen Chloride [ppbV]"}, - /* 151 */ {"var151", "undefined"}, - /* 152 */ {"var152", "undefined"}, - /* 153 */ {"var153", "undefined"}, - /* 154 */ {"var154", "undefined"}, - /* 155 */ {"var155", "undefined"}, - /* 156 */ {"var156", "undefined"}, - /* 157 */ {"var157", "undefined"}, - /* 158 */ {"var158", "undefined"}, - /* 159 */ {"PAR", "Lumped Single-Bond Carbon Specie [ppbV]"}, - /* 160 */ {"ETHE", "Ethene [ppbV]"}, - /* 161 */ {"OLE", "Lumped Double-Bond Carbon Species Less Ethene [ppbV]"}, - /* 162 */ {"TOL", "Toluene [ppbV]"}, - /* 163 */ {"XYL", "Xylene [ppbV]"}, - /* 164 */ {"ISOP", "Isoprene [ppbV]"}, - /* 165 */ {"var165", "undefined"}, - /* 166 */ {"FORM", "Formaldehyde [ppbV]"}, - /* 167 */ {"ALD2", "Acetaldehyde & Higher Aldehydes [ppbV]"}, - /* 168 */ {"MGLY", "Methyl Glyoxal [ppbV]"}, - /* 169 */ {"CRES", "Cresol and Higher Molecular Weight Phenols [ppbV]"}, - /* 170 */ {"var170", "undefined"}, - /* 171 */ {"var171", "undefined"}, - /* 172 */ {"PAN", "Peroxyacyl Nitrate [ppbV]"}, - /* 173 */ {"NTR", "Lumped Gaseous Organic Nitrate [ppbV]"}, - /* 174 */ {"var174", "undefined"}, - /* 175 */ {"var175", "undefined"}, - /* 176 */ {"var176", "undefined"}, - /* 177 */ {"ROOH", "Esters [ppbV]"}, - /* 178 */ {"ETHOH", "Ethanol [ppbV]"}, - /* 179 */ {"METHOH", "Methanol [ppbV]"}, - /* 180 */ {"var180", "undefined"}, - /* 181 */ {"var181", "undefined"}, - /* 182 */ {"var182", "undefined"}, - /* 183 */ {"var183", "undefined"}, - /* 184 */ {"var184", "undefined"}, - /* 185 */ {"var185", "undefined"}, - /* 186 */ {"H2O2", "Hydrogen Peroxide [ppbV]"}, - /* 187 */ {"OH", "Hydroxyl Radical [ppbV]"}, - /* 188 */ {"HO2", "Hydroperoxyl Radical [ppbV]"}, - /* 189 */ {"var189", "undefined"}, - /* 190 */ {"var190", "undefined"}, - /* 191 */ {"var191", "undefined"}, - /* 192 */ {"var192", "undefined"}, - /* 193 */ {"var193", "undefined"}, - /* 194 */ {"var194", "undefined"}, - /* 195 */ {"var195", "undefined"}, - /* 196 */ {"var196", "undefined"}, - /* 197 */ {"var197", "undefined"}, - /* 198 */ {"var198", "undefined"}, - /* 199 */ {"var199", "undefined"}, - /* 200 */ {"ASO4", "Sulfate (SO4) Particulates ≤ 2.5 μm Diameter [μg/m^3]"}, - /* 201 */ {"ANH4", "Ammonia (NH4) Particulates ≤ 2.5 μm Diameter [μg/m^3]"}, - /* 202 */ {"ANO3", "Nitrate (NO3) Particulates ≤ 2.5 μm Diameter [μg/m^3]"}, - /* 203 */ {"AORGA", "Organic Particulates ≤ 2.5 μm Diameter [μg/m^3]"}, - /* 204 */ {"AORGPA", "Primarily Organic Particulates ≤ 2.5 μm Diameter [μg/m^3]"}, - /* 205 */ {"AORGB", "Biogenically Originated Particulates ≤ 2.5 μm Diameter [μg/m^3]"}, - /* 206 */ {"AEC", "Elemental Carbon Particulates ≤ 2.5 μm Diameter [μg/m^3]"}, - /* 207 */ {"A25", "Unspecified Anthropogenic Particulates ≤ 2.5 μm Diameter [μg/m^3]"}, - /* 208 */ {"AH2O", "Water Particulates ≤ 2.5 μm Diameter [μg/m^3]"}, - /* 209 */ {"ANA", "Sodium Particulates ≤ 2.5 μm Diameter [μg/m^3]"}, - /* 210 */ {"ACL", "Chloride Particulates ≤ 2.5 μm Diameter [μg/m^3]"}, - /* 211 */ {"var211", "undefined"}, - /* 212 */ {"var212", "undefined"}, - /* 213 */ {"var213", "undefined"}, - /* 214 */ {"var214", "undefined"}, - /* 215 */ {"var215", "undefined"}, - /* 216 */ {"ASO4K", "Sulfate (SO4) Particulates between 2.5 and 10 μm Diameter [μg/m^3]"}, - /* 217 */ {"ANAK", "Sodium (NA) Particulates between 2.5 and 10 μm Diameter [μg/m^3]"}, - /* 218 */ {"ACLK", "Chloride (CL) Particulates between 2.5 and 10 μm Diameter [μg/m^3]"}, - /* 219 */ {"ASEAS", "Sea Salt Originated Particulates between 2.5 and 10 μm Diameter [μg/m^3]"}, - /* 220 */ {"ASOIL", "Crustal Material Orginated Particulates between 2.5 and 10 μm Diameter [μg/m^3]"}, - /* 221 */ {"ACORS", "Particulates between 2.5 and 10 μm Diameter [μg/m^3]"}, - /* 222 */ {"NUMATKN", "Number Concentration Particulates between 2.5 and 0.1 μm Diameter [number/m^3]"}, - /* 223 */ {"NUMACC", "Number Concentration Particulates between 2.5 and 2.5 μm Diameter [number/m^3]"}, - /* 224 */ {"NUMCOR", "Number Concentration Particulates between 2.5 and 10 μm Diameter [number/m^3]"}, - /* 225 */ {"var225", "undefined"}, - /* 226 */ {"var226", "undefined"}, - /* 227 */ {"var227", "undefined"}, - /* 228 */ {"SRFATKN", "Surface Area Contributed by Particulates ≤ 0.1 μm Diameter [m2/m^3]"}, - /* 229 */ {"SRFACC", "Surface Area Contributed by Particulates between 0.1 and 2.5 μm Diameter [m2/m^3]"}, - /* 230 */ {"var230", "undefined"}, - /* 231 */ {"var231", "undefined"}, - /* 232 */ {"SO2", "Sulfur Dioxide [ppbV]"}, - /* 233 */ {"MSA", "Methanesulfonic Acid [Kg/Kg]"}, - /* 234 */ {"TSO4", "Total Sulfate Particulates (Fine ands Coarse) [μg/m^3]"}, - /* 235 */ {"DMS", "Dimethylsulfide [Kg/Kg]"}, - /* 236 */ {"var236", "undefined"}, - /* 237 */ {"var237", "undefined"}, - /* 238 */ {"var238", "undefined"}, - /* 239 */ {"var239", "undefined"}, - /* 240 */ {"DU1", "Dust Particulates between 0.2 - 2.0 μm Diameter [Kg/Kg]"}, - /* 241 */ {"DU2", "Dust Particulates between 2.0 - 3.6 μm Diameter [Kg/Kg]"}, - /* 242 */ {"DU3", "Dust Particulates between 3.6 - 6.0 μm Diameter [Kg/Kg]"}, - /* 243 */ {"DU4", "Dust Particulates between 6.0 - 12.0 μm Diameter [Kg/Kg]"}, - /* 244 */ {"DU5", "Dust Particulates between 12.0 - 20.0 μm Diameter [Kg/Kg]"}, - /* 245 */ {"SS1", "Sea Salt Particulates between 0.2 - 1.0 μm Diameter [Kg/Kg]"}, - /* 246 */ {"SS2", "Sea Salt Particulates between 1.0 - 3.0 μm Diameter [Kg/Kg]"}, - /* 247 */ {"SS3", "Sea Salt Particulates between 3.0 - 10.0 μm Diameter [Kg/Kg]"}, - /* 248 */ {"SS4", "Sea Salt Particulates between 10.0 - 20.0 μm Diameter [Kg/Kg]"}, - /* 249 */ {"OCDRY", "Hydrophobic Organic Carbon [Kg/Kg]"}, - /* 250 */ {"OCWET", "Hydrophilic Organic Carbon [Kg/Kg]"}, - /* 251 */ {"BCDRY", "Hydrophobic Black Carbon [Kg/Kg]"}, - /* 252 */ {"BCWET", "Hydrophilic Black Carbon [Kg/Kg]"}, - /* 253 */ {"var253", "undefined"}, - /* 254 */ {"var254", "undefined"}, - /* 255 */ {"var255", "undefined"}, +const struct ParmTable parm_table_ecmwf_180[256] = { + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"var1", "undefined"}, + /* 2 */ {"var2", "undefined"}, + /* 3 */ {"var3", "undefined"}, + /* 4 */ {"var4", "undefined"}, + /* 5 */ {"var5", "undefined"}, + /* 6 */ {"var6", "undefined"}, + /* 7 */ {"var7", "undefined"}, + /* 8 */ {"var8", "undefined"}, + /* 9 */ {"var9", "undefined"}, + /* 10 */ {"var10", "undefined"}, + /* 11 */ {"var11", "undefined"}, + /* 12 */ {"var12", "undefined"}, + /* 13 */ {"var13", "undefined"}, + /* 14 */ {"var14", "undefined"}, + /* 15 */ {"var15", "undefined"}, + /* 16 */ {"var16", "undefined"}, + /* 17 */ {"var17", "undefined"}, + /* 18 */ {"var18", "undefined"}, + /* 19 */ {"var19", "undefined"}, + /* 20 */ {"var20", "undefined"}, + /* 21 */ {"var21", "undefined"}, + /* 22 */ {"var22", "undefined"}, + /* 23 */ {"var23", "undefined"}, + /* 24 */ {"var24", "undefined"}, + /* 25 */ {"var25", "undefined"}, + /* 26 */ {"var26", "undefined"}, + /* 27 */ {"var27", "undefined"}, + /* 28 */ {"var28", "undefined"}, + /* 29 */ {"var29", "undefined"}, + /* 30 */ {"var30", "undefined"}, + /* 31 */ {"var31", "undefined"}, + /* 32 */ {"var32", "undefined"}, + /* 33 */ {"var33", "undefined"}, + /* 34 */ {"var34", "undefined"}, + /* 35 */ {"var35", "undefined"}, + /* 36 */ {"var36", "undefined"}, + /* 37 */ {"var37", "undefined"}, + /* 38 */ {"var38", "undefined"}, + /* 39 */ {"var39", "undefined"}, + /* 40 */ {"var40", "undefined"}, + /* 41 */ {"var41", "undefined"}, + /* 42 */ {"var42", "undefined"}, + /* 43 */ {"var43", "undefined"}, + /* 44 */ {"var44", "undefined"}, + /* 45 */ {"var45", "undefined"}, + /* 46 */ {"var46", "undefined"}, + /* 47 */ {"var47", "undefined"}, + /* 48 */ {"var48", "undefined"}, + /* 49 */ {"var49", "undefined"}, + /* 50 */ {"var50", "undefined"}, + /* 51 */ {"var51", "undefined"}, + /* 52 */ {"var52", "undefined"}, + /* 53 */ {"var53", "undefined"}, + /* 54 */ {"var54", "undefined"}, + /* 55 */ {"var55", "undefined"}, + /* 56 */ {"var56", "undefined"}, + /* 57 */ {"var57", "undefined"}, + /* 58 */ {"var58", "undefined"}, + /* 59 */ {"var59", "undefined"}, + /* 60 */ {"var60", "undefined"}, + /* 61 */ {"var61", "undefined"}, + /* 62 */ {"var62", "undefined"}, + /* 63 */ {"var63", "undefined"}, + /* 64 */ {"var64", "undefined"}, + /* 65 */ {"var65", "undefined"}, + /* 66 */ {"var66", "undefined"}, + /* 67 */ {"var67", "undefined"}, + /* 68 */ {"var68", "undefined"}, + /* 69 */ {"var69", "undefined"}, + /* 70 */ {"var70", "undefined"}, + /* 71 */ {"var71", "undefined"}, + /* 72 */ {"var72", "undefined"}, + /* 73 */ {"var73", "undefined"}, + /* 74 */ {"var74", "undefined"}, + /* 75 */ {"var75", "undefined"}, + /* 76 */ {"var76", "undefined"}, + /* 77 */ {"var77", "undefined"}, + /* 78 */ {"var78", "undefined"}, + /* 79 */ {"var79", "undefined"}, + /* 80 */ {"var80", "undefined"}, + /* 81 */ {"var81", "undefined"}, + /* 82 */ {"var82", "undefined"}, + /* 83 */ {"var83", "undefined"}, + /* 84 */ {"var84", "undefined"}, + /* 85 */ {"var85", "undefined"}, + /* 86 */ {"var86", "undefined"}, + /* 87 */ {"var87", "undefined"}, + /* 88 */ {"var88", "undefined"}, + /* 89 */ {"var89", "undefined"}, + /* 90 */ {"var90", "undefined"}, + /* 91 */ {"var91", "undefined"}, + /* 92 */ {"var92", "undefined"}, + /* 93 */ {"var93", "undefined"}, + /* 94 */ {"var94", "undefined"}, + /* 95 */ {"var95", "undefined"}, + /* 96 */ {"var96", "undefined"}, + /* 97 */ {"var97", "undefined"}, + /* 98 */ {"var98", "undefined"}, + /* 99 */ {"var99", "undefined"}, + /* 100 */ {"var100", "undefined"}, + /* 101 */ {"var101", "undefined"}, + /* 102 */ {"var102", "undefined"}, + /* 103 */ {"var103", "undefined"}, + /* 104 */ {"var104", "undefined"}, + /* 105 */ {"var105", "undefined"}, + /* 106 */ {"var106", "undefined"}, + /* 107 */ {"var107", "undefined"}, + /* 108 */ {"var108", "undefined"}, + /* 109 */ {"var109", "undefined"}, + /* 110 */ {"var110", "undefined"}, + /* 111 */ {"var111", "undefined"}, + /* 112 */ {"var112", "undefined"}, + /* 113 */ {"var113", "undefined"}, + /* 114 */ {"var114", "undefined"}, + /* 115 */ {"var115", "undefined"}, + /* 116 */ {"var116", "undefined"}, + /* 117 */ {"var117", "undefined"}, + /* 118 */ {"var118", "undefined"}, + /* 119 */ {"var119", "undefined"}, + /* 120 */ {"var120", "undefined"}, + /* 121 */ {"var121", "undefined"}, + /* 122 */ {"var122", "undefined"}, + /* 123 */ {"var123", "undefined"}, + /* 124 */ {"var124", "undefined"}, + /* 125 */ {"var125", "undefined"}, + /* 126 */ {"var126", "undefined"}, + /* 127 */ {"var127", "undefined"}, + /* 128 */ {"var128", "undefined"}, + /* 129 */ {"Z", "Geopotential [m**2 s**-2]"}, + /* 130 */ {"T", "Temperature [K]"}, + /* 131 */ {"U", "U velocity [m s**-1]"}, + /* 132 */ {"V", "V velocity [m s**-1]"}, + /* 133 */ {"Q", "Specific humidity [kg kg**-1]"}, + /* 134 */ {"SP", "Surface pressure [Pa]"}, + /* 135 */ {"var135", "undefined"}, + /* 136 */ {"var136", "undefined"}, + /* 137 */ {"TCWV", "Total column water vapour [kg m**-2]"}, + /* 138 */ {"VO", "Vorticity (relative) [s**-1]"}, + /* 139 */ {"var139", "undefined"}, + /* 140 */ {"var140", "undefined"}, + /* 141 */ {"SD", "Snow depth [m of water equivalent]"}, + /* 142 */ {"LSP", "Large-scale precipitation [m]"}, + /* 143 */ {"CP", "Convective precipitation [m]"}, + /* 144 */ {"SF", "Snowfall [m of water equivalent]"}, + /* 145 */ {"var145", "undefined"}, + /* 146 */ {"SSHF", "Surface sensible heat flux [W m**-2 s]"}, + /* 147 */ {"SLHF", "Surface latent heat flux [W m**-2 s]"}, + /* 148 */ {"var148", "undefined"}, + /* 149 */ {"TSW", "Total soil wetness [m]"}, + /* 150 */ {"var150", "undefined"}, + /* 151 */ {"MSL", "Mean sea level pressure [Pa]"}, + /* 152 */ {"var152", "undefined"}, + /* 153 */ {"var153", "undefined"}, + /* 154 */ {"var154", "undefined"}, + /* 155 */ {"D", "Divergence [s**-1]"}, + /* 156 */ {"var156", "undefined"}, + /* 157 */ {"var157", "undefined"}, + /* 158 */ {"var158", "undefined"}, + /* 159 */ {"var159", "undefined"}, + /* 160 */ {"var160", "undefined"}, + /* 161 */ {"var161", "undefined"}, + /* 162 */ {"var162", "undefined"}, + /* 163 */ {"var163", "undefined"}, + /* 164 */ {"TCC", "Total cloud cover [(0 - 1)]"}, + /* 165 */ {"10U", "10 metre U wind component [m s**-1]"}, + /* 166 */ {"10V", "10 metre V wind component [m s**-1]"}, + /* 167 */ {"2T", "2 metre temperature [K]"}, + /* 168 */ {"2D", "2 metre dewpoint temperature [K]"}, + /* 169 */ {"var169", "undefined"}, + /* 170 */ {"var170", "undefined"}, + /* 171 */ {"var171", "undefined"}, + /* 172 */ {"LSM", "Land-sea mask [(0 - 1)]"}, + /* 173 */ {"var173", "undefined"}, + /* 174 */ {"var174", "undefined"}, + /* 175 */ {"var175", "undefined"}, + /* 176 */ {"SSR", "Surface solar radiation [J m**-2 s]"}, + /* 177 */ {"STR", "Surface thermal radiation [J m**-2 s]"}, + /* 178 */ {"TSR", "Top solar radiation [J m**-2 s]"}, + /* 179 */ {"TTR", "Top thermal radiation [J m**-2 s]"}, + /* 180 */ {"EWSS", "East-West surface stress [N m**-2 s]"}, + /* 181 */ {"NSSS", "North-South surface stress [N m**-2 s]"}, + /* 182 */ {"E", "Evaporation [m of water]"}, + /* 183 */ {"var183", "undefined"}, + /* 184 */ {"var184", "undefined"}, + /* 185 */ {"var185", "undefined"}, + /* 186 */ {"var186", "undefined"}, + /* 187 */ {"var187", "undefined"}, + /* 188 */ {"var188", "undefined"}, + /* 189 */ {"var189", "undefined"}, + /* 190 */ {"var190", "undefined"}, + /* 191 */ {"var191", "undefined"}, + /* 192 */ {"var192", "undefined"}, + /* 193 */ {"var193", "undefined"}, + /* 194 */ {"var194", "undefined"}, + /* 195 */ {"var195", "undefined"}, + /* 196 */ {"var196", "undefined"}, + /* 197 */ {"var197", "undefined"}, + /* 198 */ {"var198", "undefined"}, + /* 199 */ {"var199", "undefined"}, + /* 200 */ {"var200", "undefined"}, + /* 201 */ {"var201", "undefined"}, + /* 202 */ {"var202", "undefined"}, + /* 203 */ {"var203", "undefined"}, + /* 204 */ {"var204", "undefined"}, + /* 205 */ {"RO", "Runoff [m]"}, + /* 206 */ {"var206", "undefined"}, + /* 207 */ {"var207", "undefined"}, + /* 208 */ {"var208", "undefined"}, + /* 209 */ {"var209", "undefined"}, + /* 210 */ {"var210", "undefined"}, + /* 211 */ {"var211", "undefined"}, + /* 212 */ {"var212", "undefined"}, + /* 213 */ {"var213", "undefined"}, + /* 214 */ {"var214", "undefined"}, + /* 215 */ {"var215", "undefined"}, + /* 216 */ {"var216", "undefined"}, + /* 217 */ {"var217", "undefined"}, + /* 218 */ {"var218", "undefined"}, + /* 219 */ {"var219", "undefined"}, + /* 220 */ {"var220", "undefined"}, + /* 221 */ {"var221", "undefined"}, + /* 222 */ {"var222", "undefined"}, + /* 223 */ {"var223", "undefined"}, + /* 224 */ {"var224", "undefined"}, + /* 225 */ {"var225", "undefined"}, + /* 226 */ {"var226", "undefined"}, + /* 227 */ {"var227", "undefined"}, + /* 228 */ {"var228", "undefined"}, + /* 229 */ {"var229", "undefined"}, + /* 230 */ {"var230", "undefined"}, + /* 231 */ {"var231", "undefined"}, + /* 232 */ {"var232", "undefined"}, + /* 233 */ {"var233", "undefined"}, + /* 234 */ {"var234", "undefined"}, + /* 235 */ {"var235", "undefined"}, + /* 236 */ {"var236", "undefined"}, + /* 237 */ {"var237", "undefined"}, + /* 238 */ {"var238", "undefined"}, + /* 239 */ {"var239", "undefined"}, + /* 240 */ {"var240", "undefined"}, + /* 241 */ {"var241", "undefined"}, + /* 242 */ {"var242", "undefined"}, + /* 243 */ {"var243", "undefined"}, + /* 244 */ {"var244", "undefined"}, + /* 245 */ {"var245", "undefined"}, + /* 246 */ {"var246", "undefined"}, + /* 247 */ {"var247", "undefined"}, + /* 248 */ {"var248", "undefined"}, + /* 249 */ {"var249", "undefined"}, + /* 250 */ {"var250", "undefined"}, + /* 251 */ {"var251", "undefined"}, + /* 252 */ {"var252", "undefined"}, + /* 253 */ {"var253", "undefined"}, + /* 254 */ {"var254", "undefined"}, + /* 255 */ {"var255", "Indicates a missing value []"}, }; -const struct ParmTable parm_table_mdl_nceptab[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"PRES", "Pressure [Pa]"}, - /* 2 */ {"PRMSL", "Pressure reduced to MSL [Pa]"}, - /* 3 */ {"PTEND", "Pressure tendency [Pa/s]"}, - /* 4 */ {"PVORT", "Pot. vorticity [km^2/kg/s]"}, - /* 5 */ {"ICAHT", "ICAO Standard Atmosphere Reference Height [M]"}, - /* 6 */ {"GP", "Geopotential [m^2/s^2]"}, - /* 7 */ {"HGT", "Geopotential height [gpm]"}, - /* 8 */ {"DIST", "Geometric height [m]"}, - /* 9 */ {"HSTDV", "Std dev of height [m]"}, - /* 10 */ {"TOZNE", "Total ozone [Dobson]"}, - /* 11 */ {"TMP", "Temp. [K]"}, - /* 12 */ {"VTMP", "Virtual temp. [K]"}, - /* 13 */ {"POT", "Potential temp. [K]"}, - /* 14 */ {"EPOT", "Pseudo-adiabatic pot. temp. [K]"}, - /* 15 */ {"TMAX", "Max. temp. [K]"}, - /* 16 */ {"TMIN", "Min. temp. [K]"}, - /* 17 */ {"DPT", "Dew point temp. [K]"}, - /* 18 */ {"DEPR", "Dew point depression [K]"}, - /* 19 */ {"LAPR", "Lapse rate [K/m]"}, - /* 20 */ {"VIS", "Visibility [m]"}, - /* 21 */ {"RDSP1", "Radar spectra (1) [non-dim]"}, - /* 22 */ {"RDSP2", "Radar spectra (2) [non-dim]"}, - /* 23 */ {"RDSP3", "Radar spectra (3) [non-dim]"}, - /* 24 */ {"PLI", "Parcel lifted index (to 500 hPa) [K]"}, - /* 25 */ {"TMPA", "Temp. anomaly [K]"}, - /* 26 */ {"PRESA", "Pressure anomaly [Pa]"}, - /* 27 */ {"GPA", "Geopotential height anomaly [gpm]"}, - /* 28 */ {"WVSP1", "Wave spectra (1) [non-dim]"}, - /* 29 */ {"WVSP2", "Wave spectra (2) [non-dim]"}, - /* 30 */ {"WVSP3", "Wave spectra (3) [non-dim]"}, - /* 31 */ {"WDIR", "Wind direction [deg]"}, - /* 32 */ {"WIND", "Wind speed [m/s]"}, - /* 33 */ {"UGRD", "u wind [m/s]"}, - /* 34 */ {"VGRD", "v wind [m/s]"}, - /* 35 */ {"STRM", "Stream function [m^2/s]"}, - /* 36 */ {"VPOT", "Velocity potential [m^2/s]"}, - /* 37 */ {"MNTSF", "Montgomery stream function [m^2/s^2]"}, - /* 38 */ {"SGCVV", "Sigma coord. vertical velocity [/s]"}, - /* 39 */ {"VVEL", "Pressure vertical velocity [Pa/s]"}, - /* 40 */ {"DZDT", "Geometric vertical velocity [m/s]"}, - /* 41 */ {"ABSV", "Absolute vorticity [/s]"}, - /* 42 */ {"ABSD", "Absolute divergence [/s]"}, - /* 43 */ {"RELV", "Relative vorticity [/s]"}, - /* 44 */ {"RELD", "Relative divergence [/s]"}, - /* 45 */ {"VUCSH", "Vertical u shear [/s]"}, - /* 46 */ {"VVCSH", "Vertical v shear [/s]"}, - /* 47 */ {"DIRC", "Direction of current [deg]"}, - /* 48 */ {"SPC", "Speed of current [m/s]"}, - /* 49 */ {"UOGRD", "u of current [m/s]"}, - /* 50 */ {"VOGRD", "v of current [m/s]"}, - /* 51 */ {"SPFH", "Specific humidity [kg/kg]"}, - /* 52 */ {"RH", "Relative humidity [%]"}, - /* 53 */ {"MIXR", "Humidity mixing ratio [kg/kg]"}, - /* 54 */ {"PWAT", "Precipitable water [kg/m^2]"}, - /* 55 */ {"VAPP", "Vapor pressure [Pa]"}, - /* 56 */ {"SATD", "Saturation deficit [Pa]"}, - /* 57 */ {"EVP", "Evaporation [kg/m^2]"}, - /* 58 */ {"CICE", "Cloud Ice [kg/m^2]"}, - /* 59 */ {"PRATE", "Precipitation rate [kg/m^2/s]"}, - /* 60 */ {"TSTM", "Thunderstorm probability [%]"}, - /* 61 */ {"APCP", "Total precipitation [kg/m^2]"}, - /* 62 */ {"NCPCP", "Large scale precipitation [kg/m^2]"}, - /* 63 */ {"ACPCP", "Convective precipitation [kg/m^2]"}, - /* 64 */ {"SRWEQ", "Snowfall rate water equiv. [kg/m^2/s]"}, - /* 65 */ {"WEASD", "Accum. snow [kg/m^2]"}, - /* 66 */ {"SNOD", "Snow depth [m]"}, - /* 67 */ {"MIXHT", "Mixed layer depth [m]"}, - /* 68 */ {"TTHDP", "Transient thermocline depth [m]"}, - /* 69 */ {"MTHD", "Main thermocline depth [m]"}, - /* 70 */ {"MTHA", "Main thermocline anomaly [m]"}, - /* 71 */ {"TCDC", "Total cloud cover [%]"}, - /* 72 */ {"CDCON", "Convective cloud cover [%]"}, - /* 73 */ {"LCDC", "Low level cloud cover [%]"}, - /* 74 */ {"MCDC", "Mid level cloud cover [%]"}, - /* 75 */ {"HCDC", "High level cloud cover [%]"}, - /* 76 */ {"CWAT", "Cloud water [kg/m^2]"}, - /* 77 */ {"BLI", "Best lifted index (to 500 hPa) [K]"}, - /* 78 */ {"SNOC", "Convective snow [kg/m^2]"}, - /* 79 */ {"SNOL", "Large scale snow [kg/m^2]"}, - /* 80 */ {"WTMP", "Water temp. [K]"}, - /* 81 */ {"LAND", "Land cover (land=1;sea=0) [fraction]"}, - /* 82 */ {"DSLM", "Deviation of sea level from mean [m]"}, - /* 83 */ {"SFCR", "Surface roughness [m]"}, - /* 84 */ {"ALBDO", "Albedo [%]"}, - /* 85 */ {"TSOIL", "Soil temp. [K]"}, - /* 86 */ {"SOILM", "Soil moisture content [kg/m^2]"}, - /* 87 */ {"VEG", "Vegetation [%]"}, - /* 88 */ {"SALTY", "Salinity [kg/kg]"}, - /* 89 */ {"DEN", "Density [kg/m^3]"}, - /* 90 */ {"WATR", "Water runoff [kg/m^2]"}, - /* 91 */ {"ICEC", "Ice concentration (ice=1;no ice=0) [fraction]"}, - /* 92 */ {"ICETK", "Ice thickness [m]"}, - /* 93 */ {"DICED", "Direction of ice drift [deg]"}, - /* 94 */ {"SICED", "Speed of ice drift [m/s]"}, - /* 95 */ {"UICE", "u of ice drift [m/s]"}, - /* 96 */ {"VICE", "v of ice drift [m/s]"}, - /* 97 */ {"ICEG", "Ice growth rate [m/s]"}, - /* 98 */ {"ICED", "Ice divergence [/s]"}, - /* 99 */ {"SNOM", "Snow melt [kg/m^2]"}, - /* 100 */ {"HTSGW", "Sig height of wind waves and swell [m]"}, - /* 101 */ {"WVDIR", "Direction of wind waves [deg]"}, - /* 102 */ {"WVHGT", "Sig height of wind waves [m]"}, - /* 103 */ {"WVPER", "Mean period of wind waves [s]"}, - /* 104 */ {"SWDIR", "Direction of swell waves [deg]"}, - /* 105 */ {"SWELL", "Sig height of swell waves [m]"}, - /* 106 */ {"SWPER", "Mean period of swell waves [s]"}, - /* 107 */ {"DIRPW", "Primary wave direction [deg]"}, - /* 108 */ {"PERPW", "Primary wave mean period [s]"}, - /* 109 */ {"DIRSW", "Secondary wave direction [deg]"}, - /* 110 */ {"PERSW", "Secondary wave mean period [s]"}, - /* 111 */ {"NSWRS", "Net short wave (surface) [W/m^2]"}, - /* 112 */ {"NLWRS", "Net long wave (surface) [W/m^2]"}, - /* 113 */ {"NSWRT", "Net short wave (top) [W/m^2]"}, - /* 114 */ {"NLWRT", "Net long wave (top) [W/m^2]"}, - /* 115 */ {"LWAVR", "Long wave [W/m^2]"}, - /* 116 */ {"SWAVR", "Short wave [W/m^2]"}, - /* 117 */ {"GRAD", "Global radiation [W/m^2]"}, - /* 118 */ {"BRTMP", "Brightness temperature [K]"}, - /* 119 */ {"LWRAD", "Radiance with respect to wave no. [W/m/sr]"}, - /* 120 */ {"SWRAD", "Radiance with respect ot wave len. [W/m^3/sr]"}, - /* 121 */ {"LHTFL", "Latent heat flux [W/m^2]"}, - /* 122 */ {"SHTFL", "Sensible heat flux [W/m^2]"}, - /* 123 */ {"BLYDP", "Boundary layer dissipation [W/m^2]"}, - /* 124 */ {"UFLX", "Zonal momentum flux [N/m^2]"}, - /* 125 */ {"VFLX", "Meridional momentum flux [N/m^2]"}, - /* 126 */ {"WMIXE", "Wind mixing energy [J]"}, - /* 127 */ {"IMGD", "Image data []"}, - /* 128 */ {"TMPF", "TEMPERATURE (Fahrenheit) [F]"}, - /* 129 */ {"MAXK", "DAYTIME MAX TEMP (MAX) (Kelvin) [K]"}, - /* 130 */ {"MAXF", "DAYTIME MAX TEMP (MAX) (deg F) [F]"}, - /* 131 */ {"NMAXK", "NORMAL MAX TEMPERATURE (Kelvin) [K]"}, - /* 132 */ {"NMAXF", "NORMAL MAX TEMPERATURE (deg F) [F]"}, - /* 133 */ {"DMAXK", "DEPARTURE FROM NORMAL MAX (K) [K]"}, - /* 134 */ {"DMAXF", "DEPARTURE FROM NORMAL MAX (deg F) [F]"}, - /* 135 */ {"MINK", "NIGHTTIME MIN TEMP (MIN) (Kelvin) [K]"}, - /* 136 */ {"MINF", "NIGHTTIME MIN TEMP (MIN) (deg F) [F]"}, - /* 137 */ {"NMINK", "NORMAL MIN TEMPERATURE (Kelvin) [K]"}, - /* 138 */ {"NMINF", "NORMAL NIGHTTIME MIN TEMP (deg F) [F]"}, - /* 139 */ {"DMINK", "DEPARTURE FROM NORMAL MIN (K) [K]"}, - /* 140 */ {"DMINF", "DEPARTURE FROM NORMAL MIN (deg F) [F]"}, - /* 141 */ {"DWPF", "DEW POINT TEMPERATURE (deg F) [F]"}, - /* 142 */ {"DPDF", "DEW POINT DEPRESSION (deg F) [F]"}, - /* 143 */ {"HTINF", "HEAT INDEX (deg F) [F]"}, - /* 144 */ {"WNCHF", "WIND CHILL (deg F) [F]"}, - /* 145 */ {"var145", "undefined"}, - /* 146 */ {"POP", "PROB OF 0.01 IN. OF PRECIP (PoP) [%]"}, - /* 147 */ {"PQPF2", "PROB OF QPF >= 0.10 INCHES [%]"}, - /* 148 */ {"PQPF3", "PROB OF QPF >= 0.25 INCHES [%]"}, - /* 149 */ {"PQPF4", "PROB OF QPF >= 0.50 INCHES [%]"}, - /* 150 */ {"PQPF5", "PROB OF QPF >= 1.00 INCHES [%]"}, - /* 151 */ {"PQPF6", "PROB OF QPF >= 2.00 INCHES [%]"}, - /* 152 */ {"PQPF7", "PROB OF QPF >= 3.00 INCHES FUTURE [%]"}, - /* 153 */ {"BQPF", "BEST CATEGORY OF QPF [num]"}, - /* 154 */ {"NPOP", "NML REL. FREQ. OF 0.01 IN OF PCP [%]"}, - /* 155 */ {"DPOP", "DEPARTURE FROM NML OF 0.01 POP [%]"}, - /* 156 */ {"PCPM", "EXPECTED VALUE OF PRECIPITATION [mm]"}, - /* 157 */ {"PCPI", "EXPECTED VALUE OF PRECIPITATION [in]"}, - /* 158 */ {"CPCPM", "CONDITIONAL EXPECTED PRECIP AMT [mm]"}, - /* 159 */ {"CPCPI", "CONDITIONAL EXPECTED PRECIP AMT [in]"}, - /* 160 */ {"PSNA1", "PROB OF SNOW AMOUNT >= 0.10 [%]"}, - /* 161 */ {"PSNA2", "PROB OF SNOW AMOUNT >= 2 INCHES [%]"}, - /* 162 */ {"PSNA3", "PROB OF SNOW AMOUNT >= 4 INCHES [%]"}, - /* 163 */ {"PSNA4", "PROB OF SNOW AMOUNT >= 6 INCHES [%]"}, - /* 164 */ {"PSNA5", "PROB OF SNOW AMOUNT >= 8 INCHES [%]"}, - /* 165 */ {"BSNA", "BEST CATEGORY FOR SNOW AMOUNT [num]"}, - /* 166 */ {"SNWM", "EXPECTED VALUE OF SNOW AMOUNT [mm]"}, - /* 167 */ {"SNWI", "EXPECTED VALUE OF SNOW AMOUNT [in]"}, - /* 168 */ {"MWSPK", "INFLATED MAX WIND SPEED (knots) [kts]"}, - /* 169 */ {"IWSPM", "INFLATED WIND SPEED (meter/sec) [m/s]"}, - /* 170 */ {"SKNT", "INFLATED WIND SPEED (knots) [kts]"}, - /* 171 */ {"PWSP1", "PROB OF MAX WIND SPEED 0-12 kts [%]"}, - /* 172 */ {"PWSP2", "PROB OF MAX WIND SPEED 13-21 kts [%]"}, - /* 173 */ {"PWSP3", "PROB OF MAX WIND SPEED 22-31 kts [%]"}, - /* 174 */ {"PWSP4", "PROB OF MAX WIND SPEED >=32 kts [%]"}, - /* 175 */ {"WSPDC", "CATEGORICAL MAX WIND SPEED [num]"}, - /* 176 */ {"XSPDM", "EXPECTED VALUE OF MAX WIND SPEED [m/s]"}, - /* 177 */ {"XSPDK", "EXPECTED VALUE OF MAX WIND SPEED [kts]"}, - /* 178 */ {"PWDRN", "PROB OF WIND DIRECTION NORTH [%]"}, - /* 179 */ {"PWDRNE", "PROB OF WIND DIRECTION NORTHEAST [%]"}, - /* 180 */ {"PWDRE", "PROB OF WIND DIRECTION EAST [%]"}, - /* 181 */ {"PWDRSE", "PROB OF WIND DIRECTION SOUTHEAST [%]"}, - /* 182 */ {"PWDRS", "PROB OF WIND DIRECTION SOUTH [%]"}, - /* 183 */ {"PWDRSW", "PROB OF WIND DIRECTION SOUTHWEST [%]"}, - /* 184 */ {"PWDRW", "PROB OF WIND DIRECTION WEST [%]"}, - /* 185 */ {"PWDRNW", "PROB OF WIND DIRECTION NORTHWEST [%]"}, - /* 186 */ {"WDIRC", "CATEGORICAL WIND DIRECTION [num]"}, - /* 187 */ {"var187", "undefined"}, - /* 188 */ {"PSKCL", "PROB OF TOTAL SKY"}, - /* 189 */ {"PSKFW", "PROB OF TOTAL SKY"}, - /* 190 */ {"PSKSC", "PROB OF TOTAL SKY"}, - /* 191 */ {"PSKBK", "PROB OF TOTAL SKY"}, - /* 192 */ {"PSKOV", "PROB OF TOTAL SKY"}, - /* 193 */ {"SKYC", "CATEGORICAL TOTAL SKY COVER [num]"}, - /* 194 */ {"MSKCL", "PROB MEAN SKY CVR"}, - /* 195 */ {"MSKOV", "PROB MEAN SKY CVR"}, - /* 196 */ {"MSKMC", "PROB MEAN SKY CVR"}, - /* 197 */ {"MSKPC", "PROB MEAN SKY CVR"}, - /* 198 */ {"MSKMO", "PROB MEAN SKY CVR"}, - /* 199 */ {"MSKYC", "CATEGORICAL MEAN SKY COVER [num]"}, - /* 200 */ {"PCIG1", "PROB OF CIG HGT < 200 FT [%]"}, - /* 201 */ {"PCIG2", "PROB OF CIG HGT 200-400 FT [%]"}, - /* 202 */ {"PCIG3", "PROB OF CIG HGT 500-900 FT [%]"}, - /* 203 */ {"PCIG4", "PROB OF CIG HGT 1000-3000 FT [%]"}, - /* 204 */ {"PCIG5", "PROB OF CIG HGT 3100-6500 FT [%]"}, - /* 205 */ {"PCIG6", "PROB OF CIG HGT 6600-12000 FT [%]"}, - /* 206 */ {"PCIG7", "PROB OF CIG HGT > 12000 FT [%]"}, - /* 207 */ {"BCIG", "BEST CATEGORY OF CEILING HEIGHT [num]"}, - /* 208 */ {"PVIS1", "PROB OF VIS <=1/4 MILE [%]"}, - /* 209 */ {"PVIS2", "PROB OF VIS <=1/2 MILE [%]"}, - /* 210 */ {"PVIS3", "PROB OF VIS <=7/8 MILE [%]"}, - /* 211 */ {"PVIS4", "PROB OF VIS <=2 3/4 MILES [%]"}, - /* 212 */ {"PVIS5", "PROB OF VIS <=5 MILES [%]"}, - /* 213 */ {"PVIS6", "PROB OF VIS <=6 MILES [%]"}, - /* 214 */ {"VISC", "CATEGORICAL VISIBILITY [num]"}, - /* 215 */ {"POBVN", "PROB OF OBSTRUCTION TO VIS"}, - /* 216 */ {"POBVH", "PROB OF OBSTRUCTION TO VIS"}, - /* 217 */ {"POBVM", "PROB OF OBSTRUCTION TO VIS"}, - /* 218 */ {"POBVF", "PROB OF OBSTRUCTION TO VIS"}, - /* 219 */ {"POVBL", "PROB OF BLOWING OBVIS [%]"}, - /* 220 */ {"OBVC", "BEST CATEGORY OF OBVIS [num]"}, - /* 221 */ {"var221", "undefined"}, - /* 222 */ {"NTSM", "NORMAL PROB OF THUNDERSTORMS [%]"}, - /* 223 */ {"CSVR", "COND PROB OF SEVERE WEATHER [%]"}, - /* 224 */ {"USVR", "UNCOND PROB OF SEVERE WX [%]"}, - /* 225 */ {"NSVR", "NORMAL PROB OF SEVERE WX [%]"}, - /* 226 */ {"UHAI", "UNCONDITIONAL PROB OF HAIL [%]"}, - /* 227 */ {"UTOR", "UNCONDITIONAL PROB OF TORNADO [%]"}, - /* 228 */ {"UTSW", "UNCOND PROB OF DAMAGING WIND [%]"}, - /* 229 */ {"CFZI", "COND PROB FRZING PRECIP (INSTANT) [%]"}, - /* 230 */ {"UFZI", "UNCND PROB FRZING PRECIP (INSTNT) [%]"}, - /* 231 */ {"CZNI", "COND PROB FROZEN PRECIP (INSTANT) [%]"}, - /* 232 */ {"UZNI", "UNCND PROB FROZEN PRECIP (INSTNT) [%]"}, - /* 233 */ {"CLQI", "COND PROB LIQUID PRECIP (INSTANT) [%]"}, - /* 234 */ {"ULQI", "UNCND PROB LIQUID PRECIP (INSTNT) [%]"}, - /* 235 */ {"PTYPI", "CATEGORICAL PRECIP TYPE (INSTANT) [num]"}, - /* 236 */ {"CPOZP", "COND PROB OF FRZING PRECIP [%]"}, - /* 237 */ {"UPOZP", "UNCOND PROB OF FRZING PRECIP [%]"}, - /* 238 */ {"CPOS", "COND PROB OF SNOW (CPoS) [%]"}, - /* 239 */ {"UPOS", "UNCOND PROB OF SNOW (CPoS) [%]"}, - /* 240 */ {"CPORS", "COND PROB OF RAIN/SNOW MIXED [%]"}, - /* 241 */ {"UPORS", "UNCOND PROB OF RAIN/SNOW MIXED [%]"}, - /* 242 */ {"CPORA", "COND PROB OF RAIN [%]"}, - /* 243 */ {"var243", "undefined"}, - /* 244 */ {"BPCPT", "BEST CATEGORY OF PRECIP TYPE [num]"}, - /* 245 */ {"POPOH", "POPO PRECIP OCCURRING AT AN HOUR [%]"}, - /* 246 */ {"POPOP", "POPO PRECIP DURING A PERIOD [%]"}, - /* 247 */ {"CPDRZ", "COND PROB OF DRIZZLE [%]"}, - /* 248 */ {"CPSTY", "COND PROB OF CONT (STEADY) PRECIP [%]"}, - /* 249 */ {"CPSHW", "COND PROB OF SHOWERS [%]"}, - /* 250 */ {"BPCHR", "BEST CAT PRECIP CHARACTERISTIC [num]"}, - /* 251 */ {"SUNSH", "PERCENT OF POSSIBLE SUNSHINE [%]"}, - /* 252 */ {"HRSUN", "HOURS OF SUNSHINE [hrs]"}, - /* 253 */ {"SCQP", "SCAN 0-3H CATEGORICAL QPF [num]"}, - /* 254 */ {"SCTS", "SCAN 0-3H C-G LIGHTNING PROB [%]"}, - /* 255 */ {"var255", "undefined"}, +const struct ParmTable parm_table_ecmwf_190[256] = { + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"var1", "undefined"}, + /* 2 */ {"var2", "undefined"}, + /* 3 */ {"var3", "undefined"}, + /* 4 */ {"var4", "undefined"}, + /* 5 */ {"var5", "undefined"}, + /* 6 */ {"var6", "undefined"}, + /* 7 */ {"var7", "undefined"}, + /* 8 */ {"var8", "undefined"}, + /* 9 */ {"var9", "undefined"}, + /* 10 */ {"var10", "undefined"}, + /* 11 */ {"var11", "undefined"}, + /* 12 */ {"var12", "undefined"}, + /* 13 */ {"var13", "undefined"}, + /* 14 */ {"var14", "undefined"}, + /* 15 */ {"var15", "undefined"}, + /* 16 */ {"var16", "undefined"}, + /* 17 */ {"var17", "undefined"}, + /* 18 */ {"var18", "undefined"}, + /* 19 */ {"var19", "undefined"}, + /* 20 */ {"var20", "undefined"}, + /* 21 */ {"var21", "undefined"}, + /* 22 */ {"var22", "undefined"}, + /* 23 */ {"var23", "undefined"}, + /* 24 */ {"var24", "undefined"}, + /* 25 */ {"var25", "undefined"}, + /* 26 */ {"var26", "undefined"}, + /* 27 */ {"var27", "undefined"}, + /* 28 */ {"var28", "undefined"}, + /* 29 */ {"var29", "undefined"}, + /* 30 */ {"var30", "undefined"}, + /* 31 */ {"var31", "undefined"}, + /* 32 */ {"var32", "undefined"}, + /* 33 */ {"var33", "undefined"}, + /* 34 */ {"var34", "undefined"}, + /* 35 */ {"var35", "undefined"}, + /* 36 */ {"var36", "undefined"}, + /* 37 */ {"var37", "undefined"}, + /* 38 */ {"var38", "undefined"}, + /* 39 */ {"var39", "undefined"}, + /* 40 */ {"var40", "undefined"}, + /* 41 */ {"var41", "undefined"}, + /* 42 */ {"var42", "undefined"}, + /* 43 */ {"var43", "undefined"}, + /* 44 */ {"var44", "undefined"}, + /* 45 */ {"var45", "undefined"}, + /* 46 */ {"var46", "undefined"}, + /* 47 */ {"var47", "undefined"}, + /* 48 */ {"var48", "undefined"}, + /* 49 */ {"var49", "undefined"}, + /* 50 */ {"var50", "undefined"}, + /* 51 */ {"var51", "undefined"}, + /* 52 */ {"var52", "undefined"}, + /* 53 */ {"var53", "undefined"}, + /* 54 */ {"var54", "undefined"}, + /* 55 */ {"var55", "undefined"}, + /* 56 */ {"var56", "undefined"}, + /* 57 */ {"var57", "undefined"}, + /* 58 */ {"var58", "undefined"}, + /* 59 */ {"var59", "undefined"}, + /* 60 */ {"var60", "undefined"}, + /* 61 */ {"var61", "undefined"}, + /* 62 */ {"var62", "undefined"}, + /* 63 */ {"var63", "undefined"}, + /* 64 */ {"var64", "undefined"}, + /* 65 */ {"var65", "undefined"}, + /* 66 */ {"var66", "undefined"}, + /* 67 */ {"var67", "undefined"}, + /* 68 */ {"var68", "undefined"}, + /* 69 */ {"var69", "undefined"}, + /* 70 */ {"var70", "undefined"}, + /* 71 */ {"var71", "undefined"}, + /* 72 */ {"var72", "undefined"}, + /* 73 */ {"var73", "undefined"}, + /* 74 */ {"var74", "undefined"}, + /* 75 */ {"var75", "undefined"}, + /* 76 */ {"var76", "undefined"}, + /* 77 */ {"var77", "undefined"}, + /* 78 */ {"var78", "undefined"}, + /* 79 */ {"var79", "undefined"}, + /* 80 */ {"var80", "undefined"}, + /* 81 */ {"var81", "undefined"}, + /* 82 */ {"var82", "undefined"}, + /* 83 */ {"var83", "undefined"}, + /* 84 */ {"var84", "undefined"}, + /* 85 */ {"var85", "undefined"}, + /* 86 */ {"var86", "undefined"}, + /* 87 */ {"var87", "undefined"}, + /* 88 */ {"var88", "undefined"}, + /* 89 */ {"var89", "undefined"}, + /* 90 */ {"var90", "undefined"}, + /* 91 */ {"var91", "undefined"}, + /* 92 */ {"var92", "undefined"}, + /* 93 */ {"var93", "undefined"}, + /* 94 */ {"var94", "undefined"}, + /* 95 */ {"var95", "undefined"}, + /* 96 */ {"var96", "undefined"}, + /* 97 */ {"var97", "undefined"}, + /* 98 */ {"var98", "undefined"}, + /* 99 */ {"var99", "undefined"}, + /* 100 */ {"var100", "undefined"}, + /* 101 */ {"var101", "undefined"}, + /* 102 */ {"var102", "undefined"}, + /* 103 */ {"var103", "undefined"}, + /* 104 */ {"var104", "undefined"}, + /* 105 */ {"var105", "undefined"}, + /* 106 */ {"var106", "undefined"}, + /* 107 */ {"var107", "undefined"}, + /* 108 */ {"var108", "undefined"}, + /* 109 */ {"var109", "undefined"}, + /* 110 */ {"var110", "undefined"}, + /* 111 */ {"var111", "undefined"}, + /* 112 */ {"var112", "undefined"}, + /* 113 */ {"var113", "undefined"}, + /* 114 */ {"var114", "undefined"}, + /* 115 */ {"var115", "undefined"}, + /* 116 */ {"var116", "undefined"}, + /* 117 */ {"var117", "undefined"}, + /* 118 */ {"var118", "undefined"}, + /* 119 */ {"var119", "undefined"}, + /* 120 */ {"var120", "undefined"}, + /* 121 */ {"var121", "undefined"}, + /* 122 */ {"var122", "undefined"}, + /* 123 */ {"var123", "undefined"}, + /* 124 */ {"var124", "undefined"}, + /* 125 */ {"var125", "undefined"}, + /* 126 */ {"var126", "undefined"}, + /* 127 */ {"var127", "undefined"}, + /* 128 */ {"var128", "undefined"}, + /* 129 */ {"Z", "Geopotential [m**2 s**-2]"}, + /* 130 */ {"T", "Temperature [K]"}, + /* 131 */ {"U", "U velocity [m s**-1]"}, + /* 132 */ {"V", "V velocity [m s**-1]"}, + /* 133 */ {"Q", "Specific humidity [kg kg**-1]"}, + /* 134 */ {"var134", "undefined"}, + /* 135 */ {"var135", "undefined"}, + /* 136 */ {"var136", "undefined"}, + /* 137 */ {"var137", "undefined"}, + /* 138 */ {"var138", "undefined"}, + /* 139 */ {"STL1", "Soil temperature level 1 [K]"}, + /* 140 */ {"var140", "undefined"}, + /* 141 */ {"SD", "Snow depth [m of water]"}, + /* 142 */ {"var142", "undefined"}, + /* 143 */ {"var143", "undefined"}, + /* 144 */ {"var144", "undefined"}, + /* 145 */ {"var145", "undefined"}, + /* 146 */ {"SSHF", "Surface sensible heat flux [W m**-2 s]"}, + /* 147 */ {"SLHF", "Surface latent heat flux [W m**-2 s]"}, + /* 148 */ {"var148", "undefined"}, + /* 149 */ {"var149", "undefined"}, + /* 150 */ {"var150", "undefined"}, + /* 151 */ {"MSL", "Mean sea level pressure [Pa]"}, + /* 152 */ {"var152", "undefined"}, + /* 153 */ {"var153", "undefined"}, + /* 154 */ {"var154", "undefined"}, + /* 155 */ {"var155", "undefined"}, + /* 156 */ {"var156", "undefined"}, + /* 157 */ {"var157", "undefined"}, + /* 158 */ {"var158", "undefined"}, + /* 159 */ {"var159", "undefined"}, + /* 160 */ {"var160", "undefined"}, + /* 161 */ {"var161", "undefined"}, + /* 162 */ {"var162", "undefined"}, + /* 163 */ {"var163", "undefined"}, + /* 164 */ {"TCC", "Total cloud cover [(0 - 1)]"}, + /* 165 */ {"10U", "10 metre U wind component [m s**-1]"}, + /* 166 */ {"10V", "10 metre V wind component [m s**-1]"}, + /* 167 */ {"2T", "2 metre temperature [K]"}, + /* 168 */ {"2D", "2 metre dewpoint temperature [K]"}, + /* 169 */ {"SSRD", "Downward surface solar radiation [W m**-2 s (W m**-2 for monthly means)]"}, + /* 170 */ {"CAP", "Field capacity [(0 - 1)]"}, + /* 171 */ {"WILT", "Wilting point [(0 - 1)]"}, + /* 172 */ {"LSM", "Land-sea mask [(0 - 1)]"}, + /* 173 */ {"SR", "Roughness length [(0 - 1)]"}, + /* 174 */ {"AL", "Albedo [(0 - 1)]"}, + /* 175 */ {"STRD", "Downward surface long wave radiation [W m**-2 s (W m**-2 for monthly means)]"}, + /* 176 */ {"SSR", "Surface net solar radiation [W m**-2 s (W m**-2 for monthly means)]"}, + /* 177 */ {"STR", "Surface net long wave radiation [W m**-2 s (W m**-2 for monthly means)]"}, + /* 178 */ {"TSR", "Top net solar radiation [W m**-2 s (W m**-2 for monthly means)]"}, + /* 179 */ {"TTR", "Top net long wave radiation [W m**-2 s (W m**-2 for monthly means)]"}, + /* 180 */ {"var180", "undefined"}, + /* 181 */ {"var181", "undefined"}, + /* 182 */ {"E", "Evaporation [m (m s**-1 for monthly means)]"}, + /* 183 */ {"var183", "undefined"}, + /* 184 */ {"var184", "undefined"}, + /* 185 */ {"var185", "undefined"}, + /* 186 */ {"var186", "undefined"}, + /* 187 */ {"var187", "undefined"}, + /* 188 */ {"var188", "undefined"}, + /* 189 */ {"var189", "undefined"}, + /* 190 */ {"var190", "undefined"}, + /* 191 */ {"var191", "undefined"}, + /* 192 */ {"var192", "undefined"}, + /* 193 */ {"var193", "undefined"}, + /* 194 */ {"var194", "undefined"}, + /* 195 */ {"var195", "undefined"}, + /* 196 */ {"var196", "undefined"}, + /* 197 */ {"var197", "undefined"}, + /* 198 */ {"var198", "undefined"}, + /* 199 */ {"var199", "undefined"}, + /* 200 */ {"var200", "undefined"}, + /* 201 */ {"MX2T", "Maximum 2 metre temperature [K]"}, + /* 202 */ {"MN2T", "Minimum 2 metre temperature [K]"}, + /* 203 */ {"var203", "undefined"}, + /* 204 */ {"var204", "undefined"}, + /* 205 */ {"var205", "undefined"}, + /* 206 */ {"var206", "undefined"}, + /* 207 */ {"var207", "undefined"}, + /* 208 */ {"var208", "undefined"}, + /* 209 */ {"var209", "undefined"}, + /* 210 */ {"var210", "undefined"}, + /* 211 */ {"var211", "undefined"}, + /* 212 */ {"var212", "undefined"}, + /* 213 */ {"var213", "undefined"}, + /* 214 */ {"var214", "undefined"}, + /* 215 */ {"var215", "undefined"}, + /* 216 */ {"var216", "undefined"}, + /* 217 */ {"var217", "undefined"}, + /* 218 */ {"var218", "undefined"}, + /* 219 */ {"var219", "undefined"}, + /* 220 */ {"var220", "undefined"}, + /* 221 */ {"var221", "undefined"}, + /* 222 */ {"var222", "undefined"}, + /* 223 */ {"var223", "undefined"}, + /* 224 */ {"var224", "undefined"}, + /* 225 */ {"var225", "undefined"}, + /* 226 */ {"var226", "undefined"}, + /* 227 */ {"var227", "undefined"}, + /* 228 */ {"TP", "Total precipitation [m (m s**-1 for monthly means)]"}, + /* 229 */ {"TSM", "Total soil moisture [m**3 m**-3]"}, + /* 230 */ {"var230", "undefined"}, + /* 231 */ {"var231", "undefined"}, + /* 232 */ {"var232", "undefined"}, + /* 233 */ {"var233", "undefined"}, + /* 234 */ {"var234", "undefined"}, + /* 235 */ {"var235", "undefined"}, + /* 236 */ {"var236", "undefined"}, + /* 237 */ {"var237", "undefined"}, + /* 238 */ {"var238", "undefined"}, + /* 239 */ {"var239", "undefined"}, + /* 240 */ {"var240", "undefined"}, + /* 241 */ {"var241", "undefined"}, + /* 242 */ {"var242", "undefined"}, + /* 243 */ {"var243", "undefined"}, + /* 244 */ {"var244", "undefined"}, + /* 245 */ {"var245", "undefined"}, + /* 246 */ {"var246", "undefined"}, + /* 247 */ {"var247", "undefined"}, + /* 248 */ {"var248", "undefined"}, + /* 249 */ {"var249", "undefined"}, + /* 250 */ {"var250", "undefined"}, + /* 251 */ {"var251", "undefined"}, + /* 252 */ {"var252", "undefined"}, + /* 253 */ {"var253", "undefined"}, + /* 254 */ {"var254", "undefined"}, + /* 255 */ {"var255", " []"}, +}; + +const struct ParmTable parm_table_ecmwf_200[256] = { + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"STRF", "Stream function [m**2 s**-1]"}, + /* 2 */ {"VPOT", "Velocity potential [m**2 s**-1]"}, + /* 3 */ {"PT", "Potential temperature [K]"}, + /* 4 */ {"EQPT", "Equivalent potential temperature [K]"}, + /* 5 */ {"SEPT", "Saturated equivalent potential temperature [K]"}, + /* 6 */ {"var6", "undefined"}, + /* 7 */ {"var7", "undefined"}, + /* 8 */ {"var8", "undefined"}, + /* 9 */ {"var9", "undefined"}, + /* 10 */ {"var10", "undefined"}, + /* 11 */ {"UDVW", "U component of divergent wind [m s**-1]"}, + /* 12 */ {"VDVW", "V component of divergent wind [m s**-1]"}, + /* 13 */ {"URTW", "U component of rotational wind [m s**-1]"}, + /* 14 */ {"VRTW", "V component of rotational wind [m s**-1]"}, + /* 15 */ {"var15", "undefined"}, + /* 16 */ {"var16", "undefined"}, + /* 17 */ {"var17", "undefined"}, + /* 18 */ {"var18", "undefined"}, + /* 19 */ {"var19", "undefined"}, + /* 20 */ {"var20", "undefined"}, + /* 21 */ {"UCTP", "Unbalanced component of temperature [K]"}, + /* 22 */ {"UCLN", "Unbalanced component of logarithm of surface pressure []"}, + /* 23 */ {"UCDV", "Unbalanced component of divergence [s**-1]"}, + /* 24 */ {"var24", "Reserved for future unbalanced components []"}, + /* 25 */ {"var25", "Reserved for future unbalanced components []"}, + /* 26 */ {"CL", "Lake cover [(0 - 1)]"}, + /* 27 */ {"CVL", "Low vegetation cover [(0 - 1)]"}, + /* 28 */ {"CVH", "High vegetation cover [(0 - 1)]"}, + /* 29 */ {"TVL", "Type of low vegetation []"}, + /* 30 */ {"TVH", "Type of high vegetation []"}, + /* 31 */ {"CI", "Sea-ice cover [(0 - 1)]"}, + /* 32 */ {"ASN", "Snow albedo [(0 - 1)]"}, + /* 33 */ {"RSN", "Snow density [kg m**-3]"}, + /* 34 */ {"SSTK", "Sea surface temperature [K]"}, + /* 35 */ {"ISTL1", "Ice surface temperature layer 1 [K]"}, + /* 36 */ {"ISTL2", "Ice surface temperature layer 2 [K]"}, + /* 37 */ {"ISTL3", "Ice surface temperature layer 3 [K]"}, + /* 38 */ {"ISTL4", "Ice surface temperature layer 4 [K]"}, + /* 39 */ {"SWVL1", "Volumetric soil water layer 1 [m**3 m**-3]"}, + /* 40 */ {"SWVL2", "Volumetric soil water layer 2 [m**3 m**-3]"}, + /* 41 */ {"SWVL3", "Volumetric soil water layer 3 [m**3 m**-3]"}, + /* 42 */ {"SWVL4", "Volumetric soil water layer 4 [m**3 m**-3]"}, + /* 43 */ {"SLT", "Soil type []"}, + /* 44 */ {"ES", "Snow evaporation [m of water]"}, + /* 45 */ {"SMLT", "Snowmelt [m of water]"}, + /* 46 */ {"SDUR", "Solar duration [s]"}, + /* 47 */ {"DSRP", "Direct solar radiation [w m**-2]"}, + /* 48 */ {"MAGSS", "Magnitude of surface stress [N m**-2 s]"}, + /* 49 */ {"10FG", "10 metre wind gust [m s**-1]"}, + /* 50 */ {"LSPF", "Large-scale precipitation fraction [s]"}, + /* 51 */ {"MX2T24", "Maximum 2 metre temperature [K]"}, + /* 52 */ {"MN2T24", "Minimum 2 metre temperature [K]"}, + /* 53 */ {"MONT", "Montgomery potential [m**2 s**-2]"}, + /* 54 */ {"PRES", "Pressure [Pa]"}, + /* 55 */ {"MEAN2T24", "Mean 2 metre temperature in past 24 hours [K]"}, + /* 56 */ {"MN2D24", "Mean 2 metre dewpoint temperature in past 24 hours [K]"}, + /* 57 */ {"UVB", "Downward UV radiation at the surface [w m**-2 s]"}, + /* 58 */ {"PAR", "Photosynthetically active radiation at the surface [w m**-2 s]"}, + /* 59 */ {"CAPE", "Convective available potential energy [J kg**-1]"}, + /* 60 */ {"PV", "Potential vorticity [K m**2 kg**-1 s**-1]"}, + /* 61 */ {"TPO", "Total precipitation from observations [Millimetres*100 + number of stations]"}, + /* 62 */ {"OBCT", "Observation count []"}, + /* 63 */ {"var63", "Start time for skin temperature difference [s]"}, + /* 64 */ {"var64", "Finish time for skin temperature difference [s]"}, + /* 65 */ {"var65", "Skin temperature difference [K]"}, + /* 66 */ {"var66", "Leaf area index, low vegetation [m**2 / m**2]"}, + /* 67 */ {"var67", "Leaf area index, high vegetation [m**2 / m**2]"}, + /* 68 */ {"var68", "Minimum stomatal resistance, low vegetation [s m**-1]"}, + /* 69 */ {"var69", "Minimum stomatal resistance, high vegetation [s m**-1]"}, + /* 70 */ {"var70", "Biome cover, low vegetation [(0 - 1)]"}, + /* 71 */ {"var71", "Biome cover, high vegetation [(0 - 1)]"}, + /* 72 */ {"var72", "undefined"}, + /* 73 */ {"var73", "undefined"}, + /* 74 */ {"var74", "undefined"}, + /* 75 */ {"var75", "undefined"}, + /* 76 */ {"var76", "undefined"}, + /* 77 */ {"var77", "undefined"}, + /* 78 */ {"var78", "Total column liquid water [kg m**-2]"}, + /* 79 */ {"var79", "Total column ice water [kg m**-2]"}, + /* 80 */ {"var80", "Experimental product []"}, + /* 81 */ {"var81", "Experimental product []"}, + /* 82 */ {"var82", "Experimental product []"}, + /* 83 */ {"var83", "Experimental product []"}, + /* 84 */ {"var84", "Experimental product []"}, + /* 85 */ {"var85", "Experimental product []"}, + /* 86 */ {"var86", "Experimental product []"}, + /* 87 */ {"var87", "Experimental product []"}, + /* 88 */ {"var88", "Experimental product []"}, + /* 89 */ {"var89", "Experimental product []"}, + /* 90 */ {"var90", "Experimental product []"}, + /* 91 */ {"var91", "Experimental product []"}, + /* 92 */ {"var92", "Experimental product []"}, + /* 93 */ {"var93", "Experimental product []"}, + /* 94 */ {"var94", "Experimental product []"}, + /* 95 */ {"var95", "Experimental product []"}, + /* 96 */ {"var96", "Experimental product []"}, + /* 97 */ {"var97", "Experimental product []"}, + /* 98 */ {"var98", "Experimental product []"}, + /* 99 */ {"var99", "Experimental product []"}, + /* 100 */ {"var100", "Experimental product []"}, + /* 101 */ {"var101", "Experimental product []"}, + /* 102 */ {"var102", "Experimental product []"}, + /* 103 */ {"var103", "Experimental product []"}, + /* 104 */ {"var104", "Experimental product []"}, + /* 105 */ {"var105", "Experimental product []"}, + /* 106 */ {"var106", "Experimental product []"}, + /* 107 */ {"var107", "Experimental product []"}, + /* 108 */ {"var108", "Experimental product []"}, + /* 109 */ {"var109", "Experimental product []"}, + /* 110 */ {"var110", "Experimental product []"}, + /* 111 */ {"var111", "Experimental product []"}, + /* 112 */ {"var112", "Experimental product []"}, + /* 113 */ {"var113", "Experimental product []"}, + /* 114 */ {"var114", "Experimental product []"}, + /* 115 */ {"var115", "Experimental product []"}, + /* 116 */ {"var116", "Experimental product []"}, + /* 117 */ {"var117", "Experimental product []"}, + /* 118 */ {"var118", "Experimental product []"}, + /* 119 */ {"var119", "Experimental product []"}, + /* 120 */ {"var120", "Experimental product []"}, + /* 121 */ {"MX2T6", "Maximum temperature at 2 metres [K]"}, + /* 122 */ {"MN2T6", "Minimum temperature at 2 metres [K]"}, + /* 123 */ {"10FG6", "10 metre wind gust in the past 6 hours [m s**-1]"}, + /* 124 */ {"var124", "undefined"}, + /* 125 */ {"var125", "Vertically integrated total energy [J m**-2]"}, + /* 126 */ {"var126", "Generic parameter for sensitive area prediction [Various]"}, + /* 127 */ {"AT", "Atmospheric tide []"}, + /* 128 */ {"BV", "Budget values []"}, + /* 129 */ {"Z", "Geopotential [m**2 s**-2]"}, + /* 130 */ {"T", "Temperature [K]"}, + /* 131 */ {"U", "U velocity [m s**-1]"}, + /* 132 */ {"V", "V velocity [m s**-1]"}, + /* 133 */ {"Q", "Specific humidity [kg kg**-1]"}, + /* 134 */ {"SP", "Surface pressure [Pa]"}, + /* 135 */ {"W", "Vertical velocity [Pa s**-1]"}, + /* 136 */ {"TCW", "Total column water [kg m**-2]"}, + /* 137 */ {"TCWV", "Total column water vapour [kg m**-2]"}, + /* 138 */ {"VO", "Vorticity (relative) [s**-1]"}, + /* 139 */ {"STL1", "Soil temperature level 1 [K]"}, + /* 140 */ {"SWL1", "Soil wetness level 1 [m of water]"}, + /* 141 */ {"SD", "Snow depth [m of water equivalent]"}, + /* 142 */ {"LSP", "Stratiform precipitation (Large-scale precipitation) [m]"}, + /* 143 */ {"CP", "Convective precipitation [m]"}, + /* 144 */ {"SF", "Snowfall (convective + stratiform) [m of water equivalent]"}, + /* 145 */ {"BLD", "Boundary layer dissipation [W m**-2 s]"}, + /* 146 */ {"SSHF", "Surface sensible heat flux [W m**-2 s]"}, + /* 147 */ {"SLHF", "Surface latent heat flux [W m**-2 s]"}, + /* 148 */ {"CHNK", "Charnock []"}, + /* 149 */ {"SNR", "Surface net radiation [W m**-2 s]"}, + /* 150 */ {"TNR", "Top net radiation []"}, + /* 151 */ {"MSL", "Mean sea level pressure [Pa]"}, + /* 152 */ {"LNSP", "Logarithm of surface pressure []"}, + /* 153 */ {"SWHR", "Short-wave heating rate [K]"}, + /* 154 */ {"LWHR", "Long-wave heating rate [K]"}, + /* 155 */ {"D", "Divergence [s**-1]"}, + /* 156 */ {"GH", "Height [m]"}, + /* 157 */ {"R", "Relative humidity [%]"}, + /* 158 */ {"TSP", "Tendency of surface pressure [Pa s**-1]"}, + /* 159 */ {"BLH", "Boundary layer height [m]"}, + /* 160 */ {"SDOR", "Standard deviation of orography []"}, + /* 161 */ {"ISOR", "Anisotropy of sub-gridscale orography []"}, + /* 162 */ {"ANOR", "Angle of sub-gridscale orography [rad]"}, + /* 163 */ {"SLOR", "Slope of sub-gridscale orography []"}, + /* 164 */ {"TCC", "Total cloud cover [(0 - 1)]"}, + /* 165 */ {"10U", "10 metre U wind component [m s**-1]"}, + /* 166 */ {"10V", "10 metre V wind component [m s**-1]"}, + /* 167 */ {"2T", "2 metre temperature [K]"}, + /* 168 */ {"2D", "2 metre dewpoint temperature [K]"}, + /* 169 */ {"SSRD", "Surface solar radiation downwards [W m**-2 s]"}, + /* 170 */ {"STL2", "Soil temperature level 2 [K]"}, + /* 171 */ {"SWL2", "Soil wetness level 2 [m of water]"}, + /* 172 */ {"LSM", "Land-sea mask [(0 - 1)]"}, + /* 173 */ {"SR", "Surface roughness [m]"}, + /* 174 */ {"AL", "Albedo [(0 - 1)]"}, + /* 175 */ {"STRD", "Surface thermal radiation downwards [W m**-2 s]"}, + /* 176 */ {"SSR", "Surface solar radiation [W m**-2 s]"}, + /* 177 */ {"STR", "Surface thermal radiation [W m**-2 s]"}, + /* 178 */ {"TSR", "Top solar radiation [W m**-2 s]"}, + /* 179 */ {"TTR", "Top thermal radiation [W m**-2 s]"}, + /* 180 */ {"EWSS", "East-West surface stress [N m**-2 s]"}, + /* 181 */ {"NSSS", "North-South surface stress [N m**-2 s]"}, + /* 182 */ {"E", "Evaporation [m of water]"}, + /* 183 */ {"STL3", "Soil temperature level 3 [K]"}, + /* 184 */ {"SWL3", "Soil wetness level 3 [m of water]"}, + /* 185 */ {"CCC", "Convective cloud cover [(0 - 1)]"}, + /* 186 */ {"LCC", "Low cloud cover [(0 - 1)]"}, + /* 187 */ {"MCC", "Medium cloud cover [(0 - 1)]"}, + /* 188 */ {"HCC", "High cloud cover [(0 - 1)]"}, + /* 189 */ {"SUND", "Sunshine duration [s]"}, + /* 190 */ {"EWOV", "East-West component of sub-gridscale orographic variance [m**2]"}, + /* 191 */ {"NSOV", "North-South component of sub-gridscale orographic variance [m**2]"}, + /* 192 */ {"NWOV", "North-West/South-East component of sub-gridscale orographic variance [m**2]"}, + /* 193 */ {"NEOV", "North-East/South-West component of sub-gridscale orographic variance [m**2]"}, + /* 194 */ {"BTMP", "Brightness temperature [K]"}, + /* 195 */ {"LGWS", "Latitudinal component of gravity wave stress [N m**-2 s]"}, + /* 196 */ {"MGWS", "Meridional component of gravity wave stress [N m**-2 s]"}, + /* 197 */ {"GWD", "Gravity wave dissipation [W m**-2 s]"}, + /* 198 */ {"SRC", "Skin reservoir content [m of water]"}, + /* 199 */ {"VEG", "Vegetation fraction [(0 - 1)]"}, + /* 200 */ {"VSO", "Variance of sub-gridscale orography [m**2]"}, + /* 201 */ {"MX2T", "Maximum temperature at 2 metres since previous post-processing [K]"}, + /* 202 */ {"MN2T", "Minimum temperature at 2 metres since previous post-processing [K]"}, + /* 203 */ {"O3", "Ozone mass mixing ratio [kg kg**-1]"}, + /* 204 */ {"PAW", "Precipitation analysis weights []"}, + /* 205 */ {"RO", "Runoff [m]"}, + /* 206 */ {"TCO3", "Total column ozone [kg m**-2]"}, + /* 207 */ {"10SI", "10 metre wind speed [m s**-1]"}, + /* 208 */ {"TSRC", "Top net solar radiation, clear sky [W m**-2 s]"}, + /* 209 */ {"TTRC", "Top net thermal radiation, clear sky [W m**-2 s]"}, + /* 210 */ {"SSRC", "Surface net solar radiation, clear sky [W m**-2 s]"}, + /* 211 */ {"STRC", "Surface net thermal radiation, clear sky [W m**-2 s]"}, + /* 212 */ {"TISR", "TOA incident solar radiation [W m**-2 s]"}, + /* 213 */ {"var213", "undefined"}, + /* 214 */ {"DHR", "Diabatic heating by radiation [K]"}, + /* 215 */ {"DHVD", "Diabatic heating by vertical diffusion [K]"}, + /* 216 */ {"DHCC", "Diabatic heating by cumulus convection [K]"}, + /* 217 */ {"DHLC", "Diabatic heating large-scale condensation [K]"}, + /* 218 */ {"VDZW", "Vertical diffusion of zonal wind [m s**-1]"}, + /* 219 */ {"VDMW", "Vertical diffusion of meridional wind [m s**-1]"}, + /* 220 */ {"EWGD", "East-West gravity wave drag tendency [m s**-1]"}, + /* 221 */ {"NSGD", "North-South gravity wave drag tendency [m s**-1]"}, + /* 222 */ {"CTZW", "Convective tendency of zonal wind [m s**-1]"}, + /* 223 */ {"CTMW", "Convective tendency of meridional wind [m s**-1]"}, + /* 224 */ {"VDH", "Vertical diffusion of humidity [kg kg**-1]"}, + /* 225 */ {"HTCC", "Humidity tendency by cumulus convection [kg kg**-1]"}, + /* 226 */ {"HTLC", "Humidity tendency by large-scale condensation [kg kg**-1]"}, + /* 227 */ {"CRNH", "Change from removal of negative humidity [kg kg**-1]"}, + /* 228 */ {"TP", "Total precipitation [m]"}, + /* 229 */ {"IEWS", "Instantaneous X surface stress [N m**-2]"}, + /* 230 */ {"INSS", "Instantaneous Y surface stress [N m**-2]"}, + /* 231 */ {"ISHF", "Instantaneous surface heat flux [W m**-2]"}, + /* 232 */ {"IE", "Instantaneous moisture flux [kg m**-2 s]"}, + /* 233 */ {"ASQ", "Apparent surface humidity [kg kg**-1]"}, + /* 234 */ {"LSRH", "Logarithm of surface roughness length for heat []"}, + /* 235 */ {"SKT", "Skin temperature [K]"}, + /* 236 */ {"STL4", "Soil temperature level 4 [K]"}, + /* 237 */ {"SWL4", "Soil wetness level 4 [m]"}, + /* 238 */ {"TSN", "Temperature of snow layer [K]"}, + /* 239 */ {"CSF", "Convective snowfall [m of water equivalent]"}, + /* 240 */ {"LSF", "Large-scale snowfall [m of water equivalent]"}, + /* 241 */ {"ACF", "Accumulated cloud fraction tendency [(-1 to 1)]"}, + /* 242 */ {"ALW", "Accumulated liquid water tendency [(-1 to 1)]"}, + /* 243 */ {"FAL", "Forecast albedo [(0 - 1)]"}, + /* 244 */ {"FSR", "Forecast surface roughness [m]"}, + /* 245 */ {"FLSR", "Forecast logarithm of surface roughness for heat []"}, + /* 246 */ {"CLWC", "Cloud liquid water content [kg kg**-1]"}, + /* 247 */ {"CIWC", "Cloud ice water content [kg kg**-1]"}, + /* 248 */ {"CC", "Cloud cover [(0 - 1)]"}, + /* 249 */ {"AIW", "Accumulated ice water tendency [(-1 to 1)]"}, + /* 250 */ {"ICE", "Ice age [(0 - 1)]"}, + /* 251 */ {"ATTE", "Adiabatic tendency of temperature [K]"}, + /* 252 */ {"ATHE", "Adiabatic tendency of humidity [kg kg**-1]"}, + /* 253 */ {"ATZE", "Adiabatic tendency of zonal wind [m s**-1]"}, + /* 254 */ {"ATMW", "Adiabatic tendency of meridional wind [m s**-1]"}, + /* 255 */ {"var255", "Indicates a missing value []"}, +}; + +const struct ParmTable parm_table_ecmwf_210[256] = { + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"AERMR01", "Sea Salt Aerosol (0.03 - 0.5 um) Mixing Ratio [kg kg**-1]"}, + /* 2 */ {"AERMR02", "Sea Salt Aerosol (0.5 - 5 um) Mixing Ratio [kg kg**-1]"}, + /* 3 */ {"AERMR03", "Sea Salt Aerosol (5 - 20 um) Mixing Ratio [kg kg**-1]"}, + /* 4 */ {"AERMR04", "Dust Aerosol (0.03 - 0.55 um) Mixing Ratio [kg kg**-1]"}, + /* 5 */ {"AERMR05", "Dust Aerosol (0.55 - 0.9 um) Mixing Ratio [kg kg**-1]"}, + /* 6 */ {"AERMR06", "Dust Aerosol (0.9 - 20 um) Mixing Ratio [kg kg**-1]"}, + /* 7 */ {"AERMR07", "Hydrophobic Organic Matter Aerosol Mixing Ratio [kg kg**-1]"}, + /* 8 */ {"AERMR08", "Hydrophilic Organic Matter Aerosol Mixing Ratio [kg kg**-1]"}, + /* 9 */ {"AERMR09", "Hydrophobic Black Carbon Aerosol Mixing Ratio [kg kg**-1]"}, + /* 10 */ {"AERMR10", "Hydrophilic Black Carbon Aerosol Mixing Ratio [kg kg**-1]"}, + /* 11 */ {"AERMR11", "Sulphate Aerosol Mixing Ratio [kg kg**-1]"}, + /* 12 */ {"AERMR12", "Aerosol type 12 mixing ratio [kg kg**-1]"}, + /* 13 */ {"var13", "undefined"}, + /* 14 */ {"var14", "undefined"}, + /* 15 */ {"var15", "undefined"}, + /* 16 */ {"AERGN01", "Aerosol type 1 source/gain accumulated [kg m**-2]"}, + /* 17 */ {"AERGN02", "Aerosol type 2 source/gain accumulated [kg m**-2]"}, + /* 18 */ {"AERGN03", "Aerosol type 3 source/gain accumulated [kg m**-2]"}, + /* 19 */ {"AERGN04", "Aerosol type 4 source/gain accumulated [kg m**-2]"}, + /* 20 */ {"AERGN05", "Aerosol type 5 source/gain accumulated [kg m**-2]"}, + /* 21 */ {"AERGN06", "Aerosol type 6 source/gain accumulated [kg m**-2]"}, + /* 22 */ {"AERGN07", "Aerosol type 7 source/gain accumulated [kg m**-2]"}, + /* 23 */ {"AERGN08", "Aerosol type 8 source/gain accumulated [kg m**-2]"}, + /* 24 */ {"AERGN09", "Aerosol type 9 source/gain accumulated [kg m**-2]"}, + /* 25 */ {"AERGN10", "Aerosol type 10 source/gain accumulated [kg m**-2]"}, + /* 26 */ {"AERGN11", "Aerosol type 11 source/gain accumulated [kg m**-2]"}, + /* 27 */ {"AERGN12", "Aerosol type 12 source/gain accumulated [kg m**-2]"}, + /* 28 */ {"var28", "undefined"}, + /* 29 */ {"var29", "undefined"}, + /* 30 */ {"var30", "undefined"}, + /* 31 */ {"AERLS01", "Aerosol type 1 sink/loss accumulated [kg m**-2]"}, + /* 32 */ {"AERLS02", "Aerosol type 2 sink/loss accumulated [kg m**-2]"}, + /* 33 */ {"AERLS03", "Aerosol type 3 sink/loss accumulated [kg m**-2]"}, + /* 34 */ {"AERLS04", "Aerosol type 4 sink/loss accumulated [kg m**-2]"}, + /* 35 */ {"AERLS05", "Aerosol type 5 sink/loss accumulated [kg m**-2]"}, + /* 36 */ {"AERLS06", "Aerosol type 6 sink/loss accumulated [kg m**-2]"}, + /* 37 */ {"AERLS07", "Aerosol type 7 sink/loss accumulated [kg m**-2]"}, + /* 38 */ {"AERLS08", "Aerosol type 8 sink/loss accumulated [kg m**-2]"}, + /* 39 */ {"AERLS09", "Aerosol type 9 sink/loss accumulated [kg m**-2]"}, + /* 40 */ {"AERLS10", "Aerosol type 10 sink/loss accumulated [kg m**-2]"}, + /* 41 */ {"AERLS11", "Aerosol type 11 sink/loss accumulated [kg m**-2]"}, + /* 42 */ {"AERLS12", "Aerosol type 12 sink/loss accumulated [kg m**-2]"}, + /* 43 */ {"var43", "undefined"}, + /* 44 */ {"var44", "undefined"}, + /* 45 */ {"var45", "undefined"}, + /* 46 */ {"AERPR", "Aerosol precursor mixing ratio [kg kg**-1]"}, + /* 47 */ {"AERSM", "Aerosol small mode mixing ratio [kg kg**-1]"}, + /* 48 */ {"AERLG", "Aerosol large mode mixing ratio [kg kg**-1]"}, + /* 49 */ {"AODPR", "Aerosol precursor optical depth [dimensionless]"}, + /* 50 */ {"AODSM", "Aerosol small mode optical depth [dimensionless]"}, + /* 51 */ {"AODLG", "Aerosol large mode optical depth [dimensionless]"}, + /* 52 */ {"AERDEP", "Dust emission potential [kg s**2 m**-5]"}, + /* 53 */ {"AERLTS", "Lifting threshold speed [m s**-1]"}, + /* 54 */ {"AERSCC", "Soil clay content [%]"}, + /* 55 */ {"var55", "undefined"}, + /* 56 */ {"var56", "undefined"}, + /* 57 */ {"var57", "undefined"}, + /* 58 */ {"var58", "undefined"}, + /* 59 */ {"var59", "undefined"}, + /* 60 */ {"var60", "undefined"}, + /* 61 */ {"CO2", "Carbon Dioxide [kg kg**-1]"}, + /* 62 */ {"CH4", "Methane [kg kg**-1]"}, + /* 63 */ {"N2O", "Nitrous oxide [kg kg**-1]"}, + /* 64 */ {"TCCO2", "Total column Carbon Dioxide [kg m**-2]"}, + /* 65 */ {"TCCH4", "Total column Methane [kg m**-2]"}, + /* 66 */ {"TCN2O", "Total column Nitrous oxide [kg m**-2]"}, + /* 67 */ {"CO2OF", "Ocean flux of Carbon Dioxide [kg m**-2 s**-1]"}, + /* 68 */ {"CO2NBF", "Natural biosphere flux of Carbon Dioxide [kg m**-2 s**-1]"}, + /* 69 */ {"CO2APF", "Anthropogenic emissions of Carbon Dioxide [kg m**-2 s**-1]"}, + /* 70 */ {"CH4F", "Methane Surface Fluxes [kg m**-2 s**-1]"}, + /* 71 */ {"kCH4", "Methane loss rate due to radical hydroxyl (OH) [s**-1]"}, + /* 72 */ {"var72", "undefined"}, + /* 73 */ {"var73", "undefined"}, + /* 74 */ {"var74", "undefined"}, + /* 75 */ {"var75", "undefined"}, + /* 76 */ {"var76", "undefined"}, + /* 77 */ {"var77", "undefined"}, + /* 78 */ {"var78", "undefined"}, + /* 79 */ {"var79", "undefined"}, + /* 80 */ {"CO2FIRE", "Wildfire flux of Carbon Dioxide [kg m**-2 s**-1]"}, + /* 81 */ {"COFIRE", "Wildfire flux of Carbon Monoxide [kg m**-2 s**-1]"}, + /* 82 */ {"CH4FIRE", "Wildfire flux of Methane [kg m**-2 s**-1]"}, + /* 83 */ {"NMHCFIRE", "Wildfire flux of Non-Methane Hydro-Carbons [kg m**-2 s**-1]"}, + /* 84 */ {"H2FIRE", "Wildfire flux of Hydrogen [kg m**-2 s**-1]"}, + /* 85 */ {"NOXFIRE", "Wildfire flux of Nitrogen Oxides NOx [kg m**-2 s**-1]"}, + /* 86 */ {"N2OFIRE", "Wildfire flux of Nitrous Oxide [kg m**-2 s**-1]"}, + /* 87 */ {"PM2P5FIRE", "Wildfire flux of Particulate Matter PM2.5 [kg m**-2 s**-1]"}, + /* 88 */ {"TPMFIRE", "Wildfire flux of Total Particulate Matter [kg m**-2 s**-1]"}, + /* 89 */ {"TCFIRE", "Wildfire flux of Total Carbon in Aerosols [kg m**-2 s**-1]"}, + /* 90 */ {"OCFIRE", "Wildfire flux of Organic Carbon [kg m**-2 s**-1]"}, + /* 91 */ {"BCFIRE", "Wildfire flux of Black Carbon [kg m**-2 s**-1]"}, + /* 92 */ {"CFIRE", "Wildfire overall flux of burnt Carbon [kg m**-2 s**-1]"}, + /* 93 */ {"C4FFIRE", "Wildfire fraction of C4 plants [dimensionless]"}, + /* 94 */ {"VEGFIRE", "Wildfire vegetation map index [dimensionless]"}, + /* 95 */ {"CCFIRE", "Wildfire Combustion Completeness [dimensionless]"}, + /* 96 */ {"FLFIRE", "Wildfire Fuel Load"}, + /* 97 */ {"BFFIRE", "Wildfire fraction of area burnt [dimensionless]"}, + /* 98 */ {"OAFIRE", "Wildfire observed area [m**2]"}, + /* 99 */ {"FRPFIRE", "Wildfire radiative power [W m**-2]"}, + /* 100 */ {"CRFIRE", "Wildfire combustion rate [kg m**-2 s**-1]"}, + /* 101 */ {"var101", "undefined"}, + /* 102 */ {"var102", "undefined"}, + /* 103 */ {"var103", "undefined"}, + /* 104 */ {"var104", "undefined"}, + /* 105 */ {"var105", "undefined"}, + /* 106 */ {"var106", "undefined"}, + /* 107 */ {"var107", "undefined"}, + /* 108 */ {"var108", "undefined"}, + /* 109 */ {"var109", "undefined"}, + /* 110 */ {"var110", "undefined"}, + /* 111 */ {"var111", "undefined"}, + /* 112 */ {"var112", "undefined"}, + /* 113 */ {"var113", "undefined"}, + /* 114 */ {"var114", "undefined"}, + /* 115 */ {"var115", "undefined"}, + /* 116 */ {"var116", "undefined"}, + /* 117 */ {"var117", "undefined"}, + /* 118 */ {"var118", "undefined"}, + /* 119 */ {"var119", "undefined"}, + /* 120 */ {"var120", "undefined"}, + /* 121 */ {"NO2", "Nitrogen dioxide [kg kg**-1]"}, + /* 122 */ {"SO2", "Sulphur dioxide [kg kg**-1]"}, + /* 123 */ {"CO", "Carbon monoxide [kg kg**-1]"}, + /* 124 */ {"HCHO", "Formaldehyde [kg kg**-1]"}, + /* 125 */ {"TCNO2", "Total column Nitrogen dioxide [kg m**-2]"}, + /* 126 */ {"TCSO2", "Total column Sulphur dioxide [kg m**-2]"}, + /* 127 */ {"TCCO", "Total column Carbon monoxide [kg m**-2]"}, + /* 128 */ {"TCHCHO", "Total column Formaldehyde [kg m**-2]"}, + /* 129 */ {"NOX", "Nitrogen Oxides [kg kg**-1]"}, + /* 130 */ {"TCNOX", "Total Column Nitrogen Oxides [kg m**-2]"}, + /* 131 */ {"GRG1", "Reactive tracer 1 mass mixing ratio [kg kg**-1]"}, + /* 132 */ {"TCGRG1", "Total column GRG tracer 1 [kg m**-2]"}, + /* 133 */ {"GRG2", "Reactive tracer 2 mass mixing ratio [kg kg**-1]"}, + /* 134 */ {"TCGRG2", "Total column GRG tracer 2 [kg m**-2]"}, + /* 135 */ {"GRG3", "Reactive tracer 3 mass mixing ratio [kg kg**-1]"}, + /* 136 */ {"TCGRG3", "Total column GRG tracer 3 [kg m**-2]"}, + /* 137 */ {"GRG4", "Reactive tracer 4 mass mixing ratio [kg kg**-1]"}, + /* 138 */ {"TCGRG4", "Total column GRG tracer 4 [kg m**-2]"}, + /* 139 */ {"GRG5", "Reactive tracer 5 mass mixing ratio [kg kg**-1]"}, + /* 140 */ {"TCGRG5", "Total column GRG tracer 5 [kg m**-2]"}, + /* 141 */ {"GRG6", "Reactive tracer 6 mass mixing ratio [kg kg**-1]"}, + /* 142 */ {"TCGRG6", "Total column GRG tracer 6 [kg m**-2]"}, + /* 143 */ {"GRG7", "Reactive tracer 7 mass mixing ratio [kg kg**-1]"}, + /* 144 */ {"TCGRG7", "Total column GRG tracer 7 [kg m**-2]"}, + /* 145 */ {"GRG8", "Reactive tracer 8 mass mixing ratio [kg kg**-1]"}, + /* 146 */ {"TCGRG8", "Total column GRG tracer 8 [kg m**-2]"}, + /* 147 */ {"GRG9", "Reactive tracer 9 mass mixing ratio [kg kg**-1]"}, + /* 148 */ {"TCGRG9", "Total column GRG tracer 9 [kg m**-2]"}, + /* 149 */ {"GRG10", "Reactive tracer 10 mass mixing ratio [kg kg**-1]"}, + /* 150 */ {"TCGRG10", "Total column GRG tracer 10 [kg m**-2]"}, + /* 151 */ {"SFNOX", "Surface flux Nitrogen oxides [kg m**-2 s**-1]"}, + /* 152 */ {"SFNO2", "Surface flux Nitrogen dioxide [kg m**-2 s**-1]"}, + /* 153 */ {"SFSO2", "Surface flux Sulphur dioxide [kg m**-2 s**-1]"}, + /* 154 */ {"SFCO2", "Surface flux Carbon monoxide [kg m**-2 s**-1]"}, + /* 155 */ {"SFHCHO", "Surface flux Formaldehyde [kg m**-2 s**-1]"}, + /* 156 */ {"SFGO3", "Surface flux GEMS Ozone [kg m**-2 s**-1]"}, + /* 157 */ {"SFGR1", "Surface flux reactive tracer 1 [kg m**-2 s**-1]"}, + /* 158 */ {"SFGR2", "Surface flux reactive tracer 2 [kg m**-2 s**-1]"}, + /* 159 */ {"SFGR3", "Surface flux reactive tracer 3 [kg m**-2 s**-1]"}, + /* 160 */ {"SFGR4", "Surface flux reactive tracer 4 [kg m**-2 s**-1]"}, + /* 161 */ {"SFGR5", "Surface flux reactive tracer 5 [kg m**-2 s**-1]"}, + /* 162 */ {"SFGR6", "Surface flux reactive tracer 6 [kg m**-2 s**-1]"}, + /* 163 */ {"SFGR7", "Surface flux reactive tracer 7 [kg m**-2 s**-1]"}, + /* 164 */ {"SFGR8", "Surface flux reactive tracer 8 [kg m**-2 s**-1]"}, + /* 165 */ {"SFGR9", "Surface flux reactive tracer 9 [kg m**-2 s**-1]"}, + /* 166 */ {"SFGR10", "Surface flux reactive tracer 10 [kg m**-2 s**-1]"}, + /* 167 */ {"var167", "undefined"}, + /* 168 */ {"var168", "undefined"}, + /* 169 */ {"var169", "undefined"}, + /* 170 */ {"var170", "undefined"}, + /* 171 */ {"var171", "undefined"}, + /* 172 */ {"var172", "undefined"}, + /* 173 */ {"var173", "undefined"}, + /* 174 */ {"var174", "undefined"}, + /* 175 */ {"var175", "undefined"}, + /* 176 */ {"var176", "undefined"}, + /* 177 */ {"var177", "undefined"}, + /* 178 */ {"var178", "undefined"}, + /* 179 */ {"var179", "undefined"}, + /* 180 */ {"var180", "undefined"}, + /* 181 */ {"Ra", "Radon [kg kg**-1]"}, + /* 182 */ {"SF6", "Sulphur Hexafluoride [kg kg**-1]"}, + /* 183 */ {"TCRa", "Total column Radon [kg m**-2]"}, + /* 184 */ {"TCSF6", "Total column Sulphur Hexafluoride [kg m**-2]"}, + /* 185 */ {"SF6APF", "Anthropogenic Emissions of Sulphur Hexafluoride [kg m**-2 s**-1]"}, + /* 186 */ {"var186", "undefined"}, + /* 187 */ {"var187", "undefined"}, + /* 188 */ {"var188", "undefined"}, + /* 189 */ {"var189", "undefined"}, + /* 190 */ {"var190", "undefined"}, + /* 191 */ {"var191", "undefined"}, + /* 192 */ {"var192", "undefined"}, + /* 193 */ {"var193", "undefined"}, + /* 194 */ {"var194", "undefined"}, + /* 195 */ {"var195", "undefined"}, + /* 196 */ {"var196", "undefined"}, + /* 197 */ {"var197", "undefined"}, + /* 198 */ {"var198", "undefined"}, + /* 199 */ {"var199", "undefined"}, + /* 200 */ {"var200", "undefined"}, + /* 201 */ {"var201", "undefined"}, + /* 202 */ {"var202", "undefined"}, + /* 203 */ {"GO3", "GEMS Ozone [kg kg**-1]"}, + /* 204 */ {"var204", "undefined"}, + /* 205 */ {"var205", "undefined"}, + /* 206 */ {"GTCO3", "GEMS Total column ozone [kg m**-2]"}, + /* 207 */ {"AOD550", "Total Aerosol Optical Depth at 550nm [-]"}, + /* 208 */ {"SSAOD550", "Sea Salt Aerosol Optical Depth at 550nm [-]"}, + /* 209 */ {"DUAOD550", "Dust Aerosol Optical Depth at 550nm [-]"}, + /* 210 */ {"OMAOD550", "Organic Matter Aerosol Optical Depth at 550nm [-]"}, + /* 211 */ {"BCAOD550", "Black Carbon Aerosol Optical Depth at 550nm [-]"}, + /* 212 */ {"SUAOD550", "Sulphate Aerosol Optical Depth at 550nm [-]"}, + /* 213 */ {"AOD469", "Total Aerosol Optical Depth at 469nm [-]"}, + /* 214 */ {"AOD670", "Total Aerosol Optical Depth at 670nm [-]"}, + /* 215 */ {"AOD865", "Total Aerosol Optical Depth at 865nm [-]"}, + /* 216 */ {"AOD1240", "Total Aerosol Optical Depth at 1240nm [-]"}, + /* 217 */ {"var217", "undefined"}, + /* 218 */ {"var218", "undefined"}, + /* 219 */ {"var219", "undefined"}, + /* 220 */ {"var220", "undefined"}, + /* 221 */ {"var221", "undefined"}, + /* 222 */ {"var222", "undefined"}, + /* 223 */ {"var223", "undefined"}, + /* 224 */ {"var224", "undefined"}, + /* 225 */ {"var225", "undefined"}, + /* 226 */ {"var226", "undefined"}, + /* 227 */ {"var227", "undefined"}, + /* 228 */ {"var228", "undefined"}, + /* 229 */ {"var229", "undefined"}, + /* 230 */ {"var230", "undefined"}, + /* 231 */ {"var231", "undefined"}, + /* 232 */ {"var232", "undefined"}, + /* 233 */ {"var233", "undefined"}, + /* 234 */ {"var234", "undefined"}, + /* 235 */ {"var235", "undefined"}, + /* 236 */ {"var236", "undefined"}, + /* 237 */ {"var237", "undefined"}, + /* 238 */ {"var238", "undefined"}, + /* 239 */ {"var239", "undefined"}, + /* 240 */ {"var240", "undefined"}, + /* 241 */ {"var241", "undefined"}, + /* 242 */ {"var242", "undefined"}, + /* 243 */ {"var243", "undefined"}, + /* 244 */ {"var244", "undefined"}, + /* 245 */ {"var245", "undefined"}, + /* 246 */ {"var246", "undefined"}, + /* 247 */ {"var247", "undefined"}, + /* 248 */ {"var248", "undefined"}, + /* 249 */ {"var249", "undefined"}, + /* 250 */ {"var250", "undefined"}, + /* 251 */ {"var251", "undefined"}, + /* 252 */ {"var252", "undefined"}, + /* 253 */ {"var253", "undefined"}, + /* 254 */ {"var254", "undefined"}, + /* 255 */ {"var255", "undefined"}, +}; + +const struct ParmTable parm_table_ecmwf_211[256] = { + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"var1", "undefined"}, + /* 2 */ {"var2", "undefined"}, + /* 3 */ {"var3", "undefined"}, + /* 4 */ {"var4", "undefined"}, + /* 5 */ {"var5", "undefined"}, + /* 6 */ {"var6", "undefined"}, + /* 7 */ {"var7", "undefined"}, + /* 8 */ {"var8", "undefined"}, + /* 9 */ {"var9", "undefined"}, + /* 10 */ {"var10", "undefined"}, + /* 11 */ {"var11", "undefined"}, + /* 12 */ {"var12", "undefined"}, + /* 13 */ {"var13", "undefined"}, + /* 14 */ {"var14", "undefined"}, + /* 15 */ {"var15", "undefined"}, + /* 16 */ {"var16", "undefined"}, + /* 17 */ {"var17", "undefined"}, + /* 18 */ {"var18", "undefined"}, + /* 19 */ {"var19", "undefined"}, + /* 20 */ {"var20", "undefined"}, + /* 21 */ {"var21", "undefined"}, + /* 22 */ {"var22", "undefined"}, + /* 23 */ {"var23", "undefined"}, + /* 24 */ {"var24", "undefined"}, + /* 25 */ {"var25", "undefined"}, + /* 26 */ {"var26", "undefined"}, + /* 27 */ {"var27", "undefined"}, + /* 28 */ {"var28", "undefined"}, + /* 29 */ {"var29", "undefined"}, + /* 30 */ {"var30", "undefined"}, + /* 31 */ {"var31", "undefined"}, + /* 32 */ {"var32", "undefined"}, + /* 33 */ {"var33", "undefined"}, + /* 34 */ {"var34", "undefined"}, + /* 35 */ {"var35", "undefined"}, + /* 36 */ {"var36", "undefined"}, + /* 37 */ {"var37", "undefined"}, + /* 38 */ {"var38", "undefined"}, + /* 39 */ {"var39", "undefined"}, + /* 40 */ {"var40", "undefined"}, + /* 41 */ {"var41", "undefined"}, + /* 42 */ {"var42", "undefined"}, + /* 43 */ {"var43", "undefined"}, + /* 44 */ {"var44", "undefined"}, + /* 45 */ {"var45", "undefined"}, + /* 46 */ {"AERPR", "Aerosol precursor mixing ratio [kg kg**-1]"}, + /* 47 */ {"AERSM", "Aerosol small mode mixing ratio [kg kg**-1]"}, + /* 48 */ {"AERLG", "Aerosol large mode mixing ratio [kg kg**-1]"}, + /* 49 */ {"AODPR", "Aerosol precursor optical depth [dimensionless]"}, + /* 50 */ {"AODSM", "Aerosol small mode optical depth [dimensionless]"}, + /* 51 */ {"AODLG", "Aerosol large mode optical depth [dimensionless]"}, + /* 52 */ {"var52", "undefined"}, + /* 53 */ {"var53", "undefined"}, + /* 54 */ {"var54", "undefined"}, + /* 55 */ {"var55", "undefined"}, + /* 56 */ {"var56", "undefined"}, + /* 57 */ {"var57", "undefined"}, + /* 58 */ {"var58", "undefined"}, + /* 59 */ {"var59", "undefined"}, + /* 60 */ {"var60", "undefined"}, + /* 61 */ {"CO2", "Carbon Dioxide [kg kg**-1]"}, + /* 62 */ {"CH4", "Methane [kg kg**-1]"}, + /* 63 */ {"N2O", "Nitrous oxide [kg kg**-1]"}, + /* 64 */ {"var64", "undefined"}, + /* 65 */ {"var65", "undefined"}, + /* 66 */ {"var66", "undefined"}, + /* 67 */ {"var67", "undefined"}, + /* 68 */ {"var68", "undefined"}, + /* 69 */ {"var69", "undefined"}, + /* 70 */ {"var70", "undefined"}, + /* 71 */ {"var71", "undefined"}, + /* 72 */ {"var72", "undefined"}, + /* 73 */ {"var73", "undefined"}, + /* 74 */ {"var74", "undefined"}, + /* 75 */ {"var75", "undefined"}, + /* 76 */ {"var76", "undefined"}, + /* 77 */ {"var77", "undefined"}, + /* 78 */ {"var78", "undefined"}, + /* 79 */ {"var79", "undefined"}, + /* 80 */ {"var80", "undefined"}, + /* 81 */ {"var81", "undefined"}, + /* 82 */ {"var82", "undefined"}, + /* 83 */ {"var83", "undefined"}, + /* 84 */ {"var84", "undefined"}, + /* 85 */ {"var85", "undefined"}, + /* 86 */ {"var86", "undefined"}, + /* 87 */ {"var87", "undefined"}, + /* 88 */ {"var88", "undefined"}, + /* 89 */ {"var89", "undefined"}, + /* 90 */ {"var90", "undefined"}, + /* 91 */ {"var91", "undefined"}, + /* 92 */ {"var92", "undefined"}, + /* 93 */ {"var93", "undefined"}, + /* 94 */ {"var94", "undefined"}, + /* 95 */ {"var95", "undefined"}, + /* 96 */ {"var96", "undefined"}, + /* 97 */ {"var97", "undefined"}, + /* 98 */ {"var98", "undefined"}, + /* 99 */ {"var99", "undefined"}, + /* 100 */ {"var100", "undefined"}, + /* 101 */ {"var101", "undefined"}, + /* 102 */ {"var102", "undefined"}, + /* 103 */ {"var103", "undefined"}, + /* 104 */ {"var104", "undefined"}, + /* 105 */ {"var105", "undefined"}, + /* 106 */ {"var106", "undefined"}, + /* 107 */ {"var107", "undefined"}, + /* 108 */ {"var108", "undefined"}, + /* 109 */ {"var109", "undefined"}, + /* 110 */ {"var110", "undefined"}, + /* 111 */ {"var111", "undefined"}, + /* 112 */ {"var112", "undefined"}, + /* 113 */ {"var113", "undefined"}, + /* 114 */ {"var114", "undefined"}, + /* 115 */ {"var115", "undefined"}, + /* 116 */ {"var116", "undefined"}, + /* 117 */ {"var117", "undefined"}, + /* 118 */ {"var118", "undefined"}, + /* 119 */ {"var119", "undefined"}, + /* 120 */ {"var120", "undefined"}, + /* 121 */ {"NO2", "Nitrogen dioxide [kg kg**-1]"}, + /* 122 */ {"SO2", "Sulphur dioxide [kg kg**-1]"}, + /* 123 */ {"CO", "Carbon monoxide [kg kg**-1]"}, + /* 124 */ {"HCHO", "Formaldehyde [kg kg**-1]"}, + /* 125 */ {"var125", "undefined"}, + /* 126 */ {"var126", "undefined"}, + /* 127 */ {"var127", "undefined"}, + /* 128 */ {"var128", "undefined"}, + /* 129 */ {"var129", "undefined"}, + /* 130 */ {"var130", "undefined"}, + /* 131 */ {"var131", "undefined"}, + /* 132 */ {"var132", "undefined"}, + /* 133 */ {"var133", "undefined"}, + /* 134 */ {"var134", "undefined"}, + /* 135 */ {"var135", "undefined"}, + /* 136 */ {"var136", "undefined"}, + /* 137 */ {"var137", "undefined"}, + /* 138 */ {"var138", "undefined"}, + /* 139 */ {"var139", "undefined"}, + /* 140 */ {"var140", "undefined"}, + /* 141 */ {"var141", "undefined"}, + /* 142 */ {"var142", "undefined"}, + /* 143 */ {"var143", "undefined"}, + /* 144 */ {"var144", "undefined"}, + /* 145 */ {"var145", "undefined"}, + /* 146 */ {"var146", "undefined"}, + /* 147 */ {"var147", "undefined"}, + /* 148 */ {"var148", "undefined"}, + /* 149 */ {"var149", "undefined"}, + /* 150 */ {"var150", "undefined"}, + /* 151 */ {"var151", "undefined"}, + /* 152 */ {"var152", "undefined"}, + /* 153 */ {"var153", "undefined"}, + /* 154 */ {"var154", "undefined"}, + /* 155 */ {"var155", "undefined"}, + /* 156 */ {"var156", "undefined"}, + /* 157 */ {"var157", "undefined"}, + /* 158 */ {"var158", "undefined"}, + /* 159 */ {"var159", "undefined"}, + /* 160 */ {"var160", "undefined"}, + /* 161 */ {"var161", "undefined"}, + /* 162 */ {"var162", "undefined"}, + /* 163 */ {"var163", "undefined"}, + /* 164 */ {"var164", "undefined"}, + /* 165 */ {"var165", "undefined"}, + /* 166 */ {"var166", "undefined"}, + /* 167 */ {"var167", "undefined"}, + /* 168 */ {"var168", "undefined"}, + /* 169 */ {"var169", "undefined"}, + /* 170 */ {"var170", "undefined"}, + /* 171 */ {"var171", "undefined"}, + /* 172 */ {"var172", "undefined"}, + /* 173 */ {"var173", "undefined"}, + /* 174 */ {"var174", "undefined"}, + /* 175 */ {"var175", "undefined"}, + /* 176 */ {"var176", "undefined"}, + /* 177 */ {"var177", "undefined"}, + /* 178 */ {"var178", "undefined"}, + /* 179 */ {"var179", "undefined"}, + /* 180 */ {"var180", "undefined"}, + /* 181 */ {"var181", "undefined"}, + /* 182 */ {"var182", "undefined"}, + /* 183 */ {"var183", "undefined"}, + /* 184 */ {"var184", "undefined"}, + /* 185 */ {"var185", "undefined"}, + /* 186 */ {"var186", "undefined"}, + /* 187 */ {"var187", "undefined"}, + /* 188 */ {"var188", "undefined"}, + /* 189 */ {"var189", "undefined"}, + /* 190 */ {"var190", "undefined"}, + /* 191 */ {"var191", "undefined"}, + /* 192 */ {"var192", "undefined"}, + /* 193 */ {"var193", "undefined"}, + /* 194 */ {"var194", "undefined"}, + /* 195 */ {"var195", "undefined"}, + /* 196 */ {"var196", "undefined"}, + /* 197 */ {"var197", "undefined"}, + /* 198 */ {"var198", "undefined"}, + /* 199 */ {"var199", "undefined"}, + /* 200 */ {"var200", "undefined"}, + /* 201 */ {"var201", "undefined"}, + /* 202 */ {"var202", "undefined"}, + /* 203 */ {"GO3", "GEMS Ozone [kg kg**-1]"}, + /* 204 */ {"var204", "undefined"}, + /* 205 */ {"var205", "undefined"}, + /* 206 */ {"var206", "undefined"}, + /* 207 */ {"var207", "undefined"}, + /* 208 */ {"var208", "undefined"}, + /* 209 */ {"var209", "undefined"}, + /* 210 */ {"var210", "undefined"}, + /* 211 */ {"var211", "undefined"}, + /* 212 */ {"var212", "undefined"}, + /* 213 */ {"var213", "undefined"}, + /* 214 */ {"var214", "undefined"}, + /* 215 */ {"var215", "undefined"}, + /* 216 */ {"var216", "undefined"}, + /* 217 */ {"var217", "undefined"}, + /* 218 */ {"var218", "undefined"}, + /* 219 */ {"var219", "undefined"}, + /* 220 */ {"var220", "undefined"}, + /* 221 */ {"var221", "undefined"}, + /* 222 */ {"var222", "undefined"}, + /* 223 */ {"var223", "undefined"}, + /* 224 */ {"var224", "undefined"}, + /* 225 */ {"var225", "undefined"}, + /* 226 */ {"var226", "undefined"}, + /* 227 */ {"var227", "undefined"}, + /* 228 */ {"var228", "undefined"}, + /* 229 */ {"var229", "undefined"}, + /* 230 */ {"var230", "undefined"}, + /* 231 */ {"var231", "undefined"}, + /* 232 */ {"var232", "undefined"}, + /* 233 */ {"var233", "undefined"}, + /* 234 */ {"var234", "undefined"}, + /* 235 */ {"var235", "undefined"}, + /* 236 */ {"var236", "undefined"}, + /* 237 */ {"var237", "undefined"}, + /* 238 */ {"var238", "undefined"}, + /* 239 */ {"var239", "undefined"}, + /* 240 */ {"var240", "undefined"}, + /* 241 */ {"var241", "undefined"}, + /* 242 */ {"var242", "undefined"}, + /* 243 */ {"var243", "undefined"}, + /* 244 */ {"var244", "undefined"}, + /* 245 */ {"var245", "undefined"}, + /* 246 */ {"var246", "undefined"}, + /* 247 */ {"var247", "undefined"}, + /* 248 */ {"var248", "undefined"}, + /* 249 */ {"var249", "undefined"}, + /* 250 */ {"var250", "undefined"}, + /* 251 */ {"var251", "undefined"}, + /* 252 */ {"var252", "undefined"}, + /* 253 */ {"var253", "undefined"}, + /* 254 */ {"var254", "undefined"}, + /* 255 */ {"var255", "undefined"}, +}; + +const struct ParmTable parm_table_ecmwf_228[256] = { + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"CIN", "Convective inhibition [J kg**-1]"}, + /* 2 */ {"OROG", "Orography [m]"}, + /* 3 */ {"ZUST", "Friction velocity [m s**-1]"}, + /* 4 */ {"MEAN2T", "Mean temperature at 2 metres [K]"}, + /* 5 */ {"MEAN10WS", "Mean of 10 metre wind speed [m s**-1]"}, + /* 6 */ {"MEANTCC", "Mean total cloud cover [(0 - 1)]"}, + /* 7 */ {"DL", "Lake depth [m]"}, + /* 8 */ {"LMLT", "Lake mix-layer temperature [K]"}, + /* 9 */ {"LMLD", "Lake mix-layer depth [m]"}, + /* 10 */ {"LBLT", "Lake bottom temperature [K]"}, + /* 11 */ {"LTLT", "Lake total layer temperature [K]"}, + /* 12 */ {"LSHF", "Lake shape factor [dimensionless]"}, + /* 13 */ {"LICT", "Lake ice temperature [K]"}, + /* 14 */ {"LICD", "Lake ice depth [m]"}, + /* 15 */ {"DNDZN", "Minimum vertical gradient of refractivity inside trapping layer [m**-1]"}, + /* 16 */ {"DNDZA", "Mean vertical gradient of refractivity inside trapping layer [m**-1]"}, + /* 17 */ {"DCTB", "Duct base height [m]"}, + /* 18 */ {"TPLB", "Trapping layer base height [m]"}, + /* 19 */ {"TPLT", "Trapping layer top height [m]"}, + /* 20 */ {"var20", "undefined"}, + /* 21 */ {"var21", "undefined"}, + /* 22 */ {"var22", "undefined"}, + /* 23 */ {"var23", "undefined"}, + /* 24 */ {"var24", "undefined"}, + /* 25 */ {"var25", "undefined"}, + /* 26 */ {"var26", "undefined"}, + /* 27 */ {"var27", "undefined"}, + /* 28 */ {"var28", "undefined"}, + /* 29 */ {"var29", "undefined"}, + /* 30 */ {"var30", "undefined"}, + /* 31 */ {"var31", "undefined"}, + /* 32 */ {"var32", "undefined"}, + /* 33 */ {"var33", "undefined"}, + /* 34 */ {"var34", "undefined"}, + /* 35 */ {"var35", "undefined"}, + /* 36 */ {"var36", "undefined"}, + /* 37 */ {"var37", "undefined"}, + /* 38 */ {"var38", "undefined"}, + /* 39 */ {"SM", "Soil Moisture [kg m**-3]"}, + /* 40 */ {"var40", "undefined"}, + /* 41 */ {"var41", "undefined"}, + /* 42 */ {"var42", "undefined"}, + /* 43 */ {"var43", "undefined"}, + /* 44 */ {"var44", "undefined"}, + /* 45 */ {"var45", "undefined"}, + /* 46 */ {"var46", "undefined"}, + /* 47 */ {"var47", "undefined"}, + /* 48 */ {"var48", "undefined"}, + /* 49 */ {"var49", "undefined"}, + /* 50 */ {"var50", "undefined"}, + /* 51 */ {"var51", "undefined"}, + /* 52 */ {"var52", "undefined"}, + /* 53 */ {"var53", "undefined"}, + /* 54 */ {"var54", "undefined"}, + /* 55 */ {"var55", "undefined"}, + /* 56 */ {"var56", "undefined"}, + /* 57 */ {"var57", "undefined"}, + /* 58 */ {"var58", "undefined"}, + /* 59 */ {"var59", "undefined"}, + /* 60 */ {"var60", "undefined"}, + /* 61 */ {"var61", "undefined"}, + /* 62 */ {"var62", "undefined"}, + /* 63 */ {"var63", "undefined"}, + /* 64 */ {"var64", "undefined"}, + /* 65 */ {"var65", "undefined"}, + /* 66 */ {"var66", "undefined"}, + /* 67 */ {"var67", "undefined"}, + /* 68 */ {"var68", "undefined"}, + /* 69 */ {"var69", "undefined"}, + /* 70 */ {"var70", "undefined"}, + /* 71 */ {"var71", "undefined"}, + /* 72 */ {"var72", "undefined"}, + /* 73 */ {"var73", "undefined"}, + /* 74 */ {"var74", "undefined"}, + /* 75 */ {"var75", "undefined"}, + /* 76 */ {"var76", "undefined"}, + /* 77 */ {"var77", "undefined"}, + /* 78 */ {"var78", "undefined"}, + /* 79 */ {"var79", "undefined"}, + /* 80 */ {"var80", "undefined"}, + /* 81 */ {"var81", "undefined"}, + /* 82 */ {"var82", "undefined"}, + /* 83 */ {"var83", "undefined"}, + /* 84 */ {"var84", "undefined"}, + /* 85 */ {"var85", "undefined"}, + /* 86 */ {"var86", "undefined"}, + /* 87 */ {"var87", "undefined"}, + /* 88 */ {"var88", "undefined"}, + /* 89 */ {"var89", "undefined"}, + /* 90 */ {"var90", "undefined"}, + /* 91 */ {"var91", "undefined"}, + /* 92 */ {"var92", "undefined"}, + /* 93 */ {"var93", "undefined"}, + /* 94 */ {"var94", "undefined"}, + /* 95 */ {"var95", "undefined"}, + /* 96 */ {"var96", "undefined"}, + /* 97 */ {"var97", "undefined"}, + /* 98 */ {"var98", "undefined"}, + /* 99 */ {"var99", "undefined"}, + /* 100 */ {"var100", "undefined"}, + /* 101 */ {"var101", "undefined"}, + /* 102 */ {"var102", "undefined"}, + /* 103 */ {"var103", "undefined"}, + /* 104 */ {"var104", "undefined"}, + /* 105 */ {"var105", "undefined"}, + /* 106 */ {"var106", "undefined"}, + /* 107 */ {"var107", "undefined"}, + /* 108 */ {"var108", "undefined"}, + /* 109 */ {"var109", "undefined"}, + /* 110 */ {"var110", "undefined"}, + /* 111 */ {"var111", "undefined"}, + /* 112 */ {"var112", "undefined"}, + /* 113 */ {"var113", "undefined"}, + /* 114 */ {"var114", "undefined"}, + /* 115 */ {"var115", "undefined"}, + /* 116 */ {"var116", "undefined"}, + /* 117 */ {"var117", "undefined"}, + /* 118 */ {"var118", "undefined"}, + /* 119 */ {"var119", "undefined"}, + /* 120 */ {"var120", "undefined"}, + /* 121 */ {"var121", "undefined"}, + /* 122 */ {"var122", "undefined"}, + /* 123 */ {"var123", "undefined"}, + /* 124 */ {"var124", "undefined"}, + /* 125 */ {"var125", "undefined"}, + /* 126 */ {"var126", "undefined"}, + /* 127 */ {"var127", "undefined"}, + /* 128 */ {"var128", "undefined"}, + /* 129 */ {"var129", "undefined"}, + /* 130 */ {"var130", "undefined"}, + /* 131 */ {"U10N", "Neutral wind at 10 m x-component [m s**-1]"}, + /* 132 */ {"V10N", "Neutral wind at 10 m y-component [m s**-1]"}, + /* 133 */ {"var133", "undefined"}, + /* 134 */ {"VTNOWD", "V-tendency from non-orographic wave drag [m s**-2]"}, + /* 135 */ {"var135", "undefined"}, + /* 136 */ {"UTNOWD", "U-tendency from non-orographic wave drag [m s**-2]"}, + /* 137 */ {"var137", "undefined"}, + /* 138 */ {"var138", "undefined"}, + /* 139 */ {"ST", "Soil Temperature [K]"}, + /* 140 */ {"var140", "undefined"}, + /* 141 */ {"SD", "Snow Depth water equivalent [m]"}, + /* 142 */ {"var142", "undefined"}, + /* 143 */ {"var143", "undefined"}, + /* 144 */ {"SF", "Snow Fall water equivalent [kg m**-2]"}, + /* 145 */ {"var145", "undefined"}, + /* 146 */ {"var146", "undefined"}, + /* 147 */ {"var147", "undefined"}, + /* 148 */ {"var148", "undefined"}, + /* 149 */ {"var149", "undefined"}, + /* 150 */ {"var150", "undefined"}, + /* 151 */ {"var151", "undefined"}, + /* 152 */ {"var152", "undefined"}, + /* 153 */ {"var153", "undefined"}, + /* 154 */ {"var154", "undefined"}, + /* 155 */ {"var155", "undefined"}, + /* 156 */ {"var156", "undefined"}, + /* 157 */ {"var157", "undefined"}, + /* 158 */ {"var158", "undefined"}, + /* 159 */ {"var159", "undefined"}, + /* 160 */ {"var160", "undefined"}, + /* 161 */ {"var161", "undefined"}, + /* 162 */ {"var162", "undefined"}, + /* 163 */ {"var163", "undefined"}, + /* 164 */ {"TCC", "Total Cloud Cover [%]"}, + /* 165 */ {"var165", "undefined"}, + /* 166 */ {"var166", "undefined"}, + /* 167 */ {"var167", "undefined"}, + /* 168 */ {"var168", "undefined"}, + /* 169 */ {"var169", "undefined"}, + /* 170 */ {"CAP", "Field capacity [kg m**-3]"}, + /* 171 */ {"WILT", "Wilting point [kg m**-3]"}, + /* 172 */ {"var172", "undefined"}, + /* 173 */ {"var173", "undefined"}, + /* 174 */ {"var174", "undefined"}, + /* 175 */ {"var175", "undefined"}, + /* 176 */ {"var176", "undefined"}, + /* 177 */ {"var177", "undefined"}, + /* 178 */ {"var178", "undefined"}, + /* 179 */ {"var179", "undefined"}, + /* 180 */ {"var180", "undefined"}, + /* 181 */ {"var181", "undefined"}, + /* 182 */ {"var182", "undefined"}, + /* 183 */ {"var183", "undefined"}, + /* 184 */ {"var184", "undefined"}, + /* 185 */ {"var185", "undefined"}, + /* 186 */ {"var186", "undefined"}, + /* 187 */ {"var187", "undefined"}, + /* 188 */ {"var188", "undefined"}, + /* 189 */ {"var189", "undefined"}, + /* 190 */ {"var190", "undefined"}, + /* 191 */ {"var191", "undefined"}, + /* 192 */ {"var192", "undefined"}, + /* 193 */ {"var193", "undefined"}, + /* 194 */ {"var194", "undefined"}, + /* 195 */ {"var195", "undefined"}, + /* 196 */ {"var196", "undefined"}, + /* 197 */ {"var197", "undefined"}, + /* 198 */ {"var198", "undefined"}, + /* 199 */ {"var199", "undefined"}, + /* 200 */ {"var200", "undefined"}, + /* 201 */ {"var201", "undefined"}, + /* 202 */ {"var202", "undefined"}, + /* 203 */ {"var203", "undefined"}, + /* 204 */ {"var204", "undefined"}, + /* 205 */ {"var205", "undefined"}, + /* 206 */ {"var206", "undefined"}, + /* 207 */ {"var207", "undefined"}, + /* 208 */ {"var208", "undefined"}, + /* 209 */ {"var209", "undefined"}, + /* 210 */ {"var210", "undefined"}, + /* 211 */ {"var211", "undefined"}, + /* 212 */ {"var212", "undefined"}, + /* 213 */ {"var213", "undefined"}, + /* 214 */ {"var214", "undefined"}, + /* 215 */ {"var215", "undefined"}, + /* 216 */ {"var216", "undefined"}, + /* 217 */ {"var217", "undefined"}, + /* 218 */ {"var218", "undefined"}, + /* 219 */ {"var219", "undefined"}, + /* 220 */ {"var220", "undefined"}, + /* 221 */ {"var221", "undefined"}, + /* 222 */ {"var222", "undefined"}, + /* 223 */ {"var223", "undefined"}, + /* 224 */ {"var224", "undefined"}, + /* 225 */ {"var225", "undefined"}, + /* 226 */ {"var226", "undefined"}, + /* 227 */ {"var227", "undefined"}, + /* 228 */ {"TP", "Total Precipitation [kg m**-2]"}, + /* 229 */ {"var229", "undefined"}, + /* 230 */ {"var230", "undefined"}, + /* 231 */ {"var231", "undefined"}, + /* 232 */ {"var232", "undefined"}, + /* 233 */ {"var233", "undefined"}, + /* 234 */ {"var234", "undefined"}, + /* 235 */ {"var235", "undefined"}, + /* 236 */ {"var236", "undefined"}, + /* 237 */ {"var237", "undefined"}, + /* 238 */ {"var238", "undefined"}, + /* 239 */ {"var239", "undefined"}, + /* 240 */ {"var240", "undefined"}, + /* 241 */ {"var241", "undefined"}, + /* 242 */ {"var242", "undefined"}, + /* 243 */ {"var243", "undefined"}, + /* 244 */ {"var244", "undefined"}, + /* 245 */ {"var245", "undefined"}, + /* 246 */ {"var246", "undefined"}, + /* 247 */ {"var247", "undefined"}, + /* 248 */ {"var248", "undefined"}, + /* 249 */ {"var249", "undefined"}, + /* 250 */ {"var250", "undefined"}, + /* 251 */ {"var251", "undefined"}, + /* 252 */ {"var252", "undefined"}, + /* 253 */ {"var253", "undefined"}, + /* 254 */ {"var254", "undefined"}, + /* 255 */ {"var255", "undefined"}, +}; + +const struct ParmTable parm_table_nceptab_129[256] = { + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"PRES", "Pressure [Pa]"}, + /* 2 */ {"PRMSL", "Pressure reduced to MSL [Pa]"}, + /* 3 */ {"PTEND", "Pressure tendency [Pa/s]"}, + /* 4 */ {"PVORT", "Pot. vorticity [km^2/kg/s]"}, + /* 5 */ {"ICAHT", "ICAO Standard Atmosphere Reference Height [M]"}, + /* 6 */ {"GP", "Geopotential [m^2/s^2]"}, + /* 7 */ {"HGT", "Geopotential height [gpm]"}, + /* 8 */ {"DIST", "Geometric height [m]"}, + /* 9 */ {"HSTDV", "Std dev of height [m]"}, + /* 10 */ {"TOZNE", "Total ozone [Dobson]"}, + /* 11 */ {"TMP", "Temp. [K]"}, + /* 12 */ {"VTMP", "Virtual temp. [K]"}, + /* 13 */ {"POT", "Potential temp. [K]"}, + /* 14 */ {"EPOT", "Pseudo-adiabatic pot. temp. [K]"}, + /* 15 */ {"TMAX", "Max. temp. [K]"}, + /* 16 */ {"TMIN", "Min. temp. [K]"}, + /* 17 */ {"DPT", "Dew point temp. [K]"}, + /* 18 */ {"DEPR", "Dew point depression [K]"}, + /* 19 */ {"LAPR", "Lapse rate [K/m]"}, + /* 20 */ {"VIS", "Visibility [m]"}, + /* 21 */ {"RDSP1", "Radar spectra (1) [non-dim]"}, + /* 22 */ {"RDSP2", "Radar spectra (2) [non-dim]"}, + /* 23 */ {"RDSP3", "Radar spectra (3) [non-dim]"}, + /* 24 */ {"PLI", "Parcel lifted index (to 500 hPa) [K]"}, + /* 25 */ {"TMPA", "Temp. anomaly [K]"}, + /* 26 */ {"PRESA", "Pressure anomaly [Pa]"}, + /* 27 */ {"GPA", "Geopotential height anomaly [gpm]"}, + /* 28 */ {"WVSP1", "Wave spectra (1) [non-dim]"}, + /* 29 */ {"WVSP2", "Wave spectra (2) [non-dim]"}, + /* 30 */ {"WVSP3", "Wave spectra (3) [non-dim]"}, + /* 31 */ {"WDIR", "Wind direction [deg]"}, + /* 32 */ {"WIND", "Wind speed [m/s]"}, + /* 33 */ {"UGRD", "u wind [m/s]"}, + /* 34 */ {"VGRD", "v wind [m/s]"}, + /* 35 */ {"STRM", "Stream function [m^2/s]"}, + /* 36 */ {"VPOT", "Velocity potential [m^2/s]"}, + /* 37 */ {"MNTSF", "Montgomery stream function [m^2/s^2]"}, + /* 38 */ {"SGCVV", "Sigma coord. vertical velocity [/s]"}, + /* 39 */ {"VVEL", "Pressure vertical velocity [Pa/s]"}, + /* 40 */ {"DZDT", "Geometric vertical velocity [m/s]"}, + /* 41 */ {"ABSV", "Absolute vorticity [/s]"}, + /* 42 */ {"ABSD", "Absolute divergence [/s]"}, + /* 43 */ {"RELV", "Relative vorticity [/s]"}, + /* 44 */ {"RELD", "Relative divergence [/s]"}, + /* 45 */ {"VUCSH", "Vertical u shear [/s]"}, + /* 46 */ {"VVCSH", "Vertical v shear [/s]"}, + /* 47 */ {"DIRC", "Direction of current [deg]"}, + /* 48 */ {"SPC", "Speed of current [m/s]"}, + /* 49 */ {"UOGRD", "u of current [m/s]"}, + /* 50 */ {"VOGRD", "v of current [m/s]"}, + /* 51 */ {"SPFH", "Specific humidity [kg/kg]"}, + /* 52 */ {"RH", "Relative humidity [%]"}, + /* 53 */ {"MIXR", "Humidity mixing ratio [kg/kg]"}, + /* 54 */ {"PWAT", "Precipitable water [kg/m^2]"}, + /* 55 */ {"VAPP", "Vapor pressure [Pa]"}, + /* 56 */ {"SATD", "Saturation deficit [Pa]"}, + /* 57 */ {"EVP", "Evaporation [kg/m^2]"}, + /* 58 */ {"CICE", "Cloud Ice [kg/m^2]"}, + /* 59 */ {"PRATE", "Precipitation rate [kg/m^2/s]"}, + /* 60 */ {"TSTM", "Thunderstorm probability [%]"}, + /* 61 */ {"APCP", "Total precipitation [kg/m^2]"}, + /* 62 */ {"NCPCP", "Large scale precipitation [kg/m^2]"}, + /* 63 */ {"ACPCP", "Convective precipitation [kg/m^2]"}, + /* 64 */ {"SRWEQ", "Snowfall rate water equiv. [kg/m^2/s]"}, + /* 65 */ {"WEASD", "Accum. snow [kg/m^2]"}, + /* 66 */ {"SNOD", "Snow depth [m]"}, + /* 67 */ {"MIXHT", "Mixed layer depth [m]"}, + /* 68 */ {"TTHDP", "Transient thermocline depth [m]"}, + /* 69 */ {"MTHD", "Main thermocline depth [m]"}, + /* 70 */ {"MTHA", "Main thermocline anomaly [m]"}, + /* 71 */ {"TCDC", "Total cloud cover [%]"}, + /* 72 */ {"CDCON", "Convective cloud cover [%]"}, + /* 73 */ {"LCDC", "Low level cloud cover [%]"}, + /* 74 */ {"MCDC", "Mid level cloud cover [%]"}, + /* 75 */ {"HCDC", "High level cloud cover [%]"}, + /* 76 */ {"CWAT", "Cloud water [kg/m^2]"}, + /* 77 */ {"BLI", "Best lifted index (to 500 hPa) [K]"}, + /* 78 */ {"SNOC", "Convective snow [kg/m^2]"}, + /* 79 */ {"SNOL", "Large scale snow [kg/m^2]"}, + /* 80 */ {"WTMP", "Water temp. [K]"}, + /* 81 */ {"LAND", "Land cover (land=1;sea=0) [fraction]"}, + /* 82 */ {"DSLM", "Deviation of sea level from mean [m]"}, + /* 83 */ {"SFCR", "Surface roughness [m]"}, + /* 84 */ {"ALBDO", "Albedo [%]"}, + /* 85 */ {"TSOIL", "Soil temp. [K]"}, + /* 86 */ {"SOILM", "Soil moisture content [kg/m^2]"}, + /* 87 */ {"VEG", "Vegetation [%]"}, + /* 88 */ {"SALTY", "Salinity [kg/kg]"}, + /* 89 */ {"DEN", "Density [kg/m^3]"}, + /* 90 */ {"WATR", "Water runoff [kg/m^2]"}, + /* 91 */ {"ICEC", "Ice concentration (ice=1;no ice=0) [fraction]"}, + /* 92 */ {"ICETK", "Ice thickness [m]"}, + /* 93 */ {"DICED", "Direction of ice drift [deg]"}, + /* 94 */ {"SICED", "Speed of ice drift [m/s]"}, + /* 95 */ {"UICE", "u of ice drift [m/s]"}, + /* 96 */ {"VICE", "v of ice drift [m/s]"}, + /* 97 */ {"ICEG", "Ice growth rate [m/s]"}, + /* 98 */ {"ICED", "Ice divergence [/s]"}, + /* 99 */ {"SNOM", "Snow melt [kg/m^2]"}, + /* 100 */ {"HTSGW", "Sig height of wind waves and swell [m]"}, + /* 101 */ {"WVDIR", "Direction of wind waves [deg]"}, + /* 102 */ {"WVHGT", "Sig height of wind waves [m]"}, + /* 103 */ {"WVPER", "Mean period of wind waves [s]"}, + /* 104 */ {"SWDIR", "Direction of swell waves [deg]"}, + /* 105 */ {"SWELL", "Sig height of swell waves [m]"}, + /* 106 */ {"SWPER", "Mean period of swell waves [s]"}, + /* 107 */ {"DIRPW", "Primary wave direction [deg]"}, + /* 108 */ {"PERPW", "Primary wave mean period [s]"}, + /* 109 */ {"DIRSW", "Secondary wave direction [deg]"}, + /* 110 */ {"PERSW", "Secondary wave mean period [s]"}, + /* 111 */ {"NSWRS", "Net short wave (surface) [W/m^2]"}, + /* 112 */ {"NLWRS", "Net long wave (surface) [W/m^2]"}, + /* 113 */ {"NSWRT", "Net short wave (top) [W/m^2]"}, + /* 114 */ {"NLWRT", "Net long wave (top) [W/m^2]"}, + /* 115 */ {"LWAVR", "Long wave [W/m^2]"}, + /* 116 */ {"SWAVR", "Short wave [W/m^2]"}, + /* 117 */ {"GRAD", "Global radiation [W/m^2]"}, + /* 118 */ {"BRTMP", "Brightness temperature [K]"}, + /* 119 */ {"LWRAD", "Radiance with respect to wave no. [W/m/sr]"}, + /* 120 */ {"SWRAD", "Radiance with respect ot wave len. [W/m^3/sr]"}, + /* 121 */ {"LHTFL", "Latent heat flux [W/m^2]"}, + /* 122 */ {"SHTFL", "Sensible heat flux [W/m^2]"}, + /* 123 */ {"BLYDP", "Boundary layer dissipation [W/m^2]"}, + /* 124 */ {"UFLX", "Zonal momentum flux [N/m^2]"}, + /* 125 */ {"VFLX", "Meridional momentum flux [N/m^2]"}, + /* 126 */ {"WMIXE", "Wind mixing energy [J]"}, + /* 127 */ {"IMGD", "Image data []"}, + /* 128 */ {"PAOT", "Probability anomaly of temp [%]"}, + /* 129 */ {"PAOP", "Probability anomaly of precip [%]"}, + /* 130 */ {"CWR", "Probability of wetting rain > 0.1 in [%]"}, + /* 131 */ {"FRAIN", "Rain fraction of total liquid water []"}, + /* 132 */ {"FICE", "Ice fraction of total condensate []"}, + /* 133 */ {"FRIME", "Rime factor []"}, + /* 134 */ {"CUEFI", "Convective cloud efficiency []"}, + /* 135 */ {"TCOND", "Total condensate [kg/kg]"}, + /* 136 */ {"TCOLW", "Total column cloud water [kg/m/m]"}, + /* 137 */ {"TCOLI", "Total column cloud ice [kg/m/m]"}, + /* 138 */ {"TCOLR", "Total column rain [kg/m/m]"}, + /* 139 */ {"TCOLS", "Total column snow [kg/m/m]"}, + /* 140 */ {"TCOLC", "Total column condensate [kg/m/m]"}, + /* 141 */ {"PLPL", "Pressure of level from which parcel was lifted [Pa]"}, + /* 142 */ {"HLPL", "Height of level from which parcel was lifted [m]"}, + /* 143 */ {"CEMS", "Cloud Emissivity [fraction]"}, + /* 144 */ {"COPD", "Cloud Optical Depth [non-dim]"}, + /* 145 */ {"PSIZ", "Effective Particle size [microns]"}, + /* 146 */ {"TCWAT", "Total Water Cloud [%]"}, + /* 147 */ {"TCICE", "Total Ice Cloud [%]"}, + /* 148 */ {"WDIF", "Wind Difference [m/s]"}, + /* 149 */ {"WSTP", "Wave Steepness [non-dim]"}, + /* 150 */ {"PTAN", "Probability of Temp. above normal [%]"}, + /* 151 */ {"PTNN", "Probability of Temp. near normal [%]"}, + /* 152 */ {"PTBN", "Probability of Temp. below normal [%]"}, + /* 153 */ {"PPAN", "Probability of Precip. above normal [%]"}, + /* 154 */ {"PPNN", "Probability of Precip. near normal [%]"}, + /* 155 */ {"PPBN", "Probability of Precip. below normal [%]"}, + /* 156 */ {"PMTC", "Particulate matter (coarse) [ug/m^3]"}, + /* 157 */ {"PMTF", "Particulate matter (fine) [ug/m^3]"}, + /* 158 */ {"AETMP", "Analysis Error of Temperature [K]"}, + /* 159 */ {"AEDPT", "Analysis Error of Dew Point [K]"}, + /* 160 */ {"AESPH", "Analysis Error of Specific Humidity [kg/kg] wne"}, + /* 161 */ {"AEUWD", "Analysis Error of U-wind [m/s]"}, + /* 162 */ {"AEVWD", "Analysis Error of V-wind [m/s]"}, + /* 163 */ {"LPMTF", "Particulate matter (fine) [log10(ug/m^3)]"}, + /* 164 */ {"LIPMF", "Integrated Column Particulate matter (fine) [log10(ug/m^2)] wne"}, + /* 165 */ {"REFZR", "Derived radar reflectivity backscatter from rain [mm^6/m^3]"}, + /* 166 */ {"REFZI", "Derived radar reflectivity backscatter from ice [mm^6/m^3]"}, + /* 167 */ {"REFZC", "Derived radar reflectivity backscatter from parameterized convection [mm^6/m^3]"}, + /* 168 */ {"TCLSW", "Integrated supercooled liquid water [kg/m^2]"}, + /* 169 */ {"TCOLM", "Total Column Integrated Melting Ice [kg/m^2]"}, + /* 170 */ {"ELRDI", "Ellrod Index [non-dim]"}, + /* 171 */ {"TSEC", "Seconds prior to initial reference time [sec]"}, + /* 172 */ {"TSECA", "Seconds after initial reference time [sec]"}, + /* 173 */ {"NUM", "Number of samples/observations [non-dim]"}, + /* 174 */ {"AEPRS", "Analysis Error of Pressure [Pa]"}, + /* 175 */ {"ICSEV", "Icing Severity [non-dim]"}, + /* 176 */ {"ICPRB", "Icing Probability [non-dim]"}, + /* 177 */ {"LAVNI", "Low-level Aviation Interest [non-dim]"}, + /* 178 */ {"HAVNI", "High-level Aviation Interest [non-dim]"}, + /* 179 */ {"FLGHT", "Flight Category [non-dim]"}, + /* 180 */ {"OZCON", "Ozone concentration [ppb]"}, + /* 181 */ {"OZCAT", "Categorical ozone concentration [?]"}, + /* 182 */ {"VEDH", "vertical heat eddy diffusivity [m^2/s]"}, + /* 183 */ {"SIGV", "Sigma level value [non-dim]"}, + /* 184 */ {"EWGT", "Ensemble Weight [non-dim]"}, + /* 185 */ {"CICEL", "Confidence indicator - Ceiling [non-dim]"}, + /* 186 */ {"CIVIS", "Confidence indicator - Visibility [non-dim]"}, + /* 187 */ {"CIFLT", "Confidence indicator - Flight Category [non-dim]"}, + /* 188 */ {"LAVV", "Latitude of V wind component of velocity [deg]"}, + /* 189 */ {"LOVV", "Longitude of V wind component of velocity [deg]"}, + /* 190 */ {"USCT", "Scatterometer est. U wind component [m/s]"}, + /* 191 */ {"VSCT", "Scatterometer est. V wind component [m/s]"}, + /* 192 */ {"LAUV", "Latitude of U wind component of velocity [deg]"}, + /* 193 */ {"LOUV", "Longitude of U wind component of velocity [deg]"}, + /* 194 */ {"TCHP", "Tropical Cyclone Heat Potential [J/m^2]"}, + /* 195 */ {"DBSS", "Geometric Depth Below Sea Surface [m]"}, + /* 196 */ {"ODHA", "Ocean Dynamic Heat Anomaly [dynamic m]"}, + /* 197 */ {"OHC", "Ocean Heat Content [J/m^2]"}, + /* 198 */ {"SSHG", "Sea Surface Height Relative to Geoid [m]"}, + /* 199 */ {"SLTFL", "Salt flux [g/cm^2/s]"}, + /* 200 */ {"DUVB", "UV-B Downward Solar Flux [W/m^2]"}, + /* 201 */ {"CDUVB", "Clear Sky UV-B Downward Solar Flux [W/m^2]"}, + /* 202 */ {"THFLX", "Total downward heat flux at surface [W/m^2]"}, + /* 203 */ {"UVAR", "U velocity variance [m^2/s^2]"}, + /* 204 */ {"VVAR", "V velocity variance [m^2/s^2]"}, + /* 205 */ {"UVVCC", "UV Velocity Cross Correlation [m^2/s^2]"}, + /* 206 */ {"MCLS", "Meteorological Correlation Length Scale [m]"}, + /* 207 */ {"LAPP", "Latitude of pressure point [deg]"}, + /* 208 */ {"LOPP", "Longitude of pressure point [deg]"}, + /* 209 */ {"var209", "undefined"}, + /* 210 */ {"REFO", "Observed radar reflectivity [dbZ]"}, + /* 211 */ {"REFD", "Derived radar reflectivity [dbZ]"}, + /* 212 */ {"REFC", "Maximum/Composite radar reflectivity [dbZ]"}, + /* 213 */ {"SBT122", "Simulated Brightness Temperature for GOES12, Channel 2 [K]"}, + /* 214 */ {"SBT123", "Simulated Brightness Temperature for GOES12, Channel 3 [K]"}, + /* 215 */ {"SBT124", "Simulated Brightness Temperature for GOES12, Channel 4 [K]"}, + /* 216 */ {"SBT125", "Simulated Brightness Temperature for GOES12, Channel 5 [K]"}, + /* 217 */ {"MINRH", "Minimum Relative Humumidity [%]"}, + /* 218 */ {"MAXRH", "Maximum Relative Humumidity [%]"}, + /* 219 */ {"CEIL", "Ceiling [m]"}, + /* 220 */ {"PBLREG", "Planetary boundary layer regime []"}, + /* 221 */ {"SBC123", "Simulated brightness counts for GOES12, Channel 3 [byte]"}, + /* 222 */ {"SBC124", "Simulated brightness counts for GOES12, Channel 4 [byte]"}, + /* 223 */ {"RPRATE", "Rain precipitation rate [kg/m^2/s]"}, + /* 224 */ {"SPRATE", "Snow precipitation rate [kg/m^2/s]"}, + /* 225 */ {"FPRATE", "Freezing rain precipitation rate [kg/m^2/s]"}, + /* 226 */ {"IPRATE", "Ice pellets precipitation rate [kg/m^2/s]"}, + /* 227 */ {"UPHL", "Updraft Helicity [m^2/s^2]"}, + /* 228 */ {"SURGE", "Storm Surge [m]"}, + /* 229 */ {"ETSRG", "Extra-tropical storm Surge [m]"}, + /* 230 */ {"RHPW", "Relative humidity with respect to precip water [%]"}, + /* 231 */ {"OZMAX1", "Ozone daily max from 1-hour ave [ppbV]"}, + /* 232 */ {"OZMAX8", "Ozone daily max from 8-hour ave [ppbV]"}, + /* 233 */ {"PDMAX1", "PM 2.5 daily max from 1-hour ave [ug/m^3]"}, + /* 234 */ {"PDMAX24", "PM 2.5 daily max from 24-hour ave [ug/m^3]"}, + /* 235 */ {"MAXREF", "Hourly max of sim. reflect at 1km AGL [dbZ]"}, + /* 236 */ {"MXUPHL", "Hourly max updraft helicity 2-5km AGL [m^2/s^2]"}, + /* 237 */ {"MAXUVV", "Hourly max upward vert vel in lowest 400mb [m/s]"}, + /* 238 */ {"MAXDVV", "Hourly max downward vert fel in lowest 400mb [m/s]"}, + /* 239 */ {"MAXVIG", "Hourly max column graupel [kg/m^2]"}, + /* 240 */ {"RETOP", "Radar echo top (18.3 dbZ) [m]"}, + /* 241 */ {"VRATE", "Ventilation rate [m^2/s]"}, + /* 242 */ {"TCSRG20", "20% tropical cyclone storm exceedance [m]"}, + /* 243 */ {"TCSRG30", "30% tropical cyclone storm exceedance [m]"}, + /* 244 */ {"TCSRG40", "40% tropical cyclone storm exceedance [m]"}, + /* 245 */ {"TCSRG50", "50% tropical cyclone storm exceedance [m]"}, + /* 246 */ {"TCSRG60", "60% tropical cyclone storm exceedance [m]"}, + /* 247 */ {"TCSRG70", "70% tropical cyclone storm exceedance [m]"}, + /* 248 */ {"TCSRG80", "80% tropical cyclone storm exceedance [m]"}, + /* 249 */ {"TCSRG90", "90% tropical cyclone storm exceedance [m]"}, + /* 250 */ {"HINDEX", "Haines index []"}, + /* 251 */ {"DIFTEN", "Difference between 2 states in total energy norm [J/kg]"}, + /* 252 */ {"PSPCP", "Pseudo-precipitation [kg/m^2]"}, + /* 253 */ {"MAXUW", "U of hourly max 10m wind speed [m/s]"}, + /* 254 */ {"MAXVW", "V of hourly max 10m wind speed [m/s]"}, + /* 255 */ {"var255", "undefined"}, +}; + +const struct ParmTable parm_table_nceptab_140[256] = { + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"PRES", "Pressure [Pa]"}, + /* 2 */ {"PRMSL", "Pressure reduced to MSL [Pa]"}, + /* 3 */ {"PTEND", "Pressure tendency [Pa/s]"}, + /* 4 */ {"PVORT", "Pot. vorticity [km^2/kg/s]"}, + /* 5 */ {"ICAHT", "ICAO Standard Atmosphere Reference Height [M]"}, + /* 6 */ {"GP", "Geopotential [m^2/s^2]"}, + /* 7 */ {"HGT", "Geopotential height [gpm]"}, + /* 8 */ {"DIST", "Geometric height [m]"}, + /* 9 */ {"HSTDV", "Std dev of height [m]"}, + /* 10 */ {"TOZNE", "Total ozone [Dobson]"}, + /* 11 */ {"TMP", "Temp. [K]"}, + /* 12 */ {"VTMP", "Virtual temp. [K]"}, + /* 13 */ {"POT", "Potential temp. [K]"}, + /* 14 */ {"EPOT", "Pseudo-adiabatic pot. temp. [K]"}, + /* 15 */ {"TMAX", "Max. temp. [K]"}, + /* 16 */ {"TMIN", "Min. temp. [K]"}, + /* 17 */ {"DPT", "Dew point temp. [K]"}, + /* 18 */ {"DEPR", "Dew point depression [K]"}, + /* 19 */ {"LAPR", "Lapse rate [K/m]"}, + /* 20 */ {"VIS", "Visibility [m]"}, + /* 21 */ {"RDSP1", "Radar spectra (1) [non-dim]"}, + /* 22 */ {"RDSP2", "Radar spectra (2) [non-dim]"}, + /* 23 */ {"RDSP3", "Radar spectra (3) [non-dim]"}, + /* 24 */ {"PLI", "Parcel lifted index (to 500 hPa) [K]"}, + /* 25 */ {"TMPA", "Temp. anomaly [K]"}, + /* 26 */ {"PRESA", "Pressure anomaly [Pa]"}, + /* 27 */ {"GPA", "Geopotential height anomaly [gpm]"}, + /* 28 */ {"WVSP1", "Wave spectra (1) [non-dim]"}, + /* 29 */ {"WVSP2", "Wave spectra (2) [non-dim]"}, + /* 30 */ {"WVSP3", "Wave spectra (3) [non-dim]"}, + /* 31 */ {"WDIR", "Wind direction [deg]"}, + /* 32 */ {"WIND", "Wind speed [m/s]"}, + /* 33 */ {"UGRD", "u wind [m/s]"}, + /* 34 */ {"VGRD", "v wind [m/s]"}, + /* 35 */ {"STRM", "Stream function [m^2/s]"}, + /* 36 */ {"VPOT", "Velocity potential [m^2/s]"}, + /* 37 */ {"MNTSF", "Montgomery stream function [m^2/s^2]"}, + /* 38 */ {"SGCVV", "Sigma coord. vertical velocity [/s]"}, + /* 39 */ {"VVEL", "Pressure vertical velocity [Pa/s]"}, + /* 40 */ {"DZDT", "Geometric vertical velocity [m/s]"}, + /* 41 */ {"ABSV", "Absolute vorticity [/s]"}, + /* 42 */ {"ABSD", "Absolute divergence [/s]"}, + /* 43 */ {"RELV", "Relative vorticity [/s]"}, + /* 44 */ {"RELD", "Relative divergence [/s]"}, + /* 45 */ {"VUCSH", "Vertical u shear [/s]"}, + /* 46 */ {"VVCSH", "Vertical v shear [/s]"}, + /* 47 */ {"DIRC", "Direction of current [deg]"}, + /* 48 */ {"SPC", "Speed of current [m/s]"}, + /* 49 */ {"UOGRD", "u of current [m/s]"}, + /* 50 */ {"VOGRD", "v of current [m/s]"}, + /* 51 */ {"SPFH", "Specific humidity [kg/kg]"}, + /* 52 */ {"RH", "Relative humidity [%]"}, + /* 53 */ {"MIXR", "Humidity mixing ratio [kg/kg]"}, + /* 54 */ {"PWAT", "Precipitable water [kg/m^2]"}, + /* 55 */ {"VAPP", "Vapor pressure [Pa]"}, + /* 56 */ {"SATD", "Saturation deficit [Pa]"}, + /* 57 */ {"EVP", "Evaporation [kg/m^2]"}, + /* 58 */ {"CICE", "Cloud Ice [kg/m^2]"}, + /* 59 */ {"PRATE", "Precipitation rate [kg/m^2/s]"}, + /* 60 */ {"TSTM", "Thunderstorm probability [%]"}, + /* 61 */ {"APCP", "Total precipitation [kg/m^2]"}, + /* 62 */ {"NCPCP", "Large scale precipitation [kg/m^2]"}, + /* 63 */ {"ACPCP", "Convective precipitation [kg/m^2]"}, + /* 64 */ {"SRWEQ", "Snowfall rate water equiv. [kg/m^2/s]"}, + /* 65 */ {"WEASD", "Accum. snow [kg/m^2]"}, + /* 66 */ {"SNOD", "Snow depth [m]"}, + /* 67 */ {"MIXHT", "Mixed layer depth [m]"}, + /* 68 */ {"TTHDP", "Transient thermocline depth [m]"}, + /* 69 */ {"MTHD", "Main thermocline depth [m]"}, + /* 70 */ {"MTHA", "Main thermocline anomaly [m]"}, + /* 71 */ {"TCDC", "Total cloud cover [%]"}, + /* 72 */ {"CDCON", "Convective cloud cover [%]"}, + /* 73 */ {"LCDC", "Low level cloud cover [%]"}, + /* 74 */ {"MCDC", "Mid level cloud cover [%]"}, + /* 75 */ {"HCDC", "High level cloud cover [%]"}, + /* 76 */ {"CWAT", "Cloud water [kg/m^2]"}, + /* 77 */ {"BLI", "Best lifted index (to 500 hPa) [K]"}, + /* 78 */ {"SNOC", "Convective snow [kg/m^2]"}, + /* 79 */ {"SNOL", "Large scale snow [kg/m^2]"}, + /* 80 */ {"WTMP", "Water temp. [K]"}, + /* 81 */ {"LAND", "Land cover (land=1;sea=0) [fraction]"}, + /* 82 */ {"DSLM", "Deviation of sea level from mean [m]"}, + /* 83 */ {"SFCR", "Surface roughness [m]"}, + /* 84 */ {"ALBDO", "Albedo [%]"}, + /* 85 */ {"TSOIL", "Soil temp. [K]"}, + /* 86 */ {"SOILM", "Soil moisture content [kg/m^2]"}, + /* 87 */ {"VEG", "Vegetation [%]"}, + /* 88 */ {"SALTY", "Salinity [kg/kg]"}, + /* 89 */ {"DEN", "Density [kg/m^3]"}, + /* 90 */ {"WATR", "Water runoff [kg/m^2]"}, + /* 91 */ {"ICEC", "Ice concentration (ice=1;no ice=0) [fraction]"}, + /* 92 */ {"ICETK", "Ice thickness [m]"}, + /* 93 */ {"DICED", "Direction of ice drift [deg]"}, + /* 94 */ {"SICED", "Speed of ice drift [m/s]"}, + /* 95 */ {"UICE", "u of ice drift [m/s]"}, + /* 96 */ {"VICE", "v of ice drift [m/s]"}, + /* 97 */ {"ICEG", "Ice growth rate [m/s]"}, + /* 98 */ {"ICED", "Ice divergence [/s]"}, + /* 99 */ {"SNOM", "Snow melt [kg/m^2]"}, + /* 100 */ {"HTSGW", "Sig height of wind waves and swell [m]"}, + /* 101 */ {"WVDIR", "Direction of wind waves [deg]"}, + /* 102 */ {"WVHGT", "Sig height of wind waves [m]"}, + /* 103 */ {"WVPER", "Mean period of wind waves [s]"}, + /* 104 */ {"SWDIR", "Direction of swell waves [deg]"}, + /* 105 */ {"SWELL", "Sig height of swell waves [m]"}, + /* 106 */ {"SWPER", "Mean period of swell waves [s]"}, + /* 107 */ {"DIRPW", "Primary wave direction [deg]"}, + /* 108 */ {"PERPW", "Primary wave mean period [s]"}, + /* 109 */ {"DIRSW", "Secondary wave direction [deg]"}, + /* 110 */ {"PERSW", "Secondary wave mean period [s]"}, + /* 111 */ {"NSWRS", "Net short wave (surface) [W/m^2]"}, + /* 112 */ {"NLWRS", "Net long wave (surface) [W/m^2]"}, + /* 113 */ {"NSWRT", "Net short wave (top) [W/m^2]"}, + /* 114 */ {"NLWRT", "Net long wave (top) [W/m^2]"}, + /* 115 */ {"LWAVR", "Long wave [W/m^2]"}, + /* 116 */ {"SWAVR", "Short wave [W/m^2]"}, + /* 117 */ {"GRAD", "Global radiation [W/m^2]"}, + /* 118 */ {"BRTMP", "Brightness temperature [K]"}, + /* 119 */ {"LWRAD", "Radiance with respect to wave no. [W/m/sr]"}, + /* 120 */ {"SWRAD", "Radiance with respect ot wave len. [W/m^3/sr]"}, + /* 121 */ {"LHTFL", "Latent heat flux [W/m^2]"}, + /* 122 */ {"SHTFL", "Sensible heat flux [W/m^2]"}, + /* 123 */ {"BLYDP", "Boundary layer dissipation [W/m^2]"}, + /* 124 */ {"UFLX", "Zonal momentum flux [N/m^2]"}, + /* 125 */ {"VFLX", "Meridional momentum flux [N/m^2]"}, + /* 126 */ {"WMIXE", "Wind mixing energy [J]"}, + /* 127 */ {"IMGD", "Image data []"}, + /* 128 */ {"var128", "undefined"}, + /* 129 */ {"var129", "undefined"}, + /* 130 */ {"var130", "undefined"}, + /* 131 */ {"var131", "undefined"}, + /* 132 */ {"var132", "undefined"}, + /* 133 */ {"var133", "undefined"}, + /* 134 */ {"var134", "undefined"}, + /* 135 */ {"var135", "undefined"}, + /* 136 */ {"var136", "undefined"}, + /* 137 */ {"var137", "undefined"}, + /* 138 */ {"var138", "undefined"}, + /* 139 */ {"var139", "undefined"}, + /* 140 */ {"var140", "undefined"}, + /* 141 */ {"var141", "undefined"}, + /* 142 */ {"var142", "undefined"}, + /* 143 */ {"var143", "undefined"}, + /* 144 */ {"var144", "undefined"}, + /* 145 */ {"var145", "undefined"}, + /* 146 */ {"var146", "undefined"}, + /* 147 */ {"var147", "undefined"}, + /* 148 */ {"var148", "undefined"}, + /* 149 */ {"var149", "undefined"}, + /* 150 */ {"var150", "undefined"}, + /* 151 */ {"var151", "undefined"}, + /* 152 */ {"var152", "undefined"}, + /* 153 */ {"var153", "undefined"}, + /* 154 */ {"var154", "undefined"}, + /* 155 */ {"var155", "undefined"}, + /* 156 */ {"var156", "undefined"}, + /* 157 */ {"var157", "undefined"}, + /* 158 */ {"var158", "undefined"}, + /* 159 */ {"var159", "undefined"}, + /* 160 */ {"var160", "undefined"}, + /* 161 */ {"var161", "undefined"}, + /* 162 */ {"var162", "undefined"}, + /* 163 */ {"var163", "undefined"}, + /* 164 */ {"var164", "undefined"}, + /* 165 */ {"var165", "undefined"}, + /* 166 */ {"var166", "undefined"}, + /* 167 */ {"var167", "undefined"}, + /* 168 */ {"MEIP", "Mean icing potential []"}, + /* 169 */ {"MAIP", "Maximum icing potential []"}, + /* 170 */ {"MECTP", "Mean in-cloud turbulence potential []"}, + /* 171 */ {"MACTP", "Maximum in-cloud turbulence potential []"}, + /* 172 */ {"MECAT", "Mean cloud air turbulence potential []"}, + /* 173 */ {"MACAT", "Maximum cloud air turbulence potential []"}, + /* 174 */ {"CBHE", "Cumulonimbus horizontal extent [%]"}, + /* 175 */ {"PCBB", "Pressure at cumblonimbus base [Pa]"}, + /* 176 */ {"PCBT", "Pressure at cumblonimbus top [Pa]"}, + /* 177 */ {"PECBB", "Pressure at embedded cumblonimbus base [Pa]"}, + /* 178 */ {"PECBT", "Pressure at embedded cumblonimbus top [Pa]"}, + /* 179 */ {"HCBB", "ICAO height at cumblonimbus base [m]"}, + /* 180 */ {"HCBT", "ICAO height at cumblonimbus top [m]"}, + /* 181 */ {"HECBB", "ICAO height at embedded cumblonimbus base [m]"}, + /* 182 */ {"HECBT", "ICAO height at embedded cumblonimbus top [m]"}, + /* 183 */ {"var183", "undefined"}, + /* 184 */ {"var184", "undefined"}, + /* 185 */ {"var185", "undefined"}, + /* 186 */ {"var186", "undefined"}, + /* 187 */ {"var187", "undefined"}, + /* 188 */ {"var188", "undefined"}, + /* 189 */ {"var189", "undefined"}, + /* 190 */ {"var190", "undefined"}, + /* 191 */ {"var191", "undefined"}, + /* 192 */ {"var192", "undefined"}, + /* 193 */ {"var193", "undefined"}, + /* 194 */ {"var194", "undefined"}, + /* 195 */ {"var195", "undefined"}, + /* 196 */ {"var196", "undefined"}, + /* 197 */ {"var197", "undefined"}, + /* 198 */ {"var198", "undefined"}, + /* 199 */ {"var199", "undefined"}, + /* 200 */ {"var200", "undefined"}, + /* 201 */ {"var201", "undefined"}, + /* 202 */ {"var202", "undefined"}, + /* 203 */ {"var203", "undefined"}, + /* 204 */ {"var204", "undefined"}, + /* 205 */ {"var205", "undefined"}, + /* 206 */ {"var206", "undefined"}, + /* 207 */ {"var207", "undefined"}, + /* 208 */ {"var208", "undefined"}, + /* 209 */ {"var209", "undefined"}, + /* 210 */ {"var210", "undefined"}, + /* 211 */ {"var211", "undefined"}, + /* 212 */ {"var212", "undefined"}, + /* 213 */ {"var213", "undefined"}, + /* 214 */ {"var214", "undefined"}, + /* 215 */ {"var215", "undefined"}, + /* 216 */ {"var216", "undefined"}, + /* 217 */ {"var217", "undefined"}, + /* 218 */ {"var218", "undefined"}, + /* 219 */ {"var219", "undefined"}, + /* 220 */ {"var220", "undefined"}, + /* 221 */ {"var221", "undefined"}, + /* 222 */ {"var222", "undefined"}, + /* 223 */ {"var223", "undefined"}, + /* 224 */ {"var224", "undefined"}, + /* 225 */ {"var225", "undefined"}, + /* 226 */ {"var226", "undefined"}, + /* 227 */ {"var227", "undefined"}, + /* 228 */ {"var228", "undefined"}, + /* 229 */ {"var229", "undefined"}, + /* 230 */ {"var230", "undefined"}, + /* 231 */ {"var231", "undefined"}, + /* 232 */ {"var232", "undefined"}, + /* 233 */ {"var233", "undefined"}, + /* 234 */ {"var234", "undefined"}, + /* 235 */ {"var235", "undefined"}, + /* 236 */ {"var236", "undefined"}, + /* 237 */ {"var237", "undefined"}, + /* 238 */ {"var238", "undefined"}, + /* 239 */ {"var239", "undefined"}, + /* 240 */ {"var240", "undefined"}, + /* 241 */ {"var241", "undefined"}, + /* 242 */ {"var242", "undefined"}, + /* 243 */ {"var243", "undefined"}, + /* 244 */ {"var244", "undefined"}, + /* 245 */ {"var245", "undefined"}, + /* 246 */ {"var246", "undefined"}, + /* 247 */ {"var247", "undefined"}, + /* 248 */ {"var248", "undefined"}, + /* 249 */ {"var249", "undefined"}, + /* 250 */ {"var250", "undefined"}, + /* 251 */ {"var251", "undefined"}, + /* 252 */ {"var252", "undefined"}, + /* 253 */ {"var253", "undefined"}, + /* 254 */ {"var254", "undefined"}, + /* 255 */ {"var255", "undefined"}, +}; + +const struct ParmTable parm_table_nceptab_141[256] = { + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"PRES", "Pressure [Pa]"}, + /* 2 */ {"PRMSL", "Pressure reduced to MSL [Pa]"}, + /* 3 */ {"PTEND", "Pressure tendency [Pa/s]"}, + /* 4 */ {"PVORT", "Pot. vorticity [km^2/kg/s]"}, + /* 5 */ {"ICAHT", "ICAO Standard Atmosphere Reference Height [M]"}, + /* 6 */ {"GP", "Geopotential [m^2/s^2]"}, + /* 7 */ {"HGT", "Geopotential height [gpm]"}, + /* 8 */ {"DIST", "Geometric height [m]"}, + /* 9 */ {"HSTDV", "Std dev of height [m]"}, + /* 10 */ {"TOZNE", "Total ozone [Dobson]"}, + /* 11 */ {"TMP", "Temp. [K]"}, + /* 12 */ {"VTMP", "Virtual temp. [K]"}, + /* 13 */ {"POT", "Potential temp. [K]"}, + /* 14 */ {"EPOT", "Pseudo-adiabatic pot. temp. [K]"}, + /* 15 */ {"TMAX", "Max. temp. [K]"}, + /* 16 */ {"TMIN", "Min. temp. [K]"}, + /* 17 */ {"DPT", "Dew point temp. [K]"}, + /* 18 */ {"DEPR", "Dew point depression [K]"}, + /* 19 */ {"LAPR", "Lapse rate [K/m]"}, + /* 20 */ {"VIS", "Visibility [m]"}, + /* 21 */ {"RDSP1", "Radar spectra (1) [non-dim]"}, + /* 22 */ {"RDSP2", "Radar spectra (2) [non-dim]"}, + /* 23 */ {"RDSP3", "Radar spectra (3) [non-dim]"}, + /* 24 */ {"PLI", "Parcel lifted index (to 500 hPa) [K]"}, + /* 25 */ {"TMPA", "Temp. anomaly [K]"}, + /* 26 */ {"PRESA", "Pressure anomaly [Pa]"}, + /* 27 */ {"GPA", "Geopotential height anomaly [gpm]"}, + /* 28 */ {"WVSP1", "Wave spectra (1) [non-dim]"}, + /* 29 */ {"WVSP2", "Wave spectra (2) [non-dim]"}, + /* 30 */ {"WVSP3", "Wave spectra (3) [non-dim]"}, + /* 31 */ {"WDIR", "Wind direction [deg]"}, + /* 32 */ {"WIND", "Wind speed [m/s]"}, + /* 33 */ {"UGRD", "u wind [m/s]"}, + /* 34 */ {"VGRD", "v wind [m/s]"}, + /* 35 */ {"STRM", "Stream function [m^2/s]"}, + /* 36 */ {"VPOT", "Velocity potential [m^2/s]"}, + /* 37 */ {"MNTSF", "Montgomery stream function [m^2/s^2]"}, + /* 38 */ {"SGCVV", "Sigma coord. vertical velocity [/s]"}, + /* 39 */ {"VVEL", "Pressure vertical velocity [Pa/s]"}, + /* 40 */ {"DZDT", "Geometric vertical velocity [m/s]"}, + /* 41 */ {"ABSV", "Absolute vorticity [/s]"}, + /* 42 */ {"ABSD", "Absolute divergence [/s]"}, + /* 43 */ {"RELV", "Relative vorticity [/s]"}, + /* 44 */ {"RELD", "Relative divergence [/s]"}, + /* 45 */ {"VUCSH", "Vertical u shear [/s]"}, + /* 46 */ {"VVCSH", "Vertical v shear [/s]"}, + /* 47 */ {"DIRC", "Direction of current [deg]"}, + /* 48 */ {"SPC", "Speed of current [m/s]"}, + /* 49 */ {"UOGRD", "u of current [m/s]"}, + /* 50 */ {"VOGRD", "v of current [m/s]"}, + /* 51 */ {"SPFH", "Specific humidity [kg/kg]"}, + /* 52 */ {"RH", "Relative humidity [%]"}, + /* 53 */ {"MIXR", "Humidity mixing ratio [kg/kg]"}, + /* 54 */ {"PWAT", "Precipitable water [kg/m^2]"}, + /* 55 */ {"VAPP", "Vapor pressure [Pa]"}, + /* 56 */ {"SATD", "Saturation deficit [Pa]"}, + /* 57 */ {"EVP", "Evaporation [kg/m^2]"}, + /* 58 */ {"CICE", "Cloud Ice [kg/m^2]"}, + /* 59 */ {"PRATE", "Precipitation rate [kg/m^2/s]"}, + /* 60 */ {"TSTM", "Thunderstorm probability [%]"}, + /* 61 */ {"APCP", "Total precipitation [kg/m^2]"}, + /* 62 */ {"NCPCP", "Large scale precipitation [kg/m^2]"}, + /* 63 */ {"ACPCP", "Convective precipitation [kg/m^2]"}, + /* 64 */ {"SRWEQ", "Snowfall rate water equiv. [kg/m^2/s]"}, + /* 65 */ {"WEASD", "Accum. snow [kg/m^2]"}, + /* 66 */ {"SNOD", "Snow depth [m]"}, + /* 67 */ {"MIXHT", "Mixed layer depth [m]"}, + /* 68 */ {"TTHDP", "Transient thermocline depth [m]"}, + /* 69 */ {"MTHD", "Main thermocline depth [m]"}, + /* 70 */ {"MTHA", "Main thermocline anomaly [m]"}, + /* 71 */ {"TCDC", "Total cloud cover [%]"}, + /* 72 */ {"CDCON", "Convective cloud cover [%]"}, + /* 73 */ {"LCDC", "Low level cloud cover [%]"}, + /* 74 */ {"MCDC", "Mid level cloud cover [%]"}, + /* 75 */ {"HCDC", "High level cloud cover [%]"}, + /* 76 */ {"CWAT", "Cloud water [kg/m^2]"}, + /* 77 */ {"BLI", "Best lifted index (to 500 hPa) [K]"}, + /* 78 */ {"SNOC", "Convective snow [kg/m^2]"}, + /* 79 */ {"SNOL", "Large scale snow [kg/m^2]"}, + /* 80 */ {"WTMP", "Water temp. [K]"}, + /* 81 */ {"LAND", "Land cover (land=1;sea=0) [fraction]"}, + /* 82 */ {"DSLM", "Deviation of sea level from mean [m]"}, + /* 83 */ {"SFCR", "Surface roughness [m]"}, + /* 84 */ {"ALBDO", "Albedo [%]"}, + /* 85 */ {"TSOIL", "Soil temp. [K]"}, + /* 86 */ {"SOILM", "Soil moisture content [kg/m^2]"}, + /* 87 */ {"VEG", "Vegetation [%]"}, + /* 88 */ {"SALTY", "Salinity [kg/kg]"}, + /* 89 */ {"DEN", "Density [kg/m^3]"}, + /* 90 */ {"WATR", "Water runoff [kg/m^2]"}, + /* 91 */ {"ICEC", "Ice concentration (ice=1;no ice=0) [fraction]"}, + /* 92 */ {"ICETK", "Ice thickness [m]"}, + /* 93 */ {"DICED", "Direction of ice drift [deg]"}, + /* 94 */ {"SICED", "Speed of ice drift [m/s]"}, + /* 95 */ {"UICE", "u of ice drift [m/s]"}, + /* 96 */ {"VICE", "v of ice drift [m/s]"}, + /* 97 */ {"ICEG", "Ice growth rate [m/s]"}, + /* 98 */ {"ICED", "Ice divergence [/s]"}, + /* 99 */ {"SNOM", "Snow melt [kg/m^2]"}, + /* 100 */ {"HTSGW", "Sig height of wind waves and swell [m]"}, + /* 101 */ {"WVDIR", "Direction of wind waves [deg]"}, + /* 102 */ {"WVHGT", "Sig height of wind waves [m]"}, + /* 103 */ {"WVPER", "Mean period of wind waves [s]"}, + /* 104 */ {"SWDIR", "Direction of swell waves [deg]"}, + /* 105 */ {"SWELL", "Sig height of swell waves [m]"}, + /* 106 */ {"SWPER", "Mean period of swell waves [s]"}, + /* 107 */ {"DIRPW", "Primary wave direction [deg]"}, + /* 108 */ {"PERPW", "Primary wave mean period [s]"}, + /* 109 */ {"DIRSW", "Secondary wave direction [deg]"}, + /* 110 */ {"PERSW", "Secondary wave mean period [s]"}, + /* 111 */ {"NSWRS", "Net short wave (surface) [W/m^2]"}, + /* 112 */ {"NLWRS", "Net long wave (surface) [W/m^2]"}, + /* 113 */ {"NSWRT", "Net short wave (top) [W/m^2]"}, + /* 114 */ {"NLWRT", "Net long wave (top) [W/m^2]"}, + /* 115 */ {"LWAVR", "Long wave [W/m^2]"}, + /* 116 */ {"SWAVR", "Short wave [W/m^2]"}, + /* 117 */ {"GRAD", "Global radiation [W/m^2]"}, + /* 118 */ {"BRTMP", "Brightness temperature [K]"}, + /* 119 */ {"LWRAD", "Radiance with respect to wave no. [W/m/sr]"}, + /* 120 */ {"SWRAD", "Radiance with respect ot wave len. [W/m^3/sr]"}, + /* 121 */ {"LHTFL", "Latent heat flux [W/m^2]"}, + /* 122 */ {"SHTFL", "Sensible heat flux [W/m^2]"}, + /* 123 */ {"BLYDP", "Boundary layer dissipation [W/m^2]"}, + /* 124 */ {"UFLX", "Zonal momentum flux [N/m^2]"}, + /* 125 */ {"VFLX", "Meridional momentum flux [N/m^2]"}, + /* 126 */ {"WMIXE", "Wind mixing energy [J]"}, + /* 127 */ {"IMGD", "Image data []"}, + /* 128 */ {"EXTNC", "Aerosol Extinction Coefficient [1/km]"}, + /* 129 */ {"AOD", "Aerosol Optical Depth [-]"}, + /* 130 */ {"ASFTR", "Aerosol Asymmetry Factor [-]"}, + /* 131 */ {"SSALBD", "Aerosol Single Scatter Albedo [-]"}, + /* 132 */ {"BSCTRS", "Aerosol Back Scattering [1/km/sr]"}, + /* 133 */ {"var133", "undefined"}, + /* 134 */ {"var134", "undefined"}, + /* 135 */ {"var135", "undefined"}, + /* 136 */ {"var136", "undefined"}, + /* 137 */ {"var137", "undefined"}, + /* 138 */ {"var138", "undefined"}, + /* 139 */ {"var139", "undefined"}, + /* 140 */ {"NOy", "Total Inorganic and Organic Nitrates [ppbV]"}, + /* 141 */ {"NO", "Nitrogen Oxide [ppbV]"}, + /* 142 */ {"NO2", "Nitrogen Dioxide [ppbV]"}, + /* 143 */ {"N2O5", "Nitrogen Pentoxide [ppbV]"}, + /* 144 */ {"HNO3", "Nitric Acid [ppbV]"}, + /* 145 */ {"NO3", "Nitrogen Trioxide [ppbV]"}, + /* 146 */ {"PNA", "Peroxynitric Acid [ppbV]"}, + /* 147 */ {"HONO", "Nitrous Acid [ppbV]"}, + /* 148 */ {"CO", "Carbon Monoxide [ppbV]"}, + /* 149 */ {"NH3", "Ammonia [ppbV]"}, + /* 150 */ {"HCL", "Hydrogen Chloride [ppbV]"}, + /* 151 */ {"var151", "undefined"}, + /* 152 */ {"var152", "undefined"}, + /* 153 */ {"var153", "undefined"}, + /* 154 */ {"var154", "undefined"}, + /* 155 */ {"var155", "undefined"}, + /* 156 */ {"var156", "undefined"}, + /* 157 */ {"var157", "undefined"}, + /* 158 */ {"var158", "undefined"}, + /* 159 */ {"PAR", "Lumped Single-Bond Carbon Specie [ppbV]"}, + /* 160 */ {"ETHE", "Ethene [ppbV]"}, + /* 161 */ {"OLE", "Lumped Double-Bond Carbon Species Less Ethene [ppbV]"}, + /* 162 */ {"TOL", "Toluene [ppbV]"}, + /* 163 */ {"XYL", "Xylene [ppbV]"}, + /* 164 */ {"ISOP", "Isoprene [ppbV]"}, + /* 165 */ {"var165", "undefined"}, + /* 166 */ {"FORM", "Formaldehyde [ppbV]"}, + /* 167 */ {"ALD2", "Acetaldehyde & Higher Aldehydes [ppbV]"}, + /* 168 */ {"MGLY", "Methyl Glyoxal [ppbV]"}, + /* 169 */ {"CRES", "Cresol and Higher Molecular Weight Phenols [ppbV]"}, + /* 170 */ {"var170", "undefined"}, + /* 171 */ {"var171", "undefined"}, + /* 172 */ {"PAN", "Peroxyacyl Nitrate [ppbV]"}, + /* 173 */ {"NTR", "Lumped Gaseous Organic Nitrate [ppbV]"}, + /* 174 */ {"var174", "undefined"}, + /* 175 */ {"var175", "undefined"}, + /* 176 */ {"var176", "undefined"}, + /* 177 */ {"ROOH", "Esters [ppbV]"}, + /* 178 */ {"ETHOH", "Ethanol [ppbV]"}, + /* 179 */ {"METHOH", "Methanol [ppbV]"}, + /* 180 */ {"var180", "undefined"}, + /* 181 */ {"var181", "undefined"}, + /* 182 */ {"var182", "undefined"}, + /* 183 */ {"var183", "undefined"}, + /* 184 */ {"var184", "undefined"}, + /* 185 */ {"var185", "undefined"}, + /* 186 */ {"H2O2", "Hydrogen Peroxide [ppbV]"}, + /* 187 */ {"OH", "Hydroxyl Radical [ppbV]"}, + /* 188 */ {"HO2", "Hydroperoxyl Radical [ppbV]"}, + /* 189 */ {"var189", "undefined"}, + /* 190 */ {"var190", "undefined"}, + /* 191 */ {"var191", "undefined"}, + /* 192 */ {"var192", "undefined"}, + /* 193 */ {"var193", "undefined"}, + /* 194 */ {"var194", "undefined"}, + /* 195 */ {"var195", "undefined"}, + /* 196 */ {"var196", "undefined"}, + /* 197 */ {"var197", "undefined"}, + /* 198 */ {"var198", "undefined"}, + /* 199 */ {"var199", "undefined"}, + /* 200 */ {"ASO4", "Sulfate (SO4) Particulates ≤ 2.5 μm Diameter [μg/m^3]"}, + /* 201 */ {"ANH4", "Ammonia (NH4) Particulates ≤ 2.5 μm Diameter [μg/m^3]"}, + /* 202 */ {"ANO3", "Nitrate (NO3) Particulates ≤ 2.5 μm Diameter [μg/m^3]"}, + /* 203 */ {"AORGA", "Organic Particulates ≤ 2.5 μm Diameter [μg/m^3]"}, + /* 204 */ {"AORGPA", "Primarily Organic Particulates ≤ 2.5 μm Diameter [μg/m^3]"}, + /* 205 */ {"AORGB", "Biogenically Originated Particulates ≤ 2.5 μm Diameter [μg/m^3]"}, + /* 206 */ {"AEC", "Elemental Carbon Particulates ≤ 2.5 μm Diameter [μg/m^3]"}, + /* 207 */ {"A25", "Unspecified Anthropogenic Particulates ≤ 2.5 μm Diameter [μg/m^3]"}, + /* 208 */ {"AH2O", "Water Particulates ≤ 2.5 μm Diameter [μg/m^3]"}, + /* 209 */ {"ANA", "Sodium Particulates ≤ 2.5 μm Diameter [μg/m^3]"}, + /* 210 */ {"ACL", "Chloride Particulates ≤ 2.5 μm Diameter [μg/m^3]"}, + /* 211 */ {"var211", "undefined"}, + /* 212 */ {"var212", "undefined"}, + /* 213 */ {"var213", "undefined"}, + /* 214 */ {"var214", "undefined"}, + /* 215 */ {"var215", "undefined"}, + /* 216 */ {"ASO4K", "Sulfate (SO4) Particulates between 2.5 and 10 μm Diameter [μg/m^3]"}, + /* 217 */ {"ANAK", "Sodium (NA) Particulates between 2.5 and 10 μm Diameter [μg/m^3]"}, + /* 218 */ {"ACLK", "Chloride (CL) Particulates between 2.5 and 10 μm Diameter [μg/m^3]"}, + /* 219 */ {"ASEAS", "Sea Salt Originated Particulates between 2.5 and 10 μm Diameter [μg/m^3]"}, + /* 220 */ {"ASOIL", "Crustal Material Orginated Particulates between 2.5 and 10 μm Diameter [μg/m^3]"}, + /* 221 */ {"ACORS", "Particulates between 2.5 and 10 μm Diameter [μg/m^3]"}, + /* 222 */ {"NUMATKN", "Number Concentration Particulates between 2.5 and 0.1 μm Diameter [number/m^3]"}, + /* 223 */ {"NUMACC", "Number Concentration Particulates between 2.5 and 2.5 μm Diameter [number/m^3]"}, + /* 224 */ {"NUMCOR", "Number Concentration Particulates between 2.5 and 10 μm Diameter [number/m^3]"}, + /* 225 */ {"var225", "undefined"}, + /* 226 */ {"var226", "undefined"}, + /* 227 */ {"var227", "undefined"}, + /* 228 */ {"SRFATKN", "Surface Area Contributed by Particulates ≤ 0.1 μm Diameter [m2/m^3]"}, + /* 229 */ {"SRFACC", "Surface Area Contributed by Particulates between 0.1 and 2.5 μm Diameter [m2/m^3]"}, + /* 230 */ {"var230", "undefined"}, + /* 231 */ {"var231", "undefined"}, + /* 232 */ {"SO2", "Sulfur Dioxide [ppbV]"}, + /* 233 */ {"MSA", "Methanesulfonic Acid [Kg/Kg]"}, + /* 234 */ {"TSO4", "Total Sulfate Particulates (Fine ands Coarse) [μg/m^3]"}, + /* 235 */ {"DMS", "Dimethylsulfide [Kg/Kg]"}, + /* 236 */ {"var236", "undefined"}, + /* 237 */ {"var237", "undefined"}, + /* 238 */ {"var238", "undefined"}, + /* 239 */ {"var239", "undefined"}, + /* 240 */ {"DU1", "Dust Particulates between 0.2 - 2.0 μm Diameter [Kg/Kg]"}, + /* 241 */ {"DU2", "Dust Particulates between 2.0 - 3.6 μm Diameter [Kg/Kg]"}, + /* 242 */ {"DU3", "Dust Particulates between 3.6 - 6.0 μm Diameter [Kg/Kg]"}, + /* 243 */ {"DU4", "Dust Particulates between 6.0 - 12.0 μm Diameter [Kg/Kg]"}, + /* 244 */ {"DU5", "Dust Particulates between 12.0 - 20.0 μm Diameter [Kg/Kg]"}, + /* 245 */ {"SS1", "Sea Salt Particulates between 0.2 - 1.0 μm Diameter [Kg/Kg]"}, + /* 246 */ {"SS2", "Sea Salt Particulates between 1.0 - 3.0 μm Diameter [Kg/Kg]"}, + /* 247 */ {"SS3", "Sea Salt Particulates between 3.0 - 10.0 μm Diameter [Kg/Kg]"}, + /* 248 */ {"SS4", "Sea Salt Particulates between 10.0 - 20.0 μm Diameter [Kg/Kg]"}, + /* 249 */ {"OCDRY", "Hydrophobic Organic Carbon [Kg/Kg]"}, + /* 250 */ {"OCWET", "Hydrophilic Organic Carbon [Kg/Kg]"}, + /* 251 */ {"BCDRY", "Hydrophobic Black Carbon [Kg/Kg]"}, + /* 252 */ {"BCWET", "Hydrophilic Black Carbon [Kg/Kg]"}, + /* 253 */ {"var253", "undefined"}, + /* 254 */ {"var254", "undefined"}, + /* 255 */ {"var255", "undefined"}, +}; + +const struct ParmTable parm_table_mdl_nceptab[256] = { + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"PRES", "Pressure [Pa]"}, + /* 2 */ {"PRMSL", "Pressure reduced to MSL [Pa]"}, + /* 3 */ {"PTEND", "Pressure tendency [Pa/s]"}, + /* 4 */ {"PVORT", "Pot. vorticity [km^2/kg/s]"}, + /* 5 */ {"ICAHT", "ICAO Standard Atmosphere Reference Height [M]"}, + /* 6 */ {"GP", "Geopotential [m^2/s^2]"}, + /* 7 */ {"HGT", "Geopotential height [gpm]"}, + /* 8 */ {"DIST", "Geometric height [m]"}, + /* 9 */ {"HSTDV", "Std dev of height [m]"}, + /* 10 */ {"TOZNE", "Total ozone [Dobson]"}, + /* 11 */ {"TMP", "Temp. [K]"}, + /* 12 */ {"VTMP", "Virtual temp. [K]"}, + /* 13 */ {"POT", "Potential temp. [K]"}, + /* 14 */ {"EPOT", "Pseudo-adiabatic pot. temp. [K]"}, + /* 15 */ {"TMAX", "Max. temp. [K]"}, + /* 16 */ {"TMIN", "Min. temp. [K]"}, + /* 17 */ {"DPT", "Dew point temp. [K]"}, + /* 18 */ {"DEPR", "Dew point depression [K]"}, + /* 19 */ {"LAPR", "Lapse rate [K/m]"}, + /* 20 */ {"VIS", "Visibility [m]"}, + /* 21 */ {"RDSP1", "Radar spectra (1) [non-dim]"}, + /* 22 */ {"RDSP2", "Radar spectra (2) [non-dim]"}, + /* 23 */ {"RDSP3", "Radar spectra (3) [non-dim]"}, + /* 24 */ {"PLI", "Parcel lifted index (to 500 hPa) [K]"}, + /* 25 */ {"TMPA", "Temp. anomaly [K]"}, + /* 26 */ {"PRESA", "Pressure anomaly [Pa]"}, + /* 27 */ {"GPA", "Geopotential height anomaly [gpm]"}, + /* 28 */ {"WVSP1", "Wave spectra (1) [non-dim]"}, + /* 29 */ {"WVSP2", "Wave spectra (2) [non-dim]"}, + /* 30 */ {"WVSP3", "Wave spectra (3) [non-dim]"}, + /* 31 */ {"WDIR", "Wind direction [deg]"}, + /* 32 */ {"WIND", "Wind speed [m/s]"}, + /* 33 */ {"UGRD", "u wind [m/s]"}, + /* 34 */ {"VGRD", "v wind [m/s]"}, + /* 35 */ {"STRM", "Stream function [m^2/s]"}, + /* 36 */ {"VPOT", "Velocity potential [m^2/s]"}, + /* 37 */ {"MNTSF", "Montgomery stream function [m^2/s^2]"}, + /* 38 */ {"SGCVV", "Sigma coord. vertical velocity [/s]"}, + /* 39 */ {"VVEL", "Pressure vertical velocity [Pa/s]"}, + /* 40 */ {"DZDT", "Geometric vertical velocity [m/s]"}, + /* 41 */ {"ABSV", "Absolute vorticity [/s]"}, + /* 42 */ {"ABSD", "Absolute divergence [/s]"}, + /* 43 */ {"RELV", "Relative vorticity [/s]"}, + /* 44 */ {"RELD", "Relative divergence [/s]"}, + /* 45 */ {"VUCSH", "Vertical u shear [/s]"}, + /* 46 */ {"VVCSH", "Vertical v shear [/s]"}, + /* 47 */ {"DIRC", "Direction of current [deg]"}, + /* 48 */ {"SPC", "Speed of current [m/s]"}, + /* 49 */ {"UOGRD", "u of current [m/s]"}, + /* 50 */ {"VOGRD", "v of current [m/s]"}, + /* 51 */ {"SPFH", "Specific humidity [kg/kg]"}, + /* 52 */ {"RH", "Relative humidity [%]"}, + /* 53 */ {"MIXR", "Humidity mixing ratio [kg/kg]"}, + /* 54 */ {"PWAT", "Precipitable water [kg/m^2]"}, + /* 55 */ {"VAPP", "Vapor pressure [Pa]"}, + /* 56 */ {"SATD", "Saturation deficit [Pa]"}, + /* 57 */ {"EVP", "Evaporation [kg/m^2]"}, + /* 58 */ {"CICE", "Cloud Ice [kg/m^2]"}, + /* 59 */ {"PRATE", "Precipitation rate [kg/m^2/s]"}, + /* 60 */ {"TSTM", "Thunderstorm probability [%]"}, + /* 61 */ {"APCP", "Total precipitation [kg/m^2]"}, + /* 62 */ {"NCPCP", "Large scale precipitation [kg/m^2]"}, + /* 63 */ {"ACPCP", "Convective precipitation [kg/m^2]"}, + /* 64 */ {"SRWEQ", "Snowfall rate water equiv. [kg/m^2/s]"}, + /* 65 */ {"WEASD", "Accum. snow [kg/m^2]"}, + /* 66 */ {"SNOD", "Snow depth [m]"}, + /* 67 */ {"MIXHT", "Mixed layer depth [m]"}, + /* 68 */ {"TTHDP", "Transient thermocline depth [m]"}, + /* 69 */ {"MTHD", "Main thermocline depth [m]"}, + /* 70 */ {"MTHA", "Main thermocline anomaly [m]"}, + /* 71 */ {"TCDC", "Total cloud cover [%]"}, + /* 72 */ {"CDCON", "Convective cloud cover [%]"}, + /* 73 */ {"LCDC", "Low level cloud cover [%]"}, + /* 74 */ {"MCDC", "Mid level cloud cover [%]"}, + /* 75 */ {"HCDC", "High level cloud cover [%]"}, + /* 76 */ {"CWAT", "Cloud water [kg/m^2]"}, + /* 77 */ {"BLI", "Best lifted index (to 500 hPa) [K]"}, + /* 78 */ {"SNOC", "Convective snow [kg/m^2]"}, + /* 79 */ {"SNOL", "Large scale snow [kg/m^2]"}, + /* 80 */ {"WTMP", "Water temp. [K]"}, + /* 81 */ {"LAND", "Land cover (land=1;sea=0) [fraction]"}, + /* 82 */ {"DSLM", "Deviation of sea level from mean [m]"}, + /* 83 */ {"SFCR", "Surface roughness [m]"}, + /* 84 */ {"ALBDO", "Albedo [%]"}, + /* 85 */ {"TSOIL", "Soil temp. [K]"}, + /* 86 */ {"SOILM", "Soil moisture content [kg/m^2]"}, + /* 87 */ {"VEG", "Vegetation [%]"}, + /* 88 */ {"SALTY", "Salinity [kg/kg]"}, + /* 89 */ {"DEN", "Density [kg/m^3]"}, + /* 90 */ {"WATR", "Water runoff [kg/m^2]"}, + /* 91 */ {"ICEC", "Ice concentration (ice=1;no ice=0) [fraction]"}, + /* 92 */ {"ICETK", "Ice thickness [m]"}, + /* 93 */ {"DICED", "Direction of ice drift [deg]"}, + /* 94 */ {"SICED", "Speed of ice drift [m/s]"}, + /* 95 */ {"UICE", "u of ice drift [m/s]"}, + /* 96 */ {"VICE", "v of ice drift [m/s]"}, + /* 97 */ {"ICEG", "Ice growth rate [m/s]"}, + /* 98 */ {"ICED", "Ice divergence [/s]"}, + /* 99 */ {"SNOM", "Snow melt [kg/m^2]"}, + /* 100 */ {"HTSGW", "Sig height of wind waves and swell [m]"}, + /* 101 */ {"WVDIR", "Direction of wind waves [deg]"}, + /* 102 */ {"WVHGT", "Sig height of wind waves [m]"}, + /* 103 */ {"WVPER", "Mean period of wind waves [s]"}, + /* 104 */ {"SWDIR", "Direction of swell waves [deg]"}, + /* 105 */ {"SWELL", "Sig height of swell waves [m]"}, + /* 106 */ {"SWPER", "Mean period of swell waves [s]"}, + /* 107 */ {"DIRPW", "Primary wave direction [deg]"}, + /* 108 */ {"PERPW", "Primary wave mean period [s]"}, + /* 109 */ {"DIRSW", "Secondary wave direction [deg]"}, + /* 110 */ {"PERSW", "Secondary wave mean period [s]"}, + /* 111 */ {"NSWRS", "Net short wave (surface) [W/m^2]"}, + /* 112 */ {"NLWRS", "Net long wave (surface) [W/m^2]"}, + /* 113 */ {"NSWRT", "Net short wave (top) [W/m^2]"}, + /* 114 */ {"NLWRT", "Net long wave (top) [W/m^2]"}, + /* 115 */ {"LWAVR", "Long wave [W/m^2]"}, + /* 116 */ {"SWAVR", "Short wave [W/m^2]"}, + /* 117 */ {"GRAD", "Global radiation [W/m^2]"}, + /* 118 */ {"BRTMP", "Brightness temperature [K]"}, + /* 119 */ {"LWRAD", "Radiance with respect to wave no. [W/m/sr]"}, + /* 120 */ {"SWRAD", "Radiance with respect ot wave len. [W/m^3/sr]"}, + /* 121 */ {"LHTFL", "Latent heat flux [W/m^2]"}, + /* 122 */ {"SHTFL", "Sensible heat flux [W/m^2]"}, + /* 123 */ {"BLYDP", "Boundary layer dissipation [W/m^2]"}, + /* 124 */ {"UFLX", "Zonal momentum flux [N/m^2]"}, + /* 125 */ {"VFLX", "Meridional momentum flux [N/m^2]"}, + /* 126 */ {"WMIXE", "Wind mixing energy [J]"}, + /* 127 */ {"IMGD", "Image data []"}, + /* 128 */ {"TMPF", "TEMPERATURE (Fahrenheit) [F]"}, + /* 129 */ {"MAXK", "DAYTIME MAX TEMP (MAX) (Kelvin) [K]"}, + /* 130 */ {"MAXF", "DAYTIME MAX TEMP (MAX) (deg F) [F]"}, + /* 131 */ {"NMAXK", "NORMAL MAX TEMPERATURE (Kelvin) [K]"}, + /* 132 */ {"NMAXF", "NORMAL MAX TEMPERATURE (deg F) [F]"}, + /* 133 */ {"DMAXK", "DEPARTURE FROM NORMAL MAX (K) [K]"}, + /* 134 */ {"DMAXF", "DEPARTURE FROM NORMAL MAX (deg F) [F]"}, + /* 135 */ {"MINK", "NIGHTTIME MIN TEMP (MIN) (Kelvin) [K]"}, + /* 136 */ {"MINF", "NIGHTTIME MIN TEMP (MIN) (deg F) [F]"}, + /* 137 */ {"NMINK", "NORMAL MIN TEMPERATURE (Kelvin) [K]"}, + /* 138 */ {"NMINF", "NORMAL NIGHTTIME MIN TEMP (deg F) [F]"}, + /* 139 */ {"DMINK", "DEPARTURE FROM NORMAL MIN (K) [K]"}, + /* 140 */ {"DMINF", "DEPARTURE FROM NORMAL MIN (deg F) [F]"}, + /* 141 */ {"DWPF", "DEW POINT TEMPERATURE (deg F) [F]"}, + /* 142 */ {"DPDF", "DEW POINT DEPRESSION (deg F) [F]"}, + /* 143 */ {"HTINF", "HEAT INDEX (deg F) [F]"}, + /* 144 */ {"WNCHF", "WIND CHILL (deg F) [F]"}, + /* 145 */ {"var145", "undefined"}, + /* 146 */ {"POP", "PROB OF 0.01 IN. OF PRECIP (PoP) [%]"}, + /* 147 */ {"PQPF2", "PROB OF QPF >= 0.10 INCHES [%]"}, + /* 148 */ {"PQPF3", "PROB OF QPF >= 0.25 INCHES [%]"}, + /* 149 */ {"PQPF4", "PROB OF QPF >= 0.50 INCHES [%]"}, + /* 150 */ {"PQPF5", "PROB OF QPF >= 1.00 INCHES [%]"}, + /* 151 */ {"PQPF6", "PROB OF QPF >= 2.00 INCHES [%]"}, + /* 152 */ {"PQPF7", "PROB OF QPF >= 3.00 INCHES FUTURE [%]"}, + /* 153 */ {"BQPF", "BEST CATEGORY OF QPF [num]"}, + /* 154 */ {"NPOP", "NML REL. FREQ. OF 0.01 IN OF PCP [%]"}, + /* 155 */ {"DPOP", "DEPARTURE FROM NML OF 0.01 POP [%]"}, + /* 156 */ {"PCPM", "EXPECTED VALUE OF PRECIPITATION [mm]"}, + /* 157 */ {"PCPI", "EXPECTED VALUE OF PRECIPITATION [in]"}, + /* 158 */ {"CPCPM", "CONDITIONAL EXPECTED PRECIP AMT [mm]"}, + /* 159 */ {"CPCPI", "CONDITIONAL EXPECTED PRECIP AMT [in]"}, + /* 160 */ {"PSNA1", "PROB OF SNOW AMOUNT >= 0.10 [%]"}, + /* 161 */ {"PSNA2", "PROB OF SNOW AMOUNT >= 2 INCHES [%]"}, + /* 162 */ {"PSNA3", "PROB OF SNOW AMOUNT >= 4 INCHES [%]"}, + /* 163 */ {"PSNA4", "PROB OF SNOW AMOUNT >= 6 INCHES [%]"}, + /* 164 */ {"PSNA5", "PROB OF SNOW AMOUNT >= 8 INCHES [%]"}, + /* 165 */ {"BSNA", "BEST CATEGORY FOR SNOW AMOUNT [num]"}, + /* 166 */ {"SNWM", "EXPECTED VALUE OF SNOW AMOUNT [mm]"}, + /* 167 */ {"SNWI", "EXPECTED VALUE OF SNOW AMOUNT [in]"}, + /* 168 */ {"MWSPK", "INFLATED MAX WIND SPEED (knots) [kts]"}, + /* 169 */ {"IWSPM", "INFLATED WIND SPEED (meter/sec) [m/s]"}, + /* 170 */ {"SKNT", "INFLATED WIND SPEED (knots) [kts]"}, + /* 171 */ {"PWSP1", "PROB OF MAX WIND SPEED 0-12 kts [%]"}, + /* 172 */ {"PWSP2", "PROB OF MAX WIND SPEED 13-21 kts [%]"}, + /* 173 */ {"PWSP3", "PROB OF MAX WIND SPEED 22-31 kts [%]"}, + /* 174 */ {"PWSP4", "PROB OF MAX WIND SPEED >=32 kts [%]"}, + /* 175 */ {"WSPDC", "CATEGORICAL MAX WIND SPEED [num]"}, + /* 176 */ {"XSPDM", "EXPECTED VALUE OF MAX WIND SPEED [m/s]"}, + /* 177 */ {"XSPDK", "EXPECTED VALUE OF MAX WIND SPEED [kts]"}, + /* 178 */ {"PWDRN", "PROB OF WIND DIRECTION NORTH [%]"}, + /* 179 */ {"PWDRNE", "PROB OF WIND DIRECTION NORTHEAST [%]"}, + /* 180 */ {"PWDRE", "PROB OF WIND DIRECTION EAST [%]"}, + /* 181 */ {"PWDRSE", "PROB OF WIND DIRECTION SOUTHEAST [%]"}, + /* 182 */ {"PWDRS", "PROB OF WIND DIRECTION SOUTH [%]"}, + /* 183 */ {"PWDRSW", "PROB OF WIND DIRECTION SOUTHWEST [%]"}, + /* 184 */ {"PWDRW", "PROB OF WIND DIRECTION WEST [%]"}, + /* 185 */ {"PWDRNW", "PROB OF WIND DIRECTION NORTHWEST [%]"}, + /* 186 */ {"WDIRC", "CATEGORICAL WIND DIRECTION [num]"}, + /* 187 */ {"var187", "undefined"}, + /* 188 */ {"PSKCL", "PROB OF TOTAL SKY"}, + /* 189 */ {"PSKFW", "PROB OF TOTAL SKY"}, + /* 190 */ {"PSKSC", "PROB OF TOTAL SKY"}, + /* 191 */ {"PSKBK", "PROB OF TOTAL SKY"}, + /* 192 */ {"PSKOV", "PROB OF TOTAL SKY"}, + /* 193 */ {"SKYC", "CATEGORICAL TOTAL SKY COVER [num]"}, + /* 194 */ {"MSKCL", "PROB MEAN SKY CVR"}, + /* 195 */ {"MSKOV", "PROB MEAN SKY CVR"}, + /* 196 */ {"MSKMC", "PROB MEAN SKY CVR"}, + /* 197 */ {"MSKPC", "PROB MEAN SKY CVR"}, + /* 198 */ {"MSKMO", "PROB MEAN SKY CVR"}, + /* 199 */ {"MSKYC", "CATEGORICAL MEAN SKY COVER [num]"}, + /* 200 */ {"PCIG1", "PROB OF CIG HGT < 200 FT [%]"}, + /* 201 */ {"PCIG2", "PROB OF CIG HGT 200-400 FT [%]"}, + /* 202 */ {"PCIG3", "PROB OF CIG HGT 500-900 FT [%]"}, + /* 203 */ {"PCIG4", "PROB OF CIG HGT 1000-3000 FT [%]"}, + /* 204 */ {"PCIG5", "PROB OF CIG HGT 3100-6500 FT [%]"}, + /* 205 */ {"PCIG6", "PROB OF CIG HGT 6600-12000 FT [%]"}, + /* 206 */ {"PCIG7", "PROB OF CIG HGT > 12000 FT [%]"}, + /* 207 */ {"BCIG", "BEST CATEGORY OF CEILING HEIGHT [num]"}, + /* 208 */ {"PVIS1", "PROB OF VIS <=1/4 MILE [%]"}, + /* 209 */ {"PVIS2", "PROB OF VIS <=1/2 MILE [%]"}, + /* 210 */ {"PVIS3", "PROB OF VIS <=7/8 MILE [%]"}, + /* 211 */ {"PVIS4", "PROB OF VIS <=2 3/4 MILES [%]"}, + /* 212 */ {"PVIS5", "PROB OF VIS <=5 MILES [%]"}, + /* 213 */ {"PVIS6", "PROB OF VIS <=6 MILES [%]"}, + /* 214 */ {"VISC", "CATEGORICAL VISIBILITY [num]"}, + /* 215 */ {"POBVN", "PROB OF OBSTRUCTION TO VIS"}, + /* 216 */ {"POBVH", "PROB OF OBSTRUCTION TO VIS"}, + /* 217 */ {"POBVM", "PROB OF OBSTRUCTION TO VIS"}, + /* 218 */ {"POBVF", "PROB OF OBSTRUCTION TO VIS"}, + /* 219 */ {"POVBL", "PROB OF BLOWING OBVIS [%]"}, + /* 220 */ {"OBVC", "BEST CATEGORY OF OBVIS [num]"}, + /* 221 */ {"var221", "undefined"}, + /* 222 */ {"NTSM", "NORMAL PROB OF THUNDERSTORMS [%]"}, + /* 223 */ {"CSVR", "COND PROB OF SEVERE WEATHER [%]"}, + /* 224 */ {"USVR", "UNCOND PROB OF SEVERE WX [%]"}, + /* 225 */ {"NSVR", "NORMAL PROB OF SEVERE WX [%]"}, + /* 226 */ {"UHAI", "UNCONDITIONAL PROB OF HAIL [%]"}, + /* 227 */ {"UTOR", "UNCONDITIONAL PROB OF TORNADO [%]"}, + /* 228 */ {"UTSW", "UNCOND PROB OF DAMAGING WIND [%]"}, + /* 229 */ {"CFZI", "COND PROB FRZING PRECIP (INSTANT) [%]"}, + /* 230 */ {"UFZI", "UNCND PROB FRZING PRECIP (INSTNT) [%]"}, + /* 231 */ {"CZNI", "COND PROB FROZEN PRECIP (INSTANT) [%]"}, + /* 232 */ {"UZNI", "UNCND PROB FROZEN PRECIP (INSTNT) [%]"}, + /* 233 */ {"CLQI", "COND PROB LIQUID PRECIP (INSTANT) [%]"}, + /* 234 */ {"ULQI", "UNCND PROB LIQUID PRECIP (INSTNT) [%]"}, + /* 235 */ {"PTYPI", "CATEGORICAL PRECIP TYPE (INSTANT) [num]"}, + /* 236 */ {"CPOZP", "COND PROB OF FRZING PRECIP [%]"}, + /* 237 */ {"UPOZP", "UNCOND PROB OF FRZING PRECIP [%]"}, + /* 238 */ {"CPOS", "COND PROB OF SNOW (CPoS) [%]"}, + /* 239 */ {"UPOS", "UNCOND PROB OF SNOW (CPoS) [%]"}, + /* 240 */ {"CPORS", "COND PROB OF RAIN/SNOW MIXED [%]"}, + /* 241 */ {"UPORS", "UNCOND PROB OF RAIN/SNOW MIXED [%]"}, + /* 242 */ {"CPORA", "COND PROB OF RAIN [%]"}, + /* 243 */ {"var243", "undefined"}, + /* 244 */ {"BPCPT", "BEST CATEGORY OF PRECIP TYPE [num]"}, + /* 245 */ {"POPOH", "POPO PRECIP OCCURRING AT AN HOUR [%]"}, + /* 246 */ {"POPOP", "POPO PRECIP DURING A PERIOD [%]"}, + /* 247 */ {"CPDRZ", "COND PROB OF DRIZZLE [%]"}, + /* 248 */ {"CPSTY", "COND PROB OF CONT (STEADY) PRECIP [%]"}, + /* 249 */ {"CPSHW", "COND PROB OF SHOWERS [%]"}, + /* 250 */ {"BPCHR", "BEST CAT PRECIP CHARACTERISTIC [num]"}, + /* 251 */ {"SUNSH", "PERCENT OF POSSIBLE SUNSHINE [%]"}, + /* 252 */ {"HRSUN", "HOURS OF SUNSHINE [hrs]"}, + /* 253 */ {"SCQP", "SCAN 0-3H CATEGORICAL QPF [num]"}, + /* 254 */ {"SCTS", "SCAN 0-3H C-G LIGHTNING PROB [%]"}, + /* 255 */ {"var255", "undefined"}, }; /* - * EC_ext v1.0 wesley ebisuzaki + * EC_ext v1.0 wesley ebisuzaki * * prints something readable from the EC stream parameter * @@ -10828,81 +10827,84 @@ void EC_ext(unsigned char *pds, char *prefix, char *suffix, int verbose) { if (verbose == 2) printf("%sECext=%d%s", prefix, local_id, suffix); if (verbose == 2) { - switch(ec_class) { - case 1: strcpy(string, "operations"); break; - case 2: strcpy(string, "research"); break; - case 3: strcpy(string, "ERA-15"); break; - case 4: strcpy(string, "Euro clim support network"); break; - case 5: strcpy(string, "ERA-40"); break; - case 6: strcpy(string, "DEMETER"); break; - case 7: strcpy(string, "PROVOST"); break; - case 8: strcpy(string, "ELDAS"); break; - default: sprintf(string, "%d", ec_class); break; - } + switch(ec_class) { + case 1: strcpy(string, "operations"); break; + case 2: strcpy(string, "research"); break; + case 3: strcpy(string, "ERA-15"); break; + case 4: strcpy(string, "Euro clim support network"); break; + case 5: strcpy(string, "ERA-40"); break; + case 6: strcpy(string, "DEMETER"); break; + case 7: strcpy(string, "PROVOST"); break; + case 8: strcpy(string, "ELDAS"); break; + default: sprintf(string, "%d", ec_class); break; + } printf("%sclass=%s%s",prefix,string,suffix); } /* - 10/03/2000: R.Rudsar : subroutine changed. - Tests for EcType and extra test for EcStream 1035 + 10/03/2000: R.Rudsar : subroutine changed. + Tests for EcType and extra test for EcStream 1035 */ /* if (verbose == 2) { */ - switch(ec_type) { - case 1: strcpy(string, "first guess"); break; - case 2: strcpy(string, "analysis"); break; - case 3: strcpy(string, "init analysis"); break; - case 4: strcpy(string, "OI analysis"); break; - /* case 10: strcpy(string, "Control forecast"); break; */ - case 10: sprintf(string, "Control forecast %d",PDS_EcFcstNo(pds)); - break; - case 11: - if (ec_stream == 1035 || ec_stream == 1033) - sprintf(string, "Perturbed forecast %d", - PDS_EcFcstNo(pds)); - else - strcpy(string, "Perturbed forecasts"); break; - break; - case 14: strcpy(string, "Cluster means"); break; - case 15: strcpy(string, "Cluster std. dev."); break; - case 16: strcpy(string, "Forecast probability"); break; - case 17: strcpy(string, "Ensemble means"); break; - case 18: strcpy(string, "Ensemble std. dev."); break; - case 20: strcpy(string, "Climatology"); break; - case 21: strcpy(string, "Climatology simulation"); break; - case 80: strcpy(string, "Fcst seasonal mean"); break; - default: sprintf(string, "%d", ec_type); break; - } - printf("%stype=%s%s",prefix,string,suffix); + switch(ec_type) { + case 1: strcpy(string, "first guess"); break; + case 2: strcpy(string, "analysis"); break; + case 3: strcpy(string, "init analysis"); break; + case 4: strcpy(string, "OI analysis"); break; + /* case 10: strcpy(string, "Control forecast"); break; */ + case 10: sprintf(string, "Control forecast %d",PDS_EcFcstNo(pds)); + break; + case 11: + /* 5/23/2023 added ec_stream == 1122, thanks S. Villaume (ECMWF) **/ + /* 6/2023 added ec_stream 1120 */ + /* 9/2023 added ec_stream 1081 */ + if (ec_stream == 1035 || ec_stream == 1033 || ec_stream == 1122 || ec_stream == 1120 || ec_stream == 1081) + sprintf(string, "Perturbed forecast %d", + PDS_EcFcstNo(pds)); + else + strcpy(string, "Perturbed forecasts"); break; + break; + case 14: strcpy(string, "Cluster means"); break; + case 15: strcpy(string, "Cluster std. dev."); break; + case 16: strcpy(string, "Forecast probability"); break; + case 17: strcpy(string, "Ensemble means"); break; + case 18: strcpy(string, "Ensemble std. dev."); break; + case 20: strcpy(string, "Climatology"); break; + case 21: strcpy(string, "Climatology simulation"); break; + case 80: strcpy(string, "Fcst seasonal mean"); break; + default: sprintf(string, "%d", ec_type); break; + } + printf("%stype=%s%s",prefix,string,suffix); /* } */ if (verbose == 2) { switch(ec_stream) { - case 1033: strcpy(string, "ensemble hindcasts"); break; - case 1035: strcpy(string, "ensemble forecasts"); break; - case 1043: strcpy(string, "mon mean"); break; - case 1070: strcpy(string, "mon (co)var"); break; - case 1071: strcpy(string, "mon mean from daily"); break; - case 1090: strcpy(string, "EC ensemble fcsts"); break; - case 1091: strcpy(string, "EC seasonal fcst mon means"); break; - default: sprintf(string, "%d", ec_stream); break; + case 1033: strcpy(string, "ensemble hindcasts"); break; + case 1035: strcpy(string, "ensemble forecasts"); break; + case 1043: strcpy(string, "mon mean"); break; + case 1070: strcpy(string, "mon (co)var"); break; + case 1071: strcpy(string, "mon mean from daily"); break; + case 1090: strcpy(string, "EC ensemble fcsts"); break; + case 1091: strcpy(string, "EC seasonal fcst mon means"); break; + default: sprintf(string, "%d", ec_stream); break; } printf("%sstream=%s%s",prefix,string,suffix); } if (verbose == 2) { printf("%sVersion=%c%c%c%c%s", prefix, *(PDS_Ec16Version(pds)), *(PDS_Ec16Version(pds)+1), - *(PDS_Ec16Version(pds)+2), *(PDS_Ec16Version(pds)+3), suffix); + *(PDS_Ec16Version(pds)+2), *(PDS_Ec16Version(pds)+3), suffix); if (local_id == 16) { - printf("%sSysVersion=%d%s", prefix, PDS_Ec16SysNum(pds), suffix); - printf("%sAvgPeriod=%d%s", prefix, PDS_Ec16AvePeriod(pds), suffix); - printf("%sFcstMon=%d%s", prefix, PDS_Ec16FcstMon(pds), suffix); + printf("%sSysVersion=%d%s", prefix, PDS_Ec16SysNum(pds), suffix); + printf("%sAvgPeriod=%d%s", prefix, PDS_Ec16AvePeriod(pds), suffix); + printf("%sFcstMon=%d%s", prefix, PDS_Ec16FcstMon(pds), suffix); } } - if (local_id == 16) { - printf("%sEnsem_mem=%d%s", prefix, PDS_Ec16Number(pds), suffix); - printf("%sVerfDate=%d%s", prefix, PDS_Ec16VerfMon(pds), suffix); - } + if (local_id == 16) { + printf("%sEnsem_mem=%d%s", prefix, PDS_Ec16Number(pds), suffix); + printf("%sVerfDate=%d%s", prefix, PDS_Ec16VerfMon(pds), suffix); + } } @@ -10910,13 +10912,13 @@ void EC_ext(unsigned char *pds, char *prefix, char *suffix, int verbose) { * get grid size from GDS * * added calculation of nxny of spectral data and clean up of triangular - * grid nnxny calculation l. kornblueh + * grid nnxny calculation l. kornblueh * 7/25/03 wind fix Dusan Jovic * 9/17/03 fix scan mode */ extern int ec_large_grib, len_ec_bds; -int GDS_grid(unsigned char *gds, unsigned char *bds, int *nx, int *ny, +int GDS_grid(unsigned char *gds, unsigned char *bds, int *nx, int *ny, long int *nxny) { int i, d, ix, iy, pl; @@ -10929,39 +10931,39 @@ int GDS_grid(unsigned char *gds, unsigned char *bds, int *nx, int *ny, /* thin grid */ if (GDS_Gaussian(gds) || GDS_LatLon(gds)) { - if (ix == 65535) { - *nx = -1; - /* reduced grid */ - isum = 0; - pl = GDS_PL(gds); - for (i = 0; i < iy; i++) { - isum += gds[pl+i*2]*256 + gds[pl+i*2+1]; - } - *nxny = isum; - } - return 0; + if (ix == 65535) { + *nx = -1; + /* reduced grid */ + isum = 0; + pl = GDS_PL(gds); + for (i = 0; i < iy; i++) { + isum += gds[pl+i*2]*256 + gds[pl+i*2+1]; + } + *nxny = isum; + } + return 0; } if (GDS_Triangular(gds)) { i = GDS_Triangular_ni(gds); d = GDS_Triangular_nd(gds); - *nx = *nxny = d * (i + 1) * (i + 1); + *nx = *nxny = d * (i + 1) * (i + 1); *ny = 1; - return 0; + return 0; } if (GDS_Harmonic(gds)) { - if (BDS_ComplexPacking(bds)) { - *nx = BDS_NValues(bds); - *ny = -1; - } - else { - /* this code assumes j, k, m are consistent with bds */ + if (BDS_ComplexPacking(bds)) { + *nx = BDS_NValues(bds); + *ny = -1; + } + else { + /* this code assumes j, k, m are consistent with bds */ *nx = *nxny = (8*(BDS_LEN(bds)-15)-BDS_UnusedBits(bds))/ - BDS_NumBits(bds)+1; + BDS_NumBits(bds)+1; if ((8*(BDS_LEN(bds)-15)-BDS_UnusedBits(bds)) % BDS_NumBits(bds)) { - fprintf(stderr,"inconsistent harmonic BDS\n"); + fprintf(stderr,"inconsistent harmonic BDS\n"); } *ny = 1; - } + } } return 0; } @@ -10975,17 +10977,17 @@ void GDS_prt_thin_lon(unsigned char *gds) { iy = GDS_LatLon_ny(gds); if ((pl = GDS_PL(gds)) == -1) { - fprintf(stderr,"\nprogram error: GDS_prt_thin\n"); - return; + fprintf(stderr,"\nprogram error: GDS_prt_thin\n"); + return; } for (col = i = 0; i < iy; i++) { - if (col == 0) printf(" "); - printf("%5d", (gds[pl+i*2] << 8) + gds[pl+i*2+1]); - col++; - if (col == NCOL) { - col = 0; - printf("\n"); - } + if (col == 0) printf(" "); + printf("%5d", (gds[pl+i*2] << 8) + gds[pl+i*2+1]); + col++; + if (col == NCOL) { + col = 0; + printf("\n"); + } } if (col != 0) printf("\n"); } @@ -10995,17 +10997,17 @@ void GDS_prt_thin_lon(unsigned char *gds) { */ static char *scan_mode[8] = { - "WE:NS", - "NS:WE", + "WE:NS", + "NS:WE", - "WE:SN", - "SN:WE", + "WE:SN", + "SN:WE", - "EW:NS", - "NS:EW", + "EW:NS", + "NS:EW", - "EW:SN", - "SN:EW" }; + "EW:SN", + "SN:EW" }; void GDS_winds(unsigned char *gds, int verbose) { @@ -11013,62 +11015,62 @@ void GDS_winds(unsigned char *gds, int verbose) { if (gds != NULL) { if (GDS_LatLon(gds)) { - scan = GDS_LatLon_scan(gds); - mode = GDS_LatLon_mode(gds); - } - else if (GDS_Mercator(gds)) { - scan =GDS_Merc_scan(gds); - mode =GDS_Merc_mode(gds); - } - /* else if (GDS_Gnomonic(gds)) { */ - else if (GDS_Lambert(gds)) { - scan = GDS_Lambert_scan(gds); - mode = GDS_Lambert_mode(gds); - } - else if (GDS_Gaussian(gds)) { - scan = GDS_LatLon_scan(gds); - mode = GDS_LatLon_mode(gds); - } - else if (GDS_Polar(gds)) { - scan = GDS_Polar_scan(gds); - mode = GDS_Polar_mode(gds); - } - else if (GDS_RotLL(gds)) { - scan = GDS_RotLL_scan(gds); - mode = GDS_RotLL_mode(gds); - } - /* else if (GDS_Triangular(gds)) { */ - else if (GDS_ssEgrid(gds)) { - scan = GDS_ssEgrid_scan(gds); - mode = GDS_ssEgrid_mode(gds); - } - else if (GDS_fEgrid(gds)) { - scan = GDS_fEgrid_scan(gds); - mode = GDS_fEgrid_mode(gds); - } - else if (GDS_ss2dEgrid(gds)) { - scan = GDS_ss2dEgrid_scan(gds); - mode = GDS_ss2dEgrid_mode(gds); - } + scan = GDS_LatLon_scan(gds); + mode = GDS_LatLon_mode(gds); + } + else if (GDS_Mercator(gds)) { + scan =GDS_Merc_scan(gds); + mode =GDS_Merc_mode(gds); + } + /* else if (GDS_Gnomonic(gds)) { */ + else if (GDS_Lambert(gds)) { + scan = GDS_Lambert_scan(gds); + mode = GDS_Lambert_mode(gds); + } + else if (GDS_Gaussian(gds)) { + scan = GDS_LatLon_scan(gds); + mode = GDS_LatLon_mode(gds); + } + else if (GDS_Polar(gds)) { + scan = GDS_Polar_scan(gds); + mode = GDS_Polar_mode(gds); + } + else if (GDS_RotLL(gds)) { + scan = GDS_RotLL_scan(gds); + mode = GDS_RotLL_mode(gds); + } + /* else if (GDS_Triangular(gds)) { */ + else if (GDS_ssEgrid(gds)) { + scan = GDS_ssEgrid_scan(gds); + mode = GDS_ssEgrid_mode(gds); + } + else if (GDS_fEgrid(gds)) { + scan = GDS_fEgrid_scan(gds); + mode = GDS_fEgrid_mode(gds); + } + else if (GDS_ss2dEgrid(gds)) { + scan = GDS_ss2dEgrid_scan(gds); + mode = GDS_ss2dEgrid_mode(gds); + } else if (GDS_ss2dBgrid(gds)) { - scan = GDS_ss2dBgrid_scan(gds); - mode = GDS_ss2dBgrid_mode(gds); - } + scan = GDS_ss2dBgrid_scan(gds); + mode = GDS_ss2dBgrid_mode(gds); + } } if (verbose == 1) { - if (mode != -1) { - if (mode & 8) printf("winds in grid direction:"); - else printf("winds are N/S:"); - } + if (mode != -1) { + if (mode & 8) printf("winds in grid direction:"); + else printf("winds are N/S:"); + } } else if (verbose == 2) { - if (scan != -1) { - printf(" scan: %s", scan_mode[(scan >> 5) & 7]); - } - if (mode != -1) { - if (mode & 8) printf(" winds(grid) "); - else printf(" winds(N/S) "); + if (scan != -1) { + printf(" scan: %s", scan_mode[(scan >> 5) & 7]); } + if (mode != -1) { + if (mode & 8) printf(" winds(grid) "); + else printf(" winds(N/S) "); + } } } @@ -11095,20 +11097,20 @@ int setup_user_table(int center, int subcenter, int ptable) { char *filename, line[300]; if (status == init) { - for (i = 0; i < 256; i++) { - parm_table_user[i].name = parm_table_user[i].comment = NULL; - } - status = not_checked; + for (i = 0; i < 256; i++) { + parm_table_user[i].name = parm_table_user[i].comment = NULL; + } + status = not_checked; } if (status == no_file) return 0; if ((user_center == -1 || center == user_center) && - (user_subcenter == -1 || subcenter == user_subcenter) && - (user_ptable == -1 || ptable == user_ptable)) { + (user_subcenter == -1 || subcenter == user_subcenter) && + (user_ptable == -1 || ptable == user_ptable)) { - if (status == filled) return 1; - if (status == not_found) return 0; + if (status == filled) return 1; + if (status == not_found) return 0; } /* open gribtab file if not open */ @@ -11125,10 +11127,10 @@ int setup_user_table(int center, int subcenter, int ptable) { status = no_file; return 0; } - file_open = 1; + file_open = 1; } else { - rewind(input); + rewind(input); } user_center = center; @@ -11138,18 +11140,18 @@ int setup_user_table(int center, int subcenter, int ptable) { /* scan for center & subcenter and ptable */ for (;;) { if (fgets(line, 299, input) == NULL) { - status = not_found; + status = not_found; return 0; } - if (atoi(line) != START) continue; - i = sscanf(line,"%d:%d:%d:%d", &j, ¢er, &subcenter, &ptable); + if (atoi(line) != START) continue; + i = sscanf(line,"%d:%d:%d:%d", &j, ¢er, &subcenter, &ptable); if (i != 4) { - fprintf(stderr,"illegal gribtab center/subcenter/ptable line: %s\n", line); + fprintf(stderr,"illegal gribtab center/subcenter/ptable line: %s\n", line); continue; } - if ((center == -1 || center == user_center) && - (subcenter == -1 || subcenter == user_subcenter) && - (ptable == -1 || ptable == user_ptable)) break; + if ((center == -1 || center == user_center) && + (subcenter == -1 || subcenter == user_subcenter) && + (ptable == -1 || ptable == user_ptable)) break; } user_center = center; @@ -11160,44 +11162,44 @@ int setup_user_table(int center, int subcenter, int ptable) { for (i = 0; i < 256; i++) { if (parm_table_user[i].name != NULL) free(parm_table_user[i].name); if (parm_table_user[i].comment != NULL) free(parm_table_user[i].comment); - parm_table_user[i].name = parm_table_user[i].comment = NULL; + parm_table_user[i].name = parm_table_user[i].comment = NULL; } /* read definitions */ for (;;) { if (fgets(line, 299, input) == NULL) break; - if ((i = atoi(line)) == START) break; - line[299] = 0; + if ((i = atoi(line)) == START) break; + line[299] = 0; - /* find the colons and end-of-line */ - for (c0 = 0; line[c0] != ':' && line[c0] != 0; c0++) ; + /* find the colons and end-of-line */ + for (c0 = 0; line[c0] != ':' && line[c0] != 0; c0++) ; /* skip blank lines */ if (line[c0] == 0) continue; - for (c1 = c0 + 1; line[c1] != ':' && line[c1] != 0; c1++) ; - c2 = strlen(line); + for (c1 = c0 + 1; line[c1] != ':' && line[c1] != 0; c1++) ; + c2 = strlen(line); if (line[c2-1] == '\n') line[--c2] = '\0'; if (c2 <= c1) { - fprintf(stderr,"illegal gribtab line:%s\n", line); - continue; - } - line[c0] = 0; - line[c1] = 0; - - parm_table_user[i].name = (char *) malloc(c1 - c0); - parm_table_user[i].comment = (char *) malloc(c2 - c1); - strcpy(parm_table_user[i].name, line+c0+1); - strcpy(parm_table_user[i].comment, line+c1+1); + fprintf(stderr,"illegal gribtab line:%s\n", line); + continue; + } + line[c0] = 0; + line[c1] = 0; + + parm_table_user[i].name = (char *) malloc(c1 - c0); + parm_table_user[i].comment = (char *) malloc(c2 - c1); + strcpy(parm_table_user[i].name, line+c0+1); + strcpy(parm_table_user[i].comment, line+c1+1); } /* now to fill in undefined blanks */ for (i = 0; i < 255; i++) { - if (parm_table_user[i].name == NULL) { - parm_table_user[i].name = (char *) malloc(7); - sprintf(parm_table_user[i].name, "var%d", i); - parm_table_user[i].comment = (char *) malloc(strlen("undefined")+1); - strcpy(parm_table_user[i].comment, "undefined"); + if (parm_table_user[i].name == NULL) { + parm_table_user[i].name = (char *) malloc(7); + sprintf(parm_table_user[i].name, "var%d", i); + parm_table_user[i].comment = (char *) malloc(strlen("undefined")+1); + strcpy(parm_table_user[i].comment, "undefined"); } } status = filled; @@ -11239,35 +11241,35 @@ int PDS_date(unsigned char *pds, int option, int v_time) { } else { if (verf_time(pds, &year, &month, &day, &hour) != 0) { - if (msg_count++ < 5) fprintf(stderr, "PDS_date: problem\n"); - } + if (msg_count++ < 5) fprintf(stderr, "PDS_date: problem\n"); + } } min = PDS_Minute(pds); switch(option) { - case 0: - printf("%2.2d%2.2d%2.2d%2.2d", year % 100, month, day, hour); - if (minute) printf("-%2.2d", min); - break; - case 1: - printf("%4.4d%2.2d%2.2d%2.2d", year, month, day, hour); - if (minute) printf("-%2.2d", min); - break; - default: - fprintf(stderr,"missing code\n"); - exit(8); + case 0: + printf("%2.2d%2.2d%2.2d%2.2d", year % 100, month, day, hour); + if (minute) printf("-%2.2d", min); + break; + case 1: + printf("%4.4d%2.2d%2.2d%2.2d", year, month, day, hour); + if (minute) printf("-%2.2d", min); + break; + default: + fprintf(stderr,"missing code\n"); + exit(8); } return 0; } #define FEB29 (31+29) static int monthjday[13] = { - 0,31,59,90,120,151,181,212,243,273,304,334,365}; + 0,31,59,90,120,151,181,212,243,273,304,334,365}; static int leap(int year) { - if (year % 4 != 0) return 0; - if (year % 100 != 0) return 1; - return (year % 400 == 0); + if (year % 4 != 0) return 0; + if (year % 100 != 0) return 1; + return (year % 400 == 0); } @@ -11280,48 +11282,48 @@ int add_time(int *year, int *month, int *day, int *hour, int dtime, int unit) { h = *hour; if (unit == YEAR) { - *year = y + dtime; - return 0; + *year = y + dtime; + return 0; } if (unit == DECADE) { - *year = y + (10 * dtime); - return 0; + *year = y + (10 * dtime); + return 0; } if (unit == CENTURY) { - *year = y + (100 * dtime); - return 0; + *year = y + (100 * dtime); + return 0; } if (unit == NORMAL) { - *year = y + (30 * dtime); - return 0; + *year = y + (30 * dtime); + return 0; } if (unit == MONTH) { if (dtime < 0) { - i = (-dtime) / 12 + 1; - y -= i; - dtime += (i * 12); + i = (-dtime) / 12 + 1; + y -= i; + dtime += (i * 12); } - dtime += (m - 1); - *year = y = y + (dtime / 12); - *month = m = 1 + (dtime % 12); + dtime += (m - 1); + *year = y = y + (dtime / 12); + *month = m = 1 + (dtime % 12); /* check if date code if valid */ - days_in_month = monthjday[m] - monthjday[m-1]; - if (m == 2 && leap(y)) { - days_in_month++; - } - if (days_in_month < d) *day = days_in_month; + days_in_month = monthjday[m] - monthjday[m-1]; + if (m == 2 && leap(y)) { + days_in_month++; + } + if (days_in_month < d) *day = days_in_month; - return 0; + return 0; } if (unit == SECOND) { - dtime /= 60; - unit = MINUTE; + dtime /= 60; + unit = MINUTE; } if (unit == MINUTE) { - dtime /= 60; - unit = HOUR; + dtime /= 60; + unit = HOUR; } if (unit == HOURS3) { @@ -11338,7 +11340,7 @@ int add_time(int *year, int *month, int *day, int *hour, int dtime, int unit) { } if (unit == HOUR) { - dtime += h; + dtime += h; *hour = dtime % 24; dtime = dtime / 24; @@ -11352,41 +11354,41 @@ int add_time(int *year, int *month, int *day, int *hour, int dtime, int unit) { /* this is the hard part */ if (unit == DAY) { - /* set m and day to Jan 0, and readjust dtime */ - jday = d + monthjday[m-1]; - if (leap(y) && m > 2) jday++; + /* set m and day to Jan 0, and readjust dtime */ + jday = d + monthjday[m-1]; + if (leap(y) && m > 2) jday++; dtime += jday; while (dtime < 1) { y--; - dtime += 365 + leap(y); + dtime += 365 + leap(y); } - /* one year chunks */ - while (dtime > 365 + leap(y)) { - dtime -= (365 + leap(y)); - y++; - } - - /* calculate the month and day */ - - if (leap(y) && dtime == FEB29) { - m = 2; - d = 29; - } - else { - if (leap(y) && dtime > FEB29) dtime--; - for (i = 11; monthjday[i] >= dtime; --i); - m = i + 1; - d = dtime - monthjday[i]; - } - *year = y; - *month = m; - *day = d; - return 0; - } - fprintf(stderr,"add_time: undefined time unit %d\n", unit); - return 1; + /* one year chunks */ + while (dtime > 365 + leap(y)) { + dtime -= (365 + leap(y)); + y++; + } + + /* calculate the month and day */ + + if (leap(y) && dtime == FEB29) { + m = 2; + d = 29; + } + else { + if (leap(y) && dtime > FEB29) dtime--; + for (i = 11; monthjday[i] >= dtime; --i); + m = i + 1; + d = dtime - monthjday[i]; + } + *year = y; + *month = m; + *day = d; + return 0; + } + fprintf(stderr,"add_time: undefined time unit %d\n", unit); + return 1; } @@ -11455,83 +11457,83 @@ void ensemble(unsigned char *pds, int mode) { if ((PDS_Center(pds) == NMC || ncep_ens) && pdslen >= 45 && pds[40] == 1) { - /* control run */ - - if (pds[41] == 1) { - if (mode != 2) { - printf("ens%c0:%c", pds[42] == 1 ? '+' : '-', char_end); - } - else { - printf("%s-res_ens_control ", pds[42] == 1 ? "hi" : "low"); - } - } - - /* perturbation run */ - - else if (pds[41] == 2 || pds[41] == 3) { - if (mode != 2) { - printf("ens%c%d%c", pds[41] == 3 ? '+' : '-', pds[42],char_end); - } - else { - printf("ens_perturbation=%c%d ",pds[41] == 3 ? '+' : '-', - pds[42]); - } - } - - /* cluster mean */ - - else if (pds[41] == 4) { - if (mode != 2) printf("cluster%c", char_end); - else printf("cluster(%d members) ",pds[60]); - } - - - /* ensemble mean */ - - else if (pds[41] == 5) { - if (mode != 2) printf("ensemble%c", char_end); - else printf("ensemble(%d members) ",pds[60]); - } - - /* other case .. debug code */ - - else { - printf("ens %d/%d/%d/%d%c", pds[41],pds[42],pds[43],pds[44],char_end); - } - - - if (pdslen >= 44) { - if (pds[43] == 1 && pds[41] >= 4) printf("mean%c", char_end); - else if (pds[43] == 2) printf("weighted mean%c",char_end); - else if (pds[43] == 3) printf("no bias%c",char_end); - else if (pds[43] == 4) printf("weighted mean no bias%c",char_end); - else if (pds[43] == 5) printf("weight%c",char_end); - else if (pds[43] == 6) printf("climate percentile%c",char_end); - else if (pds[43] == 7) printf("daily climate mean%c",char_end); - else if (pds[43] == 8) printf("daily climate std dev%c",char_end); - else if (pds[43] == 11) printf("std dev%c",char_end); - else if (pds[43] == 12) printf("norm std dev%c",char_end); - else if (pds[43] == 21) printf("max val%c",char_end); - else if (pds[43] == 22) printf("min val%c",char_end); - } - - /* NCEP probability limits */ - - if ((PDS_PARAM(pds) == 191 || PDS_PARAM(pds) == 192) && pdslen >= 47) { - ctmp = PDS_PARAM(pds); - PDS_PARAM(pds) = pds[45]; - if (pds[46] == 1 && pdslen >= 51) { - printf("prob(%s<%f)%c", k5toa(pds), ibm2flt(pds+47),char_end); - } - else if (pds[46] == 2 && pdslen >= 54) { - printf("prob(%s>%f)%c", k5toa(pds), ibm2flt(pds+51), char_end); - } - else if (pds[46] == 3 && pdslen >= 54) { - printf("prob(%f<%s<%f)%c", ibm2flt(pds+47), k5toa(pds), - ibm2flt(pds+51), char_end); - } + /* control run */ + + if (pds[41] == 1) { + if (mode != 2) { + printf("ens%c0:%c", pds[42] == 1 ? '+' : '-', char_end); + } + else { + printf("%s-res_ens_control ", pds[42] == 1 ? "hi" : "low"); + } + } + + /* perturbation run */ + + else if (pds[41] == 2 || pds[41] == 3) { + if (mode != 2) { + printf("ens%c%d%c", pds[41] == 3 ? '+' : '-', pds[42],char_end); + } + else { + printf("ens_perturbation=%c%d ",pds[41] == 3 ? '+' : '-', + pds[42]); + } + } + + /* cluster mean */ + + else if (pds[41] == 4) { + if (mode != 2) printf("cluster%c", char_end); + else printf("cluster(%d members) ",pds[60]); + } + + + /* ensemble mean */ + + else if (pds[41] == 5) { + if (mode != 2) printf("ensemble%c", char_end); + else printf("ensemble(%d members) ",pds[60]); + } + + /* other case .. debug code */ + + else { + printf("ens %d/%d/%d/%d%c", pds[41],pds[42],pds[43],pds[44],char_end); + } + + + if (pdslen >= 44) { + if (pds[43] == 1 && pds[41] >= 4) printf("mean%c", char_end); + else if (pds[43] == 2) printf("weighted mean%c",char_end); + else if (pds[43] == 3) printf("no bias%c",char_end); + else if (pds[43] == 4) printf("weighted mean no bias%c",char_end); + else if (pds[43] == 5) printf("weight%c",char_end); + else if (pds[43] == 6) printf("climate percentile%c",char_end); + else if (pds[43] == 7) printf("daily climate mean%c",char_end); + else if (pds[43] == 8) printf("daily climate std dev%c",char_end); + else if (pds[43] == 11) printf("std dev%c",char_end); + else if (pds[43] == 12) printf("norm std dev%c",char_end); + else if (pds[43] == 21) printf("max val%c",char_end); + else if (pds[43] == 22) printf("min val%c",char_end); + } + + /* NCEP probability limits */ + + if ((PDS_PARAM(pds) == 191 || PDS_PARAM(pds) == 192) && pdslen >= 47) { + ctmp = PDS_PARAM(pds); + PDS_PARAM(pds) = pds[45]; + if (pds[46] == 1 && pdslen >= 51) { + printf("prob(%s<%f)%c", k5toa(pds), ibm2flt(pds+47),char_end); + } + else if (pds[46] == 2 && pdslen >= 54) { + printf("prob(%s>%f)%c", k5toa(pds), ibm2flt(pds+51), char_end); + } + else if (pds[46] == 3 && pdslen >= 54) { + printf("prob(%f<%s<%f)%c", ibm2flt(pds+47), k5toa(pds), + ibm2flt(pds+51), char_end); + } PDS_PARAM(pds) = ctmp; - } + } } } @@ -13130,522 +13132,522 @@ const struct ParmTable parm_table_dwd_205[256] = { }; const struct ParmTable parm_table_cptec_254[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"PRES", "Pressure [hPa]"}, - /* 2 */ {"psnm", "Pressure reduced to MSL [hPa]"}, - /* 3 */ {"tsps", "Pressure tendency [Pa/s]"}, - /* 4 */ {"var4", "undefined"}, - /* 5 */ {"var5", "undefined"}, - /* 6 */ {"geop", "Geopotential [dam]"}, - /* 7 */ {"zgeo", "Geopotential height [gpm]"}, - /* 8 */ {"gzge", "Geometric height [m]"}, - /* 9 */ {"var9", "undefined"}, - /* 10 */ {"var10", "undefined"}, - /* 11 */ {"temp", "ABSOLUTE TEMPERATURE [K]"}, - /* 12 */ {"vtmp", "VIRTUAL TEMPERATURE [K]"}, - /* 13 */ {"ptmp", "POTENTIAL TEMPERATURE [K]"}, - /* 14 */ {"psat", "PSEUDO-ADIABATIC POTENTIAL TEMPERATURE [K]"}, - /* 15 */ {"mxtp", "MAXIMUM TEMPERATURE [K]"}, - /* 16 */ {"mntp", "MINIMUM TEMPERATURE [K]"}, - /* 17 */ {"tpor", "DEW POINT TEMPERATURE [K]"}, - /* 18 */ {"dptd", "DEW POINT DEPRESSION [K]"}, - /* 19 */ {"lpsr", "LAPSE RATE [K/m]"}, - /* 20 */ {"var20", "undefined"}, - /* 21 */ {"rds1", "RADAR SPECTRA(1) [non-dim]"}, - /* 22 */ {"rds2", "RADAR SPECTRA(2) [non-dim]"}, - /* 23 */ {"rds3", "RADAR SPECTRA(3) [non-dim]"}, - /* 24 */ {"var24", "undefined"}, - /* 25 */ {"tpan", "TEMPERATURE ANOMALY [K]"}, - /* 26 */ {"psan", "PRESSURE ANOMALY [Pa hPa]"}, - /* 27 */ {"zgan", "GEOPOT HEIGHT ANOMALY [m]"}, - /* 28 */ {"wvs1", "WAVE SPECTRA(1) [non-dim]"}, - /* 29 */ {"wvs2", "WAVE SPECTRA(2) [non-dim]"}, - /* 30 */ {"wvs3", "WAVE SPECTRA(3) [non-dim]"}, - /* 31 */ {"wind", "WIND DIRECTION [deg]"}, - /* 32 */ {"wins", "WIND SPEED [m/s]"}, - /* 33 */ {"uvel", "ZONAL WIND (U) [m/s]"}, - /* 34 */ {"vvel", "MERIDIONAL WIND (V) [m/s]"}, - /* 35 */ {"fcor", "STREAM FUNCTION [m2/s]"}, - /* 36 */ {"potv", "VELOCITY POTENTIAL [m2/s]"}, - /* 37 */ {"var37", "undefined"}, - /* 38 */ {"sgvv", "SIGMA COORD VERT VEL [sec/sec]"}, - /* 39 */ {"omeg", "OMEGA [Pa/s]"}, - /* 40 */ {"omg2", "VERTICAL VELOCITY [m/s]"}, - /* 41 */ {"abvo", "ABSOLUTE VORTICITY [10**5/sec]"}, - /* 42 */ {"abdv", "ABSOLUTE DIVERGENCE [10**5/sec]"}, - /* 43 */ {"vort", "VORTICITY [1/s]"}, - /* 44 */ {"divg", "DIVERGENCE [1/s]"}, - /* 45 */ {"vucs", "VERTICAL U-COMP SHEAR [1/sec]"}, - /* 46 */ {"vvcs", "VERT V-COMP SHEAR [1/sec]"}, - /* 47 */ {"dirc", "DIRECTION OF CURRENT [deg]"}, - /* 48 */ {"spdc", "SPEED OF CURRENT [m/s]"}, - /* 49 */ {"ucpc", "U-COMPONENT OF CURRENT [m/s]"}, - /* 50 */ {"vcpc", "V-COMPONENT OF CURRENT [m/s]"}, - /* 51 */ {"umes", "SPECIFIC HUMIDITY [kg/kg]"}, - /* 52 */ {"umrl", "RELATIVE HUMIDITY [no Dim]"}, - /* 53 */ {"hmxr", "HUMIDITY MIXING RATIO [kg/kg]"}, - /* 54 */ {"agpl", "INST. PRECIPITABLE WATER [Kg/m2]"}, - /* 55 */ {"vapp", "VAPOUR PRESSURE [Pa hpa]"}, - /* 56 */ {"sadf", "SATURATION DEFICIT [Pa hPa]"}, - /* 57 */ {"evap", "EVAPORATION [Kg/m2/day]"}, - /* 58 */ {"var58", "undefined"}, - /* 59 */ {"prcr", "PRECIPITATION RATE [kg/m2/day]"}, - /* 60 */ {"thpb", "THUNDER PROBABILITY [%]"}, - /* 61 */ {"prec", "TOTAL PRECIPITATION [Kg/m2/day]"}, - /* 62 */ {"prge", "LARGE SCALE PRECIPITATION [Kg/m2/day]"}, - /* 63 */ {"prcv", "CONVECTIVE PRECIPITATION [Kg/m2/day]"}, - /* 64 */ {"neve", "SNOWFALL [Kg/m2/day]"}, - /* 65 */ {"wenv", "WAT EQUIV ACC SNOW DEPTH [kg/m2]"}, - /* 66 */ {"nvde", "SNOW DEPTH [cm]"}, - /* 67 */ {"mxld", "MIXED LAYER DEPTH [m cm]"}, - /* 68 */ {"tthd", "TRANS THERMOCLINE DEPTH [m cm]"}, - /* 69 */ {"mthd", "MAIN THERMOCLINE DEPTH [m cm]"}, - /* 70 */ {"mtha", "MAIN THERMOCLINE ANOM [m cm]"}, - /* 71 */ {"cbnv", "CLOUD COVER [0-1]"}, - /* 72 */ {"cvnv", "CONVECTIVE CLOUD COVER [0-1]"}, - /* 73 */ {"lwnv", "LOW CLOUD COVER [0-1]"}, - /* 74 */ {"mdnv", "MEDIUM CLOUD COVER [0-1]"}, - /* 75 */ {"hinv", "HIGH CLOUD COVER [0-1]"}, - /* 76 */ {"wtnv", "CLOUD WATER [kg/m2]"}, - /* 77 */ {"bli", "BEST LIFTED INDEX (TO 500 HPA) [K]"}, - /* 78 */ {"var78", "undefined"}, - /* 79 */ {"var79", "undefined"}, - /* 80 */ {"var80", "undefined"}, - /* 81 */ {"lsmk", "LAND SEA MASK [0,1]"}, - /* 82 */ {"dslm", "DEV SEA_LEV FROM MEAN [m]"}, - /* 83 */ {"zorl", "ROUGHNESS LENGTH [m]"}, - /* 84 */ {"albe", "ALBEDO [%]"}, - /* 85 */ {"dstp", "DEEP SOIL TEMPERATURE [K]"}, - /* 86 */ {"soic", "SOIL MOISTURE CONTENT [Kg/m2]"}, - /* 87 */ {"vege", "VEGETATION [%]"}, - /* 88 */ {"var88", "undefined"}, - /* 89 */ {"dens", "DENSITY [kg/m3]"}, - /* 90 */ {"var90", "Undefined"}, - /* 91 */ {"icec", "ICE CONCENTRATION [fraction]"}, - /* 92 */ {"icet", "ICE THICKNESS [m]"}, - /* 93 */ {"iced", "DIRECTION OF ICE DRIFT [deg]"}, - /* 94 */ {"ices", "SPEED OF ICE DRIFT [m/s]"}, - /* 95 */ {"iceu", "U-COMP OF ICE DRIFT [m/s]"}, - /* 96 */ {"icev", "V-COMP OF ICE DRIFT [m/s]"}, - /* 97 */ {"iceg", "ICE GROWTH [m]"}, - /* 98 */ {"icdv", "ICE DIVERGENCE [sec/sec]"}, - /* 99 */ {"var99", "undefined"}, - /* 100 */ {"shcw", "SIG HGT COM WAVE/SWELL [m]"}, - /* 101 */ {"wwdi", "DIRECTION OF WIND WAVE [deg]"}, - /* 102 */ {"wwsh", "SIG HGHT OF WIND WAVES [m]"}, - /* 103 */ {"wwmp", "MEAN PERIOD WIND WAVES [sec]"}, - /* 104 */ {"swdi", "DIRECTION OF SWELL WAVE [deg]"}, - /* 105 */ {"swsh", "SIG HEIGHT SWELL WAVES [m]"}, - /* 106 */ {"swmp", "MEAN PERIOD SWELL WAVES [sec]"}, - /* 107 */ {"prwd", "PRIMARY WAVE DIRECTION [deg]"}, - /* 108 */ {"prmp", "PRIM WAVE MEAN PERIOD [s]"}, - /* 109 */ {"swdi", "SECOND WAVE DIRECTION [deg]"}, - /* 110 */ {"swmp", "SECOND WAVE MEAN PERIOD [s]"}, - /* 111 */ {"ocas", "SHORT WAVE ABSORBED AT GROUND [W/m2]"}, - /* 112 */ {"slds", "NET LONG WAVE AT BOTTOM [W/m2]"}, - /* 113 */ {"nswr", "NET SHORT-WAV RAD(TOP) [W/m2]"}, - /* 114 */ {"role", "OUTGOING LONG WAVE AT TOP [W/m2]"}, - /* 115 */ {"lwrd", "LONG-WAV RAD [W/m2]"}, - /* 116 */ {"swea", "SHORT WAVE ABSORBED BY EARTH/ATMOSPHERE [W/m2]"}, - /* 117 */ {"glbr", "GLOBAL RADIATION [W/m2 ]"}, - /* 118 */ {"var118", "undefined"}, - /* 119 */ {"var119", "undefined"}, - /* 120 */ {"var120", "undefined"}, - /* 121 */ {"clsf", "LATENT HEAT FLUX FROM SURFACE [W/m2]"}, - /* 122 */ {"cssf", "SENSIBLE HEAT FLUX FROM SURFACE [W/m2]"}, - /* 123 */ {"blds", "BOUND LAYER DISSIPATION [W/m2]"}, - /* 124 */ {"var124", "undefined"}, - /* 125 */ {"var125", "undefined"}, - /* 126 */ {"var126", "undefined"}, - /* 127 */ {"imag", "IMAGE [image^data]"}, - /* 128 */ {"tp2m", "2 METRE TEMPERATURE [K]"}, - /* 129 */ {"dp2m", "2 METRE DEWPOINT TEMPERATURE [K]"}, - /* 130 */ {"u10m", "10 METRE U-WIND COMPONENT [m/s]"}, - /* 131 */ {"v10m", "10 METRE V-WIND COMPONENT [m/s]"}, - /* 132 */ {"topo", "TOPOGRAPHY [m]"}, - /* 133 */ {"gsfp", "GEOMETRIC MEAN SURFACE PRESSURE [hPa]"}, - /* 134 */ {"lnsp", "LN SURFACE PRESSURE [hPa]"}, - /* 135 */ {"pslc", "SURFACE PRESSURE [hPa]"}, - /* 136 */ {"pslm", "M S L PRESSURE (MESINGER METHOD) [hPa]"}, - /* 137 */ {"mask", "MASK [-/+]"}, - /* 138 */ {"mxwu", "MAXIMUM U-WIND [m/s]"}, - /* 139 */ {"mxwv", "MAXIMUM V-WIND [m/s]"}, - /* 140 */ {"cape", "CONVECTIVE AVAIL. POT.ENERGY [m2/s2]"}, - /* 141 */ {"cine", "CONVECTIVE INHIB. ENERGY [m2/s2]"}, - /* 142 */ {"lhcv", "CONVECTIVE LATENT HEATING [K/s]"}, - /* 143 */ {"mscv", "CONVECTIVE MOISTURE SOURCE [1/s]"}, - /* 144 */ {"scvm", "SHALLOW CONV. MOISTURE SOURCE [1/s]"}, - /* 145 */ {"scvh", "SHALLOW CONVECTIVE HEATING [K/s]"}, - /* 146 */ {"mxwp", "MAXIMUM WIND PRESS. LVL [hPa]"}, - /* 147 */ {"ustr", "STORM MOTION U-COMPONENT [m/s]"}, - /* 148 */ {"vstr", "STORM MOTION V-COMPONENT [m/s]"}, - /* 149 */ {"cbnt", "MEAN CLOUD COVER [0-1]"}, - /* 150 */ {"pcbs", "PRESSURE AT CLOUD BASE [hPa]"}, - /* 151 */ {"pctp", "PRESSURE AT CLOUD TOP [hPa]"}, - /* 152 */ {"fzht", "FREEZING LEVEL HEIGHT [m]"}, - /* 153 */ {"fzrh", "FREEZING LEVEL RELATIVE HUMIDITY [%]"}, - /* 154 */ {"fdlt", "FLIGHT LEVELS TEMPERATURE [K]"}, - /* 155 */ {"fdlu", "FLIGHT LEVELS U-WIND [m/s]"}, - /* 156 */ {"fdlv", "FLIGHT LEVELS V-WIND [m/s]"}, - /* 157 */ {"tppp", "TROPOPAUSE PRESSURE [hPa]"}, - /* 158 */ {"tppt", "TROPOPAUSE TEMPERATURE [K]"}, - /* 159 */ {"tppu", "TROPOPAUSE U-WIND COMPONENT [m/s]"}, - /* 160 */ {"tppv", "TROPOPAUSE v-WIND COMPONENT [m/s]"}, - /* 161 */ {"var161", "undefined"}, - /* 162 */ {"gvdu", "GRAVITY WAVE DRAG DU/DT [m/s2]"}, - /* 163 */ {"gvdv", "GRAVITY WAVE DRAG DV/DT [m/s2]"}, - /* 164 */ {"gvus", "GRAVITY WAVE DRAG SFC ZONAL STRESS [Pa]"}, - /* 165 */ {"gvvs", "GRAVITY WAVE DRAG SFC MERIDIONAL STRESS [Pa]"}, - /* 166 */ {"var166", "undefined"}, - /* 167 */ {"dvsh", "DIVERGENCE OF SPECIFIC HUMIDITY [1/s]"}, - /* 168 */ {"hmfc", "HORIZ. MOISTURE FLUX CONV. [1/s]"}, - /* 169 */ {"vmfl", "VERT. INTEGRATED MOISTURE FLUX CONV. [kg/(m2*s)]"}, - /* 170 */ {"vadv", "VERTICAL MOISTURE ADVECTION [kg/(kg*s)]"}, - /* 171 */ {"nhcm", "NEG. HUM. CORR. MOISTURE SOURCE [kg/(kg*s)]"}, - /* 172 */ {"lglh", "LARGE SCALE LATENT HEATING [K/s]"}, - /* 173 */ {"lgms", "LARGE SCALE MOISTURE SOURCE [1/s]"}, - /* 174 */ {"smav", "SOIL MOISTURE AVAILABILITY [0-1]"}, - /* 175 */ {"tgrz", "SOIL TEMPERATURE OF ROOT ZONE [K]"}, - /* 176 */ {"bslh", "BARE SOIL LATENT HEAT [Ws/m2]"}, - /* 177 */ {"evpp", "POTENTIAL SFC EVAPORATION [m]"}, - /* 178 */ {"rnof", "RUNOFF [kg/m2/s)]"}, - /* 179 */ {"pitp", "INTERCEPTION LOSS [W/m2]"}, - /* 180 */ {"vpca", "VAPOR PRESSURE OF CANOPY AIR SPACE [mb]"}, - /* 181 */ {"qsfc", "SURFACE SPEC HUMIDITY [kg/kg]"}, - /* 182 */ {"ussl", "SOIL WETNESS OF SURFACE [0-1]"}, - /* 183 */ {"uzrs", "SOIL WETNESS OF ROOT ZONE [0-1]"}, - /* 184 */ {"uzds", "SOIL WETNESS OF DRAINAGE ZONE [0-1]"}, - /* 185 */ {"amdl", "STORAGE ON CANOPY [m]"}, - /* 186 */ {"amsl", "STORAGE ON GROUND [m]"}, - /* 187 */ {"tsfc", "SURFACE TEMPERATURE [K]"}, - /* 188 */ {"tems", "SURFACE ABSOLUTE TEMPERATURE [K]"}, - /* 189 */ {"tcas", "TEMPERATURE OF CANOPY AIR SPACE [K]"}, - /* 190 */ {"ctmp", "TEMPERATURE AT CANOPY [K]"}, - /* 191 */ {"tgsc", "GROUND/SURFACE COVER TEMPERATURE [K]"}, - /* 192 */ {"uves", "SURFACE ZONAL WIND (U) [m/s]"}, - /* 193 */ {"usst", "SURFACE ZONAL WIND STRESS [Pa]"}, - /* 194 */ {"vves", "SURFACE MERIDIONAL WIND (V) [m/s]"}, - /* 195 */ {"vsst", "SURFACE MERIDIONAL WIND STRESS [Pa]"}, - /* 196 */ {"suvf", "SURFACE MOMENTUM FLUX [W/m2]"}, - /* 197 */ {"iswf", "INCIDENT SHORT WAVE FLUX [W/m2]"}, - /* 198 */ {"ghfl", "TIME AVE GROUND HT FLX [W/m2]"}, - /* 199 */ {"var199", "undefined"}, - /* 200 */ {"lwbc", "NET LONG WAVE AT BOTTOM (CLEAR) [W/m2]"}, - /* 201 */ {"lwtc", "OUTGOING LONG WAVE AT TOP (CLEAR) [W/m2]"}, - /* 202 */ {"swec", "SHORT WV ABSRBD BY EARTH/ATMOS (CLEAR) [W/m2]"}, - /* 203 */ {"ocac", "SHORT WAVE ABSORBED AT GROUND (CLEAR) [W/m2]"}, - /* 204 */ {"var204", "undefined"}, - /* 205 */ {"lwrh", "LONG WAVE RADIATIVE HEATING [K/s]"}, - /* 206 */ {"swrh", "SHORT WAVE RADIATIVE HEATING [K/s]"}, - /* 207 */ {"olis", "DOWNWARD LONG WAVE AT BOTTOM [W/m2]"}, - /* 208 */ {"olic", "DOWNWARD LONG WAVE AT BOTTOM (CLEAR) [W/m2]"}, - /* 209 */ {"ocis", "DOWNWARD SHORT WAVE AT GROUND [W/m2]"}, - /* 210 */ {"ocic", "DOWNWARD SHORT WAVE AT GROUND (CLEAR) [W/m2]"}, - /* 211 */ {"oles", "UPWARD LONG WAVE AT BOTTOM [W/m2]"}, - /* 212 */ {"oces", "UPWARD SHORT WAVE AT GROUND [W/m2]"}, - /* 213 */ {"swgc", "UPWARD SHORT WAVE AT GROUND (CLEAR) [W/m2]"}, - /* 214 */ {"roce", "UPWARD SHORT WAVE AT TOP [W/m2]"}, - /* 215 */ {"swtc", "UPWARD SHORT WAVE AT TOP (CLEAR) [W/m2]"}, - /* 216 */ {"var216", "undefined"}, - /* 217 */ {"var217", "undefined"}, - /* 218 */ {"hhdf", "HORIZONTAL HEATING DIFFUSION [K/s]"}, - /* 219 */ {"hmdf", "HORIZONTAL MOISTURE DIFFUSION [1/s]"}, - /* 220 */ {"hddf", "HORIZONTAL DIVERGENCE DIFFUSION [1/s2]"}, - /* 221 */ {"hvdf", "HORIZONTAL VORTICITY DIFFUSION [1/s2]"}, - /* 222 */ {"vdms", "VERTICAL DIFF. MOISTURE SOURCE [1/s]"}, - /* 223 */ {"vdfu", "VERTICAL DIFFUSION DU/DT [m/s2]"}, - /* 224 */ {"vdfv", "VERTICAL DIFFUSION DV/DT [m/s2]"}, - /* 225 */ {"vdfh", "VERTICAL DIFFUSION HEATING [K/s]"}, - /* 226 */ {"umrs", "SURFACE RELATIVE HUMIDITY [no Dim]"}, - /* 227 */ {"vdcc", "VERTICAL DIST TOTAL CLOUD COVER [no Dim]"}, - /* 228 */ {"var228", "undefined"}, - /* 229 */ {"var229", "undefined"}, - /* 230 */ {"usmt", "TIME MEAN SURFACE ZONAL WIND (U) [m/s]"}, - /* 231 */ {"vsmt", "TIME MEAN SURFACE MERIDIONAL WIND (V) [m/s]"}, - /* 232 */ {"tsmt", "TIME MEAN SURFACE ABSOLUTE TEMPERATURE [K]"}, - /* 233 */ {"rsmt", "TIME MEAN SURFACE RELATIVE HUMIDITY [no Dim]"}, - /* 234 */ {"atmt", "TIME MEAN ABSOLUTE TEMPERATURE [K]"}, - /* 235 */ {"stmt", "TIME MEAN DEEP SOIL TEMPERATURE [K]"}, - /* 236 */ {"ommt", "TIME MEAN DERIVED OMEGA [Pa/s]"}, - /* 237 */ {"dvmt", "TIME MEAN DIVERGENCE [1/s]"}, - /* 238 */ {"zhmt", "TIME MEAN GEOPOTENTIAL HEIGHT [m]"}, - /* 239 */ {"lnmt", "TIME MEAN LOG SURFACE PRESSURE [ln(cbar)]"}, - /* 240 */ {"mkmt", "TIME MEAN MASK [-/+]"}, - /* 241 */ {"vvmt", "TIME MEAN MERIDIONAL WIND (V) [m/s]"}, - /* 242 */ {"omtm", "TIME MEAN OMEGA [cbar/s]"}, - /* 243 */ {"ptmt", "TIME MEAN POTENTIAL TEMPERATURE [K]"}, - /* 244 */ {"pcmt", "TIME MEAN PRECIP. WATER [kg/m2]"}, - /* 245 */ {"rhmt", "TIME MEAN RELATIVE HUMIDITY [%]"}, - /* 246 */ {"mpmt", "TIME MEAN SEA LEVEL PRESSURE [hPa]"}, - /* 247 */ {"simt", "TIME MEAN SIGMADOT [1/s]"}, - /* 248 */ {"uemt", "TIME MEAN SPECIFIC HUMIDITY [kg/kg]"}, - /* 249 */ {"fcmt", "TIME MEAN STREAM FUNCTION| m2/s]"}, - /* 250 */ {"psmt", "TIME MEAN SURFACE PRESSURE [hPa]"}, - /* 251 */ {"tmmt", "TIME MEAN SURFACE TEMPERATURE [K]"}, - /* 252 */ {"pvmt", "TIME MEAN VELOCITY POTENTIAL [m2/s]"}, - /* 253 */ {"tvmt", "TIME MEAN VIRTUAL TEMPERATURE [K]"}, - /* 254 */ {"vtmt", "TIME MEAN VORTICITY [1/s]"}, - /* 255 */ {"uvmt", "TIME MEAN ZONAL WIND (U) [m/s]"}, + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"PRES", "Pressure [hPa]"}, + /* 2 */ {"psnm", "Pressure reduced to MSL [hPa]"}, + /* 3 */ {"tsps", "Pressure tendency [Pa/s]"}, + /* 4 */ {"var4", "undefined"}, + /* 5 */ {"var5", "undefined"}, + /* 6 */ {"geop", "Geopotential [dam]"}, + /* 7 */ {"zgeo", "Geopotential height [gpm]"}, + /* 8 */ {"gzge", "Geometric height [m]"}, + /* 9 */ {"var9", "undefined"}, + /* 10 */ {"var10", "undefined"}, + /* 11 */ {"temp", "ABSOLUTE TEMPERATURE [K]"}, + /* 12 */ {"vtmp", "VIRTUAL TEMPERATURE [K]"}, + /* 13 */ {"ptmp", "POTENTIAL TEMPERATURE [K]"}, + /* 14 */ {"psat", "PSEUDO-ADIABATIC POTENTIAL TEMPERATURE [K]"}, + /* 15 */ {"mxtp", "MAXIMUM TEMPERATURE [K]"}, + /* 16 */ {"mntp", "MINIMUM TEMPERATURE [K]"}, + /* 17 */ {"tpor", "DEW POINT TEMPERATURE [K]"}, + /* 18 */ {"dptd", "DEW POINT DEPRESSION [K]"}, + /* 19 */ {"lpsr", "LAPSE RATE [K/m]"}, + /* 20 */ {"var20", "undefined"}, + /* 21 */ {"rds1", "RADAR SPECTRA(1) [non-dim]"}, + /* 22 */ {"rds2", "RADAR SPECTRA(2) [non-dim]"}, + /* 23 */ {"rds3", "RADAR SPECTRA(3) [non-dim]"}, + /* 24 */ {"var24", "undefined"}, + /* 25 */ {"tpan", "TEMPERATURE ANOMALY [K]"}, + /* 26 */ {"psan", "PRESSURE ANOMALY [Pa hPa]"}, + /* 27 */ {"zgan", "GEOPOT HEIGHT ANOMALY [m]"}, + /* 28 */ {"wvs1", "WAVE SPECTRA(1) [non-dim]"}, + /* 29 */ {"wvs2", "WAVE SPECTRA(2) [non-dim]"}, + /* 30 */ {"wvs3", "WAVE SPECTRA(3) [non-dim]"}, + /* 31 */ {"wind", "WIND DIRECTION [deg]"}, + /* 32 */ {"wins", "WIND SPEED [m/s]"}, + /* 33 */ {"uvel", "ZONAL WIND (U) [m/s]"}, + /* 34 */ {"vvel", "MERIDIONAL WIND (V) [m/s]"}, + /* 35 */ {"fcor", "STREAM FUNCTION [m2/s]"}, + /* 36 */ {"potv", "VELOCITY POTENTIAL [m2/s]"}, + /* 37 */ {"var37", "undefined"}, + /* 38 */ {"sgvv", "SIGMA COORD VERT VEL [sec/sec]"}, + /* 39 */ {"omeg", "OMEGA [Pa/s]"}, + /* 40 */ {"omg2", "VERTICAL VELOCITY [m/s]"}, + /* 41 */ {"abvo", "ABSOLUTE VORTICITY [10**5/sec]"}, + /* 42 */ {"abdv", "ABSOLUTE DIVERGENCE [10**5/sec]"}, + /* 43 */ {"vort", "VORTICITY [1/s]"}, + /* 44 */ {"divg", "DIVERGENCE [1/s]"}, + /* 45 */ {"vucs", "VERTICAL U-COMP SHEAR [1/sec]"}, + /* 46 */ {"vvcs", "VERT V-COMP SHEAR [1/sec]"}, + /* 47 */ {"dirc", "DIRECTION OF CURRENT [deg]"}, + /* 48 */ {"spdc", "SPEED OF CURRENT [m/s]"}, + /* 49 */ {"ucpc", "U-COMPONENT OF CURRENT [m/s]"}, + /* 50 */ {"vcpc", "V-COMPONENT OF CURRENT [m/s]"}, + /* 51 */ {"umes", "SPECIFIC HUMIDITY [kg/kg]"}, + /* 52 */ {"umrl", "RELATIVE HUMIDITY [no Dim]"}, + /* 53 */ {"hmxr", "HUMIDITY MIXING RATIO [kg/kg]"}, + /* 54 */ {"agpl", "INST. PRECIPITABLE WATER [Kg/m2]"}, + /* 55 */ {"vapp", "VAPOUR PRESSURE [Pa hpa]"}, + /* 56 */ {"sadf", "SATURATION DEFICIT [Pa hPa]"}, + /* 57 */ {"evap", "EVAPORATION [Kg/m2/day]"}, + /* 58 */ {"var58", "undefined"}, + /* 59 */ {"prcr", "PRECIPITATION RATE [kg/m2/day]"}, + /* 60 */ {"thpb", "THUNDER PROBABILITY [%]"}, + /* 61 */ {"prec", "TOTAL PRECIPITATION [Kg/m2/day]"}, + /* 62 */ {"prge", "LARGE SCALE PRECIPITATION [Kg/m2/day]"}, + /* 63 */ {"prcv", "CONVECTIVE PRECIPITATION [Kg/m2/day]"}, + /* 64 */ {"neve", "SNOWFALL [Kg/m2/day]"}, + /* 65 */ {"wenv", "WAT EQUIV ACC SNOW DEPTH [kg/m2]"}, + /* 66 */ {"nvde", "SNOW DEPTH [cm]"}, + /* 67 */ {"mxld", "MIXED LAYER DEPTH [m cm]"}, + /* 68 */ {"tthd", "TRANS THERMOCLINE DEPTH [m cm]"}, + /* 69 */ {"mthd", "MAIN THERMOCLINE DEPTH [m cm]"}, + /* 70 */ {"mtha", "MAIN THERMOCLINE ANOM [m cm]"}, + /* 71 */ {"cbnv", "CLOUD COVER [0-1]"}, + /* 72 */ {"cvnv", "CONVECTIVE CLOUD COVER [0-1]"}, + /* 73 */ {"lwnv", "LOW CLOUD COVER [0-1]"}, + /* 74 */ {"mdnv", "MEDIUM CLOUD COVER [0-1]"}, + /* 75 */ {"hinv", "HIGH CLOUD COVER [0-1]"}, + /* 76 */ {"wtnv", "CLOUD WATER [kg/m2]"}, + /* 77 */ {"bli", "BEST LIFTED INDEX (TO 500 HPA) [K]"}, + /* 78 */ {"var78", "undefined"}, + /* 79 */ {"var79", "undefined"}, + /* 80 */ {"var80", "undefined"}, + /* 81 */ {"lsmk", "LAND SEA MASK [0,1]"}, + /* 82 */ {"dslm", "DEV SEA_LEV FROM MEAN [m]"}, + /* 83 */ {"zorl", "ROUGHNESS LENGTH [m]"}, + /* 84 */ {"albe", "ALBEDO [%]"}, + /* 85 */ {"dstp", "DEEP SOIL TEMPERATURE [K]"}, + /* 86 */ {"soic", "SOIL MOISTURE CONTENT [Kg/m2]"}, + /* 87 */ {"vege", "VEGETATION [%]"}, + /* 88 */ {"var88", "undefined"}, + /* 89 */ {"dens", "DENSITY [kg/m3]"}, + /* 90 */ {"var90", "Undefined"}, + /* 91 */ {"icec", "ICE CONCENTRATION [fraction]"}, + /* 92 */ {"icet", "ICE THICKNESS [m]"}, + /* 93 */ {"iced", "DIRECTION OF ICE DRIFT [deg]"}, + /* 94 */ {"ices", "SPEED OF ICE DRIFT [m/s]"}, + /* 95 */ {"iceu", "U-COMP OF ICE DRIFT [m/s]"}, + /* 96 */ {"icev", "V-COMP OF ICE DRIFT [m/s]"}, + /* 97 */ {"iceg", "ICE GROWTH [m]"}, + /* 98 */ {"icdv", "ICE DIVERGENCE [sec/sec]"}, + /* 99 */ {"var99", "undefined"}, + /* 100 */ {"shcw", "SIG HGT COM WAVE/SWELL [m]"}, + /* 101 */ {"wwdi", "DIRECTION OF WIND WAVE [deg]"}, + /* 102 */ {"wwsh", "SIG HGHT OF WIND WAVES [m]"}, + /* 103 */ {"wwmp", "MEAN PERIOD WIND WAVES [sec]"}, + /* 104 */ {"swdi", "DIRECTION OF SWELL WAVE [deg]"}, + /* 105 */ {"swsh", "SIG HEIGHT SWELL WAVES [m]"}, + /* 106 */ {"swmp", "MEAN PERIOD SWELL WAVES [sec]"}, + /* 107 */ {"prwd", "PRIMARY WAVE DIRECTION [deg]"}, + /* 108 */ {"prmp", "PRIM WAVE MEAN PERIOD [s]"}, + /* 109 */ {"swdi", "SECOND WAVE DIRECTION [deg]"}, + /* 110 */ {"swmp", "SECOND WAVE MEAN PERIOD [s]"}, + /* 111 */ {"ocas", "SHORT WAVE ABSORBED AT GROUND [W/m2]"}, + /* 112 */ {"slds", "NET LONG WAVE AT BOTTOM [W/m2]"}, + /* 113 */ {"nswr", "NET SHORT-WAV RAD(TOP) [W/m2]"}, + /* 114 */ {"role", "OUTGOING LONG WAVE AT TOP [W/m2]"}, + /* 115 */ {"lwrd", "LONG-WAV RAD [W/m2]"}, + /* 116 */ {"swea", "SHORT WAVE ABSORBED BY EARTH/ATMOSPHERE [W/m2]"}, + /* 117 */ {"glbr", "GLOBAL RADIATION [W/m2 ]"}, + /* 118 */ {"var118", "undefined"}, + /* 119 */ {"var119", "undefined"}, + /* 120 */ {"var120", "undefined"}, + /* 121 */ {"clsf", "LATENT HEAT FLUX FROM SURFACE [W/m2]"}, + /* 122 */ {"cssf", "SENSIBLE HEAT FLUX FROM SURFACE [W/m2]"}, + /* 123 */ {"blds", "BOUND LAYER DISSIPATION [W/m2]"}, + /* 124 */ {"var124", "undefined"}, + /* 125 */ {"var125", "undefined"}, + /* 126 */ {"var126", "undefined"}, + /* 127 */ {"imag", "IMAGE [image^data]"}, + /* 128 */ {"tp2m", "2 METRE TEMPERATURE [K]"}, + /* 129 */ {"dp2m", "2 METRE DEWPOINT TEMPERATURE [K]"}, + /* 130 */ {"u10m", "10 METRE U-WIND COMPONENT [m/s]"}, + /* 131 */ {"v10m", "10 METRE V-WIND COMPONENT [m/s]"}, + /* 132 */ {"topo", "TOPOGRAPHY [m]"}, + /* 133 */ {"gsfp", "GEOMETRIC MEAN SURFACE PRESSURE [hPa]"}, + /* 134 */ {"lnsp", "LN SURFACE PRESSURE [hPa]"}, + /* 135 */ {"pslc", "SURFACE PRESSURE [hPa]"}, + /* 136 */ {"pslm", "M S L PRESSURE (MESINGER METHOD) [hPa]"}, + /* 137 */ {"mask", "MASK [-/+]"}, + /* 138 */ {"mxwu", "MAXIMUM U-WIND [m/s]"}, + /* 139 */ {"mxwv", "MAXIMUM V-WIND [m/s]"}, + /* 140 */ {"cape", "CONVECTIVE AVAIL. POT.ENERGY [m2/s2]"}, + /* 141 */ {"cine", "CONVECTIVE INHIB. ENERGY [m2/s2]"}, + /* 142 */ {"lhcv", "CONVECTIVE LATENT HEATING [K/s]"}, + /* 143 */ {"mscv", "CONVECTIVE MOISTURE SOURCE [1/s]"}, + /* 144 */ {"scvm", "SHALLOW CONV. MOISTURE SOURCE [1/s]"}, + /* 145 */ {"scvh", "SHALLOW CONVECTIVE HEATING [K/s]"}, + /* 146 */ {"mxwp", "MAXIMUM WIND PRESS. LVL [hPa]"}, + /* 147 */ {"ustr", "STORM MOTION U-COMPONENT [m/s]"}, + /* 148 */ {"vstr", "STORM MOTION V-COMPONENT [m/s]"}, + /* 149 */ {"cbnt", "MEAN CLOUD COVER [0-1]"}, + /* 150 */ {"pcbs", "PRESSURE AT CLOUD BASE [hPa]"}, + /* 151 */ {"pctp", "PRESSURE AT CLOUD TOP [hPa]"}, + /* 152 */ {"fzht", "FREEZING LEVEL HEIGHT [m]"}, + /* 153 */ {"fzrh", "FREEZING LEVEL RELATIVE HUMIDITY [%]"}, + /* 154 */ {"fdlt", "FLIGHT LEVELS TEMPERATURE [K]"}, + /* 155 */ {"fdlu", "FLIGHT LEVELS U-WIND [m/s]"}, + /* 156 */ {"fdlv", "FLIGHT LEVELS V-WIND [m/s]"}, + /* 157 */ {"tppp", "TROPOPAUSE PRESSURE [hPa]"}, + /* 158 */ {"tppt", "TROPOPAUSE TEMPERATURE [K]"}, + /* 159 */ {"tppu", "TROPOPAUSE U-WIND COMPONENT [m/s]"}, + /* 160 */ {"tppv", "TROPOPAUSE v-WIND COMPONENT [m/s]"}, + /* 161 */ {"var161", "undefined"}, + /* 162 */ {"gvdu", "GRAVITY WAVE DRAG DU/DT [m/s2]"}, + /* 163 */ {"gvdv", "GRAVITY WAVE DRAG DV/DT [m/s2]"}, + /* 164 */ {"gvus", "GRAVITY WAVE DRAG SFC ZONAL STRESS [Pa]"}, + /* 165 */ {"gvvs", "GRAVITY WAVE DRAG SFC MERIDIONAL STRESS [Pa]"}, + /* 166 */ {"var166", "undefined"}, + /* 167 */ {"dvsh", "DIVERGENCE OF SPECIFIC HUMIDITY [1/s]"}, + /* 168 */ {"hmfc", "HORIZ. MOISTURE FLUX CONV. [1/s]"}, + /* 169 */ {"vmfl", "VERT. INTEGRATED MOISTURE FLUX CONV. [kg/(m2*s)]"}, + /* 170 */ {"vadv", "VERTICAL MOISTURE ADVECTION [kg/(kg*s)]"}, + /* 171 */ {"nhcm", "NEG. HUM. CORR. MOISTURE SOURCE [kg/(kg*s)]"}, + /* 172 */ {"lglh", "LARGE SCALE LATENT HEATING [K/s]"}, + /* 173 */ {"lgms", "LARGE SCALE MOISTURE SOURCE [1/s]"}, + /* 174 */ {"smav", "SOIL MOISTURE AVAILABILITY [0-1]"}, + /* 175 */ {"tgrz", "SOIL TEMPERATURE OF ROOT ZONE [K]"}, + /* 176 */ {"bslh", "BARE SOIL LATENT HEAT [Ws/m2]"}, + /* 177 */ {"evpp", "POTENTIAL SFC EVAPORATION [m]"}, + /* 178 */ {"rnof", "RUNOFF [kg/m2/s)]"}, + /* 179 */ {"pitp", "INTERCEPTION LOSS [W/m2]"}, + /* 180 */ {"vpca", "VAPOR PRESSURE OF CANOPY AIR SPACE [mb]"}, + /* 181 */ {"qsfc", "SURFACE SPEC HUMIDITY [kg/kg]"}, + /* 182 */ {"ussl", "SOIL WETNESS OF SURFACE [0-1]"}, + /* 183 */ {"uzrs", "SOIL WETNESS OF ROOT ZONE [0-1]"}, + /* 184 */ {"uzds", "SOIL WETNESS OF DRAINAGE ZONE [0-1]"}, + /* 185 */ {"amdl", "STORAGE ON CANOPY [m]"}, + /* 186 */ {"amsl", "STORAGE ON GROUND [m]"}, + /* 187 */ {"tsfc", "SURFACE TEMPERATURE [K]"}, + /* 188 */ {"tems", "SURFACE ABSOLUTE TEMPERATURE [K]"}, + /* 189 */ {"tcas", "TEMPERATURE OF CANOPY AIR SPACE [K]"}, + /* 190 */ {"ctmp", "TEMPERATURE AT CANOPY [K]"}, + /* 191 */ {"tgsc", "GROUND/SURFACE COVER TEMPERATURE [K]"}, + /* 192 */ {"uves", "SURFACE ZONAL WIND (U) [m/s]"}, + /* 193 */ {"usst", "SURFACE ZONAL WIND STRESS [Pa]"}, + /* 194 */ {"vves", "SURFACE MERIDIONAL WIND (V) [m/s]"}, + /* 195 */ {"vsst", "SURFACE MERIDIONAL WIND STRESS [Pa]"}, + /* 196 */ {"suvf", "SURFACE MOMENTUM FLUX [W/m2]"}, + /* 197 */ {"iswf", "INCIDENT SHORT WAVE FLUX [W/m2]"}, + /* 198 */ {"ghfl", "TIME AVE GROUND HT FLX [W/m2]"}, + /* 199 */ {"var199", "undefined"}, + /* 200 */ {"lwbc", "NET LONG WAVE AT BOTTOM (CLEAR) [W/m2]"}, + /* 201 */ {"lwtc", "OUTGOING LONG WAVE AT TOP (CLEAR) [W/m2]"}, + /* 202 */ {"swec", "SHORT WV ABSRBD BY EARTH/ATMOS (CLEAR) [W/m2]"}, + /* 203 */ {"ocac", "SHORT WAVE ABSORBED AT GROUND (CLEAR) [W/m2]"}, + /* 204 */ {"var204", "undefined"}, + /* 205 */ {"lwrh", "LONG WAVE RADIATIVE HEATING [K/s]"}, + /* 206 */ {"swrh", "SHORT WAVE RADIATIVE HEATING [K/s]"}, + /* 207 */ {"olis", "DOWNWARD LONG WAVE AT BOTTOM [W/m2]"}, + /* 208 */ {"olic", "DOWNWARD LONG WAVE AT BOTTOM (CLEAR) [W/m2]"}, + /* 209 */ {"ocis", "DOWNWARD SHORT WAVE AT GROUND [W/m2]"}, + /* 210 */ {"ocic", "DOWNWARD SHORT WAVE AT GROUND (CLEAR) [W/m2]"}, + /* 211 */ {"oles", "UPWARD LONG WAVE AT BOTTOM [W/m2]"}, + /* 212 */ {"oces", "UPWARD SHORT WAVE AT GROUND [W/m2]"}, + /* 213 */ {"swgc", "UPWARD SHORT WAVE AT GROUND (CLEAR) [W/m2]"}, + /* 214 */ {"roce", "UPWARD SHORT WAVE AT TOP [W/m2]"}, + /* 215 */ {"swtc", "UPWARD SHORT WAVE AT TOP (CLEAR) [W/m2]"}, + /* 216 */ {"var216", "undefined"}, + /* 217 */ {"var217", "undefined"}, + /* 218 */ {"hhdf", "HORIZONTAL HEATING DIFFUSION [K/s]"}, + /* 219 */ {"hmdf", "HORIZONTAL MOISTURE DIFFUSION [1/s]"}, + /* 220 */ {"hddf", "HORIZONTAL DIVERGENCE DIFFUSION [1/s2]"}, + /* 221 */ {"hvdf", "HORIZONTAL VORTICITY DIFFUSION [1/s2]"}, + /* 222 */ {"vdms", "VERTICAL DIFF. MOISTURE SOURCE [1/s]"}, + /* 223 */ {"vdfu", "VERTICAL DIFFUSION DU/DT [m/s2]"}, + /* 224 */ {"vdfv", "VERTICAL DIFFUSION DV/DT [m/s2]"}, + /* 225 */ {"vdfh", "VERTICAL DIFFUSION HEATING [K/s]"}, + /* 226 */ {"umrs", "SURFACE RELATIVE HUMIDITY [no Dim]"}, + /* 227 */ {"vdcc", "VERTICAL DIST TOTAL CLOUD COVER [no Dim]"}, + /* 228 */ {"var228", "undefined"}, + /* 229 */ {"var229", "undefined"}, + /* 230 */ {"usmt", "TIME MEAN SURFACE ZONAL WIND (U) [m/s]"}, + /* 231 */ {"vsmt", "TIME MEAN SURFACE MERIDIONAL WIND (V) [m/s]"}, + /* 232 */ {"tsmt", "TIME MEAN SURFACE ABSOLUTE TEMPERATURE [K]"}, + /* 233 */ {"rsmt", "TIME MEAN SURFACE RELATIVE HUMIDITY [no Dim]"}, + /* 234 */ {"atmt", "TIME MEAN ABSOLUTE TEMPERATURE [K]"}, + /* 235 */ {"stmt", "TIME MEAN DEEP SOIL TEMPERATURE [K]"}, + /* 236 */ {"ommt", "TIME MEAN DERIVED OMEGA [Pa/s]"}, + /* 237 */ {"dvmt", "TIME MEAN DIVERGENCE [1/s]"}, + /* 238 */ {"zhmt", "TIME MEAN GEOPOTENTIAL HEIGHT [m]"}, + /* 239 */ {"lnmt", "TIME MEAN LOG SURFACE PRESSURE [ln(cbar)]"}, + /* 240 */ {"mkmt", "TIME MEAN MASK [-/+]"}, + /* 241 */ {"vvmt", "TIME MEAN MERIDIONAL WIND (V) [m/s]"}, + /* 242 */ {"omtm", "TIME MEAN OMEGA [cbar/s]"}, + /* 243 */ {"ptmt", "TIME MEAN POTENTIAL TEMPERATURE [K]"}, + /* 244 */ {"pcmt", "TIME MEAN PRECIP. WATER [kg/m2]"}, + /* 245 */ {"rhmt", "TIME MEAN RELATIVE HUMIDITY [%]"}, + /* 246 */ {"mpmt", "TIME MEAN SEA LEVEL PRESSURE [hPa]"}, + /* 247 */ {"simt", "TIME MEAN SIGMADOT [1/s]"}, + /* 248 */ {"uemt", "TIME MEAN SPECIFIC HUMIDITY [kg/kg]"}, + /* 249 */ {"fcmt", "TIME MEAN STREAM FUNCTION| m2/s]"}, + /* 250 */ {"psmt", "TIME MEAN SURFACE PRESSURE [hPa]"}, + /* 251 */ {"tmmt", "TIME MEAN SURFACE TEMPERATURE [K]"}, + /* 252 */ {"pvmt", "TIME MEAN VELOCITY POTENTIAL [m2/s]"}, + /* 253 */ {"tvmt", "TIME MEAN VIRTUAL TEMPERATURE [K]"}, + /* 254 */ {"vtmt", "TIME MEAN VORTICITY [1/s]"}, + /* 255 */ {"uvmt", "TIME MEAN ZONAL WIND (U) [m/s]"}, }; const struct ParmTable parm_table_jra55_200[256] = { - /* 0 */ {"var0", "undefined"}, - /* 1 */ {"PRES", "Pressure [Pa]"}, - /* 2 */ {"PRMSL", "Pressure reduced to MSL [Pa]"}, - /* 3 */ {"var3", "undefined"}, - /* 4 */ {"pVOR", "Potential vorticity [K*m^2/kg/s]"}, - /* 5 */ {"var5", "undefined"}, - /* 6 */ {"GP", "Geopotential [m^2/s^2]"}, - /* 7 */ {"HGT", "Geopotential height [gpm]"}, - /* 8 */ {"var8", "undefined"}, - /* 9 */ {"var9", "undefined"}, - /* 10 */ {"TOZNE", "Total ozone [Dobson]"}, - /* 11 */ {"TMP", "Temperature [K]"}, - /* 12 */ {"var12", "undefined"}, - /* 13 */ {"POT", "Potential temperature [K]"}, - /* 14 */ {"var14", "undefined"}, - /* 15 */ {"TMAX", "Maximum temperature [K]"}, - /* 16 */ {"TMIN", "Minimum temperature [K]"}, - /* 17 */ {"var17", "undefined"}, - /* 18 */ {"DEPR", "Dew-point depression [K]"}, - /* 19 */ {"var19", "undefined"}, - /* 20 */ {"var20", "undefined"}, - /* 21 */ {"var21", "undefined"}, - /* 22 */ {"var22", "undefined"}, - /* 23 */ {"var23", "undefined"}, - /* 24 */ {"var24", "undefined"}, - /* 25 */ {"var25", "undefined"}, - /* 26 */ {"var26", "undefined"}, - /* 27 */ {"var27", "undefined"}, - /* 28 */ {"var28", "undefined"}, - /* 29 */ {"var29", "undefined"}, - /* 30 */ {"var30", "undefined"}, - /* 31 */ {"var31", "undefined"}, - /* 32 */ {"var32", "undefined"}, - /* 33 */ {"UGRD", "u-component of wind [m/s]"}, - /* 34 */ {"VGRD", "v-component of wind [m/s]"}, - /* 35 */ {"STRM", "Stream function [m^2/s]"}, - /* 36 */ {"VPOT", "Velocity potential [m^2/s]"}, - /* 37 */ {"MNTSF", "Montgomery stream function [m^2/s^2]"}, - /* 38 */ {"var38", "undefined"}, - /* 39 */ {"VVEL", "Vertical velocity [Pa/s]"}, - /* 40 */ {"var40", "undefined"}, - /* 41 */ {"var41", "undefined"}, - /* 42 */ {"var42", "undefined"}, - /* 43 */ {"RELV", "Relative vorticity [1/s]"}, - /* 44 */ {"RELD", "Relative divergence [1/s]"}, - /* 45 */ {"var45", "undefined"}, - /* 46 */ {"var46", "undefined"}, - /* 47 */ {"var47", "undefined"}, - /* 48 */ {"var48", "undefined"}, - /* 49 */ {"var49", "undefined"}, - /* 50 */ {"var50", "undefined"}, - /* 51 */ {"SPFH", "Specific humidity [kg/kg]"}, - /* 52 */ {"RH", "Relative humidity [%]"}, - /* 53 */ {"var53", "undefined"}, - /* 54 */ {"PWAT", "Precipitable water [kg/m^2]"}, - /* 55 */ {"var55", "undefined"}, - /* 56 */ {"var56", "undefined"}, - /* 57 */ {"EVP", "Evaporation [mm/day]"}, - /* 58 */ {"CICE", "Cloud ice [kg/m^2]"}, - /* 59 */ {"var59", "undefined"}, - /* 60 */ {"var60", "undefined"}, - /* 61 */ {"TPRAT", "Total precipitation [mm/day]"}, - /* 62 */ {"LPRAT", "Large scale precipitation [mm/day]"}, - /* 63 */ {"CPRAT", "Convective precipitation [mm/day]"}, - /* 64 */ {"SRWEQ", "Snowfall rate water equivalent [mm/day]"}, - /* 65 */ {"SnWe", "Water equivalent of accumulated snow depth [kg/m^2]"}, - /* 66 */ {"SnowD", "Snow depth [m]"}, - /* 67 */ {"var67", "undefined"}, - /* 68 */ {"var68", "undefined"}, - /* 69 */ {"var69", "undefined"}, - /* 70 */ {"var70", "undefined"}, - /* 71 */ {"TCDC", "Total cloud cover [%]"}, - /* 72 */ {"var72", "undefined"}, - /* 73 */ {"LCDC", "Low cloud cover [%]"}, - /* 74 */ {"MCDC", "Medium cloud cover [%]"}, - /* 75 */ {"HCDC", "High cloud cover [%]"}, - /* 76 */ {"var76", "undefined"}, - /* 77 */ {"var77", "undefined"}, - /* 78 */ {"var78", "undefined"}, - /* 79 */ {"var79", "undefined"}, - /* 80 */ {"var80", "undefined"}, - /* 81 */ {"LAND", "Land cover (1 = land, 0 = sea) [Proportion]"}, - /* 82 */ {"var82", "undefined"}, - /* 83 */ {"SFCR", "Surface roughness [m]"}, - /* 84 */ {"var84", "undefined"}, - /* 85 */ {"SoilT", "Soil temperature [K]"}, - /* 86 */ {"var86", "undefined"}, - /* 87 */ {"var87", "undefined"}, - /* 88 */ {"var88", "undefined"}, - /* 89 */ {"var89", "undefined"}, - /* 90 */ {"ROF", "Water run-off [mm/day]"}, - /* 91 */ {"ICEC", "Ice cover (1 = ice, 0 = no ice) [Proportion]"}, - /* 92 */ {"var92", "undefined"}, - /* 93 */ {"var93", "undefined"}, - /* 94 */ {"var94", "undefined"}, - /* 95 */ {"var95", "undefined"}, - /* 96 */ {"var96", "undefined"}, - /* 97 */ {"var97", "undefined"}, - /* 98 */ {"var98", "undefined"}, - /* 99 */ {"var99", "undefined"}, - /* 100 */ {"var100", "undefined"}, - /* 101 */ {"var101", "undefined"}, - /* 102 */ {"var102", "undefined"}, - /* 103 */ {"var103", "undefined"}, - /* 104 */ {"var104", "undefined"}, - /* 105 */ {"var105", "undefined"}, - /* 106 */ {"var106", "undefined"}, - /* 107 */ {"var107", "undefined"}, - /* 108 */ {"var108", "undefined"}, - /* 109 */ {"var109", "undefined"}, - /* 110 */ {"var110", "undefined"}, - /* 111 */ {"var111", "undefined"}, - /* 112 */ {"var112", "undefined"}, - /* 113 */ {"var113", "undefined"}, - /* 114 */ {"var114", "undefined"}, - /* 115 */ {"var115", "undefined"}, - /* 116 */ {"var116", "undefined"}, - /* 117 */ {"var117", "undefined"}, - /* 118 */ {"BRTMP", "Brightness temperature [K]"}, - /* 119 */ {"var119", "undefined"}, - /* 120 */ {"var120", "undefined"}, - /* 121 */ {"LHTFL", "Latent heat flux [W/m^2]"}, - /* 122 */ {"SHTFL", "Sensible heat flux [W/m^2]"}, - /* 123 */ {"var123", "undefined"}, - /* 124 */ {"UFLX", "Momentum flux, u-component [N/m^2]"}, - /* 125 */ {"VFLX", "Momentum flux, v-component [N/m^2]"}, - /* 126 */ {"var126", "undefined"}, - /* 127 */ {"var127", "undefined"}, - /* 128 */ {"var128", "undefined"}, - /* 129 */ {"var129", "undefined"}, - /* 130 */ {"var130", "undefined"}, - /* 131 */ {"var131", "undefined"}, - /* 132 */ {"BVF2", "Square of Brunt-Vaisala frequency [1/s^2]"}, - /* 133 */ {"var133", "undefined"}, - /* 134 */ {"var134", "undefined"}, - /* 135 */ {"var135", "undefined"}, - /* 136 */ {"var136", "undefined"}, - /* 137 */ {"var137", "undefined"}, - /* 138 */ {"var138", "undefined"}, - /* 139 */ {"var139", "undefined"}, - /* 140 */ {"var140", "undefined"}, - /* 141 */ {"var141", "undefined"}, - /* 142 */ {"var142", "undefined"}, - /* 143 */ {"var143", "undefined"}, - /* 144 */ {"TSC", "Canopy temperature [K]"}, - /* 145 */ {"TSG", "Ground temperature [K]"}, - /* 146 */ {"CWORK", "Cloud work function [J/kg]"}, - /* 147 */ {"FGLU", "Zonal momentum flux by long gravity wave [N/m^2]"}, - /* 148 */ {"FGLV", "Meridional momentum flux by long gravity wave [N/m^2]"}, - /* 149 */ {"var149", "undefined"}, - /* 150 */ {"var150", "undefined"}, - /* 151 */ {"ADUA", "Adiabatic zonal acceleration [m/s/day]"}, - /* 152 */ {"VWV", "Meridional water vapour flux [Kg/m/s]"}, - /* 153 */ {"var153", "undefined"}, - /* 154 */ {"FGSV", "Meridional momentum flux by short gravity wave [N/m^2]"}, - /* 155 */ {"GFLX", "Ground heat flux [W/m^2]"}, - /* 156 */ {"var156", "undefined"}, - /* 157 */ {"UWV", "Zonal water vapour flux [kg/m/s]"}, - /* 158 */ {"var158", "undefined"}, - /* 159 */ {"FGSU", "Zonal momentum flux by short gravity wave [N/m^2]"}, - /* 160 */ {"CSUSF", "Clear sky upward solar radiation flux [W/m^2]"}, - /* 161 */ {"CSDSF", "Clear sky downward solar radiation flux [W/m^2]"}, - /* 162 */ {"CSULF", "Clear sky upward long wave radiation flux [W/m^2]"}, - /* 163 */ {"CSDLF", "Clear sky downward long wave radiation flux [W/m^2]"}, - /* 164 */ {"var164", "undefined"}, - /* 165 */ {"ADVA", "Adiabatic meridional acceleration [m/s/day]"}, - /* 166 */ {"var166", "undefined"}, - /* 167 */ {"var167", "undefined"}, - /* 168 */ {"var168", "undefined"}, - /* 169 */ {"var169", "undefined"}, - /* 170 */ {"FRCV", "Frequency of deep convection [%]"}, - /* 171 */ {"FRCVS", "Frequency of shallow convection [%]"}, - /* 172 */ {"FRSC", "Frequency of stratocumulus parameterisation [%]"}, - /* 173 */ {"GWDUA", "Gravity wave zonal acceleration [m/s/day]"}, - /* 174 */ {"GWDVA", "Gravity wave meridional acceleration [m/s/day]"}, - /* 175 */ {"var175", "undefined"}, - /* 176 */ {"var176", "undefined"}, - /* 177 */ {"var177", "undefined"}, - /* 178 */ {"var178", "undefined"}, - /* 179 */ {"var179", "undefined"}, - /* 180 */ {"var180", "undefined"}, - /* 181 */ {"var181", "undefined"}, - /* 182 */ {"var182", "undefined"}, - /* 183 */ {"var183", "undefined"}, - /* 184 */ {"var184", "undefined"}, - /* 185 */ {"var185", "undefined"}, - /* 186 */ {"var186", "undefined"}, - /* 187 */ {"var187", "undefined"}, - /* 188 */ {"var188", "undefined"}, - /* 189 */ {"var189", "undefined"}, - /* 190 */ {"UTHE", "Zonal thermal energy flux [W/m]"}, - /* 191 */ {"VTHE", "Meridional thermal energy flux [W/m]"}, - /* 192 */ {"var192", "undefined"}, - /* 193 */ {"var193", "undefined"}, - /* 194 */ {"var194", "undefined"}, - /* 195 */ {"var195", "undefined"}, - /* 196 */ {"var196", "undefined"}, - /* 197 */ {"var197", "undefined"}, - /* 198 */ {"var198", "undefined"}, - /* 199 */ {"var199", "undefined"}, - /* 200 */ {"var200", "undefined"}, - /* 201 */ {"var201", "undefined"}, - /* 202 */ {"LTRS", "Evapotranspiration [W/m^2]"}, - /* 203 */ {"LINT", "Interception loss [W/m^2]"}, - /* 204 */ {"DSWRF", "Downward solar radiation flux [W/m^2]"}, - /* 205 */ {"DLWRF", "Downward long wave radiation flux [W/m^2]"}, - /* 206 */ {"var206", "undefined"}, - /* 207 */ {"var207", "undefined"}, - /* 208 */ {"var208", "undefined"}, - /* 209 */ {"var209", "undefined"}, - /* 210 */ {"var210", "undefined"}, - /* 211 */ {"USWRF", "Upward solar radiation flux [W/m^2]"}, - /* 212 */ {"ULWRF", "Upward long wave radiation flux [W/m^2]"}, - /* 213 */ {"var213", "undefined"}, - /* 214 */ {"var214", "undefined"}, - /* 215 */ {"var215", "undefined"}, - /* 216 */ {"var216", "undefined"}, - /* 217 */ {"var217", "undefined"}, - /* 218 */ {"var218", "undefined"}, - /* 219 */ {"WSMX", "Maximum wind speed [m/s]"}, - /* 220 */ {"var220", "undefined"}, - /* 221 */ {"CWAT", "Cloud water [kg/kg]"}, - /* 222 */ {"ADHR", "Adiabatic heating rate [K/day]"}, - /* 223 */ {"MSC", "Moisture storage on canopy [m]"}, - /* 224 */ {"MSG", "Moisture storage on ground/cover [m]"}, - /* 225 */ {"SoilW", "Soil wetness [Proportion]"}, - /* 226 */ {"SMC", "Mass concentration of condensed water in soil [kg/m^3]"}, - /* 227 */ {"CW", "Cloud liquid water [kg/m^2]"}, - /* 228 */ {"CLWC", "Cloud liquid water [kg/kg]"}, - /* 229 */ {"CIWC", "Cloud ice [kg/kg]"}, - /* 230 */ {"MFLXB", "Upward mass flux at cloud base [kg/m^2/s]"}, - /* 231 */ {"MFLUX", "Upward mass flux [kg/m^2/s]"}, - /* 232 */ {"var232", "undefined"}, - /* 233 */ {"var233", "undefined"}, - /* 234 */ {"var234", "undefined"}, - /* 235 */ {"var235", "undefined"}, - /* 236 */ {"ADMR", "Adiabatic moistening rate [kg/kg/day]"}, - /* 237 */ {"OZONE", "Ozone mixing ratio [mg/kg]"}, - /* 238 */ {"var238", "undefined"}, - /* 239 */ {"CNVUA", "Convective zonal acceleration [m/s/day]"}, - /* 240 */ {"CNVVA", "Convective meridional acceleration [m/s/day]"}, - /* 241 */ {"LRGHR", "Large scale condensation heating rate [K/day]"}, - /* 242 */ {"CNVHR", "Convective heating rate [k/day]"}, - /* 243 */ {"CNVMR", "Convective moistening rate [kg/kg/day]"}, - /* 244 */ {"var244", "undefined"}, - /* 245 */ {"var245", "undefined"}, - /* 246 */ {"VDFHR", "Vertical diffusion heating rate [K/day]"}, - /* 247 */ {"VDFUA", "Vertical diffusion zonal acceleration [m/s/day]"}, - /* 248 */ {"VDFVA", "Vertical diffusion meridional acceleration [m/s/day]"}, - /* 249 */ {"VDFMR", "Vertical diffusion moistening rate [kg/kg/day]"}, - /* 250 */ {"SWHR", "Solar radiative heating rate [k/day]"}, - /* 251 */ {"LWHR", "Long wave radiative heating rate [K/day]"}, - /* 252 */ {"VTYPE", "Type of vegetation"}, - /* 253 */ {"LRGMR", "Large scale moistening rate [kg/kg/day]"}, - /* 254 */ {"var254", "undefined"}, - /* 255 */ {"var255", "undefined"}, + /* 0 */ {"var0", "undefined"}, + /* 1 */ {"PRES", "Pressure [Pa]"}, + /* 2 */ {"PRMSL", "Pressure reduced to MSL [Pa]"}, + /* 3 */ {"var3", "undefined"}, + /* 4 */ {"pVOR", "Potential vorticity [K*m^2/kg/s]"}, + /* 5 */ {"var5", "undefined"}, + /* 6 */ {"GP", "Geopotential [m^2/s^2]"}, + /* 7 */ {"HGT", "Geopotential height [gpm]"}, + /* 8 */ {"var8", "undefined"}, + /* 9 */ {"var9", "undefined"}, + /* 10 */ {"TOZNE", "Total ozone [Dobson]"}, + /* 11 */ {"TMP", "Temperature [K]"}, + /* 12 */ {"var12", "undefined"}, + /* 13 */ {"POT", "Potential temperature [K]"}, + /* 14 */ {"var14", "undefined"}, + /* 15 */ {"TMAX", "Maximum temperature [K]"}, + /* 16 */ {"TMIN", "Minimum temperature [K]"}, + /* 17 */ {"var17", "undefined"}, + /* 18 */ {"DEPR", "Dew-point depression [K]"}, + /* 19 */ {"var19", "undefined"}, + /* 20 */ {"var20", "undefined"}, + /* 21 */ {"var21", "undefined"}, + /* 22 */ {"var22", "undefined"}, + /* 23 */ {"var23", "undefined"}, + /* 24 */ {"var24", "undefined"}, + /* 25 */ {"var25", "undefined"}, + /* 26 */ {"var26", "undefined"}, + /* 27 */ {"var27", "undefined"}, + /* 28 */ {"var28", "undefined"}, + /* 29 */ {"var29", "undefined"}, + /* 30 */ {"var30", "undefined"}, + /* 31 */ {"var31", "undefined"}, + /* 32 */ {"var32", "undefined"}, + /* 33 */ {"UGRD", "u-component of wind [m/s]"}, + /* 34 */ {"VGRD", "v-component of wind [m/s]"}, + /* 35 */ {"STRM", "Stream function [m^2/s]"}, + /* 36 */ {"VPOT", "Velocity potential [m^2/s]"}, + /* 37 */ {"MNTSF", "Montgomery stream function [m^2/s^2]"}, + /* 38 */ {"var38", "undefined"}, + /* 39 */ {"VVEL", "Vertical velocity [Pa/s]"}, + /* 40 */ {"var40", "undefined"}, + /* 41 */ {"var41", "undefined"}, + /* 42 */ {"var42", "undefined"}, + /* 43 */ {"RELV", "Relative vorticity [1/s]"}, + /* 44 */ {"RELD", "Relative divergence [1/s]"}, + /* 45 */ {"var45", "undefined"}, + /* 46 */ {"var46", "undefined"}, + /* 47 */ {"var47", "undefined"}, + /* 48 */ {"var48", "undefined"}, + /* 49 */ {"var49", "undefined"}, + /* 50 */ {"var50", "undefined"}, + /* 51 */ {"SPFH", "Specific humidity [kg/kg]"}, + /* 52 */ {"RH", "Relative humidity [%]"}, + /* 53 */ {"var53", "undefined"}, + /* 54 */ {"PWAT", "Precipitable water [kg/m^2]"}, + /* 55 */ {"var55", "undefined"}, + /* 56 */ {"var56", "undefined"}, + /* 57 */ {"EVP", "Evaporation [mm/day]"}, + /* 58 */ {"CICE", "Cloud ice [kg/m^2]"}, + /* 59 */ {"var59", "undefined"}, + /* 60 */ {"var60", "undefined"}, + /* 61 */ {"TPRAT", "Total precipitation [mm/day]"}, + /* 62 */ {"LPRAT", "Large scale precipitation [mm/day]"}, + /* 63 */ {"CPRAT", "Convective precipitation [mm/day]"}, + /* 64 */ {"SRWEQ", "Snowfall rate water equivalent [mm/day]"}, + /* 65 */ {"SnWe", "Water equivalent of accumulated snow depth [kg/m^2]"}, + /* 66 */ {"SnowD", "Snow depth [m]"}, + /* 67 */ {"var67", "undefined"}, + /* 68 */ {"var68", "undefined"}, + /* 69 */ {"var69", "undefined"}, + /* 70 */ {"var70", "undefined"}, + /* 71 */ {"TCDC", "Total cloud cover [%]"}, + /* 72 */ {"var72", "undefined"}, + /* 73 */ {"LCDC", "Low cloud cover [%]"}, + /* 74 */ {"MCDC", "Medium cloud cover [%]"}, + /* 75 */ {"HCDC", "High cloud cover [%]"}, + /* 76 */ {"var76", "undefined"}, + /* 77 */ {"var77", "undefined"}, + /* 78 */ {"var78", "undefined"}, + /* 79 */ {"var79", "undefined"}, + /* 80 */ {"var80", "undefined"}, + /* 81 */ {"LAND", "Land cover (1 = land, 0 = sea) [Proportion]"}, + /* 82 */ {"var82", "undefined"}, + /* 83 */ {"SFCR", "Surface roughness [m]"}, + /* 84 */ {"var84", "undefined"}, + /* 85 */ {"SoilT", "Soil temperature [K]"}, + /* 86 */ {"var86", "undefined"}, + /* 87 */ {"var87", "undefined"}, + /* 88 */ {"var88", "undefined"}, + /* 89 */ {"var89", "undefined"}, + /* 90 */ {"ROF", "Water run-off [mm/day]"}, + /* 91 */ {"ICEC", "Ice cover (1 = ice, 0 = no ice) [Proportion]"}, + /* 92 */ {"var92", "undefined"}, + /* 93 */ {"var93", "undefined"}, + /* 94 */ {"var94", "undefined"}, + /* 95 */ {"var95", "undefined"}, + /* 96 */ {"var96", "undefined"}, + /* 97 */ {"var97", "undefined"}, + /* 98 */ {"var98", "undefined"}, + /* 99 */ {"var99", "undefined"}, + /* 100 */ {"var100", "undefined"}, + /* 101 */ {"var101", "undefined"}, + /* 102 */ {"var102", "undefined"}, + /* 103 */ {"var103", "undefined"}, + /* 104 */ {"var104", "undefined"}, + /* 105 */ {"var105", "undefined"}, + /* 106 */ {"var106", "undefined"}, + /* 107 */ {"var107", "undefined"}, + /* 108 */ {"var108", "undefined"}, + /* 109 */ {"var109", "undefined"}, + /* 110 */ {"var110", "undefined"}, + /* 111 */ {"var111", "undefined"}, + /* 112 */ {"var112", "undefined"}, + /* 113 */ {"var113", "undefined"}, + /* 114 */ {"var114", "undefined"}, + /* 115 */ {"var115", "undefined"}, + /* 116 */ {"var116", "undefined"}, + /* 117 */ {"var117", "undefined"}, + /* 118 */ {"BRTMP", "Brightness temperature [K]"}, + /* 119 */ {"var119", "undefined"}, + /* 120 */ {"var120", "undefined"}, + /* 121 */ {"LHTFL", "Latent heat flux [W/m^2]"}, + /* 122 */ {"SHTFL", "Sensible heat flux [W/m^2]"}, + /* 123 */ {"var123", "undefined"}, + /* 124 */ {"UFLX", "Momentum flux, u-component [N/m^2]"}, + /* 125 */ {"VFLX", "Momentum flux, v-component [N/m^2]"}, + /* 126 */ {"var126", "undefined"}, + /* 127 */ {"var127", "undefined"}, + /* 128 */ {"var128", "undefined"}, + /* 129 */ {"var129", "undefined"}, + /* 130 */ {"var130", "undefined"}, + /* 131 */ {"var131", "undefined"}, + /* 132 */ {"BVF2", "Square of Brunt-Vaisala frequency [1/s^2]"}, + /* 133 */ {"var133", "undefined"}, + /* 134 */ {"var134", "undefined"}, + /* 135 */ {"var135", "undefined"}, + /* 136 */ {"var136", "undefined"}, + /* 137 */ {"var137", "undefined"}, + /* 138 */ {"var138", "undefined"}, + /* 139 */ {"var139", "undefined"}, + /* 140 */ {"var140", "undefined"}, + /* 141 */ {"var141", "undefined"}, + /* 142 */ {"var142", "undefined"}, + /* 143 */ {"var143", "undefined"}, + /* 144 */ {"TSC", "Canopy temperature [K]"}, + /* 145 */ {"TSG", "Ground temperature [K]"}, + /* 146 */ {"CWORK", "Cloud work function [J/kg]"}, + /* 147 */ {"FGLU", "Zonal momentum flux by long gravity wave [N/m^2]"}, + /* 148 */ {"FGLV", "Meridional momentum flux by long gravity wave [N/m^2]"}, + /* 149 */ {"var149", "undefined"}, + /* 150 */ {"var150", "undefined"}, + /* 151 */ {"ADUA", "Adiabatic zonal acceleration [m/s/day]"}, + /* 152 */ {"VWV", "Meridional water vapour flux [Kg/m/s]"}, + /* 153 */ {"var153", "undefined"}, + /* 154 */ {"FGSV", "Meridional momentum flux by short gravity wave [N/m^2]"}, + /* 155 */ {"GFLX", "Ground heat flux [W/m^2]"}, + /* 156 */ {"var156", "undefined"}, + /* 157 */ {"UWV", "Zonal water vapour flux [kg/m/s]"}, + /* 158 */ {"var158", "undefined"}, + /* 159 */ {"FGSU", "Zonal momentum flux by short gravity wave [N/m^2]"}, + /* 160 */ {"CSUSF", "Clear sky upward solar radiation flux [W/m^2]"}, + /* 161 */ {"CSDSF", "Clear sky downward solar radiation flux [W/m^2]"}, + /* 162 */ {"CSULF", "Clear sky upward long wave radiation flux [W/m^2]"}, + /* 163 */ {"CSDLF", "Clear sky downward long wave radiation flux [W/m^2]"}, + /* 164 */ {"var164", "undefined"}, + /* 165 */ {"ADVA", "Adiabatic meridional acceleration [m/s/day]"}, + /* 166 */ {"var166", "undefined"}, + /* 167 */ {"var167", "undefined"}, + /* 168 */ {"var168", "undefined"}, + /* 169 */ {"var169", "undefined"}, + /* 170 */ {"FRCV", "Frequency of deep convection [%]"}, + /* 171 */ {"FRCVS", "Frequency of shallow convection [%]"}, + /* 172 */ {"FRSC", "Frequency of stratocumulus parameterisation [%]"}, + /* 173 */ {"GWDUA", "Gravity wave zonal acceleration [m/s/day]"}, + /* 174 */ {"GWDVA", "Gravity wave meridional acceleration [m/s/day]"}, + /* 175 */ {"var175", "undefined"}, + /* 176 */ {"var176", "undefined"}, + /* 177 */ {"var177", "undefined"}, + /* 178 */ {"var178", "undefined"}, + /* 179 */ {"var179", "undefined"}, + /* 180 */ {"var180", "undefined"}, + /* 181 */ {"var181", "undefined"}, + /* 182 */ {"var182", "undefined"}, + /* 183 */ {"var183", "undefined"}, + /* 184 */ {"var184", "undefined"}, + /* 185 */ {"var185", "undefined"}, + /* 186 */ {"var186", "undefined"}, + /* 187 */ {"var187", "undefined"}, + /* 188 */ {"var188", "undefined"}, + /* 189 */ {"var189", "undefined"}, + /* 190 */ {"UTHE", "Zonal thermal energy flux [W/m]"}, + /* 191 */ {"VTHE", "Meridional thermal energy flux [W/m]"}, + /* 192 */ {"var192", "undefined"}, + /* 193 */ {"var193", "undefined"}, + /* 194 */ {"var194", "undefined"}, + /* 195 */ {"var195", "undefined"}, + /* 196 */ {"var196", "undefined"}, + /* 197 */ {"var197", "undefined"}, + /* 198 */ {"var198", "undefined"}, + /* 199 */ {"var199", "undefined"}, + /* 200 */ {"var200", "undefined"}, + /* 201 */ {"var201", "undefined"}, + /* 202 */ {"LTRS", "Evapotranspiration [W/m^2]"}, + /* 203 */ {"LINT", "Interception loss [W/m^2]"}, + /* 204 */ {"DSWRF", "Downward solar radiation flux [W/m^2]"}, + /* 205 */ {"DLWRF", "Downward long wave radiation flux [W/m^2]"}, + /* 206 */ {"var206", "undefined"}, + /* 207 */ {"var207", "undefined"}, + /* 208 */ {"var208", "undefined"}, + /* 209 */ {"var209", "undefined"}, + /* 210 */ {"var210", "undefined"}, + /* 211 */ {"USWRF", "Upward solar radiation flux [W/m^2]"}, + /* 212 */ {"ULWRF", "Upward long wave radiation flux [W/m^2]"}, + /* 213 */ {"var213", "undefined"}, + /* 214 */ {"var214", "undefined"}, + /* 215 */ {"var215", "undefined"}, + /* 216 */ {"var216", "undefined"}, + /* 217 */ {"var217", "undefined"}, + /* 218 */ {"var218", "undefined"}, + /* 219 */ {"WSMX", "Maximum wind speed [m/s]"}, + /* 220 */ {"var220", "undefined"}, + /* 221 */ {"CWAT", "Cloud water [kg/kg]"}, + /* 222 */ {"ADHR", "Adiabatic heating rate [K/day]"}, + /* 223 */ {"MSC", "Moisture storage on canopy [m]"}, + /* 224 */ {"MSG", "Moisture storage on ground/cover [m]"}, + /* 225 */ {"SoilW", "Soil wetness [Proportion]"}, + /* 226 */ {"SMC", "Mass concentration of condensed water in soil [kg/m^3]"}, + /* 227 */ {"CW", "Cloud liquid water [kg/m^2]"}, + /* 228 */ {"CLWC", "Cloud liquid water [kg/kg]"}, + /* 229 */ {"CIWC", "Cloud ice [kg/kg]"}, + /* 230 */ {"MFLXB", "Upward mass flux at cloud base [kg/m^2/s]"}, + /* 231 */ {"MFLUX", "Upward mass flux [kg/m^2/s]"}, + /* 232 */ {"var232", "undefined"}, + /* 233 */ {"var233", "undefined"}, + /* 234 */ {"var234", "undefined"}, + /* 235 */ {"var235", "undefined"}, + /* 236 */ {"ADMR", "Adiabatic moistening rate [kg/kg/day]"}, + /* 237 */ {"OZONE", "Ozone mixing ratio [mg/kg]"}, + /* 238 */ {"var238", "undefined"}, + /* 239 */ {"CNVUA", "Convective zonal acceleration [m/s/day]"}, + /* 240 */ {"CNVVA", "Convective meridional acceleration [m/s/day]"}, + /* 241 */ {"LRGHR", "Large scale condensation heating rate [K/day]"}, + /* 242 */ {"CNVHR", "Convective heating rate [k/day]"}, + /* 243 */ {"CNVMR", "Convective moistening rate [kg/kg/day]"}, + /* 244 */ {"var244", "undefined"}, + /* 245 */ {"var245", "undefined"}, + /* 246 */ {"VDFHR", "Vertical diffusion heating rate [K/day]"}, + /* 247 */ {"VDFUA", "Vertical diffusion zonal acceleration [m/s/day]"}, + /* 248 */ {"VDFVA", "Vertical diffusion meridional acceleration [m/s/day]"}, + /* 249 */ {"VDFMR", "Vertical diffusion moistening rate [kg/kg/day]"}, + /* 250 */ {"SWHR", "Solar radiative heating rate [k/day]"}, + /* 251 */ {"LWHR", "Long wave radiative heating rate [K/day]"}, + /* 252 */ {"VTYPE", "Type of vegetation"}, + /* 253 */ {"LRGMR", "Large scale moistening rate [kg/kg/day]"}, + /* 254 */ {"var254", "undefined"}, + /* 255 */ {"var255", "undefined"}, }; /* @@ -13664,11 +13666,11 @@ int BDS_NValues(unsigned char *bds) { int i = 0; if (BDS_SimplePacking(bds) && BDS_Grid(bds)) { - i = ((BDS_LEN(bds) - BDS_DataStart(bds))*8 - - BDS_UnusedBits(bds)) / (BDS_NumBits(bds)); + i = ((BDS_LEN(bds) - BDS_DataStart(bds))*8 - + BDS_UnusedBits(bds)) / (BDS_NumBits(bds)); } else if (BDS_ComplexPacking(bds) && BDS_Grid(bds)) { - i = BDS_P2(bds); + i = BDS_P2(bds); } return i; } diff --git a/wgrib2/Aerosol.c b/wgrib2/Aerosol.c index 3ddf45be..9a458052 100644 --- a/wgrib2/Aerosol.c +++ b/wgrib2/Aerosol.c @@ -6,6 +6,7 @@ /* * 2/2012 Public Domain: Wesley Ebisuzaki + * 10/2024 fix to handle all pdts Wesley Ebisuzaki */ /* @@ -13,24 +14,19 @@ */ int f_aerosol_size(ARG0) { - int pdt, type; - unsigned char *sec4; + unsigned char *ptr; double size1, size2; - + if (mode >= 0) { - pdt = code_table_4_0(sec); - if (pdt < 44 || pdt > 48) return 0; - type = code_table_4_91(sec); - if (type == 255) return 0; - sec4 = sec[4]; - - size1 = scaled2dbl(INT1(sec4[14]), int4(sec4+15)); - size2 = scaled2dbl(INT1(sec4[19]), int4(sec4+20)); + ptr = code_table_4_91_location(sec); + if (ptr == NULL) return 0; + if (*ptr == 255) return 0; + size1 = scaled2dbl(INT1(ptr[1]), int4(ptr+2)); + size2 = scaled2dbl(INT1(ptr[6]), int4(ptr+7)); sprintf(inv_out,"aerosol_size "); inv_out += strlen(inv_out); - type = code_table_4_91(sec); - prt_code_table_4_91(type, size1, size2, inv_out); + prt_code_table_4_91(ptr[0], size1, size2, inv_out); } return 0; @@ -40,23 +36,19 @@ int f_aerosol_size(ARG0) { */ int f_aerosol_wavelength(ARG0) { - int pdt, type; - unsigned char *sec4; + unsigned char *ptr; double wave1, wave2; if (mode >= 0) { - pdt = code_table_4_0(sec); - if (pdt != 48) return 0; - type = code_table_4_91b(sec); - if (type == 255) return 0; - sec4 = sec[4]; - - wave1 = scaled2dbl(INT1(sec4[25]), int4(sec4+26)); - wave2 = scaled2dbl(INT1(sec4[30]), int4(sec4+31)); + ptr = code_table_4_91b_location(sec); + if (ptr == NULL) return 0; + if (*ptr == 255) return 0; + wave1 = scaled2dbl(INT1(ptr[1]), int4(ptr+2)); + wave2 = scaled2dbl(INT1(ptr[6]), int4(ptr+7)); sprintf(inv_out,"aerosol_wavelength "); inv_out += strlen(inv_out); - prt_code_table_4_91(type, wave1, wave2, inv_out); + prt_code_table_4_91(ptr[0], wave1, wave2, inv_out); } return 0; diff --git a/wgrib2/CMakeLists.txt b/wgrib2/CMakeLists.txt index 6308b6c2..878fe633 100644 --- a/wgrib2/CMakeLists.txt +++ b/wgrib2/CMakeLists.txt @@ -2,6 +2,19 @@ # subdirectory. # # Kyle Gerheiser, Edward Hartnett, Wesley Ebisuzaki +# +# if BUILD_SHARED_LIB +# ftn_api -> shared library, interface to fortran +# wgrib2_lib -> shared (includes gctpc) +# +# if !BUILD_SHARED_LIB +# ftn_api -> static library, interface to fortran +# wgrib2_lib -> static library includeing gctpc +# +# note: in wgrib2 v3.1.3 or earlier, all the libraries +# incuding aec, jasper, etc were included with the wgrib2 library +# in github version, it is different. + # sets lib_src set(lib_src AAIG.c AAIGlong.c addtime.c aec_pk.c Aerosol.c Alarm.c @@ -9,7 +22,7 @@ Alias.c Ave_test.c Ave_var.c Bbox.c bitstream.c Box_ave.c Check_pdt_size.c Checksum.c Cluster.c cname.c codetable_4_230.c CodeTable.c Code_Values.c Code_Values_JMA.c complex_pk.c Config.c copy.c crc32.c Cress_lola.c Csv.c Csv_long.c cubed_sphere2ll.c -CubeFace2global.c Cyclic.c Data.c decenc_openjpeg.c dec_png_clone.c +CubeFace2global.c Cyclic.c Data.c dec_png_clone.c Dump.c Earth.c Else.c End.c Endif.c Ensemble.c Ens_processing.c Ens_qc.c EOF.c Export_lonlat.c ExtName.c fatal_error.c Fcst_ave.c ffopen.c Fi.c File.c Fix_CFSv2_fcst.c @@ -44,14 +57,16 @@ Type_reftime.c UDF.c Undefine.c units.c Unix_time.c Unmerge_fcst.c unpk_0.c unpk.c unpk_complex.c unpk_run_length.c update_sec3.c update_sec4.c v1_v2_if.c VerfTime.c Warn_old_g2lib.c Waves.c wgrib2_api.c wgrib2.c Wind_dir.c Wind_speed.c Wind_uv.c Write_sec.c -Wrt_grib.c wrtieee.c wxtext.c) +Wrt_grib.c wrtieee.c wxtext.c +) + +include_directories(gctpc/source/include) +add_subdirectory(gctpc) if(MAKE_FTN_API) add_subdirectory(ftn_api) endif() -add_subdirectory(gctpc) - # make this an object lib so we can re-use most of object files # The only files that differ are ${callable_src} which are compiled # with -DCALLABLE_WGRIB2 @@ -67,37 +82,46 @@ configure_file ( if(BUILD_LIB) - # with -DCALLABLE_WGRIB2 for the lib if(BUILD_SHARED_LIB) - add_library(wgrib2_lib SHARED ${lib_src} $ ${callable_src}) + add_library(wgrib2_lib SHARED ${lib_src} ) + set_property(TARGET wgrib2_lib PROPERTY POSITION_INDEPENDENT_CODE ON) else() - add_library(wgrib2_lib STATIC ${lib_src} $ ${callable_src}) + add_library(wgrib2_lib STATIC ${lib_src} $ ) +# add_library(wgrib2_lib STATIC ${lib_src} ) + set_property(TARGET wgrib2_lib PROPERTY POSITION_INDEPENDENT_CODE ON) endif() # library and executable have same name (wgrib2) but different target names set_target_properties(wgrib2_lib PROPERTIES OUTPUT_NAME wgrib2) - target_compile_definitions(wgrib2_lib PRIVATE CALLABLE_WGRIB2) + # target_compile_definitions(wgrib2_lib PRIVATE CALLABLE_WGRIB2) endif() -# without -DCALLABLE_WGRIB2 for the executable -add_executable(wgrib2_exe ${callable_src}) +add_executable(wgrib2_exe wgrib2_main.c) set_target_properties(wgrib2_exe PROPERTIES OUTPUT_NAME wgrib2) if(USE_NETCDF) target_link_libraries(obj_lib PUBLIC NetCDF::NetCDF_C) + if(BUILD_SHARED_LIB) + target_link_libraries(wgrib2_lib PUBLIC NetCDF::NetCDF_C) + endif() + target_link_libraries(wgrib2_exe PUBLIC NetCDF::NetCDF_C) endif() if(USE_PNG) target_link_libraries(obj_lib PUBLIC PNG::PNG) endif() -if(OpenMP_C_FOUND) +if(USE_OPENMP) target_link_libraries(obj_lib PUBLIC OpenMP::OpenMP_C) + if(BUILD_SHARED_LIB) + target_link_libraries(wgrib2_lib PUBLIC OpenMP::OpenMP_C) + endif() endif() if(USE_IPOLATES) target_link_libraries(obj_lib PUBLIC ip::ip_d) + target_link_libraries(wgrib2_exe PUBLIC ip::ip_d) # Link to the Fortran runtime library for each compiler if using ip2. # The wgrib2 exectuable is created using the C compiler and @@ -110,30 +134,26 @@ if(USE_IPOLATES) endif() -target_link_libraries(obj_lib PUBLIC gctpc -lm) +## target_link_libraries(obj_lib PUBLIC gctpc -lm) -# Link to gctpc directly because oobject libraries do not link transitively -target_link_libraries(wgrib2_exe PRIVATE gctpc) +# Link to gctpc directly because object libraries do not link transitively +target_link_libraries(wgrib2_exe PRIVATE gctpc -lm) if(USE_AEC) - target_link_libraries(wgrib2_exe PRIVATE aec) + target_link_libraries(wgrib2_exe PRIVATE ${LIBAEC_LIBRARIES}) endif() -if(USE_JASPER) +if(USE_JASPER OR USE_OPENJPEG) target_link_libraries(obj_lib PUBLIC g2c::g2c) target_link_libraries(wgrib2_exe PRIVATE g2c::g2c) endif() -if(USE_OPENJPEG) - include_directories(${OPENJPEG_INCLUDE_DIRS}) - target_link_libraries(wgrib2_exe PRIVATE ${OPENJPEG_LIBRARIES}) -endif() - target_link_libraries(wgrib2_exe PRIVATE obj_lib) +# target_link_libraries(wgrib2_exe PRIVATE wgrib2_lib) if(BUILD_LIB) set(headers wgrib2_api.h wgrib2.h ${CMAKE_BINARY_DIR}/wgrib2/wgrib2_meta.h) - target_link_libraries(wgrib2_lib PUBLIC gctpc) +## target_link_libraries(wgrib2_lib PUBLIC gctpc) set_target_properties(wgrib2_lib PROPERTIES PUBLIC_HEADER "${headers}") target_compile_definitions(wgrib2_lib PUBLIC ${definitions_list}) @@ -156,6 +176,3 @@ install( ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) - - - diff --git a/wgrib2/ExtName.c b/wgrib2/ExtName.c index 19850e88..af5b4390 100644 --- a/wgrib2/ExtName.c +++ b/wgrib2/ExtName.c @@ -188,9 +188,8 @@ int f_misc(ARG0) { strcat(inv_out,":"); inv_out += strlen(inv_out); } - if (pdt == 48) { + if (pdt == 48 || pdt == 49) { /* aerosol with optical properties */ f_aerosol_size(call_ARG0(inv_out,NULL)); - strcat(inv_out,":"); inv_out += strlen(inv_out); f_aerosol_wavelength(call_ARG0(inv_out,NULL)); strcat(inv_out,":"); diff --git a/wgrib2/fatal_error.c b/wgrib2/fatal_error.c index 7b94a430..2c6d949c 100644 --- a/wgrib2/fatal_error.c +++ b/wgrib2/fatal_error.c @@ -1,9 +1,9 @@ #include #include #include -#ifdef CALLABLE_WGRIB2 + #include -#endif + #include "wgrib2.h" /* @@ -17,9 +17,9 @@ * fprintf(ARGS) * do_fatal_error_processing */ -#ifdef CALLABLE_WGRIB2 + extern jmp_buf fatal_err; -#endif + void fatal_error(const char *fmt, ...) @@ -32,9 +32,9 @@ void fatal_error(const char *fmt, ...) va_end(arg); err_bin(1); err_string(1); -#ifdef CALLABLE_WGRIB2 + longjmp(fatal_err,1); -#endif + exit(8); return; } diff --git a/wgrib2/ftn_api/CMakeLists.txt b/wgrib2/ftn_api/CMakeLists.txt index 7a8a8c3a..81a77dbc 100644 --- a/wgrib2/ftn_api/CMakeLists.txt +++ b/wgrib2/ftn_api/CMakeLists.txt @@ -13,21 +13,26 @@ set(c_src fort_wgrib2.c ) -add_library(wgrib2_api ${fortran_src} ${c_src}) +if (BUILD_SHARED_LIB) + add_library(wgrib2_ftn_api SHARED ${fortran_src} ${c_src}) +else() + add_library(wgrib2_ftn_api STATIC ${fortran_src} ${c_src}) + set_property(TARGET wgrib2_ftn_api PROPERTY POSITION_INDEPENDENT_CODE ON) +endif() set(module_dir "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}") -set_target_properties(wgrib2_api PROPERTIES Fortran_MODULE_DIRECTORY ${module_dir}) +set_target_properties(wgrib2_ftn_api PROPERTIES Fortran_MODULE_DIRECTORY ${module_dir}) -target_include_directories(wgrib2_api +target_include_directories(wgrib2_ftn_api PUBLIC $ $) -target_link_libraries(wgrib2_api PUBLIC wgrib2_lib) +target_link_libraries(wgrib2_ftn_api PUBLIC wgrib2_lib) install(DIRECTORY ${module_dir} DESTINATION ${CMAKE_INSTALL_PREFIX}) install( - TARGETS wgrib2_api + TARGETS wgrib2_ftn_api EXPORT wgrib2_exports RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} diff --git a/wgrib2/gctpc/source/CMakeLists.txt b/wgrib2/gctpc/source/CMakeLists.txt index a077a587..8bf84a5b 100644 --- a/wgrib2/gctpc/source/CMakeLists.txt +++ b/wgrib2/gctpc/source/CMakeLists.txt @@ -1,3 +1,7 @@ +# note: this CMakelist.txt is for building the gctpc library +# wgrib2 now includes the library into the source compile +# so the wgrib2 library now include gctpc. This makes it +# easier for users who want to use the wgrib2 library. set(src alberfor.c @@ -76,7 +80,13 @@ set(src wviiinv.c ) +# if want shared library, had to make separate library +# otherwise include gctpc in libwgrib2.a + add_library(gctpc OBJECT ${src}) +if (BUILD_LIB) + set_property(TARGET gctpc PROPERTY POSITION_INDEPENDENT_CODE ON) +endif() target_include_directories(gctpc PUBLIC $ diff --git a/wgrib2/jpeg_pk.c b/wgrib2/jpeg_pk.c index cc4661cf..d2a6ec89 100644 --- a/wgrib2/jpeg_pk.c +++ b/wgrib2/jpeg_pk.c @@ -7,14 +7,11 @@ #include "wgrib2.h" #include "fnlist.h" -#ifdef USE_JASPER - #include "grib2.h" -#endif - /* 10/2024 Public Domain Wesley Ebisuzaki */ #if defined USE_JASPER || defined USE_OPENJPEG + #include "grib2.h" /* * writes out jpeg2000 compressed grib message */ @@ -31,9 +28,7 @@ int jpeg2000_grib_out(unsigned char **sec, float *data, unsigned int ndata, int i, k, nbits, nbytes; int ltype, ratio, retry; char *outjpc; -#ifdef USE_JASPER unsigned char *cdata, *p; -#endif /* required passed sections */ sec0 = sec[0]; @@ -124,7 +119,6 @@ int jpeg2000_grib_out(unsigned char **sec, float *data, unsigned int ndata, nbytes = (nbits + 7) / 8; if (nbytes > 4) fatal_error_i("jpeg2000_grib_out number of bytes is %d > 4", nbytes); -#ifdef USE_JASPER /* floats -> integers -> bytes */ cdata = (unsigned char *) malloc(nbytes * (size_t) n_defined); @@ -156,9 +150,6 @@ int jpeg2000_grib_out(unsigned char **sec, float *data, unsigned int ndata, } } -// jas_init(); -#endif - ltype = 0; ratio = 1; retry = 0; @@ -166,7 +157,6 @@ int jpeg2000_grib_out(unsigned char **sec, float *data, unsigned int ndata, jpclen = 4*n_defined+200; outjpc = (char *) malloc(jpclen); -#ifdef USE_JASPER i = g2c_enc_jpeg2000(cdata,ix,iy,nbits,ltype,ratio,retry,outjpc,jpclen); // we try to catch following error: "error: too few guard bits (need at least x)" if (i == -3) { @@ -174,10 +164,6 @@ int jpeg2000_grib_out(unsigned char **sec, float *data, unsigned int ndata, i = g2c_enc_jpeg2000(cdata,ix,iy,nbits,ltype,ratio,retry,outjpc,jpclen); } free(cdata); -#endif -#ifdef USE_OPENJPEG - i = enc_jpeg2000_clone_float(data,ix,iy,nbits,ltype,ratio,retry,outjpc,jpclen); -#endif if (i <= 0) fatal_error_i("enc_jpeg error %d", i); } diff --git a/wgrib2/ncep_grids.c b/wgrib2/ncep_grids.c index 52d9a3b9..b63afc7a 100644 --- a/wgrib2/ncep_grids.c +++ b/wgrib2/ncep_grids.c @@ -60,6 +60,18 @@ void ncep_grids(const char **arg1, const char **arg2, const char **arg3) { *arg2 = "244.723:2345:2540"; *arg3 = "19.299:1597:2540"; return; + } /* HRRR 3 km */ + if (strcmp(*arg3,"hrrr") == 0) { + *arg1 = "lambert:262.5:38.5"; + *arg2 = "237.28:1799:3000"; + *arg3 = "21.138:1059:3000"; + return; + } /* NAM 12 km */ + if (strcmp(*arg3,"nam12") == 0) { + *arg1 = "nps:260:60"; + *arg2 = "217.5:1196:12679"; + *arg3 = "-2.5:817:12679"; + return; } if (strcmp(*arg3,"core") == 0) { @@ -83,37 +95,37 @@ void ncep_grids(const char **arg1, const char **arg2, const char **arg3) { else grid_no = atoi(*arg3); switch(grid_no) { - case 2: + case 2: /* Global 2.5 deg */ *arg1="latlon"; *arg2="0:144:2.5"; *arg3="90:73:-2.5"; break; - case 3: + case 3: /* Global 1 deg */ *arg1="latlon"; *arg2="0:360:1"; *arg3="90:181:-1"; break; - case 4: + case 4: /* Global 0.5 deg */ *arg1="latlon"; *arg2="0:720:0.5"; *arg3="90:361:-0.5"; break; - case 45: + case 45: /* Global 1.25 deg */ *arg1="latlon"; *arg2="0:288:1.25"; *arg3="90:145:-1.25"; break; - case 98: + case 98: /* t62 gaussian grid */ *arg1 = "gaussian"; *arg2 = "0:192:1.875"; *arg3 = "88.5419501372975:94"; break; - case 126: + case 126: /* t126 gaussian grid */ *arg1 = "gaussian"; *arg2 = "0:384:0.9375"; *arg3 = "89.2767128781058:190"; @@ -137,49 +149,85 @@ void ncep_grids(const char **arg1, const char **arg2, const char **arg3) { *arg3 = "89.8435135178685:880"; break; + case 130: /* NCEP 130 (RAP) */ + *arg1="lambert:265:25"; + *arg2="233.862:451:13545.087"; + *arg3="16.281:337:13545.087"; + break; + + case 132: /* NCEP 132 (SREF) */ + *arg1="lambert:265:25"; + *arg2="214.500:697:16231.74"; + *arg3="1.000:553:16231.74"; + break; + case 170: /* t170 gaussian grid */ *arg1 = "gaussian"; *arg2 = "0:512:0.703125"; *arg3 = "89.4628215685774:256"; break; - case 173: + case 173: /* Global 0.5 degree */ *arg1 = "latlon"; *arg2 = "0.041666666667:4320:0.083333333333"; *arg3 = "89.95833333333:2160:-0.083333333333"; break; - case 184: - *arg1 = "lambert:265:25"; - *arg2 = "238.446:2145:2540"; - *arg3 = "20.192:1377:2540"; - break; + case 184: /* CONUS NDFD 2.5 km */ + *arg1 = "lambert:265:25"; + *arg2 = "238.446:2145:2540"; + *arg3 = "20.192:1377:2540"; + break; + + case 187: /* CONUS RTMA 2.5 km */ + *arg1 = "lambert:265:25"; + *arg2 = "238.446:2145:2540"; + *arg3 = "20.192:1597:2540"; + break; - case 194: + case 194: /* Puerto Rico NDFD 3 km Mercator */ *arg1 = "mercator:20"; *arg2 = "284.5:544:2500:297.491"; *arg3 = "15:310:2500:22.005"; break; - case 221: + case 196: /* Hawaii NDFD 2.5 km Mercator */ + *arg1 = "mercator:20"; + *arg2 = "198.475:321:2500:206.131"; + *arg3 = "18.073:225:2500:23.088"; + break; + + case 197: /* CONUS NDFD 5 km */ + *arg1="lambert:265:25"; + *arg2="238.445999:1073:5079"; + *arg3="20.191999:689:5079"; + break; + + case 221: /* North America 32 km Lambert (NAM, SREF, RAP) */ *arg1="lambert:253:50"; *arg2="214.5:349:32463.41"; *arg3="1:277:32463.41"; break; - case 230: + case 230: /* Global 0.5 deg */ *arg1="latlon"; *arg2="0:720:0.5"; *arg3="90:361:-0.5"; break; - case 242: + case 236: /* CONUS 40 km */ + *arg1="lambert:265:25"; + *arg2="233.862:151:40635.25"; + *arg3="16.281:113:40635.25"; + break; + + case 242: /* Alaska NDFD 11.25 km */ *arg1="nps:225:60"; *arg2="187:553:11250"; *arg3="30:425:11250"; break; - case 249: + case 249: /* Alaska 10 km polar stereographic */ *arg1="nps:210.0:60.0"; *arg2="188.4:367:9867.89"; *arg3="45.4:343:9867.89"; diff --git a/wgrib2/rdieee_file.c b/wgrib2/rdieee_file.c index dee5f549..39fdc545 100644 --- a/wgrib2/rdieee_file.c +++ b/wgrib2/rdieee_file.c @@ -3,13 +3,13 @@ #include "wgrib2.h" /* - * rdieee_file: reads a big/little endian file with optional header + * rdieee_file: reads a big/little endian ieee file with optional header * * 10/2008 Public domain Wesley Ebisuzaki */ /* BSIZ number of floats to process at one time */ -#define BSIZ 4096 +#define BSIZ 8*4096 extern int ieee_little_endian; @@ -33,15 +33,14 @@ int rdieee_file(float *array, unsigned int n, int header, struct seq_file *input if (l != nbytes) fatal_error("rdieee: bad header",""); } - while (n > 0) { - j = n < BSIZ ? n : BSIZ; + for (i = 0; i < n; i += BSIZ) { + j = n-i > BSIZ ? BSIZ : n-i; if (fread_file(buff,1,4*j,input) != 4*j) fatal_error("rdieee: data read",""); if (ieee_little_endian) swap_buffer(buff, 4*j); -#pragma omp parallel for private(i) schedule(static) - for (i = 0; i < j; i++) { - array[i] = ieee2flt(buff + 4*i); - } - n = n - j; +#pragma omp parallel for private(l) schedule(static) + for (l = 0; l < j; l++) { + array[i+l] = ieee2flt(buff + 4*l); + } } if (header) { diff --git a/wgrib2/unpk.c b/wgrib2/unpk.c index eae07106..936a62a8 100644 --- a/wgrib2/unpk.c +++ b/wgrib2/unpk.c @@ -12,7 +12,7 @@ #include "wgrib2.h" #include "grb2.h" -#ifdef USE_JASPER +#if defined USE_JASPER || defined USE_OPENJPEG #include "grib2.h" #endif @@ -193,7 +193,6 @@ int unpk_grib(unsigned char **sec, float *data) { // decode jpeg2000 -#ifdef USE_JASPER ifld = (int *) malloc(ndata * sizeof(int)); if (ifld == 0) fatal_error("unpk: memory allocation error",""); err = g2c_dec_jpeg2000((char *) sec[7]+5, (size_t) GB2_Sec7_size(sec)-5, ifld); @@ -214,32 +213,6 @@ int unpk_grib(unsigned char **sec, float *data) { } free(ifld); return 0; -#endif -#ifdef USE_OPENJPEG - ifld = (int *) malloc(ndata * sizeof(int)); - if (ifld == 0) fatal_error("unpk: memory allocation error",""); - err = dec_jpeg2000_clone((char *) sec[7]+5, (int) GB2_Sec7_size(sec)-5, ifld); - if (err != 0) fatal_error_i("dec_jpeg2000, error %d",err); - - if (bitmap_flag == 255) { -#pragma omp parallel for private(ii) - for (ii = 0; ii < ndata; ii++) { - data[ii] = ((ifld[ii]*bin_scale)+reference)*dec_scale; - } - } - else if (bitmap_flag == 0 || bitmap_flag == 254) { - mask_pointer = sec[6] + 6; - mask = 0; - kk = 0; - for (ii = 0; ii < ndata; ii++) { - if ((ii & 7) == 0) mask = *mask_pointer++; - data[ii] = (mask & 128) ? ((ifld[kk++]*bin_scale)+reference)*dec_scale : UNDEFINED; - mask <<= 1; - } - } - free(ifld); - return 0; -#endif } #endif diff --git a/wgrib2/wgrib2.c b/wgrib2/wgrib2.c index 806a5f26..b948ba35 100644 --- a/wgrib2/wgrib2.c +++ b/wgrib2/wgrib2.c @@ -1,4 +1,7 @@ -/* wgrib2 main module: public domain 2005 w. ebisuzaki +/* wgrib2: public domain 2005 w. ebisuzaki + * originally the main of the wgrib2 utility + * later became main or routine depending on CALLABLE_WGRIB2 + * finally wgrib2 utility became a wrapper that calls the wgrib2 routine * * CHECK code is now duplicated * if (decode) -- check before decoding @@ -17,10 +20,9 @@ #include #include -#ifdef CALLABLE_WGRIB2 + #include jmp_buf fatal_err; -#endif #include "grb2.h" #include "wgrib2.h" @@ -116,17 +118,9 @@ int version_if; /* 0-old stype 1-modern if */ * simple wgrib for GRIB2 files * */ -#ifndef CALLABLE_WGRIB2 - -int main(int argc, const char **argv) { - -#else int wgrib2(int argc, const char **argv) { -#endif - - //WNE FILE *in; struct seq_file in_file; unsigned char *msg, *sec[10]; /* sec[9] = last valid bitmap */ @@ -176,9 +170,9 @@ int wgrib2(int argc, const char **argv) { data = NULL; // ddata = NULL; -#ifdef CALLABLE_WGRIB2 + if (setjmp(fatal_err)) { - fprintf(stderr,"*** arg list to wgrib2:"); + fprintf(stderr,"*** arg list to wgrib2(..):"); for (i=0; i < argc; i++) { fprintf(stderr," %s", argv[i]); } @@ -186,9 +180,9 @@ int wgrib2(int argc, const char **argv) { if (ndata && data != NULL) free(data); ndata=0; if (in_file.file_type != NOT_OPEN) fclose_file(&in_file); - return 1; + return 8; } -#endif + /* no arguments .. help screen */ if (argc == 1) { @@ -565,7 +559,7 @@ int wgrib2(int argc, const char **argv) { if (GDS_max_size) free(old_gds); GDS_max_size = i + 100; /* add 100 just to avoid excessive memory allocations */ if ((old_gds = (unsigned char *) malloc(GDS_max_size) ) == NULL) { - fatal_error("memory allocation problem old_gds in wgrib2.main for %s",in_file.filename); + fatal_error("memory allocation problem old_gds in wgrib2(..) for %s",in_file.filename); } } #ifdef IS_OPENMP_4_0 @@ -692,7 +686,7 @@ int wgrib2(int argc, const char **argv) { data = (float *) malloc(sizeof(float) * (size_t) ndata); if (data == NULL) { ndata = 0; - fatal_error("main: memory allocation failed data",""); + fatal_error("wgrib2(..): memory allocation failed data",""); } } else { data = NULL; } diff --git a/wgrib2/wgrib2.h b/wgrib2/wgrib2.h index 95005b15..7deb9d0e 100644 --- a/wgrib2/wgrib2.h +++ b/wgrib2/wgrib2.h @@ -503,11 +503,6 @@ int scaling(unsigned char **sec, double *base, int *decimal, int *binary, int *n unsigned char *mk_bms(float *data, unsigned int *ndata); int dec_png_clone(unsigned char *pngbuf,int *width,int *height, unsigned char *cout, int *grib2_bit_depth, unsigned int ndata); -#ifdef USE_OPENJPEG -int dec_jpeg2000_clone(char *injpc, int bufsize, int *outfld); -int enc_jpeg2000_clone_float(float *data, int width, int height, int nbits, - int ltype, int ratio, int retry, char *outjpc, int jpclen); -#endif int ieee_grib_out(unsigned char **sec, float *data, unsigned int ndata, struct seq_file *out); int jpeg_grib_out(unsigned char **sec, float *data, unsigned int ndata, int nx, int ny, int use_scale, int dec_scale, int bin_scale, FILE *out); diff --git a/wgrib2/wgrib2_api.c b/wgrib2/wgrib2_api.c index d99e866d..3f081f00 100644 --- a/wgrib2/wgrib2_api.c +++ b/wgrib2/wgrib2_api.c @@ -3,7 +3,6 @@ #include #include "wgrib2.h" -#ifdef CALLABLE_WGRIB2 /* sort of like the command line version of wgrib2 @@ -43,4 +42,3 @@ int wgrib2a(char *arg1, ...) { return i; } -#endif diff --git a/wgrib2/wgrib2_main.c b/wgrib2/wgrib2_main.c new file mode 100644 index 00000000..449ce054 --- /dev/null +++ b/wgrib2/wgrib2_main.c @@ -0,0 +1,27 @@ +/* wgrib2 main module: public domain 2024 w. ebisuzaki + * + * ancient: wgrib2.c was the main for the wgrib2 utility. There was no wgrib2 library, and + * no call to the wgrib2(..). + * + * old: A user wanted to call wgrib2 from a C program. He converted wgrib2.c to be either a main(..) + * or a routine wgrib2(..) depending on a flag (CALLABLE_WGRIB2). There were two builds, + * one for the utility and a second for the library. + * + * new: move to github + * Reimplement the old idea to make the wgrib2 utility a call to wgrib2(..). + * This involves removing all references to CALLABLE_WGRIB2 + * This was tested in a pre-github version but never implemented because it provided no reward + * With github, the build system is being rebuilt from Kyle's version. Rather than the two + * builds, make it a single build with the wgrib2 utility calling wgrib2(..) + + * + * 8/2024 the main for the wgrib2 utility is moved from wgrib2.c to wgrib2_main.c + */ + +#include +#include "wgrib2_api.h" + + +int main(int argc, const char **argv) { + return wgrib2(argc, argv); +}