Skip to content

Commit

Permalink
Update Jet support. NOAA-EMC#529
Browse files Browse the repository at this point in the history
  • Loading branch information
DavidHuber-NOAA committed Feb 23, 2023
1 parent 971c8bc commit dfc61f1
Show file tree
Hide file tree
Showing 23 changed files with 1,655 additions and 170 deletions.
24 changes: 15 additions & 9 deletions modulefiles/gsi_jet.lua
Original file line number Diff line number Diff line change
@@ -1,26 +1,32 @@
help([[
]])

load("cmake/3.20.1")
prepend_path("MODULEPATH", "/mnt/lfs4/HFIP/hfv3gfs/role.epic/hpc-stack/libs/intel-18.0.5.274/modulefiles/stack")

prepend_path("MODULEPATH", "/contrib/anaconda/modulefiles")
local hpc_ver=os.getenv("hpc_ver") or "1.2.0"
local hpc_intel_ver=os.getenv("hpc_intel_ver") or "18.0.5.274"
local hpc_impi_ver=os.getenv("hpc_impi_ver") or "2018.4.274"
local cmake_ver=os.getenv("cmake_ver") or "3.20.1"
local anaconda_ver=os.getenv("anaconda_ver") or "5.3.1"
local prod_util_ver=os.getenv("prod_util_ver") or "1.2.2"

load("anaconda/5.3.1")
load(pathJoin("hpc", hpc_ver))
load(pathJoin("hpc-intel", hpc_intel_ver))
load(pathJoin("hpc-impi", hpc_impi_ver))
load(pathJoin("cmake", cmake_ver))

prepend_path("MODULEPATH", "/lfs4/HFIP/hfv3gfs/nwprod/hpc-stack/libs/modulefiles/stack")
prepend_path("MODULEPATH", "/contrib/anaconda/modulefiles")

load("hpc/1.1.0")
load("hpc-intel/18.0.5.274")
load("hpc-impi/2018.4.274")
load(pathJoin("anaconda", anaconda_ver))

load("gsi_common")

local prod_util_ver=os.getenv("prod_util_ver") or "1.2.2"
load(pathJoin("prod_util", prod_util_ver))

pushenv("CFLAGS", "-axSSE4.2,AVX,CORE-AVX2")
pushenv("FFLAGS", "-axSSE4.2,AVX,CORE-AVX2")

pushenv("GSI_BINARY_SOURCE_DIR", "/lfs4/HFIP/hfv3gfs/glopara/git/fv3gfs/fix/gsi/20221128")

pushenv("GSI_BINARY_SOURCE_DIR", "/mnt/lfs4/HFIP/hfv3gfs/glopara/git/fv3gfs/fix/gsi/20221128")

whatis("Description: GSI environment on Jet with Intel Compilers")
2 changes: 1 addition & 1 deletion regression/global_3dvar.sh
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,7 @@ for type in $listdiag; do
date=`echo $diag_file | cut -d'.' -f2`
$UNCOMPRESS $diag_file
fnameanl=$(echo $fname|sed 's/_ges//g')
mv $fname.$date $fnameanl
mv ${fname}.${date} $fnameanl
done

# Run GSI
Expand Down
12 changes: 6 additions & 6 deletions regression/global_4dvar.sh
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ SINGLEOB=""
# bftab_sst= bufr table for sst ONLY needed for sst retrieval (retrieval=.true.)
# aeroinfo = text file with information about assimilation of aerosol data

anavinfo=$fixgsi/global_anavinfo.l${LEVS}.txt
anavinfo=$fixgsi/global_anavinfo_qlqi.l${LEVS}.txt
berror=$fixgsi/Big_Endian/global_berror.l${LEVS}y${NLAT}.f77
locinfo=$fixgsi/global_hybens_info.l${LEVS}.txt
satinfo=$fixgsi/global_satinfo.txt
Expand Down Expand Up @@ -311,9 +311,9 @@ $gsi_namelist
EOF
cp gsiparm.anl gsiparm.anl.obsvr

