From bd91189a3d69f509a727e3f78625093498fdc8d7 Mon Sep 17 00:00:00 2001 From: "George.Gayno" Date: Thu, 20 Oct 2022 20:08:54 +0000 Subject: [PATCH 01/10] Add program to read the raw bnu soil data on tiles, combine them into a single global lat/lon grid, then write out the result to a netcdf file readable by ufs_utils. Fixes #705. --- .../bsu_soiltype/orig_data/build.sh | 19 ++ .../bsu_soiltype/orig_data/makefile | 19 ++ .../bsu_soiltype/orig_data/run.wcoss2.sh | 34 +++ .../bsu_soiltype/orig_data/soil.f90 | 251 ++++++++++++++++++ 4 files changed, 323 insertions(+) create mode 100755 util/proc_sfc_climo/bsu_soiltype/orig_data/build.sh create mode 100644 util/proc_sfc_climo/bsu_soiltype/orig_data/makefile create mode 100644 util/proc_sfc_climo/bsu_soiltype/orig_data/run.wcoss2.sh create mode 100644 util/proc_sfc_climo/bsu_soiltype/orig_data/soil.f90 diff --git a/util/proc_sfc_climo/bsu_soiltype/orig_data/build.sh b/util/proc_sfc_climo/bsu_soiltype/orig_data/build.sh new file mode 100755 index 000000000..30e71ca3b --- /dev/null +++ b/util/proc_sfc_climo/bsu_soiltype/orig_data/build.sh @@ -0,0 +1,19 @@ +#build program on wcoss2 + +set -x + +module reset + +module load PrgEnv-intel/8.1.0 +module load craype/2.7.13 +module load intel/19.1.3.304 +module load cray-mpich/8.1.7 + + +module load hdf5/1.10.6 +module load netcdf/4.7.4 + +module list + +make clean +make diff --git a/util/proc_sfc_climo/bsu_soiltype/orig_data/makefile b/util/proc_sfc_climo/bsu_soiltype/orig_data/makefile new file mode 100644 index 000000000..b5890bfaa --- /dev/null +++ b/util/proc_sfc_climo/bsu_soiltype/orig_data/makefile @@ -0,0 +1,19 @@ +EXEC =soil.exe +FC =ftn +FOPTS = -O0 -FR -I${NETCDF}/include -assume byterecl -warn unused -check bounds +OBJ_TST =soil.o +OBJS=${OBJ_TST} +# ************************************************************************* +all: chop + +chop : ${OBJS} + $(FC) ${FOPTS} -o ${EXEC} -L${NETCDF}/lib -lnetcdf -lnetcdff -L${HDF5_ROOT}/lib -lhdf5 -lhdf5_fortran ${OBJS} + + +.SUFFIXES : .o .f90 + +.f90.o : + $(FC) ${FOPTS} -c $*.f90 + +clean: + rm -f *.o *.mod $(EXEC) diff --git a/util/proc_sfc_climo/bsu_soiltype/orig_data/run.wcoss2.sh b/util/proc_sfc_climo/bsu_soiltype/orig_data/run.wcoss2.sh new file mode 100644 index 000000000..d078dc3bd --- /dev/null +++ b/util/proc_sfc_climo/bsu_soiltype/orig_data/run.wcoss2.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# Run script for WCOSS2 + +#PBS -l walltime=00:03:00 +#PBS -o log +#PBS -e log +#PBS -N soil +#PBS -q debug +#PBS -A GFS-DEV +#PBS -l select=1:ncpus=1:mem=10GB + +module load PrgEnv-intel/8.1.0 +module load craype/2.7.13 +module load intel/19.1.3.304 +module load cray-mpich/8.1.7 + +module load hdf5/1.10.6 +module load netcdf/4.7.4 + +module list + +WORK_DIR=/lfs/h2/emc/stmp/george.gayno/bnu.soil +rm -fr $WORK_DIR +mkdir -p $WORK_DIR +cd $WORK_DIR + +$PBS_O_WORKDIR/soil.exe + +date +nccopy -d 1 -m 100000000 soil.nc soil.compressed.nc +date + +exit diff --git a/util/proc_sfc_climo/bsu_soiltype/orig_data/soil.f90 b/util/proc_sfc_climo/bsu_soiltype/orig_data/soil.f90 new file mode 100644 index 000000000..0ab07c606 --- /dev/null +++ b/util/proc_sfc_climo/bsu_soiltype/orig_data/soil.f90 @@ -0,0 +1,251 @@ + program bnu_soil + +! Read each 1200x1200 tile file. Then piece the data together and +! output to a netcdf file readable by UFS_UTILS. + + use netcdf + + implicit none + + integer, parameter :: idim=43200 + integer, parameter :: jdim=21600 + integer, parameter :: itile=1200 + integer, parameter :: jtile=1200 + + character(len=5) :: istart_ch, iend_ch, jstart_ch, jend_ch + character(len=23) :: file_name + character(len=100) :: file_path + character(len=140) :: raw_file + character(len=9) :: filenetcdf + + integer :: i, j, ierr, ncid, status + integer :: dim_lon, dim_lat, dim_time + integer :: dim_lon_p1, dim_lat_p1 + integer :: id_data, id_lat, id_lon + integer :: id_lat_corner, id_lon_corner, id_times + integer :: istart, iend, jstart, jend + integer :: num_times + integer(kind=1) :: soil_tile(itile,jtile) + integer(kind=1) :: soil(idim,jdim) + integer(kind=1), parameter :: missing = -9 + integer, parameter :: water_flag = 14 + integer, parameter :: landice=16 + + real(kind=8) :: lat11, lon11, dx, dy + real(kind=8), allocatable :: lons(:), lons_corner(:) + real(kind=8), allocatable :: lats(:), lats_corner(:) + + file_path="/lfs/h2/emc/global/noscrub/George.Gayno/ufs_utils.git/bnu.soil/orig_data/bnu_soiltype_top/" + +! Loop to read the tile files. + + do i=1, idim, itile + istart=i + iend=istart+itile-1 + do j=1, jdim, jtile + + jstart=j + jend=jstart+jtile-1 + write(istart_ch,'(i5.5)') istart + write(iend_ch,'(i5.5)') iend + write(jstart_ch,'(i5.5)') jstart + write(jend_ch,'(i5.5)') jend + file_name= istart_ch // "-" // iend_ch // "." // jstart_ch // "-" // jend_ch + raw_file= trim(file_path) // file_name + + print*,'open and read file ',trim(raw_file) + open(14, file=raw_file, & + access='direct', recl=itile*jtile, iostat=ierr, status='old', form='unformatted') + if (ierr /= 0) stop 2 + + read(14,rec=1,iostat=ierr) soil_tile + if (ierr /= 0) stop 3 + + close(14) + + print*,'max/min values ',maxval(soil_tile),minval(soil_tile) + + where(soil_tile == water_flag) soil_tile = missing + + soil(istart:iend,jstart:jend) = soil_tile + + enddo + enddo + +! Compute lat/lons of the grid. + + dx = 1.0_8/120.0_8 + dy = 1.0_8/120.0_8 + + lat11 = -90.0_8 + dy*0.5_8 + lon11 = -180.0_8 + dx*0.5_8 + + allocate(lons(idim)) + allocate(lats(jdim)) + + do i = 1, idim + lons(i) = real((i-1),8) * dx + lon11 + print*,'Lon of output grid ',i,lons(i) + enddo + + do i = 1, jdim + lats(i) = real((i-1),8) * dy + lat11 + print*,'Lat of output grid ',i,lats(i) + enddo + + allocate(lons_corner(idim+1)) ! required one extra corner + ! for non-periodic grids. + allocate(lats_corner(jdim+1)) ! requires one extra corner + + do i = 1, idim+1 + lons_corner(i) = (real((i-1),8) * dx + lon11) - 0.5_8*dx + print*,'Corner lon of output grid ',i,lons_corner(i) + + enddo + + do i = 1, jdim+1 + lats_corner(i) = (real((i-1),8) * dy + lat11) - 0.5_8*dy + print*,'Corner lat of output grid ',i,lats_corner(i) + enddo + + filenetcdf="./soil.nc" + print*,"- CREATE FILE: ", trim(filenetcdf) + status=nf90_create(filenetcdf, nf90_netcdf4, ncid) + if (status /= nf90_noerr) stop 20 + + status=nf90_def_dim(ncid, 'idim', idim, dim_lon) + if (status /= nf90_noerr) stop 22 + + status=nf90_def_dim(ncid, 'jdim', jdim, dim_lat) + if (status /= nf90_noerr) stop 24 + + status=nf90_def_dim(ncid, 'idim_p1', (idim+1), dim_lon_p1) + if (status /= nf90_noerr) stop 26 + + status=nf90_def_dim(ncid, 'jdim_p1', (jdim+1), dim_lat_p1) + if (status /= nf90_noerr) stop 30 + + num_times=1 + status=nf90_def_dim(ncid, 'time', num_times, dim_time) + if (status /= nf90_noerr) stop 32 + + status=nf90_def_var(ncid, 'lat', nf90_double, dim_lat, id_lat) + if (status /= nf90_noerr) stop 44 + + status=nf90_put_att(ncid, id_lat, 'long_name', 'grid cell center latitude') + if (status /= nf90_noerr) stop 46 + + status=nf90_def_var(ncid, 'lon', nf90_double, dim_lon, id_lon) + if (status /= nf90_noerr) stop 50 + + status=nf90_put_att(ncid, id_lon, 'long_name', 'grid cell center longitude') + if (status /= nf90_noerr) stop 60 + + status=nf90_def_var(ncid, 'lat_corner', nf90_double, dim_lat_p1, id_lat_corner) + if (status /= nf90_noerr) stop 62 + + status=nf90_put_att(ncid, id_lat_corner, 'long_name', 'grid cell corner latitude') + if (status /= nf90_noerr) stop 64 + + status=nf90_def_var(ncid, 'lon_corner', nf90_double, dim_lon_p1, id_lon_corner) + if (status /= nf90_noerr) stop 66 + + status=nf90_put_att(ncid, id_lon_corner, 'long_name', 'grid cell corner longitude') + if (status /= nf90_noerr) stop 70 + + status=nf90_def_var(ncid, 'time', nf90_float, dim_time, id_times) + if (status /= nf90_noerr) stop 42 + + status=nf90_put_att(ncid, id_times, 'units', 'days since 2015-1-1') + if (status /= nf90_noerr) stop 94 + + status=nf90_def_var(ncid, 'soil_type', nf90_byte, (/dim_lon,dim_lat,dim_time/), id_data) + if (status /= nf90_noerr) stop 76 + + status=nf90_put_att(ncid, id_data, 'landice_category', landice) + if (status /= nf90_noerr) stop 80 + + status=nf90_put_att(ncid, id_data, 'missing_value', missing) + if (status /= nf90_noerr) stop 90 + + status=nf90_put_att(ncid, id_data, 'class_01', 'Sand') + if (status /= nf90_noerr) stop 91 + + status=nf90_put_att(ncid, id_data, 'class_02', 'Loamy Sand') + if (status /= nf90_noerr) stop 121 + + status=nf90_put_att(ncid, id_data, 'class_03', 'Sandy Loam') + if (status /= nf90_noerr) stop 122 + + status=nf90_put_att(ncid, id_data, 'class_04', 'Silt Loam') + if (status /= nf90_noerr) stop 123 + + status=nf90_put_att(ncid, id_data, 'class_05', 'Silt') + if (status /= nf90_noerr) stop 124 + + status=nf90_put_att(ncid, id_data, 'class_06', 'Loam') + if (status /= nf90_noerr) stop 125 + + status=nf90_put_att(ncid, id_data, 'class_07', 'Sandy Clay Loam') + if (status /= nf90_noerr) stop 126 + + status=nf90_put_att(ncid, id_data, 'class_08', 'Silty Clay Loam') + if (status /= nf90_noerr) stop 127 + + status=nf90_put_att(ncid, id_data, 'class_09', 'Clay Loam') + if (status /= nf90_noerr) stop 128 + + status=nf90_put_att(ncid, id_data, 'class_10', 'Sandy Clay') + if (status /= nf90_noerr) stop 129 + + status=nf90_put_att(ncid, id_data, 'class_11', 'Silty Clay') + if (status /= nf90_noerr) stop 130 + + status=nf90_put_att(ncid, id_data, 'class_12', 'Clay') + if (status /= nf90_noerr) stop 131 + + status=nf90_put_att(ncid, id_data, 'class_13', 'Organic Material') + if (status /= nf90_noerr) stop 132 + + status=nf90_put_att(ncid, id_data, 'class_14', 'Water') + if (status /= nf90_noerr) stop 133 + + status=nf90_put_att(ncid, id_data, 'class_15', 'Bedrock') + if (status /= nf90_noerr) stop 134 + + status=nf90_put_att(ncid, id_data, 'class_16', 'Permanent Ice') + if (status /= nf90_noerr) stop 135 + + status=nf90_put_att(ncid, nf90_global, 'source', 'Beijing Normal University (BNU) SOIL TYPE') + if (status /= nf90_noerr) stop 34 + + status=nf90_put_att(ncid, nf90_global, 'projection', 'regular lat/lon') + if (status /= nf90_noerr) stop 36 + + status=nf90_enddef(ncid) + if (status /= nf90_noerr) stop 96 + + status=nf90_put_var(ncid, id_times, 0) + if (status /= nf90_noerr) stop 98 + + status=nf90_put_var(ncid, id_lon, lons) + if (status /= nf90_noerr) stop 100 + + status=nf90_put_var(ncid, id_lat, lats) + if (status /= nf90_noerr) stop 104 + + status=nf90_put_var(ncid, id_lon_corner, lons_corner) + if (status /= nf90_noerr) stop 109 + + status=nf90_put_var(ncid, id_lat_corner, lats_corner) + if (status /= nf90_noerr) stop 114 + + status=nf90_put_var(ncid, id_data, soil, start=(/1,1,1/), count=(/idim,jdim,num_times/)) + if (status /= nf90_noerr) stop 117 + + status=nf90_close(ncid) + + print*,'DONE' + + stop + end program bnu_soil From 87b69dcfa2e9ccd23238189ed2f1fb727e7c0894 Mon Sep 17 00:00:00 2001 From: "George.Gayno" Date: Tue, 25 Oct 2022 16:23:58 +0000 Subject: [PATCH 02/10] Update utility to output a NH subset file. Fixes #705. --- .../orig_data/{build.sh => build.wcoss2.sh} | 0 .../bsu_soiltype/orig_data/soil.f90 | 80 ++++++++++++------- 2 files changed, 52 insertions(+), 28 deletions(-) rename util/proc_sfc_climo/bsu_soiltype/orig_data/{build.sh => build.wcoss2.sh} (100%) diff --git a/util/proc_sfc_climo/bsu_soiltype/orig_data/build.sh b/util/proc_sfc_climo/bsu_soiltype/orig_data/build.wcoss2.sh similarity index 100% rename from util/proc_sfc_climo/bsu_soiltype/orig_data/build.sh rename to util/proc_sfc_climo/bsu_soiltype/orig_data/build.wcoss2.sh diff --git a/util/proc_sfc_climo/bsu_soiltype/orig_data/soil.f90 b/util/proc_sfc_climo/bsu_soiltype/orig_data/soil.f90 index 0ab07c606..1c4b8f0fb 100644 --- a/util/proc_sfc_climo/bsu_soiltype/orig_data/soil.f90 +++ b/util/proc_sfc_climo/bsu_soiltype/orig_data/soil.f90 @@ -7,16 +7,16 @@ program bnu_soil implicit none - integer, parameter :: idim=43200 - integer, parameter :: jdim=21600 + integer, parameter :: iglobal=43200 + integer, parameter :: jglobal=21600 integer, parameter :: itile=1200 integer, parameter :: jtile=1200 - character(len=5) :: istart_ch, iend_ch, jstart_ch, jend_ch - character(len=23) :: file_name + character(len=5) :: istart_ch, iend_ch, jstart_ch, jend_ch + character(len=23) :: file_name character(len=100) :: file_path character(len=140) :: raw_file - character(len=9) :: filenetcdf + character(len=9) :: filenetcdf integer :: i, j, ierr, ncid, status integer :: dim_lon, dim_lat, dim_time @@ -24,9 +24,11 @@ program bnu_soil integer :: id_data, id_lat, id_lon integer :: id_lat_corner, id_lon_corner, id_times integer :: istart, iend, jstart, jend - integer :: num_times + integer :: istart_out, iend_out, jstart_out, jend_out + integer :: lon, lat, num_times integer(kind=1) :: soil_tile(itile,jtile) - integer(kind=1) :: soil(idim,jdim) + integer(kind=1) :: soil_global(iglobal,jglobal) + integer(kind=1), allocatable :: soil_out(:,:) integer(kind=1), parameter :: missing = -9 integer, parameter :: water_flag = 14 integer, parameter :: landice=16 @@ -35,14 +37,26 @@ program bnu_soil real(kind=8), allocatable :: lons(:), lons_corner(:) real(kind=8), allocatable :: lats(:), lats_corner(:) +! NH (from 5S to the NP) +!istart_out = 1 +!iend_out = 43200 +!jstart_out = 10200 +!jend_out = 21600 + +! Global + istart_out = 1 + iend_out = 43200 + jstart_out = 1 + jend_out = 21600 + file_path="/lfs/h2/emc/global/noscrub/George.Gayno/ufs_utils.git/bnu.soil/orig_data/bnu_soiltype_top/" ! Loop to read the tile files. - do i=1, idim, itile + do i=1, iglobal, itile istart=i iend=istart+itile-1 - do j=1, jdim, jtile + do j=1, jglobal, jtile jstart=j jend=jstart+jtile-1 @@ -67,11 +81,22 @@ program bnu_soil where(soil_tile == water_flag) soil_tile = missing - soil(istart:iend,jstart:jend) = soil_tile + soil_global(istart:iend,jstart:jend) = soil_tile enddo enddo + allocate(soil_out(istart_out:iend_out,jstart_out:jend_out)) + + do j = jstart_out, jend_out + do i = istart_out, iend_out + soil_out(i,j) = soil_global(i,j) + enddo + enddo + + lon = iend_out - istart_out + 1 + lat = jend_out - jstart_out + 1 + ! Compute lat/lons of the grid. dx = 1.0_8/120.0_8 @@ -80,32 +105,31 @@ program bnu_soil lat11 = -90.0_8 + dy*0.5_8 lon11 = -180.0_8 + dx*0.5_8 - allocate(lons(idim)) - allocate(lats(jdim)) + allocate(lons(istart_out:iend_out)) + allocate(lats(jstart_out:jend_out)) - do i = 1, idim + do i = istart_out, iend_out lons(i) = real((i-1),8) * dx + lon11 print*,'Lon of output grid ',i,lons(i) enddo - do i = 1, jdim - lats(i) = real((i-1),8) * dy + lat11 - print*,'Lat of output grid ',i,lats(i) + do j = jstart_out, jend_out + lats(j) = real((j-1),8) * dy + lat11 + print*,'Lat of output grid ',j,lats(j) enddo - allocate(lons_corner(idim+1)) ! required one extra corner + allocate(lons_corner(istart_out:iend_out+1)) ! required one extra corner ! for non-periodic grids. - allocate(lats_corner(jdim+1)) ! requires one extra corner + allocate(lats_corner(jstart_out:jend_out+1)) ! requires one extra corner - do i = 1, idim+1 + do i = istart_out, iend_out+1 lons_corner(i) = (real((i-1),8) * dx + lon11) - 0.5_8*dx print*,'Corner lon of output grid ',i,lons_corner(i) - enddo - do i = 1, jdim+1 - lats_corner(i) = (real((i-1),8) * dy + lat11) - 0.5_8*dy - print*,'Corner lat of output grid ',i,lats_corner(i) + do j = jstart_out, jend_out+1 + lats_corner(j) = (real((j-1),8) * dy + lat11) - 0.5_8*dy + print*,'Corner lat of output grid ',j,lats_corner(j) enddo filenetcdf="./soil.nc" @@ -113,16 +137,16 @@ program bnu_soil status=nf90_create(filenetcdf, nf90_netcdf4, ncid) if (status /= nf90_noerr) stop 20 - status=nf90_def_dim(ncid, 'idim', idim, dim_lon) + status=nf90_def_dim(ncid, 'idim', lon, dim_lon) if (status /= nf90_noerr) stop 22 - status=nf90_def_dim(ncid, 'jdim', jdim, dim_lat) + status=nf90_def_dim(ncid, 'jdim', lat, dim_lat) if (status /= nf90_noerr) stop 24 - status=nf90_def_dim(ncid, 'idim_p1', (idim+1), dim_lon_p1) + status=nf90_def_dim(ncid, 'idim_p1', (lon+1), dim_lon_p1) if (status /= nf90_noerr) stop 26 - status=nf90_def_dim(ncid, 'jdim_p1', (jdim+1), dim_lat_p1) + status=nf90_def_dim(ncid, 'jdim_p1', (lat+1), dim_lat_p1) if (status /= nf90_noerr) stop 30 num_times=1 @@ -240,7 +264,7 @@ program bnu_soil status=nf90_put_var(ncid, id_lat_corner, lats_corner) if (status /= nf90_noerr) stop 114 - status=nf90_put_var(ncid, id_data, soil, start=(/1,1,1/), count=(/idim,jdim,num_times/)) + status=nf90_put_var(ncid, id_data, soil_out, start=(/1,1,1/), count=(/lon,lat,num_times/)) if (status /= nf90_noerr) stop 117 status=nf90_close(ncid) From c984bfd6449c4523c57b51cf838fe0ea590ad924 Mon Sep 17 00:00:00 2001 From: George Gayno Date: Fri, 28 Oct 2022 13:38:51 +0000 Subject: [PATCH 03/10] Remove utility as the land group used its own processes to create this file. Fixes #705 --- .../bsu_soiltype/orig_data/build.wcoss2.sh | 19 -- .../bsu_soiltype/orig_data/makefile | 19 -- .../bsu_soiltype/orig_data/run.wcoss2.sh | 34 --- .../bsu_soiltype/orig_data/soil.f90 | 275 ------------------ 4 files changed, 347 deletions(-) delete mode 100755 util/proc_sfc_climo/bsu_soiltype/orig_data/build.wcoss2.sh delete mode 100644 util/proc_sfc_climo/bsu_soiltype/orig_data/makefile delete mode 100644 util/proc_sfc_climo/bsu_soiltype/orig_data/run.wcoss2.sh delete mode 100644 util/proc_sfc_climo/bsu_soiltype/orig_data/soil.f90 diff --git a/util/proc_sfc_climo/bsu_soiltype/orig_data/build.wcoss2.sh b/util/proc_sfc_climo/bsu_soiltype/orig_data/build.wcoss2.sh deleted file mode 100755 index 30e71ca3b..000000000 --- a/util/proc_sfc_climo/bsu_soiltype/orig_data/build.wcoss2.sh +++ /dev/null @@ -1,19 +0,0 @@ -#build program on wcoss2 - -set -x - -module reset - -module load PrgEnv-intel/8.1.0 -module load craype/2.7.13 -module load intel/19.1.3.304 -module load cray-mpich/8.1.7 - - -module load hdf5/1.10.6 -module load netcdf/4.7.4 - -module list - -make clean -make diff --git a/util/proc_sfc_climo/bsu_soiltype/orig_data/makefile b/util/proc_sfc_climo/bsu_soiltype/orig_data/makefile deleted file mode 100644 index b5890bfaa..000000000 --- a/util/proc_sfc_climo/bsu_soiltype/orig_data/makefile +++ /dev/null @@ -1,19 +0,0 @@ -EXEC =soil.exe -FC =ftn -FOPTS = -O0 -FR -I${NETCDF}/include -assume byterecl -warn unused -check bounds -OBJ_TST =soil.o -OBJS=${OBJ_TST} -# ************************************************************************* -all: chop - -chop : ${OBJS} - $(FC) ${FOPTS} -o ${EXEC} -L${NETCDF}/lib -lnetcdf -lnetcdff -L${HDF5_ROOT}/lib -lhdf5 -lhdf5_fortran ${OBJS} - - -.SUFFIXES : .o .f90 - -.f90.o : - $(FC) ${FOPTS} -c $*.f90 - -clean: - rm -f *.o *.mod $(EXEC) diff --git a/util/proc_sfc_climo/bsu_soiltype/orig_data/run.wcoss2.sh b/util/proc_sfc_climo/bsu_soiltype/orig_data/run.wcoss2.sh deleted file mode 100644 index d078dc3bd..000000000 --- a/util/proc_sfc_climo/bsu_soiltype/orig_data/run.wcoss2.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash - -# Run script for WCOSS2 - -#PBS -l walltime=00:03:00 -#PBS -o log -#PBS -e log -#PBS -N soil -#PBS -q debug -#PBS -A GFS-DEV -#PBS -l select=1:ncpus=1:mem=10GB - -module load PrgEnv-intel/8.1.0 -module load craype/2.7.13 -module load intel/19.1.3.304 -module load cray-mpich/8.1.7 - -module load hdf5/1.10.6 -module load netcdf/4.7.4 - -module list - -WORK_DIR=/lfs/h2/emc/stmp/george.gayno/bnu.soil -rm -fr $WORK_DIR -mkdir -p $WORK_DIR -cd $WORK_DIR - -$PBS_O_WORKDIR/soil.exe - -date -nccopy -d 1 -m 100000000 soil.nc soil.compressed.nc -date - -exit diff --git a/util/proc_sfc_climo/bsu_soiltype/orig_data/soil.f90 b/util/proc_sfc_climo/bsu_soiltype/orig_data/soil.f90 deleted file mode 100644 index 1c4b8f0fb..000000000 --- a/util/proc_sfc_climo/bsu_soiltype/orig_data/soil.f90 +++ /dev/null @@ -1,275 +0,0 @@ - program bnu_soil - -! Read each 1200x1200 tile file. Then piece the data together and -! output to a netcdf file readable by UFS_UTILS. - - use netcdf - - implicit none - - integer, parameter :: iglobal=43200 - integer, parameter :: jglobal=21600 - integer, parameter :: itile=1200 - integer, parameter :: jtile=1200 - - character(len=5) :: istart_ch, iend_ch, jstart_ch, jend_ch - character(len=23) :: file_name - character(len=100) :: file_path - character(len=140) :: raw_file - character(len=9) :: filenetcdf - - integer :: i, j, ierr, ncid, status - integer :: dim_lon, dim_lat, dim_time - integer :: dim_lon_p1, dim_lat_p1 - integer :: id_data, id_lat, id_lon - integer :: id_lat_corner, id_lon_corner, id_times - integer :: istart, iend, jstart, jend - integer :: istart_out, iend_out, jstart_out, jend_out - integer :: lon, lat, num_times - integer(kind=1) :: soil_tile(itile,jtile) - integer(kind=1) :: soil_global(iglobal,jglobal) - integer(kind=1), allocatable :: soil_out(:,:) - integer(kind=1), parameter :: missing = -9 - integer, parameter :: water_flag = 14 - integer, parameter :: landice=16 - - real(kind=8) :: lat11, lon11, dx, dy - real(kind=8), allocatable :: lons(:), lons_corner(:) - real(kind=8), allocatable :: lats(:), lats_corner(:) - -! NH (from 5S to the NP) -!istart_out = 1 -!iend_out = 43200 -!jstart_out = 10200 -!jend_out = 21600 - -! Global - istart_out = 1 - iend_out = 43200 - jstart_out = 1 - jend_out = 21600 - - file_path="/lfs/h2/emc/global/noscrub/George.Gayno/ufs_utils.git/bnu.soil/orig_data/bnu_soiltype_top/" - -! Loop to read the tile files. - - do i=1, iglobal, itile - istart=i - iend=istart+itile-1 - do j=1, jglobal, jtile - - jstart=j - jend=jstart+jtile-1 - write(istart_ch,'(i5.5)') istart - write(iend_ch,'(i5.5)') iend - write(jstart_ch,'(i5.5)') jstart - write(jend_ch,'(i5.5)') jend - file_name= istart_ch // "-" // iend_ch // "." // jstart_ch // "-" // jend_ch - raw_file= trim(file_path) // file_name - - print*,'open and read file ',trim(raw_file) - open(14, file=raw_file, & - access='direct', recl=itile*jtile, iostat=ierr, status='old', form='unformatted') - if (ierr /= 0) stop 2 - - read(14,rec=1,iostat=ierr) soil_tile - if (ierr /= 0) stop 3 - - close(14) - - print*,'max/min values ',maxval(soil_tile),minval(soil_tile) - - where(soil_tile == water_flag) soil_tile = missing - - soil_global(istart:iend,jstart:jend) = soil_tile - - enddo - enddo - - allocate(soil_out(istart_out:iend_out,jstart_out:jend_out)) - - do j = jstart_out, jend_out - do i = istart_out, iend_out - soil_out(i,j) = soil_global(i,j) - enddo - enddo - - lon = iend_out - istart_out + 1 - lat = jend_out - jstart_out + 1 - -! Compute lat/lons of the grid. - - dx = 1.0_8/120.0_8 - dy = 1.0_8/120.0_8 - - lat11 = -90.0_8 + dy*0.5_8 - lon11 = -180.0_8 + dx*0.5_8 - - allocate(lons(istart_out:iend_out)) - allocate(lats(jstart_out:jend_out)) - - do i = istart_out, iend_out - lons(i) = real((i-1),8) * dx + lon11 - print*,'Lon of output grid ',i,lons(i) - enddo - - do j = jstart_out, jend_out - lats(j) = real((j-1),8) * dy + lat11 - print*,'Lat of output grid ',j,lats(j) - enddo - - allocate(lons_corner(istart_out:iend_out+1)) ! required one extra corner - ! for non-periodic grids. - allocate(lats_corner(jstart_out:jend_out+1)) ! requires one extra corner - - do i = istart_out, iend_out+1 - lons_corner(i) = (real((i-1),8) * dx + lon11) - 0.5_8*dx - print*,'Corner lon of output grid ',i,lons_corner(i) - enddo - - do j = jstart_out, jend_out+1 - lats_corner(j) = (real((j-1),8) * dy + lat11) - 0.5_8*dy - print*,'Corner lat of output grid ',j,lats_corner(j) - enddo - - filenetcdf="./soil.nc" - print*,"- CREATE FILE: ", trim(filenetcdf) - status=nf90_create(filenetcdf, nf90_netcdf4, ncid) - if (status /= nf90_noerr) stop 20 - - status=nf90_def_dim(ncid, 'idim', lon, dim_lon) - if (status /= nf90_noerr) stop 22 - - status=nf90_def_dim(ncid, 'jdim', lat, dim_lat) - if (status /= nf90_noerr) stop 24 - - status=nf90_def_dim(ncid, 'idim_p1', (lon+1), dim_lon_p1) - if (status /= nf90_noerr) stop 26 - - status=nf90_def_dim(ncid, 'jdim_p1', (lat+1), dim_lat_p1) - if (status /= nf90_noerr) stop 30 - - num_times=1 - status=nf90_def_dim(ncid, 'time', num_times, dim_time) - if (status /= nf90_noerr) stop 32 - - status=nf90_def_var(ncid, 'lat', nf90_double, dim_lat, id_lat) - if (status /= nf90_noerr) stop 44 - - status=nf90_put_att(ncid, id_lat, 'long_name', 'grid cell center latitude') - if (status /= nf90_noerr) stop 46 - - status=nf90_def_var(ncid, 'lon', nf90_double, dim_lon, id_lon) - if (status /= nf90_noerr) stop 50 - - status=nf90_put_att(ncid, id_lon, 'long_name', 'grid cell center longitude') - if (status /= nf90_noerr) stop 60 - - status=nf90_def_var(ncid, 'lat_corner', nf90_double, dim_lat_p1, id_lat_corner) - if (status /= nf90_noerr) stop 62 - - status=nf90_put_att(ncid, id_lat_corner, 'long_name', 'grid cell corner latitude') - if (status /= nf90_noerr) stop 64 - - status=nf90_def_var(ncid, 'lon_corner', nf90_double, dim_lon_p1, id_lon_corner) - if (status /= nf90_noerr) stop 66 - - status=nf90_put_att(ncid, id_lon_corner, 'long_name', 'grid cell corner longitude') - if (status /= nf90_noerr) stop 70 - - status=nf90_def_var(ncid, 'time', nf90_float, dim_time, id_times) - if (status /= nf90_noerr) stop 42 - - status=nf90_put_att(ncid, id_times, 'units', 'days since 2015-1-1') - if (status /= nf90_noerr) stop 94 - - status=nf90_def_var(ncid, 'soil_type', nf90_byte, (/dim_lon,dim_lat,dim_time/), id_data) - if (status /= nf90_noerr) stop 76 - - status=nf90_put_att(ncid, id_data, 'landice_category', landice) - if (status /= nf90_noerr) stop 80 - - status=nf90_put_att(ncid, id_data, 'missing_value', missing) - if (status /= nf90_noerr) stop 90 - - status=nf90_put_att(ncid, id_data, 'class_01', 'Sand') - if (status /= nf90_noerr) stop 91 - - status=nf90_put_att(ncid, id_data, 'class_02', 'Loamy Sand') - if (status /= nf90_noerr) stop 121 - - status=nf90_put_att(ncid, id_data, 'class_03', 'Sandy Loam') - if (status /= nf90_noerr) stop 122 - - status=nf90_put_att(ncid, id_data, 'class_04', 'Silt Loam') - if (status /= nf90_noerr) stop 123 - - status=nf90_put_att(ncid, id_data, 'class_05', 'Silt') - if (status /= nf90_noerr) stop 124 - - status=nf90_put_att(ncid, id_data, 'class_06', 'Loam') - if (status /= nf90_noerr) stop 125 - - status=nf90_put_att(ncid, id_data, 'class_07', 'Sandy Clay Loam') - if (status /= nf90_noerr) stop 126 - - status=nf90_put_att(ncid, id_data, 'class_08', 'Silty Clay Loam') - if (status /= nf90_noerr) stop 127 - - status=nf90_put_att(ncid, id_data, 'class_09', 'Clay Loam') - if (status /= nf90_noerr) stop 128 - - status=nf90_put_att(ncid, id_data, 'class_10', 'Sandy Clay') - if (status /= nf90_noerr) stop 129 - - status=nf90_put_att(ncid, id_data, 'class_11', 'Silty Clay') - if (status /= nf90_noerr) stop 130 - - status=nf90_put_att(ncid, id_data, 'class_12', 'Clay') - if (status /= nf90_noerr) stop 131 - - status=nf90_put_att(ncid, id_data, 'class_13', 'Organic Material') - if (status /= nf90_noerr) stop 132 - - status=nf90_put_att(ncid, id_data, 'class_14', 'Water') - if (status /= nf90_noerr) stop 133 - - status=nf90_put_att(ncid, id_data, 'class_15', 'Bedrock') - if (status /= nf90_noerr) stop 134 - - status=nf90_put_att(ncid, id_data, 'class_16', 'Permanent Ice') - if (status /= nf90_noerr) stop 135 - - status=nf90_put_att(ncid, nf90_global, 'source', 'Beijing Normal University (BNU) SOIL TYPE') - if (status /= nf90_noerr) stop 34 - - status=nf90_put_att(ncid, nf90_global, 'projection', 'regular lat/lon') - if (status /= nf90_noerr) stop 36 - - status=nf90_enddef(ncid) - if (status /= nf90_noerr) stop 96 - - status=nf90_put_var(ncid, id_times, 0) - if (status /= nf90_noerr) stop 98 - - status=nf90_put_var(ncid, id_lon, lons) - if (status /= nf90_noerr) stop 100 - - status=nf90_put_var(ncid, id_lat, lats) - if (status /= nf90_noerr) stop 104 - - status=nf90_put_var(ncid, id_lon_corner, lons_corner) - if (status /= nf90_noerr) stop 109 - - status=nf90_put_var(ncid, id_lat_corner, lats_corner) - if (status /= nf90_noerr) stop 114 - - status=nf90_put_var(ncid, id_data, soil_out, start=(/1,1,1/), count=(/lon,lat,num_times/)) - if (status /= nf90_noerr) stop 117 - - status=nf90_close(ncid) - - print*,'DONE' - - stop - end program bnu_soil From 66ca30524f3ff5cb88e92a4b50451efe821081d7 Mon Sep 17 00:00:00 2001 From: George Gayno Date: Fri, 28 Oct 2022 14:00:08 +0000 Subject: [PATCH 04/10] Update script comments for new soil type. Fixes #705. --- driver_scripts/driver_grid.hera.sh | 5 ++++- driver_scripts/driver_grid.jet.sh | 3 +++ driver_scripts/driver_grid.orion.sh | 3 +++ driver_scripts/driver_grid.wcoss2.sh | 3 +++ 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/driver_scripts/driver_grid.hera.sh b/driver_scripts/driver_grid.hera.sh index f8279d98d..ec4a6e367 100755 --- a/driver_scripts/driver_grid.hera.sh +++ b/driver_scripts/driver_grid.hera.sh @@ -71,7 +71,7 @@ module list # Set grid specs here. #----------------------------------------------------------------------- -export gtype=uniform # 'uniform', 'stretch', 'nest', +export gtype=uniform # 'uniform', 'stretch', 'nest', # 'regional_gfdl', 'regional_esg' export make_gsl_orog=false # 'true' if user needs 'oro' files for GSL # orographic drag suite @@ -88,6 +88,9 @@ export veg_type_src="modis.igbp.0.05" # veg type data. # 2) "modis.igbp.0.03" for global 3km data # 3) "modis.igbp.conus.30s" for regional 30s data +export soil_type_src="bnu.30s" # Soil type data. Choices are: + # 1) "bnu.30s" for global 30s data. + if [ $gtype = uniform ]; then export res=96 export add_lake=false # Add lake frac and depth to orography data. diff --git a/driver_scripts/driver_grid.jet.sh b/driver_scripts/driver_grid.jet.sh index c7d4b07a3..248713880 100755 --- a/driver_scripts/driver_grid.jet.sh +++ b/driver_scripts/driver_grid.jet.sh @@ -88,6 +88,9 @@ export veg_type_src="modis.igbp.0.05" # veg type data. # 2) "modis.igbp.0.03" for global 3km data # 3) "modis.igbp.conus.30s" for regional 30s data +export soil_type_src="bnu.30s" # Soil type data. Choices are: + # 1) "bnu.30s" for global 30s data. + if [ $gtype = uniform ]; then export res=96 export add_lake=false # Add lake frac and depth to orography data. diff --git a/driver_scripts/driver_grid.orion.sh b/driver_scripts/driver_grid.orion.sh index cea9fee48..0bb2ad42f 100755 --- a/driver_scripts/driver_grid.orion.sh +++ b/driver_scripts/driver_grid.orion.sh @@ -89,6 +89,9 @@ export veg_type_src="modis.igbp.0.05" # veg type data. # 2) "modis.igbp.0.03" for global 3km data # 3) "modis.igbp.conus.30s" for regional 30s data +export soil_type_src="bnu.30s" # Soil type data. Choices are: + # 1) "bnu.30s" for global 30s data. + if [ $gtype = uniform ]; then export res=96 export add_lake=false # Add lake frac and depth to orography data. diff --git a/driver_scripts/driver_grid.wcoss2.sh b/driver_scripts/driver_grid.wcoss2.sh index b0d1e6587..5d573f01e 100755 --- a/driver_scripts/driver_grid.wcoss2.sh +++ b/driver_scripts/driver_grid.wcoss2.sh @@ -86,6 +86,9 @@ export veg_type_src="modis.igbp.0.05" # veg type data. # 2) "modis.igbp.0.03" for global 3km data # 3) "modis.igbp.conus.30s" for regional 30s data +export soil_type_src="bnu.30s" # Soil type data. Choices are: + # 1) "bnu.30s" for global 30s data. + if [ $gtype = uniform ]; then export res=96 export add_lake=false # Add lake frac and depth to orography data. From 94146f35197f2ca04e664d5a59095fcf661b88ca Mon Sep 17 00:00:00 2001 From: George Gayno Date: Fri, 28 Oct 2022 17:22:34 +0000 Subject: [PATCH 05/10] Update comments in sfc_climo_gen utility script. Update documentation. Fixes #705. --- docs/source/ufs_utils.rst | 2 ++ util/sfc_climo_gen/run.wcoss2.sh | 2 ++ 2 files changed, 4 insertions(+) diff --git a/docs/source/ufs_utils.rst b/docs/source/ufs_utils.rst index 85cec7dc6..6958cd7e4 100644 --- a/docs/source/ufs_utils.rst +++ b/docs/source/ufs_utils.rst @@ -528,6 +528,8 @@ The surface climatological data is located here `./fix/fix_sfc_climo Date: Tue, 29 Nov 2022 16:52:18 +0000 Subject: [PATCH 06/10] Update ./ush/sfc_climo_gen.sh for user selected soil type file. Fixes #705. --- ush/sfc_climo_gen.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ush/sfc_climo_gen.sh b/ush/sfc_climo_gen.sh index ddd2bc939..5233575b9 100755 --- a/ush/sfc_climo_gen.sh +++ b/ush/sfc_climo_gen.sh @@ -39,6 +39,8 @@ mosaic_file=${mosaic_file:-$FIX_FV3/C${res}_mosaic.nc} HALO=${HALO:-0} veg_type_src=${veg_type_src:-"modis.igbp.0.05"} VEG_TYPE_FILE=${VEG_TYPE_FILE:-${input_sfc_climo_dir}/vegetation_type.${veg_type_src}.nc} +soil_type_src=${soil_type_src:-"statsgo.0.05"} +SOIL_TYPE_FILE=${SOIL_TYPE_FILE:-${input_sfc_climo_dir}/soil_type.${soil_type_src}.nc} if [ ! -d $SAVE_DIR ]; then mkdir -p $SAVE_DIR @@ -65,7 +67,7 @@ input_substrate_temperature_file="${input_sfc_climo_dir}/substrate_temperature.2 input_maximum_snow_albedo_file="${input_sfc_climo_dir}/maximum_snow_albedo.0.05.nc" input_snowfree_albedo_file="${input_sfc_climo_dir}/snowfree_albedo.4comp.0.05.nc" input_slope_type_file="${input_sfc_climo_dir}/slope_type.1.0.nc" -input_soil_type_file="${input_sfc_climo_dir}/soil_type.statsgo.0.05.nc" +input_soil_type_file="${SOIL_TYPE_FILE}" input_vegetation_type_file="${VEG_TYPE_FILE}" input_vegetation_greenness_file="${input_sfc_climo_dir}/vegetation_greenness.0.144.nc" mosaic_file_mdl="$mosaic_file" From ada42f691c438aa33e999402ac513bd62744353f Mon Sep 17 00:00:00 2001 From: "George.Gayno" Date: Tue, 29 Nov 2022 18:54:12 +0000 Subject: [PATCH 07/10] Update script comments. Fixes #705. --- driver_scripts/driver_grid.hera.sh | 8 +++++--- driver_scripts/driver_grid.jet.sh | 8 +++++--- driver_scripts/driver_grid.orion.sh | 8 +++++--- driver_scripts/driver_grid.wcoss2.sh | 8 +++++--- util/sfc_climo_gen/run.wcoss2.sh | 2 +- 5 files changed, 21 insertions(+), 13 deletions(-) diff --git a/driver_scripts/driver_grid.hera.sh b/driver_scripts/driver_grid.hera.sh index ec4a6e367..54f352a34 100755 --- a/driver_scripts/driver_grid.hera.sh +++ b/driver_scripts/driver_grid.hera.sh @@ -75,7 +75,7 @@ export gtype=uniform # 'uniform', 'stretch', 'nest', # 'regional_gfdl', 'regional_esg' export make_gsl_orog=false # 'true' if user needs 'oro' files for GSL # orographic drag suite -export veg_type_src="modis.igbp.0.05" # veg type data. +export veg_type_src="modis.igbp.0.05" # Vegetation type data. # For viirs-based vegetation type data, set to: # 1) "viirs.igbp.0.05" for global 5km data # 2) "viirs.igbp.0.1" for global 10km data @@ -88,8 +88,10 @@ export veg_type_src="modis.igbp.0.05" # veg type data. # 2) "modis.igbp.0.03" for global 3km data # 3) "modis.igbp.conus.30s" for regional 30s data -export soil_type_src="bnu.30s" # Soil type data. Choices are: - # 1) "bnu.30s" for global 30s data. +export soil_type_src="statsgo.0.05" # Soil type data. Choices are: + # 1) "statsgo.0.05" for global STATSGO 0.05-deg data + # 2) "statsgo.0.03" for global STATSGO 0.03-deg data + # 3) "bnu.30s" for global Beijing Norm. Univ. 30s data. if [ $gtype = uniform ]; then export res=96 diff --git a/driver_scripts/driver_grid.jet.sh b/driver_scripts/driver_grid.jet.sh index 248713880..3845ba279 100755 --- a/driver_scripts/driver_grid.jet.sh +++ b/driver_scripts/driver_grid.jet.sh @@ -75,7 +75,7 @@ export gtype=uniform # 'uniform', 'stretch', 'nest', # 'regional_gfdl', 'regional_esg' export make_gsl_orog=false # 'true' if user needs 'oro' files for GSL # orographic drag suite -export veg_type_src="modis.igbp.0.05" # veg type data. +export veg_type_src="modis.igbp.0.05" # Vegetation type data. # For viirs-based vegetation type data, set to: # 1) "viirs.igbp.0.05" for global 5km data # 2) "viirs.igbp.0.1" for global 10km data @@ -88,8 +88,10 @@ export veg_type_src="modis.igbp.0.05" # veg type data. # 2) "modis.igbp.0.03" for global 3km data # 3) "modis.igbp.conus.30s" for regional 30s data -export soil_type_src="bnu.30s" # Soil type data. Choices are: - # 1) "bnu.30s" for global 30s data. +export soil_type_src="statsgo.0.05" # Soil type data. Choices are: + # 1) "statsgo.0.05" for global STATSGO 0.05-deg data + # 2) "statsgo.0.03" for global STATSGO 0.03-deg data + # 3) "bnu.30s" for global Beijing Norm. Univ. 30s data. if [ $gtype = uniform ]; then export res=96 diff --git a/driver_scripts/driver_grid.orion.sh b/driver_scripts/driver_grid.orion.sh index 0bb2ad42f..d288886b5 100755 --- a/driver_scripts/driver_grid.orion.sh +++ b/driver_scripts/driver_grid.orion.sh @@ -76,7 +76,7 @@ export gtype=regional_esg # 'uniform', 'stretch', 'nest', export make_gsl_orog=false # 'true' if user needs 'oro' files for GSL # orographic drag suite -export veg_type_src="modis.igbp.0.05" # veg type data. +export veg_type_src="modis.igbp.0.05" # Vegetation type data. # For viirs-based vegetation type data, set to: # 1) "viirs.igbp.0.05" for global 5km data # 2) "viirs.igbp.0.1" for global 10km data @@ -89,8 +89,10 @@ export veg_type_src="modis.igbp.0.05" # veg type data. # 2) "modis.igbp.0.03" for global 3km data # 3) "modis.igbp.conus.30s" for regional 30s data -export soil_type_src="bnu.30s" # Soil type data. Choices are: - # 1) "bnu.30s" for global 30s data. +export soil_type_src="statsgo.0.05" # Soil type data. Choices are: + # 1) "statsgo.0.05" for global STATSGO 0.05-deg data + # 2) "statsgo.0.03" for global STATSGO 0.03-deg data + # 3) "bnu.30s" for global Beijing Norm. Univ. 30s data. if [ $gtype = uniform ]; then export res=96 diff --git a/driver_scripts/driver_grid.wcoss2.sh b/driver_scripts/driver_grid.wcoss2.sh index 5d573f01e..c11cd3756 100755 --- a/driver_scripts/driver_grid.wcoss2.sh +++ b/driver_scripts/driver_grid.wcoss2.sh @@ -73,7 +73,7 @@ export gtype=regional_esg # 'uniform', 'stretch', 'nest', # 'regional_gfdl', 'regional_esg' export make_gsl_orog=false # 'true' if user needs 'oro' files for GSL # orographic drag suite -export veg_type_src="modis.igbp.0.05" # veg type data. +export veg_type_src="modis.igbp.0.05" # Vegetation type data. # For viirs-based vegetation type data, set to: # 1) "viirs.igbp.0.05" for global 5km data # 2) "viirs.igbp.0.1" for global 10km data @@ -86,8 +86,10 @@ export veg_type_src="modis.igbp.0.05" # veg type data. # 2) "modis.igbp.0.03" for global 3km data # 3) "modis.igbp.conus.30s" for regional 30s data -export soil_type_src="bnu.30s" # Soil type data. Choices are: - # 1) "bnu.30s" for global 30s data. +export soil_type_src="statsgo.0.05" # Soil type data. Choices are: + # 1) "statsgo.0.05" for global STATSGO 0.05-deg data + # 2) "statsgo.0.03" for global STATSGO 0.03-deg data + # 3) "bnu.30s" for global Beijing Norm. Univ. 30s data. if [ $gtype = uniform ]; then export res=96 diff --git a/util/sfc_climo_gen/run.wcoss2.sh b/util/sfc_climo_gen/run.wcoss2.sh index 419855530..1ac5fd2c4 100755 --- a/util/sfc_climo_gen/run.wcoss2.sh +++ b/util/sfc_climo_gen/run.wcoss2.sh @@ -59,7 +59,7 @@ export veg_type_src="viirs.igbp.0.05" # Use global 0.05-degree viirs data #export veg_type_src="viirs.igbp.conus.30s" # Use CONUS 30s virrs data. Do not # use for global grids or N Amer grids. -#export soil_type_src="bnu.30s" # Use global 30s BNU soil type data. +#export soil_type_src="bnu.30s" # Use global 30s Beijing Norm. Univ. soil type data. #------------------------------------- # Set working directory and directory where output files will be saved. From 304046140026f58bdd19fc0b28384589ab547141 Mon Sep 17 00:00:00 2001 From: "George.Gayno" Date: Wed, 30 Nov 2022 13:48:11 +0000 Subject: [PATCH 08/10] Correct script comment. Fixes #705. --- driver_scripts/driver_grid.hera.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/driver_scripts/driver_grid.hera.sh b/driver_scripts/driver_grid.hera.sh index 7b56c50a7..f7a911202 100755 --- a/driver_scripts/driver_grid.hera.sh +++ b/driver_scripts/driver_grid.hera.sh @@ -97,7 +97,7 @@ export soil_type_src="statsgo.0.05" # Soil type 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 - # 3) "statsgo.NH.30s" for NH 30s data + # 3) "statsgo.nh.30s" for NH 30s data # 3) "statsgo.30s" for global 30s data # For Beijing Norm. Univ. data # 1) "bnu.30s" for global 30s data. From 144c86b1d39e11c55d3df550acf1e5241ef630a3 Mon Sep 17 00:00:00 2001 From: "George.Gayno" Date: Wed, 30 Nov 2022 13:58:49 +0000 Subject: [PATCH 09/10] Correct script comment. Fixes #705. --- driver_scripts/driver_grid.hera.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/driver_scripts/driver_grid.hera.sh b/driver_scripts/driver_grid.hera.sh index f7a911202..1c9050a7b 100755 --- a/driver_scripts/driver_grid.hera.sh +++ b/driver_scripts/driver_grid.hera.sh @@ -97,8 +97,8 @@ export soil_type_src="statsgo.0.05" # Soil type 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 - # 3) "statsgo.nh.30s" for NH 30s data - # 3) "statsgo.30s" for global 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. From 933af522c6c2bf170e7738d9028e714bbd2a5cf7 Mon Sep 17 00:00:00 2001 From: "George.Gayno" Date: Thu, 1 Dec 2022 14:17:59 +0000 Subject: [PATCH 10/10] Increase memory for wcoss2 grid driver script. Fixes #705. --- driver_scripts/driver_grid.wcoss2.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/driver_scripts/driver_grid.wcoss2.sh b/driver_scripts/driver_grid.wcoss2.sh index 8418ac974..a0c290b90 100755 --- a/driver_scripts/driver_grid.wcoss2.sh +++ b/driver_scripts/driver_grid.wcoss2.sh @@ -6,7 +6,7 @@ #PBS -A GFS-DEV #PBS -l walltime=00:15:00 #PBS -N make_grid -#PBS -l select=1:ncpus=24:mem=200GB +#PBS -l select=1:ncpus=24:mem=500GB #----------------------------------------------------------------------- # Driver script to create a cubic-sphere based model grid on WCOSS2.