From 03869c2100a9030f5844a0915ec0a93600a33758 Mon Sep 17 00:00:00 2001 From: "Pedro A. Jimenez" Date: Wed, 18 May 2022 17:57:11 -0600 Subject: [PATCH 01/16] Adding entries for MAD-WRF --- metgrid/METGRID.TBL.ARW | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/metgrid/METGRID.TBL.ARW b/metgrid/METGRID.TBL.ARW index 46c49081..34ea5242 100644 --- a/metgrid/METGRID.TBL.ARW +++ b/metgrid/METGRID.TBL.ARW @@ -1148,3 +1148,19 @@ name=LOGSFP output=no interp_option=four_pt ======================================== +name=CLDMASK + interp_option=nearest_neighbor + flag_in_output=FLAG_CLDMASK +======================================== +name=CLDBASEZ + interp_option=nearest_neighbor + flag_in_output=FLAG_CLDBASEZ +======================================== +name=CLDTOPZ + interp_option=nearest_neighbor + flag_in_output=FLAG_CLDTOPZ +======================================== +name=BRTEMP + interp_option=nearest_neighbor + flag_in_output=FLAG_BRTEMP +======================================== From 554edc1746ffca3dee28eb970e7c4b4d54232043 Mon Sep 17 00:00:00 2001 From: "jordan.schnell" Date: Thu, 22 Dec 2022 17:44:49 +0000 Subject: [PATCH 02/16] Adds GFS total column ozone field to metgrid table and creates new Vtable with GFS ozone field. --- metgrid/METGRID.TBL.ARW | 7 ++ ungrib/Variable_Tables/Vtable.GFS_OZONE | 95 +++++++++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 ungrib/Variable_Tables/Vtable.GFS_OZONE diff --git a/metgrid/METGRID.TBL.ARW b/metgrid/METGRID.TBL.ARW index 46c49081..774a29b8 100644 --- a/metgrid/METGRID.TBL.ARW +++ b/metgrid/METGRID.TBL.ARW @@ -761,6 +761,13 @@ name=T0 missing_value=200. fill_missing=-20. ======================================== +name=O3_TOT ; output_name=O3_GFS_DU +======================================== +name=O3_GFS_DU + interp_option=four_pt+average_4pt + fill_lev=200100:const(200100.) + flag_in_output=FLAG_GFS_TOT_O3 +======================================== name=QNWFA_JAN ; output_name=W_WIF_JAN ======================================== name=W_WIF_JAN diff --git a/ungrib/Variable_Tables/Vtable.GFS_OZONE b/ungrib/Variable_Tables/Vtable.GFS_OZONE new file mode 100644 index 00000000..17173d63 --- /dev/null +++ b/ungrib/Variable_Tables/Vtable.GFS_OZONE @@ -0,0 +1,95 @@ +GRIB1| Level| From | To | metgrid | metgrid | metgrid |GRIB2|GRIB2|GRIB2|GRIB2| +Param| Type |Level1|Level2| Name | Units | Description |Discp|Catgy|Param|Level| +-----+------+------+------+----------+---------+-----------------------------------------+-----------------------+ + 11 | 100 | * | | TT | K | Temperature | 0 | 0 | 0 | 100 | + 33 | 100 | * | | UU | m s-1 | U | 0 | 2 | 2 | 100 | + 34 | 100 | * | | VV | m s-1 | V | 0 | 2 | 3 | 100 | + 52 | 100 | * | | RH | % | Relative Humidity | 0 | 1 | 1 | 100 | + 7 | 100 | * | | HGT | m | Height | 0 | 3 | 5 | 100 | + 11 | 105 | 2 | | TT | K | Temperature at 2 m | 0 | 0 | 0 | 103 | + 52 | 105 | 2 | | RH | % | Relative Humidity at 2 m | 0 | 1 | 1 | 103 | + 33 | 105 | 10 | | UU | m s-1 | U at 10 m | 0 | 2 | 2 | 103 | + 34 | 105 | 10 | | VV | m s-1 | V at 10 m | 0 | 2 | 3 | 103 | + 1 | 1 | 0 | | PSFC | Pa | Surface Pressure | 0 | 3 | 0 | 1 | + 130 | 102 | 0 | | PMSL | Pa | Sea-level Pressure | 0 | 3 | 192 | 101 | + 144 | 112 | 0 | 10 | SM000010 | fraction| Soil Moist 0-10 cm below grn layer (Up) | 2 | 0 | 192 | 106 | + 144 | 112 | 10 | 40 | SM010040 | fraction| Soil Moist 10-40 cm below grn layer | 2 | 0 | 192 | 106 | + 144 | 112 | 40 | 100 | SM040100 | fraction| Soil Moist 40-100 cm below grn layer | 2 | 0 | 192 | 106 | + 144 | 112 | 100 | 200 | SM100200 | fraction| Soil Moist 100-200 cm below gr layer | 2 | 0 | 192 | 106 | + 144 | 112 | 10 | 200 | SM010200 | fraction| Soil Moist 10-200 cm below gr layer | 2 | 0 | 192 | 106 | + 11 | 112 | 0 | 10 | ST000010 | K | T 0-10 cm below ground layer (Upper) | 0 | 0 | 0 | 106 | + 11 | 112 | 10 | 40 | ST010040 | K | T 10-40 cm below ground layer (Upper) | 0 | 0 | 0 | 106 | + 11 | 112 | 40 | 100 | ST040100 | K | T 40-100 cm below ground layer (Upper) | 0 | 0 | 0 | 106 | + 11 | 112 | 100 | 200 | ST100200 | K | T 100-200 cm below ground layer (Bottom)| 0 | 0 | 0 | 106 | + 85 | 112 | 0 | 10 | ST000010 | K | T 0-10 cm below ground layer (Upper) | 2 | 0 | 2 | 106 | + 85 | 112 | 10 | 40 | ST010040 | K | T 10-40 cm below ground layer (Upper) | 2 | 0 | 2 | 106 | + 85 | 112 | 40 | 100 | ST040100 | K | T 40-100 cm below ground layer (Upper) | 2 | 0 | 2 | 106 | + 85 | 112 | 100 | 200 | ST100200 | K | T 100-200 cm below ground layer (Bottom)| 2 | 0 | 2 | 106 | + 11 | 112 | 10 | 200 | ST010200 | K | T 10-200 cm below ground layer (Bottom) | 0 | 0 | 0 | 106 | + 91 | 1 | 0 | | SEAICE | proprtn | Ice flag | 10 | 2 | 0 | 1 | + 81 | 1 | 0 | | LANDSEA | proprtn | Land/Sea flag (1=land, 0 or 2=sea) | 2 | 0 | 0 | 1 | + 81 | 1 | 0 | | LANDN | proprtn | | 2 | 0 | 218 | 1 | + 7 | 1 | 0 | | SOILHGT | m | Terrain field of source analysis | 0 | 3 | 5 | 1 | + 11 | 1 | 0 | | SKINTEMP | K | Skin temperature | 0 | 0 | 0 | 1 | + 65 | 1 | 0 | | SNOW | kg m-2 | Water equivalent snow depth | 0 | 1 | 13 | 1 | + | 1 | 0 | | SNOWH | m | Physical Snow Depth | 0 | 1 | | 1 | + 33 | 6 | 0 | | UMAXW | m s-1 | U at max wind | 0 | 2 | 2 | 6 | + 34 | 6 | 0 | | VMAXW | m s-1 | V at max wind | 0 | 2 | 3 | 6 | + 2 | 6 | 0 | | PMAXW | Pa | Pressure of max wind level | 0 | 3 | 0 | 6 | + | 6 | 0 | | PMAXWNN | Pa | PMAXW, used for nearest neighbor interp | 0 | 3 | 0 | 6 | + 2 | 6 | 0 | | TMAXW | K | Temperature at max wind level | 0 | 0 | 0 | 6 | + 7 | 6 | 0 | | HGTMAXW | m | Height of max wind level | 0 | 3 | 5 | 6 | + 33 | 7 | 0 | | UTROP | m s-1 | U at tropopause | 0 | 2 | 2 | 7 | + 34 | 7 | 0 | | VTROP | m s-1 | V at tropopause | 0 | 2 | 3 | 7 | + 2 | 7 | 0 | | PTROP | Pa | Pressure of tropopause | 0 | 3 | 0 | 7 | + | 7 | 0 | | PTROPNN | Pa | PTROP, used for nearest neighbor interp | 0 | 3 | 0 | 7 | + 2 | 7 | 0 | | TTROP | K | Temperature at tropopause | 0 | 0 | 0 | 7 | + 7 | 7 | 0 | | HGTTROP | m | Height of tropopause | 0 | 3 | 5 | 7 | + 10 | 200 | * | | O3_TOT | Dobson | Total ozone column | 0 | 14 | 0 | 200 | +-----+------+------+------+----------+---------+-----------------------------------------+-----------------------+ +# +# Vtable for GFS pressure-level data from the ncep server. +# This version includes fields from the Tropopause and Max Wind levels used by WRF V3.6.1 and later. +# NCEP has used multiple definitions of the soil temperature in their output and the Vtable attempts +# to account for these possibilities. (Definition changed 14 Jan 2015). +# +# ftp://ftpprd.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/gfs.ccyymmddhh/ (note hh at end) +# +# approx. grid hours domain dx notes +# file size no. +# +# gfs.t12z.pgrb2.0p25 220000 Kb 193 3-h to 240-h global 0.25 deg (26 p-levels plus sfc and trop, 1000 to 10 mb). +# gfs.t12z.pgrb2.0p50 68000 Kb 4 3-h to 240-h global 0.5 deg (26 p-levels plus sfc and trop, 1000 to 10 mb). +# +# Prior to 12z 14 January 2015: +# +# gfs.t12z.pgrb2f00 56000 Kb 4 3-h to 192-h global 0.5 deg (26 p-levels plus sfc and trop, 1000 to 10 mb). +# gfs.t12z.pgrbf00.grib2 18000 Kb 3 3-h to 384-h global 1.0 deg (26 p-levels plus sfc and trop, 1000 to 10 mb). +# +# +# As of mid-2017 the GFS provides two land mask fields in the pressure-level output. WPS uses LANDN if available +# and renames it LANDSEA. +# +# As of WPS V4.1 (April 2019) the default PMSL is changed to MSLET. MSLET is an unsmoothed sea level pressure. +# NCEP included MSLET in their GFS files beginning 12z on 10 May 2011 and in their GDAS files at 12z 14 January 2015. +# The smoother PRMSL is in all GFS/GDAS pressure files. +# For GFS files prior to those dates use PRMSL as shown in the following line: +# 2 | 102 | 0 | | PMSL | Pa | Sea-level Pressure | 0 | 3 | 1 | 101 | +# +# +# Abbreviated history of GFS changes (all starting at 12 UTC) +# +# Sometime 2019 - Update to FV3 (requires WPS V4.0 or later) +# 19 July 2017 - Change to land mask and other terrestrial variables (requires WPS V3.9.1.1) +# - Change missing value, removal of grid 211 (80km conus). Flag value of .468 in soil moisture. +# 11 May 2016 - Assimilate AMSU-A radiances, AVHRR winds, CRTMv2.2.1, 4d hybrid das. +# - Add 5 stratospheric levels to ouput. UPP V7.0. Land surface and GWD upates. +# 14 January 2015 - Add MSLET to GDAS. Change from T574 (27km) to T1534 (13km). Fcst length to 240 h. +# - semi-lagrangian, uses rtgsst, Z0 dependent on vegetation type, CRTMv2.1.3, 0.25 deg output +# 10 May 2011 - Add MSLET to output. New thermal roughness length. Elevation of buoys to 10m. +# - Improved GSI, update CRTM. Recomputed BE. +# 27 July 2010 - T382 (35km) to T574 (27km). new pbl, gravity wave drag, updated deep convective scheme +# 13 May 2008 - RRTM radiation, aerosol, cloud overlap, windsat sfc winds, flow dependent bev. +# 25 September 2007 - Implement UPP. +# 31 May 2005 - T254L64 to T382L64. Change in soil output to 3 levels. +# 29 October 2002 - Change from T170L42 to T254L64. Model top changed from 2 hPA to .2 hPa From 804dd5ac65547a5d56adfab99b222219f93f2772 Mon Sep 17 00:00:00 2001 From: Michael Duda Date: Fri, 23 Dec 2022 12:14:28 -0700 Subject: [PATCH 03/16] Improve the calculation of rotation angle at sub-km grid scales Previously, the sine and cosine of the rotation angle (SINALPHA and COSALPHA) were computed using finite differences of the latitude and longitude fields. This calculation generally worked well at grid scales larger than ~1 km and had the benefit of being independent of map projection. However, at smaller grid scales, the limited precision of the latitude and longitude fields led to numerical errors in the computed rotation angle. This commit adds projection-specific code to compute the rotation angle. For the Mercator and cylindrical equidistant projections, the rotation angle is simply zero everywhere, and for the Lambert conformal conic and polar stereographic projections, the rotation angle is derived from the difference between a grid cell's longitude and the standard longitude. For the Cassini projection, a formula for the rotation angle is difficult to derive, and so with the expectation that this projection will find limited use at high resolution, the same finite differencing scheme is still employed. --- geogrid/src/process_tile_module.F | 150 +++++++++++++++++++++++------- 1 file changed, 118 insertions(+), 32 deletions(-) diff --git a/geogrid/src/process_tile_module.F b/geogrid/src/process_tile_module.F index 6bb86cb8..eee3eaa8 100644 --- a/geogrid/src/process_tile_module.F +++ b/geogrid/src/process_tile_module.F @@ -1922,6 +1922,7 @@ subroutine get_rotang(xlat_arr, xlon_arr, cosa, sina, & use constants_module use gridinfo_module + use map_utils, only : lc_cone implicit none @@ -1932,51 +1933,136 @@ subroutine get_rotang(xlat_arr, xlon_arr, cosa, sina, & ! Local variables integer :: i, j + real :: cone real :: alpha, d_lon - do i=start_mem_i, end_mem_i - do j=start_mem_j+1, end_mem_j-1 - d_lon = xlon_arr(i,j+1)-xlon_arr(i,j-1) + ! + ! Lambert conformal projection + ! + if (iproj_type == PROJ_LC) then + + ! Rotation angle is given by the difference in longitude from the standard longitude + ! scaled by the cone factor of the projection + + call lc_cone(truelat1, truelat2, cone) + + do i=start_mem_i, end_mem_i + do j=start_mem_j, end_mem_j + d_lon = stand_lon - xlon_arr(i,j) + if (d_lon > 180.) then + d_lon = d_lon - 360. + else if (d_lon < -180.) then + d_lon = d_lon + 360. + end if + + alpha = d_lon * cone * RAD_PER_DEG + + sina(i,j) = sin(alpha) + cosa(i,j) = cos(alpha) + end do + end do + + ! + ! Polar stereographic projection + ! + else if (iproj_type == PROJ_PS) then + + ! Rotation angle is given by the difference in longitude from the standard longitude + + do i=start_mem_i, end_mem_i + do j=start_mem_j, end_mem_j + d_lon = stand_lon - xlon_arr(i,j) + if (d_lon > 180.) then + d_lon = d_lon - 360. + else if (d_lon < -180.) then + d_lon = d_lon + 360. + end if + + alpha = d_lon * RAD_PER_DEG + + sina(i,j) = sin(alpha) + cosa(i,j) = cos(alpha) + end do + end do + + ! + ! Mercator projection + ! + else if (iproj_type == PROJ_MERC) then + + ! Rotation angle is always zero + + sina(:,:) = 0.0 + cosa(:,:) = 1.0 + + ! + ! Global cylindrical projection + ! + else if (iproj_type == PROJ_CYL) then + + ! Rotation angle is always zero + + sina(:,:) = 0.0 + cosa(:,:) = 1.0 + + ! + ! Rotated global cylindrical projection + ! + else if (iproj_type == PROJ_CASSINI) then + + ! Compute angles using finite differences + + do i=start_mem_i, end_mem_i + do j=start_mem_j+1, end_mem_j-1 + d_lon = xlon_arr(i,j+1)-xlon_arr(i,j-1) + if (d_lon > 180.) then + d_lon = d_lon - 360. + else if (d_lon < -180.) then + d_lon = d_lon + 360. + end if + + alpha = atan2(-cos(xlat_arr(i,j)*RAD_PER_DEG) * (d_lon*RAD_PER_DEG), & + ((xlat_arr(i,j+1)-xlat_arr(i,j-1))*RAD_PER_DEG)) + sina(i,j) = sin(alpha) + cosa(i,j) = cos(alpha) + end do + end do + + do i=start_mem_i, end_mem_i + d_lon = xlon_arr(i,start_mem_j+1)-xlon_arr(i,start_mem_j) if (d_lon > 180.) then d_lon = d_lon - 360. else if (d_lon < -180.) then d_lon = d_lon + 360. end if - alpha = atan2(-cos(xlat_arr(i,j)*RAD_PER_DEG) * (d_lon*RAD_PER_DEG), & - ((xlat_arr(i,j+1)-xlat_arr(i,j-1))*RAD_PER_DEG)) - sina(i,j) = sin(alpha) - cosa(i,j) = cos(alpha) + alpha = atan2(-cos(xlat_arr(i,start_mem_j)*RAD_PER_DEG) * (d_lon*RAD_PER_DEG), & + ((xlat_arr(i,start_mem_j+1)-xlat_arr(i,start_mem_j))*RAD_PER_DEG)) + sina(i,start_mem_j) = sin(alpha) + cosa(i,start_mem_j) = cos(alpha) end do - end do - do i=start_mem_i, end_mem_i - d_lon = xlon_arr(i,start_mem_j+1)-xlon_arr(i,start_mem_j) - if (d_lon > 180.) then - d_lon = d_lon - 360. - else if (d_lon < -180.) then - d_lon = d_lon + 360. - end if + do i=start_mem_i, end_mem_i + d_lon = xlon_arr(i,end_mem_j)-xlon_arr(i,end_mem_j-1) + if (d_lon > 180.) then + d_lon = d_lon - 360. + else if (d_lon < -180.) then + d_lon = d_lon + 360. + end if - alpha = atan2(-cos(xlat_arr(i,start_mem_j)*RAD_PER_DEG) * (d_lon*RAD_PER_DEG), & - ((xlat_arr(i,start_mem_j+1)-xlat_arr(i,start_mem_j))*RAD_PER_DEG)) - sina(i,start_mem_j) = sin(alpha) - cosa(i,start_mem_j) = cos(alpha) - end do + alpha = atan2(-cos(xlat_arr(i,end_mem_j)*RAD_PER_DEG) * (d_lon*RAD_PER_DEG), & + ((xlat_arr(i,end_mem_j)-xlat_arr(i,end_mem_j-1))*RAD_PER_DEG)) + sina(i,end_mem_j) = sin(alpha) + cosa(i,end_mem_j) = cos(alpha) + end do - do i=start_mem_i, end_mem_i - d_lon = xlon_arr(i,end_mem_j)-xlon_arr(i,end_mem_j-1) - if (d_lon > 180.) then - d_lon = d_lon - 360. - else if (d_lon < -180.) then - d_lon = d_lon + 360. - end if + ! NMM Rotated latitude-longitude projection + else if (iproj_type == PROJ_ROTLL) then - alpha = atan2(-cos(xlat_arr(i,end_mem_j)*RAD_PER_DEG) * (d_lon*RAD_PER_DEG), & - ((xlat_arr(i,end_mem_j)-xlat_arr(i,end_mem_j-1))*RAD_PER_DEG)) - sina(i,end_mem_j) = sin(alpha) - cosa(i,end_mem_j) = cos(alpha) - end do + ! No longer supported... + call mprintf(.true.,ERROR,' The NMM rotated lat-lon grid is no longer supported. Rotation angles cannot be computed.') + + end if end subroutine get_rotang From 59a3498585d6aee73fa826c1d36bb986ea1cbd14 Mon Sep 17 00:00:00 2001 From: Michael Duda Date: Fri, 23 Dec 2022 16:40:22 -0700 Subject: [PATCH 04/16] Add -h/--help options to the 'configure' script The -h / --help options to the configure script print usage information that may be helpful in determining which configuration options are available. --- configure | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/configure b/configure index 701b24a5..946cba98 100755 --- a/configure +++ b/configure @@ -1,5 +1,24 @@ #!/bin/sh +print_help() +{ + echo 'Usage: configure [options]' + echo '' + echo 'where options may be any of the following:' + echo '' + echo ' --nowrf Disables checks to find the path to the compiled WRF model.' + echo ' This enables some WPS programs to be compiled without' + echo ' requiring WRF to have been compiled, but it will preclude' + echo ' the compilation of WPS programs that depend on the WRF I/O' + echo ' API (geogrid, metgrid, and int2nc).' + echo '' + echo ' --build-grib2-libs Compiles zlib, libpng, and JasPer libraries from source in' + echo ' the external/ directory, and installs the libraries in' + echo ' grib2/.' + echo '' + echo ' -h/--help Print this help message and quit.' +} + # # Check for command-line arguments # At present, the only supported arguments are: @@ -15,6 +34,9 @@ for arg in $@; do nowrf=1 elif [ "${arg}" = "--build-grib2-libs" ]; then build_grib2=1 + elif [ "${arg}" = "--help" ] || [ "${arg}" = "-h" ]; then + print_help + exit else printf "Unrecognized option %s\n" ${arg} fi From 16e63eac68e438b6a7a720d5bc2d5e06e7789e7c Mon Sep 17 00:00:00 2001 From: cenlinhe Date: Thu, 5 Jan 2023 14:55:46 -0700 Subject: [PATCH 05/16] add global LCZ entry to GEOGRID.TBL --- geogrid/GEOGRID.TBL.ARW_LCZ | 975 ++++++++++++++++++++++++++++++++++++ 1 file changed, 975 insertions(+) create mode 100644 geogrid/GEOGRID.TBL.ARW_LCZ diff --git a/geogrid/GEOGRID.TBL.ARW_LCZ b/geogrid/GEOGRID.TBL.ARW_LCZ new file mode 100644 index 00000000..4133c0ce --- /dev/null +++ b/geogrid/GEOGRID.TBL.ARW_LCZ @@ -0,0 +1,975 @@ +# See options.txt for a (somewhat up to date) list of the +# options that may be specified here. +=============================== +name = HGT_M + priority = 1 + dest_type = continuous + smooth_option = smth-desmth_special; smooth_passes=1 + fill_missing=0. + interp_option = gmted2010_30s:average_gcell(4.0)+four_pt+average_4pt + interp_option = gtopo_30s:average_gcell(4.0)+four_pt+average_4pt + interp_option = gtopo_2m:four_pt + interp_option = gtopo_5m:four_pt + interp_option = gtopo_10m:four_pt + interp_option = lowres:average_gcell(4.0)+four_pt + interp_option = default:average_gcell(4.0)+four_pt+average_4pt + rel_path = gmted2010_30s:topo_gmted2010_30s/ + rel_path = gtopo_30s:topo_30s/ + rel_path = gtopo_2m:topo_2m/ + rel_path = gtopo_5m:topo_5m/ + rel_path = gtopo_10m:topo_10m/ + rel_path = lowres:topo_gmted2010_5m/ + rel_path = default:topo_gmted2010_30s/ +=============================== +name=LANDUSEF + priority = 2 + dest_type = categorical + z_dim_name = land_cat + interp_option = cglc_modis_lcz:nearest_neighbor + rel_path = cglc_modis_lcz:CGLC_MODIS_LCZ_global/ +=============================== +name=LANDUSEF + priority=1 + dest_type=categorical + z_dim_name=land_cat + dominant = LU_INDEX + landmask_water = nlcd2006_9s:17 # Calculate a landmask from this field + landmask_water = nlcd2006_30s:17 # Calculate a landmask from this field + landmask_water = nlcd2011_9s:17 # Calculate a landmask from this field + landmask_water = nlcd2006:17 # Calculate a landmask from this field + landmask_water = ssib_10m:16 # Calculate a landmask from this field + landmask_water = ssib_5m:16 # Calculate a landmask from this field + landmask_water = modis_15s:17 # Calculate a landmask from this field + landmask_water = modis_15s_lake:17,21 # Calculate a landmask from this field + landmask_water = modis_30s:17 # Calculate a landmask from this field + landmask_water = modis_30s_lake:17,21 # Calculate a landmask from this field + landmask_water = usgs_30s:16 # Calculate a landmask from this field + landmask_water = usgs_lakes:16,28 # Calculate a landmask from this field + landmask_water = modis_lakes:17,21 # Calculate a landmask from this field + landmask_water = usgs_2m:16 # Calculate a landmask from this field + landmask_water = usgs_5m:16 # Calculate a landmask from this field + landmask_water = usgs_10m:16 # Calculate a landmask from this field + landmask_water = lowres:17,21 # Calculate a landmask from this field + landmask_water = default:17,21 # Calculate a landmask from this field + interp_option = nlcd2006_9s:average_gcell(0.0) + interp_option = nlcd2006_30s:average_gcell(0.0) + interp_option = nlcd2011_9s:average_gcell(0.0) + interp_option = nlcd2006:nearest_neighbor + interp_option = ssib_10m:four_pt + interp_option = ssib_5m:four_pt + interp_option = modis_15s:nearest_neighbor + interp_option = modis_15s_lake:nearest_neighbor + interp_option = modis_30s:nearest_neighbor + interp_option = modis_30s_lake:nearest_neighbor + interp_option = usgs_30s:nearest_neighbor + interp_option = usgs_lakes:nearest_neighbor + interp_option = modis_lakes:nearest_neighbor + interp_option = usgs_2m:four_pt + interp_option = usgs_5m:four_pt + interp_option = usgs_10m:four_pt + interp_option = lowres:average_gcell(4.0)+four_pt + interp_option = default:nearest_neighbor + rel_path = nlcd2006_9s:nlcd2006_ll_9s/ + rel_path = nlcd2006_30s:nlcd2006_ll_30s/ + rel_path = nlcd2011_9s:nlcd2011_ll_9s/ + rel_path = nlcd2006:nlcd2006_ll_30s/ + rel_path = ssib_10m:ssib_landuse_10m/ + rel_path = ssib_5m:ssib_landuse_5m/ + rel_path = modis_15s:modis_landuse_20class_15s/ + rel_path = modis_15s_lake:modis_landuse_20class_15s_with_lakes/ + rel_path = modis_30s:modis_landuse_20class_30s/ + rel_path = modis_30s_lake:modis_landuse_20class_30s_with_lakes/ + rel_path = usgs_30s:landuse_30s/ + rel_path = usgs_lakes:landuse_30s_with_lakes/ + rel_path = modis_lakes:modis_landuse_21class_30s/ + rel_path = usgs_2m:landuse_2m/ + rel_path = usgs_5m:landuse_5m/ + rel_path = usgs_10m:landuse_10m/ + rel_path = lowres:modis_landuse_20class_5m_with_lakes/ + rel_path = default:modis_landuse_20class_30s_with_lakes/ +=============================== +name=SOILTEMP + priority=1 + dest_type=continuous + interp_option= lowres:sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search + interp_option=default:sixteen_pt+four_pt+average_4pt+average_16pt+search + masked=water + fill_missing=0. + rel_path= lowres:soiltemp_1deg/ + rel_path=default:soiltemp_1deg/ +=============================== +name=SOILCTOP + priority=1 + dest_type=categorical + z_dim_name=soil_cat + dominant=SCT_DOM + interp_option = bnu_soil_30s:nearest_neighbor + interp_option = 30s:nearest_neighbor + interp_option = 2m:four_pt + interp_option = 5m:four_pt + interp_option = 10m:four_pt + interp_option = lowres:four_pt + interp_option = default:nearest_neighbor + rel_path= bnu_soil_30s:bnu_soiltype_top/ + rel_path= 30s:soiltype_top_30s/ + rel_path= 2m:soiltype_top_2m/ + rel_path= 5m:soiltype_top_5m/ + rel_path= 10m:soiltype_top_10m/ + rel_path= lowres:soiltype_top_5m/ + rel_path= default:soiltype_top_30s/ +=============================== +name=SOILCBOT + priority=1 + dest_type=categorical + z_dim_name=soil_cat + dominant=SCB_DOM + interp_option = bnu_soil_30s:nearest_neighbor + interp_option = 30s:nearest_neighbor + interp_option = 2m:four_pt + interp_option = 5m:four_pt + interp_option = 10m:four_pt + interp_option = lowres:four_pt + interp_option = default:nearest_neighbor + rel_path= bnu_soil_30s:bnu_soiltype_bot/ + rel_path= 30s:soiltype_bot_30s/ + rel_path= 2m:soiltype_bot_2m/ + rel_path= 5m:soiltype_bot_5m/ + rel_path= 10m:soiltype_bot_10m/ + rel_path= lowres:soiltype_bot_5m/ + rel_path= default:soiltype_bot_30s/ +=============================== +name=ALBEDO12M + priority=1 + dest_type=continuous + z_dim_name=month + masked = water + fill_missing = 8. + interp_option=albedo_modis:four_pt+average_4pt+average_16pt+search + interp_option=albedo_ncep:four_pt+average_4pt+average_16pt+search + interp_option= lowres:four_pt+wt_average_4pt+wt_average_16pt+search + interp_option=default:four_pt+average_4pt+average_16pt+search + rel_path=albedo_modis:albedo_modis/ + rel_path=albedo_ncep:albedo_ncep/ + rel_path= lowres:albedo_modis/ + rel_path=default:albedo_modis/ +=============================== +name=GREENFRAC + priority=1 + dest_type=continuous + interp_option=modis_fpar:average_gcell(4.0)+four_pt+average_4pt+average_16pt+search + interp_option=nesdis_greenfrac:four_pt+average_4pt+average_16pt+search + interp_option= lowres:average_gcell(4.0)+four_pt+wt_average_4pt+wt_average_16pt+search + interp_option=default:average_gcell(4.0)+four_pt+average_4pt+average_16pt+search + z_dim_name=month + masked = water + fill_missing = 0. + rel_path=modis_fpar:greenfrac_fpar_modis/ + rel_path=nesdis_greenfrac:greenfrac/ + rel_path= lowres:greenfrac_fpar_modis_5m/ + rel_path=default:greenfrac_fpar_modis/ +=============================== +name=LAI12M + priority=1 + dest_type=continuous + interp_option=modis_lai:average_gcell(4.0)+four_pt+average_4pt+average_16pt+search + interp_option= lowres:average_gcell(4.0)+four_pt+wt_average_4pt+wt_average_16pt+search + interp_option=default:average_gcell(4.0)+four_pt+average_4pt+average_16pt+search + z_dim_name=month + masked = water + fill_missing = 0. + rel_path=modis_lai:lai_modis_30s/ + rel_path= lowres:lai_modis_10m/ + rel_path=default:lai_modis_10m/ + flag_in_output=FLAG_LAI12M +=============================== +name=SNOALB + priority=1 + dest_type=continuous + interp_option=maxsnowalb_modis:four_pt+average_4pt+average_16pt+search + interp_option=maxsnowalb_ncep:four_pt+average_4pt+average_16pt+search + interp_option= lowres:four_pt+wt_average_4pt+wt_average_16pt+search + interp_option=default:four_pt+average_4pt+average_16pt+search + masked = water + fill_missing = 0. + rel_path=maxsnowalb_modis:maxsnowalb_modis/ + rel_path=maxsnowalb_ncep:maxsnowalb/ + rel_path= lowres:maxsnowalb_modis/ + rel_path=default:maxsnowalb_modis/ +=============================== +name = CON + priority = 1 + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = default:orogwd_10m/con/ + rel_path = lowres:orogwd_1deg/con/ + rel_path = 10m:orogwd_10m/con/ + rel_path = 20m:orogwd_20m/con/ + rel_path = 30m:orogwd_30m/con/ + rel_path = 1deg:orogwd_1deg/con/ + rel_path = 2deg:orogwd_2deg/con/ +=============================== +name = VAR + priority = 1 + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = default:orogwd_10m/var/ + rel_path = lowres:orogwd_1deg/var/ + rel_path = 10m:orogwd_10m/var/ + rel_path = 20m:orogwd_20m/var/ + rel_path = 30m:orogwd_30m/var/ + rel_path = 1deg:orogwd_1deg/var/ + rel_path = 2deg:orogwd_2deg/var/ +=============================== +name = OA1 + priority = 1 + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = default:orogwd_10m/oa1/ + rel_path = lowres:orogwd_1deg/oa1/ + rel_path = 10m:orogwd_10m/oa1/ + rel_path = 20m:orogwd_20m/oa1/ + rel_path = 30m:orogwd_30m/oa1/ + rel_path = 1deg:orogwd_1deg/oa1/ + rel_path = 2deg:orogwd_2deg/oa1/ +=============================== +name = OA2 + priority = 1 + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = default:orogwd_10m/oa2/ + rel_path = lowres:orogwd_1deg/oa2/ + rel_path = 10m:orogwd_10m/oa2/ + rel_path = 20m:orogwd_20m/oa2/ + rel_path = 30m:orogwd_30m/oa2/ + rel_path = 1deg:orogwd_1deg/oa2/ + rel_path = 2deg:orogwd_2deg/oa2/ +=============================== +name = OA3 + priority = 1 + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = default:orogwd_10m/oa3/ + rel_path = lowres:orogwd_1deg/oa3/ + rel_path = 10m:orogwd_10m/oa3/ + rel_path = 20m:orogwd_20m/oa3/ + rel_path = 30m:orogwd_30m/oa3/ + rel_path = 1deg:orogwd_1deg/oa3/ + rel_path = 2deg:orogwd_2deg/oa3/ +=============================== +name = OA4 + priority = 1 + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = default:orogwd_10m/oa4/ + rel_path = lowres:orogwd_1deg/oa4/ + rel_path = 10m:orogwd_10m/oa4/ + rel_path = 20m:orogwd_20m/oa4/ + rel_path = 30m:orogwd_30m/oa4/ + rel_path = 1deg:orogwd_1deg/oa4/ + rel_path = 2deg:orogwd_2deg/oa4/ +=============================== +name = OL1 + priority = 1 + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = default:orogwd_10m/ol1/ + rel_path = lowres:orogwd_1deg/ol1/ + rel_path = 10m:orogwd_10m/ol1/ + rel_path = 20m:orogwd_20m/ol1/ + rel_path = 30m:orogwd_30m/ol1/ + rel_path = 1deg:orogwd_1deg/ol1/ + rel_path = 2deg:orogwd_2deg/ol1/ +=============================== +name = OL2 + priority = 1 + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = default:orogwd_10m/ol2/ + rel_path = lowres:orogwd_1deg/ol2/ + rel_path = 10m:orogwd_10m/ol2/ + rel_path = 20m:orogwd_20m/ol2/ + rel_path = 30m:orogwd_30m/ol2/ + rel_path = 1deg:orogwd_1deg/ol2/ + rel_path = 2deg:orogwd_2deg/ol2/ +=============================== +name = OL3 + priority = 1 + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = default:orogwd_10m/ol3/ + rel_path = lowres:orogwd_1deg/ol3/ + rel_path = 10m:orogwd_10m/ol3/ + rel_path = 20m:orogwd_20m/ol3/ + rel_path = 30m:orogwd_30m/ol3/ + rel_path = 1deg:orogwd_1deg/ol3/ + rel_path = 2deg:orogwd_2deg/ol3/ +=============================== +name = OL4 + priority = 1 + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = default:orogwd_10m/ol4/ + rel_path = lowres:orogwd_1deg/ol4/ + rel_path = 10m:orogwd_10m/ol4/ + rel_path = 20m:orogwd_20m/ol4/ + rel_path = 30m:orogwd_30m/ol4/ + rel_path = 1deg:orogwd_1deg/ol4/ + rel_path = 2deg:orogwd_2deg/ol4/ +=============================== +name = VAR_SSO + priority = 1 + optional=yes + dest_type = continuous + fill_missing=0. + interp_option = 30s:average_gcell(4.0)+four_pt+average_4pt + interp_option = 2m:average_gcell(4.0)+four_pt+average_4pt + interp_option = 5m:average_gcell(4.0)+four_pt+average_4pt + interp_option = 10m:average_gcell(4.0)+four_pt+average_4pt + interp_option = lowres:average_gcell(4.0)+four_pt+wt_average_4pt + interp_option = default:average_gcell(4.0)+four_pt+average_4pt + rel_path = 30s:varsso/ + rel_path = 2m:varsso_2m/ + rel_path = 5m:varsso_5m/ + rel_path = 10m:varsso_10m/ + rel_path = lowres:varsso_10m/ + rel_path = default:varsso_10m/ + flag_in_output=FLAG_VAR_SSO +=============================== +name = LAKE_DEPTH + priority=1 + optional=yes + dest_type = continuous + fill_missing = 10. + masked=land + interp_option = default:average_gcell(1.0)+search(5) + rel_path = default:lake_depth/ + flag_in_output=FLAG_LAKE_DEPTH +=============================== +name=URB_PARAM + priority=1 + optional=yes + dest_type=continuous + fill_missing = 0. + z_dim_name=num_urb_params + interp_option=default:nearest_neighbor + rel_path=default:NUDAPT44_1km/ + flag_in_output=FLAG_URB_PARAM +=============================== +name=FRC_URB2D + priority=1 + optional=yes + dest_type=continuous + fill_missing = 0. + interp_option=default: average_gcell(2.0)+four_pt + rel_path=default:urbfrac_nlcd2011/ + flag_in_output=FLAG_FRC_URB2D +=============================== +name=IMPERV + priority=1 + optional=yes + dest_type=continuous + interp_option = default:average_gcell(0.0) + masked=water + fill_missing=0. + rel_path = default:nlcd2011_imp_ll_9s/ + flag_in_output=FLAG_IMPERV +=============================== +name=CANFRA + priority=1 + optional=yes + dest_type=continuous + interp_option = default:average_gcell(0.0) + masked=water + fill_missing=0. + rel_path = default:nlcd2011_can_ll_9s/ + flag_in_output=FLAG_CANFRA +=============================== +name = EROD + priority = 1 + optional=yes + dest_type = continuous + masked=water + z_dim_name=dust_erosion_dimension + fill_missing=0. + interp_option = default:average_4pt + rel_path = default:erod/ + flag_in_output=FLAG_EROD +=============================== +name = CLAYFRAC + priority = 1 + optional=yes + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:four_pt+average_4pt+average_16pt+search + rel_path = default:clayfrac_5m/ + flag_in_output=FLAG_CLAYFRAC +=============================== +name = SANDFRAC + priority = 1 + optional=yes + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:four_pt+average_4pt+average_16pt+search + rel_path = default:sandfrac_5m/ + flag_in_output=FLAG_SANDFRAC +=============================== +name=IRRIGATION + priority=1 + optional=yes + dest_type=continuous + interp_option=default:average_gcell(0.0)+average_4pt+nearest_neighbor + masked = water + fill_missing = 0. + rel_path=default:irrigation/fao/ +=============================== +name = CONLS + priority = 1 + optional=yes + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 2.5m:average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = lowres:orogwd3_1deg/conls/ + rel_path = 2.5m:orogwd3_2.5m/conss/ + rel_path = 10m:orogwd3_10m/conls/ + rel_path = 20m:orogwd3_20m/conls/ + rel_path = 30m:orogwd3_30m/conls/ + rel_path = 1deg:orogwd3_1deg/conls/ + rel_path = 2deg:orogwd3_2deg/conls/ + rel_path = default:orogwd3_10m/conls/ +=============================== +name = VARLS + priority = 1 + optional=yes + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 2.5m:average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = lowres:orogwd3_1deg/varls/ + rel_path = 2.5m:orogwd3_2.5m/varss/ + rel_path = 10m:orogwd3_10m/varls/ + rel_path = 20m:orogwd3_20m/varls/ + rel_path = 30m:orogwd3_30m/varls/ + rel_path = 1deg:orogwd3_1deg/varls/ + rel_path = 2deg:orogwd3_2deg/varls/ + rel_path = default:orogwd3_10m/varls/ +=============================== +name = OA1LS + priority = 1 + optional=yes + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 2.5m:average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = lowres:orogwd3_1deg/oa1ls/ + rel_path = 2.5m:orogwd3_2.5m/oa1ss/ + rel_path = 10m:orogwd3_10m/oa1ls/ + rel_path = 20m:orogwd3_20m/oa1ls/ + rel_path = 30m:orogwd3_30m/oa1ls/ + rel_path = 1deg:orogwd3_1deg/oa1ls/ + rel_path = 2deg:orogwd3_2deg/oa1ls/ + rel_path = default:orogwd3_10m/oa1ls/ +=============================== +name = OA2LS + priority = 1 + optional=yes + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 2.5m:average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = lowres:orogwd3_1deg/oa2ls/ + rel_path = 2.5m:orogwd3_2.5m/oa2ss/ + rel_path = 10m:orogwd3_10m/oa2ls/ + rel_path = 20m:orogwd3_20m/oa2ls/ + rel_path = 30m:orogwd3_30m/oa2ls/ + rel_path = 1deg:orogwd3_1deg/oa2ls/ + rel_path = 2deg:orogwd3_2deg/oa2ls/ + rel_path = default:orogwd3_10m/oa2ls/ +=============================== +name = OA3LS + priority = 1 + optional=yes + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 2.5m:average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = lowres:orogwd3_1deg/oa3ls/ + rel_path = 2.5m:orogwd3_2.5m/oa3ss/ + rel_path = 10m:orogwd3_10m/oa3ls/ + rel_path = 20m:orogwd3_20m/oa3ls/ + rel_path = 30m:orogwd3_30m/oa3ls/ + rel_path = 1deg:orogwd3_1deg/oa3ls/ + rel_path = 2deg:orogwd3_2deg/oa3ls/ + rel_path = default:orogwd3_10m/oa3ls/ +=============================== +name = OA4LS + priority = 1 + optional=yes + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 2.5m:average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = lowres:orogwd3_1deg/oa4ls/ + rel_path = 2.5m:orogwd3_2.5m/oa4ss/ + rel_path = 10m:orogwd3_10m/oa4ls/ + rel_path = 20m:orogwd3_20m/oa4ls/ + rel_path = 30m:orogwd3_30m/oa4ls/ + rel_path = 1deg:orogwd3_1deg/oa4ls/ + rel_path = 2deg:orogwd3_2deg/oa4ls/ + rel_path = default:orogwd3_10m/oa4ls/ +=============================== +name = OL1LS + priority = 1 + optional=yes + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 2.5m:average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = lowres:orogwd3_1deg/ol1ls/ + rel_path = 2.5m:orogwd3_2.5m/ol1ss/ + rel_path = 10m:orogwd3_10m/ol1ls/ + rel_path = 20m:orogwd3_20m/ol1ls/ + rel_path = 30m:orogwd3_30m/ol1ls/ + rel_path = 1deg:orogwd3_1deg/ol1ls/ + rel_path = 2deg:orogwd3_2deg/ol1ls/ + rel_path = default:orogwd3_10m/ol1ls/ +=============================== +name = OL2LS + priority = 1 + optional=yes + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 2.5m:average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = lowres:orogwd3_1deg/ol2ls/ + rel_path = 2.5m:orogwd3_2.5m/ol2ss/ + rel_path = 10m:orogwd3_10m/ol2ls/ + rel_path = 20m:orogwd3_20m/ol2ls/ + rel_path = 30m:orogwd3_30m/ol2ls/ + rel_path = 1deg:orogwd3_1deg/ol2ls/ + rel_path = 2deg:orogwd3_2deg/ol2ls/ + rel_path = default:orogwd3_10m/ol2ls/ +=============================== +name = OL3LS + priority = 1 + optional=yes + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 2.5m:average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = lowres:orogwd3_1deg/ol3ls/ + rel_path = 2.5m:orogwd3_2.5m/ol3ss/ + rel_path = 10m:orogwd3_10m/ol3ls/ + rel_path = 20m:orogwd3_20m/ol3ls/ + rel_path = 30m:orogwd3_30m/ol3ls/ + rel_path = 1deg:orogwd3_1deg/ol3ls/ + rel_path = 2deg:orogwd3_2deg/ol3ls/ + rel_path = default:orogwd3_10m/ol3ls/ +=============================== +name = OL4LS + priority = 1 + optional=yes + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 2.5m:average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = lowres:orogwd3_1deg/ol4ls/ + rel_path = 2.5m:orogwd3_2.5m/ol4ss/ + rel_path = 10m:orogwd3_10m/ol4ls/ + rel_path = 20m:orogwd3_20m/ol4ls/ + rel_path = 30m:orogwd3_30m/ol4ls/ + rel_path = 1deg:orogwd3_1deg/ol4ls/ + rel_path = 2deg:orogwd3_2deg/ol4ls/ + rel_path = default:orogwd3_10m/ol4ls/ +=============================== +name = CONSS + priority = 1 + optional=yes + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 2.5m:average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = lowres:orogwd3_1deg/conss/ + rel_path = 2.5m:orogwd3_2.5m/conss/ + rel_path = 10m:orogwd3_10m/conss/ + rel_path = 20m:orogwd3_20m/conss/ + rel_path = 30m:orogwd3_30m/conss/ + rel_path = 1deg:orogwd3_1deg/conss/ + rel_path = 2deg:orogwd3_2deg/conss/ + rel_path = default:orogwd3_10m/conss/ +=============================== +name = VARSS + priority = 1 + optional=yes + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 2.5m:average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = lowres:orogwd3_1deg/varss/ + rel_path = 2.5m:orogwd3_2.5m/varss/ + rel_path = 10m:orogwd3_10m/varss/ + rel_path = 20m:orogwd3_20m/varss/ + rel_path = 30m:orogwd3_30m/varss/ + rel_path = 1deg:orogwd3_1deg/varss/ + rel_path = 2deg:orogwd3_2deg/varss/ + rel_path = default:orogwd3_10m/varss/ +=============================== +name = OA1SS + priority = 1 + optional=yes + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 2.5m:average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = lowres:orogwd3_1deg/oa1ss/ + rel_path = 2.5m:orogwd3_2.5m/oa1ss/ + rel_path = 10m:orogwd3_10m/oa1ss/ + rel_path = 20m:orogwd3_20m/oa1ss/ + rel_path = 30m:orogwd3_30m/oa1ss/ + rel_path = 1deg:orogwd3_1deg/oa1ss/ + rel_path = 2deg:orogwd3_2deg/oa1ss/ + rel_path = default:orogwd3_10m/oa1ss/ +=============================== +name = OA2SS + priority = 1 + optional=yes + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 2.5m:average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = lowres:orogwd3_1deg/oa2ss/ + rel_path = 2.5m:orogwd3_2.5m/oa2ss/ + rel_path = 10m:orogwd3_10m/oa2ss/ + rel_path = 20m:orogwd3_20m/oa2ss/ + rel_path = 30m:orogwd3_30m/oa2ss/ + rel_path = 1deg:orogwd3_1deg/oa2ss/ + rel_path = 2deg:orogwd3_2deg/oa2ss/ + rel_path = default:orogwd3_10m/oa2ss/ +=============================== +name = OA3SS + priority = 1 + optional=yes + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 2.5m:average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = lowres:orogwd3_1deg/oa3ss/ + rel_path = 2.5m:orogwd3_2.5m/oa3ss/ + rel_path = 10m:orogwd3_10m/oa3ss/ + rel_path = 20m:orogwd3_20m/oa3ss/ + rel_path = 30m:orogwd3_30m/oa3ss/ + rel_path = 1deg:orogwd3_1deg/oa3ss/ + rel_path = 2deg:orogwd3_2deg/oa3ss/ + rel_path = default:orogwd3_10m/oa3ss/ +=============================== +name = OA4SS + priority = 1 + optional=yes + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 2.5m:average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = lowres:orogwd3_1deg/oa4ss/ + rel_path = 2.5m:orogwd3_2.5m/oa4ss/ + rel_path = 10m:orogwd3_10m/oa4ss/ + rel_path = 20m:orogwd3_20m/oa4ss/ + rel_path = 30m:orogwd3_30m/oa4ss/ + rel_path = 1deg:orogwd3_1deg/oa4ss/ + rel_path = 2deg:orogwd3_2deg/oa4ss/ + rel_path = default:orogwd3_10m/oa4ss/ +=============================== +name = OL1SS + priority = 1 + optional=yes + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 2.5m:average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = lowres:orogwd3_1deg/ol1ss/ + rel_path = 2.5m:orogwd3_2.5m/ol1ss/ + rel_path = 10m:orogwd3_10m/ol1ss/ + rel_path = 20m:orogwd3_20m/ol1ss/ + rel_path = 30m:orogwd3_30m/ol1ss/ + rel_path = 1deg:orogwd3_1deg/ol1ss/ + rel_path = 2deg:orogwd3_2deg/ol1ss/ + rel_path = default:orogwd3_10m/ol1ss/ +=============================== +name = OL2SS + priority = 1 + optional=yes + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 2.5m:average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = lowres:orogwd3_1deg/ol2ss/ + rel_path = 2.5m:orogwd3_2.5m/ol2ss/ + rel_path = 10m:orogwd3_10m/ol2ss/ + rel_path = 20m:orogwd3_20m/ol2ss/ + rel_path = 30m:orogwd3_30m/ol2ss/ + rel_path = 1deg:orogwd3_1deg/ol2ss/ + rel_path = 2deg:orogwd3_2deg/ol2ss/ + rel_path = default:orogwd3_10m/ol2ss/ +=============================== +name = OL3SS + priority = 1 + optional=yes + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 2.5m:average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = lowres:orogwd3_1deg/ol3ss/ + rel_path = 2.5m:orogwd3_2.5m/ol3ss/ + rel_path = 10m:orogwd3_10m/ol3ss/ + rel_path = 20m:orogwd3_20m/ol3ss/ + rel_path = 30m:orogwd3_30m/ol3ss/ + rel_path = 1deg:orogwd3_1deg/ol3ss/ + rel_path = 2deg:orogwd3_2deg/ol3ss/ + rel_path = default:orogwd3_10m/ol3ss/ +=============================== +name = OL4SS + priority = 1 + optional=yes + dest_type = continuous + masked=water + fill_missing=0. + interp_option = default:average_4pt + interp_option = lowres:wt_average_4pt + interp_option = 2.5m:average_4pt + interp_option = 10m:average_4pt + interp_option = 20m:average_4pt + interp_option = 30m:average_4pt + interp_option = 1deg:average_4pt + interp_option = 2deg:average_4pt + rel_path = lowres:orogwd3_1deg/ol4ss/ + rel_path = 2.5m:orogwd3_2.5m/ol4ss/ + rel_path = 10m:orogwd3_10m/ol4ss/ + rel_path = 20m:orogwd3_20m/ol4ss/ + rel_path = 30m:orogwd3_30m/ol4ss/ + rel_path = 1deg:orogwd3_1deg/ol4ss/ + rel_path = 2deg:orogwd3_2deg/ol4ss/ + rel_path = default:orogwd3_10m/ol4ss/ +=============================== +name = BATHYMETRY + priority = 1 + dest_type = continuous + optional=yes + fill_missing=999. + interp_option = default:average_gcell(1.0)+search(5) + rel_path = default:topobath_30s/ + flag_in_output=FLAG_BATHYMETRY +=============================== From 2e29dc83e4a3e9e3133d6e4d2f98e6be852c87c9 Mon Sep 17 00:00:00 2001 From: Michael Duda Date: Thu, 5 Jan 2023 17:22:40 -0700 Subject: [PATCH 06/16] Increase idlen from 8 to 9 in new_storage.F to support nine-character names Since other parts of the ungrib code support nine-character variable names, this commit increases the length of field identifiers (names) in the storage module from eight to nine characters. --- ungrib/src/new_storage.F | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ungrib/src/new_storage.F b/ungrib/src/new_storage.F index 1651a866..5a565479 100644 --- a/ungrib/src/new_storage.F +++ b/ungrib/src/new_storage.F @@ -16,7 +16,7 @@ module storage_module public :: setll public :: getll - integer, parameter :: idlen = 8 + integer, parameter :: idlen = 9 integer :: verbose = 0 ! 0 = no prints; 1 = some prints; 2 = more; etc. type node2 From d6b23c6062c815ea5f9417bf31b473de15a90ea8 Mon Sep 17 00:00:00 2001 From: Michael Duda Date: Thu, 5 Jan 2023 17:25:40 -0700 Subject: [PATCH 07/16] Use all 9 characters of namvar when printing field inventory in output() routine Since the namvar variable can accommodate 9 characters (see L.14 of table.F), write all of these characters when printing variable inventories in the output() subroutine. --- ungrib/src/output.F | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ungrib/src/output.F b/ungrib/src/output.F index 2c802fd7..6b3fecb4 100644 --- a/ungrib/src/output.F +++ b/ungrib/src/output.F @@ -80,7 +80,7 @@ subroutine output(hdate, nlvl, maxlvl, plvl, interval, iflag, out_format, prefix do k = 1, n-1 if (namvar(k).eq.namvar(n)) cycle WRTLOOP enddo - write(*,advance='NO', fmt='(1x,A8)') namvar(n) + write(*,advance='NO', fmt='(1x,A9)') namvar(n) write(tmp9,'(A9)') namvar(n)(1:9) call right_justify(tmp9,9) call mprintf(.true.,LOGFILE,tmp9,newline=.false.) From a04323b1f3981ee5a5686f85017e290f33833cdd Mon Sep 17 00:00:00 2001 From: "jordan.schnell" Date: Thu, 12 Jan 2023 14:48:20 +0000 Subject: [PATCH 08/16] With the merge of PR #216, I think it should now be possible to remove the intermediate name that was less than 9 characters --- metgrid/METGRID.TBL.ARW | 2 -- ungrib/Variable_Tables/Vtable.GFS_OZONE | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/metgrid/METGRID.TBL.ARW b/metgrid/METGRID.TBL.ARW index 774a29b8..ba55850e 100644 --- a/metgrid/METGRID.TBL.ARW +++ b/metgrid/METGRID.TBL.ARW @@ -761,8 +761,6 @@ name=T0 missing_value=200. fill_missing=-20. ======================================== -name=O3_TOT ; output_name=O3_GFS_DU -======================================== name=O3_GFS_DU interp_option=four_pt+average_4pt fill_lev=200100:const(200100.) diff --git a/ungrib/Variable_Tables/Vtable.GFS_OZONE b/ungrib/Variable_Tables/Vtable.GFS_OZONE index 17173d63..aa40bec1 100644 --- a/ungrib/Variable_Tables/Vtable.GFS_OZONE +++ b/ungrib/Variable_Tables/Vtable.GFS_OZONE @@ -45,7 +45,7 @@ Param| Type |Level1|Level2| Name | Units | Description | 7 | 0 | | PTROPNN | Pa | PTROP, used for nearest neighbor interp | 0 | 3 | 0 | 7 | 2 | 7 | 0 | | TTROP | K | Temperature at tropopause | 0 | 0 | 0 | 7 | 7 | 7 | 0 | | HGTTROP | m | Height of tropopause | 0 | 3 | 5 | 7 | - 10 | 200 | * | | O3_TOT | Dobson | Total ozone column | 0 | 14 | 0 | 200 | + 10 | 200 | * | | O3_GFS_DU| Dobson | Total ozone column | 0 | 14 | 0 | 200 | -----+------+------+------+----------+---------+-----------------------------------------+-----------------------+ # # Vtable for GFS pressure-level data from the ncep server. From 2949e8fe49ec5f12d5364a41f9680f599fe0104f Mon Sep 17 00:00:00 2001 From: grafmi Date: Thu, 30 Mar 2023 19:27:14 +0200 Subject: [PATCH 09/16] modify rrpr.F to convert ICON soil moisture from kg m-2 to m3 m-3 --- ungrib/src/rrpr.F | 66 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 65 insertions(+), 1 deletion(-) diff --git a/ungrib/src/rrpr.F b/ungrib/src/rrpr.F index 16ee85be..52473433 100644 --- a/ungrib/src/rrpr.F +++ b/ungrib/src/rrpr.F @@ -790,6 +790,17 @@ subroutine rrpr(hstart, ntimes, interval, nlvl, maxlvl, plvl, & endif endif +! Convert soil moisture in ICON input from kg m-2 to m3 m-3 + if (index(map%source,'DWD') .ne. 0) then + if (is_there(200100, 'SOILM001')) then + call get_dims(200100, 'SOILM001') + print *,'Adjusting ICON soil moisture' + call mprintf(.true.,DEBUG, & + "RRPR: Adjusting ICON soil moisture ") + call fix_icon_soilm (map%nx, map%ny) + endif + endif + ! ! Check to see if we need to fill SOILHGT from SOILGEO. ! (From Wei Wang, 2007 June 21) @@ -1410,7 +1421,60 @@ subroutine fix_ruc_soilm (ix, jx) deallocate(soilcat) end subroutine fix_ruc_soilm - + +subroutine fix_icon_soilm (ix, jx) + use storage_module + implicit none + integer :: ix, jx + real, allocatable, dimension(:,:) :: soilm001, soilm002, soilm006, & + soilm018, soilm054, soilm162, soilm486, soilm999 + allocate(soilm001(ix,jx)) + allocate(soilm002(ix,jx)) + allocate(soilm006(ix,jx)) + allocate(soilm018(ix,jx)) + allocate(soilm054(ix,jx)) + allocate(soilm162(ix,jx)) + allocate(soilm486(ix,jx)) + allocate(soilm999(ix,jx)) + call get_storage(200100, 'SOILM001', soilm001, ix, jx) + call get_storage(200100, 'SOILM002', soilm002, ix, jx) + call get_storage(200100, 'SOILM006', soilm006, ix, jx) + call get_storage(200100, 'SOILM018', soilm018, ix, jx) + call get_storage(200100, 'SOILM054', soilm054, ix, jx) + call get_storage(200100, 'SOILM162', soilm162, ix, jx) + call get_storage(200100, 'SOILM486', soilm486, ix, jx) + call get_storage(200100, 'SOILM999', soilm999, ix, jx) + !convert kg m-2 to m3 m-3 + soilm001 = soilm001 / 0.01 / 1000. + soilm002 = soilm002 / 0.02 / 1000. + soilm006 = soilm006 / 0.06 / 1000. + soilm018 = soilm018 / 0.18 / 1000. + soilm054 = soilm054 / 0.54 / 1000. + soilm162 = soilm162 / 1.62 / 1000. + soilm486 = soilm486 / 4.86 / 1000. + soilm999 = soilm999 / 14.58 / 1000. + call put_storage(200100, 'SOILM001', soilm001, ix, jx) + call put_storage(200100, 'SOILM002', soilm002, ix, jx) + call put_storage(200100, 'SOILM006', soilm006, ix, jx) + call put_storage(200100, 'SOILM018', soilm018, ix, jx) + call put_storage(200100, 'SOILM054', soilm054, ix, jx) + call put_storage(200100, 'SOILM162', soilm162, ix, jx) + call put_storage(200100, 'SOILM486', soilm486, ix, jx) + call put_storage(200100, 'SOILM999', soilm999, ix, jx) + + print *,'fix_icon_soilm is done!' + + deallocate(soilm001) + deallocate(soilm002) + deallocate(soilm006) + deallocate(soilm018) + deallocate(soilm054) + deallocate(soilm162) + deallocate(soilm486) + deallocate(soilm999) + +end subroutine fix_icon_soilm + subroutine fix_gefs_landmask (ix, jx, plvl) ! Set LANDSEA to values based on soil temp. Assumes fix_gfs_miss has already been called. ! Needed for September 23, 2020 changes to GEFS. From 80d092c1ab410216c17e8442e33ac043a42b7df8 Mon Sep 17 00:00:00 2001 From: grafmi Date: Thu, 30 Mar 2023 19:29:30 +0200 Subject: [PATCH 10/16] add necessary field names to METGRID.TBL.ARW for ICON-EU --- metgrid/METGRID.TBL.ARW | 120 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 118 insertions(+), 2 deletions(-) diff --git a/metgrid/METGRID.TBL.ARW b/metgrid/METGRID.TBL.ARW index 46c49081..3f8234d6 100644 --- a/metgrid/METGRID.TBL.ARW +++ b/metgrid/METGRID.TBL.ARW @@ -76,7 +76,16 @@ name=SOILM fill_lev = 10 : SOILM010(200100) fill_lev = 30 : SOILM030(200100) fill_lev = 60 : SOILM060(200100) - fill_lev = 100 : SOILM100(200100) + fill_lev = 100 : SOILM100(200100) +# ICON + fill_lev = 0 : SOILM000(200100) + fill_lev = 2 : SOILM002(200100) + fill_lev = 6 : SOILM006(200100) + fill_lev = 18 : SOILM018(200100) + fill_lev = 54 : SOILM054(200100) + fill_lev = 162 : SOILM162(200100) + fill_lev = 486 : SOILM486(200100) + fill_lev = 1458 : SOILM999(200100) ======================================== name=SOILT z_dim_name=num_soilt_levels @@ -95,7 +104,16 @@ name=SOILT fill_lev = 10 : SOILT010(200100) fill_lev = 30 : SOILT030(200100) fill_lev = 60 : SOILT060(200100) - fill_lev = 100 : SOILT100(200100) + fill_lev = 100 : SOILT100(200100) +#ICON + fill_lev = 0 : SOILT000(200100) + fill_lev = 2 : SOILT002(200100) + fill_lev = 6 : SOILT006(200100) + fill_lev = 18 : SOILT018(200100) + fill_lev = 54 : SOILT054(200100) + fill_lev = 162 : SOILT162(200100) + fill_lev = 486 : SOILT486(200100) + fill_lev = 1458 : SOILT999(200100) ======================================== name=SOIL_LEVELS derived=yes @@ -401,6 +419,13 @@ name=SOILM001 fill_missing=1. flag_in_output=FLAG_SOILM001 ======================================== +name=SOILM002 + interp_option=sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search + masked=water + interp_mask=LANDSEA(0) + fill_missing=1. + flag_in_output=FLAG_SOILM002 +======================================== name=SOILM004 interp_option=sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search masked=water @@ -415,6 +440,13 @@ name=SOILM005 fill_missing=1. flag_in_output=FLAG_SOILM005 ======================================== +name=SOILM006 + interp_option=sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search + masked=water + interp_mask=LANDSEA(0) + fill_missing=1. + flag_in_output=FLAG_SOILM006 +======================================== name=SOILM010 interp_option=sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search masked=water @@ -422,6 +454,13 @@ name=SOILM010 fill_missing=1. flag_in_output=FLAG_SOILM010 ======================================== +name=SOILM018 + interp_option=sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search + masked=water + interp_mask=LANDSEA(0) + fill_missing=1. + flag_in_output=FLAG_SOILM018 +======================================== name=SOILM020 interp_option=sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search masked=water @@ -443,6 +482,13 @@ name=SOILM040 fill_missing=1. flag_in_output=FLAG_SOILM040 ======================================== +name=SOILM054 + interp_option=sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search + masked=water + interp_mask=LANDSEA(0) + fill_missing=1. + flag_in_output=FLAG_SOILM054 +======================================== name=SOILM060 interp_option=sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search masked=water @@ -464,6 +510,13 @@ name=SOILM160 fill_missing=1. flag_in_output=FLAG_SOILM160 ======================================== +name=SOILM162 + interp_option=sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search + masked=water + interp_mask=LANDSEA(0) + fill_missing=1. + flag_in_output=FLAG_SOILM162 +======================================== name=SOILM300 interp_option=sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search masked=water @@ -471,6 +524,20 @@ name=SOILM300 fill_missing=1. flag_in_output=FLAG_SOILM300 ======================================== +name=SOILM486 + interp_option=sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search + masked=water + interp_mask=LANDSEA(0) + fill_missing=1. + flag_in_output=FLAG_SOILM486 +======================================== +name=SOILM999 + interp_option=sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search + masked=water + interp_mask=LANDSEA(0) + fill_missing=1. + flag_in_output=FLAG_SOILM999 +======================================== name=SOILT000 interp_option=sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search masked=water @@ -485,6 +552,13 @@ name=SOILT001 fill_missing=285. flag_in_output=FLAG_SOILT001 ======================================== +name=SOILT002 + interp_option=sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search + masked=water + interp_mask=LANDSEA(0) + fill_missing=285. + flag_in_output=FLAG_SOILT002 +======================================== name=SOILT004 interp_option=sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search masked=water @@ -499,6 +573,13 @@ name=SOILT005 fill_missing=285. flag_in_output=FLAG_SOILT005 ======================================== +name=SOILT006 + interp_option=sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search + masked=water + interp_mask=LANDSEA(0) + fill_missing=285. + flag_in_output=FLAG_SOILT006 +======================================== name=SOILT010 interp_option=sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search masked=water @@ -506,6 +587,13 @@ name=SOILT010 fill_missing=285. flag_in_output=FLAG_SOILT010 ======================================== +name=SOILT018 + interp_option=sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search + masked=water + interp_mask=LANDSEA(0) + fill_missing=285. + flag_in_output=FLAG_SOILT018 +======================================== name=SOILT020 interp_option=sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search masked=water @@ -527,6 +615,13 @@ name=SOILT040 fill_missing=285. flag_in_output=FLAG_SOILT040 ======================================== +name=SOILT054 + interp_option=sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search + masked=water + interp_mask=LANDSEA(0) + fill_missing=285. + flag_in_output=FLAG_SOILT054 +======================================== name=SOILT060 interp_option=sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search masked=water @@ -548,6 +643,13 @@ name=SOILT160 fill_missing=285. flag_in_output=FLAG_SOILT160 ======================================== +name=SOILT162 + interp_option=sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search + masked=water + interp_mask=LANDSEA(0) + fill_missing=285. + flag_in_output=FLAG_SOILT162 +======================================== name=SOILT300 interp_option=sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search masked=water @@ -555,6 +657,20 @@ name=SOILT300 fill_missing=285. flag_in_output=FLAG_SOILT300 ======================================== +name=SOILT486 + interp_option=sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search + masked=water + interp_mask=LANDSEA(0) + fill_missing=285. + flag_in_output=FLAG_SOILT486 +======================================== +name=SOILT999 + interp_option=sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search + masked=water + interp_mask=LANDSEA(0) + fill_missing=285. + flag_in_output=FLAG_SOILT999 +======================================== name=SOILT050 interp_option=sixteen_pt+four_pt+wt_average_4pt+wt_average_16pt+search masked=water From 052a5dd97094f7effb2f5cbcdaad7d9f8d39cc5a Mon Sep 17 00:00:00 2001 From: grafmi Date: Thu, 30 Mar 2023 19:32:15 +0200 Subject: [PATCH 11/16] add support for level code 150 (e. g. for ICON-EU data) and automatic detection of the model --- ungrib/src/rd_grib1.F | 2 ++ ungrib/src/rd_grib2.F | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ungrib/src/rd_grib1.F b/ungrib/src/rd_grib1.F index 59d2b7d4..43f87d41 100644 --- a/ungrib/src/rd_grib1.F +++ b/ungrib/src/rd_grib1.F @@ -217,6 +217,8 @@ SUBROUTINE rd_grib1(IUNIT, gribflnm, level, field, hdate, & map%source = 'ECMWF' else if (icenter .eq. 74 .or. icenter .eq. 75 ) then map%source = 'UKMO' + else if (icenter .eq. 78 .or. icenter .eq. 79 ) then + map%source = 'DWD' else map%source = 'unknown model and orig center' end if diff --git a/ungrib/src/rd_grib2.F b/ungrib/src/rd_grib2.F index 2b6d8d80..5a584384 100644 --- a/ungrib/src/rd_grib2.F +++ b/ungrib/src/rd_grib2.F @@ -326,6 +326,8 @@ SUBROUTINE rd_grib2(junit, gribflnm, hdate, map%source = 'JMA' else if (icenter .eq. 74 .or. icenter .eq. 75 ) then map%source = 'UKMO' + else if (icenter .eq. 78 .or. icenter .eq. 79 ) then + map%source = 'DWD' else map%source = 'unknown model and orig center' end if @@ -757,7 +759,8 @@ SUBROUTINE rd_grib2(junit, gribflnm, hdate, & (10. ** (-1. * gfld%ipdtmpl(11))) if ( level .lt. pmin ) cycle MATCH_LOOP elseif((gfld%ipdtmpl(10).eq.105).or. - & (gfld%ipdtmpl(10).eq.118))then + & (gfld%ipdtmpl(10).eq.118).or. + & (gfld%ipdtmpl(10).eq.150))then ! Hybrid level (range from 1 to N) level=gfld%ipdtmpl(12) elseif(gfld%ipdtmpl(10).eq.104) then From 6ca252fb45ed88caed390390e74af1ca820c1a10 Mon Sep 17 00:00:00 2001 From: grafmi Date: Thu, 30 Mar 2023 19:34:50 +0200 Subject: [PATCH 12/16] add Vtable for ICON for model and pressure levels --- ungrib/Variable_Tables/Vtable.ICONm | 48 +++++++++++++++++++++++++++++ ungrib/Variable_Tables/Vtable.ICONp | 45 +++++++++++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 ungrib/Variable_Tables/Vtable.ICONm create mode 100644 ungrib/Variable_Tables/Vtable.ICONp diff --git a/ungrib/Variable_Tables/Vtable.ICONm b/ungrib/Variable_Tables/Vtable.ICONm new file mode 100644 index 00000000..350691d1 --- /dev/null +++ b/ungrib/Variable_Tables/Vtable.ICONm @@ -0,0 +1,48 @@ +GRIB1| Level| From | To | metgrid | metgrid | metgrid |GRIB2|GRIB2|GRIB2|GRIB2| +Param| Type |Level1|Level2| Name | Units | Description |Discp|Catgy|Param|Level| +-----+------+------+------+----------+---------+-----------------------------------------+-----------------------+ + 8 | 109 | * | | HGT | m | Height | 0 | 3 | 6 | 150 | + 1 | 109 | * | | PRESSURE | Pa | Pressure | 0 | 3 | 0 | 150 | + 11 | 109 | * | | TT | K | Temperature | 0 | 0 | 0 | 150 | + 33 | 109 | * | | UU | m s-1 | U | 0 | 2 | 2 | 150 | + 34 | 109 | * | | VV | m s-1 | V | 0 | 2 | 3 | 150 | + 51 | 109 | * | | SPECHUMD | kg kg-1 | Specific Humidity | 0 | 1 | 0 | 150 | + 11 | 105 | 2 | | TT | K | Temperature at 2 m | 0 | 0 | 0 | 103 | + 51 | 105 | 2 | | SPECHUMD | kg kg-1 | Specific Humidity at 2 m | 0 | 1 | 0 | 103 | + 52 | 105 | 2 | | RH | % | Relative Humidity at 2 m | 0 | 1 | 1 | 103 | + 33 | 105 | 10 | | UU | m s-1 | U at 10 m | 0 | 2 | 2 | 103 | + 34 | 105 | 10 | | VV | m s-1 | V at 10 m | 0 | 2 | 3 | 103 | + 1 | 1 | 0 | | PSFC | Pa | Surface Pressure | 0 | 3 | 0 | 1 | + 2 | 102 | 0 | | PMSL | Pa | Sea-level Pressure | 0 | 3 | 1 | 101 | + 7 | 1 | 0 | | SOILHGT | m | Terrain field of source analysis | 0 | 3 | 6 | 1 | + 81 | 1 | 0 | | LANDSEA | proprtn | Land/Sea flag (1=land, 0 or 2=sea) | 2 | 0 | 0 | 1 | + 11 | 1 | 0 | | SKINTEMP | K | Skin temperature | 0 | 0 | 0 | 1 | + 65 | 1 | 0 | | SNOW | kg m-2 | Water equivalent snow depth | 0 | 1 | 60 | 1 | + 66 | 1 | 0 | | SNOWH | m | Physical Snow Depth | 0 | 1 | 11 | 1 | + 85 | 111 | 5 | | SOILT001 | K | Soil Temp 0.5 cm below ground | 2 | 3 | 18 | 106 | + 85 | 111 | 2 | | SOILT002 | K | Soil Temp 2 cm below ground | 2 | 3 | 18 | 106 | + 85 | 111 | 6 | | SOILT006 | K | Soil Temp 6 cm below ground | 2 | 3 | 18 | 106 | + 85 | 111 | 18 | | SOILT018 | K | Soil Temp 18 cm below ground | 2 | 3 | 18 | 106 | + 85 | 111 | 54 | | SOILT054 | K | Soil Temp 54 cm below ground | 2 | 3 | 18 | 106 | + 85 | 111 | 162 | | SOILT162 | K | Soil Temp 162 cm below ground | 2 | 3 | 18 | 106 | + 85 | 111 | 486 | | SOILT486 | K | Soil Temp 486 cm below ground | 2 | 3 | 18 | 106 | + 85 | 111 |1458 | | SOILT999 | K | Soil Temp 1458 cm below ground | 2 | 3 | 18 | 106 | + 86 | 112 | 0 | 1 | SOILM001 | kg m-2 | Soil Moist 0-1 cm below grn layer | 2 | 3 | 20 | 106 | + 86 | 112 | 1 | 3 | SOILM002 | kg m-2 | Soil Moist 1-3 cm below grn layer | 2 | 3 | 20 | 106 | + 86 | 112 | 3 | 9 | SOILM006 | kg m-2 | Soil Moist 3-9 cm below grn layer | 2 | 3 | 20 | 106 | + 86 | 112 | 9 | 27 | SOILM018 | kg m-2 | Soil Moist 9-27 cm below grn layer | 2 | 3 | 20 | 106 | + 86 | 112 | 27 | 81 | SOILM054 | kg m-2 | Soil Moist 27-81 cm below grn layer | 2 | 3 | 20 | 106 | + 86 | 112 | 81 | 243 | SOILM162 | kg m-2 | Soil Moist 81-243 cm below grn layer | 2 | 3 | 20 | 106 | + 86 | 112 | 243 | 729 | SOILM486 | kg m-2 | Soil Moist 243-729 cm below grn layer | 2 | 3 | 20 | 106 | + 86 | 112 | 729 | 2187 | SOILM999 | kg m-2 | Soil Moist 729-2187 cm below grn layer | 2 | 3 | 20 | 106 | +-----+------+------+------+----------+---------+-----------------------------------------+-----------------------+ +# +# Vtable for ICON data on model levels +# https://opendata.dwd.de/weather/nwp/icon-eu/grib/ +# +# Notes: +# Variable from server come as individual files per variable and timestep so need to merge them together. +# Some variable only come for initial time so need to be added for each timestep being ingested into wps. +# +# Due to model levels being on .5 levels then need to convert these to whole model levels before running ungrib +# Can be done using CDO command (cdo -setzaxis,"zaxis.tmp" Fin Fout) for each variable) diff --git a/ungrib/Variable_Tables/Vtable.ICONp b/ungrib/Variable_Tables/Vtable.ICONp new file mode 100644 index 00000000..17971773 --- /dev/null +++ b/ungrib/Variable_Tables/Vtable.ICONp @@ -0,0 +1,45 @@ +GRIB1| Level| From | To | metgrid | metgrid | metgrid |GRIB2|GRIB2|GRIB2|GRIB2| +Param| Type |Level1|Level2| Name | Units | Description |Discp|Catgy|Param|Level| +-----+------+------+------+----------+---------+-----------------------------------------+-----------------------+ + 11 | 100 | * | | TT | K | Temperature | 0 | 0 | 0 | 100 | + 33 | 100 | * | | UU | m s-1 | U | 0 | 2 | 2 | 100 | + 34 | 100 | * | | VV | m s-1 | V | 0 | 2 | 3 | 100 | + 52 | 100 | * | | RH | % | Relative Humidity | 0 | 1 | 1 | 100 | + 129 | 100 | * | | GEOPT | m2 s-2 | Geopotential | 0 | 3 | 4 | 100 | + | 100 | * | | HGT | m | Height | | | | 100 | + 11 | 105 | 2 | | TT | K | Temperature at 2 m | 0 | 0 | 0 | 103 | + 33 | 105 | 10 | | UU | m s-1 | U at 10 m | 0 | 2 | 2 | 103 | + 34 | 105 | 10 | | VV | m s-1 | V at 10 m | 0 | 2 | 3 | 103 | + 52 | 105 | 2 | | RH | % | Relative Humidity at 2 m | 0 | 1 | 1 | 103 | + 1 | 1 | 0 | | PSFC | Pa | Surface Pressure | 0 | 3 | 0 | 1 | + 2 | 102 | 0 | | PMSL | Pa | Sea-level Pressure | 0 | 3 | 1 | 101 | + 7 | 1 | 0 | | SOILHGT | m | Terrain field of source analysis | 0 | 3 | 6 | 1 | + 81 | 1 | 0 | | LANDSEA | proprtn | Land/Sea flag (1=land, 0 or 2=sea) | 2 | 0 | 0 | 1 | + 11 | 1 | 0 | | SKINTEMP | K | Skin temperature | 0 | 0 | 0 | 1 | + 65 | 1 | 0 | | SNOW | kg m-2 | Water equivalent snow depth | 0 | 1 | 60 | 1 | + 66 | 1 | 0 | | SNOWH | m | Physical Snow Depth | 0 | 1 | 11 | 1 | + 85 | 111 | 5 | | SOILT001 | K | Soil Temp 0.5 cm below ground | 2 | 3 | 18 | 106 | + 85 | 111 | 2 | | SOILT002 | K | Soil Temp 2 cm below ground | 2 | 3 | 18 | 106 | + 85 | 111 | 6 | | SOILT006 | K | Soil Temp 6 cm below ground | 2 | 3 | 18 | 106 | + 85 | 111 | 18 | | SOILT018 | K | Soil Temp 18 cm below ground | 2 | 3 | 18 | 106 | + 85 | 111 | 54 | | SOILT054 | K | Soil Temp 54 cm below ground | 2 | 3 | 18 | 106 | + 85 | 111 | 162 | | SOILT162 | K | Soil Temp 162 cm below ground | 2 | 3 | 18 | 106 | + 85 | 111 | 486 | | SOILT486 | K | Soil Temp 486 cm below ground | 2 | 3 | 18 | 106 | + 85 | 111 |1458 | | SOILT999 | K | Soil Temp 1458 cm below ground | 2 | 3 | 18 | 106 | + 86 | 112 | 0 | 1 | SOILM001 | kg m-2 | Soil Moist 0-1 cm below grn layer | 2 | 3 | 20 | 106 | + 86 | 112 | 1 | 3 | SOILM002 | kg m-2 | Soil Moist 1-3 cm below grn layer | 2 | 3 | 20 | 106 | + 86 | 112 | 3 | 9 | SOILM006 | kg m-2 | Soil Moist 3-9 cm below grn layer | 2 | 3 | 20 | 106 | + 86 | 112 | 9 | 27 | SOILM018 | kg m-2 | Soil Moist 9-27 cm below grn layer | 2 | 3 | 20 | 106 | + 86 | 112 | 27 | 81 | SOILM054 | kg m-2 | Soil Moist 27-81 cm below grn layer | 2 | 3 | 20 | 106 | + 86 | 112 | 81 | 243 | SOILM162 | kg m-2 | Soil Moist 81-243 cm below grn layer | 2 | 3 | 20 | 106 | + 86 | 112 | 243 | 729 | SOILM486 | kg m-2 | Soil Moist 243-729 cm below grn layer | 2 | 3 | 20 | 106 | + 86 | 112 | 729 | 2187 | SOILM999 | kg m-2 | Soil Moist 729-2187 cm below grn layer | 2 | 3 | 20 | 106 | +-----+------+------+------+----------+---------+-----------------------------------------+-----------------------+ +# +# +# Vtable for Icon-EU pressure levels from the dwd server. +# +# https://opendata.dwd.de/weather/nwp/ +# +# Variables from server come as individual files per variable and timestep so need to merge them together. +# Some variable only come for initial time so need to be added for each timestep being ingested into wps. From 0a03efad747b50a74b02dfe47b8fa77faffc5618 Mon Sep 17 00:00:00 2001 From: grafmi Date: Sat, 1 Apr 2023 16:12:47 +0200 Subject: [PATCH 13/16] add short description about ICON Vtables to README --- ungrib/Variable_Tables/README | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ungrib/Variable_Tables/README b/ungrib/Variable_Tables/README index ce33c88e..2a166834 100644 --- a/ungrib/Variable_Tables/README +++ b/ungrib/Variable_Tables/README @@ -49,6 +49,7 @@ Vtable.TCRP Twentieth Century Global Reanalysis Version 2 Vtable.UKMO_ENDGame U.K. Met Office model Vtable.UKMO_LANDSEA Vtable.UKMO_no_heights +Vtable.ICONm DWD ICON model level +Vtable.ICONp DWD ICON pressure level - -Updated 12 Aug 2014 +Updated 01 Apr 2023 From 8f21ec64c8378f2ac0ac418df7623ff33bc174de Mon Sep 17 00:00:00 2001 From: grafmi Date: Sat, 1 Apr 2023 16:22:36 +0200 Subject: [PATCH 14/16] removal of unnecessary comment in Vtable.ICONm --- ungrib/Variable_Tables/Vtable.ICONm | 3 --- 1 file changed, 3 deletions(-) diff --git a/ungrib/Variable_Tables/Vtable.ICONm b/ungrib/Variable_Tables/Vtable.ICONm index 350691d1..4aeb1305 100644 --- a/ungrib/Variable_Tables/Vtable.ICONm +++ b/ungrib/Variable_Tables/Vtable.ICONm @@ -43,6 +43,3 @@ Param| Type |Level1|Level2| Name | Units | Description # Notes: # Variable from server come as individual files per variable and timestep so need to merge them together. # Some variable only come for initial time so need to be added for each timestep being ingested into wps. -# -# Due to model levels being on .5 levels then need to convert these to whole model levels before running ungrib -# Can be done using CDO command (cdo -setzaxis,"zaxis.tmp" Fin Fout) for each variable) From b07ae29684d45835ae454eae9ead251294bfe194 Mon Sep 17 00:00:00 2001 From: Michael Duda Date: Wed, 19 Apr 2023 15:08:51 +0000 Subject: [PATCH 15/16] Update version number to 4.5 The version number is set in the top-level README, the compile script, and the geogrid and metgrid global attributes. --- README | 2 +- compile | 2 +- geogrid/src/process_tile_module.F | 2 +- metgrid/src/input_module.F | 4 +++- metgrid/src/process_domain_module.F | 2 +- 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/README b/README index 230c2709..216b38b6 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -WRF Pre-Processing System Version 4.4 +WRF Pre-Processing System Version 4.5 http://www2.mmm.ucar.edu/wrf/users/ diff --git a/compile b/compile index b7814cb3..c4056135 100755 --- a/compile +++ b/compile @@ -112,7 +112,7 @@ endif # Print out WPS version, system info, and compiler/version echo "============================================================================================== " echo " " - echo Version 4.4 + echo Version 4.5 echo " " uname -a echo " " diff --git a/geogrid/src/process_tile_module.F b/geogrid/src/process_tile_module.F index eee3eaa8..1fe93038 100644 --- a/geogrid/src/process_tile_module.F +++ b/geogrid/src/process_tile_module.F @@ -301,7 +301,7 @@ subroutine process_tile(which_domain, grid_type, dynopt, & end if ! Initialize the output module now that we have the corner point lats/lons - call output_init(which_domain, 'OUTPUT FROM GEOGRID V4.4', '0000-00-00_00:00:00', grid_type, dynopt, & + call output_init(which_domain, 'OUTPUT FROM GEOGRID V4.5', '0000-00-00_00:00:00', grid_type, dynopt, & corner_lats, corner_lons, & start_dom_i, end_dom_i, start_dom_j, end_dom_j, & start_patch_i, end_patch_i, start_patch_j, end_patch_j, & diff --git a/metgrid/src/input_module.F b/metgrid/src/input_module.F index 1a76c5dd..40abbd2f 100644 --- a/metgrid/src/input_module.F +++ b/metgrid/src/input_module.F @@ -427,7 +427,9 @@ subroutine read_global_attrs(title, start_date, grid_type, dyn_opt, #endif call ext_get_dom_ti_char('TITLE', title) - if (index(title,'GEOGRID V4.4') /= 0) then + if (index(title,'GEOGRID V4.5') /= 0) then + wps_version = 4.5 + else if (index(title,'GEOGRID V4.4') /= 0) then wps_version = 4.4 else if (index(title,'GEOGRID V4.3.1') /= 0) then wps_version = 4.31 diff --git a/metgrid/src/process_domain_module.F b/metgrid/src/process_domain_module.F index 86a4b529..0d6afdd9 100644 --- a/metgrid/src/process_domain_module.F +++ b/metgrid/src/process_domain_module.F @@ -876,7 +876,7 @@ subroutine process_single_met_time(do_const_processing, & ! now we simply output every field from the storage module. ! - title = 'OUTPUT FROM METGRID V4.4' + title = 'OUTPUT FROM METGRID V4.5' ! Initialize the output module for this domain and time call mprintf(.true.,LOGFILE,'Initializing output module.') From 05cdd6c23e854c994925e43bddaae90b3c28b859 Mon Sep 17 00:00:00 2001 From: weiwangncar Date: Thu, 20 Apr 2023 16:39:53 -0600 Subject: [PATCH 16/16] no need to write GEOPT and SPECHUMD in intermediate file --- ungrib/Variable_Tables/Vtable.ICONm | 4 ++-- ungrib/Variable_Tables/Vtable.ICONp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ungrib/Variable_Tables/Vtable.ICONm b/ungrib/Variable_Tables/Vtable.ICONm index 4aeb1305..4680a259 100644 --- a/ungrib/Variable_Tables/Vtable.ICONm +++ b/ungrib/Variable_Tables/Vtable.ICONm @@ -6,9 +6,9 @@ Param| Type |Level1|Level2| Name | Units | Description 11 | 109 | * | | TT | K | Temperature | 0 | 0 | 0 | 150 | 33 | 109 | * | | UU | m s-1 | U | 0 | 2 | 2 | 150 | 34 | 109 | * | | VV | m s-1 | V | 0 | 2 | 3 | 150 | - 51 | 109 | * | | SPECHUMD | kg kg-1 | Specific Humidity | 0 | 1 | 0 | 150 | + 51 | 109 | * | | SPECHUMD | kg kg-1 | | 0 | 1 | 0 | 150 | 11 | 105 | 2 | | TT | K | Temperature at 2 m | 0 | 0 | 0 | 103 | - 51 | 105 | 2 | | SPECHUMD | kg kg-1 | Specific Humidity at 2 m | 0 | 1 | 0 | 103 | + 51 | 105 | 2 | | SPECHUMD | kg kg-1 | | 0 | 1 | 0 | 103 | 52 | 105 | 2 | | RH | % | Relative Humidity at 2 m | 0 | 1 | 1 | 103 | 33 | 105 | 10 | | UU | m s-1 | U at 10 m | 0 | 2 | 2 | 103 | 34 | 105 | 10 | | VV | m s-1 | V at 10 m | 0 | 2 | 3 | 103 | diff --git a/ungrib/Variable_Tables/Vtable.ICONp b/ungrib/Variable_Tables/Vtable.ICONp index 17971773..a61b0234 100644 --- a/ungrib/Variable_Tables/Vtable.ICONp +++ b/ungrib/Variable_Tables/Vtable.ICONp @@ -5,7 +5,7 @@ Param| Type |Level1|Level2| Name | Units | Description 33 | 100 | * | | UU | m s-1 | U | 0 | 2 | 2 | 100 | 34 | 100 | * | | VV | m s-1 | V | 0 | 2 | 3 | 100 | 52 | 100 | * | | RH | % | Relative Humidity | 0 | 1 | 1 | 100 | - 129 | 100 | * | | GEOPT | m2 s-2 | Geopotential | 0 | 3 | 4 | 100 | + 129 | 100 | * | | GEOPT | m2 s-2 | | 0 | 3 | 4 | 100 | | 100 | * | | HGT | m | Height | | | | 100 | 11 | 105 | 2 | | TT | K | Temperature at 2 m | 0 | 0 | 0 | 103 | 33 | 105 | 10 | | UU | m s-1 | U at 10 m | 0 | 2 | 2 | 103 |