Skip to content

Commit

Permalink
New BNU soil type and VIIRS vegetation type data (#843)
Browse files Browse the repository at this point in the history
Updates to use new versions of the BNU and VIIRS data with spurious ice
points in the tropics removed, and a new higher-res (0.5-degree) version of
the GFS soil substrate data.

Fixes #821 
Fixes #803
  • Loading branch information
GeorgeGayno-NOAA authored Sep 26, 2023
1 parent 6a7d534 commit 2ed2c79
Show file tree
Hide file tree
Showing 15 changed files with 86 additions and 102 deletions.
11 changes: 3 additions & 8 deletions docs/source/ufs_utils.rst
Original file line number Diff line number Diff line change
Expand Up @@ -528,7 +528,7 @@ The surface climatological data is located here `./fix/fix_sfc_climo <https://no

* Global 1-degree fractional coverage strong/weak zenith angle albedo - facsf.1.0.nc
* Global 0.05-degree maximum snow albedo - maximum_snow_albedo.0.05.nc
* Global 2.6 x 1.5-degree soil substrate temperature - substrate_temperature.2.6x1.5.nc
* Global 0.5-degree soil substrate temperature - substrate_temperature.gfs.0.5.nc
* Global 0.05-degree four component monthly snow-free albedo - snowfree_albedo.4comp.0.05.nc
* Global 1.0-degree categorical slope type - slope_type.1.0.nc
* Global 0.05-degree CLM soil color (Lawrence and Chase, 2007 JGR) - soil_color.clm.0.05.nc
Expand All @@ -539,19 +539,14 @@ The surface climatological data is located here `./fix/fix_sfc_climo <https://no
* N Hemis 30 sec - soil_type.statsgo.nh.30s.nc
* Global 30 sec - soil_type.statsgo.30s.nc
* Categorical BNU soil type
* Global 30-second - soil_type.bnu.30s.nc
* Global 30-second - soil_type.bnu.v3.30s.nc
* Categorical IGBP vegetation type
* MODIS-based global 0.05-degree - vegetation_type.modis.igbp.0.05.nc
* MODIS-based global 0.03-degree - vegetation_type.modis.igbp.0.03.nc
* MODIS-based CONUS 30 sec - vegetation_type.modis.igbp.conus.30s.nc
* MODIS-based N Hemis 30 sec - vegetation_type.modis.igbp.nh.30s.nc
* MODIS-based global 30 sec - vegetation_type.modis.igbp.30s.nc
* NESDIS VIIRS-based global 0.10-degree - vegetation_type.viirs.igbp.0.1.nc
* NESDIS VIIRS-based global 0.05-degree - vegetation_type.viirs.igbp.0.05.nc
* NESDIS VIIRS-based global 0.03-degree - vegetation_type.viirs.igbp.0.03.nc
* NESDIS VIIRS-based CONUS 30-second - vegetation_type.viirs.igbp.conus.30s.nc
* NESDIS VIIRS-based N HEMIS 30-second - vegetation_type.viirs.igbp.nh.30s.nc
* NESDIS VIIRS-based global 30-second - vegetation_type.viirs.igbp.30s.nc
* NESDIS VIIRS-based global 30-second - vegetation_type.viirs.v3.igbp.30s.nc
* Global 0.144-degree monthly vegetation greenness in percent - vegetation_greenness.0.144.nc

The files that define the model grid. All NetCDF.
Expand Down
15 changes: 5 additions & 10 deletions driver_scripts/driver_grid.hera.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#SBATCH -o log.fv3_grid_driver
#SBATCH -e log.fv3_grid_driver
#SBATCH --nodes=1 --ntasks-per-node=24
##SBATCH --partition=bigmem
#SBATCH --partition=bigmem
#SBATCH -q debug
#SBATCH -t 00:20:00

Expand Down Expand Up @@ -86,30 +86,25 @@ export vegsoilt_frac='.false.' # When .false., output dominant soil and
# the dominant category. A Fortran logical,
# so include the dots.

export veg_type_src="modis.igbp.0.05" # Vegetation type data.
export veg_type_src="viirs.v3.igbp.30s" # Vegetation type data.
# For viirs-based vegetation type data, set to:
# 1) "viirs.igbp.0.1" for global 0.10-deg data
# 2) "viirs.igbp.0.05" for global 0.05-deg data
# 3) "viirs.igbp.0.03" for global 0.03-deg data
# 4) "viirs.igbp.conus.30s" for CONUS 30s data
# 5) "viirs.igbp.nh.30s" for NH 30s data
# 6) "viirs.igbp.30s" for global 30s data
# 1) "viirs.v3.igbp.30s" for global 30s data
# For the modis-based data, set to:
# 1) "modis.igbp.0.05" for global 0.05-deg data
# 2) "modis.igbp.0.03" for global 0.03-deg data
# 3) "modis.igbp.conus.30s" for CONUS 30s data
# 4) "modis.igbp.nh.30s" for N Hemis 30s data
# 5) "modis.igbp.30s" for global 30s data

export soil_type_src="statsgo.0.05" # Soil type data.
export soil_type_src="bnu.v3.30s" # Soil type data.
# For STATSGO data
# 1) "statsgo.0.05" for global 0.05-deg data
# 2) "statsgo.0.03" for global 0.03-deg data
# 3) "statsgo.conus.30s" for CONUS 30s data
# 4) "statsgo.nh.30s" for NH 30s data
# 5) "statsgo.30s" for global 30s data
# For Beijing Norm. Univ. data
# 1) "bnu.30s" for global 30s data.
# 1) "bnu.v3.30s" for global 30s data.

if [ $gtype = uniform ]; then
export res=96
Expand Down
21 changes: 8 additions & 13 deletions driver_scripts/driver_grid.jet.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
#SBATCH --open-mode=truncate
#SBATCH -o log.fv3_grid_driver
#SBATCH -e log.fv3_grid_driver
#SBATCH --nodes=1 --ntasks-per-node=24
#SBATCH --nodes=3 --ntasks-per-node=10
#SBATCH --partition=xjet
#SBATCH -q batch
#SBATCH -t 00:10:00
#SBATCH -q debug
#SBATCH -t 00:30:00

#-----------------------------------------------------------------------
# Driver script to create a cubic-sphere based model grid on Jet.
Expand Down Expand Up @@ -84,30 +84,25 @@ export vegsoilt_frac='.false.' # When true, outputs percent of each
# outputs the dominant category. A
# Fortran logical, so include the dots.

export veg_type_src="modis.igbp.0.05" # Vegetation type data.
export veg_type_src="viirs.v3.igbp.30s" # Vegetation type data.
# For viirs-based vegetation type data, set to:
# 1) "viirs.igbp.0.1" for global 0.10-deg data
# 2) "viirs.igbp.0.05" for global 0.05-deg data
# 3) "viirs.igbp.0.03" for global 0.03-deg data
# 4) "viirs.igbp.conus.30s" for CONUS 30s data
# 5) "viirs.igbp.nh.30s" for NH 30s data
# 6) "viirs.igbp.30s" for global 30s data
# 1) "viirs.v3.igbp.30s" for global 30s data
# For the modis-based data, set to:
# 1) "modis.igbp.0.05" for global 0.05-deg data
# 2) "modis.igbp.0.03" for global 0.03-deg data
# 3) "modis.igbp.conus.30s" for CONUS 30s data
# 4) "modis.igbp.nh.30s" for N Hemis 30s data
# 5) "modis.igbp.30s" for global 30s data

export soil_type_src="statsgo.0.05" # Soil type data.
export soil_type_src="bnu.v3.30s" # Soil type data.
# For Beijing Normal Univ. data, set to:
# 1) "bnu.v3.30s" for global 30s data.
# For STATSGO soil type data, set to:
# 1) "statsgo.0.05" for global 0.05-deg data
# 2) "statsgo.0.03" for global 0.03-deg data
# 3) "statsgo.conus.30s" for CONUS 30s data
# 4) "statsgo.nh.30s" for NH 30s data
# 5) "statsgo.30s" for global 30s data
# For Beijing Normal Univ. data, set to:
# 1) "bnu.30s" for global 30s data.

if [ $gtype = uniform ]; then
export res=96
Expand Down
21 changes: 8 additions & 13 deletions driver_scripts/driver_grid.orion.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#SBATCH --open-mode=truncate
#SBATCH -o log.fv3_grid_driver
#SBATCH -e log.fv3_grid_driver
#SBATCH --nodes=1 --ntasks-per-node=24
#SBATCH --nodes=2 --ntasks-per-node=15
#SBATCH -q debug
#SBATCH -t 00:30:00

Expand Down Expand Up @@ -71,7 +71,7 @@ module list
# Set grid specs here.
#-----------------------------------------------------------------------

export gtype=regional_esg # 'uniform', 'stretch', 'nest',
export gtype=uniform # 'uniform', 'stretch', 'nest',
# 'regional_gfdl', 'regional_esg'

export make_gsl_orog=false # When 'true' will output 'oro' files for
Expand All @@ -83,30 +83,25 @@ export vegsoilt_frac='.false.' # When true, outputs percent of each
# outputs the dominant category. A
# Fortran logical, so include the dots.

export veg_type_src="modis.igbp.0.05" # Vegetation type data.
export veg_type_src="viirs.v3.igbp.30s" # Vegetation type data.
# For viirs-based vegetation type data, set to:
# 1) "viirs.igbp.0.1" for global 0.10-deg data
# 2) "viirs.igbp.0.05" for global 0.05-deg data
# 3) "viirs.igbp.0.03" for global 0.03-deg data
# 4) "viirs.igbp.conus.30s" for CONUS 30s data
# 5) "viirs.igbp.nh.30s" for NH 30s data
# 6) "viirs.igbp.30s" for global 30s data
# 1) "viirs.v3.igbp.30s" for global 30s data
# For the modis-based data, set to:
# 1) "modis.igbp.0.05" for global 0.05-deg data
# 2) "modis.igbp.0.03" for global 0.03-deg data
# 3) "modis.igbp.conus.30s" for CONUS 30s data
# 4) "modis.igbp.nh.30s" for N Hemis 30s data
# 5) "modis.igbp.30s" for global 30s data

export soil_type_src="statsgo.0.05" # Soil type data.
export soil_type_src="bnu.v3.30s" # Soil type data.
# For Beijing Normal Univ. data, set to:
# 1) "bnu.v3.30s" for global 30s data.
# For STATSGO soil type data, set to:
# 1) "statsgo.0.05" for global 0.05-deg data
# 2) "statsgo.0.03" for global 0.03-deg data
# 3) "statsgo.conus.30s" for CONUS 30s data
# 4) "statsgo.nh.30s" for NH 30s data
# 5) "statsgo.30s" for global 30s data
# For Beijing Normal Univ. data, set to:
# 1) "bnu.30s" for global 30s data.

if [ $gtype = uniform ]; then
export res=96
Expand Down Expand Up @@ -166,7 +161,7 @@ export OMP_NUM_THREADS=24
export OMP_STACKSIZE=2048m

ulimit -a
ulimit -s 199000000
ulimit -s unlimited

#-----------------------------------------------------------------------
# Start script.
Expand Down
19 changes: 7 additions & 12 deletions driver_scripts/driver_grid.wcoss2.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#PBS -e log
#PBS -q debug
#PBS -A GFS-DEV
#PBS -l walltime=00:15:00
#PBS -l walltime=00:30:00
#PBS -N make_grid
#PBS -l select=1:ncpus=24:mem=500GB

Expand Down Expand Up @@ -70,7 +70,7 @@ module list
# Set grid specs here.
#-----------------------------------------------------------------------

export gtype=regional_esg # 'uniform', 'stretch', 'nest',
export gtype=uniform # 'uniform', 'stretch', 'nest',
# 'regional_gfdl', 'regional_esg'

export make_gsl_orog=false # When 'true' will output 'oro' files for
Expand All @@ -82,30 +82,25 @@ export vegsoilt_frac='.false.' # When true, outputs percent of each
# outputs the dominant category. A
# Fortran logical, so include the dots.

export veg_type_src="modis.igbp.0.05" # Vegetation type data.
export veg_type_src="viirs.v3.igbp.30s" # Vegetation type data.
# For viirs-based vegetation type data, set to:
# 1) "viirs.igbp.0.1" for global 0.10-deg data
# 2) "viirs.igbp.0.05" for global 0.05-deg data
# 3) "viirs.igbp.0.03" for global 0.03-deg data
# 4) "viirs.igbp.conus.30s" for CONUS 30s data
# 5) "viirs.igbp.nh.30s" for NH 30s data
# 6) "viirs.igbp.30s" for global 30s data
# 1) "viirs.v3.igbp.30s" for global 30s data
# For the modis-based data, set to:
# 1) "modis.igbp.0.05" for global 0.05-deg data
# 2) "modis.igbp.0.03" for global 0.03-deg data
# 3) "modis.igbp.conus.30s" for CONUS 30s data
# 4) "modis.igbp.nh.30s" for N Hemis 30s data
# 5) "modis.igbp.30s" for global 30s data

export soil_type_src="statsgo.0.05" # Soil type data
export soil_type_src="bnu.v3.30s" # Soil type data
# For Beijing Normal Univ. data, set to:
# 1) "bnu.v3.30s" for global 30s data.
# For STATSGO soil type data, set to:
# 1) "statsgo.0.05" for global 0.05-deg data
# 2) "statsgo.0.03" for global 0.03-deg data
# 3) "statsgo.conus.30s" for CONUS 30s data
# 4) "statsgo.nh.30s" for NH 30s data
# 5) "statsgo.30s" for global 30s data
# For Beijing Normal Univ. data, set to:
# 1) "bnu.30s" for global 30s data.

if [ $gtype = uniform ]; then
export res=96
Expand Down
2 changes: 1 addition & 1 deletion fix/link_fixdirs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ fi

am_ver=${am_ver:-20220805}
orog_ver=${orog_ver:-20220805}
sfc_climo_ver=${sfc_climo_ver:-20221017}
sfc_climo_ver=${sfc_climo_ver:-20230925}

for dir in am orog orog_raw sfc_climo; do
if [ -d $dir ]; then
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,20 @@

#-----------------------------------------------------------------------
# Create a C96 global uniform grid using VIIRS-based vegetation type
# data. Compare output to a set of baseline files using the
# 'nccmp' utility. This script is run by the machine specific
# driver script.
# data and BNU soil type data. Compare output to a set of baseline
# files using the 'nccmp' utility. This script is run by the machine
# specific driver script.
#-----------------------------------------------------------------------

set -x

export TEMP_DIR=${WORK_DIR}/c96.viirs.vegt.work
export out_dir=${WORK_DIR}/c96.viirs.vegt
export TEMP_DIR=${WORK_DIR}/c96.viirs.bnu.work
export out_dir=${WORK_DIR}/c96.viirs.bnu

export res=96
export gtype=uniform
export veg_type_src="viirs.igbp.0.05"
export veg_type_src="viirs.v3.igbp.30s"
export soil_type_src="bnu.v3.30s"

NCCMP=${NCCMP:-$(which nccmp)}

Expand All @@ -29,7 +30,7 @@ $home_dir/ush/fv3gfs_driver_grid.sh
iret=$?
if [ $iret -ne 0 ]; then
set +x
echo "<<< C96 VIIRS VEGT FAILED. <<<"
echo "<<< C96 VIIRS BNU FAILED. <<<"
exit $iret
fi

Expand All @@ -46,7 +47,7 @@ for files in *tile*.nc ./fix_sfc/*tile*.nc
do
if [ -f $files ]; then
echo CHECK $files
$NCCMP -dmfqS $files $HOMEreg/c96.viirs.vegt/$files
$NCCMP -dmfqS $files $HOMEreg/c96.viirs.bnu/$files
iret=$?
if [ $iret -ne 0 ]; then
test_failed=1
Expand All @@ -56,12 +57,12 @@ done

set +x
if [ $test_failed -ne 0 ]; then
echo "<<< C96 VIIRS VEGT TEST FAILED. >>>"
echo "<<< C96 VIIRS BNU TEST FAILED. >>>"
if [ "$UPDATE_BASELINE" = "TRUE" ]; then
$home_dir/reg_tests/update_baseline.sh "${HOMEreg}/.." "c96.viirs.vegt" $commit_num
$home_dir/reg_tests/update_baseline.sh "${HOMEreg}/.." "c96.viirs.bnu" $commit_num
fi
else
echo "<<< C96 VIIRS VEGT TEST PASSED. >>>"
echo "<<< C96 VIIRS BNU TEST PASSED. >>>"
fi

exit 0
6 changes: 3 additions & 3 deletions reg_tests/grid_gen/driver.hera.sh
Original file line number Diff line number Diff line change
Expand Up @@ -70,12 +70,12 @@ TEST1=$(sbatch --parsable --ntasks-per-node=24 --nodes=1 -t 0:10:00 -A $PROJECT_
-o $LOG_FILE1 -e $LOG_FILE1 ./c96.uniform.sh)

#-----------------------------------------------------------------------------
# C96 uniform grid using viirs vegetation data.
# C96 uniform grid using viirs vegetation and bnu soil data.
#-----------------------------------------------------------------------------

LOG_FILE2=${LOG_FILE}02
TEST2=$(sbatch --parsable --ntasks-per-node=24 --nodes=1 -t 0:10:00 -A $PROJECT_CODE -q $QUEUE -J c96.viirs.vegt \
-o $LOG_FILE2 -e $LOG_FILE2 ./c96.viirs.vegt.sh)
TEST2=$(sbatch --parsable --ntasks-per-node=24 --nodes=1 -t 0:15:00 -A $PROJECT_CODE -q $QUEUE -J c96.viirs.bnu \
--partition=bigmem -o $LOG_FILE2 -e $LOG_FILE2 ./c96.viirs.bnu.sh)

#-----------------------------------------------------------------------------
# gfdl regional grid
Expand Down
6 changes: 3 additions & 3 deletions reg_tests/grid_gen/driver.jet.sh
Original file line number Diff line number Diff line change
Expand Up @@ -68,12 +68,12 @@ TEST1=$(sbatch --parsable --ntasks-per-node=24 --nodes=1 -t 0:10:00 -A $PROJECT_
--partition=xjet -o $LOG_FILE1 -e $LOG_FILE1 ./c96.uniform.sh)

#-----------------------------------------------------------------------------
# C96 uniform grid using viirs vegetation type data.
# C96 uniform grid using viirs vegetation type and bnu soil type data.
#-----------------------------------------------------------------------------

LOG_FILE2=${LOG_FILE}02
TEST2=$(sbatch --parsable --ntasks-per-node=24 --nodes=1 -t 0:10:00 -A $PROJECT_CODE -q $QUEUE -J c96.viirs.vegt \
--partition=xjet -o $LOG_FILE2 -e $LOG_FILE2 ./c96.viirs.vegt.sh)
TEST2=$(sbatch --parsable --ntasks-per-node=10 --nodes=3 -t 0:15:00 -A $PROJECT_CODE -q $QUEUE -J c96.viirs.bnu \
--partition=xjet -o $LOG_FILE2 -e $LOG_FILE2 ./c96.viirs.bnu.sh)

#-----------------------------------------------------------------------------
# gfdl regional grid
Expand Down
6 changes: 3 additions & 3 deletions reg_tests/grid_gen/driver.orion.sh
Original file line number Diff line number Diff line change
Expand Up @@ -66,12 +66,12 @@ TEST1=$(sbatch --parsable --ntasks-per-node=24 --nodes=1 -t 0:15:00 -A $PROJECT_
-o $LOG_FILE1 -e $LOG_FILE1 ./c96.uniform.sh)

#-----------------------------------------------------------------------------
# C96 uniform grid using viirs vegetation type data.
# C96 uniform grid using viirs vegetation and bnu soil type data.
#-----------------------------------------------------------------------------

LOG_FILE2=${LOG_FILE}02
TEST2=$(sbatch --parsable --ntasks-per-node=24 --nodes=1 -t 0:15:00 -A $PROJECT_CODE -q $QUEUE -J c96.viirs.vegt \
-o $LOG_FILE2 -e $LOG_FILE2 ./c96.viirs.vegt.sh)
TEST2=$(sbatch --parsable --ntasks-per-node=15 --nodes=2 -t 0:15:00 -A $PROJECT_CODE -q $QUEUE -J c96.viirs.bnu \
-o $LOG_FILE2 -e $LOG_FILE2 ./c96.viirs.bnu.sh)

#-----------------------------------------------------------------------------
# GFDL regional grid
Expand Down
6 changes: 3 additions & 3 deletions reg_tests/grid_gen/driver.wcoss2.sh
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,12 @@ TEST1=$(qsub -V -o $LOG_FILE1 -e $LOG_FILE1 -q $QUEUE -A $PROJECT_CODE -l wallti
-N c96.uniform -l select=1:ncpus=30:mem=40GB $PWD/c96.uniform.sh)

#-----------------------------------------------------------------------------
# C96 uniform grid using viirs vegetation data.
# C96 uniform grid using viirs vegetation and bnu soil type data.
#-----------------------------------------------------------------------------

LOG_FILE2=${LOG_FILE}02
TEST2=$(qsub -V -o $LOG_FILE2 -e $LOG_FILE2 -q $QUEUE -A $PROJECT_CODE -l walltime=00:10:00 \
-N c96.viirs.vegt -l select=1:ncpus=30:mem=40GB $PWD/c96.viirs.vegt.sh)
TEST2=$(qsub -V -o $LOG_FILE2 -e $LOG_FILE2 -q $QUEUE -A $PROJECT_CODE -l walltime=00:15:00 \
-N c96.viirs.bnu -l select=1:ncpus=30:mem=250GB $PWD/c96.viirs.bnu.sh)

#-----------------------------------------------------------------------------
# gfdl regional grid
Expand Down
2 changes: 1 addition & 1 deletion sorc/sfc_climo_gen.fd/search.f90
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ subroutine search (field, mask, idim, jdim, tile, field_name)
case ('vegetation_type') ! vegetation type
default_value = float(3)
case default
print*,'- FATAL ERROR IN ROUTINE SEARCH. UNIDENTIFIED FIELD : ', field
print*,'- FATAL ERROR IN ROUTINE SEARCH. UNIDENTIFIED FIELD : ', field_name
call mpi_abort(mpi_comm_world, 77, ierr)
end select

Expand Down
Loading

0 comments on commit 2ed2c79

Please sign in to comment.