diff --git a/reg_tests/grid_gen/driver.cray.sh b/reg_tests/grid_gen/driver.cray.sh index 619286a9f..d19500ac4 100755 --- a/reg_tests/grid_gen/driver.cray.sh +++ b/reg_tests/grid_gen/driver.cray.sh @@ -66,10 +66,17 @@ bsub -e $LOG_FILE -o $LOG_FILE -q $QUEUE -P $PROJECT_CODE -J c96.uniform -W 0:15 bsub -e $LOG_FILE -o $LOG_FILE -q $QUEUE -P $PROJECT_CODE -J gfdl.regional -W 0:10 -M 2400 \ -w 'ended(c96.uniform)' -extsched 'CRAYLINUX[]' "export NODES=1; $PWD/gfdl.regional.sh" +#----------------------------------------------------------------------------- +# ESG regional grid +#----------------------------------------------------------------------------- + +bsub -e $LOG_FILE -o $LOG_FILE -q $QUEUE -P $PROJECT_CODE -J esg.regional -W 0:10 -M 2400 \ + -w 'ended(gfdl.regional)' -extsched 'CRAYLINUX[]' "export NODES=1; $PWD/esg.regional.sh" + #----------------------------------------------------------------------------- # Create summary log. #----------------------------------------------------------------------------- -bsub -o $LOG_FILE -q $QUEUE -P $PROJECT_CODE -J summary -R "rusage[mem=100]" -W 0:01 -w 'ended(gfdl.regional)' "grep -a '<<<' $LOG_FILE >> $SUM_FILE" +bsub -o $LOG_FILE -q $QUEUE -P $PROJECT_CODE -J summary -R "rusage[mem=100]" -W 0:01 -w 'ended(esg.regional)' "grep -a '<<<' $LOG_FILE >> $SUM_FILE" exit diff --git a/reg_tests/grid_gen/driver.dell.sh b/reg_tests/grid_gen/driver.dell.sh index 12eb2a0ac..45880c8a7 100755 --- a/reg_tests/grid_gen/driver.dell.sh +++ b/reg_tests/grid_gen/driver.dell.sh @@ -63,9 +63,16 @@ bsub -e $LOG_FILE -o $LOG_FILE -q $QUEUE -P $PROJECT_CODE -J c96.uniform -W 0:15 bsub -e $LOG_FILE -o $LOG_FILE -q $QUEUE -P $PROJECT_CODE -J gfdl.regional -W 0:10 -x -n 24 -w 'ended(c96.uniform)' \ -R "span[ptile=24]" -R "affinity[core(1):distribute=balance]" "$PWD/gfdl.regional.sh" +#----------------------------------------------------------------------------- +# ESG regional grid +#----------------------------------------------------------------------------- + +bsub -e $LOG_FILE -o $LOG_FILE -q $QUEUE -P $PROJECT_CODE -J esg.regional -W 0:10 -x -n 24 -w 'ended(gfdl.regional)' \ + -R "span[ptile=24]" -R "affinity[core(1):distribute=balance]" "$PWD/esg.regional.sh" + #----------------------------------------------------------------------------- # Create summary log. #----------------------------------------------------------------------------- bsub -o $LOG_FILE -q $QUEUE -P $PROJECT_CODE -J summary -R "affinity[core(1)]" -R "rusage[mem=100]" -W 0:01 \ - -w 'ended(gfdl.regional)' "grep -a '<<<' $LOG_FILE >> $SUM_FILE" + -w 'ended(esg.regional)' "grep -a '<<<' $LOG_FILE >> $SUM_FILE" diff --git a/reg_tests/grid_gen/driver.hera.sh b/reg_tests/grid_gen/driver.hera.sh index 87a462920..1573a6c5a 100755 --- a/reg_tests/grid_gen/driver.hera.sh +++ b/reg_tests/grid_gen/driver.hera.sh @@ -68,12 +68,19 @@ TEST1=$(sbatch --parsable --ntasks-per-node=24 --nodes=1 -t 0:15:00 -A $PROJECT_ TEST2=$(sbatch --parsable --ntasks-per-node=24 --nodes=1 -t 0:10:00 -A $PROJECT_CODE -q $QUEUE -J gfdl.regional \ -o $LOG_FILE -e $LOG_FILE -d afterok:$TEST1 ./gfdl.regional.sh) +#----------------------------------------------------------------------------- +# esg regional grid +#----------------------------------------------------------------------------- + +TEST3=$(sbatch --parsable --ntasks-per-node=24 --nodes=1 -t 0:10:00 -A $PROJECT_CODE -q $QUEUE -J esg.regional \ + -o $LOG_FILE -e $LOG_FILE -d afterok:$TEST2 ./esg.regional.sh) + #----------------------------------------------------------------------------- # Create summary log. #----------------------------------------------------------------------------- sbatch --nodes=1 -t 0:01:00 -A $PROJECT_CODE -J grid_summary -o $LOG_FILE -e $LOG_FILE \ - --open-mode=append -q $QUEUE -d afterok:$TEST2 << EOF + --open-mode=append -q $QUEUE -d afterok:$TEST3 << EOF #!/bin/bash grep -a '<<<' $LOG_FILE > $SUM_FILE EOF diff --git a/reg_tests/grid_gen/driver.jet.sh b/reg_tests/grid_gen/driver.jet.sh index ea0db14f1..6cd9c53d1 100755 --- a/reg_tests/grid_gen/driver.jet.sh +++ b/reg_tests/grid_gen/driver.jet.sh @@ -66,12 +66,19 @@ TEST1=$(sbatch --parsable --ntasks-per-node=24 --nodes=1 -t 0:15:00 -A $PROJECT_ TEST2=$(sbatch --parsable --ntasks-per-node=24 --nodes=1 -t 0:10:00 -A $PROJECT_CODE -q $QUEUE -J gfdl.regional \ --partition=xjet -o $LOG_FILE -e $LOG_FILE -d afterok:$TEST1 ./gfdl.regional.sh) +#----------------------------------------------------------------------------- +# ESG regional grid +#----------------------------------------------------------------------------- + +TEST3=$(sbatch --parsable --ntasks-per-node=24 --nodes=1 -t 0:10:00 -A $PROJECT_CODE -q $QUEUE -J esg.regional \ + --partition=xjet -o $LOG_FILE -e $LOG_FILE -d afterok:$TEST2 ./esg.regional.sh) + #----------------------------------------------------------------------------- # Create summary log. #----------------------------------------------------------------------------- sbatch --partition=xjet --nodes=1 -t 0:01:00 -A $PROJECT_CODE -J grid_summary -o $LOG_FILE -e $LOG_FILE \ - --open-mode=append -q $QUEUE -d afterok:$TEST2 << EOF + --open-mode=append -q $QUEUE -d afterok:$TEST3 << EOF #!/bin/bash grep -a '<<<' $LOG_FILE > $SUM_FILE EOF diff --git a/reg_tests/grid_gen/driver.orion.sh b/reg_tests/grid_gen/driver.orion.sh index 6e128f1df..01c812af4 100755 --- a/reg_tests/grid_gen/driver.orion.sh +++ b/reg_tests/grid_gen/driver.orion.sh @@ -56,18 +56,25 @@ TEST1=$(sbatch --parsable --ntasks-per-node=24 --nodes=1 -t 0:15:00 -A $PROJECT_ -o $LOG_FILE -e $LOG_FILE ./c96.uniform.sh) #----------------------------------------------------------------------------- -# C96 regional grid +# GFDL regional grid #----------------------------------------------------------------------------- TEST2=$(sbatch --parsable --ntasks-per-node=24 --nodes=1 -t 0:10:00 -A $PROJECT_CODE -q $QUEUE -J gfdl.regional \ --open-mode=append -o $LOG_FILE -e $LOG_FILE -d afterok:$TEST1 ./gfdl.regional.sh) +#----------------------------------------------------------------------------- +# ESG regional grid +#----------------------------------------------------------------------------- + +TEST3=$(sbatch --parsable --ntasks-per-node=24 --nodes=1 -t 0:10:00 -A $PROJECT_CODE -q $QUEUE -J esg.regional \ + --open-mode=append -o $LOG_FILE -e $LOG_FILE -d afterok:$TEST2 ./esg.regional.sh) + #----------------------------------------------------------------------------- # Create summary log. #----------------------------------------------------------------------------- sbatch --nodes=1 -t 0:01:00 -A $PROJECT_CODE -J grid_summary -o $LOG_FILE -e $LOG_FILE \ - --open-mode=append -q $QUEUE -d afterok:$TEST2 << EOF + --open-mode=append -q $QUEUE -d afterok:$TEST3 << EOF #!/bin/bash grep -a '<<<' $LOG_FILE > $SUM_FILE EOF diff --git a/reg_tests/grid_gen/esg.regional.sh b/reg_tests/grid_gen/esg.regional.sh new file mode 100755 index 000000000..d88a260dc --- /dev/null +++ b/reg_tests/grid_gen/esg.regional.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +#----------------------------------------------------------------------- +# Create a regional esg grid. 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}/esg.regional.work +export out_dir=${WORK_DIR}/esg.regional + +export gtype=regional_esg +export target_lon=-97.5 # Center longitude of the highest resolution tile +export target_lat=35.5 # Center latitude of the highest resolution tile +export idim=1301 # Dimension of grid in 'i' direction +export jdim=600 # Dimension of grid in 'j' direction +export delx=0.0145 # Grid spacing in degrees in 'i' direction +export dely=0.0145 # Grid spacing in degrees in 'j' direction +export halo=3 + +NCCMP=${NCCMP:-$(which nccmp)} + +#----------------------------------------------------------------------- +# Start script. +#----------------------------------------------------------------------- + +echo "Starting at: " `date` + +$home_dir/ush/fv3gfs_driver_grid.sh + +iret=$? +if [ $iret -ne 0 ]; then + set +x + echo "<<< ESG REGIONAL TEST FAILED. <<<" + exit $iret +fi + +echo "Ending at: " `date` + +#----------------------------------------------------------------------------- +# Compare output to baseline set of data. +#----------------------------------------------------------------------------- + +cd $out_dir/C3113 + +test_failed=0 +for files in *tile*.nc ./fix_sfc/*tile*.nc +do + if [ -f $files ]; then + echo CHECK $files + $NCCMP -dmfqS $files $HOMEreg/esg.regional/$files + iret=$? + if [ $iret -ne 0 ]; then + test_failed=1 + fi + fi +done + +set +x +if [ $test_failed -ne 0 ]; then + echo "<<< ESG REGIONAL TEST FAILED. >>>" +else + echo "<<< ESG REGIONAL TEST PASSED. >>>" +fi + +exit 0 diff --git a/sorc/grid_tools.fd/filter_topo.fd/filter_topo.F90 b/sorc/grid_tools.fd/filter_topo.fd/filter_topo.F90 index 840eda761..ff21ffc3e 100644 --- a/sorc/grid_tools.fd/filter_topo.fd/filter_topo.F90 +++ b/sorc/grid_tools.fd/filter_topo.fd/filter_topo.F90 @@ -706,27 +706,17 @@ subroutine read_grid_file(regional) dx(i,j,t) = great_circle_dist( g2, g1, radius ) enddo ; enddo enddo - if( stretch_fac /= 1 ) then - do t = 1, ntiles - do j = js, je - do i = is, ie+1 - g1(1) = geolon_c(i,j, t) - g1(2) = geolat_c(i,j, t) - g2(1) = geolon_c(i,j+1,t) - g2(2) = geolat_c(i,j+1,t) - dy(i,j,t) = great_circle_dist( g2, g1, radius ) - enddo - enddo - enddo - else - do t = 1, ntiles - do j = js, je - do i = is, ie+1 - dy(i,j,t) = dx(j,i,t) - enddo + do t = 1, ntiles + do j = js, je + do i = is, ie+1 + g1(1) = geolon_c(i,j, t) + g1(2) = geolat_c(i,j, t) + g2(1) = geolon_c(i,j+1,t) + g2(2) = geolat_c(i,j+1,t) + dy(i,j,t) = great_circle_dist( g2, g1, radius ) enddo enddo - endif + enddo if( .not. regional ) then !--- make sure it is consitent between tiles. The following maybe not necessary. diff --git a/ush/fv3gfs_filter_topo.sh b/ush/fv3gfs_filter_topo.sh index 06f537701..403af6cce 100755 --- a/ush/fv3gfs_filter_topo.sh +++ b/ush/fv3gfs_filter_topo.sh @@ -59,8 +59,8 @@ fi cat > input.nml <