echo "run gsi now"
echo "run gsi observer"
eval "$APRUN $tmpdir/gsi.x < gsiparm.anl > stdout.obsvr 2>&1"
rc=$?
ra=$?

# Run gsi identity model 4dvar under Parallel Operating Environment (poe) on NCEP IBM
rm -f siganl sfcanl.gsi satbias_out fort.2*
Expand All @@ -331,8 +331,8 @@ cat <<EOF > gsiparm.anl
$gsi_namelist
EOF

echo "run gsi now"
echo "run gsi 4dvar"
eval "$APRUN $tmpdir/gsi.x < gsiparm.anl > stdout 2>&1"
rc=$?

rb=$?
rc=$((ra+rb))
exit $rc
1 change: 0 additions & 1 deletion regression/regression_driver.sh
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ for jn in `seq ${RSTART} ${REND}`; do
$scripts/regression_wait.sh ${job[$jn]} ${rcname} $check_resource
rc=$?
if [ $rc -ne 0 ]; then
rm -f ${rcname}
exit 1
fi
done
Expand Down
20 changes: 10 additions & 10 deletions regression/regression_param.sh
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ case $regtest in
topts[1]="0:15:00" ; popts[1]="12/5/" ; ropts[1]="/1"
topts[2]="0:15:00" ; popts[2]="12/9/" ; ropts[2]="/2"
elif [[ "$machine" = "Jet" ]]; then
topts[1]="0:50:00" ; popts[1]="12/3/" ; ropts[1]="/1"
topts[2]="0:50:00" ; popts[2]="12/9/" ; ropts[2]="/2"
topts[1]="0:15:00" ; popts[1]="12/5/" ; ropts[1]="/1"
topts[2]="0:15:00" ; popts[2]="12/9/" ; ropts[2]="/2"
elif [[ "$machine" = "Cheyenne" ]]; then
topts[1]="0:30:00" ; popts[1]="16/2/" ; ropts[1]="/1"
topts[2]="0:30:00" ; popts[2]="16/4/" ; ropts[2]="/2"
Expand Down Expand Up @@ -123,8 +123,8 @@ case $regtest in
topts[1]="0:10:00" ; popts[1]="12/8/" ; ropts[1]="/1"
topts[2]="0:10:00" ; popts[2]="12/12/" ; ropts[2]="/2"
elif [[ "$machine" = "Jet" ]]; then
topts[1]="0:35:00" ; popts[1]="6/8/" ; ropts[1]="/1"
topts[2]="0:35:00" ; popts[2]="6/10/" ; ropts[2]="/2"
topts[1]="0:10:00" ; popts[1]="12/8/" ; ropts[1]="/1"
topts[2]="0:10:00" ; popts[2]="12/10/" ; ropts[2]="/2"
elif [[ "$machine" = "Discover" ]]; then
topts[1]="0:30:00" ; popts[1]="48/2" ; ropts[1]="/1"
topts[2]="0:30:00" ; popts[2]="60/3" ; ropts[2]="/2"
Expand All @@ -150,11 +150,11 @@ case $regtest in
topts[1]="0:15:00" ; popts[1]="20/1/" ; ropts[1]="/1"
topts[2]="0:15:00" ; popts[2]="20/2/" ; ropts[2]="/1"
elif [[ "$machine" = "Orion" ]]; then
topts[1]="0:15:00" ; popts[1]="4/4/" ; ropts[1]="/1"
topts[2]="0:15:00" ; popts[2]="6/6/" ; ropts[2]="/1"
topts[1]="0:15:00" ; popts[1]="20/1/" ; ropts[1]="/1"
topts[2]="0:15:00" ; popts[2]="20/2/" ; ropts[2]="/1"
elif [[ "$machine" = "Jet" ]]; then
topts[1]="0:15:00" ; popts[1]="4/4/" ; ropts[1]="/1"
topts[2]="0:15:00" ; popts[2]="6/6/" ; ropts[2]="/1"
topts[1]="0:15:00" ; popts[1]="20/1/" ; ropts[1]="/1"
topts[2]="0:15:00" ; popts[2]="20/2/" ; ropts[2]="/1"
elif [[ "$machine" = "wcoss2" ]]; then
topts[1]="0:15:00" ; popts[1]="64/1/" ; ropts[1]="/1"
topts[2]="0:15:00" ; popts[2]="128/2/" ; ropts[2]="/1"
Expand Down Expand Up @@ -255,8 +255,8 @@ case $regtest in
topts[1]="0:10:00" ; popts[1]="12/3/" ; ropts[1]="/1"
topts[2]="0:10:00" ; popts[2]="12/5/" ; ropts[2]="/2"
elif [[ "$machine" = "Jet" ]]; then
topts[1]="0:15:00" ; popts[1]="12/3/" ; ropts[1]="/1"
topts[2]="0:15:00" ; popts[2]="12/5/" ; ropts[2]="/2"
topts[1]="0:10:00" ; popts[1]="12/3/" ; ropts[1]="/1"
topts[2]="0:10:00" ; popts[2]="12/5/" ; ropts[2]="/2"
elif [[ "$machine" = "Cheyenne" ]]; then
topts[1]="0:15:00" ; popts[1]="16/2/" ; ropts[1]="/1"
topts[2]="0:15:00" ; popts[2]="16/4/" ; ropts[2]="/2"
Expand Down
17 changes: 13 additions & 4 deletions regression/regression_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -576,11 +576,20 @@ mkdir -p $vfydir

