diff --git a/README b/README index 6a526bf88..4b686f4a0 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -WRF Pre-Processing System Version 4.1 +WRF Pre-Processing System Version 4.2 http://www2.mmm.ucar.edu/wrf/users/ diff --git a/arch/configure.defaults b/arch/configure.defaults index 340180c3a..2c66a47e0 100644 --- a/arch/configure.defaults +++ b/arch/configure.defaults @@ -11,14 +11,35 @@ SFC = xlf2003_r CC = mpicc SCC = xlc_r LD = $(FC) -FFLAGS = -qfree=f90 -F77FLAGS = -qfixed +FFLAGS = -qfree=f90 -qufmt=be +F77FLAGS = -qfixed -qufmt=be FNGFLAGS = $(FFLAGS) LDFLAGS = CFLAGS = CPP = cpp -P -traditional CPPFLAGS = -Uvector -DBYTESWAP -DLINUX -DIO_NETCDF -DIO_BINARY -DIO_GRIB1 -DBIT32 CONFIGURE_MPI ARFLAGS = +######################################################################################################################## +#ARCH Linux ppc64le POWER Linux, PGI compiler # serial serial_NO_GRIB2 dmpar dmpar_NO_GRIB2 +# +COMPRESSION_LIBS = CONFIGURE_COMP_L +COMPRESSION_INC = CONFIGURE_COMP_I +FDEFS = CONFIGURE_FDEFS +NCARG_LIBS = +NCARG_LIBS2 = +FC = mpifort +SFC = pgfortran +CC = mpicc +SCC = pgcc +LD = $(FC) +FFLAGS = -Mfree -byteswapio +F77FLAGS = -Mfixed -byteswapio +FNGFLAGS = $(FFLAGS) +LDFLAGS = +CFLAGS = +CPP = cpp -P -traditional +CPPFLAGS = -Uvector -D_UNDERSCORE -DBYTESWAP -DLINUX -DIO_NETCDF -DIO_BINARY -DIO_GRIB1 -DBIT32 CONFIGURE_MPI +ARFLAGS = ######################################################################################################################## #ARCH Linux ppc64 BG bglxf compiler with blxlc # dmpar diff --git a/compile b/compile index c6e697f2a..b48942520 100755 --- a/compile +++ b/compile @@ -112,7 +112,7 @@ endif # Print out WPS version, system info, and compiler/version echo "============================================================================================== " echo " " - echo Version 4.1 + echo Version 4.2 echo " " uname -a echo " " diff --git a/geogrid/GEOGRID.TBL.ARW b/geogrid/GEOGRID.TBL.ARW index 428dcc3fe..dcdf9a37f 100644 --- a/geogrid/GEOGRID.TBL.ARW +++ b/geogrid/GEOGRID.TBL.ARW @@ -33,7 +33,7 @@ name=LANDUSEF 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 # 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 @@ -488,3 +488,12 @@ name = SANDFRAC 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/ +=============================== diff --git a/geogrid/src/module_map_utils.F b/geogrid/src/module_map_utils.F index 1448a5f2a..b636f48e6 100644 --- a/geogrid/src/module_map_utils.F +++ b/geogrid/src/module_map_utils.F @@ -805,7 +805,7 @@ SUBROUTINE ijll_ps(i, j, proj, lat, lon) ELSE gi2 = (proj%rebydx * scale_top)**2. lat = deg_per_rad * proj%hemi * ASIN((gi2-r2)/(gi2+r2)) - arccos = ACOS(MIN(MAX(xx/SQRT(r2),-1.0),1.0)) + arccos = ACOS(MIN(MAX(xx/SQRT(r2),-1.0_HIGH),1.0_HIGH)) IF (yy .GT. 0) THEN lon = reflon + deg_per_rad * arccos ELSE diff --git a/geogrid/src/process_tile_module.F b/geogrid/src/process_tile_module.F index 38c7d9b5c..d25d8be11 100644 --- a/geogrid/src/process_tile_module.F +++ b/geogrid/src/process_tile_module.F @@ -300,7 +300,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.1', '0000-00-00_00:00:00', grid_type, dynopt, & + call output_init(which_domain, 'OUTPUT FROM GEOGRID V4.2', '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 9c74d2b08..e61ca0e6e 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.1') /= 0) then + if (index(title,'GEOGRID V4.2') /= 0) then + wps_version = 4.2 + else if (index(title,'GEOGRID V4.1') /= 0) then wps_version = 4.1 else if (index(title,'GEOGRID V4.0.3') /= 0) then wps_version = 4.03 diff --git a/metgrid/src/process_domain_module.F b/metgrid/src/process_domain_module.F index 356bc11f1..19f4d331d 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.1' + title = 'OUTPUT FROM METGRID V4.2' ! Initialize the output module for this domain and time call mprintf(.true.,LOGFILE,'Initializing output module.') diff --git a/ungrib/Variable_Tables/Vtable.RAP.hybrid.ncep b/ungrib/Variable_Tables/Vtable.RAP.hybrid.ncep index 7bda88ae0..6caea625e 100644 --- a/ungrib/Variable_Tables/Vtable.RAP.hybrid.ncep +++ b/ungrib/Variable_Tables/Vtable.RAP.hybrid.ncep @@ -9,15 +9,18 @@ Param| Type |Level1|Level2| Name | Units | Description 34 | 109 | * | | VV | m s-1 | V | 0 | 2 | 3 | 105 | 153 | 109 | * | | QC | kg kg-1 | Cloud water mixing ratio | 0 | 1 | 22 | 105 | 170 | 109 | * | | QR | kg kg-1 | Rain water mixing ratio | 0 | 1 | 24 | 105 | - 58 | 109 | * | | QI | kg kg-1 | Ice mixing ratio | 0 | 6 | 0 | 105 | + 58 | 109 | * | | QI | kg kg-1 | Ice mixing ratio | 0 | 1 | 82 | 105 | 171 | 109 | * | | QS | kg kg-1 | Snow water mixing ratio | 0 | 1 | 25 | 105 | 179 | 109 | * | | QG | kg kg-1 | Graupel mixing ratio | 0 | 1 | 32 | 105 | - 148 | 107 | * | | QNR | kg-1 | Rain number concentration | 0 | 3 | 195 | 105 | - 198 | 109 | * | | QNI | kg-1 | Ice number concentration | 0 | 1 | 207 | 105 | + 153 | 109 | * | | QNR | kg-1 | Rain number concentration | 0 | 1 | 100 | 105 | + 255 | 109 | * | | QNC | kg-1 | Cloud number concentration | 0 | 6 | 28 | 105 | + 198 | 109 | * | | QNI | kg-1 | Ice number concentration | 0 | 6 | 29 | 105 | + 157 | 107 | * | | QNWFA | kg-1 | Water-fr. aerosol number concentration | 0 | 13 | 193 | 105 | + 156 | 107 | * | | QNIFA | kg-1 | Ice-fr. aerosol number concentration | 0 | 13 | 192 | 105 | | 109 | * | | RH | % | Relative Humidity | 0 | 1 | | 105 | 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 | - | 105 | 2 | | RH | % | Relative Humidity at 2 m | 0 | 1 | | 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 | @@ -58,9 +61,8 @@ Param| Type |Level1|Level2| Name | Units | Description # Vtable for the Rapid refresh (RAP) hybrid-vertical coordinate grib2 files on the ncep server. # ftp://ftpprd.ncep.noaa.gov/pub/data/nccf/com/rap/prod/rap.ccyymmdd/ # -# rap.txxz.awp252bgrbfhh.grib2 20km conus 17901 Kb (approx. size) -# rap.txxz.awp130bgrbfhh.grib2 13km conus 34462 Kb +# rap.txxz.awp130bgrbfhh.grib2 13km conus 31 MB (approximate size) # -# As of 1 June 2016, -# hourly to 18-hours +# As of 20 April, 2020 +# hourly to 21 hours # Level 1 is near the surface, level 50 is the top. diff --git a/ungrib/src/g2print.F b/ungrib/src/g2print.F index caebcf8bc..1d33a3567 100644 --- a/ungrib/src/g2print.F +++ b/ungrib/src/g2print.F @@ -562,7 +562,7 @@ SUBROUTINE r_grib2(junit, gribflnm, hdate, & endif ! Scale lat/lon values to 0-180, default range is 1e6. - if (map%lat1.ge.scale_factor) then + if (abs(map%lat1).ge.scale_factor) then map%lat1 = map%lat1/scale_factor endif if (map%lon1.ge.scale_factor) then diff --git a/ungrib/src/rd_grib2.F b/ungrib/src/rd_grib2.F index 14291b1dc..2b6d8d80f 100644 --- a/ungrib/src/rd_grib2.F +++ b/ungrib/src/rd_grib2.F @@ -492,7 +492,7 @@ SUBROUTINE rd_grib2(junit, gribflnm, hdate, endif ! Scale lat/lon values to 0-180, default range is 1e6. - if (map%lat1.ge.scale_factor) then + if (abs(map%lat1).ge.scale_factor) then map%lat1 = map%lat1/scale_factor endif if (map%lon1.ge.scale_factor) then diff --git a/util/src/calc_ecmwf_p.F b/util/src/calc_ecmwf_p.F index ffde23196..a894c6c29 100644 --- a/util/src/calc_ecmwf_p.F +++ b/util/src/calc_ecmwf_p.F @@ -235,6 +235,7 @@ program calc_ecmwf_p if (.not. allocated(tt)) then allocate(tt(ecmwf_data%nx,ecmwf_data%ny,n_levels+1)) ! Extra level is for surface + tt(:,:,:) = 0.0 end if if (nint(ecmwf_data%xlvl) >= 1 .and. & @@ -249,6 +250,7 @@ program calc_ecmwf_p if (.not. allocated(qv)) then allocate(qv(ecmwf_data%nx,ecmwf_data%ny,n_levels+1)) ! Extra level is for surface + qv(:,:,:) = 0.0 end if if (nint(ecmwf_data%xlvl) >= 1 .and. &