From ce385cedfa9abd46b0905e8d6486b0339a9e4267 Mon Sep 17 00:00:00 2001 From: GeorgeGayno-NOAA <52789452+GeorgeGayno-NOAA@users.noreply.github.com> Date: Fri, 22 Dec 2023 09:47:28 -0500 Subject: [PATCH] Updates for new version 20231027 orography fixed files (#881) Update "./fix/link_fixdirs.sh" to point to the new 20231027 "orog" directory. Update "global_cycle" regression tests to point to a local copy of the required "orog" files. Update "global_cycle" scripts to use either form of the 'orog' files - i.e., C96 or C96mx100. Update "chgres_cube" to read either form of the surface climatological files, i.e., C96 or C96.mx100. Update the "gdas_init" scripts to use the 20231027 'orog' files. Update "./ush/chgres_cube.sh" and "./reg_tests/update_baseline.sh" for the new fixed surface directory name (is now ./sfc. previously ./fix_sfc). Update chgres_cube regression tests accordingly. Fixes #867. --- driver_scripts/driver_grid.hera.sh | 4 +-- reg_tests/chgres_cube/c192.fv3.history.sh | 1 + reg_tests/chgres_cube/c192.gfs.grib2.sh | 1 + reg_tests/chgres_cube/c96.fv3.nemsio.sh | 1 + reg_tests/chgres_cube/c96.fv3.netcdf.sh | 1 + reg_tests/chgres_cube/c96.fv3.restart.sh | 1 + reg_tests/chgres_cube/c96.gefs.grib2.sh | 1 + reg_tests/chgres_cube/c96.gfs.nemsio.sh | 1 + reg_tests/chgres_cube/c96.gfs.sigio.sh | 1 + reg_tests/chgres_cube/c96.regional.sh | 1 + reg_tests/chgres_cube/driver.hercules.sh | 6 ++-- .../global_cycle/C192.lndincsoilnoahmp.sh | 2 ++ reg_tests/global_cycle/C768.fv3gfs.sh | 2 ++ reg_tests/global_cycle/C768.lndincsnow.sh | 2 ++ reg_tests/grid_gen/driver.hercules.sh | 3 +- reg_tests/grid_gen/driver.orion.sh | 2 +- reg_tests/update_baseline.sh | 16 ++++----- sorc/chgres_cube.fd/program_setup.F90 | 14 ++++---- ush/chgres_cube.sh | 21 +++++++++--- ush/global_cycle.sh | 3 -- ush/global_cycle_driver.sh | 7 +++- ush/sfc_climo_gen.sh | 14 ++++---- util/gdas_init/config | 8 +---- util/gdas_init/run_pre-v14.chgres.sh | 2 +- util/gdas_init/run_v14.chgres.sh | 2 +- util/gdas_init/run_v15.chgres.gfs.sh | 2 +- util/gdas_init/run_v15.chgres.sh | 2 +- util/gdas_init/run_v16.chgres.sh | 2 +- util/gdas_init/run_v16retro.chgres.sh | 2 +- util/gdas_init/set_fixed_files.sh | 33 ++++++++++--------- util/sfc_climo_gen/sfc_gen.sh | 3 +- 31 files changed, 95 insertions(+), 66 deletions(-) diff --git a/driver_scripts/driver_grid.hera.sh b/driver_scripts/driver_grid.hera.sh index 18bb26027..8c46694f9 100755 --- a/driver_scripts/driver_grid.hera.sh +++ b/driver_scripts/driver_grid.hera.sh @@ -115,7 +115,7 @@ if [ $gtype = uniform ]; then export add_lake=true # Add lake frac and depth to orography data. export lake_cutoff=0.50 # return 0 if lake_frac < lake_cutoff & add_lake=T export binary_lake=1 # return 1 if lake_frac >= lake_cutoff & add_lake=T - export ocn=${ocn:-"025"} # use one of "025", "050", "100", "500". Cannot be empty + export ocn=${ocn:-"100"} # use one of "025", "050", "100", "500". Cannot be empty elif [ $gtype = stretch ]; then export res=96 export stretch_fac=1.5 # Stretching factor for the grid @@ -159,7 +159,7 @@ fi export home_dir=$SLURM_SUBMIT_DIR/.. export TEMP_DIR=/scratch2/NCEPDEV/stmp1/$LOGNAME/fv3_grid.$gtype -export out_dir=/scratch2/NCEPDEV/stmp1/$LOGNAME/my_grids_ocean_fixed/ +export out_dir=/scratch2/NCEPDEV/stmp1/$LOGNAME/my_grids #----------------------------------------------------------------------- # Should not need to change anything below here. diff --git a/reg_tests/chgres_cube/c192.fv3.history.sh b/reg_tests/chgres_cube/c192.fv3.history.sh index 5c63765fd..34d23c3e6 100755 --- a/reg_tests/chgres_cube/c192.fv3.history.sh +++ b/reg_tests/chgres_cube/c192.fv3.history.sh @@ -14,6 +14,7 @@ rm -fr $DATA export CRES=192 export FIXfv3=${HOMEreg}/fix/C192 +export FIXsfc=${FIXfv3}/fix_sfc export COMIN=${HOMEreg}/input_data/fv3.history # Pay attention to the quotes. Dont start/end with double quote. diff --git a/reg_tests/chgres_cube/c192.gfs.grib2.sh b/reg_tests/chgres_cube/c192.gfs.grib2.sh index 9b7baa99a..95762ac9b 100755 --- a/reg_tests/chgres_cube/c192.gfs.grib2.sh +++ b/reg_tests/chgres_cube/c192.gfs.grib2.sh @@ -14,6 +14,7 @@ rm -fr $DATA export CRES=192 export FIXfv3=${HOMEreg}/fix/C192 +export FIXsfc=${FIXfv3}/fix_sfc export COMIN=${HOMEreg}/input_data/gfs.grib2 export GRIB2_FILE_INPUT=gfs.t00z.pgrb2.0p50.f000 diff --git a/reg_tests/chgres_cube/c96.fv3.nemsio.sh b/reg_tests/chgres_cube/c96.fv3.nemsio.sh index fe7576206..e9899dfdc 100755 --- a/reg_tests/chgres_cube/c96.fv3.nemsio.sh +++ b/reg_tests/chgres_cube/c96.fv3.nemsio.sh @@ -13,6 +13,7 @@ export DATA=$OUTDIR/c96_fv3_nemsio rm -fr $DATA export FIXfv3=${HOMEreg}/fix/C96 +export FIXsfc=${FIXfv3}/fix_sfc export COMIN=${HOMEreg}/input_data/fv3.nemsio export ATM_FILES_INPUT=gfs.t12z.atmf000.nemsio export SFC_FILES_INPUT=gfs.t12z.sfcf000.nemsio diff --git a/reg_tests/chgres_cube/c96.fv3.netcdf.sh b/reg_tests/chgres_cube/c96.fv3.netcdf.sh index dfdeb6282..10adb17c6 100755 --- a/reg_tests/chgres_cube/c96.fv3.netcdf.sh +++ b/reg_tests/chgres_cube/c96.fv3.netcdf.sh @@ -13,6 +13,7 @@ export DATA=$OUTDIR/c96_fv3_netcdf rm -fr $DATA export FIXfv3=${HOMEreg}/fix/C96 +export FIXsfc=${FIXfv3}/fix_sfc export COMIN=${HOMEreg}/input_data/fv3.netcdf export ATM_FILES_INPUT=gfs.t00z.atmf000.nc export SFC_FILES_INPUT=gfs.t00z.sfcf000.nc diff --git a/reg_tests/chgres_cube/c96.fv3.restart.sh b/reg_tests/chgres_cube/c96.fv3.restart.sh index 9e67bfa96..21e9553a7 100755 --- a/reg_tests/chgres_cube/c96.fv3.restart.sh +++ b/reg_tests/chgres_cube/c96.fv3.restart.sh @@ -13,6 +13,7 @@ export DATA=$OUTDIR/c96_fv3_restart rm -fr $DATA export FIXfv3=${HOMEreg}/fix/C96 +export FIXsfc=${FIXfv3}/fix_sfc export COMIN=${HOMEreg}/input_data/fv3.restart export VCOORD_FILE=${HOMEufs}/fix/am/global_hyblev.l64.txt export INPUT_TYPE='restart' diff --git a/reg_tests/chgres_cube/c96.gefs.grib2.sh b/reg_tests/chgres_cube/c96.gefs.grib2.sh index 6d86a4a1f..937b42395 100755 --- a/reg_tests/chgres_cube/c96.gefs.grib2.sh +++ b/reg_tests/chgres_cube/c96.gefs.grib2.sh @@ -14,6 +14,7 @@ rm -fr $DATA export CRES=96 export FIXfv3=${HOMEreg}/fix/C96 +export FIXsfc=${FIXfv3}/fix_sfc export COMIN=${HOMEreg}/input_data/gefs.grib2 export GRIB2_FILE_INPUT=gec00.t06z.pgrb2abf00 diff --git a/reg_tests/chgres_cube/c96.gfs.nemsio.sh b/reg_tests/chgres_cube/c96.gfs.nemsio.sh index d3714ca3e..7b36c23e1 100755 --- a/reg_tests/chgres_cube/c96.gfs.nemsio.sh +++ b/reg_tests/chgres_cube/c96.gfs.nemsio.sh @@ -13,6 +13,7 @@ export DATA=$OUTDIR/c96_gfs_nemsio rm -fr $DATA export FIXfv3=${HOMEreg}/fix/C96 +export FIXsfc=${FIXfv3}/fix_sfc export COMIN=${HOMEreg}/input_data/gfs.nemsio export ATM_FILES_INPUT=gfnanl.gdas.2017071700 export SFC_FILES_INPUT=sfnanl.gdas.2017071700 diff --git a/reg_tests/chgres_cube/c96.gfs.sigio.sh b/reg_tests/chgres_cube/c96.gfs.sigio.sh index 25d0448ea..99b7909e9 100755 --- a/reg_tests/chgres_cube/c96.gfs.sigio.sh +++ b/reg_tests/chgres_cube/c96.gfs.sigio.sh @@ -19,6 +19,7 @@ export DATA=$OUTDIR/c96_gfs_sigio rm -fr $DATA export FIXfv3=${HOMEreg}/fix/C96 +export FIXsfc=${FIXfv3}/fix_sfc export COMIN=${HOMEreg}/input_data/gfs.sigio export ATM_FILES_INPUT=gdas.t00z.sanl export SFC_FILES_INPUT=gdas.t00z.sfcanl diff --git a/reg_tests/chgres_cube/c96.regional.sh b/reg_tests/chgres_cube/c96.regional.sh index f96716f3d..6ba6f33da 100755 --- a/reg_tests/chgres_cube/c96.regional.sh +++ b/reg_tests/chgres_cube/c96.regional.sh @@ -15,6 +15,7 @@ export DATA=$OUTDIR/c96_regional rm -fr $DATA export FIXfv3=${HOMEreg}/fix/C96.regional +export FIXsfc=${FIXfv3}/fix_sfc export OROG_FILES_TARGET_GRID="C96_oro_data.tile7.nc" export COMIN=${HOMEreg}/input_data/fv3.nemsio export ATM_FILES_INPUT=gfs.t12z.atmf000.nemsio diff --git a/reg_tests/chgres_cube/driver.hercules.sh b/reg_tests/chgres_cube/driver.hercules.sh index 80ff82a17..177943574 100755 --- a/reg_tests/chgres_cube/driver.hercules.sh +++ b/reg_tests/chgres_cube/driver.hercules.sh @@ -7,7 +7,9 @@ # Set WORK_DIR to a general working location outside the UFS_UTILS directory. # The exact working directory (OUTDIR) will be WORK_DIR/reg_tests/chgres-cube. # Set the PROJECT_CODE and QUEUE as appropriate. To see which projects you -# are authorized to use, type "saccount_params". +# are authorized to use, type: +# +# $ sacctmgr show associations where user-$USER format=account%20,qos%50. # # Invoke the script with no arguments. A series of daily-chained # consistency tests will be submitted. To check the queue, type: @@ -35,7 +37,7 @@ ulimit -s unlimited export OUTDIR="${WORK_DIR:-/work/noaa/stmp/$LOGNAME}" export OUTDIR="${OUTDIR}/reg-tests/chgres-cube" -PROJECT_CODE="${PROJECT_CODE:-nesdis-rdo2}" +PROJECT_CODE="${PROJECT_CODE:-fv3-cpu}" QUEUE="${QUEUE:-batch}" #----------------------------------------------------------------------------- diff --git a/reg_tests/global_cycle/C192.lndincsoilnoahmp.sh b/reg_tests/global_cycle/C192.lndincsoilnoahmp.sh index 0c34fa82f..aa09eef10 100755 --- a/reg_tests/global_cycle/C192.lndincsoilnoahmp.sh +++ b/reg_tests/global_cycle/C192.lndincsoilnoahmp.sh @@ -35,6 +35,8 @@ export LATB=1536 export FIXgsm=$BASE_GSM/fix/am +export FIXfv3=$HOMEreg/fix + export DONST="NO" export use_ufo=.true. diff --git a/reg_tests/global_cycle/C768.fv3gfs.sh b/reg_tests/global_cycle/C768.fv3gfs.sh index 268c18f44..c1c50d242 100755 --- a/reg_tests/global_cycle/C768.fv3gfs.sh +++ b/reg_tests/global_cycle/C768.fv3gfs.sh @@ -35,6 +35,8 @@ export LATB=1536 export FIXgsm=$BASE_GSM/fix/am export FNAISC=$FIXgsm/CFSR.SEAICE.1982.2012.monthly.clim.grb +export FIXfv3=$HOMEreg/fix + export DONST="YES" export use_ufo=.true. diff --git a/reg_tests/global_cycle/C768.lndincsnow.sh b/reg_tests/global_cycle/C768.lndincsnow.sh index b0fe41a46..5bd21045b 100755 --- a/reg_tests/global_cycle/C768.lndincsnow.sh +++ b/reg_tests/global_cycle/C768.lndincsnow.sh @@ -36,6 +36,8 @@ export LATB=1536 export FIXgsm=$BASE_GSM/fix/am +export FIXfv3=$HOMEreg/fix + export DONST="NO" export use_ufo=.true. diff --git a/reg_tests/grid_gen/driver.hercules.sh b/reg_tests/grid_gen/driver.hercules.sh index a97d8cc25..3c46a2d45 100755 --- a/reg_tests/grid_gen/driver.hercules.sh +++ b/reg_tests/grid_gen/driver.hercules.sh @@ -10,7 +10,8 @@ # # Invoke the script with no arguments. A set of tests will # be submitted to run in parallel. To check the queue, type: -# "squeue -u $LOGNAME". +# +# $ sacctmgr show associations where user=$USER format=account%20,qos%50. # # Log output from each test will be placed in its own LOG_FILE. # Once the suite has completed, a summary is placed in SUM_FILE. diff --git a/reg_tests/grid_gen/driver.orion.sh b/reg_tests/grid_gen/driver.orion.sh index 9a50ae251..03ff3ed6c 100755 --- a/reg_tests/grid_gen/driver.orion.sh +++ b/reg_tests/grid_gen/driver.orion.sh @@ -70,7 +70,7 @@ TEST1=$(sbatch --parsable --ntasks-per-node=24 --nodes=1 -t 0:15:00 -A $PROJECT_ #----------------------------------------------------------------------------- LOG_FILE2=${LOG_FILE}02 -TEST2=$(sbatch --parsable --ntasks-per-node=15 --nodes=2 -t 0:15:00 -A $PROJECT_CODE -q $QUEUE -J c96.viirs.bnu \ +TEST2=$(sbatch --parsable --ntasks-per-node=15 --nodes=2 -t 0:20:00 -A $PROJECT_CODE -q $QUEUE -J c96.viirs.bnu \ -o $LOG_FILE2 -e $LOG_FILE2 ./c96.viirs.bnu.sh) #----------------------------------------------------------------------------- diff --git a/reg_tests/update_baseline.sh b/reg_tests/update_baseline.sh index d0cb329f6..10cfbda4c 100755 --- a/reg_tests/update_baseline.sh +++ b/reg_tests/update_baseline.sh @@ -13,8 +13,8 @@ chmod 755 $base_dir if [ -d $base_dir_commit ];then chmod 777 $base_dir_commit - if [ -d $base_dir_commit/fix_sfc ]; then - chmod 777 $base_dir_commit/fix_sfc + if [ -d $base_dir_commit/sfc ]; then + chmod 777 $base_dir_commit/sfc fi rm -fr $base_dir_commit fi @@ -32,17 +32,17 @@ done # The grid_gen tests have a subdirectory for # the surface climo fields. -if [ -d ./fix_sfc ]; then - mkdir -p $base_dir_commit/fix_sfc - cd fix_sfc +if [ -d ./sfc ]; then + mkdir -p $base_dir_commit/sfc + cd sfc for files in *.nc do if [ -f $files ]; then - cp $files $base_dir_commit/fix_sfc - chmod 444 $base_dir_commit/fix_sfc/$files + cp $files $base_dir_commit/sfc + chmod 444 $base_dir_commit/sfc/$files fi done - chmod 555 $base_dir_commit/fix_sfc + chmod 555 $base_dir_commit/sfc fi chmod 555 $base_dir_commit diff --git a/sorc/chgres_cube.fd/program_setup.F90 b/sorc/chgres_cube.fd/program_setup.F90 index 4be7940a6..68c6c0308 100644 --- a/sorc/chgres_cube.fd/program_setup.F90 +++ b/sorc/chgres_cube.fd/program_setup.F90 @@ -38,7 +38,7 @@ module program_setup character(len=500), public :: sfc_files_input_grid(6) = "NULL" !< File names containing input surface data. Not used for 'grib2' input type. character(len=500), public :: vcoord_file_target_grid = "NULL" !< Vertical coordinate definition file. character(len=500), public :: thomp_mp_climo_file= "NULL" !< Path/name to the Thompson MP climatology file. - character(len=6), public :: cres_target_grid = "NULL" !< Target grid resolution, i.e., C768. + character(len=15), public :: cres_target_grid = "NULL" !< Target grid resolution, i.e., C768. character(len=500), public :: atm_weight_file="NULL" !< File containing pre-computed weights to horizontally interpolate atmospheric fields. character(len=25), public :: input_type="restart" !< Input data type: !! - "restart" for fv3 tiled warm restart @@ -215,17 +215,17 @@ subroutine read_setup_namelist(filename) orog_dir_input_grid = trim(orog_dir_input_grid) // '/' !------------------------------------------------------------------------- -! Determine CRES of target grid from the name of the mosaic file. +! Determine CRES of target grid from the name of the orography file. !------------------------------------------------------------------------- - is = index(mosaic_file_target_grid, "/", .true.) - ie = index(mosaic_file_target_grid, "mosaic") - 1 + is = 1 + ie = index(orog_files_target_grid(1), "_oro_") - 1 - if (is == 0 .or. ie == 0) then - call error_handler("CANT DETERMINE CRES FROM MOSAIC FILE.", 1) + if (ie == 0) then + call error_handler("CANT DETERMINE CRES FROM OROG FILE.", 1) endif - cres_target_grid = mosaic_file_target_grid(is+1:ie-1) + cres_target_grid = orog_files_target_grid(1)(is:ie) if (.not. convert_sfc .and. .not. convert_atm) then call error_handler("MUST CONVERT EITHER AN ATM OR SFC FILE.", 1) diff --git a/ush/chgres_cube.sh b/ush/chgres_cube.sh index 7b1d983ce..befb65189 100755 --- a/ush/chgres_cube.sh +++ b/ush/chgres_cube.sh @@ -16,6 +16,13 @@ set -eux CRES=${CRES:-96} +#---------------------------------------------------------------------------- +# Resolution of ocean grid. When declared, use the orography files +# for coupled model runs. Choices are: 025, 050, 100 or 500. +#---------------------------------------------------------------------------- + +ocn=${ocn:-""} + #---------------------------------------------------------------------------- # Set up environment paths. # @@ -34,7 +41,7 @@ HOMEufs=${HOMEufs:-${NWROOT}/ufs_util.${ufs_ver}} EXECufs=${EXECufs:-$HOMEufs/exec} FIXufs=${FIXufs:-$HOMEufs/fix} FIXfv3=${FIXfv3:-$FIXufs/orog/C${CRES}} -FIXsfc=${FIXsfc:-$FIXfv3/fix_sfc} +FIXsfc=${FIXsfc:-$FIXfv3/sfc} FIXam=${FIXam:-$FIXufs/am} #---------------------------------------------------------------------------- @@ -175,9 +182,15 @@ MOSAIC_FILE_TARGET_GRID=${MOSAIC_FILE_TARGET_GRID:-${FIXfv3}/C${CRES}_mosaic.nc} OROG_FILES_TARGET_GRID=${OROG_FILES_TARGET_GRID:-NULL} if [ $OROG_FILES_TARGET_GRID == NULL ]; then - OROG_FILES_TARGET_GRID='C'${CRES}'_oro_data.tile1.nc","C'${CRES}'_oro_data.tile2.nc"' - OROG_FILES_TARGET_GRID=${OROG_FILES_TARGET_GRID}',"C'${CRES}'_oro_data.tile3.nc","C'${CRES}'_oro_data.tile4.nc"' - OROG_FILES_TARGET_GRID=${OROG_FILES_TARGET_GRID}',"C'${CRES}'_oro_data.tile5.nc","C'${CRES}'_oro_data.tile6.nc' + if [ -z "${ocn}" ];then + OROG_FILES_TARGET_GRID='C'${CRES}'_oro_data.tile1.nc","C'${CRES}'_oro_data.tile2.nc"' + OROG_FILES_TARGET_GRID=${OROG_FILES_TARGET_GRID}',"C'${CRES}'_oro_data.tile3.nc","C'${CRES}'_oro_data.tile4.nc"' + OROG_FILES_TARGET_GRID=${OROG_FILES_TARGET_GRID}',"C'${CRES}'_oro_data.tile5.nc","C'${CRES}'_oro_data.tile6.nc' + else + OROG_FILES_TARGET_GRID='C'${CRES}.mx${ocn}'_oro_data.tile1.nc","C'${CRES}.mx${ocn}'_oro_data.tile2.nc"' + OROG_FILES_TARGET_GRID=${OROG_FILES_TARGET_GRID}',"C'${CRES}.mx${ocn}'_oro_data.tile3.nc","C'${CRES}.mx${ocn}'_oro_data.tile4.nc"' + OROG_FILES_TARGET_GRID=${OROG_FILES_TARGET_GRID}',"C'${CRES}.mx${ocn}'_oro_data.tile5.nc","C'${CRES}.mx${ocn}'_oro_data.tile6.nc' + fi fi THOMPSON_AEROSOL_FILE=${THOMPSON_AEROSOL_FILE:-NULL} diff --git a/ush/global_cycle.sh b/ush/global_cycle.sh index ec3c1da97..e6d55ad38 100755 --- a/ush/global_cycle.sh +++ b/ush/global_cycle.sh @@ -33,8 +33,6 @@ # Defaults to fix/am. # FIXam Directory for the global fixed climatology files. # Defaults to $HOMEgfs/fix/am -# FIXfv3 Directory for the model grid and orography netcdf -# files. Defaults to $HOMEgfs/fix/orog/${CASE} # EXECgfs Directory of the program executable. Defaults to # $HOMEgfs/exec # DATA Working directory @@ -234,7 +232,6 @@ gfs_ver=${gfs_ver:-v15.0.0} BASEDIR=${BASEDIR:-${NWROOT:-/nwprod2}} HOMEgfs=${HOMEgfs:-$BASEDIR/gfs_ver.${gfs_ver}} EXECgfs=${EXECgfs:-$HOMEgfs/exec} -FIXfv3=${FIXfv3:-$HOMEgfs/fix/orog/$CASE} FIXam=${FIXam:-$HOMEgfs/fix/am} DATA=${DATA:-$(pwd)} COMIN=${COMIN:-$(pwd)} diff --git a/ush/global_cycle_driver.sh b/ush/global_cycle_driver.sh index 1a46b9a0f..b48327419 100755 --- a/ush/global_cycle_driver.sh +++ b/ush/global_cycle_driver.sh @@ -9,6 +9,7 @@ set -eux #------------------------------------------------------------------------------------------------- export CASE=${CASE:-C768} # resolution of tile: 48, 96, 192, 384, 768, 1152, 3072 +ocn=${ocn:-""} # ocean grid resolution: 025, 050, 100 or 500. export CDATE=${CDATE:-${cdate:-2017031900}} # format yyyymmddhh yyyymmddhh ... export CDUMP=${CDUMP:-gfs} # gfs or gdas export COMPONENT=${COMPONENT:-atmos} @@ -80,7 +81,11 @@ for n in $(seq 1 $ntiles); do ln -fs $COMOUT/$PDY.${cyc}0000.sfcanl_data.tile${n}.nc $DATA/fnbgso.00$n ln -fs $FIXfv3/C${CRES}/C${CRES}_grid.tile${n}.nc $DATA/fngrid.00$n - ln -fs $FIXfv3/C${CRES}/C${CRES}_oro_data.tile${n}.nc $DATA/fnorog.00$n + if [ -z "${ocn}" ];then + ln -fs $FIXfv3/C${CRES}/C${CRES}_oro_data.tile${n}.nc $DATA/fnorog.00$n + else + ln -fs $FIXfv3/C${CRES}/C${CRES}.mx${ocn}_oro_data.tile${n}.nc $DATA/fnorog.00$n + fi if [[ "$DO_SNO_INC" == ".true." ]] ; then ln -fs $COMIN/$PDY.${cyc}0000.xainc.tile${n}.nc $DATA/xainc.00$n fi diff --git a/ush/sfc_climo_gen.sh b/ush/sfc_climo_gen.sh index 2fe25aa8b..ccab7f24a 100755 --- a/ush/sfc_climo_gen.sh +++ b/ush/sfc_climo_gen.sh @@ -21,6 +21,8 @@ # for regional grid. # mosaic_file Path/name of mosaic file. # res Resolution of cubed-sphere grid +# ocn Resolution of ocean grid. When declared, +# use the 'orog' files for the coupled model. # SAVE_DIR Directory where output is saved # WORK_DIR Temporary working directory # SOIL_TYPE_FILE Path/name of input soil type data. @@ -49,8 +51,6 @@ VEG_TYPE_FILE=${VEG_TYPE_FILE:-${input_sfc_climo_dir}/vegetation_type.${veg_type 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 fi @@ -66,11 +66,11 @@ cd $WORK_DIR if [[ $GRIDTYPE == "nest" ]] || [[ $GRIDTYPE == "regional" ]] ; then the_orog_files='"C'${res}'_oro_data.tile7.nc"' else - if declare -p ocn &>/dev/null;then - the_orog_files='"C'${res}.mx${ocn}'_oro_data.tile1.nc","C'${res}.mx${ocn}'_oro_data.tile2.nc","C'${res}.mx${ocn}'_oro_data.tile3.nc","C'${res}.mx${ocn}'_oro_data.tile4.nc","C'${res}.mx${ocn}'_oro_data.tile5.nc","C'${res}.mx${ocn}'_oro_data.tile6.nc"' - else - the_orog_files='"C'${res}'_oro_data.tile1.nc","C'${res}'_oro_data.tile2.nc","C'${res}'_oro_data.tile3.nc","C'${res}'_oro_data.tile4.nc","C'${res}'_oro_data.tile5.nc","C'${res}'_oro_data.tile6.nc"' - fi + if declare -p ocn &>/dev/null;then + the_orog_files='"C'${res}.mx${ocn}'_oro_data.tile1.nc","C'${res}.mx${ocn}'_oro_data.tile2.nc","C'${res}.mx${ocn}'_oro_data.tile3.nc","C'${res}.mx${ocn}'_oro_data.tile4.nc","C'${res}.mx${ocn}'_oro_data.tile5.nc","C'${res}.mx${ocn}'_oro_data.tile6.nc"' + else + the_orog_files='"C'${res}'_oro_data.tile1.nc","C'${res}'_oro_data.tile2.nc","C'${res}'_oro_data.tile3.nc","C'${res}'_oro_data.tile4.nc","C'${res}'_oro_data.tile5.nc","C'${res}'_oro_data.tile6.nc"' + fi fi cat << EOF > ./fort.41 diff --git a/util/gdas_init/config b/util/gdas_init/config index 628e59c0d..7a0a74571 100644 --- a/util/gdas_init/config +++ b/util/gdas_init/config @@ -44,10 +44,6 @@ # or incomplete. So this option may not # always work. Contact george.gayno@noaa.gov # if you encounter problems. -# FRAC_ORO - To use the latest orographic data, -# set to 'yes', otherwise, set to 'no'. -# Note that: the latest orographic data -# support both frac_grid and none frac_grid in the UFS # #----------------------------------------------------------- @@ -67,8 +63,6 @@ LEVS=65 CDUMP=gdas -FRAC_ORO=yes - CRES_HIRES=C192 CRES_ENKF=C96 @@ -116,5 +110,5 @@ else fi -export EXTRACT_DIR yy mm dd hh UFS_DIR OUTDIR CRES_HIRES CRES_ENKF FRAC_ORO +export EXTRACT_DIR yy mm dd hh UFS_DIR OUTDIR CRES_HIRES CRES_ENKF export LEVS gfs_ver EXEC_DIR GDAS_INIT_DIR diff --git a/util/gdas_init/run_pre-v14.chgres.sh b/util/gdas_init/run_pre-v14.chgres.sh index 51290203e..9403c66d8 100755 --- a/util/gdas_init/run_pre-v14.chgres.sh +++ b/util/gdas_init/run_pre-v14.chgres.sh @@ -41,7 +41,7 @@ source $GDAS_INIT_DIR/set_fixed_files.sh cat << EOF > fort.41 &config - fix_dir_target_grid="${FIX_ORO}/${ORO_DIR}/fix_sfc" + fix_dir_target_grid="${FIX_ORO}/${ORO_DIR}/sfc" mosaic_file_target_grid="${FIX_ORO}/${ORO_DIR}/${CTAR}_mosaic.nc" orog_dir_target_grid="${FIX_ORO}/${ORO_DIR}" orog_files_target_grid="${ORO_NAME}.tile1.nc","${ORO_NAME}.tile2.nc","${ORO_NAME}.tile3.nc","${ORO_NAME}.tile4.nc","${ORO_NAME}.tile5.nc","${ORO_NAME}.tile6.nc" diff --git a/util/gdas_init/run_v14.chgres.sh b/util/gdas_init/run_v14.chgres.sh index c1598a7d5..590444154 100755 --- a/util/gdas_init/run_v14.chgres.sh +++ b/util/gdas_init/run_v14.chgres.sh @@ -37,7 +37,7 @@ source $GDAS_INIT_DIR/set_fixed_files.sh cat << EOF > fort.41 &config - fix_dir_target_grid="${FIX_ORO}/${ORO_DIR}/fix_sfc" + fix_dir_target_grid="${FIX_ORO}/${ORO_DIR}/sfc" mosaic_file_target_grid="${FIX_ORO}/${ORO_DIR}/${CTAR}_mosaic.nc" orog_dir_target_grid="${FIX_ORO}/${ORO_DIR}" orog_files_target_grid="${ORO_NAME}.tile1.nc","${ORO_NAME}.tile2.nc","${ORO_NAME}.tile3.nc","${ORO_NAME}.tile4.nc","${ORO_NAME}.tile5.nc","${ORO_NAME}.tile6.nc" diff --git a/util/gdas_init/run_v15.chgres.gfs.sh b/util/gdas_init/run_v15.chgres.gfs.sh index 7cead7181..b24920922 100755 --- a/util/gdas_init/run_v15.chgres.gfs.sh +++ b/util/gdas_init/run_v15.chgres.gfs.sh @@ -27,7 +27,7 @@ source $GDAS_INIT_DIR/set_fixed_files.sh cat << EOF > fort.41 &config - fix_dir_target_grid="${FIX_ORO}/${ORO_DIR}/fix_sfc" + fix_dir_target_grid="${FIX_ORO}/${ORO_DIR}/sfc" mosaic_file_target_grid="${FIX_ORO}/${ORO_DIR}/${CTAR}_mosaic.nc" orog_dir_target_grid="${FIX_ORO}/${ORO_DIR}" orog_files_target_grid="${ORO_NAME}.tile1.nc","${ORO_NAME}.tile2.nc","${ORO_NAME}.tile3.nc","${ORO_NAME}.tile4.nc","${ORO_NAME}.tile5.nc","${ORO_NAME}.tile6.nc" diff --git a/util/gdas_init/run_v15.chgres.sh b/util/gdas_init/run_v15.chgres.sh index ab2dfe530..8b9cbdd1c 100755 --- a/util/gdas_init/run_v15.chgres.sh +++ b/util/gdas_init/run_v15.chgres.sh @@ -43,7 +43,7 @@ source $GDAS_INIT_DIR/set_fixed_files.sh cat << EOF > fort.41 &config - fix_dir_target_grid="${FIX_ORO}/${ORO_DIR}/fix_sfc" + fix_dir_target_grid="${FIX_ORO}/${ORO_DIR}/sfc" mosaic_file_target_grid="${FIX_ORO}/${ORO_DIR}/${CTAR}_mosaic.nc" orog_dir_target_grid="${FIX_ORO}/${ORO_DIR}" orog_files_target_grid="${ORO_NAME}.tile1.nc","${ORO_NAME}.tile2.nc","${ORO_NAME}.tile3.nc","${ORO_NAME}.tile4.nc","${ORO_NAME}.tile5.nc","${ORO_NAME}.tile6.nc" diff --git a/util/gdas_init/run_v16.chgres.sh b/util/gdas_init/run_v16.chgres.sh index 5525afdcb..9b95843cb 100755 --- a/util/gdas_init/run_v16.chgres.sh +++ b/util/gdas_init/run_v16.chgres.sh @@ -51,7 +51,7 @@ source $GDAS_INIT_DIR/set_fixed_files.sh cat << EOF > fort.41 &config - fix_dir_target_grid="${FIX_ORO}/${ORO_DIR}/fix_sfc" + fix_dir_target_grid="${FIX_ORO}/${ORO_DIR}/sfc" mosaic_file_target_grid="${FIX_ORO}/${ORO_DIR}/${CTAR}_mosaic.nc" orog_dir_target_grid="${FIX_ORO}/${ORO_DIR}" orog_files_target_grid="${ORO_NAME}.tile1.nc","${ORO_NAME}.tile2.nc","${ORO_NAME}.tile3.nc","${ORO_NAME}.tile4.nc","${ORO_NAME}.tile5.nc","${ORO_NAME}.tile6.nc" diff --git a/util/gdas_init/run_v16retro.chgres.sh b/util/gdas_init/run_v16retro.chgres.sh index 37b75728d..2a5e59376 100755 --- a/util/gdas_init/run_v16retro.chgres.sh +++ b/util/gdas_init/run_v16retro.chgres.sh @@ -61,7 +61,7 @@ source $GDAS_INIT_DIR/set_fixed_files.sh cat << EOF > fort.41 &config - fix_dir_target_grid="${FIX_ORO}/${ORO_DIR}/fix_sfc" + fix_dir_target_grid="${FIX_ORO}/${ORO_DIR}/sfc" mosaic_file_target_grid="${FIX_ORO}/${ORO_DIR}/${CTAR}_mosaic.nc" orog_dir_target_grid="${FIX_ORO}/${ORO_DIR}" orog_files_target_grid="${ORO_NAME}.tile1.nc","${ORO_NAME}.tile2.nc","${ORO_NAME}.tile3.nc","${ORO_NAME}.tile4.nc","${ORO_NAME}.tile5.nc","${ORO_NAME}.tile6.nc" diff --git a/util/gdas_init/set_fixed_files.sh b/util/gdas_init/set_fixed_files.sh index c81d99816..7cb63d1bf 100755 --- a/util/gdas_init/set_fixed_files.sh +++ b/util/gdas_init/set_fixed_files.sh @@ -1,23 +1,24 @@ #!/bin/bash #--------------------------------------------------------------------------- -# Set directory names and file names for orog data -# The old and new (support fractional grid) orog data have different file names +# Set directory names and file names for orog data. #--------------------------------------------------------------------------- -if [ "${FRAC_ORO:-"no"}" = "yes" ]; then - if [ ${CTAR} == 'C48' ] ; then - OCNRES='500' - elif [ ${CTAR} == 'C96' ] ; then - OCNRES='100' - elif [ ${CTAR} == 'C192' ] ; then - OCNRES='050' - elif [ ${CTAR} == 'C384' ] || [ ${CTAR} == 'C768' ] || [ ${CTAR} == 'C1152' ]; then - OCNRES='025' - fi - ORO_DIR="${CTAR}.mx${OCNRES}_frac" - ORO_NAME="oro_${CTAR}.mx${OCNRES}" +if [ ${CTAR} == 'C48' ] ; then + OCNRES='500' +elif [ ${CTAR} == 'C96' ]; then + OCNRES='500' +elif [ ${CTAR} == 'C192' ]; then + OCNRES='050' +elif [ ${CTAR} == 'C384' ]; then + OCNRES='025' +elif [ ${CTAR} == 'C768' ]; then + OCNRES='025' +elif [ ${CTAR} == 'C1152' ]; then + OCNRES='025' else - ORO_DIR="${CTAR}" - ORO_NAME="${CTAR}_oro_data" + OCNRES='025' fi + +ORO_DIR="${CTAR}" +ORO_NAME="${CTAR}.mx${OCNRES}_oro_data" diff --git a/util/sfc_climo_gen/sfc_gen.sh b/util/sfc_climo_gen/sfc_gen.sh index 90c7c990e..18c93d8ed 100755 --- a/util/sfc_climo_gen/sfc_gen.sh +++ b/util/sfc_climo_gen/sfc_gen.sh @@ -8,7 +8,8 @@ # # res - Grid resolution. Example: 384 or 768. # -# ocn - Ocean mask resolution. Example 025 or 100. +# ocn - Ocean mask resolution. Choices are: 025, 050, 100 or +# 500. Comment out to use uncoupled 'orog' files. # # FIX_FV3 - Location of the pre-existing 'grid' and 'orography' # files. Defaults to ${BASE_DIR}/fix/orog/C${res}, where