$ncp $output $vfydir/

# Final check for any failed tests
count=$(grep -i "fail" $output |wc -l)
if [ $count -gt 0 ]; then
(( failed_test = $failed_test + $count ))
fi

# Remove job log files is no failures detected
cd $scripts
rm -f ${exp1}.out
rm -f ${exp2}.out
rm -f ${exp3}.out
rm -f ${exp2_scale}.out
if [ $count -eq 0 ]; then
rm -f ${exp1}.out
rm -f ${exp2}.out
rm -f ${exp3}.out
rm -f ${exp2_scale}.out
fi

if [[ "$clean" = ".true." ]]; then
rm -rf $savdir
Expand Down
43 changes: 29 additions & 14 deletions regression/regression_test_enkf.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ maxtime=1200
maxmem=${maxmem:-3400000} # set in regression_param
maxmem=$((${memnode:-64}*1024*1024))

# Copy stdout and sanl files
# Copy stdout and incr files
# from $savdir to $tmpdir
list="$exp1 $exp2 $exp3"
for exp in $list; do
Expand All @@ -43,7 +43,7 @@ for exp in $list; do
imem=1
while [[ $imem -le $nmem ]]; do
member="_mem"`printf %03i $imem`
$ncp $savdir/$exp/sanl_${global_adate}_fhr06$member $tmpdir/sanl$member.$exp
$ncp $savdir/$exp/incr_${global_adate}_fhr06$member $tmpdir/incr$member.$exp
(( imem = $imem + 1 ))
done
done
Expand Down Expand Up @@ -282,10 +282,13 @@ nmem=10
imem=1
while [[ $imem -le $nmem ]]; do
member="_mem"`printf %03i $imem`
if ! cmp -s sanl$member.${exp1} sanl$member.${exp2}
then
echo 'sanl'$member'.'${exp1}' sanl'$member'.'${exp2}' are NOT identical'
fi
ncdump incr$member.${exp1} > incr$member.${exp1}.out
ncdump incr$member.${exp2} > incr$member.${exp2}.out
if [ ! diff incr$member.${exp1}.out incr$member.${exp2}.out ]; then
echo 'incr'$member'.'${exp1}' incr'$member'.'${exp2}' are NOT identical'
else
rm -f incr$member.${exp1}.out incr$member.${exp2}.out
fi
(( imem = $imem + 1 ))
done
echo
Expand Down Expand Up @@ -379,11 +382,14 @@ else
imem=1
while [[ $imem -le $nmem ]]; do
member="_mem"`printf %03i $imem`
if ! cmp -s sanl$member.${exp1} sanl$member.${exp3}
then
echo 'sanl'$member'.'${exp1}' sanl'$member'.'${exp3}' are NOT identical'
ncdump incr$member.${exp1} > incr$member.${exp1}.out
ncdump incr$member.${exp3} > incr$member.${exp3}.out
if [ ! diff incr$member.${exp1}.out incr$member.${exp3}.out ]; then
echo 'incr'$member'.'${exp1}' incr'$member'.'${exp3}' are NOT identical'
else
rm -f incr$member.${exp1}.out incr$member.${exp3}.out
fi
(( imem = $imem + 1 ))
(( imem = $imem + 1 ))
done
echo
} >> $output
Expand Down Expand Up @@ -411,11 +417,20 @@ mkdir -p $vfydir

$ncp $output $vfydir/

# Final check for any failed tests
count=$(grep -i "fail" $output |wc -l)
if [ $count -gt 0 ]; then
(( failed_test = $failed_test + $count ))
fi

# Remove job log files is no failures detected
cd $scripts
rm -f ${exp1}.out
rm -f ${exp2}.out
rm -f ${exp3}.out
rm -f ${exp2_scale}.out
if [ $count -eq 0 ]; then
rm -f ${exp1}.out
rm -f ${exp2}.out
rm -f ${exp3}.out
rm -f ${exp2_scale}.out
fi

if [[ "$clean" = ".true." ]]; then
rm -rf $savdir
Expand Down
9 changes: 3 additions & 6 deletions regression/regression_var.sh
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ if [[ -d /glade ]]; then # Cheyenne
export machine="Cheyenne"
elif [[ -d /scratch1 ]]; then # Hera
export machine="Hera"
elif [[ -d /jetmon ]]; then # Jet
elif [[ -d /mnt/lfs4 || -d /jetmon || -d /mnt/lfs1 ]]; then # Jet
export machine="Jet"
elif [[ -d /discover ]]; then # NCCS Discover
export machine="Discover"
Expand Down Expand Up @@ -138,19 +138,16 @@ case $machine in

export noscrub=/lfs1/NESDIS/nesdis-rdo2/$LOGNAME/noscrub
export ptmp=/lfs1/NESDIS/nesdis-rdo2/$LOGNAME/ptmp
export fixcrtm="/lfs1/NESDIS/nesdis-rdo2/David.Huber/save/CRTM_REL-2.2.3/crtm_v2.2.3/fix_update"
export casesdir="/lfs1/NESDIS/nesdis-rdo2/David.Huber/save/CASES"
export casesdir="/lfs1/NESDIS/nesdis-rdo2/David.Huber/save/CASES/regtest"
export check_resource="no"
export accnt="nesdis-rdo2"

export group="global"
export queue="batch"
if [[ "$cmaketest" = "false" ]]; then
export basedir="/lfs1/NESDIS/nesdis-rdo2/$LOGNAME/gsi"
export basedir="/lfs1/NESDIS/nesdis-rdo2/$LOGNAME/save/git/gsi"
fi

export ptmp="/lfs1/NESDIS/nesdis-rdo2/$LOGNAME/ptmp/$ptmpName"

# On Jet, there are no scrubbers to remove old contents from stmp* directories.
# After completion of regression tests, will remove the regression test subdirecories
export clean=".true."
Expand Down
3 changes: 2 additions & 1 deletion src/enkf/gridinfo_fv3reg.f90
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@ module gridinfo
!
!$$$

use mpisetup, only: nproc, mpi_integer, mpi_real4, mpi_comm_world,mpi_status
use mpisetup, only: nproc, mpi_integer, mpi_real4,mpi_status
use mpimod, only: mpi_comm_world
use params, only: datapath,nlevs,nlons,nlats,use_gfs_nemsio, fgfileprefixes, &
fv3fixpath, nx_res,ny_res, ntiles,l_fv3reg_filecombined,paranc, &
fv3_io_layout_nx,fv3_io_layout_ny
Expand Down
Loading

0 comments on commit dfc61f1

Please sign in to comment.